diff options
| -rw-r--r-- | 408.patch | 76 | ||||
| -rw-r--r-- | php-pecl-igbinary.spec | 10 |
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 |
