summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/pcsc-lite')
-rw-r--r--sys-apps/pcsc-lite/Manifest4
-rw-r--r--sys-apps/pcsc-lite/files/99-pcscd-hotplug-r1.rules (renamed from sys-apps/pcsc-lite/files/99-pcscd-hotplug.rules)4
-rw-r--r--sys-apps/pcsc-lite/files/pcsc-lite-1.9.8-systemd-user.patch18
-rw-r--r--sys-apps/pcsc-lite/files/pcscd-udev14
-rw-r--r--sys-apps/pcsc-lite/files/pcscd.conf1
-rw-r--r--sys-apps/pcsc-lite/metadata.xml44
-rw-r--r--sys-apps/pcsc-lite/pcsc-lite-2.0.0.ebuild (renamed from sys-apps/pcsc-lite/pcsc-lite-1.8.24.ebuild)95
-rw-r--r--sys-apps/pcsc-lite/pcsc-lite-2.0.1.ebuild (renamed from sys-apps/pcsc-lite/pcsc-lite-1.8.25.ebuild)95
8 files changed, 152 insertions, 123 deletions
diff --git a/sys-apps/pcsc-lite/Manifest b/sys-apps/pcsc-lite/Manifest
index 512f42f167fd..59e3eaefc649 100644
--- a/sys-apps/pcsc-lite/Manifest
+++ b/sys-apps/pcsc-lite/Manifest
@@ -1,2 +1,2 @@
-DIST pcsc-lite-1.8.24.tar.bz2 755670 BLAKE2B 22cc072978e221d455373e1fdeb21ae8f3dacdd188a4e8a69ef44202924e6c17c4282d424c88ac32b04c62af6e67787f2d2ba936bd3e3667452b32c40254de28 SHA512 df2e6a7a8179563a6dbf654ab75cf78a4b297b0562214a081d7d2b5d00fd4adf92fd892bd16aacf9d5e2867f3ad46c88a88e5834e311011f37556dd7e8936a0c
-DIST pcsc-lite-1.8.25.tar.bz2 757099 BLAKE2B c34727833206b4c868e4f0cd6f8bcaf6899695a92488df8e2fc815c00771ea2f248d9d5fa457c02fc437b8350cbfa37390e07f45b90d08630c8afc34b247034a SHA512 0da63cefd70d9524b2afabd62c5f404758c805b84bbe9ef64fb801ef91a8934c38495513022565ea31bd8550b23bc95b9e9b098ddc76930e3d0643c1fbfb5deb
+DIST pcsc-lite-2.0.0.tar.bz2 799011 BLAKE2B d93fffebbe3daf389fcd8195c9fb3d76db64dbb98ac9c7ecd08338331389298e710ca71187cb73165868b0b5e66cb9735b60e22d508db1c1a81e04555103948a SHA512 4b34628d3269ae1859f19d2ab7eb74a76a55f3d76fbc9e4e420a081a065b1d0d7b98680552c7208f3265c684bed844afc6be1c2e5f103ad916ce7f38b52ee68c
+DIST pcsc-lite-2.0.1.tar.bz2 815103 BLAKE2B a9eea4a4da1a78fc22797b17c128889b2f7caf8c4aa02dd77f4ac79e4ec458fb0162578b5422552545cd39303750d5396f3687f8cfee7603fad8d60cb54ee1e8 SHA512 af007f00f43e8d897710580f6f27814c9e7d3ca489ff01edf2e3b979e46267915aa04d9c15f225a420fa681de936e42a1d4779d962717cf9a9f4a3d1ca31502b
diff --git a/sys-apps/pcsc-lite/files/99-pcscd-hotplug.rules b/sys-apps/pcsc-lite/files/99-pcscd-hotplug-r1.rules
index e6ee464344ff..fc612d5e25f3 100644
--- a/sys-apps/pcsc-lite/files/99-pcscd-hotplug.rules
+++ b/sys-apps/pcsc-lite/files/99-pcscd-hotplug-r1.rules
@@ -1,6 +1,6 @@
-# Copyright 1999-2010 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# We add this here so that it runs after ccid's and ifd-gempc's rules;
# if we just added a pcscd-owned device, we hotplug the pcscd service.
-ACTION=="add", ENV{PCSCD}=="1", GROUP="pcscd", RUN+="/bin/env IN_HOTPLUG=1 /etc/init.d/pcscd --quiet start"
+ACTION=="add", ENV{PCSCD}=="1", GROUP="pcscd", TAG+="systemd", ENV{SYSTEMD_WANTS}+="pcscd.service", RUN+="pcscd.sh"
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..4d64c5c032f0
--- /dev/null
+++ b/sys-apps/pcsc-lite/files/pcsc-lite-1.9.8-systemd-user.patch
@@ -0,0 +1,18 @@
+Don't run the daemon as root
+https://bugs.gentoo.org/545390
+
+--- a/etc/pcscd.service.in
++++ b/etc/pcscd.service.in
+@@ -4,9 +4,12 @@
+ Documentation=man:pcscd(8)
+
+ [Service]
++PIDFile=/run/pcscd/pcscd.pid
+ 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/files/pcscd-udev b/sys-apps/pcsc-lite/files/pcscd-udev
new file mode 100644
index 000000000000..e6d6c7348887
--- /dev/null
+++ b/sys-apps/pcsc-lite/files/pcscd-udev
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# pcscd.sh: udev external RUN script
+#
+# based on netifrc net.sh helper
+# Copyright 2007 Roy Marples <uberlord@gentoo.org>
+# Distributed under the terms of the GNU General Public License v2
+
+# make sure openrc is managing services
+if [ ! -d /run/openrc ]; then
+ exit 0
+fi
+
+IN_HOTPLUG=1 /etc/init.d/pcscd --quiet start
diff --git a/sys-apps/pcsc-lite/files/pcscd.conf b/sys-apps/pcsc-lite/files/pcscd.conf
new file mode 100644
index 000000000000..168c860e88c8
--- /dev/null
+++ b/sys-apps/pcsc-lite/files/pcscd.conf
@@ -0,0 +1 @@
+d /run/pcscd 0755 pcscd pcscd -
diff --git a/sys-apps/pcsc-lite/metadata.xml b/sys-apps/pcsc-lite/metadata.xml
index a91aa068052e..90fbe94fb35c 100644
--- a/sys-apps/pcsc-lite/metadata.xml
+++ b/sys-apps/pcsc-lite/metadata.xml
@@ -1,32 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="project">
- <email>crypto@gentoo.org</email>
- <name>Crypto</name>
- </maintainer>
- <longdescription>
- PC/SC Architecture smartcard middleware library
- </longdescription>
-
- <use>
- <flag name="libusb" restrict="&gt;=sys-apps/pcsc-lite-1.8.0">
- Use <pkg>dev-libs/libusb</pkg> detection to hotplug new
- smartcard readers. This flag should only be enabled if you're
- running a non-Linux kernel or you don't want to use
- <pkg>sys-fs/udev</pkg>.
- </flag>
-
- <flag name="udev">
- Use <pkg>sys-fs/udev</pkg> rules to handle devices' permissions
- and hotplug support. Unless you know what you're doing do not
- disable this flag on Linux kernels. This is provided as an
- option for completeness.
- </flag>
-
- <flag name="policykit">
- Uses <pkg>sys-auth/polkit</pkg> to restrict access to smartcard readers or
- smartcars to given users.
- </flag>
- </use>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <use>
+ <flag name="embedded">limit RAM and CPU ressources by disabling features</flag>
+ <flag name="libusb" restrict="&gt;=sys-apps/pcsc-lite-1.8.0">Use <pkg>dev-libs/libusb</pkg> detection to hotplug new smartcard readers. This flag should only be enabled if you're running a non-Linux kernel or you don't want to use udev.</flag>
+ <flag name="udev">Use <pkg>virtual/libudev</pkg> rules to handle devices' permissions and hotplug support. Unless you know what you're doing do not disable this flag on Linux kernels. This is provided as an option for completeness.</flag>
+ <flag name="policykit">Uses <pkg>sys-auth/polkit</pkg> to restrict access to smartcard readers or smartcards to given users.</flag>
+ </use>
+ <upstream>
+ <changelog>https://salsa.debian.org/rousseau/PCSC/blob/master/ChangeLog</changelog>
+ <remote-id type="github">LudovicRousseau/PCSC</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/sys-apps/pcsc-lite/pcsc-lite-1.8.24.ebuild b/sys-apps/pcsc-lite/pcsc-lite-2.0.0.ebuild
index 93765f85c0f2..661385f197ba 100644
--- a/sys-apps/pcsc-lite/pcsc-lite-1.8.24.ebuild
+++ b/sys-apps/pcsc-lite/pcsc-lite-2.0.0.ebuild
@@ -1,63 +1,58 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python2_7 python3_{5,6} )
+EAPI=8
-inherit python-single-r1 systemd udev user multilib-minimal
+PYTHON_COMPAT=( python3_{10..11} )
-DESCRIPTION="PC/SC Architecture smartcard middleware library"
-HOMEPAGE="https://pcsclite.apdu.fr/"
+inherit python-single-r1 systemd tmpfiles 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
# upstream.
LICENSE="BSD ISC MIT GPL-3+ GPL-2"
SLOT="0"
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~m68k ppc ppc64 s390 ~sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~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="python libusb policykit selinux systemd +udev"
-
-REQUIRED_USE="^^ ( udev libusb ) \
- python? ( ${PYTHON_REQUIRED_USE} )"
+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 )
- udev? ( virtual/udev )
+DEPEND="
+ libusb? ( virtual/libusb:1 )
+ udev? ( virtual/libudev:= )
policykit? ( >=sys-auth/polkit-0.111 )
- python? ( ${PYTHON_DEPS} )"
+ acct-group/openct
+ acct-group/pcscd
+ acct-user/pcscd
+ ${PYTHON_DEPS}"
RDEPEND="${DEPEND}
- !<app-crypt/ccid-1.4.1-r1
- !<sys-apps/baselayout-2
- !<sys-apps/openrc-0.11.8
selinux? ( sec-policy/selinux-pcscd )"
-BDEPEND="virtual/pkgconfig"
+BDEPEND="
+ app-alternatives/lex
+ 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 )
-
-pkg_setup() {
- use python && python-single-r1_pkg_setup
- enewgroup openct # make sure it exists
- enewgroup pcscd
- enewuser pcscd -1 -1 /run/pcscd pcscd,openct
-}
-
multilib_src_configure() {
ECONF_SOURCE="${S}" econf \
--disable-maintainer-mode \
- --enable-usbdropdir="${EPREFIX}/usr/$(get_libdir)/readers/usb" \
+ --disable-strict \
+ --enable-usbdropdir="${EPREFIX}"/usr/$(get_libdir)/readers/usb \
--enable-ipcdir=/run/pcscd \
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
- $(multilib_native_use_enable systemd libsystemd) \
+ $(multilib_native_use_enable doc documentation) \
+ $(multilib_native_use_enable embedded) \
+ $(multilib_native_use_enable systemd libsystemd) \
$(multilib_native_use_enable udev libudev) \
$(multilib_native_use_enable libusb) \
$(multilib_native_use_enable policykit polkit)
@@ -65,40 +60,50 @@ multilib_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
- doins "${FILESDIR}"/99-pcscd-hotplug.rules
+ newins "${FILESDIR}"/99-pcscd-hotplug-r1.rules 99-pcscd-hotplug.rules
fi
- for f in "${ED}/usr/bin/pcsc-spy"; do
- if use python; then
- python_fix_shebang "${f}"
- else
- rm "${f}"
- fi
- done
+ 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
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; you only need to tell"
- elog "the init system to hotplug it, by setting this variable in"
- elog "/etc/rc.conf:"
- elog ""
+ 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
}
diff --git a/sys-apps/pcsc-lite/pcsc-lite-1.8.25.ebuild b/sys-apps/pcsc-lite/pcsc-lite-2.0.1.ebuild
index 77ffad5c2320..5d5823a7adbb 100644
--- a/sys-apps/pcsc-lite/pcsc-lite-1.8.25.ebuild
+++ b/sys-apps/pcsc-lite/pcsc-lite-2.0.1.ebuild
@@ -1,63 +1,58 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
+EAPI=8
-inherit python-single-r1 systemd udev user multilib-minimal
+PYTHON_COMPAT=( python3_{10..12} )
-DESCRIPTION="PC/SC Architecture smartcard middleware library"
-HOMEPAGE="https://pcsclite.apdu.fr/"
+inherit python-single-r1 systemd tmpfiles 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
# upstream.
LICENSE="BSD ISC MIT GPL-3+ GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~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="python libusb policykit selinux systemd +udev"
-
-REQUIRED_USE="^^ ( udev libusb )
- python? ( ${PYTHON_REQUIRED_USE} )"
+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 )
- udev? ( virtual/udev )
+DEPEND="
+ libusb? ( virtual/libusb:1 )
+ udev? ( virtual/libudev:= )
policykit? ( >=sys-auth/polkit-0.111 )
- python? ( ${PYTHON_DEPS} )"
+ acct-group/openct
+ acct-group/pcscd
+ acct-user/pcscd
+ ${PYTHON_DEPS}"
RDEPEND="${DEPEND}
- !<app-crypt/ccid-1.4.1-r1
- !<sys-apps/baselayout-2
- !<sys-apps/openrc-0.11.8
selinux? ( sec-policy/selinux-pcscd )"
-BDEPEND="virtual/pkgconfig"
+BDEPEND="
+ app-alternatives/lex
+ 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 )
-
-pkg_setup() {
- use python && python-single-r1_pkg_setup
- enewgroup openct # make sure it exists
- enewgroup pcscd
- enewuser pcscd -1 -1 /run/pcscd pcscd,openct
-}
-
multilib_src_configure() {
ECONF_SOURCE="${S}" econf \
--disable-maintainer-mode \
- --enable-usbdropdir="${EPREFIX}/usr/$(get_libdir)/readers/usb" \
+ --disable-strict \
+ --enable-usbdropdir="${EPREFIX}"/usr/$(get_libdir)/readers/usb \
--enable-ipcdir=/run/pcscd \
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
- $(multilib_native_use_enable systemd libsystemd) \
+ $(multilib_native_use_enable doc documentation) \
+ $(multilib_native_use_enable embedded) \
+ $(multilib_native_use_enable systemd libsystemd) \
$(multilib_native_use_enable udev libudev) \
$(multilib_native_use_enable libusb) \
$(multilib_native_use_enable policykit polkit)
@@ -65,40 +60,50 @@ multilib_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
- doins "${FILESDIR}"/99-pcscd-hotplug.rules
+ newins "${FILESDIR}"/99-pcscd-hotplug-r1.rules 99-pcscd-hotplug.rules
fi
- for f in "${ED}/usr/bin/pcsc-spy"; do
- if use python; then
- python_fix_shebang "${f}"
- else
- rm "${f}" || die
- fi
- done
+ 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
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; you only need to tell"
- elog "the init system to hotplug it, by setting this variable in"
- elog "/etc/rc.conf:"
- elog ""
+ 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
}