From 815483a9fa153342053ffebff66869b1e47201e9 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 21 Aug 2018 10:56:47 +0200 Subject: v7.3.0beta2 --- 10-opcache.ini | 10 +- failed.txt | 6 +- php-7.2.8-getallheaders.patch | 280 ------------------------------------------ php-upstream.patch | 13 ++ php.ini | 102 +++++++-------- php73.spec | 78 ++++++++---- 6 files changed, 117 insertions(+), 372 deletions(-) delete mode 100644 php-7.2.8-getallheaders.patch create mode 100644 php-upstream.patch diff --git a/10-opcache.ini b/10-opcache.ini index 1bf3d2a..b24b410 100644 --- a/10-opcache.ini +++ b/10-opcache.ini @@ -42,16 +42,12 @@ opcache.max_accelerated_files=4000 ; size of the optimized code. ;opcache.save_comments=1 -; If enabled, a fast shutdown sequence is used for the accelerated code -; Depending on the used Memory Manager this may cause some incompatibilities. -;opcache.fast_shutdown=0 - ; Allow file existence override (file_exists, etc.) performance feature. ;opcache.enable_file_override=0 ; A bitmask, where each bit enables or disables the appropriate OPcache ; passes -;opcache.optimization_level=0xffffffff +;opcache.optimization_level=0x7FFFBFFF ;opcache.inherited_hack=1 ;opcache.dups_fix=0 @@ -123,3 +119,7 @@ opcache.blacklist_filename=/etc/php.d/opcache*.blacklist ; environments. It should be enabled for sites that may serve requests in ; different "chroot" environments. ;opcache.validate_root=0 + +; If specified, it produces opcode dumps for debugging different stages of +; optimizations. +;opcache.opt_debug_level=0 diff --git a/failed.txt b/failed.txt index 404658e..370052c 100644 --- a/failed.txt +++ b/failed.txt @@ -1,14 +1,10 @@ -===== 7.2.9 (2018-08-16) +===== 7.3.0beta2 (2018-08-16) $ grep -r 'Tests failed' /var/lib/mock/{fc,el}*/build.log /var/lib/mock/el6i/build.log:Tests failed : 0 /var/lib/mock/el6x/build.log:Tests failed : 0 /var/lib/mock/el7x/build.log:Tests failed : 0 -/var/lib/mock/fc25i/build.log:Tests failed : 0 -/var/lib/mock/fc25x/build.log:Tests failed : 0 -/var/lib/mock/fc26i/build.log:Tests failed : 0 -/var/lib/mock/fc26x/build.log:Tests failed : 0 /var/lib/mock/fc27i/build.log:Tests failed : 0 /var/lib/mock/fc27x/build.log:Tests failed : 0 /var/lib/mock/fc28i/build.log:Tests failed : 0 diff --git a/php-7.2.8-getallheaders.patch b/php-7.2.8-getallheaders.patch deleted file mode 100644 index 22a2dcb..0000000 --- a/php-7.2.8-getallheaders.patch +++ /dev/null @@ -1,280 +0,0 @@ -Adapted for 7.2 from 7.3 by remi - - -From 0ea4013f101d64fbeb9221260b36e98f10ed1ddd Mon Sep 17 00:00:00 2001 -From: Remi Collet -Date: Wed, 4 Jul 2018 08:48:38 +0200 -Subject: [PATCH] Fixed bug #62596 add getallheaders (apache_request_headers) - missing function in FPM add sapi_add_request_header in public API (was - add_request_header) fix arginfo for fastcgi_finish_request fucntion - ---- - main/SAPI.c | 50 +++++++++++++++++++++++++++++ - main/SAPI.h | 1 + - sapi/cgi/cgi_main.c | 51 +---------------------------- - sapi/fpm/fpm/fpm_main.c | 25 ++++++++++++++- - sapi/fpm/tests/getallheaders.phpt | 67 +++++++++++++++++++++++++++++++++++++++ - 5 files changed, 143 insertions(+), 51 deletions(-) - create mode 100644 sapi/fpm/tests/getallheaders.phpt - -diff --git a/main/SAPI.c b/main/SAPI.c -index b6c3329..7e0c7c8 100644 ---- a/main/SAPI.c -+++ b/main/SAPI.c -@@ -1109,6 +1109,56 @@ SAPI_API void sapi_terminate_process(void) { - } - } - -+SAPI_API void sapi_add_request_header(char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg) /* {{{ */ -+{ -+ zval *return_value = (zval*)arg; -+ char *str = NULL; -+ -+ ALLOCA_FLAG(use_heap) -+ -+ if (var_len > 5 && -+ var[0] == 'H' && -+ var[1] == 'T' && -+ var[2] == 'T' && -+ var[3] == 'P' && -+ var[4] == '_') { -+ -+ char *p; -+ -+ var_len -= 5; -+ p = var + 5; -+ var = str = do_alloca(var_len + 1, use_heap); -+ *str++ = *p++; -+ while (*p) { -+ if (*p == '_') { -+ *str++ = '-'; -+ p++; -+ if (*p) { -+ *str++ = *p++; -+ } -+ } else if (*p >= 'A' && *p <= 'Z') { -+ *str++ = (*p++ - 'A' + 'a'); -+ } else { -+ *str++ = *p++; -+ } -+ } -+ *str = 0; -+ } else if (var_len == sizeof("CONTENT_TYPE")-1 && -+ memcmp(var, "CONTENT_TYPE", sizeof("CONTENT_TYPE")-1) == 0) { -+ var = "Content-Type"; -+ } else if (var_len == sizeof("CONTENT_LENGTH")-1 && -+ memcmp(var, "CONTENT_LENGTH", sizeof("CONTENT_LENGTH")-1) == 0) { -+ var = "Content-Length"; -+ } else { -+ return; -+ } -+ add_assoc_stringl_ex(return_value, var, var_len, val, val_len); -+ if (str) { -+ free_alloca(var, use_heap); -+ } -+} -+/* }}} */ -+ - /* - * Local variables: - * tab-width: 4 -diff --git a/main/SAPI.h b/main/SAPI.h -index f829fd7..4b8e223 100644 ---- a/main/SAPI.h -+++ b/main/SAPI.h -@@ -151,6 +151,7 @@ SAPI_API void sapi_shutdown(void); - SAPI_API void sapi_activate(void); - SAPI_API void sapi_deactivate(void); - SAPI_API void sapi_initialize_empty_request(void); -+SAPI_API void sapi_add_request_header(char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg); - END_EXTERN_C() - - /* -diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c -index 2e9cefe..350846d 100644 ---- a/sapi/cgi/cgi_main.c -+++ b/sapi/cgi/cgi_main.c -@@ -1591,54 +1591,6 @@ PHP_FUNCTION(apache_child_terminate) /* - } - /* }}} */ - --static void add_request_header(char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg) /* {{{ */ --{ -- zval *return_value = (zval*)arg; -- char *str = NULL; -- char *p; -- ALLOCA_FLAG(use_heap) -- -- if (var_len > 5 && -- var[0] == 'H' && -- var[1] == 'T' && -- var[2] == 'T' && -- var[3] == 'P' && -- var[4] == '_') { -- -- var_len -= 5; -- p = var + 5; -- var = str = do_alloca(var_len + 1, use_heap); -- *str++ = *p++; -- while (*p) { -- if (*p == '_') { -- *str++ = '-'; -- p++; -- if (*p) { -- *str++ = *p++; -- } -- } else if (*p >= 'A' && *p <= 'Z') { -- *str++ = (*p++ - 'A' + 'a'); -- } else { -- *str++ = *p++; -- } -- } -- *str = 0; -- } else if (var_len == sizeof("CONTENT_TYPE")-1 && -- memcmp(var, "CONTENT_TYPE", sizeof("CONTENT_TYPE")-1) == 0) { -- var = "Content-Type"; -- } else if (var_len == sizeof("CONTENT_LENGTH")-1 && -- memcmp(var, "CONTENT_LENGTH", sizeof("CONTENT_LENGTH")-1) == 0) { -- var = "Content-Length"; -- } else { -- return; -- } -- add_assoc_stringl_ex(return_value, var, var_len, val, val_len); -- if (str) { -- free_alloca(var, use_heap); -- } --} --/* }}} */ -- - PHP_FUNCTION(apache_request_headers) /* {{{ */ - { - if (zend_parse_parameters_none()) { -@@ -1648,7 +1600,7 @@ PHP_FUNCTION(apache_request_headers) /* - if (fcgi_is_fastcgi()) { - fcgi_request *request = (fcgi_request*) SG(server_context); - -- fcgi_loadenv(request, add_request_header, return_value); -+ fcgi_loadenv(request, sapi_add_request_header, return_value); - } else { - char buf[128]; - char **env, *p, *q, *var, *val, *t = buf; -diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c -index 3256660..e815be4 100644 ---- a/sapi/fpm/fpm/fpm_main.c -+++ b/sapi/fpm/fpm/fpm_main.c -@@ -1531,6 +1531,10 @@ PHP_FUNCTION(fastcgi_finish_request) /* {{{ */ - { - fcgi_request *request = (fcgi_request*) SG(server_context); - -+ if (zend_parse_parameters_none() == FAILURE) { -+ return; -+ } -+ - if (!fcgi_is_closed(request)) { - php_output_end_all(); - php_header(); -@@ -1545,8 +1549,27 @@ PHP_FUNCTION(fastcgi_finish_request) /* {{{ */ - } - /* }}} */ - -+ZEND_BEGIN_ARG_INFO(cgi_fcgi_sapi_no_arginfo, 0) -+ZEND_END_ARG_INFO() -+ -+PHP_FUNCTION(apache_request_headers) /* {{{ */ -+{ -+ fcgi_request *request; -+ -+ if (zend_parse_parameters_none() == FAILURE) { -+ return; -+ } -+ -+ array_init(return_value); -+ if ((request = (fcgi_request*) SG(server_context))) { -+ fcgi_loadenv(request, sapi_add_request_header, return_value); -+ } -+} /* }}} */ -+ - static const zend_function_entry cgi_fcgi_sapi_functions[] = { -- PHP_FE(fastcgi_finish_request, NULL) -+ PHP_FE(fastcgi_finish_request, cgi_fcgi_sapi_no_arginfo) -+ PHP_FE(apache_request_headers, cgi_fcgi_sapi_no_arginfo) -+ PHP_FALIAS(getallheaders, apache_request_headers, cgi_fcgi_sapi_no_arginfo) - PHP_FE_END - }; - -diff --git a/sapi/fpm/tests/getallheaders.phpt b/sapi/fpm/tests/getallheaders.phpt -new file mode 100644 -index 0000000..b41f1c6 ---- /dev/null -+++ b/sapi/fpm/tests/getallheaders.phpt -@@ -0,0 +1,67 @@ -+--TEST-- -+FPM: Function getallheaders basic test -+--SKIPIF-- -+ -+--FILE-- -+start(); -+$tester->expectLogStartNotices(); -+$tester->request( -+ '', -+ [ -+ 'HTTP_X_FOO' => 'BAR', -+ 'HTTP_FOO' => 'foo' -+ ] -+ )->expectBody( -+ [ -+ 'Test Start', -+ 'array(4) {', -+ ' ["Foo"]=>', -+ ' string(3) "foo"', -+ ' ["X-Foo"]=>', -+ ' string(3) "BAR"', -+ ' ["Content-Length"]=>', -+ ' string(1) "0"', -+ ' ["Content-Type"]=>', -+ ' string(0) ""', -+ '}', -+ 'Test End', -+ ] -+ ); -+$tester->terminate(); -+$tester->expectLogTerminatingNotices(); -+$tester->close(); -+ -+?> -+Done -+--EXPECT-- -+Done -+--CLEAN-- -+ --- -2.1.4 - diff --git a/php-upstream.patch b/php-upstream.patch new file mode 100644 index 0000000..ea036fd --- /dev/null +++ b/php-upstream.patch @@ -0,0 +1,13 @@ +diff --git a/sapi/phpdbg/Makefile.frag b/sapi/phpdbg/Makefile.frag +index e0cdfe25ef..091b1e831c 100644 +--- a/sapi/phpdbg/Makefile.frag ++++ b/sapi/phpdbg/Makefile.frag +@@ -28,7 +28,7 @@ install-phpdbg: $(BUILD_BINARY) + @$(INSTALL) -m 0755 $(BUILD_BINARY) $(INSTALL_ROOT)$(bindir)/$(program_prefix)phpdbg$(program_suffix)$(EXEEXT) + @echo "Installing phpdbg man page: $(INSTALL_ROOT)$(mandir)/man1/" + @$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1 +- @$(INSTALL_DATA) $(srcdir)/phpdbg.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phpdbg$(program_suffix).1 ++ @$(INSTALL_DATA) sapi/phpdbg/phpdbg.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phpdbg$(program_suffix).1 + + clean-phpdbg: + @echo "Cleaning phpdbg object files ..." diff --git a/php.ini b/php.ini index ecc660c..a5ad3a1 100644 --- a/php.ini +++ b/php.ini @@ -15,7 +15,7 @@ ; 5. The web server's directory (for SAPI modules), or directory of PHP ; (otherwise in Windows) ; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (C:\windows or C:\winnt) +; Windows directory (usually C:\windows) ; See the PHP docs for more specific information. ; http://php.net/configuration.file @@ -58,9 +58,9 @@ ; An empty string can be denoted by simply not writing anything after the equal ; sign, or by using the None keyword: -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' +; foo = ; sets foo to an empty string +; foo = None ; sets foo to an empty string +; foo = "None" ; sets foo to the string 'None' ; If you use constants in your value, and these constants belong to a ; dynamically loaded extension (either a PHP extension or a Zend extension), @@ -83,7 +83,7 @@ ; development version only in development environments, as errors shown to ; application users can inadvertently leak otherwise secure information. -; This is php.ini-production INI file. +; This is the php.ini-production INI file. ;;;;;;;;;;;;;;;;;;; ; Quick Reference ; @@ -169,7 +169,7 @@ ; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" ;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 = ; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) @@ -248,7 +248,7 @@ output_buffering = 4096 ; Production Value: "form=" ;url_rewriter.tags -; URL rewriter will not rewrites absolute URL nor form by default. To enable +; URL rewriter will not rewrite absolute URL nor form by default. To enable ; absolute URL rewrite, allowed hosts must be defined at RUNTIME. ; Refer to session.trans_sid_hosts for more details. ; Default Value: "" @@ -397,7 +397,7 @@ max_input_time = 60 ;max_input_nesting_level = 64 ; How many GET/POST/COOKIE input variables may be accepted -; max_input_vars = 1000 +;max_input_vars = 1000 ; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit @@ -582,7 +582,7 @@ html_errors = On ; http://php.net/error-log ; Example: ;error_log = php_errors.log -; Log errors to syslog. +; Log errors to syslog (Event Log on Windows). ;error_log = syslog ;windows.show_crt_warning @@ -734,13 +734,13 @@ user_dir = ; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir -; extension_dir = "./" +;extension_dir = "./" ; On windows: -; extension_dir = "ext" +;extension_dir = "ext" ; Directory where the temporary files should be placed. ; Defaults to the system default (see sys_get_temp_dir) -; sys_temp_dir = "/tmp" +;sys_temp_dir = "/tmp" ; Whether or not to enable the dl() function. The dl() function does NOT work ; properly in multithreaded servers, such as IIS or Zeus, and is automatically @@ -777,10 +777,9 @@ 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) @@ -872,7 +871,7 @@ default_socket_timeout = 60 ; For example: ; ; extension=mysqli -; +; ; When the extension library to load is not located in the default extension ; directory, You may specify an absolute path to the library file: ; @@ -923,7 +922,7 @@ cli_server.color = On [iconv] ; 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 = ; Use of this INI entry is deprecated, use global internal_encoding instead. @@ -950,19 +949,19 @@ cli_server.color = On ;sqlite3.extension_dir = [Pcre] -;PCRE library backtracking limit. +; PCRE library backtracking limit. ; http://php.net/pcre.backtrack-limit ;pcre.backtrack_limit=100000 -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the -;stack size limit imposed by the Operating System). +; PCRE library recursion limit. +; Please note that if you set this value to a high number you may consume all +; the available process stack and eventually crash PHP (due to reaching the +; stack size limit imposed by the Operating System). ; http://php.net/pcre.recursion-limit ;pcre.recursion_limit=100000 -;Enables or disables JIT compilation of patterns. This requires the PCRE -;library to be compiled with JIT support. +; Enables or disables JIT compilation of patterns. This requires the PCRE +; library to be compiled with JIT support. pcre.jit=0 [Pdo] @@ -973,13 +972,8 @@ pcre.jit=0 ;pdo_odbc.db2_instance_name [Pdo_mysql] -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/pdo_mysql.cache_size -pdo_mysql.cache_size = 2000 - ; Default socket name for local MySQL connects. If empty, uses the built-in ; MySQL defaults. -; http://php.net/pdo_mysql.default-socket pdo_mysql.default_socket= [Phar] @@ -1002,12 +996,12 @@ sendmail_path = /usr/sbin/sendmail -t -i ;mail.force_extra_parameters = ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = On +mail.add_x_header = Off ; The path to a log file that will log all mail() calls. Log entries include ; the full path of the script, line number, To address and headers. ;mail.log = -; Log mail to syslog; +; Log mail to syslog (Event Log on Windows). ;mail.log = syslog [ODBC] @@ -1051,8 +1045,6 @@ odbc.defaultlrl = 4096 ; http://php.net/odbc.defaultbinmode odbc.defaultbinmode = 1 -;birdstep.max_links = -1 - [Interbase] ; Allow or prevent persistent links. ibase.allow_persistent = 1 @@ -1102,10 +1094,6 @@ mysqli.allow_persistent = On ; http://php.net/mysqli.max-links mysqli.max_links = -1 -; If mysqlnd is used: Number of cache slots for the internal result set cache -; http://php.net/mysqli.cache_size -mysqli.cache_size = 2000 - ; Default port number for mysqli_connect(). If unset, mysqli_connect() will use ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look @@ -1140,12 +1128,10 @@ mysqli.reconnect = Off [mysqlnd] ; Enable / Disable collection of general statistics by mysqlnd which can be ; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_statistics mysqlnd.collect_statistics = On ; Enable / Disable collection of memory usage statistics by mysqlnd which can be ; used to tune and monitor MySQL operations. -; http://php.net/mysqlnd.collect_memory_statistics mysqlnd.collect_memory_statistics = Off ; Records communication from all extensions using mysqlnd to the specified log @@ -1154,29 +1140,23 @@ mysqlnd.collect_memory_statistics = Off ;mysqlnd.debug = ; Defines which queries will be logged. -; http://php.net/mysqlnd.log_mask ;mysqlnd.log_mask = 0 ; Default size of the mysqlnd memory pool, which is used by result sets. -; http://php.net/mysqlnd.mempool_default_size ;mysqlnd.mempool_default_size = 16000 ; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -; http://php.net/mysqlnd.net_cmd_buffer_size ;mysqlnd.net_cmd_buffer_size = 2048 ; Size of a pre-allocated buffer used for reading data sent by the server in ; bytes. -; http://php.net/mysqlnd.net_read_buffer_size ;mysqlnd.net_read_buffer_size = 32768 ; Timeout for network requests in seconds. -; http://php.net/mysqlnd.net_read_timeout ;mysqlnd.net_read_timeout = 31536000 ; SHA-256 Authentication Plugin related. File with the MySQL server public RSA ; key. -; http://php.net/mysqlnd.sha256_server_public_key ;mysqlnd.sha256_server_public_key = [PostgreSQL] @@ -1255,10 +1235,11 @@ session.save_handler = files ;session.save_path = "/tmp" ; Whether to use strict session mode. -; Strict session mode does not accept uninitialized session ID and regenerate -; session ID if browser sends uninitialized session ID. Strict mode protects -; applications from session fixation via session adoption vulnerability. It is -; disabled by default for maximum compatibility, but enabling it is encouraged. +; Strict session mode does not accept an uninitialized session ID, and +; regenerates the session ID if the browser sends an uninitialized session ID. +; Strict mode protects applications from session fixation via a session adoption +; vulnerability. It is disabled by default for maximum compatibility, but +; enabling it is encouraged. ; https://wiki.php.net/rfc/strict_sessions session.use_strict_mode = 0 @@ -1296,11 +1277,12 @@ session.cookie_path = / ; http://php.net/session.cookie-domain session.cookie_domain = -; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. +; Whether or not to add the httpOnly flag to the cookie, which makes it +; inaccessible to browser scripting languages such as JavaScript. ; http://php.net/session.cookie-httponly session.cookie_httponly = -; Handler used to serialize data. php is the standard serializer of PHP. +; Handler used to serialize data. php is the standard serializer of PHP. ; http://php.net/session.serialize-handler session.serialize_handler = php @@ -1309,7 +1291,7 @@ session.serialize_handler = php ; gc_probability/gc_divisor. Where session.gc_probability is the numerator ; and gc_divisor is the denominator in the equation. Setting this value to 1 ; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. +; the gc will run on any given request. ; Default Value: 1 ; Development Value: 1 ; Production Value: 1 @@ -1319,10 +1301,10 @@ session.gc_probability = 1 ; Defines the probability that the 'garbage collection' process is started on every ; session initialization. The probability is calculated by using the following equation: ; gc_probability/gc_divisor. Where session.gc_probability is the numerator and -; session.gc_divisor is the denominator in the equation. Setting this value to 1 -; when the session.gc_divisor value is 100 will give you approximately a 1% chance -; the gc will run on any give request. Increasing this value to 1000 will give you -; a 0.1% chance the gc will run on any give request. For high volume production servers, +; session.gc_divisor is the denominator in the equation. Setting this value to 100 +; when the session.gc_probability value is 1 will give you approximately a 1% chance +; the gc will run on any given request. Increasing this value to 1000 will give you +; a 0.1% chance the gc will run on any given request. For high volume production servers, ; this is a more efficient approach. ; Default Value: 100 ; Development Value: 1000 @@ -1373,7 +1355,7 @@ session.use_trans_sid = 0 ; Set session ID character length. This value could be between 22 to 256. ; Shorter length than default is supported only for compatibility reason. ; Users should use 32 or more chars. -; http://php.net/session.sid_length +; http://php.net/session.sid-length ; Default Value: 32 ; Development Value: 26 ; Production Value: 26 @@ -1392,7 +1374,7 @@ session.sid_length = 26 session.trans_sid_tags = "a=href,area=href,frame=src,form=" ; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute pathes, target hosts must be specified +; To enable rewrites for absolute paths, target hosts must be specified ; at RUNTIME. i.e. use ini_set() ;
tags is special. PHP will check action attribute's URL regardless ; of session.trans_sid_tags setting. @@ -1481,7 +1463,7 @@ zend.assertions = -1 ; http://php.net/assert.active ;assert.active = On -; Throw an AssertationException on failed assertions +; Throw an AssertionError on failed assertions ; http://php.net/assert.exception ;assert.exception = On @@ -1517,9 +1499,9 @@ zend.assertions = -1 ; Use of this INI entry is deprecated, use global input_encoding instead. ; http input encoding. -; mbstring.encoding_traslation = On is needed to use this setting. +; mbstring.encoding_translation = On is needed to use this setting. ; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < intput_encoding < mbsting.http_input +; The precedence is: default_charset < input_encoding < mbsting.http_input ; http://php.net/mbstring.http-input ;mbstring.http_input = diff --git a/php73.spec b/php73.spec index 92b93f5..60d9ce5 100644 --- a/php73.spec +++ b/php73.spec @@ -8,20 +8,20 @@ # Please preserve changelog entries # # API/ABI check -%global apiver 20170718 -%global zendver 20170718 +%global apiver 20180731 +%global zendver 20180731 %global pdover 20170320 # Extension version %global fileinfover 1.0.5 %global oci8ver 2.1.8 %global zipver 1.13.0 -%global jsonver 1.6.0 +%global jsonver 1.7.0 # Adds -z now to the linker flags %global _hardened_build 1 # version used for php embedded library soname -%global embed_version 7.2 +%global embed_version 7.3 %global mysql_sock %(mysql_config --socket 2>/dev/null || echo /var/lib/mysql/mysql.sock) @@ -45,7 +45,7 @@ # Optional components; pass "--with mssql" etc to rpmbuild. %global with_oci8 %{?_with_oci8:1}%{!?_with_oci8:0} -%if 0%{?fedora} >= 22 || 0%{?rhel} >= 8 +%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 %global with_libpcre 1 %else %global with_libpcre 0 @@ -111,8 +111,8 @@ %global db_devel libdb-devel %endif -%global upver 7.2.9 -#global rcver RC1 +%global upver 7.3.0 +%global rcver beta2 Summary: PHP scripting language for creating dynamic web sites Name: php @@ -168,21 +168,18 @@ Patch45: php-7.2.3-ldap_r.patch Patch46: php-7.2.4-fixheader.patch # drop "Configure command" from phpinfo output Patch47: php-5.6.3-phpinfo.patch -# getallheaders for FPM backported from 7.3 -Patch48: php-7.2.8-getallheaders.patch # RC Patch Patch91: php-7.2.0-oci8conf.patch # Upstream fixes (100+) +Patch100: php-upstream.patch # Security fixes (200+) # Fixes for tests (300+) # Factory is droped from system tzdata Patch300: php-7.0.10-datetests.patch -# Revert changes for pcre < 8.34 -Patch301: php-7.0.0-oldpcre.patch # WIP @@ -205,7 +202,9 @@ BuildRequires: sqlite-devel >= 3.0.0 %endif BuildRequires: zlib-devel, smtpdaemon, libedit-devel %if %{with_libpcre} -BuildRequires: pcre-devel >= 8.20 +BuildRequires: pcre2-devel >= 10.30 +%else +Provides: bundled(pcre2) = 10.31 %endif BuildRequires: bzip2 BuildRequires: perl @@ -224,6 +223,7 @@ BuildRequires: /bin/ps %if 0%{?rhel} Obsoletes: php53, php53u, php54w, php55u, php55w, php56u, php56w, mod_php70u, php70w, mod_php71u, mod_php71w, mod_php72u, mod_php72w +Obsoletes: mod_php73u, mod_php73w %endif # Avoid obsoleting php54 from RHSCL Obsoletes: php54 > 5.4 @@ -283,6 +283,7 @@ Provides: php-readline, php-readline%{?_isa} %if 0%{?rhel} Obsoletes: php53-cli, php53u-cli, php54-cli, php54w-cli, php55u-cli, php55w-cli, php56u-cli, php56w-cli Obsoletes: php70u-cli, php70w-cli, php71u-cli, php71w-cli, php72u-cli, php72w-cli +Obsoletes: php73u-cli, php73w-cli %endif %description cli @@ -296,6 +297,7 @@ Summary: The interactive PHP debugger Requires: php-common%{?_isa} = %{version}-%{release} %if 0%{?rhel} Obsoletes: php56u-dbg, php56w-dbg, php70u-dbg, php70w-phpdbg, php71u-dbg, php71w-phpdbg, php72u-dbg, php72w-phpdbg +Obsoletes: php73u-dbg, php73w-phpdbg %endif %description dbg The php-dbg package contains the interactive PHP debugger. @@ -335,6 +337,7 @@ Requires: nginx-filesystem %if 0%{?rhel} Obsoletes: php53-fpm, php53u-fpm, php54-fpm, php54w-fpm, php55u-fpm, php55w-fpm, php56u-fpm, php56w-fpm Obsoletes: php70u-fpm, php70w-fpm, php71u-fpm, php71w-fpm, php72u-fpm, php72w-fpm +Obsoletes: php73u-fpm, php73w-fpm %endif %description fpm @@ -350,6 +353,7 @@ Requires: php-common%{?_isa} = %{version}-%{release} %if 0%{?rhel} Obsoletes: php53-litespeed, php53u-litespeed, php54-litespeed, php54w-litespeed, php55u-litespeed, php55w-litespeed, php56u-litespeed, php56w-litespeed Obsoletes: php70u-litespeed, php70w-litespeed, php71u-litespeed, php71w-litespeed, php72u-litespeed, php72w-litespeed +Obsoletes: php73u-litespeed, php73w-litespeed %endif %description litespeed @@ -409,6 +413,7 @@ Obsoletes: php-mhash < 5.3.0 Obsoletes: php53-mhash, php53u-mhash Obsoletes: php53-common, php53u-common, php54-common, php54w-common, php55u-common, php55w-common, php56u-common, php56w-common Obsoletes: php70u-common, php70w-common, php71u-common, php71w-common, php72u-common, php72w-common +Obsoletes: php73u-common, php73w-common %endif %description common @@ -426,7 +431,7 @@ Requires: gcc Requires: gcc-c++ Requires: libtool %if %{with_libpcre} -Requires: pcre-devel%{?_isa} +Requires: pcre2-devel%{?_isa} %endif Obsoletes: php-pecl-pdo-devel Obsoletes: php-pecl-json-devel < %{jsonver} @@ -438,6 +443,7 @@ Provides: php-zts-devel%{?_isa} = %{version}-%{release} %if 0%{?rhel} Obsoletes: php53-devel, php53u-devel, php54-devel, php54w-devel, php55u-devel, php55w-devel, php56u-devel, php56w-devel Obsoletes: php70u-devel, php70w-devel, php71u-devel, php71w-devel, php72u-devel, php72w-devel +Obsoletes: php73u-devel, php73w-devel %endif %description devel @@ -458,6 +464,7 @@ Provides: php-pecl(opcache)%{?_isa} = %{version} %if 0%{?rhel} Obsoletes: php55u-opcache, php55w-opcache, php56u-opcache, php56w-opcache Obsoletes: php70u-opcache, php70w-opcache, php71u-opcache, php71w-opcache, php72u-opcache, php72w-opcache +Obsoletes: php73u-opcache, php73w-opcache %endif %description opcache @@ -478,6 +485,7 @@ BuildRequires: krb5-devel, openssl-devel, libc-client-devel %if 0%{?rhel} Obsoletes: php53-imap, php53u-imap, php54-imap, php54w-imap, php55u-imap, php55w-imap, php56u-imap, php56w-imap Obsoletes: php70u-imap, php70w-imap, php71u-imap, php71w-imap, php72u-imap, php72w-imap +Obsoletes: php73u-imap, php73w-imap %endif %description imap @@ -495,6 +503,7 @@ BuildRequires: cyrus-sasl-devel, openldap-devel, openssl-devel %if 0%{?rhel} Obsoletes: php53-ldap, php53u-ldap, php54-ldap, php54w-ldap, php55u-ldap, php55w-ldap, php56u-ldap, php56w-ldap Obsoletes: php70u-ldap, php70w-ldap, php71u-ldap, php71w-ldap, php72u-ldap, php72w-ldap +Obsoletes: php73u-ldap, php73w-ldap %endif %description ldap @@ -519,6 +528,7 @@ Provides: php-pdo_sqlite, php-pdo_sqlite%{?_isa} %if 0%{?rhel} Obsoletes: php53-pdo, php53u-pdo, php54-pdo, php54w-pdo, php55u-pdo, php55w-pdo, php56u-pdo, php56w-pdo Obsoletes: php70u-pdo, php70w-pdo, php71u-pdo, php71w-pdo, php72u-pdo, php72w-pdo +Obsoletes: php73u-pdo, php73w-pdo %endif %description pdo @@ -541,8 +551,10 @@ Obsoletes: php-mysql < %{version}-%{release} %if 0%{?rhel} Obsoletes: php53-mysqlnd, php53u-mysqlnd, php54-mysqlnd, php54w-mysqlnd, php55u-mysqlnd, php55w-mysqlnd, php56u-mysqlnd, php56w-mysqlnd Obsoletes: php70u-mysqlnd, php70w-mysqlnd, php71u-mysqlnd, php71w-mysqlnd, php72u-mysqlnd, php72w-mysqlnd +Obsoletes: php73u-mysqlnd, php73w-mysqlnd Obsoletes: php53-mysql, php53u-mysql, php54-mysql, php54w-mysql, php55u-mysql, php55w-mysql, php56u-mysql, php56w-mysql Obsoletes: php70u-mysql, php70w-mysql, php71u-mysql, php71w-mysql, php72u-mysql, php72w-mysql +Obsoletes: php73u-mysql, php73w-mysql %endif %description mysqlnd @@ -566,6 +578,7 @@ BuildRequires: krb5-devel, openssl-devel, postgresql-devel %if 0%{?rhel} Obsoletes: php53-pgsql, php53u-pgsql, php54-pgsql, php54w-pgsql, php55u-pgsql, php55w-pgsql, php56u-pgsql, php56w-pgsql Obsoletes: php70u-pgsql, php70w-pgsql, php71u-pgsql, php71w-pgsql, php72u-pgsql, php72w-pgsql +Obsoletes: php73u-pgsql, php73w-pgsql %endif %description pgsql @@ -590,6 +603,7 @@ Provides: php-sysvmsg, php-sysvmsg%{?_isa} %if 0%{?rhel} Obsoletes: php53-process, php53u-process, php54-process, php54w-process, php55u-process, php55w-process, php56u-process, php56w-process Obsoletes: php70u-process, php70w-process, php71u-process, php71w-process, php72u-process, php72w-process +Obsoletes: php73u-process, php73w-process %endif %description process @@ -610,6 +624,7 @@ BuildRequires: unixODBC-devel %if 0%{?rhel} Obsoletes: php53-odbc, php53u-odbc, php54-odbc, php54w-odbc, php55u-odbc, php55w-odbc, php56u-odbc, php56w-odbc Obsoletes: php70u-odbc, php70w-odbc, php71u-odbc, php71w-odbc, php72u-odbc, php72w-odbc +Obsoletes: php73u-odbc, php73w-odbc %endif %description odbc @@ -631,6 +646,7 @@ BuildRequires: libxml2-devel %if 0%{?rhel} Obsoletes: php53-soap, php53u-soap, php54-soap, php54w-soap, php55u-soap, php55w-soap, php56u-soap, php56w-soap Obsoletes: php70u-soap, php70w-soap, php71u-soap, php71w-soap, php72u-soap, php72w-soap +Obsoletes: php73u-soap, php73w-soap %endif %description soap @@ -650,6 +666,7 @@ Provides: php-pdo_firebird, php-pdo_firebird%{?_isa} %if 0%{?rhel} Obsoletes: php53-interbase, php53u-interbase, php54-interbase, php54w-interbase, php55u-interbase, php55w-interbase, php56u-interbase, php56w-interbase Obsoletes: php70u-interbase, php70w-interbase, php71u-interbase, php71w-interbase, php72u-interbase, php72w-interbase +Obsoletes: php73u-interbase, php73w-interbase %endif %description interbase @@ -683,6 +700,7 @@ AutoReq: 0 %if 0%{?rhel} Obsoletes: php53-oci8, php53u-oci8, php54-oci8, php54w-oci8, php55u-oci8, php55w-oci8, php56u-oci8, php56w-oci8 Obsoletes: php70u-oci8, php70w-oci8, php71u-oci8, php71w-oci8, php72u-oci8, php72w-oci8 +Obsoletes: php73u-oci8, php73w-oci8 %endif %description oci8 @@ -714,6 +732,7 @@ BuildRequires: net-snmp-devel %if 0%{?rhel} Obsoletes: php53-snmp, php53u-snmp, php54-snmp, php54w-snmp, php55u-snmp, php55w-snmp, php56u-snmp, php56w-snmp Obsoletes: php70u-snmp, php70w-snmp, php71u-snmp, php71w-snmp, php72u-snmp, php72w-snmp +Obsoletes: php73u-snmp, php73w-snmp %endif %description snmp @@ -739,6 +758,7 @@ BuildRequires: libxslt-devel >= 1.0.18-1, libxml2-devel >= 2.4.14-1 %if 0%{?rhel} Obsoletes: php53-xml, php53u-xml, php54-xml, php54w-xml, php55u-xml, php55w-xml, php56u-xml, php56w-xml Obsoletes: php70u-xml, php70w-xml, php71u-xml, php71w-xml, php72u-xml, php72w-xml +Obsoletes: php73u-xml, php73w-xml %endif %description xml @@ -756,6 +776,7 @@ Requires: php-xml%{?_isa} = %{version}-%{release} %if 0%{?rhel} Obsoletes: php53-xmlrpc, php53u-xmlrpc, php54-xmlrpc, php54w-xmlrpc, php55u-xmlrpc, php55w-xmlrpc, php56u-xmlrpc, php56w-xmlrpc Obsoletes: php70u-xmlrpc, php70w-xmlrpc, php71u-xmlrpc, php71w-xmlrpc, php72u-xmlrpc, php72w-xmlrpc +Obsoletes: php73u-xmlrpc, php73w-xmlrpc %endif %description xmlrpc @@ -780,6 +801,7 @@ Requires: php-common%{?_isa} = %{version}-%{release} %if 0%{?rhel} Obsoletes: php53-mbstring, php53u-mbstring, php54-mbstring, php54w-mbstring, php55u-mbstring, php55w-mbstring, php56u-mbstring, php56w-mbstring Obsoletes: php70u-mbstring, php70w-mbstring, php71u-mbstring, php71w-mbstring, php72u-mbstring, php72w-mbstring +Obsoletes: php73u-mbstring, php73w-mbstring %endif %description mbstring @@ -816,6 +838,7 @@ Provides: bundled(gd) = 2.0.35 %if 0%{?rhel} Obsoletes: php53-gd, php53u-gd, php54-gd, php54w-gd, php55u-gd, php55w-gd, php56u-gd, php56w-gd Obsoletes: php70u-gd, php70w-gd, php71u-gd, php71w-gd, php72u-gd, php72w-gd +Obsoletes: php73u-gd, php73w-gd %endif %description gd @@ -832,6 +855,7 @@ Requires: php-common%{?_isa} = %{version}-%{release} %if 0%{?rhel} Obsoletes: php53-bcmath, php53u-bcmath, php54-bcmath, php54w-bcmath, php55u-bcmath, php55w-bcmath, php56u-bcmath, php56w-bcmath Obsoletes: php70u-bcmath, php70w-bcmath, php71u-bcmath, php71w-bcmath, php72u-bcmath, php72w-bcmath +Obsoletes: php73u-bcmath, php73w-bcmath %endif Provides: bundled(libbcmath) @@ -849,6 +873,7 @@ Requires: php-common%{?_isa} = %{version}-%{release} %if 0%{?rhel} Obsoletes: php53-gmp, php53u-gmp, php54-gmp, php54w-gmp, php55u-gmp, php55w-gmp, php56u-gmp, php56w-gmp Obsoletes: php70u-gmp, php70w-gmp, php71u-gmp, php71w-gmp, php72u-gmp, php72w-gmp +Obsoletes: php73u-gmp, php73w-gmp %endif %description gmp @@ -868,6 +893,7 @@ Requires: php-common%{?_isa} = %{version}-%{release} %if 0%{?rhel} Obsoletes: php53-dba, php53u-dba, php54-dba, php54w-dba, php55u-dba, php55w-dba, php56u-dba, php56w-dba Obsoletes: php70u-dba, php70w-dba, php71u-dba, php71w-dba, php72u-dba, php72w-dba +Obsoletes: php73u-dba, php73w-dba %endif %description dba @@ -884,6 +910,7 @@ BuildRequires: libtidy-devel %if 0%{?rhel} Obsoletes: php53-tidy, php53u-tidy, php54-tidy, php54w-tidy, php55u-tidy, php55w-tidy, php56u-tidy, php56w-tidy Obsoletes: php70u-tidy, php70w-tidy, php71u-tidy, php71w-tidy, php72u-tidy, php72w-tidy +Obsoletes: php73u-tidy, php73w-tidy %endif %description tidy @@ -901,6 +928,7 @@ Obsoletes: php-mssql < %{version}-%{release} %if 0%{?rhel} Obsoletes: php53-mssql, php53u-mssql, php54-mssql, php54w-mssql, php55u-mssql, php55w-mssql, php56u-mssql, php56w-mssql Obsoletes: php70u-pdo-dblib, php70w-pdo_dblib, php71u-pdo-dblib, php71w-pdo_dblib, php72u-pdo-dblib, php72w-pdo_dblib +Obsoletes: php73u-pdo-dblib, php73w-pdo_dblib %endif %description pdo-dblib @@ -918,6 +946,7 @@ Provides: php-embedded-devel%{?_isa} = %{version}-%{release} %if 0%{?rhel} Obsoletes: php53-embedded, php53u-embedded, php54-embedded, php54w-embedded, php55u-embedded, php55w-embedded, php56u-embedded, php56w-embedded Obsoletes: php70u-embedded, php70w-embedded, php71u-embedded, php71w-embedded, php72u-embedded, php72w-embedded +Obsoletes: php73u-embedded, php73w-embedded %endif %description embedded @@ -934,6 +963,7 @@ BuildRequires: aspell-devel >= 0.50.0 %if 0%{?rhel} Obsoletes: php53-pspell, php53u-pspell, php54-pspell, php54w-pspell, php55u-pspell, php55w-pspell, php56u-pspell, php56w-pspell Obsoletes: php70u-pspell, php70w-pspell, php71u-pspell, php71w-pspell, php72u-pspell, php72w-pspell +Obsoletes: php73u-pspell, php73w-pspell %endif %description pspell @@ -950,6 +980,7 @@ BuildRequires: recode-devel %if 0%{?rhel} Obsoletes: php53-recode, php53u-recode, php54-recode, php54w-recode, php55u-recode, php55w-recode, php56u-recode, php56w-recode Obsoletes: php70u-recode, php70w-recode, php71u-recode, php71w-recode, php72u-recode, php72w-recode +Obsoletes: php73u-recode, php73w-recode %endif %description recode @@ -967,6 +998,7 @@ BuildRequires: libicu-devel >= 50 %if 0%{?rhel} Obsoletes: php53-intl, php53u-intl, php54-intl, php54w-intl, php55u-intl, php55w-intl, php56u-intl, php56w-intl Obsoletes: php70u-intl, php70w-intl, php71u-intl, php71w-intl, php72u-intl, php72w-intl +Obsoletes: php73u-intl, php73w-intl %endif %description intl @@ -983,6 +1015,7 @@ BuildRequires: enchant-devel >= 1.2.4 %if 0%{?rhel} Obsoletes: php53-enchant, php53u-enchant, php54-enchant, php54w-enchant, php55u-enchant, php55w-enchant, php56u-enchant, php56w-enchant Obsoletes: php70u-enchant, php70w-enchant, php71u-enchant, php71w-enchant, php72u-enchant, php72w-enchant +Obsoletes: php73u-enchant, php73w-enchant %endif %description enchant @@ -1004,6 +1037,7 @@ Provides: php-pecl-zip%{?_isa} = %{zipver} %if 0%{?rhel} Obsoletes: php53-zip, php53u-zip, php54-zip, php54w-zip, php55u-zip, php55w-zip, php56u-zip, php56w-zip Obsoletes: php70u-zip, php70w-zip, php71u-zip, php71w-zip, php72u-zip, php72w-zip +Obsoletes: php73u-zip, php73w-zip %endif %if %{with_libzip} # 0.11.1 required, but 1.0.1 is bundled @@ -1030,6 +1064,7 @@ Provides: php-pecl-json%{?_isa} = %{jsonver} %if 0%{?rhel} Obsoletes: php53-json, php53u-json, php54-json, php54w-json, php55u-json, php55w-json, php56u-json, php56w-json Obsoletes: php70u-json, php70w-json, php71u-json, php71w-json, php72u-json, php72w-json +Obsoletes: php73u-json, php73w-json %endif %description json @@ -1051,6 +1086,7 @@ Provides: php-pecl(libsodium) = %{version} Provides: php-pecl(libsodium)%{?_isa} = %{version} %if 0%{?rhel} Obsoletes: php72u-sodium, php72w-sodium +Obsoletes: php73u-sodium, php73w-sodium %endif %description sodium @@ -1082,11 +1118,11 @@ low-level PHP extension for the libsodium cryptographic library. %endif %patch46 -p1 -b .fixheader %patch47 -p1 -b .phpinfo -%patch48 -p1 -b .getallheaders %patch91 -p1 -b .remi-oci8 # upstream patches +%patch100 -p1 -b .up # security patches @@ -1094,12 +1130,6 @@ low-level PHP extension for the libsodium cryptographic library. %if 0%{?fedora} >= 25 || 0%{?rhel} >= 6 %patch300 -p1 -b .datetests %endif -%if %{with_libpcre} -if ! pkg-config libpcre --atleast-version 8.34 ; then -# Only apply when system libpcre < 8.34 -%patch301 -p1 -b .pcre834 -fi -%endif # WIP patch @@ -1115,7 +1145,6 @@ cp ext/mbstring/libmbfl/LICENSE libmbfl_LICENSE cp ext/mbstring/oniguruma/COPYING oniguruma_COPYING cp ext/mbstring/ucgendat/OPENLDAP_LICENSE ucgendat_LICENSE cp ext/fileinfo/libmagic/LICENSE libmagic_LICENSE -cp ext/phar/LICENSE phar_LICENSE cp ext/bcmath/libbcmath/COPYING.LIB libbcmath_COPYING cp ext/date/lib/LICENSE.rst timelib_LICENSE @@ -1138,6 +1167,8 @@ rm ext/sockets/tests/mcast_ipv?_recv.phpt # cause stack exhausion rm Zend/tests/bug54268.phpt rm Zend/tests/bug68412.phpt +# tar issue +rm ext/zlib/tests/004-mb.phpt # avoid issue when 2 builds run simultaneously %ifarch x86_64 sed -e 's/64321/64322/' -i ext/openssl/tests/*.phpt @@ -1988,7 +2019,6 @@ fi %doc CODING_STANDARDS CREDITS EXTENSIONS NEWS README* %license LICENSE TSRM_LICENSE %license libmagic_LICENSE -%license phar_LICENSE %license timelib_LICENSE %doc php.ini-* %config(noreplace) %{_sysconfdir}/php.ini @@ -2142,6 +2172,10 @@ fi %changelog +* Tue Aug 21 2018 Remi Collet - 7.3.0~beta2-1 +- update to 7.3.0beta2 +- bump API numbers + * Wed Aug 15 2018 Remi Collet - 7.2.9-1 - Update to 7.2.9 - http://www.php.net/releases/7_2_9.php -- cgit