summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2022-03-17 11:59:39 +0100
committerRemi Collet <remi@php.net>2022-03-17 11:59:39 +0100
commitfb4c17732956a11ffcf000e394b669c7d109a751 (patch)
treefcc1c5a33c1b6d89f5bbf2fac53a791d2afdd478
parent8bb22389704c5396a07e72aaf3519f964023e31f (diff)
add upstream to fix deprecation on return type
fix compatiblity with older PHP verison from https://github.com/php/pecl-search_engine-solr/pull/32
-rw-r--r--php-pecl-solr2.spec20
-rw-r--r--solr-build.patch172
2 files changed, 190 insertions, 2 deletions
diff --git a/php-pecl-solr2.spec b/php-pecl-solr2.spec
index 50dc99d..649aabc 100644
--- a/php-pecl-solr2.spec
+++ b/php-pecl-solr2.spec
@@ -30,13 +30,17 @@ Summary: Object oriented API to Apache Solr
Summary(fr): API orientée objet pour Apache Solr
Name: %{?sub_prefix}php-pecl-solr2
Version: 2.5.1
-Release: 3%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
+Release: 4%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
License: PHP
Group: Development/Languages
URL: https://pecl.php.net/package/solr
Source0: https://pecl.php.net/get/%{pecl_name}-%{version}%{?prever}.tgz
+# compat with 8.1 from upstream
+# compat with older from https://github.com/php/pecl-search_engine-solr/pull/32
+Patch0: %{pecl_name}-build.patch
+
BuildRequires: make
BuildRequires: %{?dtsprefix}gcc
BuildRequires: %{?scl_prefix}php-devel >= 7.0
@@ -108,6 +112,7 @@ sed -e 's/role="test"/role="src"/' \
mv %{pecl_name}-%{version}%{?prever} NTS
cd NTS
+%patch0 -p1 -b .up
: Check version
DIR=src/php7
@@ -199,7 +204,13 @@ sed -e '/SOLR_SERVER_CONFIGURED/s/true/false/' \
-i ?TS/tests/test.config.inc
%endif
-OPT="-n -d error_reporting=24575"
+
+OPT="-n"
+# temporarily disable deprecated
+%if "%{php_version}" > "8.1"
+OPT="$OPT -d error_reporting=24575"
+%endif
+
[ -f %{php_extdir}/curl.so ] && OPT="$OPT -d extension=curl.so"
[ -f %{php_extdir}/json.so ] && OPT="$OPT -d extension=json.so"
@@ -245,6 +256,11 @@ TEST_PHP_EXECUTABLE=%{__ztsphp} \
%changelog
+* Thu Mar 17 2022 Remi Collet <remi@remirepo.net> - 2.5.1-4
+- add upstream to fix deprecation on return type
+- fix compatiblity with older PHP verison from
+ https://github.com/php/pecl-search_engine-solr/pull/32
+
* Thu Mar 17 2022 Remi Collet <remi@remirepo.net> - 2.5.1-3
- build for PHP 8.1 ignoring deprecation
diff --git a/solr-build.patch b/solr-build.patch
new file mode 100644
index 0000000..80cc10c
--- /dev/null
+++ b/solr-build.patch
@@ -0,0 +1,172 @@
+From c656212bad2db9217fdcd014002ea723f3eaa6e8 Mon Sep 17 00:00:00 2001
+From: alexgit2k <alexgit2k@users.noreply.github.com>
+Date: Fri, 11 Mar 2022 12:23:40 +0100
+Subject: [PATCH] Set return-type for some functions
+
+---
+ src/php7/php_solr.c | 61 ++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 47 insertions(+), 14 deletions(-)
+
+diff --git a/src/php7/php_solr.c b/src/php7/php_solr.c
+index 4d7fec3..39018e5 100644
+--- a/src/php7/php_solr.c
++++ b/src/php7/php_solr.c
+@@ -99,16 +99,20 @@ static void php_solr_globals_ctor(zend_solr_globals *solr_globals_arg)
+
+ /* {{{ arg_info vectors for functions and methods */
+
+-ZEND_BEGIN_ARG_INFO_EX(SolrObject__get_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
++ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(SolrObject__get_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1, IS_MIXED, 0)
+ ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, property_name)
+ ZEND_END_ARG_INFO()
+
+-ZEND_BEGIN_ARG_INFO_EX(SolrObject__set_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 2)
++ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(SolrObject__set_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 2, IS_VOID, 0)
+ ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, property_name)
+ ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, property_value)
+ ZEND_END_ARG_INFO()
+
+-ZEND_BEGIN_ARG_INFO_EX(SolrObject_one_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1)
++ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(SolrObject_offsetExists_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1, _IS_BOOL, 0)
++ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, property_name)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(SolrObject_offsetUnset_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1, IS_VOID, 0)
+ ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, property_name)
+ ZEND_END_ARG_INFO()
+
+@@ -143,7 +147,19 @@ ZEND_ARG_OBJ_INFO(SOLR_ARG_PASS_BY_REF_TRUE, sourceDoc, SolrDocument, SOLR_ARG_A
+ ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, overwrite)
+ ZEND_END_ARG_INFO()
+
+-ZEND_BEGIN_ARG_INFO_EX(SolrDocument_current_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
++ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(SolrDocument_current_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0, IS_MIXED, 0)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(SolrDocument_key_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0, IS_MIXED, 0)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(SolrDocument_next_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0, IS_VOID, 0)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(SolrDocument_valid_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0, _IS_BOOL, 0)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(SolrDocument_rewind_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0, IS_VOID, 0)
+ ZEND_END_ARG_INFO()
+
+ ZEND_BEGIN_ARG_INFO_EX(SolrDocument_getInputDocument_args, SOLR_ARG_PASS_REMAINING_BY_REF_FALSE, SOLR_METHOD_RETURN_REFERENCE_FALSE, 0)
+@@ -152,6 +168,23 @@ ZEND_END_ARG_INFO()
+ ZEND_BEGIN_ARG_INFO(SolrDocument_unserialize_args, 0)
+ ZEND_ARG_INFO(0, serialized)
+ ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(SolrDocument_offsetSet_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 2, IS_VOID, 0)
++ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
++ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldValue)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(SolrDocument_offsetGet_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1, IS_MIXED, 0)
++ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(SolrDocument_offsetExists_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1, _IS_BOOL, 0)
++ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
++ZEND_END_ARG_INFO()
++
++ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(SolrDocument_offsetUnset_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1, IS_VOID, 0)
++ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, fieldName)
++ZEND_END_ARG_INFO()
+ /* }}} */
+
+ /* {{{ SolrInputDocument arguments */
+@@ -524,8 +557,8 @@ static zend_function_entry solr_object_methods[] = {
+ */
+ PHP_ME(SolrObject, offsetSet, SolrObject__set_args, ZEND_ACC_PUBLIC)
+ PHP_ME(SolrObject, offsetGet, SolrObject__get_args, ZEND_ACC_PUBLIC)
+- PHP_ME(SolrObject, offsetExists, SolrObject_one_args, ZEND_ACC_PUBLIC)
+- PHP_ME(SolrObject, offsetUnset, SolrObject_one_args, ZEND_ACC_PUBLIC)
++ PHP_ME(SolrObject, offsetExists, SolrObject_offsetExists_args, ZEND_ACC_PUBLIC)
++ PHP_ME(SolrObject, offsetUnset, SolrObject_offsetUnset_args, ZEND_ACC_PUBLIC)
+ PHP_ME(SolrObject, getPropertyNames, Solr_no_args, ZEND_ACC_PUBLIC)
+
+ PHP_FE_END
+@@ -582,16 +615,16 @@ static zend_function_entry solr_document_methods[] = {
+ PHP_ME(SolrDocument, __isset, SolrDocument_fieldExists_args, ZEND_ACC_PUBLIC)
+ PHP_ME(SolrDocument, __unset, SolrDocument_deleteField_args, ZEND_ACC_PUBLIC)
+
+- PHP_ME(SolrDocument, offsetSet, SolrDocument_addField_args, ZEND_ACC_PUBLIC)
+- PHP_ME(SolrDocument, offsetGet, SolrDocument_getField_args, ZEND_ACC_PUBLIC)
+- PHP_ME(SolrDocument, offsetExists, SolrDocument_fieldExists_args, ZEND_ACC_PUBLIC)
+- PHP_ME(SolrDocument, offsetUnset, SolrDocument_deleteField_args, ZEND_ACC_PUBLIC)
++ PHP_ME(SolrDocument, offsetSet, SolrDocument_offsetSet_args, ZEND_ACC_PUBLIC)
++ PHP_ME(SolrDocument, offsetGet, SolrDocument_offsetGet_args, ZEND_ACC_PUBLIC)
++ PHP_ME(SolrDocument, offsetExists, SolrDocument_offsetExists_args, ZEND_ACC_PUBLIC)
++ PHP_ME(SolrDocument, offsetUnset, SolrDocument_offsetUnset_args, ZEND_ACC_PUBLIC)
+
+ PHP_ME(SolrDocument, current, SolrDocument_current_args, ZEND_ACC_PUBLIC)
+- PHP_ME(SolrDocument, key, Solr_no_args, ZEND_ACC_PUBLIC)
+- PHP_ME(SolrDocument, next, Solr_no_args, ZEND_ACC_PUBLIC)
+- PHP_ME(SolrDocument, rewind, Solr_no_args, ZEND_ACC_PUBLIC)
+- PHP_ME(SolrDocument, valid, Solr_no_args, ZEND_ACC_PUBLIC)
++ PHP_ME(SolrDocument, key, SolrDocument_key_args, ZEND_ACC_PUBLIC)
++ PHP_ME(SolrDocument, next, SolrDocument_next_args, ZEND_ACC_PUBLIC)
++ PHP_ME(SolrDocument, rewind, SolrDocument_rewind_args, ZEND_ACC_PUBLIC)
++ PHP_ME(SolrDocument, valid, SolrDocument_valid_args, ZEND_ACC_PUBLIC)
+
+ PHP_ME(SolrDocument, serialize, Solr_no_args, ZEND_ACC_PUBLIC)
+ PHP_ME(SolrDocument, unserialize, SolrDocument_unserialize_args, ZEND_ACC_PUBLIC)
+From 3d1d2c98d4a3f7638a976afc3dd6b85b2d1d4fef Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Thu, 17 Mar 2022 11:38:47 +0100
+Subject: [PATCH] fix build with older PHP
+
+---
+ src/php7/php_solr.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/src/php7/php_solr.c b/src/php7/php_solr.c
+index 26583b2..2110296 100644
+--- a/src/php7/php_solr.c
++++ b/src/php7/php_solr.c
+@@ -98,6 +98,17 @@ static void php_solr_globals_ctor(zend_solr_globals *solr_globals_arg)
+ /******************************************************************************/
+
+ /* {{{ arg_info vectors for functions and methods */
++#if PHP_VERSION_ID < 70200
++#undef ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX
++#define ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(name, return_reference, required_num_args, class_name, allow_null) \
++ static const zend_internal_arg_info name[] = { \
++ { (const char*)(zend_uintptr_t)(required_num_args), ( #class_name ), 0, return_reference, allow_null, 0 },
++#endif
++
++#ifndef ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX
++#define ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(name, return_reference, required_num_args, type, allow_null) \
++ ZEND_BEGIN_ARG_INFO_EX(name, 0, return_reference, required_num_args)
++#endif
+
+ ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(SolrObject__get_args, SOLR_METHOD_RETURN_REFERENCE_FALSE, 1, IS_MIXED, 0)
+ ZEND_ARG_INFO(SOLR_ARG_PASS_BY_REF_FALSE, property_name)
+From 359a8aebd9382f99f07fcc6d36cc063bee01727d Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Thu, 17 Mar 2022 11:48:14 +0100
+Subject: [PATCH] relax test
+
+---
+ tests/bug_61836_error.phpt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/bug_61836_error.phpt b/tests/bug_61836_error.phpt
+index 9dfd94d..2ffff33 100644
+--- a/tests/bug_61836_error.phpt
++++ b/tests/bug_61836_error.phpt
+@@ -18,4 +18,4 @@ $doc = new Model_SolrDocument();
+ //$doc->addField('testname', true);
+ ?>
+ --EXPECTF--
+-Fatal error: Class Model_SolrDocument may not inherit from final class (SolrDocument) in %s on line %d
+\ No newline at end of file
++Fatal error: Class Model_SolrDocument %s final class %s
+--
+2.35.1
+