From aacf8fffaea55631542d8f61bc97bf964a0ee12b Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sun, 4 May 2014 19:57:27 +0200 Subject: php-pecl-pcsc: 0.3 (alpha) New package --- pcsc-build.patch | 287 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 287 insertions(+) create mode 100644 pcsc-build.patch (limited to 'pcsc-build.patch') diff --git a/pcsc-build.patch b/pcsc-build.patch new file mode 100644 index 0000000..813669d --- /dev/null +++ b/pcsc-build.patch @@ -0,0 +1,287 @@ +--- pecl/pcsc/trunk/config.m4 2014/05/04 14:56:27 333470 ++++ pecl/pcsc/trunk/config.m4 2014/05/04 17:05:12 333471 +@@ -29,7 +29,7 @@ + AC_MSG_RESULT($PCSC_DIR) + PHP_ADD_INCLUDE($PCSC_DIR/include/PCSC/) + dnl PHP_EVAL_LIBLINE($PCSC_LIBS, PCSC_SHARED_LIBADD) +- PHP_ADD_LIBRARY_WITH_PATH(pcsclite, "$PCSC_DIR/lib/", PCSC_SHARED_LIBADD) ++ PHP_ADD_LIBRARY_WITH_PATH(pcsclite, "$PCSC_DIR/$PHP_LIBDIR", PCSC_SHARED_LIBADD) + + dnl Finally, tell the build system about the extension and what files are needed + PHP_NEW_EXTENSION(pcsc, pcsc.c, $ext_shared) +--- pecl/pcsc/trunk/config.m4 2014/05/04 17:05:12 333471 ++++ pecl/pcsc/trunk/config.m4 2014/05/04 17:20:35 333472 +@@ -33,7 +33,7 @@ + + dnl Finally, tell the build system about the extension and what files are needed + PHP_NEW_EXTENSION(pcsc, pcsc.c, $ext_shared) +- PHP_INSTALL_HEADERS([php_pcsc.h]) ++ PHP_INSTALL_HEADERS([ext/pcsc], [php_pcsc.h]) + PHP_SUBST(PCSC_SHARED_LIBADD) + fi + +--- pecl/pcsc/trunk/pcsc.c 2014/05/04 17:20:35 333472 ++++ pecl/pcsc/trunk/pcsc.c 2014/05/04 17:50:17 333473 +@@ -135,71 +135,119 @@ + PHP_MINIT_FUNCTION(pcsc) + { + /* Return Codes */ ++#ifdef SCARD_E_BAD_SEEK + REGISTER_PCSC_CONSTANT(SCARD_E_BAD_SEEK); ++#endif + REGISTER_PCSC_CONSTANT(SCARD_E_CANCELLED); + REGISTER_PCSC_CONSTANT(SCARD_E_CANT_DISPOSE); + REGISTER_PCSC_CONSTANT(SCARD_E_CARD_UNSUPPORTED); ++#ifdef SCARD_E_CERTIFICATE_UNAVAILABLE + REGISTER_PCSC_CONSTANT(SCARD_E_CERTIFICATE_UNAVAILABLE); ++#endif ++#ifdef SCARD_E_COMM_DATA_LOST + REGISTER_PCSC_CONSTANT(SCARD_E_COMM_DATA_LOST); ++#endif ++#ifdef SCARD_E_DIR_NOT_FOUND + REGISTER_PCSC_CONSTANT(SCARD_E_DIR_NOT_FOUND); ++#endif + REGISTER_PCSC_CONSTANT(SCARD_E_DUPLICATE_READER); ++#ifdef SCARD_E_FILE_NOT_FOUND + REGISTER_PCSC_CONSTANT(SCARD_E_FILE_NOT_FOUND); ++#endif ++#ifdef SCARD_E_ICC_CREATEORDER + REGISTER_PCSC_CONSTANT(SCARD_E_ICC_CREATEORDER); ++#endif ++#ifdef SCARD_E_ICC_INSTALLATION + REGISTER_PCSC_CONSTANT(SCARD_E_ICC_INSTALLATION); ++#endif + REGISTER_PCSC_CONSTANT(SCARD_E_INSUFFICIENT_BUFFER); + REGISTER_PCSC_CONSTANT(SCARD_E_INVALID_ATR); ++#ifdef SCARD_E_INVALID_CHV + REGISTER_PCSC_CONSTANT(SCARD_E_INVALID_CHV); ++#endif + REGISTER_PCSC_CONSTANT(SCARD_E_INVALID_HANDLE); + REGISTER_PCSC_CONSTANT(SCARD_E_INVALID_PARAMETER); + REGISTER_PCSC_CONSTANT(SCARD_E_INVALID_TARGET); + REGISTER_PCSC_CONSTANT(SCARD_E_INVALID_VALUE); ++#ifdef SCARD_E_NO_ACCESS + REGISTER_PCSC_CONSTANT(SCARD_E_NO_ACCESS); ++#endif ++#ifdef SCARD_E_NO_DIR + REGISTER_PCSC_CONSTANT(SCARD_E_NO_DIR); ++#endif ++#ifdef SCARD_E_NO_FILE + REGISTER_PCSC_CONSTANT(SCARD_E_NO_FILE); ++#endif ++#ifdef SCARD_E_NO_KEY_CONTAINER + REGISTER_PCSC_CONSTANT(SCARD_E_NO_KEY_CONTAINER); ++#endif + REGISTER_PCSC_CONSTANT(SCARD_E_NO_MEMORY); + REGISTER_PCSC_CONSTANT(SCARD_E_NO_READERS_AVAILABLE); + REGISTER_PCSC_CONSTANT(SCARD_E_NO_SERVICE); + REGISTER_PCSC_CONSTANT(SCARD_E_NO_SMARTCARD); ++#ifdef SCARD_E_NO_SUCH_CERTIFICATE + REGISTER_PCSC_CONSTANT(SCARD_E_NO_SUCH_CERTIFICATE); ++#endif + REGISTER_PCSC_CONSTANT(SCARD_E_NOT_READY); + REGISTER_PCSC_CONSTANT(SCARD_E_NOT_TRANSACTED); + REGISTER_PCSC_CONSTANT(SCARD_E_PCI_TOO_SMALL); + REGISTER_PCSC_CONSTANT(SCARD_E_PROTO_MISMATCH); + REGISTER_PCSC_CONSTANT(SCARD_E_READER_UNAVAILABLE); + REGISTER_PCSC_CONSTANT(SCARD_E_READER_UNSUPPORTED); ++#ifdef SCARD_E_SERVER_TOO_BUSY + REGISTER_PCSC_CONSTANT(SCARD_E_SERVER_TOO_BUSY); ++#endif + REGISTER_PCSC_CONSTANT(SCARD_E_SERVICE_STOPPED); + REGISTER_PCSC_CONSTANT(SCARD_E_SHARING_VIOLATION); + REGISTER_PCSC_CONSTANT(SCARD_E_SYSTEM_CANCELLED); + REGISTER_PCSC_CONSTANT(SCARD_E_TIMEOUT); ++#ifdef SCARD_E_UNEXPECTED + REGISTER_PCSC_CONSTANT(SCARD_E_UNEXPECTED); ++#endif + REGISTER_PCSC_CONSTANT(SCARD_E_UNKNOWN_CARD); + REGISTER_PCSC_CONSTANT(SCARD_E_UNKNOWN_READER); ++#ifdef SCARD_E_UNKNOWN_RES_MNG + REGISTER_PCSC_CONSTANT(SCARD_E_UNKNOWN_RES_MNG); ++#endif + REGISTER_PCSC_CONSTANT(SCARD_E_UNSUPPORTED_FEATURE); ++#ifdef SCARD_E_WRITE_TOO_MANY + REGISTER_PCSC_CONSTANT(SCARD_E_WRITE_TOO_MANY); ++#endif + + REGISTER_PCSC_CONSTANT(SCARD_F_COMM_ERROR); + REGISTER_PCSC_CONSTANT(SCARD_F_INTERNAL_ERROR); + REGISTER_PCSC_CONSTANT(SCARD_F_UNKNOWN_ERROR); + REGISTER_PCSC_CONSTANT(SCARD_F_WAITED_TOO_LONG); + ++#ifdef SCARD_P_SHUTDOWN + REGISTER_PCSC_CONSTANT(SCARD_P_SHUTDOWN); ++#endif + + REGISTER_PCSC_CONSTANT(SCARD_S_SUCCESS); + ++#ifdef SCARD_W_CANCELLED_BY_USER + REGISTER_PCSC_CONSTANT(SCARD_W_CANCELLED_BY_USER); ++#endif ++#ifdef SCARD_W_CARD_NOT_AUTHENTICATED + REGISTER_PCSC_CONSTANT(SCARD_W_CARD_NOT_AUTHENTICATED); ++#endif ++#ifdef SCARD_W_CHV_BLOCKED + REGISTER_PCSC_CONSTANT(SCARD_W_CHV_BLOCKED); ++#endif ++#ifdef SCARD_W_EOF + REGISTER_PCSC_CONSTANT(SCARD_W_EOF); ++#endif + REGISTER_PCSC_CONSTANT(SCARD_W_REMOVED_CARD); + REGISTER_PCSC_CONSTANT(SCARD_W_RESET_CARD); ++#ifdef SCARD_W_SECURITY_VIOLATION + REGISTER_PCSC_CONSTANT(SCARD_W_SECURITY_VIOLATION); ++#endif + REGISTER_PCSC_CONSTANT(SCARD_W_UNPOWERED_CARD); + REGISTER_PCSC_CONSTANT(SCARD_W_UNRESPONSIVE_CARD); + REGISTER_PCSC_CONSTANT(SCARD_W_UNSUPPORTED_CARD); ++#ifdef SCARD_W_WRONG_CHV + REGISTER_PCSC_CONSTANT(SCARD_W_WRONG_CHV); ++#endif + + /* Protocols */ + REGISTER_PCSC_CONSTANT(SCARD_PROTOCOL_RAW); +@@ -256,48 +304,80 @@ + /* map error codes to string */ + static char* php_pcsc_error_to_string(DWORD dwRC) { + switch(dwRC) { ++#ifdef SCARD_E_BAD_SEEK + case SCARD_E_BAD_SEEK: return "SCARD_E_BAD_SEEK"; ++#endif + case SCARD_E_CANCELLED: return "SCARD_E_CANCELLED"; + case SCARD_E_CANT_DISPOSE: return "SCARD_E_CANT_DISPOSE"; + case SCARD_E_CARD_UNSUPPORTED: return "SCARD_E_CARD_UNSUPPORTED"; ++#ifdef SCARD_E_CERTIFICATE_UNAVAILABLE + case SCARD_E_CERTIFICATE_UNAVAILABLE: return "SCARD_E_CERTIFICATE_UNAVAILABLE"; ++#endif ++#ifdef SCARD_E_COMM_DATA_LOST + case SCARD_E_COMM_DATA_LOST: return "SCARD_E_COMM_DATA_LOST"; ++#endif ++#ifdef SCARD_E_DIR_NOT_FOUND + case SCARD_E_DIR_NOT_FOUND: return "SCARD_E_DIR_NOT_FOUND"; ++#endif + case SCARD_E_DUPLICATE_READER: return "SCARD_E_DUPLICATE_READER"; ++#ifdef SCARD_E_FILE_NOT_FOUND + case SCARD_E_FILE_NOT_FOUND: return "SCARD_E_FILE_NOT_FOUND"; ++#endif ++#ifdef SCARD_E_ICC_CREATEORDER + case SCARD_E_ICC_CREATEORDER: return "SCARD_E_ICC_CREATEORDER"; ++#endif ++#ifdef SCARD_E_ICC_INSTALLATION + case SCARD_E_ICC_INSTALLATION: return "SCARD_E_ICC_INSTALLATION"; ++#endif + case SCARD_E_INSUFFICIENT_BUFFER: return "SCARD_E_INSUFFICIENT_BUFFER"; + case SCARD_E_INVALID_ATR: return "SCARD_E_INVALID_ATR"; ++#ifdef SCARD_E_INVALID_CHV + case SCARD_E_INVALID_CHV: return "SCARD_E_INVALID_CHV"; ++#endif + case SCARD_E_INVALID_HANDLE: return "SCARD_E_INVALID_HANDLE"; + case SCARD_E_INVALID_PARAMETER: return "SCARD_E_INVALID_PARAMETER"; + case SCARD_E_INVALID_TARGET: return "SCARD_E_INVALID_TARGET"; + case SCARD_E_INVALID_VALUE: return "SCARD_E_INVALID_VALUE"; ++#ifdef SCARD_E_NO_ACCESS + case SCARD_E_NO_ACCESS: return "SCARD_E_NO_ACCESS"; ++#endif ++#ifdef SCARD_E_NO_DIR + case SCARD_E_NO_DIR: return "SCARD_E_NO_DIR"; ++#endif ++#ifdef SCARD_E_NO_FILE + case SCARD_E_NO_FILE: return "SCARD_E_NO_FILE"; ++#endif ++#ifdef SCARD_E_NO_KEY_CONTAINER + case SCARD_E_NO_KEY_CONTAINER: return "SCARD_E_NO_KEY_CONTAINER"; ++#endif + case SCARD_E_NO_MEMORY: return "SCARD_E_NO_MEMORY"; + case SCARD_E_NO_READERS_AVAILABLE: return "SCARD_E_NO_READERS_AVAILABLE"; + case SCARD_E_NO_SERVICE: return "SCARD_E_NO_SERVICE"; + case SCARD_E_NO_SMARTCARD: return "SCARD_E_NO_SMARTCARD"; ++#ifdef SCARD_E_NO_ACCESS + case SCARD_E_NO_SUCH_CERTIFICATE: return "SCARD_E_NO_SUCH_CERTIFICATE"; ++#endif + case SCARD_E_NOT_READY: return "SCARD_E_NOT_READY"; + case SCARD_E_NOT_TRANSACTED: return "SCARD_E_NOT_TRANSACTED"; + case SCARD_E_PCI_TOO_SMALL: return "SCARD_E_PCI_TOO_SMALL"; + case SCARD_E_PROTO_MISMATCH: return "SCARD_E_PROTO_MISMATCH"; + case SCARD_E_READER_UNAVAILABLE: return "SCARD_E_READER_UNAVAILABLE"; + case SCARD_E_READER_UNSUPPORTED: return "SCARD_E_READER_UNSUPPORTED"; ++#ifdef SCARD_E_SERVER_TOO_BUSY + case SCARD_E_SERVER_TOO_BUSY: return "SCARD_E_SERVER_TOO_BUSY"; ++#endif + case SCARD_E_SERVICE_STOPPED: return "SCARD_E_SERVICE_STOPPED"; + case SCARD_E_SHARING_VIOLATION: return "SCARD_E_SHARING_VIOLATION"; + case SCARD_E_SYSTEM_CANCELLED: return "SCARD_E_SYSTEM_CANCELLED"; + case SCARD_E_TIMEOUT: return "SCARD_E_TIMEOUT"; +- case SCARD_E_UNEXPECTED: return "SCARD_E_UNEXPECTED"; ++#ifdef SCARD_E_SERVER_TOO_BUSY ++ case SCARD_E_SERVER_TOO_BUSY: return "SCARD_E_UNEXPECTED"; ++#endif + case SCARD_E_UNKNOWN_CARD: return "SCARD_E_UNKNOWN_CARD"; + case SCARD_E_UNKNOWN_READER: return "SCARD_E_UNKNOWN_READER"; ++#ifdef SCARD_E_UNKNOWN_RES_MNG + case SCARD_E_UNKNOWN_RES_MNG: return "SCARD_E_UNKNOWN_RES_MNG"; ++#endif + /* apparently E_UNEXPECTED and E_UNSUPPORTED are defined + by a buggy header file on Linux, causing a "double used constant" + error. Just leave this out on Linux, then. +@@ -305,14 +385,20 @@ + #ifdef PHP_WIN32 + case SCARD_E_UNSUPPORTED_FEATURE: return "SCARD_E_UNSUPPORTED_FEATURE"; + #endif ++#ifdef SCARD_E_WRITE_TOO_MANY + case SCARD_E_WRITE_TOO_MANY: return "SCARD_E_WRITE_TOO_MANY"; ++#endif + case SCARD_F_COMM_ERROR: return "SCARD_E_WRITE_TOO_MANY"; + case SCARD_F_INTERNAL_ERROR: return "SCARD_F_INTERNAL_ERROR"; + case SCARD_F_UNKNOWN_ERROR: return "SCARD_F_UNKNOWN_ERROR"; + case SCARD_F_WAITED_TOO_LONG: return "SCARD_F_WAITED_TOO_LONG"; ++#ifdef SCARD_P_SHUTDOWN + case SCARD_P_SHUTDOWN: return "SCARD_P_SHUTDOWN"; ++#endif + case SCARD_S_SUCCESS: return "SCARD_S_SUCCESS"; ++#ifdef SCARD_W_CANCELLED_BY_USER + case SCARD_W_CANCELLED_BY_USER: return "SCARD_W_CANCELLED_BY_USER"; ++#endif + #ifdef SCARD_W_CACHE_ITEM_NOT_FOUND + case SCARD_W_CACHE_ITEM_NOT_FOUND: return "SCARD_W_CACHE_ITEM_NOT_FOUND"; + #endif +@@ -322,16 +408,26 @@ + #ifdef SCARD_W_CACHE_ITEM_TOO_BIG + case SCARD_W_CACHE_ITEM_TOO_BIG: return "SCARD_W_CACHE_ITEM_TOO_BIG"; + #endif ++#ifdef SCARD_W_CARD_NOT_AUTHENTICATED + case SCARD_W_CARD_NOT_AUTHENTICATED: return "SCARD_W_CARD_NOT_AUTHENTICATED"; ++#endif ++#ifdef SCARD_W_CHV_BLOCKED + case SCARD_W_CHV_BLOCKED: return "SCARD_W_CHV_BLOCKED"; ++#endif ++#ifdef SCARD_W_EOF + case SCARD_W_EOF: return "SCARD_W_EOF"; ++#endif + case SCARD_W_REMOVED_CARD: return "SCARD_W_REMOVED_CARD"; + case SCARD_W_RESET_CARD: return "SCARD_W_RESET_CARD"; ++#ifdef SCARD_W_SECURITY_VIOLATION + case SCARD_W_SECURITY_VIOLATION: return "SCARD_W_SECURITY_VIOLATION"; ++#endif + case SCARD_W_UNPOWERED_CARD: return "SCARD_W_UNPOWERED_CARD"; + case SCARD_W_UNRESPONSIVE_CARD: return "SCARD_W_UNRESPONSIVE_CARD"; + case SCARD_W_UNSUPPORTED_CARD: return "SCARD_W_UNSUPPORTED_CARD"; ++#ifdef SCARD_W_WRONG_CHV + case SCARD_W_WRONG_CHV: return "SCARD_W_WRONG_CHV"; ++#endif + default: return "Unknown"; + } + } +--- pecl/pcsc/trunk/pcsc.c 2014/05/04 17:50:17 333473 ++++ pecl/pcsc/trunk/pcsc.c 2014/05/04 17:53:25 333474 +@@ -370,8 +370,8 @@ + case SCARD_E_SHARING_VIOLATION: return "SCARD_E_SHARING_VIOLATION"; + case SCARD_E_SYSTEM_CANCELLED: return "SCARD_E_SYSTEM_CANCELLED"; + case SCARD_E_TIMEOUT: return "SCARD_E_TIMEOUT"; +-#ifdef SCARD_E_SERVER_TOO_BUSY +- case SCARD_E_SERVER_TOO_BUSY: return "SCARD_E_UNEXPECTED"; ++#ifdef SCARD_E_UNEXPECTED ++ case SCARD_E_UNEXPECTED: return "SCARD_E_UNEXPECTED"; + #endif + case SCARD_E_UNKNOWN_CARD: return "SCARD_E_UNKNOWN_CARD"; + case SCARD_E_UNKNOWN_READER: return "SCARD_E_UNKNOWN_READER"; -- cgit