php7: update to 7.2.0 5301/head
authorPhilip Prindeville <philipp@redfish-solutions.com>
Mon, 18 Dec 2017 22:32:37 +0000 (15:32 -0700)
committerPhilip Prindeville <philipp@redfish-solutions.com>
Sat, 23 Dec 2017 01:26:04 +0000 (18:26 -0700)
Also drop mcrypt module as it's deprecated.

Dropped patches have been accepted upstream or something homologous.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
lang/php7/Makefile
lang/php7/patches/0013-Add-support-for-use-of-the-system-timezone-database.patch
lang/php7/patches/1003-Fix-dl-cross-compiling-issue.patch
lang/php7/patches/1004-disable-phar-command.patch
lang/php7/patches/1005-fix-asm-constraints-in-aarch64-multiply-macro.patch [deleted file]
lang/php7/patches/1006-multiline-syslog.patch

index f50f554044eaac924dfdbeb44ea2bd8458fe566f..bc930f094c3f050fdc93af0080118d00c21ddfd8 100644 (file)
@@ -6,8 +6,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=php
-PKG_VERSION:=7.1.12
-PKG_RELEASE:=3
+PKG_VERSION:=7.2.0
+PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
 
@@ -16,7 +16,7 @@ PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.php.net/distributions/
-PKG_HASH:=a0118850774571b1f2d4e30b4fe7a4b958ca66f07d07d65ebdc789c54ba6eeb3
+PKG_HASH:=87572a6b924670a5d4aac276aaa4a94321936283df391d702c845ffc112db095
 
 PKG_FIXUP:=libtool autoreconf
 PKG_BUILD_PARALLEL:=1
@@ -33,7 +33,7 @@ PHP7_MODULES = \
        iconv imap intl \
        json \
        ldap \
-       mbstring mcrypt mysqli \
+       mbstring mysqli \
        opcache openssl \
        pcntl pdo pdo-mysql pdo-pgsql pdo-sqlite pgsql phar \
        session shmop simplexml snmp soap sockets sqlite3 sysvmsg sysvsem sysvshm \
@@ -289,12 +289,6 @@ else
   CONFIGURE_ARGS+= --disable-mbstring
 endif
 
-ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-mcrypt),)
-  CONFIGURE_ARGS+= --with-mcrypt=shared,"$(STAGING_DIR)/usr"
-else
-  CONFIGURE_ARGS+= --without-mcrypt
-endif
-
 ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-mysqli),)
   CONFIGURE_ARGS+= --with-mysqli=shared,"$(STAGING_DIR)/usr/bin/mysql_config"
 else
@@ -605,7 +599,6 @@ $(eval $(call BuildModule,intl,Internationalization Functions,+PACKAGE_php7-mod-
 $(eval $(call BuildModule,json,JSON))
 $(eval $(call BuildModule,ldap,LDAP,+PACKAGE_php7-mod-ldap:libopenldap +PACKAGE_php7-mod-ldap:libsasl2))
 $(eval $(call BuildModule,mbstring,MBString))
-$(eval $(call BuildModule,mcrypt,Mcrypt,+PACKAGE_php7-mod-mcrypt:libmcrypt +PACKAGE_php7-mod-mcrypt:libltdl))
 $(eval $(call BuildModule,mysqli,MySQL Improved Extension,+PACKAGE_php7-mod-mysqli:libmysqlclient))
 $(eval $(call BuildModule,opcache,OPcache,,,zend))
 $(eval $(call BuildModule,openssl,OpenSSL,+PACKAGE_php7-mod-openssl:libopenssl))
index 819ad1e95d4b61b1b18ead5af2d1e415778c2fea..97fd734af9c73fadba7d59513589f5fadf4740c4 100644 (file)
@@ -1,11 +1,11 @@
-From: Joe Orton <jorton@redhat.com>
-Date: Thu, 20 Oct 2016 11:44:14 +0200
-Subject: Add support for use of the system timezone database
+# 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.
 
 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
@@ -25,18 +25,13 @@ r4: added "System/Localtime" tzname which uses /etc/localtime
 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
----
- ext/date/lib/parse_tz.c | 560 +++++++++++++++++++++++++++++++++++++++++++++++-
- ext/date/lib/timelib.m4 |  13 ++
- 2 files changed, 562 insertions(+), 11 deletions(-)
 
-diff --git a/ext/date/lib/parse_tz.c b/ext/date/lib/parse_tz.c
-index 20d7eea..ed7717e 100644
---- a/ext/date/lib/parse_tz.c
-+++ b/ext/date/lib/parse_tz.c
-@@ -24,6 +24,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>
@@ -46,16 +41,8 @@ index 20d7eea..ed7717e 100644
 +#include <unistd.h>
 +
 +#include "php_scandir.h"
-+#endif
 +
- #include <stdio.h>
- #ifdef HAVE_LOCALE_H
-@@ -36,8 +46,12 @@
- #include <strings.h>
- #endif
-+#ifndef HAVE_SYSTEM_TZDATA
++#else
  #define TIMELIB_SUPPORTS_V2DATA
  #include "timezonedb.h"
 +#endif
@@ -64,7 +51,7 @@ index 20d7eea..ed7717e 100644
  
  #if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__))
  # if defined(__LITTLE_ENDIAN__)
-@@ -59,6 +73,11 @@ static int read_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
+@@ -67,6 +80,11 @@ static int read_php_preamble(const unsig
  {
        uint32_t version;
  
@@ -76,7 +63,7 @@ index 20d7eea..ed7717e 100644
        /* read ID */
        version = (*tzf)[3] - '0';
        *tzf += 4;
-@@ -302,7 +321,429 @@ void timelib_dump_tzinfo(timelib_tzinfo *tz)
+@@ -374,7 +392,429 @@ void timelib_dump_tzinfo(timelib_tzinfo
        }
  }
  
@@ -507,7 +494,7 @@ index 20d7eea..ed7717e 100644
  {
        int left = 0, right = tzdb->index_size - 1;
  #ifdef HAVE_SETLOCALE
-@@ -341,21 +782,88 @@ static int seek_to_tz_position(const unsigned char **tzf, char *timezone, const
+@@ -419,9 +859,48 @@ static int seek_to_tz_position(const uns
        return 0;
  }
  
@@ -555,17 +542,8 @@ index 20d7eea..ed7717e 100644
 +#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;
@@ -596,32 +574,27 @@ index 20d7eea..ed7717e 100644
 +      return (inmem_seek_to_tz_position(&tzf, timezone, tzdb));
  }
  
- static void skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
-@@ -380,24 +888,54 @@ static void read_64bit_header(const unsigned char **tzf, timelib_tzinfo *tz)
- 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) {
@@ -638,34 +611,30 @@ index 20d7eea..ed7717e 100644
 +                              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;
-       }
-diff --git a/ext/date/lib/timelib.m4 b/ext/date/lib/timelib.m4
-index 99bf9fa..4bf7e46 100644
---- a/ext/date/lib/timelib.m4
-+++ b/ext/date/lib/timelib.m4
-@@ -78,3 +78,16 @@ stdlib.h
+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 22122ec824506bc41277c426774c6af6157016c4..5359ab99708ea98a07a6aa1a71d0c690dbd455c7 100644 (file)
@@ -1,5 +1,5 @@
---- a/configure.in
-+++ b/configure.in
+--- a/configure.ac
++++ b/configure.ac
 @@ -453,7 +453,10 @@ PHP_CHECK_FUNC(gethostname, nsl)
  PHP_CHECK_FUNC(gethostbyaddr, nsl)
  PHP_CHECK_FUNC(yp_get_default_domain, nsl)
index 19837f53f5db9612e88a3569c24686ee576959f3..e6162cdfbbc8c22021611491ed0604c811c1c4c2 100644 (file)
@@ -9,8 +9,8 @@
  
    PHP_INSTALL_HEADERS([ext/phar], [php_phar.h])
  
---- a/configure.in     2016-09-20 22:26:38.000000000 +0200
-+++ b/configure.in     2016-09-20 22:42:30.380101556 +0200
+--- a/configure.ac     2016-09-20 22:26:38.000000000 +0200
++++ b/configure.ac     2016-09-20 22:42:30.380101556 +0200
 @@ -1448,13 +1448,13 @@
  INLINE_CFLAGS="$INLINE_CFLAGS $standard_libtool_flag"
  CXXFLAGS="$CXXFLAGS $standard_libtool_flag \$(PROF_FLAGS)"
diff --git a/lang/php7/patches/1005-fix-asm-constraints-in-aarch64-multiply-macro.patch b/lang/php7/patches/1005-fix-asm-constraints-in-aarch64-multiply-macro.patch
deleted file mode 100644 (file)
index 0afa951..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From 6cbb9f4c247c5361b8c165fbb40b4118d5d7c0e5 Mon Sep 17 00:00:00 2001
-From: Andreas Schwab <schwab@linux-m68k.org>
-Date: Mon, 25 Apr 2016 11:59:14 +0200
-Subject: [PATCH] Fix asm constraints in aarch64 multiply macro
-
-All operands must be register operands and the output operands are early
-clobbered.
----
- Zend/zend_multiply.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Zend/zend_multiply.h b/Zend/zend_multiply.h
-index dfd21f7..651dd43 100644
---- a/Zend/zend_multiply.h
-+++ b/Zend/zend_multiply.h
-@@ -53,8 +53,8 @@
-       __asm__("mul %0, %2, %3\n"                                                                              \
-               "smulh %1, %2, %3\n"                                                                            \
-               "sub %1, %1, %0, asr #63\n"                                                                     \
--                      : "=X"(__tmpvar), "=X"(usedval)                                                 \
--                      : "X"(a), "X"(b));                                                                              \
-+                      : "=&r"(__tmpvar), "=&r"(usedval)                                               \
-+                      : "r"(a), "r"(b));                                                                              \
-       if (usedval) (dval) = (double) (a) * (double) (b);                              \
-       else (lval) = __tmpvar;                                                                                 \
- } while (0)
--- 
-2.8.0
-
index 28a53b4aa373c615880e0bcdc720d0cff5222e2e..1346481f2cd7f3bda32d9a919153bf8c57dd5542 100644 (file)
@@ -1,41 +1,43 @@
-commit 4d77af8d7d349b7b9e43082deb47c1469f450115
+commit f11d40ef88f640fe4764d2731d3061472aefe556
 Author: Philip Prindeville <philipp@redfish-solutions.com>
-Date:   Fri Aug 18 12:05:44 2017 -0600
+Date:   Wed Aug 9 20:55:25 2017 -0600
 
-    Backport of fix for Issue #74860
+    Turn php_syslog() into wrapper for syslog and split lines
 
-diff --git a/configure.in b/configure.in
-index 9acf42b..559a274 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1470,7 +1470,7 @@ PHP_ADD_SOURCES(main, main.c snprintf.c spprintf.c php_sprintf.c \
+diff --git a/Zend/zend_smart_string.h b/Zend/zend_smart_string.h
+index 2282202..12d755e 100644
+--- a/Zend/zend_smart_string.h
++++ b/Zend/zend_smart_string.h
+@@ -136,6 +136,10 @@ static zend_always_inline void smart_string_setl(smart_string *dest, char *src,
+       dest->c = src;
+ }
++static zend_always_inline void smart_string_reset(smart_string *str) {
++      str->len = 0;
++}
++
+ #endif
+ /*
+diff --git a/configure.ac b/configure.ac
+index cb95d86..a63354f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1443,7 +1443,7 @@ PHP_ADD_SOURCES(main, main.c snprintf.c spprintf.c php_sprintf.c \
         php_ini.c SAPI.c rfc1867.c php_content_types.c strlcpy.c \
-        strlcat.c mergesort.c reentrancy.c php_variables.c php_ticks.c \
+        strlcat.c explicit_bzero.c mergesort.c reentrancy.c php_variables.c php_ticks.c \
         network.c php_open_temporary_file.c \
 -       output.c getopt.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
 +       output.c getopt.c php_syslog.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
  
  PHP_ADD_SOURCES_X(main, fastcgi.c, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1, PHP_FASTCGI_OBJS, no)
  
-diff --git a/ext/standard/php_smart_string.h b/ext/standard/php_smart_string.h
-index adb78c0..8d90688 100644
---- a/ext/standard/php_smart_string.h
-+++ b/ext/standard/php_smart_string.h
-@@ -146,4 +146,8 @@
- #define smart_string_sets(dest, src) \
-       smart_string_setl((dest), (src), strlen(src));
-+#define smart_string_reset(dest) do {         \
-+      (dest)->len = 0;                        \
-+} while (0)
-+
- #endif
 diff --git a/main/php_syslog.c b/main/php_syslog.c
 new file mode 100644
-index 0000000..43d1f56
+index 0000000..c351951
 --- /dev/null
 +++ b/main/php_syslog.c
-@@ -0,0 +1,80 @@
+@@ -0,0 +1,81 @@
 +/*
 +   +----------------------------------------------------------------------+
 +   | PHP Version 7                                                        |
@@ -64,7 +66,7 @@ index 0000000..43d1f56
 +#include "php_syslog.h"
 +
 +#include "zend.h"
-+#include "ext/standard/php_smart_string.h"
++#include "zend_smart_string.h"
 +
 +/*
 + * The SCO OpenServer 5 Development System (not the UDK)
@@ -79,15 +81,16 @@ index 0000000..43d1f56
 +{
 +      const char *ptr;
 +      unsigned char c;
-+      char *message = NULL;
++      smart_string fbuf = {0};
 +      smart_string sbuf = {0};
 +      va_list args;
 +
 +      va_start(args, format);
-+      vspprintf(&message, 0, format, args);
++      zend_printf_to_smart_string(&fbuf, format, args);
++      smart_string_0(&fbuf);
 +      va_end(args);
 +
-+      for (ptr = message; ; ++ptr) {
++      for (ptr = fbuf.c; ; ++ptr) {
 +              c = *ptr;
 +              if (c == '\0') {
 +                      syslog(priority, "%.*s", (int)sbuf.len, sbuf.c);
@@ -102,7 +105,7 @@ index 0000000..43d1f56
 +              }
 +      }
 +
-+      efree(message);
++      smart_string_free(&fbuf);
 +      smart_string_free(&sbuf);
 +}
 +
@@ -117,7 +120,7 @@ index 0000000..43d1f56
 + * vim<600: sw=4 ts=4
 + */
 diff --git a/main/php_syslog.h b/main/php_syslog.h
-index 33f52a3..a09f98c 100644
+index be68cc4..4c4ca4e 100644
 --- a/main/php_syslog.h
 +++ b/main/php_syslog.h
 @@ -21,6 +21,8 @@
@@ -129,7 +132,7 @@ index 33f52a3..a09f98c 100644
  #ifdef PHP_WIN32
  #include "win32/syslog.h"
  #else
-@@ -30,23 +32,8 @@
+@@ -30,26 +32,12 @@
  #endif
  #endif
  
@@ -145,22 +148,25 @@ index 33f52a3..a09f98c 100644
 -#endif
 -
 -#undef syslog
--
--#endif
--
--#ifndef php_syslog
--#define php_syslog syslog
--#endif
 +BEGIN_EXTERN_C()
 +PHPAPI void php_syslog(int, const char *format, ...);
 +END_EXTERN_C()
  
  #endif
+-#ifndef php_syslog
+-#define php_syslog syslog
+-#endif
+-
+-#endif
+ /*
+  * Local variables:
+  * tab-width: 4
 diff --git a/win32/build/config.w32 b/win32/build/config.w32
-index 1269c6e..f766e53 100644
+index 6cbb18b..71cf491 100644
 --- a/win32/build/config.w32
 +++ b/win32/build/config.w32
-@@ -237,7 +237,8 @@ ADD_FLAG("CFLAGS_BD_ZEND", "/D ZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
+@@ -244,7 +244,8 @@ ADD_FLAG("CFLAGS_BD_ZEND", "/D ZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
  ADD_SOURCES("main", "main.c snprintf.c spprintf.c getopt.c fopen_wrappers.c \
        php_scandir.c php_ini.c SAPI.c rfc1867.c php_content_types.c strlcpy.c \
        strlcat.c mergesort.c reentrancy.c php_variables.c php_ticks.c network.c \
@@ -168,5 +174,5 @@ index 1269c6e..f766e53 100644
 +      php_open_temporary_file.c output.c internal_functions.c php_sprintf.c \
 +      php_syslog.c");
  ADD_FLAG("CFLAGS_BD_MAIN", "/D ZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
- ADD_SOURCES("win32", "inet.c fnmatch.c sockets.c");
  
+ AC_DEFINE('HAVE_STRNLEN', 1);