]> TLD Linux GIT Repositories - packages/php.git/commitdiff
- updated to 7.2.1, partial PLD merge
authorMarcin Krol <hawk@tld-linux.org>
Fri, 12 Jan 2018 14:47:48 +0000 (14:47 +0000)
committerMarcin Krol <hawk@tld-linux.org>
Fri, 12 Jan 2018 14:47:48 +0000 (14:47 +0000)
13 files changed:
fix-test-run.patch
libtool-tag.patch
opcache.ini [new file with mode: 0644]
pcre-shared.patch
php-include_path.patch
php-ini.patch
php-link-libs.patch
php-no_pear_install.patch
php-pear.patch
php-shared.patch
php-systzdata.patch
php.spec
spl-shared.patch

index 42afec5dfe8d8840a79ec54dadb8478c57cb2330..bd3c3d7df0a98473f9eede0135cb1a9744eb7830 100644 (file)
@@ -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
index 951fd1eeac2f9d316a6b7ddd4551dc4cf852e4bb..d7e5400e48747e6224e25ae172ce70357bccbcb0 100644 (file)
@@ -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 (file)
index 0000000..16a3cff
--- /dev/null
@@ -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
index ae69ebdac93a52951525ebdc4f3020d14b6a2c5d..4eee40e58b60f743a662224142894572d0791e16 100644 (file)
@@ -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
        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; \
index a1c3afeb6c9e4bf06f6492ceb9c133a557b6608e..d956cc7d56a98dc562a0fe002f83f6a452245e2f 100644 (file)
@@ -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"`
index 2b8f90af4c9759b07875005a1f94f5e40deff494..83aa23eb8807777cfed4bfc9f5e9358cfb716827 100644 (file)
@@ -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 <?= shorthand tag, which can be
  ; used regardless of this directive.
@@ -48,7 +48,7 @@
  ; 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
@@ -57,7 +57,7 @@
  
  ;;;;;;;;;;;;;;;;;;;
  ; Resource Limits ;
-@@ -718,7 +732,7 @@
+@@ -734,7 +748,7 @@
  
  ; Directory in which the loadable extensions (modules) reside.
  ; http://php.net/extension-dir
@@ -66,7 +66,7 @@
  ; 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
index 23a7acc0073fe62566c735c7b013cdf48dba450a..c20149ebbfcea3f0cb8070170f69df9b7f3c4241 100644 (file)
@@ -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)
index f31c4a5dfac55fd08d5c38c5151211d5b9bf3e4a..75eb9bd4e26b5fee7dc946b6eec0fdc788b3b158 100644 (file)
@@ -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;
  
index 400359d4e47458f60ab22f71a7c7315f1ddc303c..74a03d64e51f65c26745b302985fdfd6a5c3d8d7 100644 (file)
@@ -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
index b414183de354f8d484535fc012f951af0025c8f1..24c6848ebef867b9e829892c1bd3dd41ed4b38d8 100644 (file)
@@ -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
index 212820bf352ea59db232a68ecf44418d435c6015..63ba1d8f4e71f348982e6fdb99e03e6a9d578ee6 100644 (file)
@@ -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 <sys/mman.h>
@@ -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 <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
@@ -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)
index 5f4e66aac58f7229ecd0253d3da7774a663210c1..fba965f0f8d859d47a177955767fd464281d9df1 100644 (file)
--- 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
 %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
@@ -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)
index cf0fc4ed436bb2e539d6ffded83048d00534063c..a928d0cad36a22d788a1661cc49e6d03f1aa2693 100644 (file)
@@ -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; \