diff options
| author | Remi Collet <remi@remirepo.net> | 2021-10-07 11:12:48 +0200 | 
|---|---|---|
| committer | Remi Collet <remi@php.net> | 2021-10-07 11:12:48 +0200 | 
| commit | b11cf212778abb4d763f604f6f47a452afd3184c (patch) | |
| tree | f124d252df471991877b1bd39e908248a373f87a | |
| parent | e3f011cce509bffc6960b7b6b84d39e7df967dfe (diff) | |
update to 5.1.21
| -rw-r--r-- | PHPINFO | 6 | ||||
| -rw-r--r-- | REFLECTION | 4 | ||||
| -rw-r--r-- | apcu-panel.conf | 8 | ||||
| -rw-r--r-- | apcu-php81.patch | 494 | ||||
| -rw-r--r-- | php-pecl-apcu.spec | 12 | 
5 files changed, 10 insertions, 514 deletions
| @@ -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 @@ -1,4 +1,4 @@ -Extension [ <persistent> extension #66 apcu version 5.1.20 ] { +Extension [ <persistent> extension #68 apcu version 5.1.21 ] {    - INI {      Entry [ apc.enabled <SYSTEM> ] @@ -46,7 +46,7 @@ Extension [ <persistent> 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  <Directory /usr/share/apcu-panel>     <IfModule mod_authz_core.c> -     # Apache 2.4       Require local     </IfModule> -   <IfModule !mod_authz_core.c> -     # Apache 2.2 -     Order Deny,Allow -     Deny from All -     Allow from 127.0.0.1 -     Allow from ::1 -   </IfModule>  </Directory> 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 <nikita.ppv@gmail.com> -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-- - <?php --    require_once(dirname(__FILE__) . '/skipif.inc');  -+require_once(dirname(__FILE__) . '/skipif.inc'); -+if (PHP_VERSION_ID < 80100) die("skip For PHP >= 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-- -+<?php -+require_once(dirname(__FILE__) . '/skipif.inc');  -+if (PHP_VERSION_ID >= 80100) die("skip For PHP < 8.1"); -+?> -+--INI-- -+apc.enabled=1 -+apc.enable_cli=1 -+--FILE-- -+<?php -+ -+class foo { } -+$foo = new foo; -+var_dump($foo); -+apcu_store('foo',$foo); -+unset($foo); -+$bar = apcu_fetch('foo'); -+var_dump($bar); -+$bar->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 - <?php - require_once(dirname(__FILE__) . '/skipif.inc'); - if (PHP_VERSION_ID < 70300) die('skip Only for PHP >= 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-- -+<?php -+require_once(dirname(__FILE__) . '/skipif.inc'); -+if (PHP_VERSION_ID < 80100) die('skip Only for PHP >= 8.1'); -+?> -+--INI-- -+apc.enabled=1 -+apc.enable_cli=1 -+apc.serializer=php -+report_memleaks=0 -+--FILE-- -+<?php -+ -+$a = 'a'; -+$b = array($a); -+$c = array('c'); -+$b[] = &$c; -+$b[] = &$c; -+$d = 'd'; -+$b[] = &$d; -+$b[] = &$d; -+$b[] = &$d; -+$e = 'e'; -+$b[] = $e; -+$b[] = $e; -+$f = array('f'); -+$f[] = &$f; -+$b[] = &$f; -+apcu_store('test', $b); -+$x = apcu_fetch('test'); -+debug_zval_dump($x); -+ -+?> -+===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-- - <?php -  -From ddc5a8b86f88495aa2da1e9df2f6d187c420c3c1 Mon Sep 17 00:00:00 2001 -From: Nikita Popov <nikita.ppv@gmail.com> -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-- -+<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?> -+--INI-- -+apc.enabled=1 -+apc.enable_cli=1 -+--FILE-- -+<?php -+ -+apcu_store("key1", "value1"); -+ -+$it = new APCuIterator(null, APC_ITER_VALUE); -+var_dump($it->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 <remi@remirepo.net> - 5.1.21-1 +- update to 5.1.21 +  * Wed Sep 01 2021 Remi Collet <remi@remirepo.net> - 5.1.20-5  - rebuild for 8.1.0RC1 | 
