summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apcu-git.patch289
-rw-r--r--php-pecl-apcu.spec27
2 files changed, 12 insertions, 304 deletions
diff --git a/apcu-git.patch b/apcu-git.patch
deleted file mode 100644
index b595a48..0000000
--- a/apcu-git.patch
+++ /dev/null
@@ -1,289 +0,0 @@
-From 286f70d4a921c0cd21f59f8db8efd2fa45e8d559 Mon Sep 17 00:00:00 2001
-From: Remi Collet <fedora@famillecollet.com>
-Date: Mon, 8 Jul 2013 14:23:05 +0200
-Subject: [PATCH 1/4] restore APC hook for register serializer, fix #24
-
----
- apc.c | 4 +--
- apc.h | 19 +++----------
- apc_serializer.h | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- config.m4 | 2 +-
- config.w32 | 2 +-
- php_apc.c | 7 ++++-
- 6 files changed, 98 insertions(+), 20 deletions(-)
- create mode 100644 apc_serializer.h
-
-diff --git a/apc.c b/apc.c
-index 86ed21f..7457b53 100644
---- a/apc.c
-+++ b/apc.c
-@@ -370,8 +370,8 @@ HashTable* apc_flip_hash(HashTable *hash) {
- /* }}} */
-
- /* {{{ apc_register_serializer */
--PHP_APCU_API zend_bool apc_register_serializer(const char* name,
-- apc_serialize_t serialize,
-+PHP_APCU_API int _apc_register_serializer(const char* name,
-+ apc_serialize_t serialize,
- apc_unserialize_t unserialize,
- void *config TSRMLS_DC) {
- int i;
-diff --git a/apc.h b/apc.h
-index cd1cb59..256ab01 100644
---- a/apc.h
-+++ b/apc.h
-@@ -127,19 +127,8 @@
-
- /*
- * Serializer API
--* Note: This used to live in apc_serializer.h
- */
--#define APC_SERIALIZER_NAME(module) module##_apc_serializer
--#define APC_SERIALIZER_EXTERN(module) extern apc_serialize_t module##_apc_serializer
--#define APC_UNSERIALIZER_NAME(module) module##_apc_unserializer
--#define APC_UNSERIALIZER_EXTERN(module) extern apc_unserialize_t module##_apc_unserializer
--
--#define APC_SERIALIZER_ARGS unsigned char **buf, size_t *buf_len, const zval *value, void *config TSRMLS_DC
--#define APC_UNSERIALIZER_ARGS zval **value, unsigned char *buf, size_t buf_len, void *config TSRMLS_DC
--
--/* {{{ */
--typedef int (*apc_serialize_t)(APC_SERIALIZER_ARGS);
--typedef int (*apc_unserialize_t)(APC_UNSERIALIZER_ARGS); /* }}} */
-+#include "apc_serializer.h"
-
- /* {{{ struct definition: apc_serializer_t */
- typedef struct apc_serializer_t {
-@@ -150,10 +139,10 @@
- } apc_serializer_t;
- /* }}} */
-
--/* {{{ apc_register_serializer
-+/* {{{ _apc_register_serializer
- registers the serializer using the given name and paramters */
--PHP_APCU_API zend_bool apc_register_serializer(const char* name,
-- apc_serialize_t serialize,
-+PHP_APCU_API int _apc_register_serializer(const char* name,
-+ apc_serialize_t serialize,
- apc_unserialize_t unserialize,
- void *config TSRMLS_DC); /* }}} */
-
-diff --git a/apc_serializer.h b/apc_serializer.h
-new file mode 100644
-index 0000000..0bdaa08
---- /dev/null
-+++ b/apc_serializer.h
-@@ -0,0 +1,84 @@
-+/*
-+ +----------------------------------------------------------------------+
-+ | APC |
-+ +----------------------------------------------------------------------+
-+ | Copyright (c) 2006-2011 The PHP Group |
-+ +----------------------------------------------------------------------+
-+ | This source file is subject to version 3.01 of the PHP license, |
-+ | that is bundled with this package in the file LICENSE, and is |
-+ | available through the world-wide-web at the following url: |
-+ | http://www.php.net/license/3_01.txt. |
-+ | If you did not receive a copy of the PHP license and are unable to |
-+ | obtain it through the world-wide-web, please send a note to |
-+ | license@php.net so we can mail you a copy immediately. |
-+ +----------------------------------------------------------------------+
-+ | Authors: Gopal Vijayaraghavan <gopalv@php.net> |
-+ +----------------------------------------------------------------------+
-+
-+ */
-+
-+/* $Id: $ */
-+
-+#ifndef APC_SERIALIZER_H
-+#define APC_SERIALIZER_H
-+
-+/* this is a shipped .h file, do not include any other header in this file */
-+#define APC_SERIALIZER_NAME(module) module##_apc_serializer
-+#define APC_UNSERIALIZER_NAME(module) module##_apc_unserializer
-+
-+#define APC_SERIALIZER_ARGS unsigned char **buf, size_t *buf_len, const zval *value, void *config TSRMLS_DC
-+#define APC_UNSERIALIZER_ARGS zval **value, unsigned char *buf, size_t buf_len, void *config TSRMLS_DC
-+
-+typedef int (*apc_serialize_t)(APC_SERIALIZER_ARGS);
-+typedef int (*apc_unserialize_t)(APC_UNSERIALIZER_ARGS);
-+
-+typedef int (*apc_register_serializer_t)(const char* name,
-+ apc_serialize_t serialize,
-+ apc_unserialize_t unserialize,
-+ void *config TSRMLS_DC);
-+
-+/*
-+ * ABI version for constant hooks. Increment this any time you make any changes
-+ * to any function in this file.
-+ */
-+#define APC_SERIALIZER_ABI "0"
-+#define APC_SERIALIZER_CONSTANT "\000apc_register_serializer-" APC_SERIALIZER_ABI
-+
-+#if !defined(APC_UNUSED)
-+# if defined(__GNUC__)
-+# define APC_UNUSED __attribute__((unused))
-+# else
-+# define APC_UNUSED
-+# endif
-+#endif
-+
-+static APC_UNUSED int apc_register_serializer(const char* name,
-+ apc_serialize_t serialize,
-+ apc_unserialize_t unserialize,
-+ void *config TSRMLS_DC)
-+{
-+ zval apc_magic_constant;
-+ int retval = 0;
-+
-+ /* zend_get_constant will return 1 on success, otherwise apc_magic_constant wouldn't be touched at all */
-+ if (zend_get_constant(APC_SERIALIZER_CONSTANT, sizeof(APC_SERIALIZER_CONSTANT)-1, &apc_magic_constant TSRMLS_CC)) {
-+ apc_register_serializer_t register_func = (apc_register_serializer_t)(Z_LVAL(apc_magic_constant));
-+ if(register_func) {
-+ retval = register_func(name, serialize, unserialize, NULL TSRMLS_CC);
-+ }
-+ zval_dtor(&apc_magic_constant);
-+ }
-+
-+ return retval;
-+}
-+
-+#endif
-+
-+/*
-+ * Local variables:
-+ * tab-width: 4
-+ * c-basic-offset: 4
-+ * End:
-+ * vim>600: expandtab sw=4 ts=4 sts=4 fdm=marker
-+ * vim<600: expandtab sw=4 ts=4 sts=4
-+ */
-diff --git a/config.m4 b/config.m4
-index 8b73ba3..d4fb2fd 100644
---- a/config.m4
-+++ b/config.m4
-@@ -129,7 +129,7 @@ if test "$PHP_APCU" != "no"; then
- PHP_NEW_EXTENSION(apcu, $apc_sources, $ext_shared,, \\$(APCU_CFLAGS))
- PHP_SUBST(APCU_SHARED_LIBADD)
- PHP_SUBST(APCU_CFLAGS)
-- PHP_INSTALL_HEADERS(ext/apcu, [apc.h apc_api.h apc_cache_api.h apc_lock_api.h apc_pool_api.h apc_sma_api.h apc_bin_api.h])
-+ PHP_INSTALL_HEADERS(ext/apcu, [apc.h apc_api.h apc_cache_api.h apc_lock_api.h apc_pool_api.h apc_sma_api.h apc_bin_api.h apc_serializer.h])
- AC_DEFINE(HAVE_APCU, 1, [ ])
- fi
-
-diff --git a/php_apc.c b/php_apc.c
-index afa69cd..ec1b57b 100644
---- a/php_apc.c
-+++ b/php_apc.c
-@@ -281,6 +281,8 @@ static PHP_MINIT_FUNCTION(apcu)
- apc_sma.init(APCG(shm_segments), APCG(shm_size), NULL TSRMLS_CC);
- #endif
-
-+ REGISTER_LONG_CONSTANT(APC_SERIALIZER_CONSTANT, (long)&_apc_register_serializer, CONST_PERSISTENT | CONST_CS);
-+
- /* register default serializer */
- apc_register_serializer(
- "php", APC_SERIALIZER_NAME(php), APC_UNSERIALIZER_NAME(php), NULL TSRMLS_CC);
-@@ -288,7 +290,10 @@ static PHP_MINIT_FUNCTION(apcu)
- /* register eval serializer */
- apc_register_serializer(
- "eval", APC_SERIALIZER_NAME(eval), APC_UNSERIALIZER_NAME(eval), NULL TSRMLS_CC);
--
-+
-+ /* test out the constant function pointer */
-+ assert(apc_serializers[0].name != NULL);
-+
- /* create user cache */
- apc_user_cache = apc_cache_create(
- &apc_sma,
---
-1.8.1.6
-
-
-From 07afc5b8cf67c71903f71f1dd6c768112e5798eb Mon Sep 17 00:00:00 2001
-From: Remi Collet <fedora@famillecollet.com>
-Date: Mon, 8 Jul 2013 14:25:48 +0200
-Subject: [PATCH 2/4] php_apc.c:1124:16: warning: variable 'h_files' set but
- not used [-Wunused-but-set-variable]
-
----
- php_apc.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/php_apc.c b/php_apc.c
-index ec1b57b..10a5df3 100644
---- a/php_apc.c
-+++ b/php_apc.c
-@@ -1121,7 +1121,7 @@ void *apc_erealloc_wrapper(void *ptr, size_t size) {
- PHP_FUNCTION(apc_bin_dumpfile) {
-
- zval *z_files = NULL, *z_user_vars = NULL;
-- HashTable *h_files, *h_user_vars;
-+ HashTable *h_user_vars;
- char *filename = NULL;
- int filename_len;
- long flags=0;
-@@ -1146,7 +1146,6 @@ void *apc_erealloc_wrapper(void *ptr, size_t size) {
- RETURN_FALSE;
- }
-
-- h_files = z_files ? Z_ARRVAL_P(z_files) : NULL;
- h_user_vars = z_user_vars ? Z_ARRVAL_P(z_user_vars) : NULL;
- bd = apc_bin_dump(apc_user_cache, h_user_vars TSRMLS_CC);
- if(!bd) {
---
-1.8.1.6
-
-
-From 0c1d7d3af957f4d06c1265bd1b2752007c56ef53 Mon Sep 17 00:00:00 2001
-From: Remi Collet <fedora@famillecollet.com>
-Date: Mon, 8 Jul 2013 14:29:43 +0200
-Subject: [PATCH 3/4] apc_cache.c:300:5: warning: pointer targets in passing
- argument 1 of 'php_stream_open_for_zend_ex' differ in signedness
- [-Wpointer-sign]
-
----
- apc_cache.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/apc_cache.c b/apc_cache.c
-index c7a1b7b..23c761b 100644
---- a/apc_cache.c
-+++ b/apc_cache.c
-@@ -297,7 +297,7 @@ PHP_APCU_API int APC_UNSERIALIZER_NAME(eval) (APC_UNSERIALIZER_ARGS)
- {
- zend_file_handle zhandle;
-
-- if (php_stream_open_for_zend_ex(buf, &zhandle, USE_PATH|STREAM_OPEN_FOR_INCLUDE TSRMLS_CC) == SUCCESS) {
-+ if (php_stream_open_for_zend_ex((const char *)buf, &zhandle, USE_PATH|STREAM_OPEN_FOR_INCLUDE TSRMLS_CC) == SUCCESS) {
- zend_op_array *op_array = zend_compile_file(&zhandle, ZEND_INCLUDE TSRMLS_CC);
- zend_op_array *active_op_array = EG(active_op_array);
- zval **return_value_ptr_ptr = EG(return_value_ptr_ptr);
---
-1.8.1.6
-
-
-From 38ef422d01422e7ce1059a60e87e5f10a6da7294 Mon Sep 17 00:00:00 2001
-From: Remi Collet <fedora@famillecollet.com>
-Date: Sat, 27 Jul 2013 08:10:26 +0200
-Subject: [PATCH 4/4] fix apc_serializers undefined
-
----
- php_apc.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/php_apc.c b/php_apc.c
-index 10a5df3..dccdd37 100644
---- a/php_apc.c
-+++ b/php_apc.c
-@@ -292,7 +292,7 @@ static PHP_MINIT_FUNCTION(apcu)
- "eval", APC_SERIALIZER_NAME(eval), APC_UNSERIALIZER_NAME(eval), NULL TSRMLS_CC);
-
- /* test out the constant function pointer */
-- assert(apc_serializers[0].name != NULL);
-+ assert(apc_get_serializers()->name != NULL);
-
- /* create user cache */
- apc_user_cache = apc_cache_create(
---
-1.8.1.6
-
diff --git a/php-pecl-apcu.spec b/php-pecl-apcu.spec
index 4284eba..a4983d9 100644
--- a/php-pecl-apcu.spec
+++ b/php-pecl-apcu.spec
@@ -12,17 +12,13 @@
Name: php-pecl-apcu
Summary: APC User Cache
-Version: 4.0.1
-Release: 3%{?dist}.1
+Version: 4.0.2
+Release: 1%{?dist}.1
Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz
Source1: %{pecl_name}.ini
Source2: %{pecl_name}-panel.conf
Source3: %{pecl_name}.conf.php
-# Restore APC serializers ABI (merged upstream)
-# https://github.com/krakjoe/apcu/pull/25
-Patch0: %{pecl_name}-git.patch
-
License: PHP
Group: Development/Languages
URL: http://pecl.php.net/package/APCu
@@ -86,11 +82,11 @@ Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: php-devel%{?_isa}
%if "%{php_version}" < "5.5"
-Conflicts: php-pecl-apc-devel < 4
+Conflicts: php-pecl-apc-devel < 4
%else
-Obsoletes: php-pecl-apc-devel < 4
-Provides: php-pecl-apc-devel = %{version}-%{release}
-Provides: php-pecl-apc-devel%{?_isa} = %{version}-%{release}
+Obsoletes: php-pecl-apc-devel < 4
+Provides: php-pecl-apc-devel = %{version}-%{release}
+Provides: php-pecl-apc-devel%{?_isa} = %{version}-%{release}
%endif
%description devel
@@ -106,10 +102,10 @@ BuildArch: noarch
Requires: %{name} = %{version}-%{release}
Requires: mod_php, httpd, php-gd
%if "%{php_version}" < "5.5"
-Conflicts: apc-panel < 4
+Conflicts: apc-panel < 4
%else
-Obsoletes: apc-panel < 4
-Provides: apc-devel = %{version}-%{release}
+Obsoletes: apc-panel < 4
+Provides: apc-devel = %{version}-%{release}
%endif
%description -n apcu-panel
@@ -122,8 +118,6 @@ configuration, available on http://localhost/apcu-panel/
mv %{pecl_name}-%{version} NTS
cd NTS
-%patch0 -p1 -b .serializers
-rm -f apc_serializer.h.serializers
# Sanity check, really often broken
extver=$(sed -n '/#define PHP_APC_VERSION/{s/.* "//;s/".*$//;p}' php_apc.h)
@@ -241,6 +235,9 @@ rm -rf %{buildroot}
%changelog
+* Mon Sep 16 2013 Remi Collet <remi@fedoraproject.org> - 4.0.2-1
+- Update to 4.0.2
+
* Tue Aug 30 2013 Remi Collet <remi@fedoraproject.org> - 4.0.1-3
- rebuild to have NEVR > EPEL (or Fedora)