From 7dcda0d5d4d46112fc400dd6930250ab47482f3a Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 1 Oct 2020 08:06:27 +0200 Subject: add upstream patches for PHP 8 --- yaz-php8.patch | 284 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 284 insertions(+) create mode 100644 yaz-php8.patch (limited to 'yaz-php8.patch') 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 +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 +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(); + + -- cgit