From ce7f238f684ffe0929d8d1629208c2afd818dd65 Mon Sep 17 00:00:00 2001 From: Li xin Date: Wed, 21 Jan 2015 18:19:14 +0800 Subject: 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 Signed-off-by: Martin Jansa --- .../openct/etc-openct.udev.in-disablePROGRAM.patch | 31 ++++++++ .../openct/etc-openct_usb.in-modify-UDEVINFO.patch | 35 +++++++++ meta-oe/recipes-support/openct/openct/openct.init | 89 ++++++++++++++++++++++ .../recipes-support/openct/openct/openct.service | 13 ++++ .../recipes-support/openct/openct/openct.sysconfig | 5 ++ 5 files changed, 173 insertions(+) create mode 100644 meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch create mode 100644 meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch create mode 100644 meta-oe/recipes-support/openct/openct/openct.init create mode 100644 meta-oe/recipes-support/openct/openct/openct.service create mode 100644 meta-oe/recipes-support/openct/openct/openct.sysconfig (limited to 'meta-oe/recipes-support/openct/openct') diff --git a/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch b/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch new file mode 100644 index 0000000000..745f923af1 --- /dev/null +++ b/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch @@ -0,0 +1,31 @@ +From e0d3e0bb1e38ff851696a7d8826e651d364ad8ce Mon Sep 17 00:00:00 2001 +From: Li xin +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 +--- + 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 + diff --git a/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch b/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch new file mode 100644 index 0000000000..d5e3fe5753 --- /dev/null +++ b/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch @@ -0,0 +1,35 @@ +From d93985a137b553b2723235d03bda341dab14064f Mon Sep 17 00:00:00 2001 +From: Li xin +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 +--- + 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 + diff --git a/meta-oe/recipes-support/openct/openct/openct.init b/meta-oe/recipes-support/openct/openct/openct.init new file mode 100644 index 0000000000..c6896095e3 --- /dev/null +++ b/meta-oe/recipes-support/openct/openct/openct.init @@ -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 diff --git a/meta-oe/recipes-support/openct/openct/openct.service b/meta-oe/recipes-support/openct/openct/openct.service new file mode 100644 index 0000000000..c9ec497fa5 --- /dev/null +++ b/meta-oe/recipes-support/openct/openct/openct.service @@ -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 diff --git a/meta-oe/recipes-support/openct/openct/openct.sysconfig b/meta-oe/recipes-support/openct/openct/openct.sysconfig new file mode 100644 index 0000000000..ffc270790f --- /dev/null +++ b/meta-oe/recipes-support/openct/openct/openct.sysconfig @@ -0,0 +1,5 @@ +# -*- sh -*- +# Extra options to pass to openct-control. +# Consult "/usr/sbin/openct-control -h" for available options. +# +OPENCT_OPTIONS="" -- cgit 1.2.3-korg