Auf Anraten von moneyplex habe ich jetzt mal versucht pcsc-lite in der Version 1.7.4 zu installieren. Ich habe es geschafft, ein installierbares Package für die Version pcsc-lite 1.7.4 (23.06.2011 16:18) zu erstellen (von
https://alioth.debian.org/frs/?group_id=30105). Dieses Pakte habe ich nicht zum Laufen gebracht, da es initd und nicht systemd verwendet. Auch mit den Anleitungen von
http://ludovicrousseau.blogspot.de/2011/11/pcscd-auto-start-using-systemd.html und
https://wiki.archlinux.org/index.php/Systemd#Writing_custom_.service_files leider veraltet ist mir das nicht gelungen. Hat das vielleicht jemand Erfahrung in der Umstellung von initd auf systemd?
Im Folgenden die benötigten Dateien für das Package und die Dateien für den systemd Versuch.
PKGBUILD (hier spielt initd schon rein, install -D -m755 ${srcdir}/pcscd ${pkgdir}/etc/rc.d/pcscd)
# $Id$
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Daniel Plaza <daniel.plaza.espi@gmail.com>
pkgname=pcsclite
pkgver=1.7.4
pkgrel=3
pkgdesc="PC/SC Architecture smartcard middleware library"
arch=('i686' 'x86_64')
url="https://alioth.debian.org/projects/pcsclite/"
license=('BSD')
depends=('udev')
makedepends=('pkgconfig')
options=('!libtool' '!docs')
source=(https://alioth.debian.org/frs/download.php/latestfile/39/pcsc-lite-1.7.4.tar.bz2
pcscd)
md5sums=('1caf0b8ca2ecbf82fe3b035b3fff22dd'
'c97b6bce695222efb0f003d8e8369010')
build() {
cd "${srcdir}/pcsc-lite-${pkgver}"
./configure --prefix=/usr \
--enable-libudev \
--sysconfdir=/etc \
--enable-ipcdir=/run/pcscd \
--enable-usbdropdir=/usr/lib/pcsc/drivers
make
}
package() {
cd "${srcdir}/pcsc-lite-${pkgver}"
make DESTDIR=${pkgdir} install
install -D ${srcdir}/pcsc-lite-${pkgver}/COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
install -D -m755 ${srcdir}/pcscd ${pkgdir}/etc/rc.d/pcscd
install -d ${pkgdir}/usr/lib/pcsc/drivers
}
Die benötigte pcscd (das ist alles auf initd ausgerichtet)
#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
DAEMON=/usr/sbin/pcscd
NAME=pcscd
DESC="PC/SC smart card daemon"
PID_FILE=/run/pcscd/pcscd.pid
PCSCD_OPTIONS=
case "$1" in
start)
stat_busy "Starting $DESC"
$DAEMON $PCSCD_OPTIONS
if [ $? -gt 0 ]; then
stat_fail
else
add_daemon $NAME
stat_done
fi
;;
stop)
stat_busy "Stopping $DESC"
[ -f $PID_FILE ] && kill `cat $PID_FILE` &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
else
rm_daemon $NAME
stat_done
fi
;;
restart)
$0 stop
sleep 3
$0 start
;;
status)
stat_busy "Checking $NAME status";
ck_status $NAME
;;
*)
echo "usage: $0 {start|stop|restart|status}"
;;
esac
exit 0
Die Datei pcscd.service (mein Versuch nachträglich systemd zu ermöglichen in /etc/systemd/system/pscd.d/ Vorlage von
http://ludovicrousseau.blogspot.de/2011/11/pcscd-auto-start-using-systemd.html
[Unit]
Description=PC/SC Smart Card Daemon
Requires=pcscd.socket
[Service]
ExecStart=/usr/sbin/pcscd --foreground --auto-exit
ExecReload=/usr/sbin/pcscd --hotplug
StandardOutput=syslog
[Install]
Also=pcscd.socket
Die Datei pcscd.socket
[Unit]
Description=PC/SC Smart Card Daemon Activation Socket
[Socket]
ListenStream=/var/run/pcscd/pcscd.comm
[Install]
WantedBy=sockets.target
Ein PKGBUILD, abgeguckt aus dem aktuellen PKGBUILD, das aber kein lauffähiges systemd erzeugt hat (Optiom --with-systemdsystemunitdir=/usr/lib/systemd/system ist unbekannt)
# $Id$
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Daniel Plaza <daniel.plaza.espi@gmail.com>
pkgname=pcsclite
pkgver=1.7.4
pkgrel=3
pkgdesc="PC/SC Architecture smartcard middleware library"
arch=('i686' 'x86_64')
url="https://alioth.debian.org/projects/pcsclite/"
license=('BSD')
depends=('udev')
makedepends=('pkgconfig')
options=('!libtool' '!docs')
#source=(https://alioth.debian.org/frs/download.php/latestfile/39/pcsc-lite-1.7.4.tar.bz2
# pcscd)
#md5sums=('1caf0b8ca2ecbf82fe3b035b3fff22dd'
# 'c97b6bce695222efb0f003d8e8369010')
source=(https://alioth.debian.org/frs/download.php/latestfile/39/pcsc-lite-1.7.4.tar.bz2)
md5sums=('1caf0b8ca2ecbf82fe3b035b3fff22dd')
build() {
cd "${srcdir}/pcsc-lite-${pkgver}"
# ./configure --prefix=/usr \
# --enable-libudev \
# --sysconfdir=/etc \
# --enable-ipcdir=/run/pcscd \
# --enable-usbdropdir=/usr/lib/pcsc/drivers
./configure --prefix=/usr \
--sbindir=/usr/bin \
--enable-libudev \
--sysconfdir=/etc \
--enable-ipcdir=/run/pcscd \
--enable-usbdropdir=/usr/lib/pcsc/drivers \
--with-systemdsystemunitdir=/usr/lib/systemd/system
make
}
package() {
cd "${srcdir}/pcsc-lite-${pkgver}"
make DESTDIR=${pkgdir} install
# install -D ${srcdir}/pcsc-lite-${pkgver}/COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
install -D -m644 ${srcdir}/pcsc-lite-${pkgver}/COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
# install -D -m755 ${srcdir}/pcscd ${pkgdir}/etc/rc.d/pcscd
install -d ${pkgdir}/usr/lib/pcsc/drivers
}
Eränzung: Heute habe ich das PKGBUILD mit der Option "--with-systemdsystemunitdir=/usr/lib/systemd/system" ohne Fehlermeldung ausführen können, dann stand aber leider kein pcscd Service zur Verfügung.