From e68ca6302182081b1055ddc141c005712da42a7b Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 2 Oct 2019 09:55:02 +0200 Subject: [PATCH] update to 7.4.0RC3 bump API version to 20190902 drop wddx, recode and interbase extensions add ffi extension drop dependency on libargon2, use libsodium implementation run test suite using 4 concurrent workers cleanup unused conditional add upstream patch to fix aarch64 build --- .gitignore | 1 + 10-opcache.ini | 32 +- 20-ffi.ini | 8 + php-5.3.0-recode.patch | 17 - php-7.2.4-dlopen.patch | 30 -- ...5.6.3-embed.patch => php-7.4.0-embed.patch | 6 +- ...7.1.7-httpd.patch => php-7.4.0-httpd.patch | 5 +- ...2.3-ldap_r.patch => php-7.4.0-ldap_r.patch | 12 +- ...3.0-phpize.patch => php-7.4.0-phpize.patch | 10 +- php-aarch64.patch | 88 +++++ php.ini | 77 ++-- php.spec | 330 +++++++----------- sources | 4 +- 13 files changed, 293 insertions(+), 327 deletions(-) create mode 100644 20-ffi.ini delete mode 100644 php-5.3.0-recode.patch delete mode 100644 php-7.2.4-dlopen.patch rename php-5.6.3-embed.patch => php-7.4.0-embed.patch (87%) rename php-7.1.7-httpd.patch => php-7.4.0-httpd.patch (80%) rename php-7.2.3-ldap_r.patch => php-7.4.0-ldap_r.patch (69%) rename php-7.3.0-phpize.patch => php-7.4.0-phpize.patch (62%) create mode 100644 php-aarch64.patch diff --git a/.gitignore b/.gitignore index 2f826bb..10ab3eb 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ php-7.*.xz /php-7.3.9.tar.xz.asc /php-7.3.10RC1.tar.xz.asc /php-7.3.10.tar.xz.asc +/php-7.4.0RC3.tar.xz.asc diff --git a/10-opcache.ini b/10-opcache.ini index 57a46b8..db2ac5e 100644 --- a/10-opcache.ini +++ b/10-opcache.ini @@ -8,14 +8,14 @@ opcache.enable=1 ;opcache.enable_cli=0 ; The OPcache shared memory storage size. -opcache.memory_consumption=128 +;opcache.memory_consumption=128 ; The amount of memory for interned strings in Mbytes. -opcache.interned_strings_buffer=8 +;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=4000 +;opcache.max_accelerated_files=10000 ; The maximum percentage of "wasted" memory until a restart is scheduled. ;opcache.max_wasted_percentage=5 @@ -109,6 +109,10 @@ opcache.blacklist_filename=/etc/php.d/opcache*.blacklist ; 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=0 + ; Validate cached file permissions. ; Leads OPcache to check file readability on each access to cached file. ; This directive should be enabled in shared hosting environment, when few @@ -121,10 +125,24 @@ opcache.blacklist_filename=/etc/php.d/opcache*.blacklist ; different "chroot" environments. ;opcache.validate_root=0 -; 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=0 - ; If specified, it produces opcode dumps for debugging different stages of ; optimizations. ;opcache.opt_debug_level=0 + +; Specifies a PHP script that is going to be compiled and executed at server +; start-up. +; http://php.net/opcache.preload +;opcache.preload= + +; Preloading code as root is not allowed for security reasons. This directive +; facilitates to let the preloading to be run as another user. +; http://php.net/opcache.preload_user +;opcache.preload_user= + +; Prevents caching files that are less than this number of seconds old. It +; protects from caching of incompletely updated files. In case all file updates +; on your site are atomic, you may increase performance by setting it to "0". +;opcache.file_update_protection=2 + +; Absolute path used to store shared lockfiles (for *nix only). +;opcache.lockfile_path=/tmp diff --git a/20-ffi.ini b/20-ffi.ini new file mode 100644 index 0000000..751cdcb --- /dev/null +++ b/20-ffi.ini @@ -0,0 +1,8 @@ +; Enable ffi extension module +extension=ffi + +; FFI API restriction. Possibe values: +; "preload" - enabled in CLI scripts and preloaded files (default) +; "false" - always disabled +; "true" - always enabled +;ffi.enable=preload diff --git a/php-5.3.0-recode.patch b/php-5.3.0-recode.patch deleted file mode 100644 index 86f75a5..0000000 --- a/php-5.3.0-recode.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -up php-5.3.0beta1/ext/recode/config9.m4.recode php-5.3.0beta1/ext/recode/config9.m4 ---- php-5.3.0beta1/ext/recode/config9.m4.recode 2008-12-02 00:30:21.000000000 +0100 -+++ php-5.3.0beta1/ext/recode/config9.m4 2009-02-28 09:46:50.000000000 +0100 -@@ -4,13 +4,6 @@ dnl - - dnl Check for extensions with which Recode can not work - if test "$PHP_RECODE" != "no"; then -- test "$PHP_IMAP" != "no" && recode_conflict="$recode_conflict imap" -- -- if test -n "$MYSQL_LIBNAME"; then -- PHP_CHECK_LIBRARY($MYSQL_LIBNAME, hash_insert, [ -- recode_conflict="$recode_conflict mysql" -- ]) -- fi - - if test -n "$recode_conflict"; then - AC_MSG_ERROR([recode extension can not be configured together with:$recode_conflict]) diff --git a/php-7.2.4-dlopen.patch b/php-7.2.4-dlopen.patch deleted file mode 100644 index 3c76474..0000000 --- a/php-7.2.4-dlopen.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -up php-7.2.4RC1/sapi/litespeed/lsapilib.c.dlopen php-7.2.4RC1/sapi/litespeed/lsapilib.c ---- php-7.2.4RC1/sapi/litespeed/lsapilib.c.dlopen 2018-03-13 12:40:25.330885880 +0100 -+++ php-7.2.4RC1/sapi/litespeed/lsapilib.c 2018-03-13 12:41:35.797251042 +0100 -@@ -755,7 +755,7 @@ static int (*fp_lve_leave)(struct liblve - static int (*fp_lve_jail)( struct passwd *, char *) = NULL; - static int lsapi_load_lve_lib(void) - { -- s_liblve = dlopen("liblve.so.0", RTLD_LAZY); -+ s_liblve = dlopen("liblve.so.0", RTLD_NOW); - if (s_liblve) - { - fp_lve_is_available = dlsym(s_liblve, "lve_is_available"); -diff -up php-7.2.4RC1/Zend/zend_portability.h.dlopen php-7.2.4RC1/Zend/zend_portability.h ---- php-7.2.4RC1/Zend/zend_portability.h.dlopen 2018-03-13 12:33:38.000000000 +0100 -+++ php-7.2.4RC1/Zend/zend_portability.h 2018-03-13 12:40:25.330885880 +0100 -@@ -144,11 +144,11 @@ - # endif - - # if defined(RTLD_GROUP) && defined(RTLD_WORLD) && defined(RTLD_PARENT) --# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL | RTLD_GROUP | RTLD_WORLD | RTLD_PARENT) -+# define DL_LOAD(libname) dlopen(libname, RTLD_NOW | RTLD_GLOBAL | RTLD_GROUP | RTLD_WORLD | RTLD_PARENT) - # elif defined(RTLD_DEEPBIND) && !defined(__SANITIZE_ADDRESS__) --# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL | RTLD_DEEPBIND) -+# define DL_LOAD(libname) dlopen(libname, RTLD_NOW | RTLD_GLOBAL | RTLD_DEEPBIND) - # else --# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL) -+# define DL_LOAD(libname) dlopen(libname, RTLD_NOW | RTLD_GLOBAL) - # endif - # define DL_UNLOAD dlclose - # if defined(DLSYM_NEEDS_UNDERSCORE) diff --git a/php-5.6.3-embed.patch b/php-7.4.0-embed.patch similarity index 87% rename from php-5.6.3-embed.patch rename to php-7.4.0-embed.patch index d9c04f6..1bfd1da 100644 --- a/php-5.6.3-embed.patch +++ b/php-7.4.0-embed.patch @@ -1,6 +1,6 @@ --- php-5.6.3/sapi/embed/config.m4.embed +++ php-5.6.3/sapi/embed/config.m4 -@@ -12,7 +12,8 @@ if test "$PHP_EMBED" != "no"; then +@@ -11,7 +11,8 @@ if test "$PHP_EMBED" != "no"; then case "$PHP_EMBED" in yes|shared) PHP_EMBED_TYPE=shared @@ -19,6 +19,6 @@ diff -up php-5.5.30/scripts/php-config.in.old php-5.5.30/scripts/php-config.in configure_options="@CONFIGURE_OPTIONS@" -php_sapis="@PHP_INSTALLED_SAPIS@" +php_sapis="apache2handler embed fpm @PHP_INSTALLED_SAPIS@" + ini_dir="@EXPANDED_PHP_CONFIG_FILE_SCAN_DIR@" + ini_path="@EXPANDED_PHP_CONFIG_FILE_PATH@" - # Set php_cli_binary and php_cgi_binary if available - for sapi in $php_sapis; do diff --git a/php-7.1.7-httpd.patch b/php-7.4.0-httpd.patch similarity index 80% rename from php-7.1.7-httpd.patch rename to php-7.4.0-httpd.patch index acb3d2c..34f7c8a 100644 --- a/php-7.1.7-httpd.patch +++ b/php-7.4.0-httpd.patch @@ -5,10 +5,9 @@ mod_php is build twice - as ZTS using --enable-maintainer-zts diff --git a/sapi/apache2handler/config.m4 b/sapi/apache2handler/config.m4 -index 2e64b21..ec4799f 100644 --- a/sapi/apache2handler/config.m4 +++ b/sapi/apache2handler/config.m4 -@@ -116,17 +116,6 @@ if test "$PHP_APXS2" != "no"; then +@@ -105,17 +105,6 @@ if test "$PHP_APXS2" != "no"; then ;; esac @@ -18,7 +17,7 @@ index 2e64b21..ec4799f 100644 - PHP_BUILD_THREAD_SAFE - fi - else -- APACHE_THREADED_MPM=`$APXS_HTTPD -V | grep 'threaded:.*yes'` +- APACHE_THREADED_MPM=`$APXS_HTTPD -V 2>/dev/null | grep 'threaded:.*yes'` - if test -n "$APACHE_THREADED_MPM"; then - PHP_BUILD_THREAD_SAFE - fi diff --git a/php-7.2.3-ldap_r.patch b/php-7.4.0-ldap_r.patch similarity index 69% rename from php-7.2.3-ldap_r.patch rename to php-7.4.0-ldap_r.patch index 5e947cf..13566b4 100644 --- a/php-7.2.3-ldap_r.patch +++ b/php-7.4.0-ldap_r.patch @@ -1,12 +1,12 @@ Use -lldap_r by default. -diff -up php-7.2.3RC1/ext/ldap/config.m4.ldap_r php-7.2.3RC1/ext/ldap/config.m4 ---- php-7.2.3RC1/ext/ldap/config.m4.ldap_r 2018-02-14 06:05:11.553142812 +0100 -+++ php-7.2.3RC1/ext/ldap/config.m4 2018-02-14 06:07:31.179816122 +0100 -@@ -119,7 +119,11 @@ if test "$PHP_LDAP" != "no"; then - - MACHINE_INCLUDES=$($CC -dumpmachine) +diff -up php-7.4.0RC2/ext/ldap/config.m4.ldap_r php-7.4.0RC2/ext/ldap/config.m4 +--- php-7.4.0RC2/ext/ldap/config.m4.ldap_r 2019-09-17 10:21:24.769200812 +0200 ++++ php-7.4.0RC2/ext/ldap/config.m4 2019-09-17 10:21:30.658181771 +0200 +@@ -68,7 +68,11 @@ if test "$PHP_LDAP" != "no"; then + dnl -pc removal is a hack for clang + MACHINE_INCLUDES=$($CC -dumpmachine | $SED 's/-pc//') - if test -f $LDAP_LIBDIR/liblber.a || test -f $LDAP_LIBDIR/liblber.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.a || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/liblber.$SHLIB_SUFFIX_NAME; then + if test -f $LDAP_LIBDIR/libldap_r.$SHLIB_SUFFIX_NAME; then diff --git a/php-7.3.0-phpize.patch b/php-7.4.0-phpize.patch similarity index 62% rename from php-7.3.0-phpize.patch rename to php-7.4.0-phpize.patch index 0114617..fb99f3e 100644 --- a/php-7.3.0-phpize.patch +++ b/php-7.4.0-phpize.patch @@ -1,7 +1,7 @@ -diff -up php-7.3.0RC4/scripts/phpize.in.headers php-7.3.0RC4/scripts/phpize.in ---- php-7.3.0RC4/scripts/phpize.in.headers 2018-10-23 11:32:20.000000000 +0200 -+++ php-7.3.0RC4/scripts/phpize.in 2018-10-23 13:35:55.382870481 +0200 -@@ -162,6 +162,15 @@ phpize_autotools() +diff -up ./scripts/phpize.in.headers ./scripts/phpize.in +--- ./scripts/phpize.in.headers 2019-07-23 10:05:11.000000000 +0200 ++++ ./scripts/phpize.in 2019-07-23 10:18:13.648098089 +0200 +@@ -165,6 +165,15 @@ phpize_autotools() $PHP_AUTOHEADER || exit 1 } @@ -17,7 +17,7 @@ diff -up php-7.3.0RC4/scripts/phpize.in.headers php-7.3.0RC4/scripts/phpize.in # Main script case "$1" in -@@ -180,12 +189,15 @@ case "$1" in +@@ -183,12 +192,15 @@ case "$1" in # Version --version|-v) diff --git a/php-aarch64.patch b/php-aarch64.patch new file mode 100644 index 0000000..093597a --- /dev/null +++ b/php-aarch64.patch @@ -0,0 +1,88 @@ +From d81eb77b4aaf579c151f7d16eef807838fcef9cc Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Wed, 2 Oct 2019 14:41:02 +0200 +Subject: [PATCH] Fix AArch64 build + +--- + ext/standard/crc32.c | 49 ++++++++++++++++++++++++++++--------------------- + 1 file changed, 28 insertions(+), 21 deletions(-) + +diff --git a/ext/standard/crc32.c b/ext/standard/crc32.c +index 904ea25ff79..853c95ef54f 100644 +--- a/ext/standard/crc32.c ++++ b/ext/standard/crc32.c +@@ -21,7 +21,6 @@ + #include "crc32.h" + + #if defined(__aarch64__) +-# pragma GCC target ("+nothing+crc") + # include + # if defined(__linux__) + # include +@@ -44,6 +43,31 @@ static inline int has_crc32_insn() { + return res; + # endif + } ++ ++# pragma GCC push_options ++# pragma GCC target ("+nothing+crc") ++static uint32_t crc32_aarch64(uint32_t crc, char *p, size_t nr) { ++ while (nr >= sizeof(uint64_t)) { ++ crc = __crc32d(crc, *(uint64_t *)p); ++ p += sizeof(uint64_t); ++ nr -= sizeof(uint64_t); ++ } ++ if (nr >= sizeof(int32_t)) { ++ crc = __crc32w(crc, *(uint32_t *)p); ++ p += sizeof(uint32_t); ++ nr -= sizeof(uint32_t); ++ } ++ if (nr >= sizeof(int16_t)) { ++ crc = __crc32h(crc, *(uint16_t *)p); ++ p += sizeof(uint16_t); ++ nr -= sizeof(uint16_t); ++ } ++ if (nr) { ++ crc = __crc32b(crc, *p); ++ } ++ return crc; ++} ++# pragma GCC pop_options + #endif + + /* {{{ proto string crc32(string str) +@@ -63,28 +87,11 @@ PHP_NAMED_FUNCTION(php_if_crc32) + + #if defined(__aarch64__) + if (has_crc32_insn()) { +- while(nr >= sizeof(uint64_t)) { +- crc = __crc32d(crc, *(uint64_t *)p); +- p += sizeof(uint64_t); +- nr -= sizeof(uint64_t); +- } +- if (nr >= sizeof(int32_t)) { +- crc = __crc32w(crc, *(uint32_t *)p); +- p += sizeof(uint32_t); +- nr -= sizeof(uint32_t); +- } +- if (nr >= sizeof(int16_t)) { +- crc = __crc32h(crc, *(uint16_t *)p); +- p += sizeof(uint16_t); +- nr -= sizeof(uint16_t); +- } +- if (nr) { +- crc = __crc32b(crc, *p); +- p += sizeof(uint8_t); +- nr -= sizeof(uint8_t); +- } ++ crc = crc32_aarch64(crc, p, nr); ++ RETVAL_LONG(crc^0xFFFFFFFF); + } + #endif ++ + for (; nr--; ++p) { + crc = ((crc >> 8) & 0x00FFFFFF) ^ crc32tab[(crc ^ (*p)) & 0xFF ]; + } +-- +2.11.0 + diff --git a/php.ini b/php.ini index d52aeaa..e7db839 100644 --- a/php.ini +++ b/php.ini @@ -108,11 +108,6 @@ ; Development Value: E_ALL ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; html_errors -; Default Value: On -; Development Value: On -; Production value: On - ; log_errors ; Default Value: Off ; Development Value: On @@ -153,11 +148,6 @@ ; Development Value: Off ; Production Value: Off -; track_errors -; Default Value: Off -; Development Value: On -; Production Value: Off - ; variables_order ; Default Value: "EGPCS" ; Development Value: "GPCS" @@ -364,6 +354,12 @@ zend.enable_gc = On ; Default: "" ;zend.script_encoding = +; Allows to include or exclude arguments from stack traces generated for exceptions +; Default: Off +; In production, it is recommended to turn this setting on to prohibit the output +; of sensitive information in stack traces +zend.exception_ignore_args = On + ;;;;;;;;;;;;;;;;; ; Miscellaneous ; ;;;;;;;;;;;;;;;;; @@ -516,7 +512,7 @@ ignore_repeated_errors = Off ignore_repeated_source = Off ; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This has only effect in a debug compile, and if +; stdout or in the log). This is only effective in a debug compile, and if ; error reporting includes E_WARNING in the allowed list ; http://php.net/report-memleaks report_memleaks = On @@ -545,11 +541,8 @@ report_memleaks = On ; error message as HTML for easier reading. This directive controls whether ; the error message is formatted as HTML or not. ; Note: This directive is hardcoded to Off for the CLI SAPI -; Default Value: On -; Development Value: On -; Production value: On ; http://php.net/html-errors -html_errors = On +;html_errors = On ; If html_errors is set to On *and* docref_root is not empty, then PHP ; produces clickable error messages that direct to a page describing the error @@ -603,6 +596,7 @@ html_errors = On ; ascii (all printable ASCII characters and NL) ; no-ctrl (all characters except control characters) ; all (all characters) +; raw (like "all", but messages are not split at newlines) ; http://php.net/syslog.filter ;syslog.filter = ascii @@ -673,7 +667,7 @@ register_argc_argv = Off ; first used (Just In Time) instead of when the script starts. If these ; variables are not used within a script, having this directive on will result ; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any affect. +; for this directive to have any effect. ; http://php.net/auto-globals-jit auto_globals_jit = On @@ -1084,37 +1078,6 @@ odbc.defaultlrl = 4096 ; http://php.net/odbc.defaultbinmode odbc.defaultbinmode = 1 -[Interbase] -; Allow or prevent persistent links. -ibase.allow_persistent = 1 - -; Maximum number of persistent links. -1 means no limit. -ibase.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -ibase.max_links = -1 - -; Default database name for ibase_connect(). -;ibase.default_db = - -; Default username for ibase_connect(). -;ibase.default_user = - -; Default password for ibase_connect(). -;ibase.default_password = - -; Default charset for ibase_connect(). -;ibase.default_charset = - -; Default timestamp format. -ibase.timestampformat = "%Y-%m-%d %H:%M:%S" - -; Default date format. -ibase.dateformat = "%Y-%m-%d" - -; Default time format. -ibase.timeformat = "%H:%M:%S" - [MySQLi] ; Maximum number of persistent links. -1 means no limit. @@ -1145,11 +1108,11 @@ mysqli.default_port = 3306 ; http://php.net/mysqli.default-socket mysqli.default_socket = -; Default host for mysql_connect() (doesn't apply in safe mode). +; Default host for mysqli_connect() (doesn't apply in safe mode). ; http://php.net/mysqli.default-host mysqli.default_host = -; Default user for mysql_connect() (doesn't apply in safe mode). +; Default user for mysqli_connect() (doesn't apply in safe mode). ; http://php.net/mysqli.default-user mysqli.default_user = @@ -1198,6 +1161,9 @@ mysqlnd.collect_memory_statistics = Off ; key. ;mysqlnd.sha256_server_public_key = +[OCI8] +; see /etc/php.d/20-oci8.ini + [PostgreSQL] ; Allow or prevent persistent links. ; http://php.net/pgsql.allow-persistent @@ -1597,6 +1563,11 @@ zend.assertions = -1 ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) ;mbstring.http_output_conv_mimetype= +; This directive specifies maximum stack depth for mbstring regular expressions. It is similar +; to the pcre.recursion_limit for PCRE. +; Default: 100000 +;mbstring.regex_stack_limit=100000 + [gd] ; Tell the jpeg decode to ignore warnings and try to create ; a gd image. The warning will then be displayed as notices @@ -1671,6 +1642,9 @@ ldap.max_links = -1 [dba] ;dba.default_handler= +[opcache] +; see /etc/php.d/10-opcache.ini + [curl] ; A default value for the CURLOPT_CAINFO option. This is required to be an ; absolute path. @@ -1694,6 +1668,5 @@ ldap.max_links = -1 ; SSL stream context option. ;openssl.capath= -; Local Variables: -; tab-width: 4 -; End: +[ffi] +; see /etc/php.d/20-ffi.ini diff --git a/php.spec b/php.spec index 38b622c..c2f8765 100644 --- a/php.spec +++ b/php.spec @@ -7,10 +7,9 @@ # # API/ABI check -%global apiver 20180731 -%global zendver 20180731 +%global apiver 20190902 +%global zendver 20190902 %global pdover 20170320 -%global jsonver 1.7.0 # we don't want -z defs linker flag %undefine _strict_symbol_defs_build @@ -19,7 +18,7 @@ %global _hardened_build 1 # version used for php embedded library soname -%global embed_version 7.3 +%global embed_version 7.4 %global mysql_sock %(mysql_config --socket 2>/dev/null || echo /var/lib/mysql/mysql.sock) @@ -34,12 +33,7 @@ # needed at srpm build time, when httpd-devel not yet installed %{!?_httpd_mmn: %{expand: %%global _httpd_mmn %%(cat %{_includedir}/httpd/.mmn 2>/dev/null || echo 0-0)}} -%global with_dtrace 1 -%global with_libgd 1 -%global with_zip 0 -%global with_libzip 0 %if 0%{?fedora} -%global with_argon2 1 %global with_zts 1 %global with_firebird 1 %global with_imap 1 @@ -48,7 +42,6 @@ %global with_pspell 1 %global with_lmdb 1 %else -%global with_argon2 0 %global with_zts 0 %global with_firebird 0 %global with_imap 0 @@ -58,8 +51,8 @@ %global with_lmdb 0 %endif -%global upver 7.3.10 -#global rcver RC1 +%global upver 7.4.0 +%global rcver RC3 Summary: PHP scripting language for creating dynamic web sites Name: php @@ -93,27 +86,28 @@ Source21: https://www.php.net/distributions/php-%{upver}%{?rcver}.tar.xz.asc # Configuration files for some extensions Source50: 10-opcache.ini Source51: opcache-default.blacklist +Source53: 20-ffi.ini # Build fixes -Patch1: php-7.1.7-httpd.patch +Patch1: php-7.4.0-httpd.patch Patch5: php-7.2.0-includedir.patch -Patch6: php-5.6.3-embed.patch -Patch7: php-5.3.0-recode.patch +Patch6: php-7.4.0-embed.patch Patch8: php-7.2.0-libdb.patch # Functional changes -Patch40: php-7.2.4-dlopen.patch Patch42: php-7.3.3-systzdata-v18.patch # See http://bugs.php.net/53436 -Patch43: php-7.3.0-phpize.patch +Patch43: php-7.4.0-phpize.patch # Use -lldap_r for OpenLDAP -Patch45: php-7.2.3-ldap_r.patch +Patch45: php-7.4.0-ldap_r.patch # Make php_config.h constant across builds Patch46: php-7.2.4-fixheader.patch # drop "Configure command" from phpinfo output Patch47: php-5.6.3-phpinfo.patch # Upstream fixes (100+) +# fix for https://bugs.php.net/78622 +Patch100: php-aarch64.patch # Security fixes (200+) @@ -123,16 +117,22 @@ Patch300: php-5.6.3-datetests.patch BuildRequires: gnupg2 -BuildRequires: bzip2-devel, curl-devel >= 7.9 -BuildRequires: httpd-devel >= 2.0.46-1, pam-devel +BuildRequires: bzip2-devel +BuildRequires: pkgconfig(libcurl) >= 7.15.5 +BuildRequires: httpd-devel >= 2.0.46-1 +BuildRequires: pam-devel # to ensure we are using httpd with filesystem feature (see #1081453) BuildRequires: httpd-filesystem # to ensure we are using nginx with filesystem feature (see #1142298) BuildRequires: nginx-filesystem -BuildRequires: libstdc++-devel, openssl-devel -BuildRequires: sqlite-devel >= 3.6.0 -BuildRequires: zlib-devel, smtpdaemon, libedit-devel -BuildRequires: pcre2-devel >= 10.30 +BuildRequires: libstdc++-devel +# no pkgconfig to avoid compat-openssl10 +BuildRequires: openssl-devel >= 1.0.1 +BuildRequires: pkgconfig(sqlite3) >= 3.7.4 +BuildRequires: pkgconfig(zlib) >= 1.2.0.4 +BuildRequires: smtpdaemon +BuildRequires: pkgconfig(libedit) +BuildRequires: pkgconfig(libpcre2-8) >= 10.30 BuildRequires: bzip2 BuildRequires: perl-interpreter BuildRequires: autoconf @@ -141,15 +141,8 @@ BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: libtool-ltdl-devel -%if %{with_libzip} BuildRequires: libzip-devel >= 0.11 -%endif -%if %{with_dtrace} BuildRequires: systemtap-sdt-devel -%endif -%if %{with_argon2} -BuildRequires: libargon2-devel -%endif # used for tests BuildRequires: %{_bindir}/ps @@ -170,6 +163,9 @@ Recommends: php-json%{?_isa} = %{version}-%{release} Recommends: php-mbstring%{?_isa} = %{version}-%{release} Recommends: php-opcache%{?_isa} = %{version}-%{release} Recommends: php-pdo%{?_isa} = %{version}-%{release} +%if %{with_sodium} +Recommends: php-sodium%{?_isa} = %{version}-%{release} +%endif Recommends: php-xml%{?_isa} = %{version}-%{release} # To ensure correct /var/lib/php/session ownership: Requires(pre): httpd-filesystem @@ -213,9 +209,9 @@ The php-dbg package contains the interactive PHP debugger. %package fpm Summary: PHP FastCGI Process Manager BuildRequires: libacl-devel +BuildRequires: pkgconfig(libsystemd) >= 209 Requires: php-common%{?_isa} = %{version}-%{release} Requires(pre): /usr/sbin/useradd -BuildRequires: systemd-devel %{?systemd_requires} # To ensure correct /var/lib/php/session ownership: Requires(pre): httpd-filesystem @@ -269,10 +265,6 @@ Provides: php-sockets, php-sockets%{?_isa} Provides: php-spl, php-spl%{?_isa} Provides: php-standard = %{version}, php-standard%{?_isa} = %{version} Provides: php-tokenizer, php-tokenizer%{?_isa} -%if %{with_zip} -Provides: php-zip, php-zip%{?_isa} -Obsoletes: php-pecl-zip < 1.11 -%endif Provides: php-zlib, php-zlib%{?_isa} %description common @@ -290,16 +282,13 @@ Requires: gcc-c++ Requires: libtool # see "php-config --libs" Requires: krb5-devel%{?_isa} -%if %{with_argon2} -Requires: libargon2-devel%{?_isa} -%endif Requires: libedit-devel%{?_isa} Requires: libxml2-devel%{?_isa} -Requires: openssl-devel%{?_isa} +Requires: openssl-devel%{?_isa} >= 1.0.1 Requires: pcre2-devel%{?_isa} Requires: zlib-devel%{?_isa} -Obsoletes: php-pecl-json-devel < %{jsonver} -Obsoletes: php-pecl-jsonc-devel < %{jsonver} +Obsoletes: php-pecl-json-devel < %{version} +Obsoletes: php-pecl-jsonc-devel < %{version} %if %{with_zts} Provides: php-zts-devel = %{version}-%{release} Provides: php-zts-devel%{?_isa} = %{version}-%{release} @@ -332,7 +321,10 @@ Summary: A module for PHP applications that use IMAP # All files licensed under PHP version 3.01 License: PHP Requires: php-common%{?_isa} = %{version}-%{release} -BuildRequires: krb5-devel, openssl-devel, libc-client-devel +BuildRequires: pkgconfig(krb5) +BuildRequires: pkgconfig(krb5-gssapi) +BuildRequires: openssl-devel >= 1.0.1 +BuildRequires: libc-client-devel %description imap The php-imap module will add IMAP (Internet Message Access Protocol) @@ -345,7 +337,9 @@ Summary: A module for PHP applications that use LDAP # All files licensed under PHP version 3.01 License: PHP Requires: php-common%{?_isa} = %{version}-%{release} -BuildRequires: cyrus-sasl-devel, openldap-devel, openssl-devel +BuildRequires: pkgconfig(libsasl2) +BuildRequires: openldap-devel +BuildRequires: openssl-devel >= 1.0.1 %description ldap The php-ldap adds Lightweight Directory Access Protocol (LDAP) @@ -396,7 +390,9 @@ License: PHP Requires: php-pdo%{?_isa} = %{version}-%{release} Provides: php_database Provides: php-pdo_pgsql, php-pdo_pgsql%{?_isa} -BuildRequires: krb5-devel, openssl-devel, libpq-devel +BuildRequires: krb5-devel +BuildRequires: openssl-devel >= 1.0.1 +BuildRequires: libpq-devel %description pgsql The php-pgsql package add PostgreSQL database support to PHP. @@ -446,36 +442,26 @@ Summary: A module for PHP applications that use the SOAP protocol # All files licensed under PHP version 3.01 License: PHP Requires: php-common%{?_isa} = %{version}-%{release} -BuildRequires: libxml2-devel +BuildRequires: pkgconfig(libxml-2.0) %description soap The php-soap package contains a dynamic shared object that will add support to PHP for using the SOAP web services protocol. %if %{with_firebird} -%package interbase -Summary: A module for PHP applications that use Interbase/Firebird databases +%package pdo-firebird +Summary: PDO driver for Interbase/Firebird databases # All files licensed under PHP version 3.01 License: PHP # for fb_config command BuildRequires: firebird-devel Requires: php-pdo%{?_isa} = %{version}-%{release} Provides: php_database -Provides: php-firebird, php-firebird%{?_isa} Provides: php-pdo_firebird, php-pdo_firebird%{?_isa} -%description interbase -The php-interbase package contains a dynamic shared object that will add -database support through Interbase/Firebird to PHP. - -InterBase is the name of the closed-source variant of this RDBMS that was -developed by Borland/Inprise. - -Firebird is a commercially independent project of C and C++ programmers, -technical advisors and supporters developing and enhancing a multi-platform -relational database management system based on the source code released by -Inprise Corp (now known as Borland Software Corp) under the InterBase Public -License. +%description pdo-firebird +The php-pdo-firebird package contains the PDO driver for +Interbase/Firebird databases. %endif %package snmp @@ -499,11 +485,12 @@ Requires: php-common%{?_isa} = %{version}-%{release} Provides: php-dom, php-dom%{?_isa} Provides: php-domxml, php-domxml%{?_isa} Provides: php-simplexml, php-simplexml%{?_isa} -Provides: php-wddx, php-wddx%{?_isa} Provides: php-xmlreader, php-xmlreader%{?_isa} Provides: php-xmlwriter, php-xmlwriter%{?_isa} Provides: php-xsl, php-xsl%{?_isa} -BuildRequires: libxslt-devel >= 1.0.18-1, libxml2-devel >= 2.4.14-1 +BuildRequires: pkgconfig(libxslt) >= 1.1 +BuildRequires: pkgconfig(libexslt) +BuildRequires: pkgconfig(libxml-2.0) >= 2.7.6 %description xml The php-xml package contains dynamic shared objects which add support @@ -527,7 +514,7 @@ Summary: A module for PHP applications which need multi-byte string handling # libmbfl is licensed under LGPLv2 # ucgendat is licensed under OpenLDAP License: PHP and LGPLv2 and OpenLDAP -BuildRequires: oniguruma-devel +BuildRequires: pkgconfig(oniguruma) >= 6.8 Provides: bundled(libmbfl) = 1.3.2 Requires: php-common%{?_isa} = %{version}-%{release} @@ -538,24 +525,9 @@ support for multi-byte string handling to PHP. %package gd Summary: A module for PHP applications for using the gd graphics library # All files licensed under PHP version 3.01 -%if %{with_libgd} License: PHP -%else -# bundled libgd is licensed under BSD -License: PHP and BSD -%endif Requires: php-common%{?_isa} = %{version}-%{release} -%if %{with_libgd} -BuildRequires: gd-devel >= 2.1.0 -%else -# Required to build the bundled GD library -BuildRequires: libjpeg-devel -BuildRequires: libpng-devel -BuildRequires: freetype-devel -BuildRequires: libXpm-devel -BuildRequires: libwebp-devel -Provides: bundled(gd) = 2.0.35 -%endif +BuildRequires: pkgconfig(gdlib) >= 2.1.1 %description gd The php-gd package contains a dynamic shared object that will add @@ -611,7 +583,7 @@ support for using the tidy library to PHP. %if %{with_freetds} %package pdo-dblib -Summary: PDO driver Microsoft SQL Server and Sybase databases +Summary: PDO driver for Microsoft SQL Server and Sybase databases # All files licensed under PHP version 3.01 License: PHP Requires: php-pdo%{?_isa} = %{version}-%{release} @@ -648,23 +620,14 @@ The php-pspell package contains a dynamic shared object that will add support for using the pspell library to PHP. %endif -%package recode -Summary: A module for PHP applications for using the recode library -# All files licensed under PHP version 3.01 -License: PHP -Requires: php-common%{?_isa} = %{version}-%{release} -BuildRequires: recode-devel - -%description recode -The php-recode package contains a dynamic shared object that will add -support for using the recode library to PHP. - %package intl Summary: Internationalization extension for PHP applications # All files licensed under PHP version 3.01 License: PHP Requires: php-common%{?_isa} = %{version}-%{release} -BuildRequires: libicu-devel >= 4.0 +BuildRequires: pkgconfig(icu-i18n) >= 50.1 +BuildRequires: pkgconfig(icu-io) >= 50.1 +BuildRequires: pkgconfig(icu-uc) >= 50.1 %description intl The php-intl package contains a dynamic shared object that will add @@ -675,7 +638,7 @@ Summary: Enchant spelling extension for PHP applications # All files licensed under PHP version 3.0 License: PHP Requires: php-common%{?_isa} = %{version}-%{release} -BuildRequires: enchant-devel >= 1.2.4 +BuildRequires: pkgconfig(enchant) %description enchant The php-enchant package contains a dynamic shared object that will add @@ -686,12 +649,12 @@ Summary: JavaScript Object Notation extension for PHP # All files licensed under PHP version 3.0.1 License: PHP Requires: php-common%{?_isa} = %{version}-%{release} -Obsoletes: php-pecl-json < %{jsonver} -Obsoletes: php-pecl-jsonc < %{jsonver} -Provides: php-pecl(json) = %{jsonver} -Provides: php-pecl(json)%{?_isa} = %{jsonver} -Provides: php-pecl-json = %{jsonver} -Provides: php-pecl-json%{?_isa} = %{jsonver} +Obsoletes: php-pecl-json < %{version} +Obsoletes: php-pecl-jsonc < %{version} +Provides: php-pecl(json) = %{version} +Provides: php-pecl(json)%{?_isa} = %{version} +Provides: php-pecl-json = %{version} +Provides: php-pecl-json%{?_isa} = %{version} %description json The php-json package provides an extension that will add @@ -715,6 +678,23 @@ low-level PHP extension for the libsodium cryptographic library. %endif +%package ffi +Summary: Foreign Function Interface +# All files licensed under PHP version 3.0.1 +License: PHP +Group: System Environment/Libraries +BuildRequires: pkgconfig(libffi) +Requires: php-common%{?_isa} = %{version}-%{release} + +%description ffi +FFI is one of the features that made Python and LuaJIT very useful for fast +prototyping. It allows calling C functions and using C data types from pure +scripting language and therefore develop “system code” more productively. + +For PHP, FFI opens a way to write PHP extensions and bindings to C libraries +in pure PHP. + + %prep %{gpgverify} --keyring='%{SOURCE20}' --signature='%{SOURCE21}' --data='%{SOURCE0}' @@ -723,10 +703,8 @@ low-level PHP extension for the libsodium cryptographic library. %patch1 -p1 -b .mpmcheck %patch5 -p1 -b .includedir %patch6 -p1 -b .embed -%patch7 -p1 -b .recode %patch8 -p1 -b .libdb -%patch40 -p1 -b .dlopen %patch42 -p1 -b .systzdata %patch43 -p1 -b .headers %if 0%{?fedora} >= 18 || 0%{?rhel} >= 7 @@ -736,6 +714,7 @@ low-level PHP extension for the libsodium cryptographic library. %patch47 -p1 -b .phpinfo # upstream patches +%patch100 -p1 -b .wip # security patches @@ -746,15 +725,10 @@ low-level PHP extension for the libsodium cryptographic library. # Prevent %%doc confusion over LICENSE files cp Zend/LICENSE Zend/ZEND_LICENSE cp TSRM/LICENSE TSRM_LICENSE -%if ! %{with_libgd} -cp ext/gd/libgd/README libgd_README -cp ext/gd/libgd/COPYING libgd_COPYING -%endif cp sapi/fpm/LICENSE fpm_LICENSE cp ext/mbstring/libmbfl/LICENSE libmbfl_LICENSE -cp ext/mbstring/ucgendat/OPENLDAP_LICENSE ucgendat_LICENSE cp ext/fileinfo/libmagic/LICENSE libmagic_LICENSE -cp ext/bcmath/libbcmath/COPYING.LIB libbcmath_COPYING +cp ext/bcmath/libbcmath/LICENSE libbcmath_LICENSE cp ext/date/lib/LICENSE.rst timelib_LICENSE # Multiple builds for multiple SAPIs @@ -807,13 +781,6 @@ if test "x${vpdo}" != "x%{pdover}"; then exit 1 fi -ver=$(sed -n '/#define PHP_JSON_VERSION /{s/.* "//;s/".*$//;p}' ext/json/php_json.h) -if test "$ver" != "%{jsonver}"; then - : Error: Upstream JSON version is now ${ver}, expecting %{jsonver}. - : Update the %{jsonver} macro and rebuild. - exit 1 -fi - # https://bugs.php.net/63362 - Not needed but installed headers. # Drop some Windows specific headers to avoid installation, # before build to ensure they are really not needed. @@ -830,16 +797,13 @@ find . -name \*.[ch] -exec chmod 644 {} \; chmod 644 README.* # Some extensions have their own configuration file -cp %{SOURCE50} 10-opcache.ini +cp %{SOURCE50} %{SOURCE51} %{SOURCE53} . %build # Set build date from https://reproducible-builds.org/specs/source-date-epoch/ export SOURCE_DATE_EPOCH=$(date +%s -r NEWS) -# aclocal workaround - to be improved -cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >>aclocal.m4 - # Force use of system libtool: libtoolize --force --copy cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >build/libtool.m4 @@ -868,7 +832,7 @@ mkdir Zend && cp ../Zend/zend_{language,ini}_{parser,scanner}.[ch] Zend # Always static: # date, ereg, filter, libxml, reflection, spl: not supported # hash: for PHAR_SIG_SHA256 and PHAR_SIG_SHA512 -# session: dep on hash, used by soap and wddx +# session: dep on hash, used by soap # pcre: used by filter, zip # pcntl, readline: only used by CLI sapi # openssl: for PHAR_SIG_OPENSSL @@ -876,6 +840,7 @@ mkdir Zend && cp ../Zend/zend_{language,ini}_{parser,scanner}.[ch] Zend ln -sf ../configure %configure \ + --enable-rtld-now \ --cache-file=../config.cache \ --with-libdir=%{_lib} \ --with-config-file-path=%{_sysconfdir} \ @@ -885,29 +850,21 @@ ln -sf ../configure --disable-rpath \ --without-pear \ --with-exec-dir=%{_bindir} \ - --with-freetype-dir=%{_prefix} \ - --with-png-dir=%{_prefix} \ - --with-xpm-dir=%{_prefix} \ --without-gdbm \ - --with-jpeg-dir=%{_prefix} \ --with-openssl \ --with-system-ciphers \ - --with-pcre-regex=%{_prefix} \ + --with-external-pcre \ %ifarch s390 s390x sparc64 sparcv9 riscv64 --without-pcre-jit \ %endif --with-zlib \ --with-layout=GNU \ --with-kerberos \ - --with-libxml-dir=%{_prefix} \ + --with-libxml \ --with-system-tzdata \ --with-mhash \ -%if %{with_argon2} - --with-password-argon2 \ -%endif -%if %{with_dtrace} + --without-password-argon2 \ --enable-dtrace \ -%endif $* if test $? != 0; then tail -500 config.log @@ -930,13 +887,9 @@ build --libdir=%{_libdir}/php \ --with-imap=shared --with-imap-ssl \ %endif --enable-mbstring=shared \ - --with-onig=%{_prefix} \ --enable-mbregex \ -%if %{with_libgd} - --with-gd=shared,%{_prefix} \ -%else - --with-gd=shared \ -%endif + --enable-gd=shared \ + --with-external-gd \ --with-gmp=shared \ --enable-calendar=shared \ --enable-bcmath=shared \ @@ -959,35 +912,27 @@ build --libdir=%{_libdir}/php \ --with-mysqli=shared,mysqlnd \ --with-mysql-sock=%{mysql_sock} \ %if %{with_firebird} - --with-interbase=shared \ --with-pdo-firebird=shared \ %endif --enable-dom=shared \ --with-pgsql=shared \ --enable-simplexml=shared \ --enable-xml=shared \ - --enable-wddx=shared \ --with-snmp=shared,%{_prefix} \ --enable-soap=shared \ --with-xsl=shared,%{_prefix} \ --enable-xmlreader=shared --enable-xmlwriter=shared \ - --with-curl=shared,%{_prefix} \ + --with-curl=shared \ --enable-pdo=shared \ --with-pdo-odbc=shared,unixODBC,%{_prefix} \ --with-pdo-mysql=shared,mysqlnd \ --with-pdo-pgsql=shared,%{_prefix} \ - --with-pdo-sqlite=shared,%{_prefix} \ + --with-pdo-sqlite=shared \ %if %{with_freetds} --with-pdo-dblib=shared,%{_prefix} \ %endif - --with-sqlite3=shared,%{_prefix} \ + --with-sqlite3=shared \ --enable-json=shared \ -%if %{with_zip} - --enable-zip=shared \ -%if %{with_libzip} - --with-libzip \ -%endif -%endif --without-readline \ --with-libedit \ %if %{with_pspell} @@ -1000,25 +945,25 @@ build --libdir=%{_libdir}/php \ --enable-posix=shared \ --with-unixODBC=shared,%{_prefix} \ --enable-fileinfo=shared \ + --with-ffi=shared \ %if %{with_sodium} --with-sodium=shared \ %else --without-sodium \ %endif --enable-intl=shared \ - --with-icu-dir=%{_prefix} \ - --with-enchant=shared,%{_prefix} \ - --with-recode=shared,%{_prefix} + --with-enchant=shared popd without_shared="--without-gd \ --disable-dom --disable-dba --without-unixODBC \ --disable-opcache \ --disable-json \ + --without-ffi \ --disable-xmlreader --disable-xmlwriter \ --without-sodium \ --without-sqlite3 --disable-phar --disable-fileinfo \ - --without-pspell --disable-wddx \ + --without-pspell \ --without-curl --disable-posix --disable-xml \ --disable-simplexml --disable-exif --without-gettext \ --without-iconv --disable-ftp --without-bz2 --disable-ctype \ @@ -1071,13 +1016,9 @@ build --includedir=%{_includedir}/php-zts \ --with-imap=shared --with-imap-ssl \ %endif --enable-mbstring=shared \ - --with-onig=%{_prefix} \ --enable-mbregex \ -%if %{with_libgd} - --with-gd=shared,%{_prefix} \ -%else - --with-gd=shared \ -%endif + --enable-gd=shared \ + --with-external-gd \ --with-gmp=shared \ --enable-calendar=shared \ --enable-bcmath=shared \ @@ -1101,35 +1042,27 @@ build --includedir=%{_includedir}/php-zts \ --with-mysql-sock=%{mysql_sock} \ --enable-mysqlnd-threading \ %if %{with_firebird} - --with-interbase=shared \ --with-pdo-firebird=shared \ %endif --enable-dom=shared \ --with-pgsql=shared \ --enable-simplexml=shared \ --enable-xml=shared \ - --enable-wddx=shared \ --with-snmp=shared,%{_prefix} \ --enable-soap=shared \ --with-xsl=shared,%{_prefix} \ --enable-xmlreader=shared --enable-xmlwriter=shared \ - --with-curl=shared,%{_prefix} \ + --with-curl=shared \ --enable-pdo=shared \ --with-pdo-odbc=shared,unixODBC,%{_prefix} \ --with-pdo-mysql=shared,mysqlnd \ --with-pdo-pgsql=shared,%{_prefix} \ - --with-pdo-sqlite=shared,%{_prefix} \ + --with-pdo-sqlite=shared \ %if %{with_freetds} --with-pdo-dblib=shared,%{_prefix} \ %endif - --with-sqlite3=shared,%{_prefix} \ + --with-sqlite3=shared \ --enable-json=shared \ -%if %{with_zip} - --enable-zip=shared \ -%if %{with_libzip} - --with-libzip \ -%endif -%endif --without-readline \ --with-libedit \ %if %{with_pspell} @@ -1142,15 +1075,14 @@ build --includedir=%{_includedir}/php-zts \ --enable-posix=shared \ --with-unixODBC=shared,%{_prefix} \ --enable-fileinfo=shared \ + --with-ffi=shared \ %if %{with_sodium} --with-sodium=shared \ %else --without-sodium \ %endif --enable-intl=shared \ - --with-icu-dir=%{_prefix} \ - --with-enchant=shared,%{_prefix} \ - --with-recode=shared,%{_prefix} + --with-enchant=shared popd # Build a special thread-safe Apache SAPI @@ -1179,7 +1111,7 @@ export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2 export SKIP_ONLINE_TESTS=1 export SKIP_IO_CAPTURE_TESTS=1 unset TZ LANG LC_ALL -if ! make test; then +if ! make test TESTS=-j4; then set +x for f in $(find .. -name \*.diff -type f -print); do if ! grep -q XFAIL "${f/.diff/.phpt}" @@ -1214,11 +1146,9 @@ make -C build-fpm install-fpm \ make -C build-cgi install \ INSTALL_ROOT=$RPM_BUILD_ROOT -# Install the default configuration file and icons +# Install the default configuration file install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/ install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/php.ini -install -m 755 -d $RPM_BUILD_ROOT%{_httpd_contentdir}/icons -install -m 644 php.gif $RPM_BUILD_ROOT%{_httpd_contentdir}/icons/php.gif # For third-party packaging: install -m 755 -d $RPM_BUILD_ROOT%{_datadir}/php @@ -1286,14 +1216,12 @@ for mod in pgsql odbc ldap snmp xmlrpc \ simplexml bz2 calendar ctype exif ftp gettext gmp iconv \ sockets tokenizer opcache \ pdo pdo_pgsql pdo_odbc pdo_sqlite \ -%if %{with_zip} - zip \ -%endif %if %{with_firebird} - interbase pdo_firebird \ + pdo_firebird \ %endif sqlite3 \ enchant phar fileinfo intl \ + ffi \ tidy \ %if %{with_freetds} pdo_dblib \ @@ -1301,17 +1229,17 @@ for mod in pgsql odbc ldap snmp xmlrpc \ %if %{with_pspell} pspell \ %endif - curl wddx \ + curl \ %if %{with_sodium} sodium \ %endif - posix shmop sysvshm sysvsem sysvmsg recode xml \ + posix shmop sysvshm sysvsem sysvmsg xml \ ; do case $mod in opcache) # Zend extensions ini=10-${mod}.ini;; - pdo_*|mysqli|wddx|xmlreader|xmlrpc) + pdo_*|mysqli|xmlreader|xmlrpc) # Extensions with dependencies on 20-* ini=30-${mod}.ini;; *) @@ -1347,7 +1275,7 @@ EOF done # The dom, xsl and xml* modules are all packaged in php-xml -cat files.dom files.xsl files.xml{reader,writer} files.wddx \ +cat files.dom files.xsl files.xml{reader,writer} \ files.simplexml >> files.xml # mysqlnd @@ -1358,9 +1286,6 @@ cat files.mysqli \ # Split out the PDO modules cat files.pdo_pgsql >> files.pgsql cat files.pdo_odbc >> files.odbc -%if %{with_firebird} -cat files.pdo_firebird >> files.interbase -%endif # sysv* and posix in packaged in php-process cat files.shmop files.sysv* files.posix > files.process @@ -1370,14 +1295,11 @@ cat files.shmop files.sysv* files.posix > files.process cat files.pdo_sqlite >> files.pdo cat files.sqlite3 >> files.pdo -# Package zip, curl, phar and fileinfo in -common. +# Package curl, phar and fileinfo in -common. cat files.curl files.phar files.fileinfo \ files.exif files.gettext files.iconv files.calendar \ files.ftp files.bz2 files.ctype files.sockets \ files.tokenizer > files.common -%if %{with_zip} -cat files.zip >> files.common -%endif # The default Zend OPcache blacklist file install -m 644 %{SOURCE51} $RPM_BUILD_ROOT%{_sysconfdir}/php.d/opcache-default.blacklist @@ -1404,6 +1326,7 @@ rm -rf $RPM_BUILD_ROOT%{_libdir}/php/modules/*.a \ $RPM_BUILD_ROOT%{_libdir}/php-zts/modules/*.a \ $RPM_BUILD_ROOT%{_bindir}/{phptar} \ $RPM_BUILD_ROOT%{_datadir}/pear \ + $RPM_BUILD_ROOT%{_libdir}/libphp7.a \ $RPM_BUILD_ROOT%{_libdir}/libphp7.la # Remove irrelevant docs @@ -1431,10 +1354,9 @@ systemctl try-restart php-fpm.service >/dev/null 2>&1 || : %attr(0770,root,apache) %dir %{_sharedstatedir}/php/opcache %config(noreplace) %{_httpd_confdir}/php.conf %config(noreplace) %{_httpd_modconfdir}/15-php.conf -%{_httpd_contentdir}/icons/php.gif %files common -f files.common -%doc CODING_STANDARDS CREDITS EXTENSIONS NEWS README* +%doc EXTENSIONS NEWS UPGRADING* README.REDIST.BINS *md docs %license LICENSE TSRM_LICENSE %license libmagic_LICENSE %license timelib_LICENSE @@ -1471,7 +1393,6 @@ systemctl try-restart php-fpm.service >/dev/null 2>&1 || : %{_mandir}/man1/phar.1* %{_mandir}/man1/phar.phar.1* %{_mandir}/man1/phpize.1* -%doc sapi/cgi/README* sapi/cli/README %files dbg %doc sapi/phpdbg/{README.md,CREDITS} @@ -1537,15 +1458,10 @@ systemctl try-restart php-fpm.service >/dev/null 2>&1 || : %files xmlrpc -f files.xmlrpc %files mbstring -f files.mbstring %license libmbfl_LICENSE -%license ucgendat_LICENSE %files gd -f files.gd -%if ! %{with_libgd} -%license libgd_README -%license libgd_COPYING -%endif %files soap -f files.soap %files bcmath -f files.bcmath -%license libbcmath_COPYING +%license libbcmath_LICENSE %files gmp -f files.gmp %files dba -f files.dba %files pdo -f files.pdo @@ -1558,9 +1474,8 @@ systemctl try-restart php-fpm.service >/dev/null 2>&1 || : %endif %files intl -f files.intl %files process -f files.process -%files recode -f files.recode %if %{with_firebird} -%files interbase -f files.interbase +%files pdo-firebird -f files.pdo_firebird %endif %files enchant -f files.enchant %files mysqlnd -f files.mysqlnd @@ -1573,9 +1488,20 @@ systemctl try-restart php-fpm.service >/dev/null 2>&1 || : %if %{with_sodium} %files sodium -f files.sodium %endif +%files ffi -f files.ffi %changelog +* Tue Oct 1 2019 Remi Collet - 7.4.0~RC3-5 +- update to 7.4.0RC3 +- bump API version to 20190902 +- drop wddx, recode and interbase extensions +- add ffi extension +- drop dependency on libargon2, use libsodium implementation +- run test suite using 4 concurrent workers +- cleanup unused conditional +- add upstream patch to fix aarch64 build + * Tue Sep 24 2019 Remi Collet - 7.3.10-1 - Update to 7.3.10 - http://www.php.net/releases/7_3_10.php diff --git a/sources b/sources index 6fb1a7d..af909f3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (php-7.3.10.tar.xz) = b6c5d439db015cf902cd1823a2cbd509221866a416fc02e0382322a15165fcd04d3fe5d6fa2a9efc37a69f2becf4453d5f1ccecf4b1f035b5be7a550f3f97fc9 -SHA512 (php-7.3.10.tar.xz.asc) = 9606b5931e51a697593d0afa956b48fa3a17201087aae5676531c86a74d4a94a58fd3d7a10b7c4b1f3e12f4c70a3a634b352b8bb4778e9a64386ecd3196d89ae +SHA512 (php-7.4.0RC3.tar.xz) = 433f5bdafe753948f9ea837205988ae3c779a03c23505795f4c7c71a6cc62354cf61a2f30aa3480a588b9b44faa184664322616025af74627784d5b64b1e8dfb +SHA512 (php-7.4.0RC3.tar.xz.asc) = 426fee1bdadfc8b4bb44a896d0d4ea97568477911b8bf8dee673ea68909d27b7ff7d53b9dc66d96b68716959c0b25b16c77abb01acea7a05471f29148ab52f67