summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--PHPINFO6
-rw-r--r--REFLECTION4
-rw-r--r--apcu-panel.conf8
-rw-r--r--apcu-php81.patch494
-rw-r--r--php-pecl-apcu.spec12
5 files changed, 10 insertions, 514 deletions
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 [ <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