commit: 6c83a787829ad36a5cf7e165769ec5463c22bd60 Author: David Seifert <soap <AT> gentoo <DOT> org> AuthorDate: Sat Sep 3 22:19:50 2022 +0000 Commit: David Seifert <soap <AT> gentoo <DOT> org> CommitDate: Sat Sep 3 22:19:50 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c83a787
sys-apps/pcsc-lite: run daemon under 'pcscd' Closes: https://bugs.gentoo.org/545390 Closes: https://bugs.gentoo.org/845174 Signed-off-by: David Seifert <soap <AT> gentoo.org> .../files/pcsc-lite-1.9.8-systemd-user.patch | 14 +++++++++ ...lite-1.9.8.ebuild => pcsc-lite-1.9.8-r1.ebuild} | 34 ++++++++++++---------- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/sys-apps/pcsc-lite/files/pcsc-lite-1.9.8-systemd-user.patch b/sys-apps/pcsc-lite/files/pcsc-lite-1.9.8-systemd-user.patch new file mode 100644 index 000000000000..4cda6999224e --- /dev/null +++ b/sys-apps/pcsc-lite/files/pcsc-lite-1.9.8-systemd-user.patch @@ -0,0 +1,14 @@ +Don't run the daemon as root +https://bugs.gentoo.org/545390 + +--- a/etc/pcscd.service.in ++++ b/etc/pcscd.service.in +@@ -7,6 +7,8 @@ + ExecStart=@sbindir_exp@/pcscd --foreground --auto-exit $PCSCD_ARGS + ExecReload=@sbindir_exp@/pcscd --hotplug + EnvironmentFile=-@sysconfdir@/default/pcscd ++User=pcscd ++Group=pcscd + + [Install] + Also=pcscd.socket diff --git a/sys-apps/pcsc-lite/pcsc-lite-1.9.8.ebuild b/sys-apps/pcsc-lite/pcsc-lite-1.9.8-r1.ebuild similarity index 90% rename from sys-apps/pcsc-lite/pcsc-lite-1.9.8.ebuild rename to sys-apps/pcsc-lite/pcsc-lite-1.9.8-r1.ebuild index 95d5695bbf69..2443f777b019 100644 --- a/sys-apps/pcsc-lite/pcsc-lite-1.9.8.ebuild +++ b/sys-apps/pcsc-lite/pcsc-lite-1.9.8-r1.ebuild @@ -3,13 +3,12 @@ EAPI=8 -PYTHON_COMPAT=( python3_{8..10} ) +PYTHON_COMPAT=( python3_{8..11} ) inherit python-single-r1 systemd udev multilib-minimal 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.bz2" # GPL-2 is there for the init script; everything else comes from @@ -17,41 +16,38 @@ SRC_URI="https://pcsclite.apdu.fr/files/${P}.tar.bz2" LICENSE="BSD ISC MIT GPL-3+ GPL-2" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~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="doc 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 ) +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="sys-devel/flex +BDEPEND=" + sys-devel/flex virtual/pkgconfig" PATCHES=( "${FILESDIR}"/${PN}-1.8.11-polkit-pcscd.patch + "${FILESDIR}"/${PN}-1.9.8-systemd-user.patch ) -DOCS=( AUTHORS HELP README SECURITY ChangeLog ) - multilib_src_configure() { ECONF_SOURCE="${S}" econf \ --disable-maintainer-mode \ --disable-strict \ - --enable-usbdropdir="${EPREFIX}/usr/$(get_libdir)/readers/usb" \ + --enable-usbdropdir="${EPREFIX}"/usr/$(get_libdir)/readers/usb \ --enable-ipcdir=/run/pcscd \ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \ $(multilib_native_use_enable doc documentation) \ @@ -64,6 +60,7 @@ multilib_src_configure() { multilib_src_install_all() { einstalldocs + dodoc HELP SECURITY newinitd "${FILESDIR}"/pcscd-init.7 pcscd @@ -83,20 +80,27 @@ multilib_src_install_all() { 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 elog "This also means you need the newest drivers available so that the" elog "devices get the proper owner." - elog "" + 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 "" + 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 elog " rc_hotplug=\"pcscd\"" fi + + use udev && udev_reload +} + +pkg_postrm() { + use udev && udev_reload }
