From b11cf212778abb4d763f604f6f47a452afd3184c Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 7 Oct 2021 11:12:48 +0200 Subject: update to 5.1.21 --- PHPINFO | 6 +- REFLECTION | 4 +- apcu-panel.conf | 8 - apcu-php81.patch | 494 ----------------------------------------------------- php-pecl-apcu.spec | 12 +- 5 files changed, 10 insertions(+), 514 deletions(-) delete mode 100644 apcu-php81.patch diff --git a/PHPINFO b/PHPINFO index 1a58651..1f5dd59 100644 --- a/PHPINFO +++ b/PHPINFO @@ -2,12 +2,12 @@ apcu APCu Support => Enabled -Version => 5.1.20 +Version => 5.1.21 APCu Debugging => Disabled MMAP Support => Enabled -MMAP File Mask => /tmp/apc.QtxPHz +MMAP File Mask => /tmp/apc.oFwhY6 Serialization Support => php, igbinary, lz4, snappy, zstd -Build Date => Mar 4 2021 00:00:00 +Build Date => Oct 7 2021 00:00:00 Directive => Local Value => Master Value apc.enabled => On => On diff --git a/REFLECTION b/REFLECTION index 76b125f..5f69c01 100644 --- a/REFLECTION +++ b/REFLECTION @@ -1,4 +1,4 @@ -Extension [ extension #66 apcu version 5.1.20 ] { +Extension [ extension #68 apcu version 5.1.21 ] { - INI { Entry [ apc.enabled ] @@ -46,7 +46,7 @@ Extension [ extension #66 apcu version 5.1.20 ] { } - Constants [16] { - Constant [ int ] { 140332726223264 } + Constant [ int ] { 140118005428656 } Constant [ int APC_LIST_ACTIVE ] { 1 } Constant [ int APC_LIST_DELETED ] { 2 } Constant [ int APC_ITER_TYPE ] { 1 } diff --git a/apcu-panel.conf b/apcu-panel.conf index e51a40f..de7d690 100644 --- a/apcu-panel.conf +++ b/apcu-panel.conf @@ -3,15 +3,7 @@ Alias /apcu-panel /usr/share/apcu-panel - # Apache 2.4 Require local - - # Apache 2.2 - Order Deny,Allow - Deny from All - Allow from 127.0.0.1 - Allow from ::1 - diff --git a/apcu-php81.patch b/apcu-php81.patch deleted file mode 100644 index 63ce162..0000000 --- a/apcu-php81.patch +++ /dev/null @@ -1,494 +0,0 @@ -From 3d96f1aaf6e1eae26dd637a4795f8fee95b79c02 Mon Sep 17 00:00:00 2001 -From: Nikita Popov -Date: Thu, 10 Jun 2021 10:48:12 +0200 -Subject: [PATCH] Fix tests for PHP 8.1 - ---- - tests/apc_003b.phpt | 15 ++--- - tests/apc_003b_legacy.phpt | 113 +++++++++++++++++++++++++++++++++++++ - tests/apc_006_php73.phpt | 1 + - tests/apc_006_php81.phpt | 83 +++++++++++++++++++++++++++ - tests/bug76145.phpt | 1 + - 5 files changed, 206 insertions(+), 7 deletions(-) - create mode 100644 tests/apc_003b_legacy.phpt - create mode 100644 tests/apc_006_php81.phpt - -diff --git a/tests/apc_003b.phpt b/tests/apc_003b.phpt -index 18b0d20..d7a18cc 100644 ---- a/tests/apc_003b.phpt -+++ b/tests/apc_003b.phpt -@@ -2,7 +2,8 @@ - APC: apcu_store/fetch with objects - --SKIPIF-- - = 8.1"); - ?> - --INI-- - apc.enabled=1 -@@ -68,42 +69,42 @@ object(foo)#%d (1) { - bool(true) - } - object(baz)#%d (6) { -- ["pri":"baz":private]=> -- string(3) "baz" - ["pub"]=> - string(3) "bar" - ["pro":protected]=> - string(3) "bar" - ["pri":"bar":private]=> - string(3) "bar" -+ ["pri":"baz":private]=> -+ string(3) "baz" - ["bar"]=> - bool(true) - ["baz"]=> - bool(true) - } - object(baz)#%d (6) { -- ["pri":"baz":private]=> -- string(3) "baz" - ["pub"]=> - string(3) "bar" - ["pro":protected]=> - string(3) "bar" - ["pri":"bar":private]=> - string(3) "mod" -+ ["pri":"baz":private]=> -+ string(3) "baz" - ["bar"]=> - bool(true) - ["baz"]=> - bool(true) - } - object(baz)#%d (6) { -- ["pri":"baz":private]=> -- string(3) "baz" - ["pub"]=> - string(3) "bar" - ["pro":protected]=> - string(3) "bar" - ["pri":"bar":private]=> - string(3) "mod" -+ ["pri":"baz":private]=> -+ string(3) "baz" - ["bar"]=> - bool(true) - ["baz"]=> -diff --git a/tests/apc_003b_legacy.phpt b/tests/apc_003b_legacy.phpt -new file mode 100644 -index 0000000..ca2fa08 ---- /dev/null -+++ b/tests/apc_003b_legacy.phpt -@@ -0,0 +1,113 @@ -+--TEST-- -+APC: apcu_store/fetch with objects -+--SKIPIF-- -+= 80100) die("skip For PHP < 8.1"); -+?> -+--INI-- -+apc.enabled=1 -+apc.enable_cli=1 -+--FILE-- -+a = true; -+var_dump($bar); -+ -+class bar extends foo -+{ -+ public $pub = 'bar'; -+ protected $pro = 'bar'; -+ private $pri = 'bar'; // we don't see this, we'd need php 5.1 new serialization -+ -+ function __construct() -+ { -+ $this->bar = true; -+ } -+ -+ function change() -+ { -+ $this->pri = 'mod'; -+ } -+} -+ -+class baz extends bar -+{ -+ private $pri = 'baz'; -+ -+ function __construct() -+ { -+ parent::__construct(); -+ $this->baz = true; -+ } -+} -+ -+$baz = new baz; -+var_dump($baz); -+$baz->change(); -+var_dump($baz); -+apcu_store('baz', $baz); -+unset($baz); -+var_dump(apcu_fetch('baz')); -+ -+?> -+===DONE=== -+--EXPECTF-- -+object(foo)#%d (0) { -+} -+object(foo)#%d (0) { -+} -+object(foo)#%d (1) { -+ ["a"]=> -+ bool(true) -+} -+object(baz)#%d (6) { -+ ["pri":"baz":private]=> -+ string(3) "baz" -+ ["pub"]=> -+ string(3) "bar" -+ ["pro":protected]=> -+ string(3) "bar" -+ ["pri":"bar":private]=> -+ string(3) "bar" -+ ["bar"]=> -+ bool(true) -+ ["baz"]=> -+ bool(true) -+} -+object(baz)#%d (6) { -+ ["pri":"baz":private]=> -+ string(3) "baz" -+ ["pub"]=> -+ string(3) "bar" -+ ["pro":protected]=> -+ string(3) "bar" -+ ["pri":"bar":private]=> -+ string(3) "mod" -+ ["bar"]=> -+ bool(true) -+ ["baz"]=> -+ bool(true) -+} -+object(baz)#%d (6) { -+ ["pri":"baz":private]=> -+ string(3) "baz" -+ ["pub"]=> -+ string(3) "bar" -+ ["pro":protected]=> -+ string(3) "bar" -+ ["pri":"bar":private]=> -+ string(3) "mod" -+ ["bar"]=> -+ bool(true) -+ ["baz"]=> -+ bool(true) -+} -+===DONE=== -diff --git a/tests/apc_006_php73.phpt b/tests/apc_006_php73.phpt -index 42bdfde..adc09b9 100644 ---- a/tests/apc_006_php73.phpt -+++ b/tests/apc_006_php73.phpt -@@ -4,6 +4,7 @@ APC: apcu_store/fetch reference test - = 7.3'); -+if (PHP_VERSION_ID >= 80100) die('skip Only for PHP < 8.1'); - ?> - --INI-- - apc.enabled=1 -diff --git a/tests/apc_006_php81.phpt b/tests/apc_006_php81.phpt -new file mode 100644 -index 0000000..94219dc ---- /dev/null -+++ b/tests/apc_006_php81.phpt -@@ -0,0 +1,83 @@ -+--TEST-- -+APC: apcu_store/fetch reference test -+--SKIPIF-- -+= 8.1'); -+?> -+--INI-- -+apc.enabled=1 -+apc.enable_cli=1 -+apc.serializer=php -+report_memleaks=0 -+--FILE-- -+ -+===DONE=== -+--EXPECTF-- -+array(9) refcount(2){ -+ [0]=> -+ string(1) "a" interned -+ [1]=> -+ reference refcount(2) { -+ array(1) refcount(1){ -+ [0]=> -+ string(1) "c" interned -+ } -+ } -+ [2]=> -+ reference refcount(2) { -+ array(1) refcount(1){ -+ [0]=> -+ string(1) "c" interned -+ } -+ } -+ [3]=> -+ reference refcount(3) { -+ string(1) "d" interned -+ } -+ [4]=> -+ reference refcount(3) { -+ string(1) "d" interned -+ } -+ [5]=> -+ reference refcount(3) { -+ string(1) "d" interned -+ } -+ [6]=> -+ string(1) "e" interned -+ [7]=> -+ string(1) "e" interned -+ [8]=> -+ reference refcount(2) { -+ array(2) refcount(1){ -+ [0]=> -+ string(1) "f" interned -+ [1]=> -+ reference refcount(2) { -+ *RECURSION* -+ } -+ } -+ } -+} -+===DONE=== -diff --git a/tests/bug76145.phpt b/tests/bug76145.phpt -index 8959a44..56f7e10 100644 ---- a/tests/bug76145.phpt -+++ b/tests/bug76145.phpt -@@ -3,6 +3,7 @@ Bug #76145: Data corruption reading from APCu while unserializing - --INI-- - apc.enabled=1 - apc.enable_cli=1 -+error_reporting=E_ALL&~E_DEPRECATED - --FILE-- - -Date: Wed, 21 Jul 2021 14:10:49 +0200 -Subject: [PATCH] Add return types to APCUIterator - -For compatibility with tentative types added in PHP 8.1. ---- - apc_iterator.c | 10 ++++------ - apc_iterator.stub.php | 24 ++++++++--------------- - apc_iterator_arginfo.h | 20 +++++++++++-------- - apc_iterator_legacy_arginfo.h | 2 +- - tests/iterator_011.phpt | 37 +++++++++++++++++++++++++++++++++++ - 5 files changed, 62 insertions(+), 31 deletions(-) - create mode 100644 tests/iterator_011.phpt - -diff --git a/apc_iterator.c b/apc_iterator.c -index 712b59b..a268718 100644 ---- a/apc_iterator.c -+++ b/apc_iterator.c -@@ -429,7 +429,8 @@ PHP_METHOD(APCUIterator, current) { - - if (apc_stack_size(iterator->stack) == iterator->stack_idx) { - if (iterator->fetch(iterator) == 0) { -- RETURN_FALSE; -+ zend_throw_error(NULL, "Cannot call current() on invalid iterator"); -+ return; - } - } - -@@ -446,13 +447,10 @@ PHP_METHOD(APCUIterator, key) { - } - - ENSURE_INITIALIZED(iterator); -- if (apc_stack_size(iterator->stack) == 0) { -- RETURN_FALSE; -- } -- - if (apc_stack_size(iterator->stack) == iterator->stack_idx) { - if (iterator->fetch(iterator) == 0) { -- RETURN_FALSE; -+ zend_throw_error(NULL, "Cannot call key() on invalid iterator"); -+ return; - } - } - -diff --git a/apc_iterator.stub.php b/apc_iterator.stub.php -index 95b8ce3..11b981c 100644 ---- a/apc_iterator.stub.php -+++ b/apc_iterator.stub.php -@@ -13,27 +13,19 @@ public function __construct( - int $chunk_size = 0, - int $list = APC_LIST_ACTIVE); - -- /** @return void */ -- public function rewind(); -+ public function rewind(): void; - -- /** @return void */ -- public function next(); -+ public function next(): void; - -- /** @return bool */ -- public function valid(); -+ public function valid(): bool; - -- /** @return string|int|false */ -- public function key(); -+ public function key(): string|int; - -- /** @return mixed */ -- public function current(); -+ public function current(): mixed; - -- /** @return int */ -- public function getTotalHits(); -+ public function getTotalHits(): int; - -- /** @return int */ -- public function getTotalSize(); -+ public function getTotalSize(): int; - -- /** @return int */ -- public function getTotalCount(); -+ public function getTotalCount(): int; - } -diff --git a/apc_iterator_arginfo.h b/apc_iterator_arginfo.h -index 3c0ffb1..f1b8eb7 100644 ---- a/apc_iterator_arginfo.h -+++ b/apc_iterator_arginfo.h -@@ -1,5 +1,5 @@ - /* This is a generated file, edit the .stub.php file instead. -- * Stub hash: bb3222265846a53027ddd5c8da8106de9af8b0d5 */ -+ * Stub hash: e8a5a86d5bb9209117834ed0071130889e769c34 */ - - ZEND_BEGIN_ARG_INFO_EX(arginfo_class_APCUIterator___construct, 0, 0, 0) - ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, search, "null") -@@ -8,22 +8,26 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_APCUIterator___construct, 0, 0, 0) - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, list, IS_LONG, 0, "APC_LIST_ACTIVE") - ZEND_END_ARG_INFO() - --ZEND_BEGIN_ARG_INFO_EX(arginfo_class_APCUIterator_rewind, 0, 0, 0) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_APCUIterator_rewind, 0, 0, IS_VOID, 0) - ZEND_END_ARG_INFO() - - #define arginfo_class_APCUIterator_next arginfo_class_APCUIterator_rewind - --#define arginfo_class_APCUIterator_valid arginfo_class_APCUIterator_rewind -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_APCUIterator_valid, 0, 0, _IS_BOOL, 0) -+ZEND_END_ARG_INFO() - --#define arginfo_class_APCUIterator_key arginfo_class_APCUIterator_rewind -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_APCUIterator_key, 0, 0, MAY_BE_STRING|MAY_BE_LONG) -+ZEND_END_ARG_INFO() - --#define arginfo_class_APCUIterator_current arginfo_class_APCUIterator_rewind -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_APCUIterator_current, 0, 0, IS_MIXED, 0) -+ZEND_END_ARG_INFO() - --#define arginfo_class_APCUIterator_getTotalHits arginfo_class_APCUIterator_rewind -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_APCUIterator_getTotalHits, 0, 0, IS_LONG, 0) -+ZEND_END_ARG_INFO() - --#define arginfo_class_APCUIterator_getTotalSize arginfo_class_APCUIterator_rewind -+#define arginfo_class_APCUIterator_getTotalSize arginfo_class_APCUIterator_getTotalHits - --#define arginfo_class_APCUIterator_getTotalCount arginfo_class_APCUIterator_rewind -+#define arginfo_class_APCUIterator_getTotalCount arginfo_class_APCUIterator_getTotalHits - - - ZEND_METHOD(APCUIterator, __construct); -diff --git a/apc_iterator_legacy_arginfo.h b/apc_iterator_legacy_arginfo.h -index 4ddb156..4dc1fd7 100644 ---- a/apc_iterator_legacy_arginfo.h -+++ b/apc_iterator_legacy_arginfo.h -@@ -1,5 +1,5 @@ - /* This is a generated file, edit the .stub.php file instead. -- * Stub hash: bb3222265846a53027ddd5c8da8106de9af8b0d5 */ -+ * Stub hash: e8a5a86d5bb9209117834ed0071130889e769c34 */ - - ZEND_BEGIN_ARG_INFO_EX(arginfo_class_APCUIterator___construct, 0, 0, 0) - ZEND_ARG_INFO(0, search) -diff --git a/tests/iterator_011.phpt b/tests/iterator_011.phpt -new file mode 100644 -index 0000000..3d2d3f2 ---- /dev/null -+++ b/tests/iterator_011.phpt -@@ -0,0 +1,37 @@ -+--TEST-- -+APCUIterator key() and current() on invalid iterator -+--SKIPIF-- -+ -+--INI-- -+apc.enabled=1 -+apc.enable_cli=1 -+--FILE-- -+key()); -+var_dump($it->current()); -+$it->next(); -+ -+try { -+ var_dump($it->key()); -+} catch (Error $e) { -+ echo $e->getMessage(), "\n"; -+} -+try { -+ var_dump($it->current()); -+} catch (Error $e) { -+ echo $e->getMessage(), "\n"; -+} -+ -+?> -+--EXPECT-- -+string(4) "key1" -+array(1) { -+ ["value"]=> -+ string(6) "value1" -+} -+Cannot call key() on invalid iterator -+Cannot call current() on invalid iterator diff --git a/php-pecl-apcu.spec b/php-pecl-apcu.spec index 189e5ac..f914506 100644 --- a/php-pecl-apcu.spec +++ b/php-pecl-apcu.spec @@ -29,23 +29,20 @@ Name: %{?sub_prefix}php-pecl-apcu Summary: APC User Cache -Version: 5.1.20 +Version: 5.1.21 License: PHP URL: https://pecl.php.net/package/APCu %if 0%{?gh_date:1} Release: 0.9.%{gh_date}git%{gh_short}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{pecl_name}-%{version}-%{gh_short}.tar.gz %else -Release: 5%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} Source0: https://pecl.php.net/get/%{pecl_name}-%{version}.tgz %endif Source1: %{pecl_name}-5.1.19.ini Source2: %{pecl_name}-panel.conf Source3: %{pecl_name}.conf.php -# Upstream patch -Patch0: %{pecl_name}-php81.patch - BuildRequires: make BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?scl_prefix}php-devel >= 7.0 @@ -160,8 +157,6 @@ mv %{pecl_name}-%{version} NTS %{?_licensedir:sed -e '/LICENSE/s/role="doc"/role="src"/' -i package.xml} cd NTS -%patch0 -p1 -b .up - # Sanity check, really often broken extver=$(sed -n '/#define PHP_APCU_VERSION/{s/.* "//;s/".*$//;p}' php_apc.h) if test "x${extver}" != "x%{version}%{?prever}%{?gh_date:-dev}"; then @@ -327,6 +322,9 @@ fi %changelog +* Thu Oct 7 2021 Remi Collet - 5.1.21-1 +- update to 5.1.21 + * Wed Sep 01 2021 Remi Collet - 5.1.20-5 - rebuild for 8.1.0RC1 -- cgit