From 74787d49b144d5d51761c1d764d2f957b5a6c04b Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 28 Jul 2022 09:57:26 +0200 Subject: more upstream patches for PHP 8.2 --- memcached-upstream.patch | 200 +++++++++++++++++++++++++++++++++++++++++++++-- php-pecl-memcached.spec | 7 +- 2 files changed, 200 insertions(+), 7 deletions(-) diff --git a/memcached-upstream.patch b/memcached-upstream.patch index 42c3b51..302c007 100644 --- a/memcached-upstream.patch +++ b/memcached-upstream.patch @@ -1,7 +1,7 @@ From 1f22de74379208d9758ba99a9bd7373eefeb48f2 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 28 Mar 2022 08:09:29 +0200 -Subject: [PATCH] fix #513 skip test with old and dead libmemcached +Subject: [PATCH 1/3] fix #513 skip test with old and dead libmemcached --- tests/memcachedserver.phpt | 1 - @@ -9,7 +9,7 @@ Subject: [PATCH] fix #513 skip test with old and dead libmemcached 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/memcachedserver.phpt b/tests/memcachedserver.phpt -index 7b058d70..407fcf97 100644 +index 7b058d7..407fcf9 100644 --- a/tests/memcachedserver.phpt +++ b/tests/memcachedserver.phpt @@ -8,7 +8,6 @@ if (!extension_loaded("memcached")) { @@ -21,7 +21,7 @@ index 7b058d70..407fcf97 100644 die("skip needs at least libmemcached 1.1.0\n"); } diff --git a/tests/memcachedserver6.phpt b/tests/memcachedserver6.phpt -index a2277b4a..3d02b244 100644 +index a2277b4..3d02b24 100644 --- a/tests/memcachedserver6.phpt +++ b/tests/memcachedserver6.phpt @@ -8,6 +8,9 @@ if (!extension_loaded("memcached")) { @@ -34,17 +34,20 @@ index a2277b4a..3d02b244 100644 ?> --FILE-- Date: Fri, 3 Jun 2022 16:56:00 +0200 -Subject: [PATCH] fix ${var} deprecation +Subject: [PATCH 2/3] fix ${var} deprecation --- tests/touch_binary.phpt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/touch_binary.phpt b/tests/touch_binary.phpt -index 382c1778..059ec74c 100644 +index 382c177..059ec74 100644 --- a/tests/touch_binary.phpt +++ b/tests/touch_binary.phpt @@ -28,12 +28,12 @@ function status_print ($op, $mem, $expected) @@ -62,3 +65,190 @@ index 382c1778..059ec74c 100644 } } +-- +2.35.3 + +From ce2dfa5e649e01e4b4df925ebaef95ca75a3f353 Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Thu, 28 Jul 2022 09:28:33 +0200 +Subject: [PATCH 3/3] mark password as a sensitive param for 8.2 (#516) + +* mark password as a sensitive param for 8.2 +--- + php_memcached.c | 7 +++---- + php_memcached.stub.php | 6 +++--- + php_memcached_arginfo.h | 37 +++++++++++++++++++++++++++++----- + php_memcached_legacy_arginfo.h | 30 ++++++++++++++++++++++----- + 4 files changed, 63 insertions(+), 17 deletions(-) + +diff --git a/php_memcached.c b/php_memcached.c +index 73deaf6..7ccc9b5 100644 +--- a/php_memcached.c ++++ b/php_memcached.c +@@ -3898,6 +3898,7 @@ PHP_METHOD(MemcachedServer, on) + #if PHP_VERSION_ID < 80000 + #include "php_memcached_legacy_arginfo.h" + #else ++#include "zend_attributes.h" + #include "php_memcached_arginfo.h" + #endif + +@@ -4254,8 +4255,7 @@ PHP_MINIT_FUNCTION(memcached) + + le_memc = zend_register_list_destructors_ex(NULL, php_memc_dtor, "Memcached persistent connection", module_number); + +- INIT_CLASS_ENTRY(ce, "Memcached", class_Memcached_methods); +- memcached_ce = zend_register_internal_class(&ce); ++ memcached_ce = register_class_Memcached(); + memcached_ce->create_object = php_memc_object_new; + + #ifdef HAVE_MEMCACHED_PROTOCOL +@@ -4264,8 +4264,7 @@ PHP_MINIT_FUNCTION(memcached) + memcached_server_object_handlers.clone_obj = NULL; + memcached_server_object_handlers.free_obj = php_memc_server_free_storage; + +- INIT_CLASS_ENTRY(ce, "MemcachedServer", class_MemcachedServer_methods); +- memcached_server_ce = zend_register_internal_class(&ce); ++ memcached_server_ce = register_class_MemcachedServer(); + memcached_server_ce->create_object = php_memc_server_new; + #endif + +diff --git a/php_memcached.stub.php b/php_memcached.stub.php +index 819186f..a44b180 100644 +--- a/php_memcached.stub.php ++++ b/php_memcached.stub.php +@@ -3,9 +3,9 @@ + /** + * @generate-function-entries + * @generate-legacy-arginfo ++ * @generate-class-entries + */ + +- + class Memcached { + + public function __construct(?string $persistent_id=null, ?callable $callback=null, ?string $connection_str=null) {} +@@ -75,7 +75,7 @@ class Memcached { + public function setOptions(array $options): bool {} + public function setBucket(array $host_map, ?array $forward_map, int $replicas): bool {} + #ifdef HAVE_MEMCACHED_SASL +- public function setSaslAuthData(string $username, string $password): bool {} ++ public function setSaslAuthData(string $username, #[\SensitiveParameter] string $password): bool {} + #endif + + #ifdef HAVE_MEMCACHED_SET_ENCODING_KEY +@@ -86,7 +86,7 @@ class Memcached { + public function checkKey(string $key): bool {} + } + +-#ifdef HAVE_MEMCACHED_PROTOCOL ++#if defined(HAVE_MEMCACHED_PROTOCOL) + class MemcachedServer { + + public function run(string $address): bool {} +diff --git a/php_memcached_arginfo.h b/php_memcached_arginfo.h +index 3373624..3108e39 100644 +--- a/php_memcached_arginfo.h ++++ b/php_memcached_arginfo.h +@@ -1,5 +1,5 @@ + /* This is a generated file, edit the .stub.php file instead. +- * Stub hash: 3f4694d4e1f3d1647a832acd8539b056b2ab5e7a */ ++ * Stub hash: 0964c9bfee903e59b63e5a16bd8b6611d827b151 */ + + ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Memcached___construct, 0, 0, 0) + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, persistent_id, IS_STRING, 1, "null") +@@ -406,12 +406,39 @@ static const zend_function_entry class_Memcached_methods[] = { + }; + + +-static const zend_function_entry class_MemcachedServer_methods[] = { + #if defined(HAVE_MEMCACHED_PROTOCOL) ++static const zend_function_entry class_MemcachedServer_methods[] = { + ZEND_ME(MemcachedServer, run, arginfo_class_MemcachedServer_run, ZEND_ACC_PUBLIC) +-#endif +-#if defined(HAVE_MEMCACHED_PROTOCOL) + ZEND_ME(MemcachedServer, on, arginfo_class_MemcachedServer_on, ZEND_ACC_PUBLIC) +-#endif + ZEND_FE_END + }; ++#endif ++ ++static zend_class_entry *register_class_Memcached(void) ++{ ++ zend_class_entry ce, *class_entry; ++ ++ INIT_CLASS_ENTRY(ce, "Memcached", class_Memcached_methods); ++ class_entry = zend_register_internal_class_ex(&ce, NULL); ++#if (PHP_VERSION_ID >= 80200) ++ ++#if defined(HAVE_MEMCACHED_SASL) ++ ++ zend_add_parameter_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "setsaslauthdata", sizeof("setsaslauthdata") - 1), 1, ZSTR_KNOWN(ZEND_STR_SENSITIVEPARAMETER), 0); ++#endif ++#endif ++ ++ return class_entry; ++} ++ ++#if defined(HAVE_MEMCACHED_PROTOCOL) ++static zend_class_entry *register_class_MemcachedServer(void) ++{ ++ zend_class_entry ce, *class_entry; ++ ++ INIT_CLASS_ENTRY(ce, "MemcachedServer", class_MemcachedServer_methods); ++ class_entry = zend_register_internal_class_ex(&ce, NULL); ++ ++ return class_entry; ++} ++#endif +diff --git a/php_memcached_legacy_arginfo.h b/php_memcached_legacy_arginfo.h +index ad6d656..6bb8e2d 100644 +--- a/php_memcached_legacy_arginfo.h ++++ b/php_memcached_legacy_arginfo.h +@@ -1,5 +1,5 @@ + /* This is a generated file, edit the .stub.php file instead. +- * Stub hash: 3f4694d4e1f3d1647a832acd8539b056b2ab5e7a */ ++ * Stub hash: 0964c9bfee903e59b63e5a16bd8b6611d827b151 */ + + ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Memcached___construct, 0, 0, 0) + ZEND_ARG_INFO(0, persistent_id) +@@ -402,12 +402,32 @@ static const zend_function_entry class_Memcached_methods[] = { + }; + + +-static const zend_function_entry class_MemcachedServer_methods[] = { + #if defined(HAVE_MEMCACHED_PROTOCOL) ++static const zend_function_entry class_MemcachedServer_methods[] = { + ZEND_ME(MemcachedServer, run, arginfo_class_MemcachedServer_run, ZEND_ACC_PUBLIC) +-#endif +-#if defined(HAVE_MEMCACHED_PROTOCOL) + ZEND_ME(MemcachedServer, on, arginfo_class_MemcachedServer_on, ZEND_ACC_PUBLIC) +-#endif + ZEND_FE_END + }; ++#endif ++ ++static zend_class_entry *register_class_Memcached(void) ++{ ++ zend_class_entry ce, *class_entry; ++ ++ INIT_CLASS_ENTRY(ce, "Memcached", class_Memcached_methods); ++ class_entry = zend_register_internal_class_ex(&ce, NULL); ++ ++ return class_entry; ++} ++ ++#if defined(HAVE_MEMCACHED_PROTOCOL) ++static zend_class_entry *register_class_MemcachedServer(void) ++{ ++ zend_class_entry ce, *class_entry; ++ ++ INIT_CLASS_ENTRY(ce, "MemcachedServer", class_MemcachedServer_methods); ++ class_entry = zend_register_internal_class_ex(&ce, NULL); ++ ++ return class_entry; ++} ++#endif +-- +2.35.3 + diff --git a/php-pecl-memcached.spec b/php-pecl-memcached.spec index f85a10d..11bf21d 100644 --- a/php-pecl-memcached.spec +++ b/php-pecl-memcached.spec @@ -40,7 +40,7 @@ Summary: Extension to work with the Memcached caching daemon Name: %{?sub_prefix}php-pecl-memcached Version: %{upstream_version}%{?upstream_prever:~%{upstream_lower}} -Release: 2%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +Release: 3%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} License: PHP URL: https://pecl.php.net/package/%{pecl_name} @@ -377,8 +377,11 @@ exit $ret %changelog +* Thu Jul 28 2022 Remi Collet - 3.2.0-3 +- more upstream patches for PHP 8.2 + * Fri Jun 3 2022 Remi Collet - 3.2.0-2 -- add upstream patch for PHP 8.2 +- add upstream patches for PHP 8.2 * Thu Mar 24 2022 Remi Collet - 3.2.0-1 - update to 3.2.0 -- cgit