diff options
-rw-r--r-- | PHPINFO | 12 | ||||
-rw-r--r-- | REFLECTION | 158 | ||||
-rw-r--r-- | apcu-5.1.19.ini (renamed from apcu-5.1.2.ini) | 2 | ||||
-rw-r--r-- | apcu-panel.conf | 8 | ||||
-rw-r--r-- | apcu-upstream.patch | 253 | ||||
-rw-r--r-- | php-pecl-apcu.spec | 161 |
6 files changed, 186 insertions, 408 deletions
@@ -2,12 +2,12 @@ apcu APCu Support => Enabled -Version => 5.1.18 +Version => 5.1.23 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.Ju2Kie +Serialization Support => php, brotli, igbinary, lz4, snappy, zstd +Build Date => Nov 12 2023 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 #68 apcu version 5.1.23 ] { - 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,126 +46,140 @@ 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 ] { 139777182917712 } + 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] { } + - Return [ bool ] } - Function [ <internal:apcu> function apcu_sma_info ] { + Function [ <internal:apcu> function apcu_cache_info ] { - Parameters [1] { - Parameter #0 [ <optional> $limited ] + Parameter #0 [ <optional> bool $limited = false ] } + - Return [ array|false ] } Function [ <internal:apcu> function apcu_key_info ] { - Parameters [1] { - Parameter #0 [ <required> $key ] + Parameter #0 [ <required> string $key ] } + - Return [ ?array ] + } + Function [ <internal:apcu> function apcu_sma_info ] { + + - Parameters [1] { + Parameter #0 [ <optional> bool $limited = false ] + } + - Return [ array|false ] } Function [ <internal:apcu> function apcu_enabled ] { - Parameters [0] { } + - Return [ bool ] } Function [ <internal:apcu> function apcu_store ] { - Parameters [3] { Parameter #0 [ <required> $key ] - Parameter #1 [ <optional> $var ] - 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 ] + Parameter #1 [ <optional> mixed $value = <default> ] + Parameter #2 [ <optional> int $ttl = 0 ] } + - Return [ array|bool ] } Function [ <internal:apcu> function apcu_add ] { - Parameters [3] { Parameter #0 [ <required> $key ] - Parameter #1 [ <optional> $var ] - Parameter #2 [ <optional> $ttl ] + Parameter #1 [ <optional> mixed $value = <default> ] + Parameter #2 [ <optional> int $ttl = 0 ] } + - Return [ array|bool ] } Function [ <internal:apcu> function apcu_inc ] { - Parameters [4] { - Parameter #0 [ <required> $key ] - Parameter #1 [ <optional> $step ] - Parameter #2 [ <optional> &$success ] - Parameter #3 [ <optional> $ttl ] + Parameter #0 [ <required> string $key ] + Parameter #1 [ <optional> int $step = 1 ] + Parameter #2 [ <optional> &$success = null ] + Parameter #3 [ <optional> int $ttl = 0 ] } + - Return [ int|false ] } Function [ <internal:apcu> function apcu_dec ] { - Parameters [4] { - Parameter #0 [ <required> $key ] - Parameter #1 [ <optional> $step ] - Parameter #2 [ <optional> &$success ] - Parameter #3 [ <optional> $ttl ] + Parameter #0 [ <required> string $key ] + Parameter #1 [ <optional> int $step = 1 ] + Parameter #2 [ <optional> &$success = null ] + Parameter #3 [ <optional> int $ttl = 0 ] } + - Return [ int|false ] } Function [ <internal:apcu> function apcu_cas ] { - Parameters [3] { + Parameter #0 [ <required> string $key ] + Parameter #1 [ <required> int $old ] + Parameter #2 [ <required> int $new ] + } + - Return [ bool ] + } + Function [ <internal:apcu> function apcu_fetch ] { + + - Parameters [2] { Parameter #0 [ <required> $key ] - Parameter #1 [ <required> $old ] - Parameter #2 [ <required> $new ] + Parameter #1 [ <optional> &$success = null ] } + - Return [ mixed ] } Function [ <internal:apcu> function apcu_exists ] { - Parameters [1] { - Parameter #0 [ <required> $keys ] + Parameter #0 [ <required> $key ] + } + - Return [ array|bool ] + } + Function [ <internal:apcu> function apcu_delete ] { + + - Parameters [1] { + Parameter #0 [ <required> $key ] } + - Return [ array|bool ] } Function [ <internal:apcu> function apcu_entry ] { - Parameters [3] { - Parameter #0 [ <required> $key ] - Parameter #1 [ <required> callable $generator ] - Parameter #2 [ <optional> integer $ttl ] + Parameter #0 [ <required> string $key ] + Parameter #1 [ <required> callable $callback ] + Parameter #2 [ <optional> int $ttl = 0 ] } + - Return [ mixed ] } } - Classes [1] { - Class [ <internal:apcu> <iterateable> class APCuIterator implements Iterator, Traversable ] { + Class [ <internal:apcu> <iterateable> class APCUIterator implements Iterator, Traversable ] { - Constants [0] { } @@ -183,10 +197,10 @@ Extension [ <persistent> extension #74 apcu version 5.1.18 ] { Method [ <internal:apcu, ctor> public method __construct ] { - Parameters [4] { - Parameter #0 [ <optional> $search ] - Parameter #1 [ <optional> $format ] - Parameter #2 [ <optional> $chunk_size ] - Parameter #3 [ <optional> $list ] + Parameter #0 [ <optional> $search = null ] + Parameter #1 [ <optional> int $format = APC_ITER_ALL ] + Parameter #2 [ <optional> int $chunk_size = 0 ] + Parameter #3 [ <optional> int $list = APC_LIST_ACTIVE ] } } @@ -194,48 +208,56 @@ Extension [ <persistent> extension #74 apcu version 5.1.18 ] { - Parameters [0] { } + - Return [ void ] } - Method [ <internal:apcu, prototype Iterator> public method current ] { + Method [ <internal:apcu, prototype Iterator> public method next ] { - Parameters [0] { } + - Return [ void ] } - Method [ <internal:apcu, prototype Iterator> public method key ] { + Method [ <internal:apcu, prototype Iterator> public method valid ] { - Parameters [0] { } + - Return [ bool ] } - Method [ <internal:apcu, prototype Iterator> public method next ] { + Method [ <internal:apcu, prototype Iterator> public method key ] { - Parameters [0] { } + - Return [ string|int ] } - Method [ <internal:apcu, prototype Iterator> public method valid ] { + Method [ <internal:apcu, prototype Iterator> public method current ] { - Parameters [0] { } + - Return [ mixed ] } Method [ <internal:apcu> public method getTotalHits ] { - Parameters [0] { } + - Return [ int ] } Method [ <internal:apcu> public method getTotalSize ] { - Parameters [0] { } + - Return [ int ] } Method [ <internal:apcu> public method getTotalCount ] { - Parameters [0] { } + - Return [ int ] } } } 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-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-upstream.patch b/apcu-upstream.patch deleted file mode 100644 index 9170b6a..0000000 --- a/apcu-upstream.patch +++ /dev/null @@ -1,253 +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"; diff --git a/php-pecl-apcu.spec b/php-pecl-apcu.spec index a17ff5e..1791d39 100644 --- a/php-pecl-apcu.spec +++ b/php-pecl-apcu.spec @@ -3,8 +3,8 @@ # # Fedora spec file for php-pecl-apcu # -# Copyright (c) 2013-2020 Remi Collet -# License: CC-BY-SA +# Copyright (c) 2013-2023 Remi Collet +# License: CC-BY-SA-4.0 # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries @@ -13,55 +13,44 @@ # we don't want -z defs linker flag %undefine _strict_symbol_defs_build -%if 0%{?scl:1} -%global sub_prefix %{scl_prefix} -%scl_package php-pecl-apcu -%endif +%{?scl:%scl_package php-pecl-apcu} + +%bcond_without tests %global gh_commit b771cd50a7fe519b6aaccbe5dc97594e68e0c88f %global gh_short %(c=%{gh_commit}; echo ${c:0:7}) %global gh_owner krakjoe %global gh_project apcu -#global gh_date 20161018 %global pecl_name apcu %global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} %global ini_name 40-%{pecl_name}.ini +%global sources %{pecl_name}-%{version} +%global _configure ../%{sources}/configure -Name: %{?sub_prefix}php-pecl-apcu +Name: %{?scl_prefix}php-pecl-apcu Summary: APC User Cache -Version: 5.1.18 -License: PHP +Version: 5.1.23 +License: PHP-3.01 URL: https://pecl.php.net/package/APCu -%if 0%{?gh_date:1} -Release: 0.7.%{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: 4%{?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: make BuildRequires: %{?dtsprefix}gcc -BuildRequires: %{?scl_prefix}php-devel > 7 +BuildRequires: %{?scl_prefix}php-devel >= 7.0 BuildRequires: %{?scl_prefix}php-pear Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} -%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}} Obsoletes: %{?scl_prefix}php-apcu < 4.0.0-1 Provides: %{?scl_prefix}php-apcu = %{version} Provides: %{?scl_prefix}php-apcu%{?_isa} = %{version} Provides: %{?scl_prefix}php-pecl(apcu) = %{version} Provides: %{?scl_prefix}php-pecl(apcu)%{?_isa} = %{version} -%if "%{?scl_prefix}" != "%{?sub_prefix}" -Provides: %{?scl_prefix}php-pecl-apcu = %{version}-%{release} -Provides: %{?scl_prefix}php-pecl-apcu%{?_isa} = %{version}-%{release} -%endif %if "%{?packager}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} # Other third party repo stuff @@ -91,15 +80,6 @@ Obsoletes: php73w-pecl-%{pecl_name} <= %{version} Obsoletes: php74-pecl-%{pecl_name} <= %{version} Obsoletes: php74w-pecl-%{pecl_name} <= %{version} %endif -%if "%{php_version}" > "8.0" -Obsoletes: php80-pecl-%{pecl_name} <= %{version} -%endif -%endif - -%if 0%{?fedora} < 20 && 0%{?rhel} < 7 -# Filter shared private -%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} -%{?filter_setup} %endif @@ -108,7 +88,7 @@ APCu is userland caching: APC stripped of opcode caching. APCu only supports userland caching of variables. -The %{?sub_prefix}php-pecl-apcu-bc package provides a drop +The %{?scl_prefix}php-pecl-apcu-bc package provides a drop in replacement for APC. Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}. @@ -122,10 +102,6 @@ Requires: %{?scl_prefix}php-devel%{?_isa} Obsoletes: %{?scl_prefix}php-pecl-apc-devel < 4 Provides: %{?scl_prefix}php-pecl-apc-devel = %{version}-%{release} Provides: %{?scl_prefix}php-pecl-apc-devel%{?_isa} = %{version}-%{release} -%if "%{?scl_prefix}" != "%{?sub_prefix}" -Provides: %{?scl_prefix}php-pecl-apcu-devel = %{version}-%{release} -Provides: %{?scl_prefix}php-pecl-apcu-devel%{?_isa} = %{version}-%{release} -%endif %description devel These are the files needed to compile programs using APCu. @@ -151,35 +127,26 @@ configuration, available on http://localhost/apcu-panel/ %prep %setup -qc -%if 0%{?gh_date:1} -mv %{gh_project}-%{gh_commit} NTS -mv NTS/package.xml . -%else -mv %{pecl_name}-%{version} NTS -%endif - %{?_licensedir:sed -e '/LICENSE/s/role="doc"/role="src"/' -i package.xml} -cd NTS -%patch0 -p1 -b .up - +cd %{sources} # 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 - : Error: Upstream extension version is ${extver}, expecting %{version}%{?prever}%{?gh_date:-dev}. +if test "x${extver}" != "x%{version}%{?prever}"; then + : Error: Upstream extension version is ${extver}, expecting %{version}%{?prever}. exit 1 fi cd .. +mkdir NTS %if %{with_zts} -# duplicate for ZTS build -cp -pr NTS ZTS +mkdir ZTS %endif %if 0%{!?scl:1} # Fix path to configuration file sed -e s:apc.conf.php:%{_sysconfdir}/apcu-panel/conf.php:g \ - -i NTS/apc.php + -i %{sources}/apc.php %else # Provide the control panel as doc sed -e '/"apc.php"/s/role="src"/role="doc"/' -i package.xml @@ -188,19 +155,20 @@ sed -e '/"apc.php"/s/role="src"/role="doc"/' -i package.xml %build %{?dtsenable} -cd NTS -%{_bindir}/phpize +cd %{sources} +%{__phpize} + +cd ../NTS %configure \ --enable-apcu \ - --with-php-config=%{_bindir}/php-config + --with-php-config=%{__phpconfig} make %{?_smp_mflags} %if %{with_zts} cd ../ZTS -%{_bindir}/zts-phpize %configure \ --enable-apcu \ - --with-php-config=%{_bindir}/zts-php-config + --with-php-config=%{__ztsphpconfig} make %{?_smp_mflags} %endif @@ -224,7 +192,7 @@ install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml %if 0%{!?scl:1} # Install the Control Panel # Pages -install -D -m 644 -p NTS/apc.php \ +install -D -m 644 -p %{sources}/apc.php \ %{buildroot}%{_datadir}/apcu-panel/index.php # Apache config install -D -m 644 -p %{SOURCE2} \ @@ -236,7 +204,7 @@ install -D -m 644 -p %{SOURCE3} \ # Test & Documentation -cd NTS +cd %{sources} for i in $(grep 'role="test"' ../package.xml | sed -e 's/^.*name="//;s/".*$//') do [ -f $i ] && install -Dpm 644 $i %{buildroot}%{pecl_testdir}/%{pecl_name}/$i [ -f tests/$i ] && install -Dpm 644 tests/$i %{buildroot}%{pecl_testdir}/%{pecl_name}/tests/$i @@ -247,34 +215,32 @@ done %check -%if "%{php_version}" > "8.0" -rm ?TS/tests/not_enough_shm.phpt -%endif +cd %{sources} -cd NTS %{_bindir}/php -n \ -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ -m | grep 'apcu' +%if %{with tests} # Upstream test suite for NTS extension -TEST_PHP_EXECUTABLE=%{_bindir}/php \ +TEST_PHP_EXECUTABLE=%{__php} \ TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \ -NO_INTERACTION=1 \ REPORT_EXIT_STATUS=1 \ -%{_bindir}/php -n run-tests.php --show-diff +%{__php} -n run-tests.php -q --show-diff +%endif %if %{with_zts} -cd ../ZTS %{__ztsphp} -n \ -d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \ -m | grep 'apcu' +%if %{with tests} # Upstream test suite for ZTS extension TEST_PHP_EXECUTABLE=%{__ztsphp} \ TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so" \ -NO_INTERACTION=1 \ REPORT_EXIT_STATUS=1 \ -%{__ztsphp} -n run-tests.php --show-diff +%{__ztsphp} -n run-tests.php -q --show-diff +%endif %endif @@ -299,7 +265,7 @@ fi %files -%{?_licensedir:%license NTS/LICENSE} +%{?_licensedir:%license %{sources}/LICENSE} %doc %{pecl_docdir}/%{pecl_name} %{pecl_xmldir}/%{name}.xml @@ -332,6 +298,57 @@ fi %changelog +* Sun Nov 12 2023 Remi Collet <remi@remirepo.net> - 5.1.23-1 +- update to 5.1.23 + +* Wed Aug 30 2023 Remi Collet <remi@remirepo.net> - 5.1.22-3 +- rebuild for PHP 8.3.0RC1 + +* Tue Jun 6 2023 Remi Collet <remi@remirepo.net> - 5.1.22-2 +- build out of sources tree +- add upstream patch for 8.3 +- add patch for tests when build out of sources tree from + https://github.com/krakjoe/apcu/pull/490 + +* Mon Sep 19 2022 Remi Collet <remi@remirepo.net> - 5.1.22-1 +- update to 5.1.22 + +* Thu Sep 1 2022 Remi Collet <remi@remirepo.net> - 5.1.21-3 +- rebuild for PHP 8.2.0RC1 + +* Thu Aug 18 2022 Remi Collet <remi@remirepo.net> - 5.1.21-2 +- add upstream patches for PHP 8.2 + +* 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 + +* Fri Jul 23 2021 Remi Collet <remi@remirepo.net> - 5.1.20-4 +- add upstream patch for PHP 8.1.0beta1 + +* Wed Jul 7 2021 Remi Collet <remi@remirepo.net> - 5.1.20-3 +- add upstream patch for test suite with PHP 8.1 + +* Thu Jun 10 2021 Remi Collet <remi@remirepo.net> - 5.1.20-2 +- temporarily ignore 3 tests with PHP 8.1 + +* Thu Mar 4 2021 Remi Collet <remi@remirepo.net> - 5.1.20-1 +- update to 5.1.20 + +* 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 + +* Wed Sep 23 2020 Remi Collet <remi@remirepo.net> - 5.1.18-6 +- rebuild for PHP 8.0.0beta4 + +* Wed Sep 2 2020 Remi Collet <remi@remirepo.net> - 5.1.18-5 +- more upstream patches + * Wed Sep 2 2020 Remi Collet <remi@remirepo.net> - 5.1.18-4 - rebuild for PHP 8.0.0beta3 |