commit:     fa9b944898e8b7602a88f36e8c598bc6b19e54c1
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 12 02:46:34 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Dec 12 02:46:34 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fa9b9448

sys-apps/pcsc-lite: backport systemd fixes

* Always install systemd unit file
* Fix unit file

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/pcsc-lite-2.4.0-systemd-fixes.patch      | 97 ++++++++++++++++++++++
 .../pcsc-lite-2.4.0-systemd-sysusers-fixup.patch   | 11 +++
 ...lite-2.4.0.ebuild => pcsc-lite-2.4.0-r1.ebuild} |  2 +
 3 files changed, 110 insertions(+)

diff --git a/sys-apps/pcsc-lite/files/pcsc-lite-2.4.0-systemd-fixes.patch 
b/sys-apps/pcsc-lite/files/pcsc-lite-2.4.0-systemd-fixes.patch
new file mode 100644
index 000000000000..0d8332cfc413
--- /dev/null
+++ b/sys-apps/pcsc-lite/files/pcsc-lite-2.4.0-systemd-fixes.patch
@@ -0,0 +1,97 @@
+https://github.com/LudovicRousseau/PCSC/commit/504e3ba2d81d801fee45b97fbe9e7a5b0d0c24cd
+https://github.com/LudovicRousseau/PCSC/commit/448dbe2aa10780775d361ad38b0dd3cd18530bec
+
+From 504e3ba2d81d801fee45b97fbe9e7a5b0d0c24cd Mon Sep 17 00:00:00 2001
+From: Stephan Guilloux <[email protected]>
+Date: Fri, 5 Dec 2025 16:33:29 +0100
+Subject: [PATCH] systemd Fails to parse boolean value.
+
+My host is installed with a Rocky Linux 9.x
+It should be the same with other distros.
+
+When PCSC is started, I can observe the following in /var/log/messages:
+```
+...
+Dec 05 16:22:43 Host-9A38CE systemd[1]: 
/usr/lib/systemd/system/pcscd.service:32: Failed to parse boolean value, 
ignoring: identity
+                                                                               
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+...
+```
+
+This comes from the following line, in pcscd.service:
+```
+RuntimeDirectoryPreserve=true
+```
+
+When `true` is replaced by `yes`, the error is no more seen.
+By the way, the rest of pcscd.service is already using `yes`.
+---
+ etc/pcscd.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/etc/pcscd.service.in b/etc/pcscd.service.in
+index 14ab8442..874a03dc 100644
+--- a/etc/pcscd.service.in
++++ b/etc/pcscd.service.in
+@@ -10,7 +10,7 @@ ExecReload=@sbindir_exp@/pcscd --hotplug
+ EnvironmentFile=-@sysconfdir@/default/pcscd
+ User=pcscd
+ RuntimeDirectory=pcscd
+-RuntimeDirectoryPreserve=true
++RuntimeDirectoryPreserve=yes
+ PIDFile=@ipcdir@/pcscd.pid
+ 
+ # Paths
+
+From 448dbe2aa10780775d361ad38b0dd3cd18530bec Mon Sep 17 00:00:00 2001
+From: Ludovic Rousseau <[email protected]>
+Date: Wed, 10 Dec 2025 15:55:29 +0100
+Subject: [PATCH] meson: install systemd files even if libsystemd is not used
+
+---
+ meson.build | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 4d4d2bf9..1b2926f4 100644
+--- a/meson.build
++++ b/meson.build
+@@ -127,11 +127,19 @@ if get_option('polkit')
+   features += 'polkit'
+ endif
+ 
++systemdunit = get_option('systemdunit')
+ if get_option('libsystemd')
+   systemd_dep = dependency('libsystemd')
+   pcscd_dep += systemd_dep
+   conf_data.set('USE_LIBSYSTEMD', true)
+   features += 'systemd'
++
++  systemd = dependency('systemd')
++  systemdsystemunitdir = systemd.get_variable(pkgconfig : 'systemd' + 
systemdunit + 'unitdir')
++  sysusersdir = systemd.get_variable(pkgconfig : 'sysusersdir')
++else
++  systemdsystemunitdir = get_option('prefix') / 'lib' / 'systemd' / 
systemdunit
++  sysusersdir = get_option('prefix') / 'sysusers.d'
+ endif
+ 
+ # architecture
+@@ -291,11 +299,6 @@ configure_file(output : 'pcsclite.h',
+ configure_file(output : 'pcscd.h',
+   input : 'src/pcscd.h.in',
+   configuration : confgen_data)
+-if get_option('libsystemd')
+-  systemd = dependency('systemd')
+-  unit = get_option('systemdunit')
+-  systemdsystemunitdir = systemd.get_variable(pkgconfig : 'systemd' + unit + 
'unitdir')
+-  sysusersdir = systemd.get_variable(pkgconfig : 'sysusersdir')
+ configure_file(output : 'pcscd.socket',
+   input : 'etc/pcscd.socket.in',
+   install_dir : systemdsystemunitdir,
+@@ -306,7 +309,6 @@ configure_file(output : 'pcscd.service',
+   configuration : confgen_data)
+ install_data('etc/pcscd-sysusers.conf',
+   install_dir : sysusersdir)
+-endif
+ configure_file(output : 'pcscd.8',
+   input : 'doc/pcscd.8.in',
+   install_dir : join_paths(get_option('mandir'), 'man8'),

diff --git 
a/sys-apps/pcsc-lite/files/pcsc-lite-2.4.0-systemd-sysusers-fixup.patch 
b/sys-apps/pcsc-lite/files/pcsc-lite-2.4.0-systemd-sysusers-fixup.patch
new file mode 100644
index 000000000000..0504123d89e9
--- /dev/null
+++ b/sys-apps/pcsc-lite/files/pcsc-lite-2.4.0-systemd-sysusers-fixup.patch
@@ -0,0 +1,11 @@
+--- a/meson.build
++++ b/meson.build
+@@ -139,7 +139,7 @@ if get_option('libsystemd')
+   sysusersdir = systemd.get_variable(pkgconfig : 'sysusersdir')
+ else
+   systemdsystemunitdir = get_option('prefix') / 'lib' / 'systemd' / 
systemdunit
+-  sysusersdir = get_option('prefix') / 'sysusers.d'
++  sysusersdir = get_option('prefix') / 'lib' / 'sysusers.d'
+ endif
+ 
+ # architecture

diff --git a/sys-apps/pcsc-lite/pcsc-lite-2.4.0.ebuild 
b/sys-apps/pcsc-lite/pcsc-lite-2.4.0-r1.ebuild
similarity index 96%
rename from sys-apps/pcsc-lite/pcsc-lite-2.4.0.ebuild
rename to sys-apps/pcsc-lite/pcsc-lite-2.4.0-r1.ebuild
index bf05706c1d1f..a259a978ee17 100644
--- a/sys-apps/pcsc-lite/pcsc-lite-2.4.0.ebuild
+++ b/sys-apps/pcsc-lite/pcsc-lite-2.4.0-r1.ebuild
@@ -44,6 +44,8 @@ BDEPEND="
 
 PATCHES=(
        "${FILESDIR}"/${PN}-2.4.0-change-setup-spy-script-location.patch
+       "${FILESDIR}"/${PN}-2.4.0-systemd-fixes.patch
+       "${FILESDIR}"/${PN}-2.4.0-systemd-sysusers-fixup.patch
 )
 
 multilib_src_configure() {

Reply via email to