---- 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
---- 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])
--- /dev/null
+; 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
---- 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
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)
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 <locale.h>
#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 @@
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; \
---- 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"`
---- 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
; 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
; 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 <?= shorthand tag, which can be
; used regardless of this directive.
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
-@@ -356,7 +370,7 @@
+@@ -371,7 +385,7 @@
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
; http://php.net/expose-php
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
-@@ -718,7 +732,7 @@
+@@ -734,7 +748,7 @@
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; On windows:
; extension_dir = "ext"
-@@ -732,65 +746,6 @@
+@@ -748,65 +762,6 @@
; http://php.net/enable-dl
enable_dl = Off
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
-@@ -868,47 +823,8 @@
- ; If you only provide the name of the extension, PHP will look for it in its
- ; default extension directory.
- ;
--; Windows Extensions
--; Note that ODBC support is built in, so no dll is needed for it.
--; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+)
--; extension folders as well as the separate PECL DLL download (PHP 5+).
--; Be sure to appropriately set the extension_dir directive.
--;
--;extension=php_bz2.dll
--;extension=php_curl.dll
--;extension=php_fileinfo.dll
--;extension=php_ftp.dll
--;extension=php_gd2.dll
--;extension=php_gettext.dll
--;extension=php_gmp.dll
--;extension=php_intl.dll
--;extension=php_imap.dll
--;extension=php_interbase.dll
--;extension=php_ldap.dll
--;extension=php_mbstring.dll
--;extension=php_exif.dll ; Must be after mbstring as it depends on it
--;extension=php_mysqli.dll
--;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
--;extension=php_openssl.dll
--;extension=php_pdo_firebird.dll
--;extension=php_pdo_mysql.dll
--;extension=php_pdo_oci.dll
--;extension=php_pdo_odbc.dll
--;extension=php_pdo_pgsql.dll
--;extension=php_pdo_sqlite.dll
--;extension=php_pgsql.dll
--;extension=php_shmop.dll
--
--; The MIBS data available in the PHP distribution must be installed.
--; See http://www.php.net/manual/en/snmp.installation.php
--;extension=php_snmp.dll
--
--;extension=php_soap.dll
--;extension=php_sockets.dll
--;extension=php_sqlite3.dll
--;extension=php_tidy.dll
--;extension=php_xmlrpc.dll
--;extension=php_xsl.dll
-+; Ideally in TLD Linux you should install appropriate php-<extension> or
-+; php-pecl-<extension> 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
[intl]
;intl.default_locale =
-@@ -1154,6 +1070,9 @@
+@@ -1165,6 +1120,9 @@
; http://php.net/mysqli.default-socket
mysqli.default_socket =
; 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
[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
---- 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)
---- 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;
---- 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
---- 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
+# 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.
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
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 <sys/mman.h>
+#include <unistd.h>
+
+#include "php_scandir.h"
-+#endif
+
- #include <stdio.h>
-
- #ifdef HAVE_LOCALE_H
-@@ -32,8 +42,12 @@
- #include <strings.h>
- #endif
-
-+#ifndef HAVE_SYSTEM_TZDATA
++#else
#define TIMELIB_SUPPORTS_V2DATA
#include "timezonedb.h"
+#endif
#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;
/* 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
}
}
+ && 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;
+}
+
+
+/* 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;
+}
+
+ }
+
+ 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;
+ }
{
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;
}
+#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;
+
+ 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) {
+ 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)
+# 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
%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
%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
%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
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
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
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
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
%{?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
%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}
%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
%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
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
%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
#%{__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
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)
: 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)
--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 \
%{__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} \
--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 \
%{?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}} \
%{?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} \
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
%extension_scripts json
%extension_scripts ldap
%extension_scripts mbstring
-%extension_scripts mcrypt
%extension_scripts mysqli
%extension_scripts mysqlnd
%extension_scripts oci8
%extension_scripts snmp
%extension_scripts soap
%extension_scripts sockets
+%extension_scripts sodium
%extension_scripts spl
%extension_scripts sqlite3
%extension_scripts sysvmsg
%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
%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)
%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}
%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)
+ 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 @@
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; \