]> TLD Linux GIT Repositories - packages/php.git/commitdiff
- updated to 7.3.0, merged some patches from PLD, not tested yet
authorMarcin Krol <hawk@tld-linux.org>
Sat, 8 Dec 2018 21:13:53 +0000 (21:13 +0000)
committerMarcin Krol <hawk@tld-linux.org>
Sat, 8 Dec 2018 21:13:53 +0000 (21:13 +0000)
pcre-shared.patch
php-ini.patch
php-libtool.patch
php-pear.patch
php-sapi-ini-file.patch
php.spec

index 8bb03e442f1ca8fa7b4b946a4ac5661c7038a67f..384b23d25075650dd2aae0abded79db0767527ce 100644 (file)
@@ -1,50 +1,18 @@
---- 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
-     AC_MSG_CHECKING([for PCRE headers location])
--    for i in $PHP_PCRE_REGEX $PHP_PCRE_REGEX/include $PHP_PCRE_REGEX/include/pcre $PHP_PCRE_REGEX/local/include; do
-+    for i in $PHP_PCRE_REGEX $PHP_PCRE_REGEX/include $PHP_PCRE_REGEX/include/pcre $PHP_PCRE_REGEX/local/include /usr/include; do
-       test -f $i/pcre.h && PCRE_INCDIR=$i
-     done
-@@ -21,7 +21,7 @@
-     AC_MSG_RESULT([$PCRE_INCDIR])
-     AC_MSG_CHECKING([for PCRE library location])
--    for j in $PHP_PCRE_REGEX $PHP_PCRE_REGEX/$PHP_LIBDIR; do
-+    for j in $PHP_PCRE_REGEX $PHP_PCRE_REGEX/$PHP_LIBDIR /usr/$PHP_LIBDIR; do
-       test -f $j/libpcre.a || test -f $j/libpcre.$SHLIB_SUFFIX_NAME && PCRE_LIBDIR=$j
-     done
-     
-@@ -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)
-     AC_DEFINE(HAVE_PCRE, 1, [ ])
-     PHP_ADD_INCLUDE($PCRE_INCDIR)
+--- php-7.3.0RC5/ext/pcre/config0.m4~  2018-11-06 12:22:53.000000000 +0200
++++ php-7.3.0RC5/ext/pcre/config0.m4   2018-11-12 13:30:52.805036671 +0200
+@@ -84,8 +84,9 @@
+       ])
+     fi
 -    PHP_NEW_EXTENSION(pcre, php_pcre.c, no,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
 +    PHP_NEW_EXTENSION(pcre, php_pcre.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
      PHP_INSTALL_HEADERS([ext/pcre], [php_pcre.h])
-+    EXTRA_LIBS="$EXTRA_LIBS -lpcre"
++    EXTRA_LIBS="$EXTRA_LIBS -lpcre2-8"
    else
      AC_MSG_CHECKING([for PCRE library to use])
      AC_MSG_RESULT([bundled])
-@@ -61,7 +62,7 @@
-                                pcrelib/pcre_version.c pcrelib/pcre_xclass.c \
-                                pcrelib/pcre_jit_compile.c"
-     PHP_PCRE_CFLAGS="-DHAVE_CONFIG_H -I@ext_srcdir@/pcrelib -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
--    PHP_NEW_EXTENSION(pcre, $pcrelib_sources php_pcre.c, no,,$PHP_PCRE_CFLAGS)
-+    PHP_NEW_EXTENSION(pcre, $pcrelib_sources php_pcre.c, $ext_shared,,$PHP_PCRE_CFLAGS)
-     PHP_ADD_BUILD_DIR($ext_builddir/pcrelib)
-     PHP_INSTALL_HEADERS([ext/pcre], [php_pcre.h pcrelib/])
-     AC_DEFINE(HAVE_BUNDLED_PCRE, 1, [ ])
---- 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
+--- php-7.3.0alpha3/ext/pcre/php_pcre.h~       2018-07-03 15:56:43.000000000 +0300
++++ php-7.3.0alpha3/ext/pcre/php_pcre.h        2018-07-10 11:11:55.739017013 +0300
 @@ -33,7 +33,29 @@
  #include <locale.h>
  #endif
 +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);
+ PHPAPI zend_string *php_pcre_replace(zend_string *regex, zend_string *subject_str, char *subject, size_t subject_len, zend_string *replace_str, size_t limit, size_t *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);
+ PHPAPI pcre2_code* pcre_get_compiled_regex(zend_string *regex, uint32_t *capture_count, uint32_t *options);
+ PHPAPI pcre2_code* pcre_get_compiled_regex_ex(zend_string *regex, uint32_t *capture_count, uint32_t *preg_options, uint32_t *coptions);
+@@ -45,14 +67,18 @@
  
-@@ -56,14 +78,18 @@
-       int refcount;
- } pcre_cache_entry;
+ typedef struct _pcre_cache_entry 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);
+ PHPAPI void  php_pcre_match_impl(  pcre_cache_entry *pce, char *subject, size_t subject_len, zval *return_value,
+       zval *subpats, int global, int use_flags, zend_long flags, zend_off_t start_offset);
  
 +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);
+ PHPAPI zend_string *php_pcre_replace_impl(pcre_cache_entry *pce, zend_string *subject_str, char *subject, size_t subject_len, zend_string *replace_str,
+       size_t limit, size_t *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
+--- php-7.3.0beta3/ext/pcre/php_pcre.c~        2018-09-11 11:43:27.000000000 +0300
++++ php-7.3.0beta3/ext/pcre/php_pcre.c 2018-09-11 11:43:30.747506034 +0300
 @@ -21,6 +21,9 @@
  #include "php.h"
  #include "php_ini.h"
  #include "php_pcre.h"
  #include "ext/standard/info.h"
  #include "ext/standard/basic_functions.h"
-@@ -208,6 +211,14 @@
+@@ -208,6 +211,17 @@
        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);
  
 +      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;
++      php_pcre_create_match_data_p = php_pcre_create_match_data;
++      php_pcre_free_match_data_p = php_pcre_free_match_data;
++      php_pcre_mctx_p = php_pcre_mctx;
 +#endif
 +
        return SUCCESS;
  /* }}} */
 --- 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 @@
+@@ -113,6 +113,18 @@
  PHPAPI php_basic_globals basic_globals;
  #endif
  
 +#if COMPILE_DL_PCRE
-+// for pcre shared patch symbol
++// Declare the pointers in core library
 +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;
++void *php_pcre_create_match_data_p;
++void *php_pcre_free_match_data_p;
++void *php_pcre_mctx_p;
 +#endif
 +
  #include "php_fopen_wrappers.h"
                        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-7.3.0beta3/ext/pcre/php_pcre.h~        2018-09-11 11:41:50.000000000 +0300
++++ php-7.3.0beta3/ext/pcre/php_pcre.h 2018-09-11 11:41:54.865778887 +0300
+@@ -37,6 +37,9 @@
+ #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)
++#define php_pcre_create_match_data (*php_pcre_create_match_data_p)
++#define php_pcre_free_match_data (*php_pcre_free_match_data_p)
++#define php_pcre_mctx (*php_pcre_mctx_p)
+ #if !defined(COMPILE_DL_PCRE_NOEXTERN)
+ #     define PCRE_EXTERN extern
+ #else
+@@ -50,6 +53,9 @@
+ extern void *php_pcre_replace_impl_p;
+ extern void *php_pcre_match_impl_p;
+ extern void *php_pcre_split_impl_p;
++extern void *php_pcre_create_match_data_p;
++extern void *php_pcre_free_match_data_p;
++extern void *php_pcre_mctx_p;
+ #endif
+ PHPAPI zend_string *php_pcre_replace(zend_string *regex, zend_string *subject_str, char *subject, size_t subject_len, zend_string *replace_str, size_t limit, size_t *replace_count);
+@@ -83,6 +89,7 @@
+ PHPAPI void  php_pcre_grep_impl(   pcre_cache_entry *pce, zval *input, zval *return_value,
+       zend_long flags);
++PCRE_EXTERN
+ PHPAPI pcre2_match_context *php_pcre_mctx(void);
+ PHPAPI pcre2_general_context *php_pcre_gctx(void);
+ PHPAPI pcre2_compile_context *php_pcre_cctx(void);
+@@ -90,7 +97,9 @@
+ PHPAPI void php_pcre_pce_decref(pcre_cache_entry *);
+ PHPAPI pcre2_code *php_pcre_pce_re(pcre_cache_entry *);
+ /* capture_count can be ignored, re is required. */
++PCRE_EXTERN
+ PHPAPI pcre2_match_data *php_pcre_create_match_data(uint32_t, pcre2_code *);
++PCRE_EXTERN
+ PHPAPI void php_pcre_free_match_data(pcre2_match_data *);
+ ZEND_BEGIN_MODULE_GLOBALS(pcre)
index 83aa23eb8807777cfed4bfc9f5e9358cfb716827..dd260eb635629c367a5cb769f07247b8563c2774 100644 (file)
@@ -1,5 +1,5 @@
---- 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
+--- php-7.3.0/php.ini  2018-12-04 16:12:20.000000000 +0000
++++ php-7.3.0/php.ini  2018-12-07 16:18:48.333403000 +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
@@ -19,7 +19,7 @@
 +; few options)
 +
  
- ; This is php.ini-production INI file.
+ ; This is the php.ini-production INI file.
  
 @@ -149,7 +163,7 @@
  ;   Production Value: 5
@@ -33,7 +33,7 @@
 @@ -170,7 +184,7 @@
  ;user_ini.filename = ".user.ini"
  
- ; To disable this feature set this option to empty value
+ ; To disable this feature set this option to an empty value
 -;user_ini.filename =
 +user_ini.filename =
  
  
  ;;;;;;;;;;;;;;;;;;;
  ; Resource Limits ;
-@@ -734,7 +748,7 @@
+@@ -752,7 +766,7 @@
  
  ; Directory in which the loadable extensions (modules) reside.
  ; http://php.net/extension-dir
--; extension_dir = "./"
-+;extension_dir = "/usr/lib/php"
+-;extension_dir = "./"
++extension_dir = "/usr/lib/php"
  ; On windows:
- ; extension_dir = "ext"
+ ;extension_dir = "ext"
  
-@@ -748,65 +762,6 @@
+@@ -766,64 +780,6 @@
  ; http://php.net/enable-dl
  enable_dl = Off
  
 -
 -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside
 -; of the web tree and people will not be able to circumvent .htaccess security.
--; http://php.net/cgi.dicard-path
 -;cgi.discard_path=1
 -
--; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate
+-; FastCGI under IIS supports the ability to impersonate
 -; security tokens of the calling client.  This allows IIS to define the
 -; security context that the request runs under.  mod_fastcgi under Apache
 -; does not currently support this feature (03/17/2002)
  ;;;;;;;;;;;;;;;;
  ; File Uploads ;
  ;;;;;;;;;;;;;;;;
-@@ -961,19 +916,19 @@
+@@ -979,19 +935,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
+ ; The precedence is: default_charset < input_encoding < iconv.input_encoding
 -;iconv.input_encoding =
 +iconv.input_encoding = UTF-8
  
  
  [intl]
  ;intl.default_locale =
-@@ -1165,6 +1120,9 @@
+@@ -1172,6 +1128,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 =
-@@ -1314,7 +1272,7 @@
+@@ -1313,7 +1272,7 @@
  
  [browscap]
  ; http://php.net/browscap
  
  [Session]
  ; Handler used to store/retrieve data.
-@@ -1741,7 +1699,7 @@
+@@ -1747,7 +1706,7 @@
  
  ; Sets the directory name where SOAP extension will put cache files.
  ; http://php.net/soap.wsdl-cache-dir
index 5f2cf6ea5d6e9920de96f3f39ea6e4f320d29de2..e738fd44d5e5b2ce97baaf50e43c76f340c6ba50 100644 (file)
@@ -1,5 +1,5 @@
---- php-5.4.6/scripts/phpize.in~       2012-08-23 03:02:42.000000000 +0300
-+++ php-5.4.6/scripts/phpize.in        2012-08-23 10:16:37.011306948 +0300
+--- php-7.3.0/scripts/phpize.in        2018-12-08 20:10:13.014403000 +0000
++++ php-7.3.0/scripts/phpize.in        2018-12-08 20:11:24.419403000 +0000
 @@ -6,10 +6,16 @@
  exec_prefix="`eval echo @exec_prefix@`"
  phpdir="`eval echo @libdir@`/php/php@program_suffix@/build"
@@ -8,19 +8,19 @@
  builddir="`pwd`"
  SED="@SED@"
  
--FILES_BUILD="mkdep.awk scan_makefile_in.awk shtool libtool.m4 ax_check_compile_flag.m4"
-+FILES_BUILD="mkdep.awk scan_makefile_in.awk shtool"
+-FILES_BUILD="mkdep.awk scan_makefile_in.awk shtool libtool.m4 ax_check_compile_flag.m4 ax_gcc_func_attribute.m4"
++FILES_BUILD="mkdep.awk scan_makefile_in.awk shtool ax_check_compile_flag.m4 ax_gcc_func_attribute.m4"
 +if [ -f "$aclocaldir/ltsugar.m4" ]; then
-+    LIBTOOL_FILES="libtool.m4 ax_check_compile_flag.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4"
++    LIBTOOL_FILES="libtool.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4"
 +else
-+    LIBTOOL_FILES="libtool.m4 ax_check_compile_flag.m4"
++    LIBTOOL_FILES="libtool.m4"
 +fi
  FILES="acinclude.m4 Makefile.global config.sub config.guess ltmain.sh run-tests*.php"
- CLEAN_FILES="$FILES *.o *.lo *.la .deps .libs/ build/ include/ modules/ install-sh \
-       mkinstalldirs missing config.nice config.sub config.guess configure configure.in \
-@@ -145,8 +151,9 @@ phpize_copy_files()
+ CLEAN_FILES="$FILES *.o *.lo *.la .libs/ build/ modules/ install-sh \
+       mkinstalldirs missing config.nice config.sub config.guess configure configure.ac \
+@@ -145,8 +151,9 @@
    test -d build || mkdir build
-  
    (cd "$phpdir" && cp $FILES_BUILD "$builddir"/build)
 +  (cd "$aclocaldir" && cp $LIBTOOL_FILES "$builddir"/build)
    (cd "$phpdir" && cp $FILES "$builddir")
index 86b327aa588bd0f4a86efcd4b24dacec153c672a..2772cd11b7730b001c2764a1b8186514e87eae2f 100644 (file)
@@ -1,6 +1,6 @@
---- 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
-@@ -1102,11 +1102,6 @@
+--- php-7.3.0beta3/configure.ac~       2018-09-05 19:02:49.000000000 +0300
++++ php-7.3.0beta3/configure.ac        2018-09-05 19:04:13.237533903 +0300
+@@ -934,11 +934,6 @@
    with_pear=no
  fi
  
 -fi
 -
  PHP_ARG_WITH(pear, [whether to install PEAR],
- [  --with-pear=DIR         Install PEAR in DIR @<:@PREFIX/lib/php@:>@
+ [  --with-pear=DIR         Install PEAR in DIR [PREFIX/lib/php]
    --without-pear          Do not install PEAR], DEFAULT, yes)
-@@ -1116,11 +1111,11 @@
-   dnl
-   dnl PEAR dependancies
-   dnl
+@@ -1137,19 +1137,6 @@
+   --without-pear          Do not install PEAR], DEFAULT, yes)
+ if test "$PHP_PEAR" != "no"; then
+-
+-  dnl
+-  dnl PEAR dependencies
+-  dnl
 -  if test "$PHP_XML" = "no"; then
 -    pear_error_msg="$pear_error_msg
 -                    PEAR requires XML to be enabled.     Add --enable-xml to the configure line. (or --without-pear)"
 -  fi
 -
-+dnl  if test "$PHP_XML" = "no"; then
-+dnl    pear_error_msg="$pear_error_msg
-+dnl                    PEAR requires XML to be enabled.     Add --enable-xml to the configure line. (or --without-pear)"
-+dnl  fi
-+dnl
- dnl
- dnl  if test "$PHP_XMLRPC" = "no"; then
- dnl    pear_error_msg="$pear_error_msg
+-  if test "$pear_error_msg"; then
+-    AC_MSG_ERROR([$pear_error_msg])
+-  fi
+-
+   install_pear="install-pear"
+   PEAR_INSTALLDIR=$PHP_PEAR
 --- php-5.2.6/sapi/cli/config.m4~      2008-11-16 18:35:31.000000000 +0200
 +++ php-5.2.6/sapi/cli/config.m4       2008-11-20 19:04:12.585061299 +0200
 @@ -4,7 +4,7 @@
index d18142ab802495cad128c0668fc049f9a583ca17..0ed4d799f2bd6d7085e67c244c3bc9817847dd29 100644 (file)
@@ -88,7 +88,7 @@ https://github.com/pld-linux/php/commit/762ec2e
                        ZVAL_NEW_STR(&tmp, zend_string_init(fh.filename, strlen(fh.filename), 1));
                        zend_hash_str_update(&configuration_hash, "cfg_file_path", sizeof("cfg_file_path")-1, &tmp);
                        if (opened_path) {
-                               zend_string_release(opened_path);
+                               zend_string_release_ex(opened_path, 0);
 -                      } else {
 +                      }
 +
index 1a6c42075bee4b6a69b0cb6d171c943aa414ad74..632396ed09f62749908cfa70013a0dcda59e4bb0 100644 (file)
--- a/php.spec
+++ b/php.spec
 %endif
 
 %define                orgname php
-%define                php_suffix 72
+%define                php_suffix 73
 Summary:       PHP: Hypertext Preprocessor
 Summary(fr.UTF-8):     Le langage de script embarque-HTML PHP
 Summary(pl.UTF-8):     Język skryptowy PHP
@@ -146,8 +146,8 @@ 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.2.13
-Release:       1
+Version:       7.3.0
+Release:       0.1
 Epoch:         4
 # All files licensed under PHP version 3.01, except
 # Zend is licensed under Zend
@@ -155,7 +155,7 @@ Epoch:              4
 License:       PHP 3.01 and Zend and BSD
 Group:         Libraries
 Source0:       http://php.net/distributions/%{orgname}-%{version}.tar.xz
-# Source0-md5: 777c170cc2a96a272b11e4c00365e4bc
+# Source0-md5: 6b58a59106b0da4fdcba3bcf12cc3ca5
 Source1:       opcache.ini
 Source2:       %{orgname}-mod_php.conf
 Source3:       %{orgname}-cgi-fcgi.ini
@@ -171,7 +171,6 @@ Patch1:             %{orgname}-tld.patch
 Patch3:                %{orgname}-link-libs.patch
 Patch4:                intl-stdc++.patch
 Patch5:                %{orgname}-filter-shared.patch
-Patch6:                %{orgname}-build_modules.patch
 Patch7:                %{orgname}-sapi-ini-file.patch
 Patch8:                milter.patch
 Patch9:                libtool-tag.patch
@@ -292,19 +291,19 @@ 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         20170718
-%define                zend_module_api         20170718
-%define                zend_extension_api      320170718
+%define                php_api_version         20180731
+%define                zend_module_api         20180731
+%define                zend_extension_api      320180731
 %define                php_pdo_api_version     20170320
 
 # Extension versions
-%define                bz2ver          1.0
+%define                bz2ver          %{version}
 %define                enchantver      %{version}
-%define                fileinfover     1.0.5
-%define                hashver         1.0
-%define                intlver         1.1.0
-%define                jsonver         1.6.0
-%define                pharver         2.0.2
+%define                fileinfover     %{version}
+%define                hashver         %{version}
+%define                intlver         %{version}
+%define                jsonver         1.7.0
+%define                pharver         %{version}
 %define                sqlite3ver      %{version}
 %define                zipver          1.15.4
 %define                phpdbgver       0.5.0
@@ -1926,7 +1925,6 @@ cp -p php.ini-production php.ini
 %patch1 -p1
 %patch3 -p1
 %patch5 -p1
-%patch6 -p1
 %patch7 -p1
 %{?with_milter:%patch8 -p1}
 %patch9 -p1
@@ -1991,7 +1989,7 @@ find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
 #%{__rm} -r ext/gd/libgd
 #%{__rm} -r ext/mbstring/libmbfl
 %{__rm} -r ext/mbstring/oniguruma
-%{__rm} -r ext/pcre/pcrelib
+%{__rm} -r ext/pcre/pcre2lib
 #%{__rm} -r ext/soap/interop
 %{__rm} -r ext/xmlrpc/libxmlrpc
 #%{__rm} -r ext/zip/lib
@@ -2096,20 +2094,22 @@ if [ $API != %{php_pdo_api_version} ]; then
 fi
 
 # Check for some extension version
-ver=$(sed -n '/#define PHP_FILEINFO_VERSION /{s/.* "//;s/".*$//;p}' ext/fileinfo/php_fileinfo.h)
-if test "$ver" != "%{fileinfover}"; then
+ver=$(awk '/#define PHP_FILEINFO_VERSION/ {print $3}' ext/fileinfo/php_fileinfo.h | xargs)
+if test "$ver" != "PHP_VERSION"; then
        : Error: Upstream FILEINFO version is now ${ver}, expecting %{fileinfover}.
        : Update the fileinfover macro and rebuild.
        exit 1
 fi
-ver=$(sed -n '/#define PHP_PHAR_VERSION /{s/.* "//;s/".*$//;p}' ext/phar/php_phar.h)
-if test "$ver" != "%{pharver}"; then
+ver=$(awk '/#define PHP_PHAR_VERSION/ {print $3}' ext/phar/php_phar.h | xargs)
+if test "$ver" != "PHP_VERSION"; then
        : Error: Upstream PHAR version is now ${ver}, expecting %{pharver}.
        : Update the pharver macro and rebuild.
        exit 1
 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)
@@ -2134,8 +2134,8 @@ if test "$ver" != "%{phpdbgver}"; then
        : Update the phpdbgver macro and rebuild.
        exit 1
 fi
-ver=$(sed -rne 's,.*<version>(.+)</version>,\1,p' ext/bz2/package.xml)
-if test "$ver" != "%{bz2ver}"; then
+ver=$(awk '/#define PHP_BZ2_VERSION/ {print $3}' ext/bz2/php_bz2.h | xargs)
+if test "$ver" != "PHP_VERSION"; then
        : Error: Upstream BZIP2 version is now ${ver}, expecting %{bz2ver}.
        : Update the bz2ver macro and rebuild.
        exit 1
@@ -2145,13 +2145,13 @@ if test "$ver" != "PHP_VERSION"; then
        exit 1
 fi
 ver=$(awk '/#define PHP_HASH_VERSION/ {print $3}' ext/hash/php_hash.h | xargs)
-if test "$ver" != "%{hashver}"; then
+if test "$ver" != "PHP_VERSION"; then
        : Error: Upstream HASH version is now ${ver}, expecting %{hashver}.
        : Update the hashver macro and rebuild.
        exit 1
 fi
-ver=$(sed -n '/#define PHP_INTL_VERSION /{s/.* "//;s/".*$//;p}' ext/intl/php_intl.h)
-if test "$ver" != "%{intlver}"; then
+ver=$(awk '/#define PHP_INTL_VERSION/ {print $3}' ext/intl/php_intl.h | xargs)
+if test "$ver" != "PHP_VERSION"; then
        : Error: Upstream Intl version is now ${ver}, expecting %{intlver}.
        : Update the intlver macro and rebuild.
        exit 1
@@ -2946,7 +2946,7 @@ fi
 
 %files devel
 %defattr(644,root,root,755)
-%doc CODING_STANDARDS README.{EXT_SKEL,PARAMETER_PARSING_API,SELF-CONTAINED-EXTENSIONS,STREAMS,SUBMITTING_PATCH,TESTING,TESTING2,UNIX-BUILD-SYSTEM,input_filter}
+%doc CODING_STANDARDS README.{EXT_SKEL,PARAMETER_PARSING_API,SELF-CONTAINED-EXTENSIONS,STREAMS,SUBMITTING_PATCH,TESTING,UNIX-BUILD-SYSTEM,input_filter}
 %attr(755,root,root) %{_bindir}/phpize%{php_suffix}
 %attr(755,root,root) %{_bindir}/php-config%{php_suffix}
 %ghost %{_bindir}/phpize
@@ -3010,8 +3010,7 @@ fi
 %if %{with dom}
 %files dom
 %defattr(644,root,root,755)
-%doc ext/dom/{CREDITS,TODO}
-%doc ext/dom/examples
+%doc ext/dom/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/dom.ini
 %attr(755,root,root) %{php_extensiondir}/dom.so
 %endif
@@ -3019,7 +3018,7 @@ fi
 %if %{with enchant}
 %files enchant
 %defattr(644,root,root,755)
-%doc ext/enchant/{CREDITS,docs/examples}
+%doc ext/enchant/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/enchant.ini
 %attr(755,root,root) %{php_extensiondir}/enchant.so
 %endif
@@ -3043,7 +3042,7 @@ fi
 %if %{with filter}
 %files filter
 %defattr(644,root,root,755)
-%doc ext/filter/{CREDITS,docs/*}
+%doc ext/filter/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/filter.ini
 %attr(755,root,root) %{php_extensiondir}/filter.so
 %endif
@@ -3075,7 +3074,7 @@ fi
 %if %{with gmp}
 %files gmp
 %defattr(644,root,root,755)
-%doc ext/gmp/{CREDITS,README,TODO}
+%doc ext/gmp/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/gmp.ini
 %attr(755,root,root) %{php_extensiondir}/gmp.so
 %endif
@@ -3115,7 +3114,7 @@ fi
 %if %{with intl}
 %files intl
 %defattr(644,root,root,755)
-%doc ext/intl/{CREDITS,TODO}
+%doc ext/intl/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/intl.ini
 %attr(755,root,root) %{php_extensiondir}/intl.so
 %endif
@@ -3139,7 +3138,7 @@ fi
 %if %{with mbstring}
 %files mbstring
 %defattr(644,root,root,755)
-%doc ext/mbstring/{CREDITS,README*}
+%doc ext/mbstring/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mbstring.ini
 %attr(755,root,root) %{php_extensiondir}/mbstring.so
 %endif
@@ -3147,7 +3146,7 @@ fi
 %if %{with mysqli}
 %files mysqli
 %defattr(644,root,root,755)
-%doc ext/mysqli/{CREDITS,TODO}
+%doc ext/mysqli/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mysqli.ini
 %attr(755,root,root) %{php_extensiondir}/mysqli.so
 %endif
@@ -3211,7 +3210,7 @@ fi
 %if %{with pdo}
 %files pdo
 %defattr(644,root,root,755)
-%doc ext/pdo/{CREDITS,README,TODO}
+%doc ext/pdo/{CREDITS,README}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/pdo.ini
 %attr(755,root,root) %{php_extensiondir}/pdo.so
 %endif
@@ -3283,7 +3282,7 @@ fi
 %if %{with phar}
 %files phar
 %defattr(644,root,root,755)
-%doc ext/phar/{CREDITS,TODO}
+%doc ext/phar/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/phar.ini
 %attr(755,root,root) %{php_extensiondir}/phar.so
 %attr(755,root,root) %{_bindir}/phar%{php_suffix}.phar
@@ -3343,7 +3342,6 @@ fi
 %files simplexml
 %defattr(644,root,root,755)
 %doc ext/simplexml/{CREDITS,README}
-%doc ext/simplexml/examples
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/simplexml.ini
 %attr(755,root,root) %{php_extensiondir}/simplexml.so
 
@@ -3357,7 +3355,7 @@ fi
 
 %files soap
 %defattr(644,root,root,755)
-%doc ext/soap/{CREDITS,TODO*}
+%doc ext/soap/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/soap.ini
 %attr(755,root,root) %{php_extensiondir}/soap.so
 
@@ -3377,8 +3375,7 @@ fi
 
 %files spl
 %defattr(644,root,root,755)
-%doc ext/spl/{CREDITS,README,TODO}
-%doc ext/spl/examples
+%doc ext/spl/{CREDITS,README,examples}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/SPL.ini
 %attr(755,root,root) %{php_extensiondir}/spl.so
 
@@ -3426,8 +3423,7 @@ fi
 %if %{with tidy}
 %files tidy
 %defattr(644,root,root,755)
-%doc ext/tidy/{CREDITS,README}
-%doc ext/tidy/examples
+%doc ext/tidy/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/tidy.ini
 %attr(755,root,root) %{php_extensiondir}/tidy.so
 %endif
@@ -3454,8 +3450,7 @@ fi
 
 %files xmlreader
 %defattr(644,root,root,755)
-%doc ext/xmlreader/{CREDITS,README,TODO}
-%doc ext/xmlreader/examples
+%doc ext/xmlreader/{CREDITS,README}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/xmlreader.ini
 %attr(755,root,root) %{php_extensiondir}/xmlreader.so
 
@@ -3469,8 +3464,7 @@ fi
 
 %files xmlwriter
 %defattr(644,root,root,755)
-%doc ext/xmlwriter/{CREDITS,TODO}
-%doc ext/xmlwriter/examples
+%doc ext/xmlwriter/CREDITS
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/xmlwriter.ini
 %attr(755,root,root) %{php_extensiondir}/xmlwriter.so
 
@@ -3484,8 +3478,7 @@ fi
 
 %files zip
 %defattr(644,root,root,755)
-%doc ext/zip/{CREDITS,TODO}
-%doc ext/zip/examples
+%doc ext/zip/{CREDITS,examples}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/zip.ini
 %attr(755,root,root) %{php_extensiondir}/zip.so