From 1cf39e06dc3114fcbf1d26231cde765d28c4a30c Mon Sep 17 00:00:00 2001 From: Marcin Krol Date: Fri, 12 Jan 2018 14:47:48 +0000 Subject: [PATCH] - updated to 7.2.1, partial PLD merge --- fix-test-run.patch | 4 +- libtool-tag.patch | 4 +- opcache.ini | 129 ++++++++++++++++++++++++++++++++++++ pcre-shared.patch | 133 +++++++++++++++++++++++++------------- php-include_path.patch | 4 +- php-ini.patch | 72 ++++----------------- php-link-libs.patch | 4 +- php-no_pear_install.patch | 4 +- php-pear.patch | 4 +- php-shared.patch | 4 +- php-systzdata.patch | 124 +++++++++++++++++------------------ php.spec | 131 ++++++++++++++++++------------------- spl-shared.patch | 57 +--------------- 13 files changed, 368 insertions(+), 306 deletions(-) create mode 100644 opcache.ini diff --git a/fix-test-run.patch b/fix-test-run.patch index 42afec5..bd3c3d7 100644 --- a/fix-test-run.patch +++ b/fix-test-run.patch @@ -1,5 +1,5 @@ ---- php-5.4.0alpha2/configure.in~ 2011-08-07 12:43:31.000000000 +0300 -+++ php-5.4.0alpha2/configure.in 2011-08-07 12:44:11.495394662 +0300 +--- php-5.4.0alpha2/configure.ac~ 2011-08-07 12:43:31.000000000 +0300 ++++ php-5.4.0alpha2/configure.ac 2011-08-07 12:44:11.495394662 +0300 @@ -1271,6 +1271,11 @@ ;; esac diff --git a/libtool-tag.patch b/libtool-tag.patch index 951fd1e..d7e5400 100644 --- a/libtool-tag.patch +++ b/libtool-tag.patch @@ -1,5 +1,5 @@ ---- php-5.6.0RC4/configure.in~ 2014-08-20 16:08:27.000000000 +0300 -+++ php-5.6.0RC4/configure.in 2014-08-21 20:49:14.693072513 +0300 +--- php-5.6.0RC4/configure.ac~ 2014-08-20 16:08:27.000000000 +0300 ++++ php-5.6.0RC4/configure.ac 2014-08-21 20:49:14.693072513 +0300 @@ -1408,6 +1408,9 @@ dnl libtool 1.4.3 needs this. PHP_SET_LIBTOOL_VARIABLE([--preserve-dup-deps]) diff --git a/opcache.ini b/opcache.ini new file mode 100644 index 0000000..16a3cff --- /dev/null +++ b/opcache.ini @@ -0,0 +1,129 @@ +; Enable opcache zend extension module +zend_extension=opcache.so + +; Determines if Zend OPCache is enabled +;opcache.enable=1 + +; Determines if Zend OPCache is enabled for the CLI version of PHP +;opcache.enable_cli=0 + +; The OPcache shared memory storage size. +;opcache.memory_consumption=128 + +; The amount of memory for interned strings in Mbytes. +;opcache.interned_strings_buffer=8 + +; The maximum number of keys (scripts) in the OPcache hash table. +; Only numbers between 200 and 1000000 are allowed. +;opcache.max_accelerated_files=10000 + +; The maximum percentage of "wasted" memory until a restart is scheduled. +;opcache.max_wasted_percentage=5 + +; When this directive is enabled, the OPcache appends the current working +; directory to the script key, thus eliminating possible collisions between +; files with the same name (basename). Disabling the directive improves +; performance, but may break existing applications. +;opcache.use_cwd=1 + +; When disabled, you must reset the OPcache manually or restart the +; webserver for changes to the filesystem to take effect. +;opcache.validate_timestamps=1 + +; How often (in seconds) to check file timestamps for changes to the shared +; memory storage allocation. ("1" means validate once per second, but only +; once per request. "0" means always validate) +;opcache.revalidate_freq=2 + +; Enables or disables file search in include_path optimization +;opcache.revalidate_path=0 + +; If disabled, all PHPDoc comments are dropped from the code to reduce the +; size of the optimized code. +;opcache.save_comments=1 + +; If enabled, a fast shutdown sequence is used for the accelerated code +; Depending on the used Memory Manager this may cause some incompatibilities. +;opcache.fast_shutdown=0 + +; Allow file existence override (file_exists, etc.) performance feature. +;opcache.enable_file_override=0 + +; A bitmask, where each bit enables or disables the appropriate OPcache +; passes +;opcache.optimization_level=0xffffffff + +;opcache.inherited_hack=1 +;opcache.dups_fix=0 + +; 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'). Line starting with a ; are ignored (comments). +;opcache.blacklist_filename= + +; Allows exclusion of large files from being cached. By default all files +; are cached. +;opcache.max_file_size=0 + +; Check the cache checksum each N requests. +; The default value of "0" means that the checks are disabled. +;opcache.consistency_checks=0 + +; How long to wait (in seconds) for a scheduled restart to begin if the cache +; is not being accessed. +;opcache.force_restart_timeout=180 + +; OPcache error_log file name. Empty string assumes "stderr". +;opcache.error_log= + +; All OPcache errors go to the Web server log. +; By default, only fatal errors (level 0) or errors (level 1) are logged. +; You can also enable warnings (level 2), info messages (level 3) or +; debug messages (level 4). +;opcache.log_verbosity_level=1 + +; Preferred Shared Memory back-end. Leave empty and let the system decide. +;opcache.preferred_memory_model= + +; Protect the shared memory from unexpected writing during script execution. +; Useful for internal debugging only. +;opcache.protect_memory=0 + +; Allows calling OPcache API functions only from PHP scripts which path is +; started from specified string. The default "" means no restriction +;opcache.restrict_api= + +; Mapping base of shared memory segments (for Windows only). All the PHP +; processes have to map shared memory into the same address space. This +; directive allows to manually fix the "Unable to reattach to base address" +; errors. +;opcache.mmap_base= + +; Enables and sets the second level cache directory. +; It should improve performance when SHM memory is full, at server restart or +; SHM reset. The default "" disables file based caching. +;opcache.file_cache= + +; Enables or disables opcode caching in shared memory. +;opcache.file_cache_only=0 + +; Enables or disables checksum validation when script loaded from file cache. +;opcache.file_cache_consistency_checks=1 + +; Implies opcache.file_cache_only=1 for a certain process that failed to +; reattach to the shared memory (for Windows only). Explicitly enabled file +; cache is required. +;opcache.file_cache_fallback=1 + +; Enables or disables copying of PHP code (text segment) into HUGE PAGES. +; This should improve performance, but requires appropriate OS configuration. +;opcache.huge_code_pages=1 + +; Validate cached file permissions. +;opcache.validate_permission=0 + +; Prevent name collisions in chroot'ed environment. +;opcache.validate_root=0 diff --git a/pcre-shared.patch b/pcre-shared.patch index ae69ebd..4eee40e 100644 --- a/pcre-shared.patch +++ b/pcre-shared.patch @@ -1,5 +1,5 @@ ---- php-7.0/ext/pcre/config0.m4~ 2015-05-24 14:39:04.000000000 +0300 -+++ php-7.0/ext/pcre/config0.m4 2015-05-24 14:53:49.980250297 +0300 +--- php-7.2.0RC4/ext/pcre/config0.m4~ 2017-10-15 16:17:20.000000000 +0300 ++++ php-7.2.0RC4/ext/pcre/config0.m4 2017-10-15 18:34:27.673725678 +0300 @@ -11,7 +11,7 @@ if test "$PHP_PCRE_REGEX" != "yes" && test "$PHP_PCRE_REGEX" != "no"; then @@ -18,10 +18,10 @@ test -f $j/libpcre.a || test -f $j/libpcre.$SHLIB_SUFFIX_NAME && PCRE_LIBDIR=$j done -@@ -43,12 +43,13 @@ - AC_MSG_ERROR([The PCRE extension requires PCRE library version >= 6.6]) - fi - +@@ -52,12 +52,13 @@ + ],[ + -L$PCRE_LIBDIR + ]) - PHP_ADD_LIBRARY_WITH_PATH(pcre, $PCRE_LIBDIR) + PHP_ADD_LIBRARY_WITH_PATH(pcre, $PCRE_LIBDIR, PCRE_SHARED_LIBADD) @@ -43,68 +43,102 @@ PHP_ADD_BUILD_DIR($ext_builddir/pcrelib) PHP_INSTALL_HEADERS([ext/pcre], [php_pcre.h pcrelib/]) AC_DEFINE(HAVE_BUNDLED_PCRE, 1, [ ]) ---- php-7.0/ext/pcre/php_pcre.h~ 2015-05-21 17:57:06.000000000 +0300 -+++ php-7.0/ext/pcre/php_pcre.h 2015-05-24 14:56:27.528425546 +0300 -@@ -34,7 +34,12 @@ +--- php-7.2.0beta1/ext/pcre/php_pcre.h 2017-07-22 12:35:11.071146616 +0300 ++++ php-7.2.0beta1/ext/pcre/php_pcre.h 2017-07-22 12:41:01.858859537 +0300 +@@ -33,7 +33,29 @@ + #include #endif - PHPAPI zend_string *php_pcre_replace(zend_string *regex, zend_string *subject_str, char *subject, int subject_len, zval *replace_val, int is_callable_replace, int limit, int *replace_count); -+#if COMPILE_DL_PCRE -+#define pcre_get_compiled_regex pcre_get_compiled_regex_p -+extern PHPAPI pcre* (*pcre_get_compiled_regex)(zend_string *regex, pcre_extra **extra, int *options); ++#if !defined(COMPILE_DL_PCRE_NOREDIRECT) ++#define pcre_get_compiled_regex (*pcre_get_compiled_regex_p) ++#define pcre_get_compiled_regex_cache (*pcre_get_compiled_regex_cache_p) ++#define php_pcre_replace_impl (*php_pcre_replace_impl_p) ++#define php_pcre_match_impl (*php_pcre_match_impl_p) ++#define php_pcre_split_impl (*php_pcre_split_impl_p) ++#if !defined(COMPILE_DL_PCRE_NOEXTERN) ++# define PCRE_EXTERN extern +#else - PHPAPI pcre* pcre_get_compiled_regex(zend_string *regex, pcre_extra **extra, int *options); ++# define PCRE_EXTERN ++#endif ++#else ++// for pcre.c ++#define PCRE_EXTERN ++extern void *pcre_get_compiled_regex_p; ++extern void *pcre_get_compiled_regex_cache_p; ++extern void *php_pcre_replace_impl_p; ++extern void *php_pcre_match_impl_p; ++extern void *php_pcre_split_impl_p; +#endif ++ + PHPAPI zend_string *php_pcre_replace(zend_string *regex, zend_string *subject_str, char *subject, int subject_len, zend_string *replace_str, int limit, int *replace_count); ++PCRE_EXTERN + PHPAPI pcre* pcre_get_compiled_regex(zend_string *regex, pcre_extra **extra, int *options); PHPAPI pcre* pcre_get_compiled_regex_ex(zend_string *regex, pcre_extra **extra, int *preg_options, int *coptions); - extern zend_module_entry pcre_module_entry; ---- php-5.3.1/ext/pcre/php_pcre.c 2009-11-30 21:10:01.370473754 +0200 -+++ php-5.3.1.pcre/ext/pcre/php_pcre.c 2009-11-30 21:38:01.759684456 +0000 -@@ -27,6 +27,11 @@ +@@ -56,14 +78,18 @@ + int refcount; + } pcre_cache_entry; + ++PCRE_EXTERN + PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache(zend_string *regex); + ++PCRE_EXTERN + PHPAPI void php_pcre_match_impl( pcre_cache_entry *pce, char *subject, int subject_len, zval *return_value, + zval *subpats, int global, int use_flags, zend_long flags, zend_long start_offset); - #if HAVE_PCRE || HAVE_BUNDLED_PCRE ++PCRE_EXTERN + PHPAPI zend_string *php_pcre_replace_impl(pcre_cache_entry *pce, zend_string *subject_str, char *subject, int subject_len, zend_string *replace_str, + int limit, int *replace_count); ++PCRE_EXTERN + PHPAPI void php_pcre_split_impl( pcre_cache_entry *pce, zend_string *subject_str, zval *return_value, + zend_long limit_val, zend_long flags); + +--- php-5.3.1.pcre/ext/pcre/php_pcre.c 2009-11-30 21:38:01.759684456 +0000 ++++ php-7.2.0beta1/ext/pcre/php_pcre.c 2017-07-22 12:42:57.878062137 +0300 +@@ -21,6 +21,9 @@ + #include "php.h" + #include "php_ini.h" + #include "php_globals.h" +#if COMPILE_DL_PCRE -+#undef pcre_get_compiled_regex -+PHPAPI pcre* pcre_get_compiled_regex(zend_string *regex, pcre_extra **extra, int *options); ++#define COMPILE_DL_PCRE_NOREDIRECT +#endif -+ - #include "ext/standard/php_string.h" - - #define PREG_PATTERN_ORDER 1 -@@ -153,6 +158,10 @@ - REGISTER_LONG_CONSTANT("PREG_BAD_UTF8_OFFSET_ERROR", PHP_PCRE_BAD_UTF8_OFFSET_ERROR, CONST_CS | CONST_PERSISTENT); + #include "php_pcre.h" + #include "ext/standard/info.h" + #include "ext/standard/basic_functions.h" +@@ -208,6 +211,14 @@ + REGISTER_LONG_CONSTANT("PREG_JIT_STACKLIMIT_ERROR", PHP_PCRE_JIT_STACKLIMIT_ERROR, CONST_CS | CONST_PERSISTENT); REGISTER_STRING_CONSTANT("PCRE_VERSION", (char *)pcre_version(), CONST_CS | CONST_PERSISTENT); +#if COMPILE_DL_PCRE + pcre_get_compiled_regex_p = pcre_get_compiled_regex; ++ pcre_get_compiled_regex_cache_p = pcre_get_compiled_regex_cache; ++ php_pcre_replace_impl_p = php_pcre_replace_impl; ++ php_pcre_match_impl_p = php_pcre_match_impl; ++ php_pcre_split_impl_p = php_pcre_split_impl; +#endif + return SUCCESS; } /* }}} */ -@@ -429,6 +438,7 @@ - } - /* }}} */ - -+ - /* {{{ pcre_get_compiled_regex - */ - PHPAPI pcre* pcre_get_compiled_regex(char *regex, pcre_extra **extra, int *preg_options TSRMLS_DC) ---- php-5.3.1/ext/standard/browscap.c 2009-06-06 02:40:49.000000000 +0000 -+++ php-5.3.1.pcre/ext/standard/browscap.c 2009-11-30 21:33:00.775241138 +0000 -@@ -31,6 +31,11 @@ - static zval *current_section; - static char *current_section_name; +--- php-7.2.0RC5/ext/standard/basic_functions.c 2017-10-28 21:08:47.383549141 +0300 ++++ php-7.2.0RC5/ext/standard/basic_functions.c 2017-10-28 21:10:20.625051932 +0300 +@@ -113,6 +113,15 @@ + PHPAPI php_basic_globals basic_globals; + #endif +#if COMPILE_DL_PCRE -+// will be visible in here -+PHPAPI pcre* (*pcre_get_compiled_regex_p)(zend_string *regex, pcre_extra **extra, int *options); ++// for pcre shared patch symbol ++void *pcre_get_compiled_regex_p; ++void *pcre_get_compiled_regex_cache_p; ++void *php_pcre_replace_impl_p; ++void *php_pcre_match_impl_p; ++void *php_pcre_split_impl_p; +#endif + - #define DEFAULT_SECTION_NAME "Default Browser Capability Settings" + #include "php_fopen_wrappers.h" + #include "streamsfuncs.h" - /* OBJECTS_FIXME: This whole extension needs going through. The use of objects looks pretty broken here */ --- php-5.3.2/sapi/cli/tests/018.phpt~ 2008-03-17 16:05:39.000000000 +0200 +++ php-5.3.2/sapi/cli/tests/018.phpt 2010-03-16 20:41:11.341251246 +0200 @@ -20,8 +20,6 @@ @@ -128,3 +162,14 @@ zend_llist_destroy(&extension_lists.engine); zend_llist_destroy(&extension_lists.functions); +--- php-5.3.1/ext/phar/Makefile.frag~ 2009-07-23 15:48:04.000000000 +0000 ++++ php-5.3.1/ext/phar/Makefile.frag 2009-11-30 16:10:29.687175948 +0000 +@@ -10,7 +10,7 @@ + $(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \ + if test "x$(PHP_MODULES)" != "x"; then \ + $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \ +- for i in spl bz2 zlib phar; do \ ++ for i in pcre spl bz2 zlib phar; do \ + if test -f "$(top_builddir)/modules/$$i.la"; then \ + . $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \ + fi; \ diff --git a/php-include_path.patch b/php-include_path.patch index a1c3afe..d956cc7 100644 --- a/php-include_path.patch +++ b/php-include_path.patch @@ -1,5 +1,5 @@ ---- php-5.2.0/configure.in.includedir -+++ php-5.2.0/configure.in +--- php-5.2.0/configure.ac.includedir ++++ php-5.2.0/configure.ac @@ -1101,7 +1101,7 @@ EXPANDED_DATADIR=$datadir EXPANDED_PHP_CONFIG_FILE_PATH=`eval echo "$PHP_CONFIG_FILE_PATH"` diff --git a/php-ini.patch b/php-ini.patch index 2b8f90a..83aa23e 100644 --- a/php-ini.patch +++ b/php-ini.patch @@ -1,5 +1,5 @@ ---- php-7.0.12/php.ini 2016-10-13 14:04:17.000000000 +0000 -+++ php-7.0.12/php.ini 2016-10-27 07:40:55.773715000 +0000 +--- php-7.2.1/php.ini 2018-01-02 22:36:07.000000000 +0000 ++++ php-7.2.1/php.ini 2018-01-07 18:48:58.353614413 +0000 @@ -82,6 +82,20 @@ ; much more verbose when it comes to errors. We recommend using the ; development version only in development environments, as errors shown to @@ -30,7 +30,7 @@ ; Development Value: Off ; Production Value: Off -@@ -175,7 +189,7 @@ +@@ -170,7 +184,7 @@ ;user_ini.filename = ".user.ini" ; To disable this feature set this option to empty value @@ -39,7 +39,7 @@ ; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) ;user_ini.cache_ttl = 300 -@@ -195,7 +209,7 @@ +@@ -190,7 +204,7 @@ ; documents, however this remains supported for backward compatibility reasons. ; Note that this directive does not control the or -+; php-pecl- package. - - ;;;;;;;;;;;;;;;;;;; - ; Module Settings ; -@@ -946,19 +862,19 @@ +@@ -961,19 +916,19 @@ ; Use of this INI entry is deprecated, use global input_encoding instead. ; If empty, default_charset or input_encoding or iconv.input_encoding is used. ; The precedence is: default_charset < intput_encoding < iconv.input_encoding @@ -205,7 +155,7 @@ [intl] ;intl.default_locale = -@@ -1154,6 +1070,9 @@ +@@ -1165,6 +1120,9 @@ ; http://php.net/mysqli.default-socket mysqli.default_socket = @@ -215,7 +165,7 @@ ; Default host for mysql_connect() (doesn't apply in safe mode). ; http://php.net/mysqli.default-host mysqli.default_host = -@@ -1281,7 +1200,7 @@ +@@ -1314,7 +1272,7 @@ [browscap] ; http://php.net/browscap @@ -224,7 +174,7 @@ [Session] ; Handler used to store/retrieve data. -@@ -1708,7 +1627,7 @@ +@@ -1741,7 +1699,7 @@ ; Sets the directory name where SOAP extension will put cache files. ; http://php.net/soap.wsdl-cache-dir diff --git a/php-link-libs.patch b/php-link-libs.patch index 23a7acc..c20149e 100644 --- a/php-link-libs.patch +++ b/php-link-libs.patch @@ -1,5 +1,5 @@ ---- php-4.3.0/configure.in.orig Fri Dec 27 05:07:18 2002 -+++ php-4.3.0/configure.in Thu Jan 2 20:34:43 2003 +--- php-4.3.0/configure.ac.orig Fri Dec 27 05:07:18 2002 ++++ php-4.3.0/configure.ac Thu Jan 2 20:34:43 2003 @@ -288,7 +288,6 @@ PHP_CHECK_FUNC(htonl, socket) PHP_CHECK_FUNC(gethostname, nsl) diff --git a/php-no_pear_install.patch b/php-no_pear_install.patch index f31c4a5..75eb9bd 100644 --- a/php-no_pear_install.patch +++ b/php-no_pear_install.patch @@ -1,5 +1,5 @@ ---- php-5.4.0alpha2/configure.in~ 2011-08-01 12:23:18.000000000 +0300 -+++ php-5.4.0alpha2/configure.in 2011-08-01 12:24:20.209743190 +0300 +--- php-5.4.0alpha2/configure.ac~ 2011-08-01 12:23:18.000000000 +0300 ++++ php-5.4.0alpha2/configure.ac 2011-08-01 12:24:20.209743190 +0300 @@ -1429,7 +1429,7 @@ fi; diff --git a/php-pear.patch b/php-pear.patch index 400359d..74a03d6 100644 --- a/php-pear.patch +++ b/php-pear.patch @@ -1,5 +1,5 @@ ---- php-5.3.1/configure.in~ 2010-02-19 23:26:13.000000000 +0200 -+++ php-5.3.1/configure.in 2010-02-19 23:27:58.273207305 +0200 +--- php-5.3.1/configure.ac~ 2010-02-19 23:26:13.000000000 +0200 ++++ php-5.3.1/configure.ac 2010-02-19 23:27:58.273207305 +0200 @@ -934,11 +934,6 @@ with_pear=no fi diff --git a/php-shared.patch b/php-shared.patch index b414183..24c6848 100644 --- a/php-shared.patch +++ b/php-shared.patch @@ -1,5 +1,5 @@ ---- php-7.0.0RC3/configure.in~ 2015-09-26 14:55:35.000000000 +0300 -+++ php-7.0.0RC3/configure.in 2015-09-26 15:13:29.581882625 +0300 +--- php-7.0.0RC3/configure.ac~ 2015-09-26 14:55:35.000000000 +0300 ++++ php-7.0.0RC3/configure.ac 2015-09-26 15:13:29.581882625 +0300 @@ -224,6 +224,9 @@ dnl check for -R, etc. switch PHP_RUNPATH_SWITCH diff --git a/php-systzdata.patch b/php-systzdata.patch index 212820b..63ba1d8 100644 --- a/php-systzdata.patch +++ b/php-systzdata.patch @@ -1,3 +1,6 @@ +# License: MIT +# http://opensource.org/licenses/MIT + Add support for use of the system timezone database, rather than embedding a copy. Discussed upstream but was not desired. @@ -6,6 +9,8 @@ https://bugs.php.net/bug.php?id=53320 https://bugs.php.net/bug.php?id=54250 History: +r15: adapt for timelib 2017.05beta7 (in 7.2.0RC1) +r14: improve check for valid tz file r13: adapt for upstream changes to use PHP allocator r12: adapt for upstream changes for new zic r11: use canonical names to avoid more case sensitivity issues @@ -25,12 +30,12 @@ r3: fix a crash if /usr/share/zoneinfo doesn't exist (Raphael Geissert) r2: add filesystem trawl to set up name alias index r1: initial revision -diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/lib/parse_tz.c ---- php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata 2015-08-18 23:39:24.000000000 +0200 -+++ php-7.0.0RC1/ext/date/lib/parse_tz.c 2015-08-22 07:54:38.097258458 +0200 -@@ -20,6 +20,16 @@ - +diff -up ./ext/date/lib/parse_tz.c.systzdata ./ext/date/lib/parse_tz.c +--- ./ext/date/lib/parse_tz.c.systzdata 2017-08-22 09:40:38.000000000 +0200 ++++ ./ext/date/lib/parse_tz.c 2017-08-22 12:16:00.370298079 +0200 +@@ -25,8 +25,21 @@ #include "timelib.h" + #include "timelib_private.h" +#ifdef HAVE_SYSTEM_TZDATA +#include @@ -40,16 +45,8 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li +#include + +#include "php_scandir.h" -+#endif + - #include - - #ifdef HAVE_LOCALE_H -@@ -32,8 +42,12 @@ - #include - #endif - -+#ifndef HAVE_SYSTEM_TZDATA ++#else #define TIMELIB_SUPPORTS_V2DATA #include "timezonedb.h" +#endif @@ -58,7 +55,7 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li #if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__)) # if defined(__LITTLE_ENDIAN__) -@@ -55,6 +69,11 @@ static int read_preamble(const unsigned +@@ -67,6 +80,11 @@ static int read_php_preamble(const unsig { uint32_t version; @@ -70,7 +67,7 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li /* read ID */ version = (*tzf)[3] - '0'; *tzf += 4; -@@ -298,7 +317,418 @@ void timelib_dump_tzinfo(timelib_tzinfo +@@ -374,7 +392,429 @@ void timelib_dump_tzinfo(timelib_tzinfo } } @@ -289,6 +286,7 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li + && strcmp(ent->d_name, "posix") != 0 + && strcmp(ent->d_name, "posixrules") != 0 + && strcmp(ent->d_name, "right") != 0 ++ && strstr(ent->d_name, ".list") == NULL + && strstr(ent->d_name, ".tab") == NULL; +} + @@ -429,8 +427,18 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li + +/* Returns true if the passed-in stat structure describes a + * probably-valid timezone file. */ -+static int is_valid_tzfile(const struct stat *st) ++static int is_valid_tzfile(const struct stat *st, int fd) +{ ++ if (fd) { ++ char buf[20]; ++ if (read(fd, buf, 20)!=20) { ++ return 0; ++ } ++ lseek(fd, SEEK_SET, 0); ++ if (memcmp(buf, "TZif", 4)) { ++ return 0; ++ } ++ } + return S_ISREG(st->st_mode) && st->st_size > 20; +} + @@ -468,11 +476,11 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li + } + + snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", canonical_tzname(timezone)); -+ ++ + fd = open(fname, O_RDONLY); + if (fd == -1) { + return NULL; -+ } else if (fstat(fd, &st) != 0 || !is_valid_tzfile(&st)) { ++ } else if (fstat(fd, &st) != 0 || !is_valid_tzfile(&st, fd)) { + close(fd); + return NULL; + } @@ -490,7 +498,7 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li { int left = 0, right = tzdb->index_size - 1; #ifdef HAVE_SETLOCALE -@@ -337,21 +767,88 @@ static int seek_to_tz_position(const uns +@@ -419,9 +859,48 @@ static int seek_to_tz_position(const uns return 0; } @@ -538,17 +546,8 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li +#endif } - const timelib_tzdb_index_entry *timelib_timezone_builtin_identifiers_list(int *count) - { -+#ifdef HAVE_SYSTEM_TZDATA -+ *count = timezonedb_system->index_size; -+ return timezonedb_system->index; -+#else - *count = sizeof(timezonedb_idx_builtin) / sizeof(*timezonedb_idx_builtin); - return timezonedb_idx_builtin; -+#endif - } - + const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(timelib_tzdb *tzdb, int *count) +@@ -433,7 +912,30 @@ const timelib_tzdb_index_entry *timelib_ int timelib_timezone_id_is_valid(char *timezone, const timelib_tzdb *tzdb) { const unsigned char *tzf; @@ -572,39 +571,34 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li + + snprintf(fname, sizeof fname, ZONEINFO_PREFIX "/%s", canonical_tzname(timezone)); + -+ return stat(fname, &st) == 0 && is_valid_tzfile(&st); ++ return stat(fname, &st) == 0 && is_valid_tzfile(&st, 0); + } +#endif + + return (inmem_seek_to_tz_position(&tzf, timezone, tzdb)); } - static void skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz) -@@ -376,24 +873,54 @@ static void read_64bit_header(const unsi - timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb) + static int skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz) +@@ -475,12 +977,14 @@ static timelib_tzinfo* timelib_tzinfo_ct + timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb, int *error_code) { const unsigned char *tzf; + char *memmap = NULL; + size_t maplen; timelib_tzinfo *tmp; int version; + int transitions_result, types_result; + unsigned int type; /* TIMELIB_TZINFO_PHP or TIMELIB_TZINFO_ZONEINFO */ - if (seek_to_tz_position(&tzf, timezone, tzdb)) { + if (seek_to_tz_position(&tzf, timezone, &memmap, &maplen, tzdb)) { tmp = timelib_tzinfo_ctor(timezone); - version = read_preamble(&tzf, tmp); - read_header(&tzf, tmp); - read_transistions(&tzf, tmp); - read_types(&tzf, tmp); -- if (version == 2) { -- skip_64bit_preamble(&tzf, tmp); -- read_64bit_header(&tzf, tmp); -- skip_64bit_transistions(&tzf, tmp); -- skip_64bit_types(&tzf, tmp); -- skip_posix_string(&tzf, tmp); -- } -- read_location(&tzf, tmp); + version = read_preamble(&tzf, tmp, &type); +@@ -503,6 +1007,29 @@ timelib_tzinfo *timelib_parse_tzfile(cha + timelib_tzinfo_dtor(tmp); + return NULL; + } + +#ifdef HAVE_SYSTEM_TZDATA + if (memmap) { @@ -621,32 +615,30 @@ diff -up php-7.0.0RC1/ext/date/lib/parse_tz.c.systzdata php-7.0.0RC1/ext/date/li + tmp->bc = 1; + } + else { -+ strcpy(tmp->location.country_code, "??"); -+ tmp->bc = 0; -+ tmp->location.comments = timelib_strdup(""); ++ set_default_location_and_comments(&tzf, tmp); + } + + /* Now done with the mmap segment - discard it. */ + munmap(memmap, maplen); -+ } else ++ } else { ++#endif + if (version == 2 || version == 3) { + if (!skip_64bit_preamble(&tzf, tmp)) { + /* 64 bit preamble is not in place */ +@@ -520,6 +1047,9 @@ timelib_tzinfo *timelib_parse_tzfile(cha + } else { + set_default_location_and_comments(&tzf, tmp); + } ++#ifdef HAVE_SYSTEM_TZDATA ++ } +#endif -+ { -+ /* PHP-style - use the embedded info. */ -+ if (version == 2) { -+ skip_64bit_preamble(&tzf, tmp); -+ read_64bit_header(&tzf, tmp); -+ skip_64bit_transistions(&tzf, tmp); -+ skip_64bit_types(&tzf, tmp); -+ skip_posix_string(&tzf, tmp); -+ } -+ read_location(&tzf, tmp); -+ } } else { + *error_code = TIMELIB_ERROR_NO_SUCH_TIMEZONE; tmp = NULL; - } ---- php-7.1.0RC4/ext/date/lib/timelib.m4~ 2016-10-17 14:35:11.000000000 +0300 -+++ php-7.1.0RC4/ext/date/lib/timelib.m4 2016-10-25 14:11:32.224877793 +0300 -@@ -78,3 +78,16 @@ +diff -up ./ext/date/lib/timelib.m4.systzdata ./ext/date/lib/timelib.m4 +--- ./ext/date/lib/timelib.m4.systzdata 2017-08-22 09:40:38.000000000 +0200 ++++ ./ext/date/lib/timelib.m4 2017-08-22 11:32:29.357799927 +0200 +@@ -81,3 +81,16 @@ io.h dnl Check for strtoll, atoll AC_CHECK_FUNCS(strtoll atoll strftime gettimeofday) diff --git a/php.spec b/php.spec index 5f4e66a..fba965f 100644 --- a/php.spec +++ b/php.spec @@ -1,11 +1,13 @@ +# NOTES +# - mysqlnd driver doesn't support reconnect: https://bugs.php.net/bug.php?id=52561 +# TODO 7.2: +# - https://github.com/php/php-src/blob/php-7.2.0/UPGRADING # TODO 5.6: # - enable --with-fpm-systemd, but ensure it checks for sd_booted() -# - build with system libgd 2.1, see 73c5128 # TODO 5.4: # - update imap annotations patch (needs api porting) # - update imap myrights patch (needs api porting) # --with-libmbfl=DIR MBSTRING: Use external libmbfl. DIR is the libmbfl base install directory BUNDLED -# --with-onig=DIR MBSTRING: Use external oniguruma. DIR is the oniguruma install prefix. # TODO: # - fileinfo extension bundles magic db in library: data_file.c (dump of magic.mgc) is 14M # - 2.3M fileinfo.so php54-fileinfo-5.4.6-0.15.x86_64 @@ -63,7 +65,6 @@ %bcond_without json # without json extension module %bcond_without ldap # without LDAP extension module %bcond_without mbstring # without mbstring extension module -%bcond_without mcrypt # without mbcrypt extension module %bcond_without mhash # without mhash extension (supported by hash extension) %bcond_without mysqli # without mysqli support (Requires mysql >= 4.1) %bcond_without mysqlnd # without mysqlnd support in mysql related extensions @@ -85,17 +86,20 @@ %bcond_without recode # without recode extension module %bcond_without session # without session extension module %bcond_without snmp # without SNMP extension module +%bcond_without sodium # without sodium extension module %bcond_without sqlite2 # without SQLite extension module %bcond_without sqlite3 # without SQLite3 extension module %bcond_without tidy # without Tidy extension module %bcond_without wddx # without WDDX extension module %bcond_without xmlrpc # without XML-RPC extension module +%bcond_without xsl # without xsl extension module # extensions options +%bcond_without argon2 # argon2 password hashing %bcond_without instantclient # build Oracle oci8 extension module against oracle-instantclient package %bcond_with interbase_inst # use InterBase install., not Firebird (BR: proprietary libs) %bcond_with mm # without mm support for session storage -%bcond_with system_gd # with system gd (imageantialias function is missing then) -%bcond_with system_libzip # with system libzip (reported broken currently) +%bcond_without system_gd # system gd +%bcond_without system_libzip # system libzip %bcond_without webp # Without WebP support in GD extension (imagecreatefromwebp) %define apxs1 /usr/sbin/apxs1 @@ -134,7 +138,7 @@ %endif %define orgname php -%define php_suffix 71 +%define php_suffix 72 Summary: PHP: Hypertext Preprocessor Summary(fr.UTF-8): Le langage de script embarque-HTML PHP Summary(pl.UTF-8): Język skryptowy PHP @@ -142,7 +146,7 @@ Summary(pt_BR.UTF-8): A linguagem de script PHP Summary(ru.UTF-8): PHP Версии 7 - язык препроцессирования HTML-файлов, выполняемый на сервере Summary(uk.UTF-8): PHP Версії 7 - мова препроцесування HTML-файлів, виконувана на сервері Name: %{orgname}%{php_suffix} -Version: 7.1.11 +Version: 7.2.1 Release: 1 Epoch: 4 # All files licensed under PHP version 3.01, except @@ -151,7 +155,8 @@ Epoch: 4 License: PHP 3.01 and Zend and BSD Group: Libraries Source0: http://php.net/distributions/%{orgname}-%{version}.tar.xz -# Source0-md5: bbf4dfe4f501143a1763eb86b6a0a454 +# Source0-md5: f8682afff613f7e4661c77f122e4dbfd +Source1: opcache.ini Source2: %{orgname}-mod_php.conf Source3: %{orgname}-cgi-fcgi.ini Source4: %{orgname}-apache.ini @@ -199,8 +204,6 @@ Patch52: pcre-shared.patch Patch53: fix-test-run.patch Patch55: bug-52078-fileinode.patch Patch59: %{orgname}-systzdata.patch -Patch62: mcrypt-libs.patch -Patch65: system-libzip.patch Patch66: php-db.patch Patch67: mysql-lib-ver-mismatch.patch Patch69: fpm-conf-split.patch @@ -220,6 +223,8 @@ BuildRequires: db-devel >= 4.0 BuildRequires: elfutils-devel %{?with_enchant:BuildRequires: enchant-devel >= 1.1.3} %{?with_kerberos5:BuildRequires: heimdal-devel} +%{?with_argon2:BuildRequires: libargon2-devel >= 20161029} +%{?with_sodium:BuildRequires: libsodium-devel >= 1.0.8} %if %{with pdo_dblib} BuildRequires: freetds-devel >= 0.82 %endif @@ -235,19 +240,19 @@ BuildRequires: gmp-devel >= 4.2 %{?with_intl:BuildRequires: libicu-devel >= 4.4} BuildRequires: libjpeg-devel BuildRequires: libltdl-devel >= 1.4 -BuildRequires: libmcrypt-devel >= 2.5.6 BuildRequires: libpng-devel >= 1.0.8 %{?with_intl:BuildRequires: libstdc++-devel} %{?with_webp:BuildRequires: libwebp-devel} BuildRequires: libtool >= 2:2.4.6 BuildRequires: libxml2-devel >= 1:2.7.6-4 -BuildRequires: libxslt-devel >= 1.1.0 -%{?with_system_libzip:BuildRequires: libzip-devel >= 0.10.1-2} +%{?with_xsl:BuildRequires: libxslt-devel >= 1.1.0} +%{?with_system_libzip:BuildRequires: libzip-devel >= 1.2.0} %{?with_snmp:%{?with_tests:BuildRequires: mibs-net-snmp}} %{?with_mm:BuildRequires: mm-devel >= 1.3.0} %{!?with_pdo_mysql:BuildRequires: mysql-devel} %{!?with_mysqli:BuildRequires: mysql-devel >= 4.1.13} %{?with_snmp:BuildRequires: net-snmp-devel >= 5.3} +BuildRequires: oniguruma-devel %{?with_ldap:BuildRequires: openldap-devel >= 2.3.0} %if %{with openssl} || %{with ldap} BuildRequires: openssl-devel >= 1.0.1 @@ -287,22 +292,23 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _sysconfdir %{php_sysconfdir} # must be in sync with source. extra check ensuring that it is so is done in %%build -%define php_api_version 20160303 -%define zend_module_api 20160303 -%define zend_extension_api 320160303 -%define php_pdo_api_version 20150127 +%define php_api_version 20170718 +%define zend_module_api 20170718 +%define zend_extension_api 320170718 +%define php_pdo_api_version 20170320 # Extension versions %define bz2ver 1.0 -%define enchantver 1.1.0 +%define enchantver %{version} %define fileinfover 1.0.5 %define hashver 1.0 %define intlver 1.1.0 -%define jsonver 1.5.0 +%define jsonver 1.6.0 %define pharver 2.0.2 -%define sqlite3ver 0.7-dev -%define zipver 1.13.5 +%define sqlite3ver %{version} +%define zipver 1.15.1 %define phpdbgver 0.5.0 +%define sodiumver %{version} %define _zend_zts %{!?with_zts:0}%{?with_zts:1} %define php_debug %{!?debug:0}%{?debug:1} @@ -1065,23 +1071,6 @@ string support. %description mbstring -l pl.UTF-8 Moduł PHP dodający obsługę ciągów znaków wielobajtowych. -%package mcrypt -Summary: mcrypt extension module for PHP -Summary(pl.UTF-8): Moduł mcrypt dla PHP -Group: Libraries -URL: http://php.net/manual/en/book.mcrypt.php -Requires: %{name}-common = %{epoch}:%{version}-%{release} -Requires: libmcrypt >= 2.5.6 -Provides: php(mcrypt) -Obsoletes: php-mcrypt < 4:5.3.28-7 - -%description mcrypt -This is a dynamic shared object (DSO) for PHP that will add mcrypt -support. - -%description mcrypt -l pl.UTF-8 -Moduł PHP dodający możliwość szyfrowania poprzez bibliotekę mcrypt. - %package mysqli Summary: MySQLi module for PHP Summary(pl.UTF-8): Moduł MySQLi dla PHP @@ -1627,6 +1616,16 @@ support. %description sockets -l pl.UTF-8 Moduł PHP dodający obsługę gniazdek. +%package sodium +Summary: Wrapper for the Sodium cryptographic library +Group: Libraries +URL: https://paragonie.com/book/pecl-libsodium +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Provides: php(sodium) = %{sodiumver} + +%description sodium +A simple, low-level PHP extension for libsodium. + %package spl Summary: Standard PHP Library module for PHP Summary(pl.UTF-8): Moduł biblioteki standardowej (Standard PHP Library) dla PHP @@ -1892,7 +1891,7 @@ Summary(pl.UTF-8): Zarządzanie archiwami zip Group: Libraries URL: http://php.net/manual/en/book.zip.php Requires: %{name}-common = %{epoch}:%{version}-%{release} -%{?with_system_libzip:Requires: libzip >= 0.10.1-2} +%{?with_system_libzip:Requires: libzip >= 1.2.0} Provides: php(zip) = %{zipver} Obsoletes: php-pecl-zip < %{zipver} Obsoletes: php-zip < 4:5.3.28-7 @@ -1958,19 +1957,17 @@ cp -p php.ini-production php.ini %patch47 -p1 %endif %patch50 -p1 -%patch51 -p1 -%patch52 -p1 +%patch51 -p1 -b .spl-shared +%patch52 -p1 -b .pcre-shared %patch53 -p1 %undos ext/spl/tests/SplFileInfo_getInode_basic.phpt %patch55 -p1 -%patch59 -p1 -%patch62 -p1 -%{?with_system_libzip:%patch65 -p1} +%patch59 -p1 -b .systzdata %patch66 -p1 %patch67 -p1 %patch70 -p1 %patch71 -p1 -%patch72 -p1 +%patch72 -p1 -b .phar-shared %{__sed} -i -e '/PHP_ADD_LIBRARY_WITH_PATH/s#xmlrpc,#xmlrpc-epi,#' ext/xmlrpc/config.m4 @@ -1993,7 +1990,7 @@ find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f #%{__rm} -r ext/dba/libinifile #%{__rm} -r ext/gd/libgd #%{__rm} -r ext/mbstring/libmbfl -#%{__rm} -r ext/mbstring/oniguruma +%{__rm} -r ext/mbstring/oniguruma %{__rm} -r ext/pcre/pcrelib #%{__rm} -r ext/soap/interop %{__rm} -r ext/xmlrpc/libxmlrpc @@ -2113,8 +2110,10 @@ if test "$ver" != "%{pharver}"; then fi ver=$(awk '/#define PHP_SQLITE3_VERSION/ {print $3}' ext/sqlite3/php_sqlite3.h | xargs) if test "$ver" != "PHP_VERSION"; then - : Error: Upstream Sqlite3 version is now ${ver}, expecting %{sqlite3ver}. - : Update the sqlite3ver macro and rebuild. + exit 1 +fi +ver=$(awk '/#define PHP_SODIUM_VERSION/ {print $3}' ext/sodium/php_libsodium.h | xargs) +if test "$ver" != "PHP_VERSION"; then exit 1 fi ver=$(sed -n '/#define PHP_ZIP_VERSION /{s/.* "//;s/".*$//;p}' ext/zip/php_zip.h) @@ -2141,10 +2140,8 @@ if test "$ver" != "%{bz2ver}"; then : Update the bz2ver macro and rebuild. exit 1 fi -ver=$(sed -n '/#define PHP_ENCHANT_VERSION /{s/.* "//;s/".*$//;p}' ext/enchant/php_enchant.h) -if test "$ver" != "%{enchantver}"; then - : Error: Upstream Enchant version is now ${ver}, expecting %{enchantver}. - : Update the enchantver macro and rebuild. +ver=$(awk '/#define PHP_ENCHANT_VERSION/ {print $3}' ext/enchant/php_enchant.h | xargs) +if test "$ver" != "PHP_VERSION"; then exit 1 fi ver=$(awk '/#define PHP_HASH_VERSION/ {print $3}' ext/hash/php_hash.h | xargs) @@ -2245,6 +2242,7 @@ for sapi in $sapis; do --with-config-file-path=%{_sysconfdir} \ --with-config-file-scan-dir=%{_sysconfdir}/conf.d \ --with-system-tzdata \ + %{?with_argon2:--with-password-argon2} \ --%{!?debug:dis}%{?debug:en}able-debug \ %{?with_zts:--enable-maintainer-zts} \ --enable-inline-optimization \ @@ -2257,10 +2255,10 @@ for sapi in $sapis; do %{__enable_disable exif exif shared} \ %{__enable_disable fileinfo fileinfo shared} \ %{__enable_disable ftp ftp shared} \ - --enable-gd-native-ttf \ %{?with_intl:--enable-intl=shared} \ --enable-libxml \ %{__enable_disable mbstring mbstring shared,all} \ + --with-onig=/usr \ --enable-mbregex \ %{__enable_disable pcntl pcntl shared} \ %{__enable_disable pdo pdo shared} \ @@ -2296,6 +2294,7 @@ for sapi in $sapis; do --enable-sysvshm=shared \ --enable-soap=shared \ --enable-sockets=shared \ + %{__with_without sodium sodium shared} \ --enable-tokenizer=shared \ %{?with_wddx:--enable-wddx=shared} \ --enable-xml=shared \ @@ -2314,7 +2313,6 @@ for sapi in $sapis; do %{?with_interbase:--with-interbase=shared%{!?with_interbase_inst:,/usr}} \ --with-jpeg-dir=/usr \ %{?with_ldap:--with-ldap=shared --with-ldap-sasl} \ - %{__with_without mcrypt mcrypt shared} \ %{?with_mm:--with-mm} \ %{?with_mysqlnd:--enable-mysqlnd=shared} \ %{?with_mysqli:--with-mysqli=shared,%{!?with_mysqlnd:/usr/bin/mysql_config}%{?with_mysqlnd:mysqlnd}} \ @@ -2338,7 +2336,7 @@ for sapi in $sapis; do %{?with_tidy:--with-tidy=shared} \ %{?with_odbc:--with-unixODBC=shared,/usr} \ %{__with_without xmlrpc xmlrpc shared,/usr} \ - --with-xsl=shared \ + %{?with_xsl:--with-xsl=shared} \ --with-zlib=shared \ --with-zlib-dir=shared,/usr \ %{?with_system_libzip:--with-libzip} \ @@ -2434,6 +2432,7 @@ generate_inifiles() { done } generate_inifiles +cp -p %{_sourcedir}/opcache.ini conf.d # Check that the module inner-dependencies are intact PHP=./sapi/cli/php EXTENSION_DIR=modules CONFIG_DIR=conf.d ./dep-tests.sh > dep-tests.log @@ -2807,7 +2806,6 @@ fi \ %extension_scripts json %extension_scripts ldap %extension_scripts mbstring -%extension_scripts mcrypt %extension_scripts mysqli %extension_scripts mysqlnd %extension_scripts oci8 @@ -2834,6 +2832,7 @@ fi \ %extension_scripts snmp %extension_scripts soap %extension_scripts sockets +%extension_scripts sodium %extension_scripts spl %extension_scripts sqlite3 %extension_scripts sysvmsg @@ -2931,7 +2930,7 @@ fi %files common %defattr(644,root,root,755) -%doc CREDITS EXTENSIONS LICENSE NEWS README.namespaces UPGRADING* Zend/{LICENSE.Zend,ZEND_CHANGES} php.ini-* +%doc CREDITS EXTENSIONS LICENSE NEWS UPGRADING* Zend/{LICENSE.Zend,README*} php.ini-* %dir %{_sysconfdir} %dir %{_sysconfdir}/conf.d %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php.ini @@ -3141,14 +3140,6 @@ fi %attr(755,root,root) %{php_extensiondir}/mbstring.so %endif -%if %{with mcrypt} -%files mcrypt -%defattr(644,root,root,755) -%doc ext/mcrypt/{CREDITS,TODO} -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mcrypt.ini -%attr(755,root,root) %{php_extensiondir}/mcrypt.so -%endif - %if %{with mysqli} %files mysqli %defattr(644,root,root,755) @@ -3372,6 +3363,14 @@ fi %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/sockets.ini %attr(755,root,root) %{php_extensiondir}/sockets.so +%if %{with sodium} +%files sodium +%defattr(644,root,root,755) +%doc ext/sodium/{README.md,CREDITS} +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/sodium.ini +%attr(755,root,root) %{php_extensiondir}/sodium.so +%endif + %files spl %defattr(644,root,root,755) %doc ext/spl/{CREDITS,README,TODO} @@ -3471,11 +3470,13 @@ fi %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/xmlwriter.ini %attr(755,root,root) %{php_extensiondir}/xmlwriter.so +%if %{with xsl} %files xsl %defattr(644,root,root,755) %doc ext/xsl/CREDITS %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/xsl.ini %attr(755,root,root) %{php_extensiondir}/xsl.so +%endif %files zip %defattr(644,root,root,755) diff --git a/spl-shared.patch b/spl-shared.patch index cf0fc4e..a928d0c 100644 --- a/spl-shared.patch +++ b/spl-shared.patch @@ -8,61 +8,6 @@ + PHP_NEW_EXTENSION(spl, php_spl.c spl_functions.c spl_engine.c spl_iterators.c spl_array.c spl_directory.c spl_exceptions.c spl_observer.c spl_dllist.c spl_heap.c spl_fixedarray.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) PHP_INSTALL_HEADERS([ext/spl], [php_spl.h spl_array.h spl_directory.h spl_engine.h spl_exceptions.h spl_functions.h spl_iterators.h spl_observer.h spl_dllist.h spl_heap.h spl_fixedarray.h]) PHP_ADD_EXTENSION_DEP(spl, pcre, true) ---- php-5.3.1/ext/spl/spl_iterators.c~ 2009-07-04 20:31:27.000000000 +0000 -+++ php-5.3.1/ext/spl/spl_iterators.c 2009-11-27 16:35:33.729087793 +0000 -@@ -58,7 +58,13 @@ - PHPAPI zend_class_entry *spl_ce_AppendIterator; - PHPAPI zend_class_entry *spl_ce_RegexIterator; - PHPAPI zend_class_entry *spl_ce_RecursiveRegexIterator; -+#if COMPILE_DL_SPL -+#undef spl_ce_Countable -+zend_class_entry *spl_ce_Countable; // real instance -+extern PHPAPI zend_class_entry *spl_ce_Countable_p; // external one -+#else - PHPAPI zend_class_entry *spl_ce_Countable; -+#endif - PHPAPI zend_class_entry *spl_ce_RecursiveTreeIterator; - - ZEND_BEGIN_ARG_INFO(arginfo_recursive_it_void, 0) -@@ -3286,6 +3292,10 @@ - REGISTER_SPL_STD_CLASS_EX(EmptyIterator, NULL, spl_funcs_EmptyIterator); - REGISTER_SPL_ITERATOR(EmptyIterator); - -+#if COMPILE_DL_SPL -+ spl_ce_Countable_p = spl_ce_Countable; -+#endif -+ - REGISTER_SPL_SUB_CLASS_EX(RecursiveTreeIterator, RecursiveIteratorIterator, spl_RecursiveTreeIterator_new, spl_funcs_RecursiveTreeIterator); - REGISTER_SPL_CLASS_CONST_LONG(RecursiveTreeIterator, "BYPASS_CURRENT", RTIT_BYPASS_CURRENT); - REGISTER_SPL_CLASS_CONST_LONG(RecursiveTreeIterator, "BYPASS_KEY", RTIT_BYPASS_KEY); ---- php-5.4.0alpha3/ext/spl/spl_iterators.h~ 2011-07-27 11:48:08.000000000 +0300 -+++ php-5.4.0alpha3/ext/spl/spl_iterators.h 2011-08-08 00:12:10.892993117 +0300 -@@ -51,7 +51,12 @@ - extern PHPAPI zend_class_entry *spl_ce_AppendIterator; - extern PHPAPI zend_class_entry *spl_ce_RegexIterator; - extern PHPAPI zend_class_entry *spl_ce_RecursiveRegexIterator; -+#if COMPILE_DL_SPL -+#define spl_ce_Countable spl_ce_Countable_p -+extern PHPAPI zend_class_entry *spl_ce_Countable_p; -+#else - extern PHPAPI zend_class_entry *spl_ce_Countable; -+#endif - extern PHPAPI zend_class_entry *spl_ce_CallbackFilterIterator; - extern PHPAPI zend_class_entry *spl_ce_RecursiveCallbackFilterIterator; - ---- php-7.1.0alpha2/ext/standard/array.c~ 2016-07-04 17:52:16.000000000 +0300 -+++ php-7.1.0alpha2/ext/standard/array.c 2016-07-04 18:54:43.937173429 +0300 -@@ -48,6 +48,10 @@ - #include "zend_smart_str.h" - #include "ext/spl/spl_array.h" - -+#if COMPILE_DL_SPL -+PHPAPI zend_class_entry *spl_ce_Countable_p = NULL; // external one -+#endif -+ - /* {{{ defines */ - #define EXTR_OVERWRITE 0 - #define EXTR_SKIP 1 --- php-7.1.0alpha1/ext/pdo/pdo.c~ 2016-06-07 23:56:47.000000000 +0300 +++ php-7.1.0alpha1/ext/pdo/pdo.c 2016-06-13 23:24:51.238259131 +0300 @@ -117,7 +117,9 @@ @@ -82,7 +27,7 @@ if test "x$(PHP_MODULES)" != "x"; then \ $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \ - for i in bz2 zlib phar; do \ -+ for i in pcre spl bz2 zlib phar; do \ ++ for i in spl bz2 zlib phar; do \ if test -f "$(top_builddir)/modules/$$i.la"; then \ . $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \ fi; \ -- 2.37.3