From 26f57a8682031974d00ec964ab7b2c24817d6d76 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 11 Apr 2013 09:32:27 +0200 Subject: [PATCH] - update to 5.5.0beta3 - allow wildcard in opcache.blacklist_filename and provide default /etc/php.d/opcache-default.blacklist - clean spec, use only spaces (no tab) --- .gitignore | 1 + opcache-default.blacklist | 11 +++ opcache.ini | 11 +-- php-5.5.0-build.patch | 14 ---- php-5.5.0-opcache.patch | 149 ++++++++++++++++++++++++++++++++++++++ php.spec | 88 ++++++++++++---------- sources | 2 +- 7 files changed, 216 insertions(+), 60 deletions(-) create mode 100644 opcache-default.blacklist delete mode 100644 php-5.5.0-build.patch create mode 100644 php-5.5.0-opcache.patch diff --git a/.gitignore b/.gitignore index 8847268..f4f6f63 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ php-5.3*.bz2 /php-5.4.13.tar.bz2 /php-5.5.0beta1.tar.xz /php-5.5.0beta2.tar.xz +/php-5.5.0beta3.tar.xz diff --git a/opcache-default.blacklist b/opcache-default.blacklist new file mode 100644 index 0000000..0cc2e18 --- /dev/null +++ b/opcache-default.blacklist @@ -0,0 +1,11 @@ +; The blacklist file is a text file that holds the names of files +; that should not be accelerated. The file format is to add each filename +; to a new line. The filename may be a full path or just a file prefix +; (i.e., /var/www/x blacklists all the files and directories in /var/www +; that start with 'x'). Line starting with a ; are ignored (comments). +; Files are usually triggered by one of the following three reasons: +; 1) Directories that contain auto generated code, like Smarty or ZFW cache. +; 2) Code that does not work well when accelerated, due to some delayed +; compile time evaluation. +; 3) Code that triggers an OPcache bug. + diff --git a/opcache.ini b/opcache.ini index 4498e68..ef6e0e0 100644 --- a/opcache.ini +++ b/opcache.ini @@ -60,13 +60,10 @@ opcache.fast_shutdown=1 ;opcache.inherited_hack=1 ;opcache.dups_fix=0 -; The location of the OPcache blacklist file. -; The OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). -;opcache.blacklist_filename= +; The location of the OPcache blacklist file (wildcards allowed). +; Each OPcache blacklist file is a text file that holds the names of files +; that should not be accelerated. +opcache.blacklist_filename=/etc/php.d/opcache*.blacklist ; Allows exclusion of large files from being cached. By default all files ; are cached. diff --git a/php-5.5.0-build.patch b/php-5.5.0-build.patch deleted file mode 100644 index d652901..0000000 --- a/php-5.5.0-build.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- php-5.5.0beta2/acinclude.m4.old 2013-03-28 10:00:02.755797575 +0100 -+++ php-5.5.0beta2/acinclude.m4 2013-03-28 10:00:57.000941535 +0100 -@@ -2342,8 +2342,10 @@ - AC_MSG_ERROR([OpenSSL version 0.9.6 or greater required.]) - fi - -- if test -n "$OPENSSL_LIBS" && test -n "$OPENSSL_INCS"; then -+ if test -n "$OPENSSL_LIBS"; then - PHP_EVAL_LIBLINE($OPENSSL_LIBS, $1) -+ fi -+ if test -n "$OPENSSL_INCS"; then - PHP_EVAL_INCLINE($OPENSSL_INCS) - fi - fi diff --git a/php-5.5.0-opcache.patch b/php-5.5.0-opcache.patch new file mode 100644 index 0000000..8ef74e9 --- /dev/null +++ b/php-5.5.0-opcache.patch @@ -0,0 +1,149 @@ +From af967de2afc584c602c0b6d4d6731e411323d94e Mon Sep 17 00:00:00 2001 +From: Dmitry Stogov +Date: Wed, 10 Apr 2013 21:41:30 +0400 +Subject: [PATCH] Allow wilcards in opcache.blacklist_filename + +--- + ext/opcache/README | 8 +++---- + ext/opcache/tests/blacklist.phpt | 20 ++++++++++++++++++ + ext/opcache/tests/opcache-1.blacklist | 5 +++++ + ext/opcache/tests/opcache-2.blacklist | 1 + + ext/opcache/zend_accelerator_blacklist.c | 36 ++++++++++++++++++++++++++++++++ + 5 files changed, 66 insertions(+), 4 deletions(-) + create mode 100644 ext/opcache/tests/blacklist.phpt + create mode 100644 ext/opcache/tests/opcache-1.blacklist + create mode 100644 ext/opcache/tests/opcache-2.blacklist + +diff --git a/ext/opcache/README b/ext/opcache/README +index 03386a0..3110012 100644 +--- a/ext/opcache/README ++++ b/ext/opcache/README +@@ -151,13 +151,13 @@ opcache.dups_fix (default "0") + Enable this hack as a workaround for "Cannot redeclare class" errors. + + opcache.blacklist_filename +- The location of the OPcache blacklist file. +- The OPcache blacklist file is a text file that holds the names of files ++ The location of the OPcache blacklist file (wildcards allowed). ++ Each OPcache blacklist file is a text file that holds the names of files + that should not be accelerated. The file format is to add each filename + to a new line. The filename may be a full path or just a file prefix + (i.e., /var/www/x blacklists all the files and directories in /var/www +- that start with 'x'). Files are usually triggered by one of the following +- three reasons: ++ that start with 'x'). Line starting with a ; are ignored (comments). ++ Files are usually triggered by one of the following three reasons: + 1) Directories that contain auto generated code, like Smarty or ZFW cache. + 2) Code that does not work well when accelerated, due to some delayed + compile time evaluation. +diff --git a/ext/opcache/tests/blacklist.phpt b/ext/opcache/tests/blacklist.phpt +new file mode 100644 +index 0000000..f4a3472 +--- /dev/null ++++ b/ext/opcache/tests/blacklist.phpt +@@ -0,0 +1,20 @@ ++--TEST-- ++Blacklist (with glob, quote and comments) ++--INI-- ++opcache.enable=1 ++opcache.enable_cli=1 ++opcache.blacklist_filename={PWD}/opcache-*.blacklist ++--SKIPIF-- ++ ++--FILE-- ++ ++--EXPECT-- ++Array ++( ++ [0] => /path/to/foo ++ [1] => /path/to/foo2 ++ [2] => /path/to/bar ++) +\ No newline at end of file +diff --git a/ext/opcache/tests/opcache-1.blacklist b/ext/opcache/tests/opcache-1.blacklist +new file mode 100644 +index 0000000..5f498d6 +--- /dev/null ++++ b/ext/opcache/tests/opcache-1.blacklist +@@ -0,0 +1,5 @@ ++; comments are allowed in blacklist file ++; and empty line are ignored ++ ++/path/to/foo ++"/path/to/foo2" +\ No newline at end of file +diff --git a/ext/opcache/tests/opcache-2.blacklist b/ext/opcache/tests/opcache-2.blacklist +new file mode 100644 +index 0000000..4f6580a +--- /dev/null ++++ b/ext/opcache/tests/opcache-2.blacklist +@@ -0,0 +1 @@ ++/path/to/bar +diff --git a/ext/opcache/zend_accelerator_blacklist.c b/ext/opcache/zend_accelerator_blacklist.c +index 764c950..b09d0e5 100644 +--- a/ext/opcache/zend_accelerator_blacklist.c ++++ b/ext/opcache/zend_accelerator_blacklist.c +@@ -36,6 +36,14 @@ + # define REGEX_MODE (REG_EXTENDED|REG_NOSUB) + #endif + ++#ifdef HAVE_GLOB ++#ifdef PHP_WIN32 ++#include "win32/glob.h" ++#else ++#include ++#endif ++#endif ++ + #define ZEND_BLACKLIST_BLOCK_SIZE 32 + + struct _zend_regexp_list { +@@ -168,7 +176,11 @@ static inline void zend_accel_blacklist_allocate(zend_blacklist *blacklist) + } + } + ++#ifdef HAVE_GLOB ++static void zend_accel_blacklist_loadone(zend_blacklist *blacklist, char *filename) ++#else + void zend_accel_blacklist_load(zend_blacklist *blacklist, char *filename) ++#endif + { + char buf[MAXPATHLEN + 1], real_path[MAXPATHLEN + 1]; + FILE *fp; +@@ -238,6 +250,30 @@ void zend_accel_blacklist_load(zend_blacklist *blacklist, char *filename) + zend_accel_blacklist_update_regexp(blacklist); + } + ++#ifdef HAVE_GLOB ++void zend_accel_blacklist_load(zend_blacklist *blacklist, char *filename) ++{ ++ glob_t globbuf; ++ int ret, i; ++ ++ memset(&globbuf, 0, sizeof(glob_t)); ++ ++ ret = glob(filename, 0, NULL, &globbuf); ++#ifdef GLOB_NOMATCH ++ if (ret == GLOB_NOMATCH || !globbuf.gl_pathc) { ++#else ++ if (!globbuf.gl_pathc) { ++#endif ++ zend_accel_error(ACCEL_LOG_WARNING, "No blacklist file found matching: %s\n", filename); ++ } else { ++ for(i=0 ; i> files.common %endif +# The default Zend OPcache blacklist file +install -m 644 %{SOURCE51} $RPM_BUILD_ROOT%{_sysconfdir}/php.d/opcache-default.blacklist + # Install the macros file: install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm sed -e "s/@PHP_APIVER@/%{apiver}%{isasuffix}/" \ @@ -1550,9 +1555,16 @@ fi %files enchant -f files.enchant %files mysqlnd -f files.mysqlnd %files opcache -f files.opcache +%config(noreplace) %{_sysconfdir}/php.d/opcache-default.blacklist %changelog +* Thu Apr 11 2013 Remi Collet 5.5.0-0.4.beta3 +- update to 5.5.0beta3 +- allow wildcard in opcache.blacklist_filename and provide + default /etc/php.d/opcache-default.blacklist +- clean spec, use only spaces (no tab) + * Thu Apr 4 2013 Remi Collet 5.5.0-0.3.beta2 - clean old deprecated options diff --git a/sources b/sources index 654b9eb..5c3444e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -8080295ce454455bff08a10eaa0896aa php-5.5.0beta2.tar.xz +7cf9b81a8e9a28b9431f3741d8916a9c php-5.5.0beta3.tar.xz