From 1d1d67e0b948ef50eb04fd25e616a350c9963529 Mon Sep 17 00:00:00 2001 From: Philip Prindeville Date: Mon, 18 Dec 2017 15:32:37 -0700 Subject: [PATCH] php7: update to 7.2.0 Also drop mcrypt module as it's deprecated. Dropped patches have been accepted upstream or something homologous. Signed-off-by: Philip Prindeville --- lang/php7/Makefile | 15 +-- ...-use-of-the-system-timezone-database.patch | 113 +++++++----------- .../1003-Fix-dl-cross-compiling-issue.patch | 4 +- .../patches/1004-disable-phar-command.patch | 4 +- ...onstraints-in-aarch64-multiply-macro.patch | 29 ----- lang/php7/patches/1006-multiline-syslog.patch | 86 ++++++------- 6 files changed, 95 insertions(+), 156 deletions(-) delete mode 100644 lang/php7/patches/1005-fix-asm-constraints-in-aarch64-multiply-macro.patch diff --git a/lang/php7/Makefile b/lang/php7/Makefile index f50f554044..bc930f094c 100644 --- a/lang/php7/Makefile +++ b/lang/php7/Makefile @@ -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 @@ -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)) diff --git a/lang/php7/patches/0013-Add-support-for-use-of-the-system-timezone-database.patch b/lang/php7/patches/0013-Add-support-for-use-of-the-system-timezone-database.patch index 819ad1e95d..97fd734af9 100644 --- a/lang/php7/patches/0013-Add-support-for-use-of-the-system-timezone-database.patch +++ b/lang/php7/patches/0013-Add-support-for-use-of-the-system-timezone-database.patch @@ -1,11 +1,11 @@ -From: Joe Orton -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 @@ -46,16 +41,8 @@ index 20d7eea..ed7717e 100644 +#include + +#include "php_scandir.h" -+#endif + - #include - - #ifdef HAVE_LOCALE_H -@@ -36,8 +46,12 @@ - #include - #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) diff --git a/lang/php7/patches/1003-Fix-dl-cross-compiling-issue.patch b/lang/php7/patches/1003-Fix-dl-cross-compiling-issue.patch index 22122ec824..5359ab9970 100644 --- a/lang/php7/patches/1003-Fix-dl-cross-compiling-issue.patch +++ b/lang/php7/patches/1003-Fix-dl-cross-compiling-issue.patch @@ -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) diff --git a/lang/php7/patches/1004-disable-phar-command.patch b/lang/php7/patches/1004-disable-phar-command.patch index 19837f53f5..e6162cdfbb 100644 --- a/lang/php7/patches/1004-disable-phar-command.patch +++ b/lang/php7/patches/1004-disable-phar-command.patch @@ -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 index 0afa9512c5..0000000000 --- a/lang/php7/patches/1005-fix-asm-constraints-in-aarch64-multiply-macro.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 6cbb9f4c247c5361b8c165fbb40b4118d5d7c0e5 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -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 - diff --git a/lang/php7/patches/1006-multiline-syslog.patch b/lang/php7/patches/1006-multiline-syslog.patch index 28a53b4aa3..1346481f2c 100644 --- a/lang/php7/patches/1006-multiline-syslog.patch +++ b/lang/php7/patches/1006-multiline-syslog.patch @@ -1,41 +1,43 @@ -commit 4d77af8d7d349b7b9e43082deb47c1469f450115 +commit f11d40ef88f640fe4764d2731d3061472aefe556 Author: Philip Prindeville -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); -- 2.30.2