diff options
| -rw-r--r-- | php-pecl-yaz.spec | 49 | ||||
| -rw-r--r-- | yaz-php8.patch | 284 | 
2 files changed, 306 insertions, 27 deletions
diff --git a/php-pecl-yaz.spec b/php-pecl-yaz.spec index 18bfaab..97f75f3 100644 --- a/php-pecl-yaz.spec +++ b/php-pecl-yaz.spec @@ -1,11 +1,15 @@  # remirepo spec file for php-pecl-yaz  # -# Copyright (c) 2014-2019 Remi Collet +# Copyright (c) 2014-2020 Remi Collet  # License: CC-BY-SA  # http://creativecommons.org/licenses/by-sa/4.0/  #  # Please, preserve the changelog entries  # + +# Test suite requires internet access +%bcond_with tests +  %if 0%{?scl:1}  %global sub_prefix %{scl_prefix}  %scl_package       php-pecl-yaz @@ -18,16 +22,17 @@  %else  %global ini_name   40-%{pecl_name}.ini  %endif -# Test suite requires internet access -%global with_tests 0%{?_with_tests:1}  Summary:        Z39.50/SRU client  Name:           %{?sub_prefix}php-pecl-%{pecl_name}  Version:        1.2.3 -Release:        3%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} +Release:        4%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}  License:        BSD -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 + +# Upstream patches +Patch0:         %{pecl_name}-php8.patch  BuildRequires:  %{?dtsprefix}gcc  BuildRequires:  %{?scl_prefix}php-devel @@ -51,31 +56,16 @@ Provides:       %{?scl_prefix}php-pecl-%{pecl_name}          = %{version}-%{rele  Provides:       %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa}  = %{version}-%{release}  %endif -%if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} +%if "%{?packager}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel}  # Other third party repo stuff -%if "%{php_version}" > "5.6" -Obsoletes:     php56u-pecl-%{pecl_name} <= %{version} -Obsoletes:     php56w-pecl-%{pecl_name} <= %{version} -%endif -%if "%{php_version}" > "7.0" -Obsoletes:     php70u-pecl-%{pecl_name} <= %{version} -Obsoletes:     php70w-pecl-%{pecl_name} <= %{version} -%endif -%if "%{php_version}" > "7.1" -Obsoletes:     php71u-pecl-%{pecl_name} <= %{version} -Obsoletes:     php71w-pecl-%{pecl_name} <= %{version} -%endif -%if "%{php_version}" > "7.2" -Obsoletes:     php72u-pecl-%{pecl_name} <= %{version} -Obsoletes:     php72w-pecl-%{pecl_name} <= %{version} -%endif  %if "%{php_version}" > "7.3"  Obsoletes:      php73-pecl-%{pecl_name} <= %{version} -Obsoletes:     php73w-pecl-%{pecl_name} <= %{version}  %endif  %if "%{php_version}" > "7.4"  Obsoletes:      php74-pecl-%{pecl_name} <= %{version} -Obsoletes:     php74w-pecl-%{pecl_name} <= %{version} +%endif +%if "%{php_version}" > "8.0" +Obsoletes:      php80-pecl-%{pecl_name} <= %{version}  %endif  %endif @@ -109,6 +99,8 @@ sed -e 's/role="test"/role="src"/' \      -i package.xml  cd NTS +%patch0 -p1 -b .up +  # Sanity check, really often broken  extver=$(sed -n '/#define PHP_YAZ_VERSION/{s/.* "//;s/".*$//;p}' php_yaz.h)  if test "x${extver}" != "x%{version}"; then @@ -203,7 +195,7 @@ cd NTS      --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \      --modules | grep %{pecl_name} -%if %{with_tests} +%if %{with tests}  : Upstream test suite  for NTS extension  TEST_PHP_EXECUTABLE=%{__php} \  TEST_PHP_ARGS="-n -d extension=$PWD/modules/%{pecl_name}.so" \ @@ -219,7 +211,7 @@ cd ../ZTS      --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \      --modules | grep %{pecl_name} -%if %{with_tests} +%if %{with tests}  : Upstream test suite  for ZTS extension  TEST_PHP_EXECUTABLE=%{_bindir}/zts-php \  TEST_PHP_ARGS="-n -d extension=$PWD/modules/%{pecl_name}.so" \ @@ -245,6 +237,9 @@ REPORT_EXIT_STATUS=1 \  %changelog +* Thu Oct  1 2020 Remi Collet <remi@remirepo.net> - 1.2.3-4 +- add upstream patches for PHP 8 +  * Tue Sep 03 2019 Remi Collet <remi@remirepo.net> - 1.2.3-3  - rebuild for 7.4.0RC1 diff --git a/yaz-php8.patch b/yaz-php8.patch new file mode 100644 index 0000000..87daab8 --- /dev/null +++ b/yaz-php8.patch @@ -0,0 +1,284 @@ +From e629fb640e11f2358c04fe72d50afbd0a004596c Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@remirepo.net> +Date: Wed, 23 Sep 2020 16:44:57 +0200 +Subject: [PATCH] add arginfo for all functions - drop support for PHP 4.x - + add compatibility with PHP 8 + +--- + .gitignore  |   2 + + package.xml |   2 +- + php_yaz.c   | 209 +++++++++++++++++++++++++++++++++++++++------------- + 3 files changed, 162 insertions(+), 51 deletions(-) + +diff --git a/php_yaz.c b/php_yaz.c +index e157815..64b5079 100644 +--- a/php_yaz.c ++++ b/php_yaz.c +@@ -18,6 +18,12 @@ +  + #include "php_yaz.h" +  ++/* for PHP 8+ */ ++#ifndef TSRMLS_CC ++#define TSRMLS_CC ++#define TSRMLS_DC ++#endif ++ + #ifndef YAZ_VERSIONL + #error YAZ version 3.0.2 or later must be used. + #elif YAZ_VERSIONL < 0x030020 +@@ -138,62 +144,165 @@ static int le_link; + ZEND_GET_MODULE(yaz) + #endif +  +-#ifdef ZEND_BEGIN_ARG_INFO +-    ZEND_BEGIN_ARG_INFO(first_argument_force_ref, 0) +-        ZEND_ARG_PASS_INFO(1) +-    ZEND_END_ARG_INFO(); ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_connect, 0, 0, 1) ++    ZEND_ARG_INFO(0, url) ++    ZEND_ARG_INFO(0, options) ++ZEND_END_ARG_INFO(); +  +-    ZEND_BEGIN_ARG_INFO(second_argument_force_ref, 0) +-        ZEND_ARG_PASS_INFO(0) +-        ZEND_ARG_PASS_INFO(1) +-    ZEND_END_ARG_INFO(); +- +-    ZEND_BEGIN_ARG_INFO(third_argument_force_ref, 0) +-        ZEND_ARG_PASS_INFO(0) +-        ZEND_ARG_PASS_INFO(0) +-        ZEND_ARG_PASS_INFO(1) +-    ZEND_END_ARG_INFO(); +-#else +-static unsigned char first_argument_force_ref[] = { +-        1, BYREF_FORCE }; +-static unsigned char second_argument_force_ref[] = { +-        2, BYREF_NONE, BYREF_FORCE }; +-static unsigned char third_argument_force_ref[] = { +-        3, BYREF_NONE, BYREF_NONE, BYREF_FORCE }; +-#endif ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_close, 0, 0, 1) ++    ZEND_ARG_INFO(0, id) ++ZEND_END_ARG_INFO(); ++ ++#define arginfo_yaz_present       arginfo_yaz_close ++ ++#define arginfo_yaz_errno         arginfo_yaz_close ++ ++#define arginfo_yaz_error         arginfo_yaz_close ++ ++#define arginfo_yaz_addinfo       arginfo_yaz_close ++ ++#define arginfo_yaz_es_result     arginfo_yaz_close ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_search, 0, 0, 3) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, type) ++    ZEND_ARG_INFO(0, query) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_wait, 0, 0, 0) ++    ZEND_ARG_INFO(1, options) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_hits, 0, 0, 1) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(1, searchresult) ++    ZEND_ARG_INFO(0, query) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_record, 0, 0, 3) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, pos) ++    ZEND_ARG_INFO(0, type) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_syntax, 0, 0, 2) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, syntax) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_element, 0, 0, 2) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, elementsetname) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_schema, 0, 0, 2) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, schema) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_set_option, 0, 0, 2) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, options_or_name) ++    ZEND_ARG_INFO(0, value) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_get_option, 0, 0, 2) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, name) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_range, 0, 0, 3) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, start) ++    ZEND_ARG_INFO(0, number) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_sort, 0, 0, 2) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, sortspec) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_itemorder, 0, 0, 2) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, package) ++ZEND_END_ARG_INFO(); ++ ++#define arginfo_yaz_ccl_conf      arginfo_yaz_itemorder ++ ++#define arginfo_yaz_cql_conf      arginfo_yaz_itemorder ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_es, 0, 0, 3) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, type) ++    ZEND_ARG_INFO(0, package) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_scan, 0, 0, 3) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, type) ++    ZEND_ARG_INFO(0, query) ++    ZEND_ARG_INFO(0, flags) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_scan_result, 0, 0, 2) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(1, options) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_ccl_parse, 0, 0, 3) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, query) ++    ZEND_ARG_INFO(1, result) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_cql_parse, 0, 0, 4) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, cql) ++    ZEND_ARG_INFO(1, result) ++    ZEND_ARG_INFO(0, rev) ++ZEND_END_ARG_INFO(); ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_databases, 0, 0, 2) ++    ZEND_ARG_INFO(0, id) ++    ZEND_ARG_INFO(0, package) ++ZEND_END_ARG_INFO(); +  +  + zend_function_entry yaz_functions [] = { +-	PHP_FE(yaz_connect, NULL) +-	PHP_FE(yaz_close, NULL) +-	PHP_FE(yaz_search, NULL) +-	PHP_FE(yaz_wait, first_argument_force_ref) +-	PHP_FE(yaz_errno, NULL) +-	PHP_FE(yaz_error, NULL) +-	PHP_FE(yaz_addinfo, NULL) +-	PHP_FE(yaz_hits, second_argument_force_ref) +-	PHP_FE(yaz_record, NULL) +-	PHP_FE(yaz_syntax, NULL) +-	PHP_FE(yaz_element, NULL) +-	PHP_FE(yaz_range, NULL) +-	PHP_FE(yaz_itemorder, NULL) +-	PHP_FE(yaz_es_result, NULL) +-	PHP_FE(yaz_scan, NULL) +-	PHP_FE(yaz_scan_result, second_argument_force_ref) +-	PHP_FE(yaz_present, NULL) +-	PHP_FE(yaz_ccl_conf, NULL) +-	PHP_FE(yaz_ccl_parse, third_argument_force_ref) ++	PHP_FE(yaz_connect, arginfo_yaz_connect) ++	PHP_FE(yaz_close, arginfo_yaz_close) ++	PHP_FE(yaz_search, arginfo_yaz_search) ++	PHP_FE(yaz_wait, arginfo_yaz_wait) ++	PHP_FE(yaz_errno, arginfo_yaz_errno) ++	PHP_FE(yaz_error, arginfo_yaz_error) ++	PHP_FE(yaz_addinfo, arginfo_yaz_addinfo) ++	PHP_FE(yaz_hits, arginfo_yaz_hits) ++	PHP_FE(yaz_record, arginfo_yaz_record) ++	PHP_FE(yaz_syntax, arginfo_yaz_syntax) ++	PHP_FE(yaz_element, arginfo_yaz_element) ++	PHP_FE(yaz_range, arginfo_yaz_range) ++	PHP_FE(yaz_itemorder, arginfo_yaz_itemorder) ++	PHP_FE(yaz_es_result, arginfo_yaz_es_result) ++	PHP_FE(yaz_scan, arginfo_yaz_scan) ++	PHP_FE(yaz_scan_result, arginfo_yaz_scan_result) ++	PHP_FE(yaz_present, arginfo_yaz_present) ++	PHP_FE(yaz_ccl_conf, arginfo_yaz_ccl_conf) ++	PHP_FE(yaz_ccl_parse, arginfo_yaz_ccl_parse) + #if YAZ_VERSIONL >= 0x050100 +-	PHP_FE(yaz_cql_parse, third_argument_force_ref) +-	PHP_FE(yaz_cql_conf, NULL) +-#endif +-	PHP_FE(yaz_database, NULL) +-	PHP_FE(yaz_sort, NULL) +-	PHP_FE(yaz_schema, NULL) +-	PHP_FE(yaz_set_option, NULL) +-	PHP_FE(yaz_get_option, NULL) +-	PHP_FE(yaz_es, NULL) ++	PHP_FE(yaz_cql_parse, arginfo_yaz_cql_parse) ++	PHP_FE(yaz_cql_conf, arginfo_yaz_cql_conf) ++#endif ++	PHP_FE(yaz_database, arginfo_databases) ++	PHP_FE(yaz_sort, arginfo_yaz_sort) ++	PHP_FE(yaz_schema, arginfo_yaz_schema) ++	PHP_FE(yaz_set_option, arginfo_yaz_set_option) ++	PHP_FE(yaz_get_option, arginfo_yaz_get_option) ++	PHP_FE(yaz_es, arginfo_yaz_es) ++#ifdef PHP_FE_END ++	PHP_FE_END ++#else + 	{NULL, NULL, NULL} ++#endif + }; +  + static void get_assoc(INTERNAL_FUNCTION_PARAMETERS, zval *id, Yaz_Association *assocp) +From 323962299bae3b2085dde44790785a39878f5f9a Mon Sep 17 00:00:00 2001 +From: Adam Dickmeiss <adam@indexdata.dk> +Date: Thu, 24 Sep 2020 19:45:58 +0200 +Subject: [PATCH] Fixes for arg info + +--- + php_yaz.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/php_yaz.c b/php_yaz.c +index 64b5079..de9693d 100644 +--- a/php_yaz.c ++++ b/php_yaz.c +@@ -176,7 +176,6 @@ ZEND_END_ARG_INFO(); + ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_hits, 0, 0, 1) +     ZEND_ARG_INFO(0, id) +     ZEND_ARG_INFO(1, searchresult) +-    ZEND_ARG_INFO(0, query) + ZEND_END_ARG_INFO(); +  + ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_record, 0, 0, 3) +@@ -244,7 +243,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_scan, 0, 0, 3) +     ZEND_ARG_INFO(0, flags) + ZEND_END_ARG_INFO(); +  +-ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_scan_result, 0, 0, 2) ++ZEND_BEGIN_ARG_INFO_EX(arginfo_yaz_scan_result, 0, 0, 1) +     ZEND_ARG_INFO(0, id) +     ZEND_ARG_INFO(1, options) + ZEND_END_ARG_INFO(); +@@ -264,7 +263,7 @@ ZEND_END_ARG_INFO(); +  + ZEND_BEGIN_ARG_INFO_EX(arginfo_databases, 0, 0, 2) +     ZEND_ARG_INFO(0, id) +-    ZEND_ARG_INFO(0, package) ++    ZEND_ARG_INFO(0, databases) + ZEND_END_ARG_INFO(); +  +   | 
