Hello community,

here is the log from the commit of package pcsc-ccid for openSUSE:Factory 
checked in at 2015-10-26 12:49:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pcsc-ccid (Old)
 and      /work/SRC/openSUSE:Factory/.pcsc-ccid.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pcsc-ccid"

Changes:
--------
--- /work/SRC/openSUSE:Factory/pcsc-ccid/pcsc-ccid.changes      2015-08-05 
19:17:22.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pcsc-ccid.new/pcsc-ccid.changes 2015-10-26 
12:49:16.000000000 +0100
@@ -1,0 +2,45 @@
+Sun Oct 25 09:39:20 UTC 2015 - w...@rosenauer.org
+
+- Updated to version 1.4.21
+  * Add support of
+    ACS ACR1252 Dual Reader
+    Chicony HP USB Smartcard CCID Keyboard JP
+    Chicony HP USB Smartcard CCID Keyboard KR
+    FT ePass2003Auto
+    Feitian bR301 BLE
+    Feitian iR301 (ProductID 0x0619)
+    Feitian iR301 (ProductID 0x061C)
+    Identiv @MAXX ID-1 Smart Card Reader
+    Identiv @MAXX Light2 token
+    Identiv CLOUD 2980 F Smart Card Reader
+    Identiv Identiv uTrust 4701 F Dual Interface Reader
+    Identiv SCR3500 A Contact Reader
+    Identiv SCR3500 B Contact Reader
+    Identiv SCR35xx USB Smart Card Reader
+    Identiv uTrust 2900 R Smart Card Reader
+    Identiv uTrust 2910 R Smart Card Reader
+    Identiv uTrust 2910 R Taglio SC Reader
+    Identiv uTrust 3512 SAM slot Token
+    Identiv uTrust 3522 embd SE RFID Token
+    Identiv uTrust 3700 F CL Reader
+    Identiv uTrust 3701 F CL Reader
+    Identive Identive CLOUD 4000 F DTC
+    Liteon HP SC Keyboard - Apollo (Liteon)
+    Liteon HP SC Keyboard - Apollo JP (Liteon)
+    Liteon HP SC Keyboard - Apollo KR (Liteon)
+    Nitrokey Nitrokey HSM
+    Nitrokey Nitrokey Pro
+    Nitrokey Nitrokey Start
+    Rocketek RT-SCR1
+    VASCO DIGIPASS 875
+    WatchCNPC USB CCID Key
+  * Remove support of
+    Crypto Stick Crypto Stick v1.4 is an old version of Nitrokey Nitrokey Pro
+    Free Software Initiative of Japan Gnuk Token is an old version
+    of Nitrokey Nitrokey Start
+  * Add Feitain R502 dual interface (composite) reader on Mac OS X
+  * display a human readable version of the error code returned by libusb
+  * Mac OS X: wait until libusb/the reader is ready
+  * some minor bugs fixed
+
+-------------------------------------------------------------------

Old:
----
  ccid-1.4.20.tar.bz2
  ccid-1.4.20.tar.bz2.asc

New:
----
  ccid-1.4.21.tar.bz2
  ccid-1.4.21.tar.bz2.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pcsc-ccid.spec ++++++
--- /var/tmp/diff_new_pack.r8fxRZ/_old  2015-10-26 12:49:17.000000000 +0100
+++ /var/tmp/diff_new_pack.r8fxRZ/_new  2015-10-26 12:49:17.000000000 +0100
@@ -24,7 +24,7 @@
 
 Name:           pcsc-ccid
 %define _name ccid
-Version:        1.4.20
+Version:        1.4.21
 Release:        0
 Summary:        PCSC Driver for CCID Based Smart Card Readers and GemPC Twin 
Serial Reader
 License:        LGPL-2.1+

++++++ ccid-1.4.20.tar.bz2 -> ccid-1.4.21.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/Makefile.in new/ccid-1.4.21/Makefile.in
--- old/ccid-1.4.20/Makefile.in 2015-08-05 13:22:48.000000000 +0200
+++ new/ccid-1.4.21/Makefile.in 2015-10-21 20:40:44.000000000 +0200
@@ -339,6 +339,7 @@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 serialconfdir = @serialconfdir@
 sharedstatedir = @sharedstatedir@
@@ -376,15 +377,15 @@
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
-             $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+             echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+             $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
                && exit 0; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu Makefile
+         $(AUTOMAKE) --foreign Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/README new/ccid-1.4.21/README
--- old/ccid-1.4.20/README      2015-08-05 13:22:40.000000000 +0200
+++ new/ccid-1.4.21/README      2015-10-21 20:40:07.000000000 +0200
@@ -118,6 +118,50 @@
 History:
 ========
 
+1.4.21 - 21 October 2015, Ludovic Rousseau
+    - Add support of
+      . ACS ACR1252 Dual Reader
+      . Chicony HP USB Smartcard CCID Keyboard JP
+      . Chicony HP USB Smartcard CCID Keyboard KR
+      . FT ePass2003Auto
+      . Feitian bR301 BLE
+      . Feitian iR301 (ProductID 0x0619)
+      . Feitian iR301 (ProductID 0x061C)
+      . Identiv @MAXX ID-1 Smart Card Reader
+      . Identiv @MAXX Light2 token
+      . Identiv CLOUD 2980 F Smart Card Reader
+      . Identiv Identiv uTrust 4701 F Dual Interface Reader
+      . Identiv SCR3500 A Contact Reader
+      . Identiv SCR3500 B Contact Reader
+      . Identiv SCR35xx USB Smart Card Reader
+      . Identiv uTrust 2900 R Smart Card Reader
+      . Identiv uTrust 2910 R Smart Card Reader
+      . Identiv uTrust 2910 R Taglio SC Reader
+      . Identiv uTrust 3512 SAM slot Token
+      . Identiv uTrust 3522 embd SE RFID Token
+      . Identiv uTrust 3700 F CL Reader
+      . Identiv uTrust 3701 F CL Reader
+      . Identive Identive CLOUD 4000 F DTC
+      . Liteon HP SC Keyboard - Apollo (Liteon)
+      . Liteon HP SC Keyboard - Apollo JP (Liteon)
+      . Liteon HP SC Keyboard - Apollo KR (Liteon)
+      . Nitrokey Nitrokey HSM
+      . Nitrokey Nitrokey Pro
+      . Nitrokey Nitrokey Start
+      . Rocketek RT-SCR1
+      . VASCO DIGIPASS 875
+      . WatchCNPC USB CCID Key
+    - Remove support of
+      . Crypto Stick Crypto Stick v1.4 is an old version of Nitrokey Nitrokey 
Pro
+      . Free Software Initiative of Japan Gnuk Token is an old version
+        of Nitrokey Nitrokey Start
+    - Add Feitain R502 dual interface (composite) reader on Mac OS X
+    - display a human readable version of the error code returned by
+      libusb
+    - Mac OS X: wait until libusb/the reader is ready
+    - some minor bugs fixed
+
+
 1.4.20 - 5 August 2015, Ludovic Rousseau
     - Add support of
       . ACS ACR1251 Dual Reader
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/config.guess new/ccid-1.4.21/config.guess
--- old/ccid-1.4.20/config.guess        2015-08-05 11:37:59.000000000 +0200
+++ new/ccid-1.4.21/config.guess        2015-10-21 20:40:30.000000000 +0200
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2014 Free Software Foundation, Inc.
+#   Copyright 1992-2015 Free Software Foundation, Inc.
 
-timestamp='2014-03-23'
+timestamp='2015-08-20'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -24,12 +24,12 @@
 # program.  This Exception is an additional permission under section 7
 # of the GNU General Public License, version 3 ("GPLv3").
 #
-# Originally written by Per Bothner.
+# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # You can get the latest version of this script from:
 # 
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 #
-# Please send patches with a ChangeLog entry to config-patc...@gnu.org.
+# Please send patches to <config-patc...@gnu.org>.
 
 
 me=`echo "$0" | sed -e 's,.*/,,'`
@@ -50,7 +50,7 @@
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2014 Free Software Foundation, Inc.
+Copyright 1992-2015 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -168,20 +168,27 @@
        # Note: NetBSD doesn't particularly care about the vendor
        # portion of the name.  We always set it to "unknown".
        sysctl="sysctl -n hw.machine_arch"
-       UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-           /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+       UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+           /sbin/$sysctl 2>/dev/null || \
+           /usr/sbin/$sysctl 2>/dev/null || \
+           echo unknown)`
        case "${UNAME_MACHINE_ARCH}" in
            armeb) machine=armeb-unknown ;;
            arm*) machine=arm-unknown ;;
            sh3el) machine=shl-unknown ;;
            sh3eb) machine=sh-unknown ;;
            sh5el) machine=sh5le-unknown ;;
+           earmv*)
+               arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 
's,^e\(armv[0-9]\).*$,\1,'`
+               endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 
's,^.*\(eb\)$,\1,p'`
+               machine=${arch}${endian}-unknown
+               ;;
            *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
        esac
        # The Operating System including object format, if it has switched
        # to ELF recently, or will in the future.
        case "${UNAME_MACHINE_ARCH}" in
-           arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+           arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax)
                eval $set_cc_for_build
                if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
                        | grep -q __ELF__
@@ -197,6 +204,13 @@
                os=netbsd
                ;;
        esac
+       # Determine ABI tags.
+       case "${UNAME_MACHINE_ARCH}" in
+           earm*)
+               expr='s/^earmv[0-9]/-eabi/;s/eb$//'
+               abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+               ;;
+       esac
        # The OS release
        # Debian GNU/NetBSD machines have a different userland, and
        # thus, need a distinct triplet. However, they do not need
@@ -207,13 +221,13 @@
                release='-gnu'
                ;;
            *)
-               release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+               release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. 
-f1,2`
                ;;
        esac
        # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
        # contains redundant information, the shorter form:
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-       echo "${machine}-${os}${release}"
+       echo "${machine}-${os}${release}${abi}"
        exit ;;
     *:Bitrig:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
@@ -235,6 +249,9 @@
     *:MirBSD:*:*)
        echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
        exit ;;
+    *:Sortix:*:*)
+       echo ${UNAME_MACHINE}-unknown-sortix
+       exit ;;
     alpha:OSF1:*:*)
        case $UNAME_RELEASE in
        *4.0)
@@ -579,8 +596,9 @@
        else
                IBM_ARCH=powerpc
        fi
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
+       if [ -x /usr/bin/lslpp ] ; then
+               IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+                          awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
        else
                IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
        fi
@@ -932,6 +950,9 @@
     crisv32:Linux:*:*)
        echo ${UNAME_MACHINE}-axis-linux-${LIBC}
        exit ;;
+    e2k:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
     frv:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
@@ -1020,7 +1041,7 @@
        echo ${UNAME_MACHINE}-dec-linux-${LIBC}
        exit ;;
     x86_64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
        exit ;;
     xtensa*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/config.sub new/ccid-1.4.21/config.sub
--- old/ccid-1.4.20/config.sub  2015-08-05 11:37:59.000000000 +0200
+++ new/ccid-1.4.21/config.sub  2015-10-21 20:40:30.000000000 +0200
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2014 Free Software Foundation, Inc.
+#   Copyright 1992-2015 Free Software Foundation, Inc.
 
-timestamp='2014-09-11'
+timestamp='2015-08-20'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -25,7 +25,7 @@
 # of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches with a ChangeLog entry to config-patc...@gnu.org.
+# Please send patches to <config-patc...@gnu.org>.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -68,7 +68,7 @@
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2014 Free Software Foundation, Inc.
+Copyright 1992-2015 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -117,7 +117,7 @@
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
   linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | 
kfreebsd*-gnu* | \
-  knetbsd*-gnu* | netbsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
@@ -255,12 +255,13 @@
        | arc | arceb \
        | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
        | avr | avr32 \
+       | ba \
        | be32 | be64 \
        | bfin \
        | c4x | c8051 | clipper \
        | d10v | d30v | dlx | dsp16xx \
-       | epiphany \
-       | fido | fr30 | frv \
+       | e2k | epiphany \
+       | fido | fr30 | frv | ft32 \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
        | hexagon \
        | i370 | i860 | i960 | ia64 \
@@ -305,7 +306,7 @@
        | riscv32 | riscv64 \
        | rl78 | rx \
        | score \
-       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | 
shbe | shle | sh[1234]le | sh3ele \
+       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | 
shbe | shle | sh[1234]le | sh3ele \
        | sh64 | sh64le \
        | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | 
sparclite \
        | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@@ -313,6 +314,7 @@
        | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
        | ubicom32 \
        | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+       | visium \
        | we32k \
        | x86 | xc16x | xstormy16 | xtensa \
        | z8k | z80)
@@ -327,6 +329,9 @@
        c6x)
                basic_machine=tic6x-unknown
                ;;
+       leon|leon[3-9])
+               basic_machine=sparc-$basic_machine
+               ;;
        m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
                basic_machine=$basic_machine-unknown
                os=-none
@@ -372,12 +377,13 @@
        | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
        | avr-* | avr32-* \
+       | ba-* \
        | be32-* | be64-* \
        | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* \
        | c8051-* | clipper-* | craynv-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
-       | elxsi-* \
+       | e2k-* | elxsi-* \
        | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
        | h8300-* | h8500-* \
        | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
@@ -424,12 +430,13 @@
        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
        | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
        | pyramid-* \
+       | riscv32-* | riscv64-* \
        | rl78-* | romp-* | rs6000-* | rx-* \
        | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* 
| sheb-* | shbe-* \
        | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
        | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | 
sparclet-* \
        | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
        | tahoe-* \
        | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
        | tile*-* \
@@ -437,6 +444,7 @@
        | ubicom32-* \
        | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
        | vax-* \
+       | visium-* \
        | we32k-* \
        | x86-* | x86_64-* | xc16x-* | xps100-* \
        | xstormy16-* | xtensa*-* \
@@ -513,6 +521,9 @@
                basic_machine=i386-pc
                os=-aros
                ;;
+        asmjs)
+               basic_machine=asmjs-unknown
+               ;;
        aux)
                basic_machine=m68k-apple
                os=-aux
@@ -774,6 +785,9 @@
                basic_machine=m68k-isi
                os=-sysv
                ;;
+       leon-*|leon[3-9]-*)
+               basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+               ;;
        m68knommu)
                basic_machine=m68k-unknown
                os=-linux
@@ -1365,7 +1379,7 @@
              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | 
-solaris* \
              | -sym* | -kopensolaris* | -plan9* \
              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* | -aros* \
+             | -aos* | -aros* | -cloudabi* | -sortix* \
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
              | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/configure new/ccid-1.4.21/configure
--- old/ccid-1.4.20/configure   2015-08-05 13:22:48.000000000 +0200
+++ new/ccid-1.4.21/configure   2015-10-21 20:40:44.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ccid 1.4.20.
+# Generated by GNU Autoconf 2.69 for ccid 1.4.21.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@
 # Identity of this package.
 PACKAGE_NAME='ccid'
 PACKAGE_TARNAME='ccid'
-PACKAGE_VERSION='1.4.20'
-PACKAGE_STRING='ccid 1.4.20'
+PACKAGE_VERSION='1.4.21'
+PACKAGE_STRING='ccid 1.4.21'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -762,6 +762,7 @@
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -861,6 +862,7 @@
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1113,6 +1115,15 @@
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1250,7 +1261,7 @@
 for ac_var in  exec_prefix prefix bindir sbindir libexecdir datarootdir \
                datadir sysconfdir sharedstatedir localstatedir includedir \
                oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-               libdir localedir mandir
+               libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1363,7 +1374,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ccid 1.4.20 to adapt to many kinds of systems.
+\`configure' configures ccid 1.4.21 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1403,6 +1414,7 @@
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1433,7 +1445,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ccid 1.4.20:";;
+     short | recursive ) echo "Configuration of ccid 1.4.21:";;
    esac
   cat <<\_ACEOF
 
@@ -1570,7 +1582,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ccid configure 1.4.20
+ccid configure 1.4.21
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1989,7 +2001,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ccid $as_me 1.4.20, which was
+It was created by ccid $as_me 1.4.21, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2853,7 +2865,7 @@
 
 # Define the identity of the package.
  PACKAGE='ccid'
- VERSION='1.4.20'
+ VERSION='1.4.21'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14187,7 +14199,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ccid $as_me 1.4.20, which was
+This file was extended by ccid $as_me 1.4.21, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14253,7 +14265,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-ccid config.status 1.4.20
+ccid config.status 1.4.21
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/configure.ac new/ccid-1.4.21/configure.ac
--- old/ccid-1.4.20/configure.ac        2015-08-05 13:22:40.000000000 +0200
+++ new/ccid-1.4.21/configure.ac        2015-10-21 20:40:07.000000000 +0200
@@ -6,7 +6,7 @@
 # Require autoconf 2.61
 AC_PREREQ([2.69])
 
-AC_INIT([ccid],[1.4.20])
+AC_INIT([ccid],[1.4.21])
 AC_CONFIG_SRCDIR(src/ifdhandler.c)
 AC_CONFIG_AUX_DIR([.])
 AM_INIT_AUTOMAKE(1.8 dist-bzip2 no-dist-gzip subdir-objects)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ccid-1.4.20/contrib/Kobil_mIDentity_switch/Makefile.in 
new/ccid-1.4.21/contrib/Kobil_mIDentity_switch/Makefile.in
--- old/ccid-1.4.20/contrib/Kobil_mIDentity_switch/Makefile.in  2015-08-05 
13:22:48.000000000 +0200
+++ new/ccid-1.4.21/contrib/Kobil_mIDentity_switch/Makefile.in  2015-10-21 
20:40:44.000000000 +0200
@@ -311,6 +311,7 @@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 serialconfdir = @serialconfdir@
 sharedstatedir = @sharedstatedir@
@@ -341,9 +342,9 @@
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu 
contrib/Kobil_mIDentity_switch/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign 
contrib/Kobil_mIDentity_switch/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu contrib/Kobil_mIDentity_switch/Makefile
+         $(AUTOMAKE) --foreign contrib/Kobil_mIDentity_switch/Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/contrib/Makefile.in 
new/ccid-1.4.21/contrib/Makefile.in
--- old/ccid-1.4.20/contrib/Makefile.in 2015-08-05 13:22:48.000000000 +0200
+++ new/ccid-1.4.21/contrib/Makefile.in 2015-10-21 20:40:44.000000000 +0200
@@ -313,6 +313,7 @@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 serialconfdir = @serialconfdir@
 sharedstatedir = @sharedstatedir@
@@ -338,9 +339,9 @@
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu contrib/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign contrib/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu contrib/Makefile
+         $(AUTOMAKE) --foreign contrib/Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/contrib/RSA_SecurID/Makefile.in 
new/ccid-1.4.21/contrib/RSA_SecurID/Makefile.in
--- old/ccid-1.4.20/contrib/RSA_SecurID/Makefile.in     2015-08-05 
13:22:48.000000000 +0200
+++ new/ccid-1.4.21/contrib/RSA_SecurID/Makefile.in     2015-10-21 
20:40:44.000000000 +0200
@@ -309,6 +309,7 @@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 serialconfdir = @serialconfdir@
 sharedstatedir = @sharedstatedir@
@@ -338,9 +339,9 @@
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu 
contrib/RSA_SecurID/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign 
contrib/RSA_SecurID/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu contrib/RSA_SecurID/Makefile
+         $(AUTOMAKE) --foreign contrib/RSA_SecurID/Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/examples/Makefile.in 
new/ccid-1.4.21/examples/Makefile.in
--- old/ccid-1.4.20/examples/Makefile.in        2015-08-05 13:22:48.000000000 
+0200
+++ new/ccid-1.4.21/examples/Makefile.in        2015-10-21 20:40:44.000000000 
+0200
@@ -311,6 +311,7 @@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 serialconfdir = @serialconfdir@
 sharedstatedir = @sharedstatedir@
@@ -339,9 +340,9 @@
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign examples/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu examples/Makefile
+         $(AUTOMAKE) --foreign examples/Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/install-sh new/ccid-1.4.21/install-sh
--- old/ccid-1.4.20/install-sh  2015-08-05 11:37:59.000000000 +0200
+++ new/ccid-1.4.21/install-sh  2015-10-21 20:40:30.000000000 +0200
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2013-12-25.23; # UTC
+scriptversion=2014-09-12.12; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -324,34 +324,41 @@
             # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
             ;;
           *)
+            # $RANDOM is not portable (e.g. dash);  use it when possible to
+            # lower collision chance
             tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+            trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 
2>/dev/null; exit $ret' 0
 
+            # As "mkdir -p" follows symlinks and we work in /tmp possibly;  so
+            # create the $tmpdir first (and fail if unsuccessful) to make sure
+            # that nobody tries to guess the $tmpdir name.
             if (umask $mkdir_umask &&
-                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+                $mkdirprog $mkdir_mode "$tmpdir" &&
+                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 
2>&1
             then
               if test -z "$dir_arg" || {
                    # Check for POSIX incompatibilities with -m.
                    # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
                    # other-writable bit of parent directory when it shouldn't.
                    # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
-                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                   test_tmpdir="$tmpdir/a"
+                   ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
                    case $ls_ld_tmpdir in
                      d????-?r-*) different_mode=700;;
                      d????-?--*) different_mode=755;;
                      *) false;;
                    esac &&
-                   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
-                     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                   $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+                     ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
                      test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
                    }
                  }
               then posix_mkdir=:
               fi
-              rmdir "$tmpdir/d" "$tmpdir"
+              rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
             else
               # Remove any dirs left behind by ancient mkdir implementations.
-              rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+              rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
             fi
             trap '' 0;;
         esac;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/readers/Makefile.in 
new/ccid-1.4.21/readers/Makefile.in
--- old/ccid-1.4.20/readers/Makefile.in 2015-08-05 13:22:48.000000000 +0200
+++ new/ccid-1.4.21/readers/Makefile.in 2015-10-21 20:40:44.000000000 +0200
@@ -255,6 +255,7 @@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 serialconfdir = @serialconfdir@
 sharedstatedir = @sharedstatedir@
@@ -279,9 +280,9 @@
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu readers/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign readers/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu readers/Makefile
+         $(AUTOMAKE) --foreign readers/Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/readers/supported_readers.txt 
new/ccid-1.4.21/readers/supported_readers.txt
--- old/ccid-1.4.20/readers/supported_readers.txt       2015-08-04 
17:57:03.000000000 +0200
+++ new/ccid-1.4.21/readers/supported_readers.txt       2015-10-21 
20:36:49.000000000 +0200
@@ -1,6 +1,6 @@
 #
 # List of readers supported by the CCID driver
-# Generated: 2015-07-28
+# Generated: 2015-10-20
 #
 # DO NOT EDIT BY HAND
 
@@ -19,7 +19,6 @@
 
 # Alcor Micro
 0x058F:0x9520:Alcor Micro AU9520
-0x058F:0x9540:Alcor Micro AU9540
 
 # Athena
 0x0DC3:0x1004:Athena ASE IIIe
@@ -124,6 +123,7 @@
 # ACS
 0x072F:0x1204:ACS ACR101 ICC Reader
 0x072F:0x221A:ACS ACR1251 Dual Reader
+0x072F:0x223B:ACS ACR1252 Dual Reader
 0x072F:0x8201:ACS APG8201 PINhandy 1
 0x072F:0x8202:ACS APG8201 USB Reader
 0x072F:0x90DB:ACS CryptoMate64
@@ -221,14 +221,13 @@
 
 # Chicony
 0x04F2:0x0967:Chicony USB Smart Card Keyboard
+0x03F0:0x114A:Chicony HP USB Smartcard CCID Keyboard KR
+0x03F0:0x124A:Chicony HP USB Smartcard CCID Keyboard JP
 
 # COVADIS
 0x0982:0x0008:COVADIS VEGA-ALPHA
 0x0982:0x0040:COVADIS Auriga
 
-# Crypto Stick
-0x20A0:0x4108:Crypto Stick Crypto Stick v1.4
-
 # DUALi
 0x1DB2:0x088B:DUALi DRAGON NFC READER
 
@@ -238,10 +237,15 @@
 # Elatec
 0x09D8:0x0427:Elatec TWN4 SmartCard NFC
 
+# FEITIAN
+0x096E:0x0619:FEITIAN iR301
+0x096E:0x061A:FEITIAN bR301
+0x096E:0x061C:FEITIAN iR301
+
 # Feitian
 0x096E:0x0608:Feitian 502-CL
 0x096E:0x060D:Feitian R502
-0x096E:0x061A:Feitian bR301
+0x096E:0x0624:Feitian bR301 BLE
 0x096E:0x0807:Feitian ePass2003
 0x096E:0x080F:Feitian eJAVA Token
 
@@ -250,7 +254,9 @@
 
 # Free Software Initiative of Japan
 0x234B:0x0000:Free Software Initiative of Japan Gnuk
-0x20A0:0x4211:Free Software Initiative of Japan Gnuk Token
+
+# FT
+0x096E:0x080A:FT ePass2003Auto
 
 # Fujitsu Siemens Computers
 0x0BF8:0x1005:Fujitsu Siemens Computers SmartCard Keyboard USB 2A
@@ -276,7 +282,6 @@
 0x08E6:0x3479:Gemplus GemCore POS Pro Smart Card Reader
 
 # Generic
-0x0BDA:0x0165:Generic Smart Card Reader Interface
 0x0BDA:0x0169:Generic USB2.0-CRW
 0x048D:0x1366:Generic MultiCard Device
 
@@ -316,10 +321,27 @@
 # id3 Semiconductors
 0x0B81:0x0220:id3 Semiconductors CL1356A_HID
 
+# Identiv
+0x04E6:0x5713:Identiv CLOUD 2980 F Smart Card Reader
+0x04E6:0x5724:Identiv Identiv uTrust 4701 F Dual Interface Reader
+0x04E6:0x5790:Identiv uTrust 3700 F CL Reader
+0x04E6:0x5791:Identiv uTrust 3701 F CL Reader
+0x04E6:0x5811:Identiv uTrust 2900 R Smart Card Reader
+0x04E6:0x5812:Identiv uTrust 2910 R Smart Card Reader
+0x04E6:0x5814:Identiv SCR3500 A Contact Reader
+0x04E6:0x5815:Identiv SCR3500 B Contact Reader
+0x04E6:0x5816:Identiv uTrust 3512 SAM slot Token
+0x04E6:0x5818:Identiv @MAXX Light2 token
+0x04E6:0x5819:Identiv @MAXX ID-1 Smart Card Reader
+0x04E6:0x581A:Identiv uTrust 3522 embd SE RFID Token
+0x04E6:0x581B:Identiv uTrust 2910 R Taglio SC Reader
+0x04E6:0x581C:Identiv SCR35xx USB Smart Card Reader
+
 # Identive
 0x04E6:0x5710:Identive CLOUD 2700 F Smart Card Reader
 0x04E6:0x5720:Identive Identive CLOUD 4500 F Dual Interface Reader
 0x04E6:0x5721:Identive Identive CLOUD 4510 F Contactless + SAM Reader
+0x04E6:0x5723:Identive Identive CLOUD 4000 F DTC
 0x04E6:0x5810:Identive CLOUD 2700 R Smart Card Reader
 0x04E6:0x5817:Identive SCT3522CC token
 
@@ -363,6 +385,11 @@
 0x17EF:0x6007:Lenovo Lenovo USB Smartcard Keyboard
 0x17EF:0x6055:Lenovo Lenovo USB Smartcard Keyboard
 
+# Liteon
+0x03F0:0x164A:Liteon HP SC Keyboard - Apollo (Liteon)
+0x03F0:0x174A:Liteon HP SC Keyboard - Apollo KR (Liteon)
+0x03F0:0x184A:Liteon HP SC Keyboard - Apollo JP (Liteon)
+
 # Macally
 0x08AE:0x0BDF:Macally NFC CCID eNetPad
 
@@ -383,6 +410,11 @@
 0x1E0D:0x1023:Neowave Weneo
 0x1E0D:0x8033:Neowave Weneo
 
+# Nitrokey
+0x20A0:0x4108:Nitrokey Nitrokey Pro
+0x20A0:0x4211:Nitrokey Nitrokey Start
+0x20A0:0x4230:Nitrokey Nitrokey HSM
+
 # NTT Communications Corp.
 0x04E6:0x511A:NTT Communications Corp. SCR3310-NTTCom USB SmartCard Reader
 
@@ -434,6 +466,9 @@
 0x0C4B:0x0520:REINER SCT tanJack Bluetooth
 0x0C4B:0x9102:REINER SCT cyberJack RFID basis
 
+# Rocketek
+0x14CD:0x8166:Rocketek RT-SCR1
+
 # SafeNet
 0x0529:0x0602:SafeNet eToken 7300
 0x0529:0x0620:SafeNet eToken 5100
@@ -515,11 +550,15 @@
 0x1A44:0x0855:VASCO DP855
 0x1A44:0x0865:VASCO DP865
 0x1A44:0x0870:VASCO DIGIPASS 870
+0x1A44:0x0875:VASCO DIGIPASS 875
 0x1A44:0x0920:VASCO DIGIPASS 920
 
 # VMware
 0x0E0F:0x0004:VMware Virtual USB CCID
 
+# WatchCNPC
+0x163C:0x0406:WatchCNPC USB CCID Key
+
 # Watchdata
 0x163C:0x0407:Watchdata USB Key
 
@@ -553,6 +592,9 @@
 
 # Aladdin
 
+# Alcor Micro
+0x058F:0x9540:Alcor Micro AU9540
+
 # ATMEL
 0x03EB:0x6016:ATMEL VaultIC460
 
@@ -565,6 +607,9 @@
 # Feitian
 0x096E:0x0503:Feitian SCR301
 
+# Generic
+0x0BDA:0x0165:Generic Smart Card Reader Interface
+
 # Hewlett-Packard Company
 0x03F0:0x0036:Hewlett-Packard Company HP USB CCID Smartcard Keyboard
 0x03F0:0x1024:Hewlett-Packard Company HP USB Smart Card Keyboard
@@ -634,6 +679,12 @@
 #0x04E6:0x5721:Identive Identive CLOUD 4710 F Contactless + SAM Reader 
(Identive_CLOUD_4710_F.txt)
 #0x04E6:0x5721:Identive Identive CLOUD 4710 F Contactless + SAM Reader 
(Identive_CLOUD_4710_F.txt_i1)
 
+#0x04E6:0x5723:Identive Identive CLOUD 4000 F DTC 
(Identive_Identive_CLOUD_4000_F_DTC.txt)
+#0x04E6:0x5723:Identive Identive CLOUD 4000 F DTC 
(Identive_Identive_CLOUD_4000_F_DTC.txt_i1)
+
+#0x04E6:0x5724:Identiv Identiv uTrust 4701 F Dual Interface Reader 
(Identiv_Identiv_uTrust_4701_F_Dual_Interface_Reader.txt)
+#0x04E6:0x5724:Identiv Identiv uTrust 4701 F Dual Interface Reader 
(Identiv_Identiv_uTrust_4701_F_Dual_Interface_Reader.txt_i1)
+
 #0x0529:0x0620:Aladdin eToken PRO USB 72K Java 
(Aladdin_eToken_PRO_USB_72K_Java.txt)
 #0x0529:0x0620:SafeNet eToken 5100 (SafeNet_Token_JC.txt)
 
@@ -644,6 +695,9 @@
 #0x072F:0x221A:ACS ACR1251 Dual Reader (ACS_ACR1251_Dual_Reader.txt)
 #0x072F:0x221A:ACS ACR1251 Dual Reader (ACS_ACR1251_Dual_Reader.txt_i1)
 
+#0x072F:0x223B:ACS ACR1252 Dual Reader (ACS_ACR1252_Dual_Reader.txt)
+#0x072F:0x223B:ACS ACR1252 Dual Reader (ACS_ACR1252_Dual_Reader.txt_i1)
+
 #0x072F:0x90CC:ACS ACR122U (ACR122U.txt)
 #0x072F:0x90CC:ACS ACR 38U-CCID (ACR38U-CCID.txt)
 #0x072F:0x90CC:ACS ACR100 (ACS_ACR100.txt)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/src/Info.plist.src 
new/ccid-1.4.21/src/Info.plist.src
--- old/ccid-1.4.20/src/Info.plist.src  2015-04-10 20:30:23.000000000 +0200
+++ new/ccid-1.4.21/src/Info.plist.src  2015-10-21 20:36:49.000000000 +0200
@@ -54,18 +54,18 @@
        <string>0x0000</string>
 
        <!-- Possible values for ifdDriverOptions
-       1: DRIVER_OPTION_CCID_EXCHANGE_AUTHORIZED
+       0x01: DRIVER_OPTION_CCID_EXCHANGE_AUTHORIZED
                the CCID Exchange command is allowed. You can use it through
                SCardControl(hCard, IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE, ...)
 
-       2: DRIVER_OPTION_GEMPC_TWIN_KEY_APDU
+       0x02: DRIVER_OPTION_GEMPC_TWIN_KEY_APDU
                If set the GemPC Twin and GemPC Key readers with be configured
                so that the T=1 TPDU protocol is done by the firmware instead of
                the driver.
                This switches the reader in APDU mode and also in EMV mode so
                may not work with non EMV cards.
 
-       4: DRIVER_OPTION_USE_BOGUS_FIRMWARE
+       0x04: DRIVER_OPTION_USE_BOGUS_FIRMWARE
                Some reader firmwares have bugs. By default the driver refuses
                to work with such firmware versions. If your reader is rejected
                because of the firmware (log message: "Firmware (x.y) is
@@ -77,17 +77,17 @@
                - activate this option but you will have problems depending on
                  the bug
 
-       8: DRIVER_OPTION_RESET_ON_CLOSE
+       0x08: DRIVER_OPTION_RESET_ON_CLOSE
                This option may be required on Linux 2.4 so that the
                device reset if sequencial (bSeq) counter and can be
                reused if pcscd restart. Otherwise the reader needs to
                be unplugged/replugged.
 
-       bits 4 & 5: (values 0, 16, 32, 48)
-         0: power on the card at 5V (default value)
-        16: power on the card at 3V and then, if 3V fails use 5V
-        32: power on the card at 1.8V, then 3V and then 5V
-        48: let the reader decide
+       bits 4 & 5: (values 0x00, 0x10, 0x20, 0x30)
+        0x00: power on the card at 5V (default value)
+        0x10: power on the card at 3V and then, if 3V fails use 5V
+        0x20: power on the card at 1.8V, then 3V and then 5V
+        0x30: let the reader decide
 
        0x40: DRIVER_OPTION_DISABLE_PIN_RETRIES
                The Gemalto pinpad reader sends a VERIFY command with no PIN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/src/Makefile.in 
new/ccid-1.4.21/src/Makefile.in
--- old/ccid-1.4.20/src/Makefile.in     2015-08-05 13:22:49.000000000 +0200
+++ new/ccid-1.4.21/src/Makefile.in     2015-10-21 20:40:44.000000000 +0200
@@ -414,6 +414,7 @@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 serialconfdir = @serialconfdir@
 sharedstatedir = @sharedstatedir@
@@ -501,9 +502,9 @@
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu src/Makefile
+         $(AUTOMAKE) --foreign src/Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/src/ccid.h new/ccid-1.4.21/src/ccid.h
--- old/ccid-1.4.20/src/ccid.h  2015-04-10 20:30:23.000000000 +0200
+++ new/ccid-1.4.21/src/ccid.h  2015-10-14 10:39:21.000000000 +0200
@@ -210,6 +210,7 @@
 #define HP_CCIDSMARTCARDKEYBOARD 0x03F00036
 #define KOBIL_IDTOKEN 0x0D46301D
 #define FUJITSUSMARTKEYB 0x0BF81017
+#define FEITIANR502DUAL 0x096E060D
 
 #define VENDOR_GEMALTO 0x08E6
 #define GET_VENDOR(readerID) ((readerID >> 16) & 0xFFFF)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/src/ccid_usb.c 
new/ccid-1.4.21/src/ccid_usb.c
--- old/ccid-1.4.20/src/ccid_usb.c      2015-04-10 20:30:23.000000000 +0200
+++ new/ccid-1.4.21/src/ccid_usb.c      2015-10-14 10:39:21.000000000 +0200
@@ -221,6 +221,7 @@
 #else
        /* 100 ms delay */
        struct timespec sleep_time = { 0, 100 * 1000 * 1000 };
+       int count_libusb = 10;
 #endif
        int interface_number = -1;
        int i;
@@ -307,15 +308,14 @@
                rv = libusb_init(&ctx);
                if (rv != 0)
                {
-                       DEBUG_CRITICAL2("libusb_init failed: %d", rv);
+                       DEBUG_CRITICAL2("libusb_init failed: %s", 
libusb_error_name(rv));
                        return_value = STATUS_UNSUCCESSFUL;
                        goto end1;
                }
        }
 
 #ifdef __APPLE__
-       /* give some time to libusb to detect the new USB devices on Mac OS X */
-       nanosleep(&sleep_time, NULL);
+again_libusb:
 #endif
        cnt = libusb_get_device_list(ctx, &devs);
        if (cnt < 0)
@@ -399,7 +399,8 @@
 
                                /* simulate a composite device as when libudev 
is used */
                                if ((GEMALTOPROXDU == readerID)
-                                       || (GEMALTOPROXSU == readerID))
+                                       || (GEMALTOPROXSU == readerID)
+                                       || (FEITIANR502DUAL == readerID))
                                {
                                                /*
                                                 * We can't talk to the two 
CCID interfaces
@@ -496,8 +497,8 @@
                                r = libusb_open(dev, &dev_handle);
                                if (r < 0)
                                {
-                                       DEBUG_CRITICAL4("Can't 
libusb_open(%d/%d): %d",
-                                               bus_number, device_address, r);
+                                       DEBUG_CRITICAL4("Can't 
libusb_open(%d/%d): %s",
+                                               bus_number, device_address, 
libusb_error_name(r));
 
                                        continue;
                                }
@@ -522,8 +523,9 @@
                                                if (r < 0)
                                                {
                                                        
(void)libusb_close(dev_handle);
-                                                       DEBUG_CRITICAL4("Can't 
set configuration on %d/%d: %d",
-                                                                       
bus_number, device_address, r);
+                                                       DEBUG_CRITICAL4("Can't 
set configuration on %d/%d: %s",
+                                                                       
bus_number, device_address,
+                                                                       
libusb_error_name(r));
                                                        continue;
                                                }
                                        }
@@ -534,8 +536,8 @@
                                        {
 #endif
                                                (void)libusb_close(dev_handle);
-                                               DEBUG_CRITICAL4("Can't get 
config descriptor on %d/%d: %d",
-                                                       bus_number, 
device_address, r);
+                                               DEBUG_CRITICAL4("Can't get 
config descriptor on %d/%d: %s",
+                                                       bus_number, 
device_address, libusb_error_name(r));
                                                continue;
                                        }
 #ifdef __APPLE__
@@ -570,7 +572,7 @@
                                        /* an interface was specified and it is 
not the
                                         * current one */
                                        DEBUG_INFO3("Found interface %d but 
expecting %d",
-                                               interface_number, interface);
+                                               interface, interface_number);
                                        DEBUG_INFO3("Wrong interface for USB 
device %d/%d."
                                                " Checking next one.", 
bus_number, device_address);
 
@@ -584,8 +586,8 @@
                                if (r < 0)
                                {
                                        (void)libusb_close(dev_handle);
-                                       DEBUG_CRITICAL4("Can't claim interface 
%d/%d: %d",
-                                               bus_number, device_address, r);
+                                       DEBUG_CRITICAL4("Can't claim interface 
%d/%d: %s",
+                                               bus_number, device_address, 
libusb_error_name(r));
                                        claim_failed = TRUE;
                                        interface_number = -1;
                                        continue;
@@ -610,7 +612,7 @@
 
                                /* reset for a next reader */
                                if (static_interface > 2)
-                                       static_interface = 1;
+                                       static_interface = (FEITIANR502DUAL == 
readerID) ? 0: 1;
 #endif
 
                                /* Get Endpoints values*/
@@ -696,6 +698,20 @@
 end:
        if (usbDevice[reader_index].dev_handle == NULL)
        {
+               /* free the libusb allocated list & devices */
+               libusb_free_device_list(devs, 1);
+
+#ifdef __APPLE__
+               /* give some time to libusb to detect the new USB devices on 
Mac OS X */
+               if (count_libusb > 0)
+               {
+                       count_libusb--;
+                       DEBUG_INFO2("Wait after libusb: %d", count_libusb);
+                       nanosleep(&sleep_time, NULL);
+
+                       goto again_libusb;
+               }
+#endif
                close_libusb_if_needed();
                if (claim_failed)
                        return STATUS_COMM_ERROR;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccid-1.4.20/src/ifdhandler.c 
new/ccid-1.4.21/src/ifdhandler.c
--- old/ccid-1.4.20/src/ifdhandler.c    2015-04-10 20:30:23.000000000 +0200
+++ new/ccid-1.4.21/src/ifdhandler.c    2015-10-14 10:39:21.000000000 +0200
@@ -458,6 +458,9 @@
 
                                        if ((GEMALTOPROXDU == readerID) || 
(GEMALTOPROXSU == readerID))
                                                *Value = 2;
+
+                                       if (FEITIANR502DUAL == readerID)
+                                               *Value = 3;
                                }
 #endif
                                DEBUG_INFO2("Reader supports %d slot(s)", 
*Value);


Reply via email to