diff options
-rw-r--r-- | PHPINFO | 12 | ||||
-rw-r--r-- | REFLECTION | 98 | ||||
-rw-r--r-- | apcu-5.1.19.ini (renamed from apcu-5.1.2.ini) | 2 | ||||
-rw-r--r-- | apcu-upstream.patch | 273 | ||||
-rw-r--r-- | php-pecl-apcu.spec | 13 |
5 files changed, 62 insertions, 336 deletions
@@ -2,12 +2,12 @@ apcu APCu Support => Enabled -Version => 5.1.18 +Version => 5.1.19 APCu Debugging => Disabled MMAP Support => Enabled -MMAP File Mask => /tmp/apc.lNWw6r -Serialization Support => php, igbinary -Build Date => Oct 28 2019 06:57:45 +MMAP File Mask => /tmp/apc.Szmgrb +Serialization Support => php, igbinary, snappy +Build Date => Oct 5 2020 00:00:00 Directive => Local Value => Master Value apc.enabled => On => On @@ -17,10 +17,10 @@ apc.entries_hint => 4096 => 4096 apc.gc_ttl => 3600 => 3600 apc.ttl => 0 => 0 apc.smart => 0 => 0 -apc.mmap_file_mask => /tmp/apc.lNWw6r => /tmp/apc.lNWw6r +apc.mmap_file_mask => /tmp/apc.XXXXXX => /tmp/apc.XXXXXX apc.enable_cli => On => On apc.slam_defense => Off => Off apc.preload_path => no value => no value apc.coredump_unmap => Off => Off -apc.use_request_time => On => On +apc.use_request_time => Off => Off apc.serializer => php => php @@ -1,4 +1,4 @@ -Extension [ <persistent> extension #74 apcu version 5.1.18 ] { +Extension [ <persistent> extension #70 apcu version 5.1.19 ] { - INI { Entry [ apc.enabled <SYSTEM> ] @@ -23,7 +23,7 @@ Extension [ <persistent> extension #74 apcu version 5.1.18 ] { Current = '0' } Entry [ apc.mmap_file_mask <SYSTEM> ] - Current = '/tmp/apc.WBmQ7j' + Current = '/tmp/apc.XXXXXX' } Entry [ apc.enable_cli <SYSTEM> ] Current = '1' @@ -38,7 +38,7 @@ Extension [ <persistent> extension #74 apcu version 5.1.18 ] { Current = '0' } Entry [ apc.use_request_time <ALL> ] - Current = '1' + Current = '0' } Entry [ apc.serializer <SYSTEM> ] Current = 'php' @@ -46,37 +46,31 @@ Extension [ <persistent> extension #74 apcu version 5.1.18 ] { } - Constants [16] { - Constant [ integer ] { 139698354347520 } - Constant [ integer APC_LIST_ACTIVE ] { 1 } - Constant [ integer APC_LIST_DELETED ] { 2 } - Constant [ integer APC_ITER_TYPE ] { 1 } - Constant [ integer APC_ITER_KEY ] { 2 } - Constant [ integer APC_ITER_VALUE ] { 4 } - Constant [ integer APC_ITER_NUM_HITS ] { 8 } - Constant [ integer APC_ITER_MTIME ] { 16 } - Constant [ integer APC_ITER_CTIME ] { 32 } - Constant [ integer APC_ITER_DTIME ] { 64 } - Constant [ integer APC_ITER_ATIME ] { 128 } - Constant [ integer APC_ITER_REFCOUNT ] { 256 } - Constant [ integer APC_ITER_MEM_SIZE ] { 512 } - Constant [ integer APC_ITER_TTL ] { 1024 } - Constant [ integer APC_ITER_NONE ] { 0 } - Constant [ integer APC_ITER_ALL ] { 4294967295 } + Constant [ int ] { 139998570082400 } + Constant [ int APC_LIST_ACTIVE ] { 1 } + Constant [ int APC_LIST_DELETED ] { 2 } + Constant [ int APC_ITER_TYPE ] { 1 } + Constant [ int APC_ITER_KEY ] { 2 } + Constant [ int APC_ITER_VALUE ] { 4 } + Constant [ int APC_ITER_NUM_HITS ] { 8 } + Constant [ int APC_ITER_MTIME ] { 16 } + Constant [ int APC_ITER_CTIME ] { 32 } + Constant [ int APC_ITER_DTIME ] { 64 } + Constant [ int APC_ITER_ATIME ] { 128 } + Constant [ int APC_ITER_REFCOUNT ] { 256 } + Constant [ int APC_ITER_MEM_SIZE ] { 512 } + Constant [ int APC_ITER_TTL ] { 1024 } + Constant [ int APC_ITER_NONE ] { 0 } + Constant [ int APC_ITER_ALL ] { 4294967295 } } - Functions { - Function [ <internal:apcu> function apcu_cache_info ] { - - - Parameters [1] { - Parameter #0 [ <optional> $limited ] - } - } Function [ <internal:apcu> function apcu_clear_cache ] { - Parameters [0] { } } - Function [ <internal:apcu> function apcu_sma_info ] { + Function [ <internal:apcu> function apcu_cache_info ] { - Parameters [1] { Parameter #0 [ <optional> $limited ] @@ -88,6 +82,12 @@ Extension [ <persistent> extension #74 apcu version 5.1.18 ] { Parameter #0 [ <required> $key ] } } + Function [ <internal:apcu> function apcu_sma_info ] { + + - Parameters [1] { + Parameter #0 [ <optional> $limited ] + } + } Function [ <internal:apcu> function apcu_enabled ] { - Parameters [0] { @@ -97,28 +97,15 @@ Extension [ <persistent> extension #74 apcu version 5.1.18 ] { - Parameters [3] { Parameter #0 [ <required> $key ] - Parameter #1 [ <optional> $var ] + Parameter #1 [ <optional> $value ] Parameter #2 [ <optional> $ttl ] } } - Function [ <internal:apcu> function apcu_fetch ] { - - - Parameters [2] { - Parameter #0 [ <required> $key ] - Parameter #1 [ <optional> &$success ] - } - } - Function [ <internal:apcu> function apcu_delete ] { - - - Parameters [1] { - Parameter #0 [ <required> $keys ] - } - } Function [ <internal:apcu> function apcu_add ] { - Parameters [3] { Parameter #0 [ <required> $key ] - Parameter #1 [ <optional> $var ] + Parameter #1 [ <optional> $value ] Parameter #2 [ <optional> $ttl ] } } @@ -148,24 +135,37 @@ Extension [ <persistent> extension #74 apcu version 5.1.18 ] { Parameter #2 [ <required> $new ] } } + Function [ <internal:apcu> function apcu_fetch ] { + + - Parameters [2] { + Parameter #0 [ <required> $key ] + Parameter #1 [ <optional> &$success ] + } + } Function [ <internal:apcu> function apcu_exists ] { - Parameters [1] { - Parameter #0 [ <required> $keys ] + Parameter #0 [ <required> $key ] + } + } + Function [ <internal:apcu> function apcu_delete ] { + + - Parameters [1] { + Parameter #0 [ <required> $key ] } } Function [ <internal:apcu> function apcu_entry ] { - Parameters [3] { Parameter #0 [ <required> $key ] - Parameter #1 [ <required> callable $generator ] - Parameter #2 [ <optional> integer $ttl ] + Parameter #1 [ <required> $callback ] + Parameter #2 [ <optional> $ttl ] } } } - Classes [1] { - Class [ <internal:apcu> <iterateable> class APCuIterator implements Iterator, Traversable ] { + Class [ <internal:apcu> <iterateable> class APCUIterator implements Iterator, Traversable ] { - Constants [0] { } @@ -196,25 +196,25 @@ Extension [ <persistent> extension #74 apcu version 5.1.18 ] { } } - Method [ <internal:apcu, prototype Iterator> public method current ] { + Method [ <internal:apcu, prototype Iterator> public method next ] { - Parameters [0] { } } - Method [ <internal:apcu, prototype Iterator> public method key ] { + Method [ <internal:apcu, prototype Iterator> public method valid ] { - Parameters [0] { } } - Method [ <internal:apcu, prototype Iterator> public method next ] { + Method [ <internal:apcu, prototype Iterator> public method key ] { - Parameters [0] { } } - Method [ <internal:apcu, prototype Iterator> public method valid ] { + Method [ <internal:apcu, prototype Iterator> public method current ] { - Parameters [0] { } diff --git a/apcu-5.1.2.ini b/apcu-5.1.19.ini index ed8dd16..dacb938 100644 --- a/apcu-5.1.2.ini +++ b/apcu-5.1.19.ini @@ -55,7 +55,7 @@ apc.mmap_file_mask=/tmp/apc.XXXXXX ;apc.serializer='php' ; use the SAPI request start time for TTL -;apc.use_request_time=1 +;apc.use_request_time=0 ; Enables APCu handling of signals, such as SIGSEGV, that write core files ; when signaled. APCu will attempt to unmap the shared memory segment in diff --git a/apcu-upstream.patch b/apcu-upstream.patch deleted file mode 100644 index 78c4c65..0000000 --- a/apcu-upstream.patch +++ /dev/null @@ -1,273 +0,0 @@ -diff --git a/apc_arginfo.h b/apc_arginfo.h -index 0bd61c9..8ba2686 100644 ---- a/apc_arginfo.h -+++ b/apc_arginfo.h -@@ -76,6 +76,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_apcu_entry, 0, 0, 2) - ZEND_ARG_TYPE_INFO(0, generator, IS_CALLABLE, 0) - ZEND_ARG_TYPE_INFO(0, ttl, IS_LONG, 0) - ZEND_END_ARG_INFO() -+ -+ZEND_BEGIN_ARG_INFO_EX(arginfo_apcu_inc_request_time, 0, 0, 0) -+ ZEND_ARG_INFO(0, by) -+ZEND_END_ARG_INFO() - /* }}} */ - - #endif -diff --git a/apc_globals.h b/apc_globals.h -index 74c8f27..87625c9 100644 ---- a/apc_globals.h -+++ b/apc_globals.h -@@ -62,7 +62,7 @@ ZEND_BEGIN_MODULE_GLOBALS(apcu) - - char *serializer_name; /* the serializer config option */ - -- volatile zend_bool recursion; -+ volatile unsigned recursion; - ZEND_END_MODULE_GLOBALS(apcu) - - /* (the following is defined in php_apc.c) */ -diff --git a/apc_iterator.c b/apc_iterator.c -index 302b086..f601a27 100644 ---- a/apc_iterator.c -+++ b/apc_iterator.c -@@ -297,7 +297,8 @@ static void apc_iterator_totals(apc_iterator_t *iterator) { - void apc_iterator_obj_init(apc_iterator_t *iterator, zval *search, zend_long format, zend_long chunk_size, zend_long list) - { - if (!APCG(enabled)) { -- apc_error("APC must be enabled to use " APC_ITERATOR_NAME); -+ zend_throw_error(NULL, "APC must be enabled to use " APC_ITERATOR_NAME); -+ return; - } - - if (chunk_size < 0) { -diff --git a/apc_signal.c b/apc_signal.c -index aff13c8..22504e5 100644 ---- a/apc_signal.c -+++ b/apc_signal.c -@@ -113,7 +113,7 @@ static void apc_rehandle_signal(int signo, siginfo_t *siginfo, void *context) - */ - static int apc_register_signal(int signo, void (*handler)(int, siginfo_t*, void*)) - { -- struct sigaction sa = {{0}}; -+ struct sigaction sa; - apc_signal_entry_t p_sig = {0}; - - if (sigaction(signo, NULL, &sa) == 0) { -diff --git a/apc_sma.c b/apc_sma.c -index da457d3..3150d92 100644 ---- a/apc_sma.c -+++ b/apc_sma.c -@@ -234,8 +234,8 @@ static APC_HOTSPOT size_t sma_deallocate(void* shmaddr, size_t offset) - block_t* nxt; /* the block after cur */ - size_t size; /* size of deallocated block */ - -+ assert(offset >= ALIGNWORD(sizeof(struct block_t))); - offset -= ALIGNWORD(sizeof(struct block_t)); -- assert(offset >= 0); - - /* find position of new block in free list */ - cur = BLOCKAT(offset); -diff --git a/php_apc.c b/php_apc.c -index ad9351d..e08a770 100644 ---- a/php_apc.c -+++ b/php_apc.c -@@ -93,7 +93,7 @@ static void php_apc_init_globals(zend_apcu_globals* apcu_globals) - apcu_globals->smart = 0; - apcu_globals->preload_path = NULL; - apcu_globals->coredump_unmap = 0; -- apcu_globals->use_request_time = 1; -+ apcu_globals->use_request_time = 0; - apcu_globals->serializer_name = NULL; - apcu_globals->recursion = 0; - } -@@ -151,7 +151,7 @@ STD_PHP_INI_BOOLEAN("apc.enable_cli", "0", PHP_INI_SYSTEM, OnUpdateBool, - STD_PHP_INI_BOOLEAN("apc.slam_defense", "0", PHP_INI_SYSTEM, OnUpdateBool, slam_defense, zend_apcu_globals, apcu_globals) - STD_PHP_INI_ENTRY("apc.preload_path", (char*)NULL, PHP_INI_SYSTEM, OnUpdateString, preload_path, zend_apcu_globals, apcu_globals) - STD_PHP_INI_BOOLEAN("apc.coredump_unmap", "0", PHP_INI_SYSTEM, OnUpdateBool, coredump_unmap, zend_apcu_globals, apcu_globals) --STD_PHP_INI_BOOLEAN("apc.use_request_time", "1", PHP_INI_ALL, OnUpdateBool, use_request_time, zend_apcu_globals, apcu_globals) -+STD_PHP_INI_BOOLEAN("apc.use_request_time", "0", PHP_INI_ALL, OnUpdateBool, use_request_time, zend_apcu_globals, apcu_globals) - STD_PHP_INI_ENTRY("apc.serializer", "php", PHP_INI_SYSTEM, OnUpdateStringUnempty, serializer_name, zend_apcu_globals, apcu_globals) - PHP_INI_END() - -@@ -475,12 +475,14 @@ static void apc_store_helper(INTERNAL_FUNCTION_PARAMETERS, const zend_bool exclu - ZEND_HASH_FOREACH_KEY_VAL(hash, hkey_idx, hkey, hentry) { - ZVAL_DEREF(hentry); - if (hkey) { -- if (!apc_cache_store(apc_user_cache, hkey, hentry, (uint32_t) ttl, exclusive)) { -- zend_hash_add_new(Z_ARRVAL_P(return_value), hkey, &fail_zv); -- } -+ zend_string_addref(hkey); - } else { -- zend_hash_index_add_new(Z_ARRVAL_P(return_value), hkey_idx, &fail_zv); -+ hkey = zend_long_to_str(hkey_idx); -+ } -+ if (!apc_cache_store(apc_user_cache, hkey, hentry, (uint32_t) ttl, exclusive)) { -+ zend_symtable_add_new(Z_ARRVAL_P(return_value), hkey, &fail_zv); - } -+ zend_string_release(hkey); - } ZEND_HASH_FOREACH_END(); - return; - } else if (Z_TYPE_P(key) == IS_STRING) { -@@ -500,6 +502,9 @@ static void apc_store_helper(INTERNAL_FUNCTION_PARAMETERS, const zend_bool exclu - /* {{{ proto bool apcu_enabled(void) - returns true when apcu is usable in the current environment */ - PHP_FUNCTION(apcu_enabled) { -+ if (zend_parse_parameters_none() == FAILURE) { -+ return; -+ } - RETURN_BOOL(APCG(enabled)); - } - /* }}} */ -@@ -798,7 +803,7 @@ zend_function_entry apcu_functions[] = { - PHP_FE(apcu_exists, arginfo_apcu_exists) - PHP_FE(apcu_entry, arginfo_apcu_entry) - #ifdef APC_DEBUG -- PHP_FE(apcu_inc_request_time, NULL) -+ PHP_FE(apcu_inc_request_time, arginfo_apcu_inc_request_time) - #endif - PHP_FE_END - }; -diff --git a/tests/apc_disabled.phpt b/tests/apc_disabled.phpt -index 184a759..c3f9adf 100644 ---- a/tests/apc_disabled.phpt -+++ b/tests/apc_disabled.phpt -@@ -40,6 +40,13 @@ var_dump(apcu_cas("key", 10, 20)); - echo "\nentry\n"; - var_dump(apcu_entry("key", function() { return 42; })); - -+echo "\niterator\n"; -+try { -+ new APCUIterator; -+} catch (Error $e) { -+ echo $e->getMessage(), "\n"; -+} -+ - ?> - --EXPECTF-- - enabled -@@ -91,3 +98,6 @@ bool(false) - - entry - NULL -+ -+iterator -+APC must be enabled to use APCuIterator -diff --git a/tests/apc_entry_003.phpt b/tests/apc_entry_003.phpt -index f066583..e04bf4b 100644 ---- a/tests/apc_entry_003.phpt -+++ b/tests/apc_entry_003.phpt -@@ -13,4 +13,4 @@ $value = apcu_entry("test", function($key) { - }); - ?> - --EXPECTF-- --Fatal error: Trait 'T' not found in %s on line %d -+Fatal error: %s -diff --git a/tests/apc_store_array_int_keys.phpt b/tests/apc_store_array_int_keys.phpt -new file mode 100644 -index 0000000..654f70c ---- /dev/null -+++ b/tests/apc_store_array_int_keys.phpt -@@ -0,0 +1,26 @@ -+--TEST-- -+apcu_store() with int keys in array should convert them to string -+--SKIPIF-- -+<?php -+require_once(__DIR__ . '/skipif.inc'); -+?> -+--INI-- -+apc.enabled=1 -+apc.enable_cli=1 -+--FILE-- -+<?php -+ -+var_dump(apcu_add(["123" => "test"])); -+var_dump(apcu_store(["123" => "test"])); -+var_dump(apcu_add(["123" => "test"])); -+ -+?> -+--EXPECT-- -+array(0) { -+} -+array(0) { -+} -+array(1) { -+ [123]=> -+ int(-1) -+} -diff --git a/tests/apc_store_reference.phpt b/tests/apc_store_reference.phpt -index 2228899..d2cb991 100644 ---- a/tests/apc_store_reference.phpt -+++ b/tests/apc_store_reference.phpt -@@ -4,6 +4,8 @@ The outermost value should always be a value, not a reference - apc.enabled=1 - apc.enable_cli=1 - apc.serializer=default -+--SKIPIF-- -+<?php if (PHP_VERSION_ID >= 80000) die('skip Requires PHP < 8.0.0'); ?> - --FILE-- - <?php - -diff --git a/tests/apc_store_reference_php8.phpt b/tests/apc_store_reference_php8.phpt -new file mode 100644 -index 0000000..1eae4bb ---- /dev/null -+++ b/tests/apc_store_reference_php8.phpt -@@ -0,0 +1,26 @@ -+--TEST-- -+The outermost value should always be a value, not a reference -+--INI-- -+apc.enabled=1 -+apc.enable_cli=1 -+apc.serializer=default -+--SKIPIF-- -+<?php if (PHP_VERSION_ID < 80000) die('skip Requires PHP >= 8.0.0'); ?> -+--FILE-- -+<?php -+ -+/* The output is different for the php serializer, because it does not replicate the -+ * cycle involving the top-level value. Instead the cycle is placed one level lower. -+ * I believe this is a bug in the php serializer. */ -+ -+$value = [&$value]; -+apcu_store(["key" => &$value]); -+$result = apcu_fetch("key"); -+var_dump($result); -+ -+?> -+--EXPECT-- -+array(1) { -+ [0]=> -+ *RECURSION* -+} -diff --git a/tests/server_test.inc b/tests/server_test.inc -index 2aede0c..75035a3 100644 ---- a/tests/server_test.inc -+++ b/tests/server_test.inc -@@ -44,6 +44,7 @@ function server_start_one($host, $port, $code = 'echo "Hello world";', $php_opts - $cmd .= " {$router}"; - } - -+ $descriptorspec[2] = array('pipe', 'w'); - $handle = proc_open(addslashes($cmd), $descriptorspec, $pipes, $doc_root, NULL, array("bypass_shell" => true, "suppress_errors" => true)); - } else { - $cmd = "exec {$php_executable} -n $php_args -t {$doc_root} -S $host:$port"; -From 7a1989e306d78f4bb9276abbad9cf0db35c9d06e Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@remirepo.net> -Date: Wed, 2 Sep 2020 12:07:57 +0200 -Subject: [PATCH] fix #399 relax test for PHP 8 - ---- - tests/not_enough_shm.phpt | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/tests/not_enough_shm.phpt b/tests/not_enough_shm.phpt -index 0b5ea1b..acb3c31 100644 ---- a/tests/not_enough_shm.phpt -+++ b/tests/not_enough_shm.phpt -@@ -8,5 +8,4 @@ apc.entries_hint=1000000 - --FILE-- - Irrelevant - --EXPECTF-- --%A --Fatal error: Unable to allocate %d bytes of shared memory for cache structures. Either apc.shm_size is too small or apc.entries_hint too large in Unknown on line 0 -+%A: Unable to allocate %d bytes of shared memory for cache structures. Either apc.shm_size is too small or apc.entries_hint too large in Unknown on line 0 diff --git a/php-pecl-apcu.spec b/php-pecl-apcu.spec index 62a586a..2e06a07 100644 --- a/php-pecl-apcu.spec +++ b/php-pecl-apcu.spec @@ -29,22 +29,20 @@ Name: %{?sub_prefix}php-pecl-apcu Summary: APC User Cache -Version: 5.1.18 +Version: 5.1.19 License: PHP URL: https://pecl.php.net/package/APCu %if 0%{?gh_date:1} Release: 0.8.%{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: 7%{?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.2.ini +Source1: %{pecl_name}-5.1.19.ini Source2: %{pecl_name}-panel.conf Source3: %{pecl_name}.conf.php -Patch0: %{pecl_name}-upstream.patch - BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?scl_prefix}php-devel > 7 BuildRequires: %{?scl_prefix}php-pear @@ -161,8 +159,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 @@ -328,6 +324,9 @@ fi %changelog +* Mon Oct 5 2020 Remi Collet <remi@remirepo.net> - 5.1.19-1 +- update to 5.1.19 + * Wed Sep 30 2020 Remi Collet <remi@remirepo.net> - 5.1.18-7 - rebuild for PHP 8.0.0RC1 |