From a4960d87069cb1e2614125a83e02eee2026d7110 Mon Sep 17 00:00:00 2001 From: Sam James Date: Tue, 25 Nov 2025 02:56:56 +0000 Subject: [PATCH] sys-apps/pcsc-lite: add 2.4.0 The polkit & systemd unit changes have been upstreamed in commit f91d765e9559c557edffc3ce3d661afc8b093bbb. 6c2ddd27e37854de1eca0d3e2e64afe888d85d21 fixes the static lib issue (thanks Eli)! Bug: https://bugs.gentoo.org/545390 Closes: https://bugs.gentoo.org/957874 Signed-off-by: Sam James --- sys-apps/pcsc-lite/Manifest | 1 + ...4.0-change-setup-spy-script-location.patch | 13 ++ sys-apps/pcsc-lite/pcsc-lite-2.4.0.ebuild | 112 ++++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100644 sys-apps/pcsc-lite/files/pcsc-lite-2.4.0-change-setup-spy-script-location.patch create mode 100644 sys-apps/pcsc-lite/pcsc-lite-2.4.0.ebuild diff --git a/sys-apps/pcsc-lite/Manifest b/sys-apps/pcsc-lite/Manifest index 0dff0c7ef791..e02fe605c086 100644 --- a/sys-apps/pcsc-lite/Manifest +++ b/sys-apps/pcsc-lite/Manifest @@ -1 +1,2 @@ DIST pcsc-lite-2.3.3.tar.xz 210592 BLAKE2B 939689bde24e53d8ed1b3146c4d379192eb7c7ceb1758b66e05c1264a983e3839cacb59b69f8a852e5fc05912c3da3cc911df9ebd360fbde3f0eb88e5a52341a SHA512 96a62364eb0221828a5e3f65d500f8b83acc27cdc0c40fad2b0f807b399c1a465524421175bd7c05fa4ece152f9afe7f8b60c57ee20fa948af7d8899543a2d12 +DIST pcsc-lite-2.4.0.tar.xz 211940 BLAKE2B 2211cf0cfde8006ece93e0704b2ffbeaeea827b43eaaabfb2abb1061b76d18b407779d509f2de07784a35ae6ca254c107339c51a1d10b17ae346c387900345b3 SHA512 5b662f3902fc352cdf83b0f819fa955781cc755a977bf78a97c86178ba6c66d9c7c489af9ccaf8e534255951c12e88e80f6684af4aed3f0dcd97bba23eec5cd3 diff --git a/sys-apps/pcsc-lite/files/pcsc-lite-2.4.0-change-setup-spy-script-location.patch b/sys-apps/pcsc-lite/files/pcsc-lite-2.4.0-change-setup-spy-script-location.patch new file mode 100644 index 000000000000..8c56b6f859a7 --- /dev/null +++ b/sys-apps/pcsc-lite/files/pcsc-lite-2.4.0-change-setup-spy-script-location.patch @@ -0,0 +1,13 @@ +diff --git a/meson.build b/meson.build +index 4d4d2bf..b92beb4 100644 +--- a/meson.build ++++ b/meson.build +@@ -207,7 +207,7 @@ if get_option('default_library') != 'static' + install_dir : get_option('bindir')) + + install_data('src/spy/setup_spy.sh', +- install_dir : 'share/doc/pcsc-lite') ++ install_dir : get_option('datadir') / 'doc' / meson.project_name()+'-'+meson.project_version()) + + run_command('pod2man', + ['--date=2024-01-01', 'src/spy/pcsc-spy.pod', 'pcsc-spy.1'], diff --git a/sys-apps/pcsc-lite/pcsc-lite-2.4.0.ebuild b/sys-apps/pcsc-lite/pcsc-lite-2.4.0.ebuild new file mode 100644 index 000000000000..bf05706c1d1f --- /dev/null +++ b/sys-apps/pcsc-lite/pcsc-lite-2.4.0.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..13} ) + +inherit meson-multilib python-single-r1 tmpfiles udev + +DESCRIPTION="PC/SC Architecture smartcard middleware library" +HOMEPAGE="https://pcsclite.apdu.fr https://github.com/LudovicRousseau/PCSC" +SRC_URI="https://pcsclite.apdu.fr/files/${P}.tar.xz" + +# GPL-2 is there for the init script; everything else comes from +# upstream. +LICENSE="BSD GPL-3+ BSD-2 ISC GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +# This is called libusb so that it doesn't fool people in thinking that +# it is _required_ for USB support. Otherwise they'll disable udev and +# that's going to be worse. +IUSE="embedded libusb policykit selinux systemd +udev" +REQUIRED_USE="^^ ( udev libusb ) ${PYTHON_REQUIRED_USE}" + +# No dependencies need the MULTILIB_DEPS because the libraries are actually +# standalone, the deps are only needed for the daemon itself. +DEPEND=" + libusb? ( virtual/libusb:1 ) + udev? ( virtual/libudev:= ) + policykit? ( >=sys-auth/polkit-0.111 ) + acct-group/openct + acct-group/pcscd + acct-user/pcscd + ${PYTHON_DEPS} +" +RDEPEND=" + ${DEPEND} + selinux? ( sec-policy/selinux-pcscd ) +" +BDEPEND=" + app-alternatives/lex + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${PN}-2.4.0-change-setup-spy-script-location.patch +) + +multilib_src_configure() { + local emesonargs=( + -Dusbdropdir="${EPREFIX}"/usr/$(get_libdir)/readers/usb + -Dipcdir=/run/pcscd + -Dsystemdunit=system + $(meson_native_use_bool embedded) + $(meson_native_use_bool systemd libsystemd) + $(meson_native_use_bool udev libudev) + $(meson_native_use_bool libusb) + $(meson_native_use_bool policykit polkit) + ) + + meson_src_configure +} + +multilib_src_install_all() { + einstalldocs + dodoc HELP SECURITY + + newinitd "${FILESDIR}"/pcscd-init.7 pcscd + dotmpfiles "${FILESDIR}"/pcscd.conf + + if use udev; then + exeinto "$(get_udevdir)" + newexe "${FILESDIR}"/pcscd-udev pcscd.sh + + insinto "$(get_udevdir)"/rules.d + newins "${FILESDIR}"/99-pcscd-hotplug-r2.rules 99-pcscd-hotplug.rules + fi + + python_fix_shebang "${ED}"/usr/bin/pcsc-spy + + find "${ED}" -name '*.la' -delete || die +} + +pkg_postinst() { + elog "Starting from version 1.6.5, pcsc-lite will start as user nobody in" + elog "the pcscd group, to avoid running as root." + elog + elog "This also means you need the newest drivers available so that the" + elog "devices get the proper owner." + elog + elog "Furthermore, a conf.d file is no longer installed by default, as" + elog "the default configuration does not require one. If you need to" + elog "pass further options to pcscd, create a file and set the" + elog "EXTRA_OPTS variable." + elog + + if use udev; then + elog "Hotplug support is provided by udev rules." + elog "When using OpenRC you additionally need to tell it to hotplug" + elog "pcscd by setting this variable in /etc/rc.conf:" + elog + elog " rc_hotplug=\"pcscd\"" + fi + + tmpfiles_process pcscd.conf + + use udev && udev_reload +} + +pkg_postrm() { + use udev && udev_reload +}