summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2020-10-01 08:06:27 +0200
committerRemi Collet <remi@remirepo.net>2020-10-01 08:06:27 +0200
commit7dcda0d5d4d46112fc400dd6930250ab47482f3a (patch)
tree0336de24b67b2a3c4993e5a200579f54fd7f46c8
parent6d390857f6be7cb409eefe69f62119bfd169a46e (diff)
add upstream patches for PHP 8
-rw-r--r--php-pecl-yaz.spec49
-rw-r--r--yaz-php8.patch284
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();
+
+