PCSCD compilation/installation question

Hello!

I have a question about the compilation and installation of the PCSCD.

My Host system (Mageia) ships with the 1.9.9-1.1 version and the latest version is 2.4.1. I downloaded the latest version and try to install it.

So I followed the instructions and everything was fine, except that the installation path was

/usr/sbin/pcscd

which differs from the path my system stored the old version.

Is this a problem? The following status information may indicate that exactly the new version is used for pcscd isn’t it?

[root@localhost ~]# systemctl status pcscd
pcscd.service - PC/SC Smart Card Daemon
Loaded: loaded (/usr/lib/systemd/system/pcscd.service; indirect; preset:disabled)
Active:active (running)since Fri 2026-05-15 02:30:44 EDT; 57min ago
TriggeredBy: pcscd.socket
Docs: man:pcscd(8)
Main PID: 862895 (pcscd)
Tasks: 7 (limit: 38334)
Memory: 1.4M
CPU: 18ms
CGroup: /system.slice/pcscd.service
└─862895 /usr/sbin/pcscd --foreground --auto-exit

Mai 15 02:30:44 localhost systemd[1]: Started pcscd.service.
Mai 15 02:30:44 localhost pcscd[862895]: 00000000 winscard_svc.c:382:ContextThread() Communication protocol mismatch!
Mai 15 02:30:44 localhost pcscd[862895]: 00000075 winscard_svc.c:384:ContextThread() Client protocol is 4:5
Mai 15 02:30:44 localhost pcscd[862895]: 00000003 winscard_svc.c:386:ContextThread() Server protocol is 4:4

Is there a way to figure out which version pcscd use?

What may the line

Mai 15 02:30:44 localhost pcscd[862895]: 00000000 winscard_svc.c:382:ContextThread() Communication protocol mismatch!

tell us?

I then I stumbled about this code (a file called c.sh)

#!/bin/sh

set -x
set -e

BUILD_DIR=builddir
TMP_DIR=/tmp/pcsc

rm -rf "$BUILD_DIR"

meson setup "$BUILD_DIR" \
	--prefix /usr \
	-Dsystemdunit=system \
	"$@"

cd "$BUILD_DIR"
meson compile

rm -rf "$TMP_DIR"
DESTDIR="$TMP_DIR" meson install
find "$TMP_DIR"

which is part of the pcscd archive.

I just run this code and again everything works.

Can someone please explain what

meson setup "$BUILD_DIR" \
	--prefix /usr \
	-Dsystemdunit=system \
	"$@"

Does?

Many regards!:smiley:

T.L.