summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--PHPINFO12
-rw-r--r--REFLECTION158
-rw-r--r--apcu-5.1.19.ini (renamed from apcu-5.1.2.ini)2
-rw-r--r--apcu-panel.conf8
-rw-r--r--apcu-upstream.patch253
-rw-r--r--php-pecl-apcu.spec161
6 files changed, 186 insertions, 408 deletions
diff --git a/PHPINFO b/PHPINFO
index 22cda66..c4305d9 100644
--- a/PHPINFO
+++ b/PHPINFO
@@ -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
diff --git a/REFLECTION b/REFLECTION
index 28b7652..1c3f326 100644
--- a/REFLECTION
+++ b/REFLECTION
@@ -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