mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-09-16 21:26:26 +00:00
openct: add new recipe
OpenCT implements drivers for several smart card readers. It comes as driver in ifdhandler format for PC/SC-Lite, as CT-API driver, or as a small and lean middleware, so applications can use it with minimal overhead. OpenCT also has a primitive mechanism to export smart card readers to remote machines via TCP/IP. Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
parent
c8f98b15d0
commit
ce7f238f68
@ -0,0 +1,31 @@
|
|||||||
|
From e0d3e0bb1e38ff851696a7d8826e651d364ad8ce Mon Sep 17 00:00:00 2001
|
||||||
|
From: Li xin <lixin.fnst@cn.fujitsu.com>
|
||||||
|
Date: Fri, 5 Dec 2014 02:00:57 +0900
|
||||||
|
Subject: [PATCH 1/2] etc/openct.udev.in: disablePROGRAM
|
||||||
|
|
||||||
|
Bug fix: https://bugzilla.redhat.com/show_bug.cgi?id=287871
|
||||||
|
|
||||||
|
Upstream-status: Pending
|
||||||
|
|
||||||
|
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
|
||||||
|
---
|
||||||
|
etc/openct.udev.in | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/etc/openct.udev.in b/etc/openct.udev.in
|
||||||
|
index d11d0e1..48083c9 100644
|
||||||
|
--- a/etc/openct.udev.in
|
||||||
|
+++ b/etc/openct.udev.in
|
||||||
|
@@ -22,7 +22,8 @@ ACTION!="add", GOTO="openct_usb_rules_end"
|
||||||
|
# 2010-01-06 removed, as latest udev doesn't know WAIT_FOR_ATTR any more.
|
||||||
|
|
||||||
|
# sleep for 100ms - the wait_for_sysfs might not be enough
|
||||||
|
-PROGRAM="/bin/sleep 0.1"
|
||||||
|
+# Disabled in this package - see https://bugzilla.redhat.com/287871
|
||||||
|
+# PROGRAM="/bin/sleep 0.1"
|
||||||
|
|
||||||
|
# ccid
|
||||||
|
ATTR{bInterfaceClass}=="0b", ATTR{bInterfaceSubClass}=="00", ATTR{bInterfaceProtocol}=="00", ATTRS{idVendor}=="?*" RUN+="@udevdir@/openct_usb /dev/$parent"
|
||||||
|
--
|
||||||
|
1.8.4.2
|
||||||
|
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
From d93985a137b553b2723235d03bda341dab14064f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Li xin <lixin.fnst@cn.fujitsu.com>
|
||||||
|
Date: Fri, 5 Dec 2014 02:04:03 +0900
|
||||||
|
Subject: [PATCH 2/2] etc/openct_usb.in: modify UDEVINFO
|
||||||
|
|
||||||
|
this patch is from Fedora
|
||||||
|
|
||||||
|
Upstream-status: Pending
|
||||||
|
|
||||||
|
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
|
||||||
|
---
|
||||||
|
etc/openct_usb.in | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/etc/openct_usb.in b/etc/openct_usb.in
|
||||||
|
index 32f91aa..917467d 100644
|
||||||
|
--- a/etc/openct_usb.in
|
||||||
|
+++ b/etc/openct_usb.in
|
||||||
|
@@ -15,10 +15,10 @@ if [ -z "$DEVNAME" ]; then
|
||||||
|
# Guess udev info interface.
|
||||||
|
# Newer udev uses udevadm
|
||||||
|
#
|
||||||
|
- if which udevinfo > /dev/null 2>&1; then
|
||||||
|
- UDEVINFO="udevinfo"
|
||||||
|
- else
|
||||||
|
+ if which udevadm > /dev/null 2>&1; then
|
||||||
|
UDEVINFO="udevadm info"
|
||||||
|
+ else
|
||||||
|
+ UDEVINFO="udevinfo"
|
||||||
|
fi
|
||||||
|
DEVNAME=/dev/$($UDEVINFO --query=name --path=$(dirname $DEVPATH))
|
||||||
|
fi
|
||||||
|
--
|
||||||
|
1.8.4.2
|
||||||
|
|
||||||
89
meta-oe/recipes-support/openct/openct/openct.init
Normal file
89
meta-oe/recipes-support/openct/openct/openct.init
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# openct This shell script takes care of starting and stopping OpenCT.
|
||||||
|
#
|
||||||
|
# chkconfig: 2345 24 89
|
||||||
|
# description: OpenCT is a middleware framework for smart card terminals.
|
||||||
|
#
|
||||||
|
# processname: ifdhandler
|
||||||
|
# config: /etc/openct.conf
|
||||||
|
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: openct
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Should-Start: $syslog $network
|
||||||
|
# Should-Stop: $syslog $network
|
||||||
|
# Short-Description: Middleware framework for smart card terminals
|
||||||
|
# Description: This starts/stops the OpenCT middleware framework support
|
||||||
|
# for smart card terminals.
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /etc/init.d/functions
|
||||||
|
|
||||||
|
exec="/usr/sbin/openct-control"
|
||||||
|
prog=openct
|
||||||
|
proc=ifdhandler
|
||||||
|
|
||||||
|
OPENCT_OPTIONS=
|
||||||
|
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
|
||||||
|
|
||||||
|
lockfile=/var/lock/subsys/$prog
|
||||||
|
|
||||||
|
start() {
|
||||||
|
retval=0
|
||||||
|
if ! status $proc >/dev/null 2>&1 ; then
|
||||||
|
action $"Initializing OpenCT smart card terminals: " \
|
||||||
|
$exec $OPENCT_OPTIONS init
|
||||||
|
retval=$?
|
||||||
|
[ $retval -eq 0 ] && touch $lockfile
|
||||||
|
fi
|
||||||
|
return $retval
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
if status $proc >/dev/null 2>&1 ; then
|
||||||
|
action $"Stopping OpenCT smart card terminals: " \
|
||||||
|
$exec $OPENCT_OPTIONS shutdown
|
||||||
|
fi
|
||||||
|
retval=$?
|
||||||
|
if [ $retval -eq 0 ] ; then
|
||||||
|
rm -f /var/run/openct/status
|
||||||
|
rm -f $lockfile
|
||||||
|
fi
|
||||||
|
return $retval
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
oct_status() {
|
||||||
|
status $proc
|
||||||
|
retval=$?
|
||||||
|
if [ -e /var/run/openct/status ] ; then
|
||||||
|
$exec $OPENCT_OPTIONS status
|
||||||
|
[ -e /var/run/openct/status ] && \
|
||||||
|
echo $"Waiting for reader attach/detach events..."
|
||||||
|
fi
|
||||||
|
return $retval
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start|stop|restart)
|
||||||
|
$1
|
||||||
|
;;
|
||||||
|
reload|force-reload)
|
||||||
|
restart
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
oct_status
|
||||||
|
;;
|
||||||
|
try-restart|condrestart)
|
||||||
|
[ ! -f $lockfile ] || restart
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
|
||||||
|
exit 2
|
||||||
|
esac
|
||||||
13
meta-oe/recipes-support/openct/openct/openct.service
Normal file
13
meta-oe/recipes-support/openct/openct/openct.service
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Openct Middleware framework for smart card terminals
|
||||||
|
After=syslog.target network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
EnvironmentFile=-/etc/sysconfig/openct
|
||||||
|
ExecStart=/usr/sbin/openct-control $OPENCT_OPTIONS init
|
||||||
|
ExecStop=/usr/sbin/openct-control $OPENCT_OPTIONS shutdown
|
||||||
|
RemainAfterExit=yes
|
||||||
|
KillMode=none
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
5
meta-oe/recipes-support/openct/openct/openct.sysconfig
Normal file
5
meta-oe/recipes-support/openct/openct/openct.sysconfig
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# -*- sh -*-
|
||||||
|
# Extra options to pass to openct-control.
|
||||||
|
# Consult "/usr/sbin/openct-control -h" for available options.
|
||||||
|
#
|
||||||
|
OPENCT_OPTIONS=""
|
||||||
92
meta-oe/recipes-support/openct/openct_0.6.20.bb
Normal file
92
meta-oe/recipes-support/openct/openct_0.6.20.bb
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
Summanry = "Middleware framework for smart card terminals"
|
||||||
|
DESCRIPTION = " \
|
||||||
|
OpenCT implements drivers for several smart card readers. \
|
||||||
|
It comes as driver in ifdhandler format for PC/SC-Lite, \
|
||||||
|
as CT-API driver, or as a small and lean middleware, \
|
||||||
|
so applications can use it with minimal overhead. \
|
||||||
|
OpenCT also has a primitive mechanism to export smart card \
|
||||||
|
readers to remote machines via TCP/IP."
|
||||||
|
|
||||||
|
DEPENDS += "libtool pcsc-lite libusb-compat"
|
||||||
|
|
||||||
|
SRC_URI = " \
|
||||||
|
${DEBIAN_MIRROR}/main/o/${PN}/${PN}_${PV}.orig.tar.gz \
|
||||||
|
file://etc-openct.udev.in-disablePROGRAM.patch \
|
||||||
|
file://etc-openct_usb.in-modify-UDEVINFO.patch \
|
||||||
|
file://openct.init \
|
||||||
|
file://openct.sysconfig \
|
||||||
|
file://openct.service \
|
||||||
|
"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "a1da3358ab798f1cb9232f1dbababc21"
|
||||||
|
SRC_URI[sha256sum] = "6cd3e2933d29eb1f875c838ee58b8071fd61f0ec8ed5922a86c01c805d181a68"
|
||||||
|
|
||||||
|
LICENSE = "LGPLv2+"
|
||||||
|
LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
|
||||||
|
|
||||||
|
inherit ${@base_contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)}
|
||||||
|
SYSTEMD_SERVICE_${PN} += "openct.service "
|
||||||
|
SYSTEMD_AUTO_ENABLE = "enable"
|
||||||
|
|
||||||
|
EXTRA_OECONF=" \
|
||||||
|
--disable-static \
|
||||||
|
--enable-usb \
|
||||||
|
--enable-pcsc \
|
||||||
|
--enable-doc \
|
||||||
|
--enable-api-doc \
|
||||||
|
--with-udev=/lib/udev \
|
||||||
|
--with-bundle=${libdir}/pcsc/drivers \
|
||||||
|
"
|
||||||
|
|
||||||
|
inherit autotools pkgconfig
|
||||||
|
|
||||||
|
FILES_${PN} += " \
|
||||||
|
${libdir}/ctapi \
|
||||||
|
/lib/udev \
|
||||||
|
${libdir}/openct-ifd.so \
|
||||||
|
${libdir}/pcsc \
|
||||||
|
/run/openct/status \
|
||||||
|
"
|
||||||
|
|
||||||
|
FILES_${PN}-dbg += " \
|
||||||
|
${libdir}/ctapi/.debug \
|
||||||
|
${libdir}/pcsc/drivers/openct-ifd.bundle/Contents/Linux/.debug \
|
||||||
|
"
|
||||||
|
|
||||||
|
INSANE_SKIP_${PN} += "dev-deps"
|
||||||
|
|
||||||
|
|
||||||
|
do_install () {
|
||||||
|
rm -rf ${D}
|
||||||
|
install -d ${D}/etc
|
||||||
|
install -dm 755 ${D}/lib/udev
|
||||||
|
# fix up hardcoded paths
|
||||||
|
sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \
|
||||||
|
${WORKDIR}/openct.service ${WORKDIR}/openct.init
|
||||||
|
|
||||||
|
oe_runmake install DESTDIR=${D}
|
||||||
|
install -dm 755 ${D}${libdir}/ctapi/
|
||||||
|
mv ${D}${libdir}/libopenctapi.so ${D}${libdir}/ctapi/
|
||||||
|
install -Dpm 644 etc/openct.udev ${D}/etc/udev/rules.d/60-openct.rules
|
||||||
|
install -pm 644 etc/openct.conf ${D}/etc/openct.conf
|
||||||
|
|
||||||
|
install -Dpm 755 ${WORKDIR}/openct.init ${D}/etc/init.d/openct
|
||||||
|
install -Dpm 644 ${WORKDIR}/openct.sysconfig ${D}/etc/sysconfig/openct
|
||||||
|
|
||||||
|
if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then
|
||||||
|
install -d ${D}/${systemd_unitdir}/system
|
||||||
|
install -m 644 ${WORKDIR}/openct.service ${D}/${systemd_unitdir}/system
|
||||||
|
fi
|
||||||
|
|
||||||
|
so=$(find ${D} -name \*.so | sed "s|^${D}||")
|
||||||
|
sed -i -e 's|\\(LIBPATH\\s*\\).*|\\1$so|' etc/reader.conf
|
||||||
|
install -Dpm 644 etc/reader.conf ${D}/etc/reader.conf.d/openct.conf
|
||||||
|
|
||||||
|
install -dm 755 ${D}${localstatedir}/run/openct
|
||||||
|
touch ${D}${localstatedir}/run/openct/status
|
||||||
|
chmod 644 ${D}${localstatedir}/run/openct/status
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst_${PN} () {
|
||||||
|
ln -sf ctapi/libopenctapi.so ${libdir}/libopenctapi.so
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user