summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--408.patch76
-rw-r--r--php-pecl-igbinary.spec10
2 files changed, 85 insertions, 1 deletions
diff --git a/408.patch b/408.patch
new file mode 100644
index 0000000..b118b0a
--- /dev/null
+++ b/408.patch
@@ -0,0 +1,76 @@
+From 2e0788825caa067aaab10e6b80f5fd958d92b0f0 Mon Sep 17 00:00:00 2001
+From: k0d3r1s <k0d3r1s@gmail.com>
+Date: Thu, 4 Dec 2025 16:32:28 +0200
+Subject: [PATCH] The zval_dtor() alias of zval_ptr_dtor_nogc() has been
+ removed
+
+Call zval_ptr_dtor_nogc() directly instead
+---
+ src/php7/igbinary.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/php7/igbinary.c b/src/php7/igbinary.c
+index 17eee3ca..b0a14185 100644
+--- a/src/php7/igbinary.c
++++ b/src/php7/igbinary.c
+@@ -2601,7 +2601,7 @@ zend_always_inline static int igbinary_unserialize_array(struct igbinary_unseria
+ if (IGB_NEEDS_MORE_DATA(igsd, 1)) {
+ zend_error(E_WARNING, "igbinary_unserialize_array: end-of-data");
+ cleanup:
+- zval_dtor(z);
++ zval_ptr_dtor_nogc(z);
+ ZVAL_NULL(z);
+ return 1;
+ }
+@@ -2759,7 +2759,7 @@ inline static int igbinary_unserialize_object_properties(struct igbinary_unseria
+
+ if (IGB_NEEDS_MORE_DATA(igsd, 1)) {
+ zend_error(E_WARNING, "igbinary_unserialize_object_properties: end-of-data");
+- zval_dtor(z);
++ zval_ptr_dtor_nogc(z);
+ ZVAL_NULL(z);
+ return 1;
+ }
+@@ -2778,13 +2778,13 @@ inline static int igbinary_unserialize_object_properties(struct igbinary_unseria
+ {
+ zend_long key_index = 0;
+ if (UNEXPECTED(igbinary_unserialize_long(igsd, key_type, &key_index))) {
+- zval_dtor(z);
++ zval_ptr_dtor_nogc(z);
+ ZVAL_UNDEF(z);
+ return 1;
+ }
+ key_str = zend_long_to_str(key_index);
+ if (UNEXPECTED(key_str == NULL)) {
+- zval_dtor(z);
++ zval_ptr_dtor_nogc(z);
+ ZVAL_UNDEF(z);
+ return 1;
+ }
+@@ -2795,7 +2795,7 @@ inline static int igbinary_unserialize_object_properties(struct igbinary_unseria
+ case igbinary_type_string_id32:
+ key_str = igbinary_unserialize_string(igsd, key_type);
+ if (UNEXPECTED(key_str == NULL)) {
+- zval_dtor(z);
++ zval_ptr_dtor_nogc(z);
+ ZVAL_UNDEF(z);
+ return 1;
+ }
+@@ -2806,7 +2806,7 @@ inline static int igbinary_unserialize_object_properties(struct igbinary_unseria
+ case igbinary_type_string64:
+ key_str = igbinary_unserialize_chararray(igsd, key_type, 1);
+ if (UNEXPECTED(key_str == NULL)) {
+- zval_dtor(z);
++ zval_ptr_dtor_nogc(z);
+ ZVAL_UNDEF(z);
+ return 1;
+ }
+@@ -2818,7 +2818,7 @@ inline static int igbinary_unserialize_object_properties(struct igbinary_unseria
+ continue; /* Skip unserializing this element, serialized with no value. In C, this applies to loop, not switch. */
+ default:
+ zend_error(E_WARNING, "igbinary_unserialize_object_properties: unknown key type '%02x', position %zu", key_type, (size_t)IGB_BUFFER_OFFSET(igsd));
+- zval_dtor(z);
++ zval_ptr_dtor_nogc(z);
+ ZVAL_UNDEF(z);
+ return 1;
+ }
diff --git a/php-pecl-igbinary.spec b/php-pecl-igbinary.spec
index c4b1ed1..d41fd33 100644
--- a/php-pecl-igbinary.spec
+++ b/php-pecl-igbinary.spec
@@ -36,11 +36,13 @@ Summary: Replacement for the standard PHP serializer
Name: %{?scl_prefix}php-pecl-igbinary
License: BSD-3-Clause
Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}}
-Release: 2%{?dist}
+Release: 3%{?dist}
%forgemeta
URL: %{forgeurl}
Source0: %{forgesource}
+Patch0: 408.patch
+
BuildRequires: make
BuildRequires: %{?dtsprefix}gcc
BuildRequires: %{?scl_prefix}php-devel >= 7.0
@@ -92,6 +94,8 @@ These are the files needed to compile programs using Igbinary
%setup -q -c
pushd %{sources}
+%patch -P0 -p1
+
# Check version
subdir=php7
extver=$(sed -n '/#define PHP_IGBINARY_VERSION/{s/.* "//;s/".*$//;p}' src/$subdir/igbinary.h)
@@ -223,6 +227,10 @@ REPORT_EXIT_STATUS=1 \
%changelog
+* Thu Jul 16 2026 Remi Collet <remi@remirepo.net> - 3.2.17~RC1-3
+- fix build with PHP 8.6.0alpha2 using patch from
+ https://github.com/php/pecl-networking-gearman/pull/68
+
* Fri Mar 13 2026 Remi Collet <remi@remirepo.net> - 3.2.17~RC1-2
- drop pear/pecl dependency
- sources from github