summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--php-wip.patch141
-rw-r--r--php55.spec5
2 files changed, 103 insertions, 43 deletions
diff --git a/php-wip.patch b/php-wip.patch
index d6e5131..af82ce6 100644
--- a/php-wip.patch
+++ b/php-wip.patch
@@ -1,47 +1,104 @@
-diff -up php-5.5.6RC1/ext/opcache/ZendAccelerator.c.wip php-5.5.6RC1/ext/opcache/ZendAccelerator.c
---- php-5.5.6RC1/ext/opcache/ZendAccelerator.c.wip 2013-10-29 12:09:06.000000000 +0100
-+++ php-5.5.6RC1/ext/opcache/ZendAccelerator.c 2013-11-04 14:23:59.395722970 +0100
-@@ -145,9 +145,33 @@ static inline int is_cacheable_stream_pa
+From 9d75b9fb27cd93c19cd168a486ab2efe2ce2aa78 Mon Sep 17 00:00:00 2001
+From: Xinchen Hui <laruence@php.net>
+Date: Wed, 6 Nov 2013 16:53:45 +0800
+Subject: [PATCH] Revert "Fixed issue #115 (path issue when using phar)."
+
+We need another better way to fix this
+
+This reverts commit 098855433dc5d609e3970f0bc9d6766c007273f3.
+
+Conflicts:
+ ext/opcache/ZendAccelerator.c
+---
+ NEWS | 1 -
+ ext/opcache/ZendAccelerator.c | 44 +++++--------------------------------------
+ 2 files changed, 5 insertions(+), 40 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index 26990de..3a690bb 100644
+--- a/NEWS
++++ b/NEWS
+@@ -75,7 +75,6 @@ PHP NEWS
+ imap). (ryotakatsuki at gmail dot com)
+
+ - OPcache:
+- . Fixed issue #115 (path issue when using phar). (Laruence)
+ . Added support for GNU Hurd. (Svante Signell)
+ . Added function opcache_compile_file() to load PHP scripts into cache
+ without execution. (Julien)
+diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c
+index 8cee80f..72b5a1b 100644
+--- a/ext/opcache/ZendAccelerator.c
++++ b/ext/opcache/ZendAccelerator.c
+@@ -37,7 +37,6 @@
+ #include "zend_API.h"
+ #include "zend_ini.h"
+ #include "TSRM/tsrm_virtual_cwd.h"
+-#include "ext/phar/php_phar.h"
+ #include "zend_accelerator_util_funcs.h"
+ #include "zend_accelerator_hash.h"
+
+@@ -145,21 +144,6 @@ static inline int is_cacheable_stream_path(const char *filename)
memcmp(filename, "phar://", sizeof("phar://") - 1) == 0;
}
-+#ifdef COMPILE_DL_PHAR
-+static typeof(phar_resolve_alias) *opcache_phar_resolve_alias;
-+#else
-+# define opcache_phar_resolve_alias phar_resolve_alias
-+#endif
-+
- static inline int is_phar_relative_alias_path(const char *filename, char **alias, int *alias_len)
- {
+-static inline int is_phar_relative_alias_path(const char *filename, char **alias, int *alias_len)
+-{
- if (memcmp(filename, "phar://", sizeof("phar://") - 1) == 0
-+#ifdef COMPILE_DL_PHAR
-+ static int pharloaded = -1;
-+
-+ /* Only once, retrieve phar_resolve_alias from phar module if loaded */
-+ if (pharloaded < 0) {
-+ zend_module_entry *phar;
-+
-+ if (zend_hash_find(&module_registry, "phar", 5, (void**)&phar) == SUCCESS) {
-+ opcache_phar_resolve_alias = DL_FETCH_SYMBOL(phar->handle, "phar_resolve_alias");
-+ pharloaded = (opcache_phar_resolve_alias ? 1 : 0);
-+ } else {
-+ pharloaded = 0;
-+ }
-+ }
-+ if (pharloaded &&
-+#else
-+ if (
-+#endif
-+ memcmp(filename, "phar://", sizeof("phar://") - 1) == 0
- && filename[sizeof("phar://") - 1] != '\0' && filename[sizeof("phar://") - 1] != '/') {
- char *slash;
- *alias = (char*)filename + sizeof("phar://") - 1;
-@@ -1056,7 +1080,7 @@ char *accel_make_persistent_key_ex(zend_
- if (is_phar_relative_alias_path(file_handle->filename, &alias, &alias_len)) {
- char *phar_path;
- int phar_path_len;
+- && filename[sizeof("phar://") - 1] != '\0' && filename[sizeof("phar://") - 1] != '/') {
+- char *slash;
+- *alias = (char*)filename + sizeof("phar://") - 1;
+- slash = strstr(*alias, "/");
+- if (slash) {
+- *alias_len = slash - *alias;
+- return 1;
+- }
+- }
+- return 0;
+-}
+-
+ /* O+ overrides PHP chdir() function and remembers the current working directory
+ * in ZCG(cwd) and ZCG(cwd_len). Later accel_getcwd() can use stored value and
+ * avoid getcwd() call.
+@@ -1044,33 +1028,15 @@ char *accel_make_persistent_key_ex(zend_file_handle *file_handle, int path_lengt
+ }
+ memcpy(ZCG(key) + cur_len, include_path, include_path_len);
+ ZCG(key)[key_length] = '\0';
+- } else {
+- /* not use_cwd */
+- key_length = path_length;
++ } else {
++ /* not use_cwd */
++ key_length = path_length;
+ if ((size_t)key_length >= sizeof(ZCG(key))) {
+ ZCG(key_len) = 0;
+ return NULL;
+- } else {
+- char *alias;
+- int alias_len;
+- if (is_phar_relative_alias_path(file_handle->filename, &alias, &alias_len)) {
+- char *phar_path;
+- int phar_path_len;
- if (phar_resolve_alias(alias, alias_len, &phar_path, &phar_path_len TSRMLS_CC) == SUCCESS) {
-+ if (opcache_phar_resolve_alias(alias, alias_len, &phar_path, &phar_path_len TSRMLS_CC) == SUCCESS) {
- int filename_len = strlen(file_handle->filename);
- memcpy(ZCG(key), "phar://", sizeof("phar://") -1);
- memcpy(ZCG(key) + sizeof("phar://") - 1, phar_path, phar_path_len);
+- int filename_len = strlen(file_handle->filename);
+- memcpy(ZCG(key), "phar://", sizeof("phar://") -1);
+- memcpy(ZCG(key) + sizeof("phar://") - 1, phar_path, phar_path_len);
+- memcpy(ZCG(key) + sizeof("phar://") - 1 + phar_path_len,
+- alias + alias_len, filename_len - alias_len - sizeof("phar://") + 2);
+- key_length = filename_len + (phar_path_len - alias_len);
+- } else {
+- memcpy(ZCG(key), file_handle->filename, key_length + 1);
+- }
+- } else {
+- memcpy(ZCG(key), file_handle->filename, key_length + 1);
+- }
+ }
+- }
++ memcpy(ZCG(key), file_handle->filename, key_length + 1);
++ }
+
+ *key_len = ZCG(key_len) = key_length;
+ return ZCG(key);
+--
+1.8.4.rc3
+
diff --git a/php55.spec b/php55.spec
index 4323da1..285093d 100644
--- a/php55.spec
+++ b/php55.spec
@@ -103,7 +103,7 @@ Summary: PHP scripting language for creating dynamic web sites
Name: php
Version: 5.5.6
%if 0%{?snapdate:1}%{?rcver:1}
-Release: 0.4.%{?snapdate}%{?rcver}%{?dist}
+Release: 0.5.%{?snapdate}%{?rcver}%{?dist}
%else
Release: 2%{?dist}
%endif
@@ -1848,6 +1848,9 @@ fi
%changelog
+* Wed Nov 5 2013 Remi Collet <remi@fedoraproject.org> 5.5.6-0.5.RC1
+- test buid with opcache changes reverted
+
* Mon Nov 4 2013 Remi Collet <remi@fedoraproject.org> 5.5.6-0.4.RC1
- test build opcache with phar build shared
https://github.com/zendtech/ZendOptimizerPlus/issues/147