Hello,
In Ubuntu, one additional file had to be modified. Resulting version of the patch is attached.
Description: Port to pcsc-lite 1.6.0 API. Author: Ludovic Rousseau <rouss...@debian.org> Bug-Debian: http://bugs.debian.org/593638 Bug-Ubuntu: https://launchpad.net/bugs/749231 --- beid-3.5.2.dfsg.orig/_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 @@ -82,7 +82,7 @@ struct pcsc_private_data { 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 @@ static int pcsc_wait_for_event(struct sc 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 @@ static int pcsc_wait_for_event(struct sc /* 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 */ --- beid-3.5.2.dfsg.orig/_src/beid-2.6/src/winscarp/winscarp.cpp +++ beid-3.5.2.dfsg/_src/beid-2.6/src/winscarp/winscarp.cpp @@ -72,7 +72,8 @@ QTime t; 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 @@ char *pcsc_stringify_error(long Error) 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; --- beid-3.5.2.dfsg.orig/_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 @@ -62,7 +62,7 @@ void CCardChangeMonitor::run() 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; --- beid-3.5.2.dfsg.orig/_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 @@ -334,8 +334,8 @@ long CPCSCManager::S_CardGetStatusChange 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) { --- beid-3.5.2.dfsg.orig/_src/eidmw/cardlayer/PCSC.h +++ beid-3.5.2.dfsg/_src/eidmw/cardlayer/PCSC.h @@ -41,7 +41,7 @@ Takes care of #include "wintypes.h" #include "Reader.h" #ifndef SCARD_READERSTATEA -#define SCARD_READERSTATEA SCARD_READERSTATE_A +#define SCARD_READERSTATEA SCARD_READERSTATE #endif // needed for pcsclite version earlier than 1.4 #ifndef SCARD_E_NO_READERS_AVAILABLE