Package: beid
Version: 3.5.2.dfsg-10
Severity: serious
Tags: experimental patch
Justification: fails to build from source

beid fails to build from source when built with pcsc-lite >= 1.6.0

Such a version of pcsc-lite is available from exprimental and will be
uploaded in unstable once squeeze is out.

The build fails because:

- SCARD_W_INSERTED_CARD is/was a pcsc-lite specific error code and has
  been removed in pcsc-lite 1.6.0
- SCARD_READERSTATE should be used instead of SCARD_READERSTATE_A and
  the later was removed

See 
http://ludovicrousseau.blogspot.com/2010/08/pcsc-lite-16x-breaks-some-programs-at.html
 for more information.

I provide a patch:

diff -ru beid-3.5.2.dfsg.before/_src/beid-2.6/src/Belpic PCSC 
Service/CardChangeMonitor.cpp beid-3.5.2.dfsg/_src/beid-2.6/src/Belpic PCSC 
Service/CardChangeMonitor.cpp
--- beid-3.5.2.dfsg.before/_src/beid-2.6/src/Belpic PCSC 
Service/CardChangeMonitor.cpp  2009-04-28 10:21:20.000000000 +0200
+++ beid-3.5.2.dfsg/_src/beid-2.6/src/Belpic PCSC Service/CardChangeMonitor.cpp 
2010-08-19 21:16:25.000000000 +0200
@@ -62,7 +62,7 @@
 
         if(hContext != 0)
         {
-            SCARD_READERSTATE_A rgscState[MAXIMUM_SMARTCARD_READERS] = {0};
+            SCARD_READERSTATE rgscState[MAXIMUM_SMARTCARD_READERS] = {0};
             long  lReturn;
             int iCount = 0;
             int i, j;
diff -ru beid-3.5.2.dfsg.before/_src/beid-2.6/src/Belpic PCSC 
Service/PCSCManager.cpp beid-3.5.2.dfsg/_src/beid-2.6/src/Belpic PCSC 
Service/PCSCManager.cpp
--- beid-3.5.2.dfsg.before/_src/beid-2.6/src/Belpic PCSC 
Service/PCSCManager.cpp        2009-04-28 10:21:20.000000000 +0200
+++ beid-3.5.2.dfsg/_src/beid-2.6/src/Belpic PCSC Service/PCSCManager.cpp       
2010-08-19 21:17:01.000000000 +0200
@@ -334,8 +334,8 @@
             unsigned long ulReaders = 0;
             pMessage->Get("Timeout", ulTimeout);
             pMessage->Get("ReadersLen", (long *)&ulReaders);
-            SCARD_READERSTATE_A *prgReaderStates = new 
SCARD_READERSTATE_A[ulReaders];
-            memset(prgReaderStates, 0, sizeof(SCARD_READERSTATE_A) * 
ulReaders);
+            SCARD_READERSTATE *prgReaderStates = new 
SCARD_READERSTATE[ulReaders];
+            memset(prgReaderStates, 0, sizeof(SCARD_READERSTATE) * ulReaders);
             char szReaders[MAXIMUM_SMARTCARD_READERS][64] = {0};
             for(unsigned int i = 0; i < ulReaders; ++i)
             {
diff -ru 
beid-3.5.2.dfsg.before/_src/beid-2.6/src/newpkcs11/src/libopensc/reader-pcsc.c 
beid-3.5.2.dfsg/_src/beid-2.6/src/newpkcs11/src/libopensc/reader-pcsc.c
--- 
beid-3.5.2.dfsg.before/_src/beid-2.6/src/newpkcs11/src/libopensc/reader-pcsc.c  
    2009-04-28 10:21:26.000000000 +0200
+++ beid-3.5.2.dfsg/_src/beid-2.6/src/newpkcs11/src/libopensc/reader-pcsc.c     
2010-08-19 21:15:22.000000000 +0200
@@ -82,7 +82,7 @@
 
 struct pcsc_slot_data {
        SCARDHANDLE pcsc_card;
-       SCARD_READERSTATE_A readerState;
+       SCARD_READERSTATE readerState;
 };
 
 static int pcsc_detect_card_presence(struct sc_reader *reader, struct 
sc_slot_info *slot);
@@ -300,7 +300,7 @@
        struct sc_context *ctx;
        SCARDCONTEXT pcsc_ctx;
        LONG ret;
-       SCARD_READERSTATE_A rgReaderStates[SC_MAX_READERS];
+       SCARD_READERSTATE rgReaderStates[SC_MAX_READERS];
        unsigned long on_bits, off_bits;
        time_t end_time, now, delta;
        int i;
@@ -348,7 +348,7 @@
        /* Wait for a status change and return if it's a card insert/removal
         */
        for( ; ; ) {
-               SCARD_READERSTATE_A *rsp;
+               SCARD_READERSTATE *rsp;
 
                /* Scan the current state of all readers to see if they
                 * match any of the events we're polling for */
diff -ru beid-3.5.2.dfsg.before/_src/beid-2.6/src/winscarp/winscarp.cpp 
beid-3.5.2.dfsg/_src/beid-2.6/src/winscarp/winscarp.cpp
--- beid-3.5.2.dfsg.before/_src/beid-2.6/src/winscarp/winscarp.cpp      
2009-04-28 10:21:30.000000000 +0200
+++ beid-3.5.2.dfsg/_src/beid-2.6/src/winscarp/winscarp.cpp     2010-08-19 
21:14:20.000000000 +0200
@@ -72,7 +72,8 @@
     typedef GUID *LPGUID;
     typedef char *LPWSTR;
     typedef const char *LPCWSTR;
-    typedef SCARD_READERSTATE_A *LPSCARD_READERSTATE_W;
+    typedef SCARD_READERSTATE *LPSCARD_READERSTATE_A;
+    typedef SCARD_READERSTATE *LPSCARD_READERSTATE_W;
     typedef const char *LPCSTR;
 #endif //_WIN32
 
@@ -1591,9 +1592,6 @@
        case SCARD_W_REMOVED_CARD:
                strcpy(strError, "Card was removed.");
                break;
-       case SCARD_W_INSERTED_CARD:
-               strcpy(strError, "Card was inserted.");
-               break;
        case SCARD_E_UNSUPPORTED_FEATURE:
                strcpy(strError, "Feature not supported.");
                break;

-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash



-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to