diff options
-rw-r--r-- | .gitignore | 9 | ||||
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | PHPINFO | 4 | ||||
-rw-r--r-- | REFLECTION | 186 | ||||
-rw-r--r-- | pcsc-php8.patch | 176 | ||||
-rw-r--r-- | php-pecl-pcsc.spec | 56 |
6 files changed, 330 insertions, 104 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..01f0400 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +clog +package-*.xml +*.tgz +*.tar.bz2 +*.tar.gz +*.tar.xz +*.tar.xz.asc +*.src.rpm +*/*rpm @@ -2,3 +2,6 @@ SRCDIR := $(shell pwd) NAME := $(shell basename $(SRCDIR)) include ../../../common/Makefile +refl: + php -d extension=pcsc --re PC/SC >REFLECTION + php -d extension=pcsc --ri PC/SC >PHPINFO @@ -0,0 +1,4 @@ + +PC/SC + +PC/SC support => enabled @@ -1,90 +1,105 @@ -Extension [ <persistent> extension #120 PC/SC version 0.3.1 ] { +Extension [ <persistent> extension #91 PC/SC version 0.4.0 ] { - Constants [74] { - Constant [ integer SCARD_E_BAD_SEEK ] { 2148532265 } - Constant [ integer SCARD_E_CANCELLED ] { 2148532226 } - Constant [ integer SCARD_E_CANT_DISPOSE ] { 2148532238 } - Constant [ integer SCARD_E_CARD_UNSUPPORTED ] { 2148532252 } - Constant [ integer SCARD_E_CERTIFICATE_UNAVAILABLE ] { 2148532269 } - Constant [ integer SCARD_E_COMM_DATA_LOST ] { 2148532271 } - Constant [ integer SCARD_E_DIR_NOT_FOUND ] { 2148532259 } - Constant [ integer SCARD_E_DUPLICATE_READER ] { 2148532251 } - Constant [ integer SCARD_E_FILE_NOT_FOUND ] { 2148532260 } - Constant [ integer SCARD_E_ICC_CREATEORDER ] { 2148532257 } - Constant [ integer SCARD_E_ICC_INSTALLATION ] { 2148532256 } - Constant [ integer SCARD_E_INSUFFICIENT_BUFFER ] { 2148532232 } - Constant [ integer SCARD_E_INVALID_ATR ] { 2148532245 } - Constant [ integer SCARD_E_INVALID_CHV ] { 2148532266 } - Constant [ integer SCARD_E_INVALID_HANDLE ] { 2148532227 } - Constant [ integer SCARD_E_INVALID_PARAMETER ] { 2148532228 } - Constant [ integer SCARD_E_INVALID_TARGET ] { 2148532229 } - Constant [ integer SCARD_E_INVALID_VALUE ] { 2148532241 } - Constant [ integer SCARD_E_NO_ACCESS ] { 2148532263 } - Constant [ integer SCARD_E_NO_DIR ] { 2148532261 } - Constant [ integer SCARD_E_NO_FILE ] { 2148532262 } - Constant [ integer SCARD_E_NO_KEY_CONTAINER ] { 2148532272 } - Constant [ integer SCARD_E_NO_MEMORY ] { 2148532230 } - Constant [ integer SCARD_E_NO_READERS_AVAILABLE ] { 2148532270 } - Constant [ integer SCARD_E_NO_SERVICE ] { 2148532253 } - Constant [ integer SCARD_E_NO_SMARTCARD ] { 2148532236 } - Constant [ integer SCARD_E_NO_SUCH_CERTIFICATE ] { 2148532268 } - Constant [ integer SCARD_E_NOT_READY ] { 2148532240 } - Constant [ integer SCARD_E_NOT_TRANSACTED ] { 2148532246 } - Constant [ integer SCARD_E_PCI_TOO_SMALL ] { 2148532249 } - Constant [ integer SCARD_E_PROTO_MISMATCH ] { 2148532239 } - Constant [ integer SCARD_E_READER_UNAVAILABLE ] { 2148532247 } - Constant [ integer SCARD_E_READER_UNSUPPORTED ] { 2148532250 } - Constant [ integer SCARD_E_SERVER_TOO_BUSY ] { 2148532273 } - Constant [ integer SCARD_E_SERVICE_STOPPED ] { 2148532254 } - Constant [ integer SCARD_E_SHARING_VIOLATION ] { 2148532235 } - Constant [ integer SCARD_E_SYSTEM_CANCELLED ] { 2148532242 } - Constant [ integer SCARD_E_TIMEOUT ] { 2148532234 } - Constant [ integer SCARD_E_UNEXPECTED ] { 2148532255 } - Constant [ integer SCARD_E_UNKNOWN_CARD ] { 2148532237 } - Constant [ integer SCARD_E_UNKNOWN_READER ] { 2148532233 } - Constant [ integer SCARD_E_UNKNOWN_RES_MNG ] { 2148532267 } - Constant [ integer SCARD_E_UNSUPPORTED_FEATURE ] { 2148532255 } - Constant [ integer SCARD_E_WRITE_TOO_MANY ] { 2148532264 } - Constant [ integer SCARD_F_COMM_ERROR ] { 2148532243 } - Constant [ integer SCARD_F_INTERNAL_ERROR ] { 2148532225 } - Constant [ integer SCARD_F_UNKNOWN_ERROR ] { 2148532244 } - Constant [ integer SCARD_F_WAITED_TOO_LONG ] { 2148532231 } - Constant [ integer SCARD_P_SHUTDOWN ] { 2148532248 } - Constant [ integer SCARD_S_SUCCESS ] { 0 } - Constant [ integer SCARD_W_CANCELLED_BY_USER ] { 2148532334 } - Constant [ integer SCARD_W_CARD_NOT_AUTHENTICATED ] { 2148532335 } - Constant [ integer SCARD_W_CHV_BLOCKED ] { 2148532332 } - Constant [ integer SCARD_W_EOF ] { 2148532333 } - Constant [ integer SCARD_W_REMOVED_CARD ] { 2148532329 } - Constant [ integer SCARD_W_RESET_CARD ] { 2148532328 } - Constant [ integer SCARD_W_SECURITY_VIOLATION ] { 2148532330 } - Constant [ integer SCARD_W_UNPOWERED_CARD ] { 2148532327 } - Constant [ integer SCARD_W_UNRESPONSIVE_CARD ] { 2148532326 } - Constant [ integer SCARD_W_UNSUPPORTED_CARD ] { 2148532325 } - Constant [ integer SCARD_W_WRONG_CHV ] { 2148532331 } - Constant [ integer SCARD_PROTOCOL_RAW ] { 4 } - Constant [ integer SCARD_PROTOCOL_T0 ] { 1 } - Constant [ integer SCARD_PROTOCOL_T1 ] { 2 } - Constant [ integer SCARD_EJECT_CARD ] { 3 } - Constant [ integer SCARD_LEAVE_CARD ] { 0 } - Constant [ integer SCARD_RESET_CARD ] { 1 } - Constant [ integer SCARD_UNPOWER_CARD ] { 2 } - Constant [ integer SCARD_ABSENT ] { 2 } - Constant [ integer SCARD_NEGOTIABLE ] { 32 } - Constant [ integer SCARD_POWERED ] { 16 } - Constant [ integer SCARD_PRESENT ] { 4 } - Constant [ integer SCARD_SPECIFIC ] { 64 } - Constant [ integer SCARD_SWALLOWED ] { 8 } + Constant [ int SCARD_E_BAD_SEEK ] { 2148532265 } + Constant [ int SCARD_E_CANCELLED ] { 2148532226 } + Constant [ int SCARD_E_CANT_DISPOSE ] { 2148532238 } + Constant [ int SCARD_E_CARD_UNSUPPORTED ] { 2148532252 } + Constant [ int SCARD_E_CERTIFICATE_UNAVAILABLE ] { 2148532269 } + Constant [ int SCARD_E_COMM_DATA_LOST ] { 2148532271 } + Constant [ int SCARD_E_DIR_NOT_FOUND ] { 2148532259 } + Constant [ int SCARD_E_DUPLICATE_READER ] { 2148532251 } + Constant [ int SCARD_E_FILE_NOT_FOUND ] { 2148532260 } + Constant [ int SCARD_E_ICC_CREATEORDER ] { 2148532257 } + Constant [ int SCARD_E_ICC_INSTALLATION ] { 2148532256 } + Constant [ int SCARD_E_INSUFFICIENT_BUFFER ] { 2148532232 } + Constant [ int SCARD_E_INVALID_ATR ] { 2148532245 } + Constant [ int SCARD_E_INVALID_CHV ] { 2148532266 } + Constant [ int SCARD_E_INVALID_HANDLE ] { 2148532227 } + Constant [ int SCARD_E_INVALID_PARAMETER ] { 2148532228 } + Constant [ int SCARD_E_INVALID_TARGET ] { 2148532229 } + Constant [ int SCARD_E_INVALID_VALUE ] { 2148532241 } + Constant [ int SCARD_E_NO_ACCESS ] { 2148532263 } + Constant [ int SCARD_E_NO_DIR ] { 2148532261 } + Constant [ int SCARD_E_NO_FILE ] { 2148532262 } + Constant [ int SCARD_E_NO_KEY_CONTAINER ] { 2148532272 } + Constant [ int SCARD_E_NO_MEMORY ] { 2148532230 } + Constant [ int SCARD_E_NO_READERS_AVAILABLE ] { 2148532270 } + Constant [ int SCARD_E_NO_SERVICE ] { 2148532253 } + Constant [ int SCARD_E_NO_SMARTCARD ] { 2148532236 } + Constant [ int SCARD_E_NO_SUCH_CERTIFICATE ] { 2148532268 } + Constant [ int SCARD_E_NOT_READY ] { 2148532240 } + Constant [ int SCARD_E_NOT_TRANSACTED ] { 2148532246 } + Constant [ int SCARD_E_PCI_TOO_SMALL ] { 2148532249 } + Constant [ int SCARD_E_PROTO_MISMATCH ] { 2148532239 } + Constant [ int SCARD_E_READER_UNAVAILABLE ] { 2148532247 } + Constant [ int SCARD_E_READER_UNSUPPORTED ] { 2148532250 } + Constant [ int SCARD_E_SERVER_TOO_BUSY ] { 2148532273 } + Constant [ int SCARD_E_SERVICE_STOPPED ] { 2148532254 } + Constant [ int SCARD_E_SHARING_VIOLATION ] { 2148532235 } + Constant [ int SCARD_E_SYSTEM_CANCELLED ] { 2148532242 } + Constant [ int SCARD_E_TIMEOUT ] { 2148532234 } + Constant [ int SCARD_E_UNEXPECTED ] { 2148532255 } + Constant [ int SCARD_E_UNKNOWN_CARD ] { 2148532237 } + Constant [ int SCARD_E_UNKNOWN_READER ] { 2148532233 } + Constant [ int SCARD_E_UNKNOWN_RES_MNG ] { 2148532267 } + Constant [ int SCARD_E_UNSUPPORTED_FEATURE ] { 2148532255 } + Constant [ int SCARD_E_WRITE_TOO_MANY ] { 2148532264 } + Constant [ int SCARD_F_COMM_ERROR ] { 2148532243 } + Constant [ int SCARD_F_INTERNAL_ERROR ] { 2148532225 } + Constant [ int SCARD_F_UNKNOWN_ERROR ] { 2148532244 } + Constant [ int SCARD_F_WAITED_TOO_LONG ] { 2148532231 } + Constant [ int SCARD_P_SHUTDOWN ] { 2148532248 } + Constant [ int SCARD_S_SUCCESS ] { 0 } + Constant [ int SCARD_W_CANCELLED_BY_USER ] { 2148532334 } + Constant [ int SCARD_W_CARD_NOT_AUTHENTICATED ] { 2148532335 } + Constant [ int SCARD_W_CHV_BLOCKED ] { 2148532332 } + Constant [ int SCARD_W_EOF ] { 2148532333 } + Constant [ int SCARD_W_REMOVED_CARD ] { 2148532329 } + Constant [ int SCARD_W_RESET_CARD ] { 2148532328 } + Constant [ int SCARD_W_SECURITY_VIOLATION ] { 2148532330 } + Constant [ int SCARD_W_UNPOWERED_CARD ] { 2148532327 } + Constant [ int SCARD_W_UNRESPONSIVE_CARD ] { 2148532326 } + Constant [ int SCARD_W_UNSUPPORTED_CARD ] { 2148532325 } + Constant [ int SCARD_W_WRONG_CHV ] { 2148532331 } + Constant [ int SCARD_PROTOCOL_RAW ] { 4 } + Constant [ int SCARD_PROTOCOL_T0 ] { 1 } + Constant [ int SCARD_PROTOCOL_T1 ] { 2 } + Constant [ int SCARD_EJECT_CARD ] { 3 } + Constant [ int SCARD_LEAVE_CARD ] { 0 } + Constant [ int SCARD_RESET_CARD ] { 1 } + Constant [ int SCARD_UNPOWER_CARD ] { 2 } + Constant [ int SCARD_ABSENT ] { 2 } + Constant [ int SCARD_NEGOTIABLE ] { 32 } + Constant [ int SCARD_POWERED ] { 16 } + Constant [ int SCARD_PRESENT ] { 4 } + Constant [ int SCARD_SPECIFIC ] { 64 } + Constant [ int SCARD_SWALLOWED ] { 8 } } - Functions { Function [ <internal:PC/SC> function scard_establish_context ] { + + - Parameters [0] { + } } Function [ <internal:PC/SC> function scard_release_context ] { + + - Parameters [1] { + Parameter #0 [ <required> $context ] + } } Function [ <internal:PC/SC> function scard_is_valid_context ] { + + - Parameters [1] { + Parameter #0 [ <required> $context ] + } } Function [ <internal:PC/SC> function scard_list_readers ] { + + - Parameters [1] { + Parameter #0 [ <required> $context ] + } } Function [ <internal:PC/SC> function scard_connect ] { @@ -96,14 +111,35 @@ Extension [ <persistent> extension #120 PC/SC version 0.3.1 ] { } } Function [ <internal:PC/SC> function scard_disconnect ] { + + - Parameters [2] { + Parameter #0 [ <required> $card ] + Parameter #1 [ <optional> $disposition ] + } } Function [ <internal:PC/SC> function scard_transmit ] { + + - Parameters [2] { + Parameter #0 [ <required> $card ] + Parameter #1 [ <required> $command ] + } } Function [ <internal:PC/SC> function scard_status ] { + + - Parameters [1] { + Parameter #0 [ <required> $card ] + } } Function [ <internal:PC/SC> function scard_last_errno ] { + + - Parameters [0] { + } } Function [ <internal:PC/SC> function scard_errstr ] { + + - Parameters [1] { + Parameter #0 [ <required> $errno ] + } } } } diff --git a/pcsc-php8.patch b/pcsc-php8.patch new file mode 100644 index 0000000..32bc25a --- /dev/null +++ b/pcsc-php8.patch @@ -0,0 +1,176 @@ +From 054ec3d5a3185e29557851a0db339b6524d5d810 Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@remirepo.net> +Date: Tue, 9 Feb 2021 07:40:33 +0100 +Subject: [PATCH 1/2] fix build warnings ([-Wunused-variable] and [-Wformat=]) + +--- + pcsc.c | 15 ++++++--------- + 1 file changed, 6 insertions(+), 9 deletions(-) + +diff --git a/pcsc.c b/pcsc.c +index aca54c1..22bfff9 100644 +--- a/pcsc.c ++++ b/pcsc.c +@@ -1,8 +1,6 @@ + /* + +----------------------------------------------------------------------+ +- | PHP Version 5 | +- +----------------------------------------------------------------------+ +- | Copyright (c) 1997-2006 The PHP Group | ++ | Copyright (c) The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | +@@ -102,13 +100,13 @@ static void php_pcsc_ctx_res_dtor(zend_resource *rsrc) { + context=(SCARDCONTEXT)rsrc->ptr; + rc = SCardIsValidContext(context); + if (rc != SCARD_S_SUCCESS) { +- php_error_docref(NULL, E_WARNING, "PC/SC context dtor: SCardIsValidContext returned %s (0x%x)", php_pcsc_error_to_string(rc), rc); ++ php_error_docref(NULL, E_WARNING, "PC/SC context dtor: SCardIsValidContext returned %s (0x%lx)", php_pcsc_error_to_string(rc), rc); + return; + } + + rc = SCardReleaseContext(context); + if (rc != SCARD_S_SUCCESS) { +- php_error_docref(NULL, E_WARNING, "PC/SC context dtor: SCardReleaseContext returned %s (0x%x)", php_pcsc_error_to_string(rc), rc); ++ php_error_docref(NULL, E_WARNING, "PC/SC context dtor: SCardReleaseContext returned %s (0x%lx)", php_pcsc_error_to_string(rc), rc); + return; + } + return; +@@ -127,7 +125,7 @@ static void php_pcsc_conn_res_dtor(zend_resource *rsrc) { + + rc = SCardDisconnect(hCard, SCARD_LEAVE_CARD); + if (rc != SCARD_S_SUCCESS) { +- php_error_docref(NULL, E_WARNING, "PC/SC connection dtor: SCardDisconnect returned %s (0x%x)", php_pcsc_error_to_string(rc), rc); ++ php_error_docref(NULL, E_WARNING, "PC/SC connection dtor: SCardDisconnect returned %s (0x%lx)", php_pcsc_error_to_string(rc), rc); + } + } + +@@ -539,7 +537,6 @@ PHP_FUNCTION(scard_is_valid_context) + Invalidate the PC/SC context */ + PHP_FUNCTION(scard_release_context) + { +- LONG rc = 0; + zval* ctx_res; + SCARDCONTEXT context; + +@@ -547,6 +544,7 @@ PHP_FUNCTION(scard_release_context) + RETURN_NULL(); + } + ZEND_FETCH_RESOURCE(context, SCARDCONTEXT, &ctx_res, -1, PHP_PCSC_CTX_RES_NAME, le_pcsc_ctx_res); ++ (void)context; + + zend_hash_index_del(&EG(regular_list), Z_RES_HANDLE_P(ctx_res)); + RETURN_TRUE; +@@ -669,7 +667,7 @@ PHP_FUNCTION(scard_transmit) + SCARD_IO_REQUEST *recvPci = NULL; + BYTE *sendBuffer; + BYTE *recvBuffer; +- DWORD sendLen, recvLen; ++ DWORD sendLen = 0, recvLen; + LONG rc; + char *apdu; + size_t apduLen; +@@ -734,7 +732,6 @@ PHP_FUNCTION(scard_status) + { + zval* conn_res; + SCARDHANDLE hCard = 0; +- char *strReader = NULL; + DWORD dwProtocol, dwState; + BYTE atrBuffer[32]; + DWORD atrLen; + +From 1d0a009e0252e6be2e020a14f7a2b3fca47a52cc Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@remirepo.net> +Date: Tue, 9 Feb 2021 07:50:34 +0100 +Subject: [PATCH 2/2] add missing arginfo (mandatory for PHP 8) + +--- + pcsc.c | 52 ++++++++++++++++++++++++++++++++++++++++++---------- + 1 file changed, 42 insertions(+), 10 deletions(-) + +diff --git a/pcsc.c b/pcsc.c +index 22bfff9..3b6f788 100644 +--- a/pcsc.c ++++ b/pcsc.c +@@ -44,24 +44,49 @@ ZEND_BEGIN_ARG_INFO_EX(php_pcsc_scard_connect_arginfo, 0, 0, 2) + ZEND_ARG_INFO(1, active_protocol) + ZEND_END_ARG_INFO() + ++ZEND_BEGIN_ARG_INFO_EX(php_pcsc_scard_void, 0, 0, 0) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(php_pcsc_scard_context, 0, 0, 1) ++ ZEND_ARG_INFO(0, context) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(php_pcsc_scard_disconnect, 0, 0, 1) ++ ZEND_ARG_INFO(0, card) ++ ZEND_ARG_INFO(0, disposition) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(php_pcsc_scard_transmit, 0, 0, 2) ++ ZEND_ARG_INFO(0, card) ++ ZEND_ARG_INFO(0, command) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(php_pcsc_scard_card, 0, 0, 1) ++ ZEND_ARG_INFO(0, card) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(php_pcsc_scard_errstr, 0, 0, 1) ++ ZEND_ARG_INFO(0, errno) ++ZEND_END_ARG_INFO() ++ + /* {{{ pcsc_functions[] + * + * Every user visible function must have an entry in pcsc_functions[]. + */ + zend_function_entry pcsc_functions[] = { +- PHP_FE(scard_establish_context, NULL) +- PHP_FE(scard_release_context, NULL) +- PHP_FE(scard_is_valid_context, NULL) +- PHP_FE(scard_list_readers, NULL) ++ PHP_FE(scard_establish_context, php_pcsc_scard_void) ++ PHP_FE(scard_release_context, php_pcsc_scard_context) ++ PHP_FE(scard_is_valid_context, php_pcsc_scard_context) ++ PHP_FE(scard_list_readers, php_pcsc_scard_context) + PHP_FE(scard_connect, php_pcsc_scard_connect_arginfo) + //PHP_FE(scard_reconnect, NULL) +- PHP_FE(scard_disconnect, NULL) +- PHP_FE(scard_transmit, NULL) +- PHP_FE(scard_status, NULL) ++ PHP_FE(scard_disconnect, php_pcsc_scard_disconnect) ++ PHP_FE(scard_transmit, php_pcsc_scard_transmit) ++ PHP_FE(scard_status, php_pcsc_scard_card) + //PHP_FE(scard_get_status_change, NULL) +- PHP_FE(scard_last_errno, NULL) +- PHP_FE(scard_errstr, NULL) +- {NULL, NULL, NULL} ++ PHP_FE(scard_last_errno, php_pcsc_scard_void) ++ PHP_FE(scard_errstr, php_pcsc_scard_errstr) ++ PHP_FE_END + }; + /* }}} */ + +@@ -500,6 +525,10 @@ PHP_FUNCTION(scard_establish_context) + SCARDCONTEXT scard_context = 0; + LONG rc = 0; + ++ if (zend_parse_parameters_none() == FAILURE) { ++ return; ++ } ++ + rc = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, &scard_context); + if (rc != SCARD_S_SUCCESS) + { +@@ -796,6 +825,9 @@ PHP_FUNCTION(scard_status) + Retrieve last error code */ + PHP_FUNCTION(scard_last_errno) + { ++ if (zend_parse_parameters_none() == FAILURE) { ++ return; ++ } + RETURN_LONG(PCSC_G(last_errno)); + } + /* }}} */ diff --git a/php-pecl-pcsc.spec b/php-pecl-pcsc.spec index 1abd2ea..cccf239 100644 --- a/php-pecl-pcsc.spec +++ b/php-pecl-pcsc.spec @@ -1,6 +1,6 @@ # spec file for php-pecl-pcsc # -# Copyright (c) 2014-2019 Remi Collet +# Copyright (c) 2014-2021 Remi Collet # License: CC-BY-SA # http://creativecommons.org/licenses/by-sa/4.0/ # @@ -8,25 +8,25 @@ # %{?scl: %scl_package php-pecl-pcsc} -%global with_zts 0%{?__ztsphp:1} +%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} %global pecl_name pcsc -%if "%{php_version}" < "5.6" -%global ini_name %{pecl_name}.ini -%else %global ini_name 40-%{pecl_name}.ini -%endif Summary: An extension for PHP using the winscard PC/SC API Name: %{?scl_prefix}php-pecl-%{pecl_name} -Version: 0.3.1 -Release: 3%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} +Version: 0.4.0 +Release: 1%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} License: BSD Group: Development/Languages -URL: http://pecl.php.net/package/%{pecl_name} -Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz +URL: https://pecl.php.net/package/%{pecl_name} +Source0: https://pecl.php.net/get/%{pecl_name}-%{version}.tgz + +Patch0: %{pecl_name}-php8.patch +BuildRequires: make +BuildRequires: %{?dtsprefix}gcc BuildRequires: pcsc-lite-devel -BuildRequires: %{?scl_prefix}php-devel > 5.3 +BuildRequires: %{?scl_prefix}php-devel >= 7.3 BuildRequires: %{?scl_prefix}php-pear Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} @@ -40,26 +40,17 @@ Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version} Provides: %{?scl_prefix}php-pecl-%{pecl_name} = %{version}-%{release} Provides: %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa} = %{version}-%{release} -%if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} +%if "%{?packager}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} # Other third party repo stuff -Obsoletes: php53-pecl-%{pecl_name} <= %{version} -Obsoletes: php53u-pecl-%{pecl_name} <= %{version} -Obsoletes: php54-pecl-%{pecl_name} <= %{version} -Obsoletes: php54w-pecl-%{pecl_name} <= %{version} -%if "%{php_version}" > "5.5" -Obsoletes: php55u-pecl-%{pecl_name} <= %{version} -Obsoletes: php55w-pecl-%{pecl_name} <= %{version} +%if "%{php_version}" > "7.3" +Obsoletes: php73-pecl-%{pecl_name} <= %{version} %endif -%if "%{php_version}" > "5.6" -Obsoletes: php56u-pecl-%{pecl_name} <= %{version} -Obsoletes: php56w-pecl-%{pecl_name} <= %{version} +%if "%{php_version}" > "7.4" +Obsoletes: php74-pecl-%{pecl_name} <= %{version} %endif +%if "%{php_version}" > "8.0" +Obsoletes: php80-pecl-%{pecl_name} <= %{version} %endif - -%if 0%{?fedora} < 20 && 0%{?rhel} < 7 -# Filter shared private -%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} -%{?filter_setup} %endif @@ -88,6 +79,8 @@ mv %{pecl_name}-%{version} NTS %{?_licensedir:sed -e '/COPYING/s/role="doc"/role="src"/' -i package.xml} cd NTS +%patch0 -p1 -b .pr1 + # Sanity check, really often broken extver=$(sed -n '/#define PHP_PCSC_VERSION/{s/.* "//;s/".*$//;p}' php_pcsc.h) if test "x${extver}" != "x%{version}"; then @@ -174,14 +167,14 @@ cd NTS : Minimal load test for NTS extension %{__php} --no-php-ini \ --define extension=modules/%{pecl_name}.so \ - --modules | grep PC/SC + --modules | grep '^PC/SC$' %if %{with_zts} cd ../ZTS : Minimal load test for ZTS extension %{__ztsphp} --no-php-ini \ --define extension=modules/%{pecl_name}.so \ - --modules | grep PC/SC + --modules | grep '^PC/SC$' %endif @@ -208,6 +201,11 @@ cd ../ZTS %changelog +* Tue Feb 9 2021 Remi Collet <remi@remirepo.net> - 0.4.0-1 +- update to 0.4.0 +- add patch for PHP 8 from + https://github.com/pcsc-for-php/pcsc/pull/1 + * Mon Jan 21 2019 Remi Collet <remi@remirepo.net> - 0.3.1-3 - cleanup for EL-8 |