blob: 2b817740a7464c859a05334700ea533d2fbf9dab (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
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 ~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="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/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
virtual/pkgconfig"
PATCHES=(
"${FILESDIR}"/${PN}-1.8.11-polkit-pcscd.patch
"${FILESDIR}"/${PN}-1.9.8-systemd-user.patch
)
multilib_src_configure() {
ECONF_SOURCE="${S}" econf \
--disable-maintainer-mode \
--disable-strict \
--enable-usbdropdir="${EPREFIX}"/usr/$(get_libdir)/readers/usb \
--enable-ipcdir=/run/pcscd \
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
$(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)
}
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-r1.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
}
|