diff options
| author | Remi Collet <remi@remirepo.net> | 2021-09-02 09:35:47 +0200 | 
|---|---|---|
| committer | Remi Collet <remi@remirepo.net> | 2021-09-02 09:35:47 +0200 | 
| commit | 329a894341b196feda4dce9db40401614faf7947 (patch) | |
| tree | 3dbd9b61e7215332df55c4b38d15ccae4ad6e02e | |
| parent | f847f63e240f9b94ffae9895b21f6da3804afd82 (diff) | |
update to 8.1.0RC1
bump API version
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | 10-opcache.ini | 4 | ||||
| -rw-r--r-- | failed.txt | 7 | ||||
| -rw-r--r-- | php-8.0.0-parser.patch | 2 | ||||
| -rw-r--r-- | php-8.0.0-phpinfo.patch | 118 | ||||
| -rw-r--r-- | php-8.0.10-phar-sha.patch | 515 | ||||
| -rw-r--r-- | php-8.0.10-snmp-sha.patch | 143 | ||||
| -rw-r--r-- | php-8.0.6-deprecated.patch | 400 | ||||
| -rw-r--r-- | php-8.1.0-libdb.patch (renamed from php-7.4.0-libdb.patch) | 4 | ||||
| -rw-r--r-- | php-8.1.0-phpinfo.patch | 44 | ||||
| -rw-r--r-- | php-8.1.0-systzdata-v21.patch (renamed from php-8.0.10-systzdata-v20.patch) | 36 | ||||
| -rw-r--r-- | php.ini | 354 | ||||
| -rw-r--r-- | php81.spec | 75 | 
13 files changed, 291 insertions, 1412 deletions
| @@ -8,3 +8,4 @@ package-*.xml  *.src.rpm  */*rpm  tembed +TODO diff --git a/10-opcache.ini b/10-opcache.ini index a5be172..d188ef0 100644 --- a/10-opcache.ini +++ b/10-opcache.ini @@ -136,12 +136,12 @@ opcache.huge_code_pages=0  ; Specifies a PHP script that is going to be compiled and executed at server  ; start-up. -; http://php.net/opcache.preload +; https://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 +; https://php.net/opcache.preload_user  ;opcache.preload_user=  ; Prevents caching files that are less than this number of seconds old. It @@ -1,14 +1,15 @@ -===== 8.0.10 (2021-08-26) +===== 8.1.0RC1 (2021-09-02)  $ grep -ar 'Tests failed' /var/lib/mock/{fc,el}*/build.log -/var/lib/mock/el7x/build.log:Tests failed    :     0 +/var/lib/mock/el7x/build.log:Tests failed    :     1  /var/lib/mock/el8x80/build.log:Tests failed  :     0 -/var/lib/mock/fc32x/build.log:Tests failed    :    0  /var/lib/mock/fc33x/build.log:Tests failed    :    0  /var/lib/mock/fc34x/build.log:Tests failed    :    0 +el7x: +	4	Bug #80963: DateTimeZone::getTransitions() truncated [ext/date/tests/bug80963.phpt]  1	proc_open give erratic test results :( diff --git a/php-8.0.0-parser.patch b/php-8.0.0-parser.patch index f5da3b5..f443f1d 100644 --- a/php-8.0.0-parser.patch +++ b/php-8.0.0-parser.patch @@ -11,6 +11,6 @@ diff -up ./build/gen_stub.php.syslib ./build/gen_stub.php  +        return;  +    }  + -     $version = "4.9.0"; +     $version = "4.12.0";       $phpParserDir = __DIR__ . "/PHP-Parser-$version";       if (!is_dir($phpParserDir)) { diff --git a/php-8.0.0-phpinfo.patch b/php-8.0.0-phpinfo.patch deleted file mode 100644 index 391d996..0000000 --- a/php-8.0.0-phpinfo.patch +++ /dev/null @@ -1,118 +0,0 @@ - -Drop "Configure Command" from phpinfo as it doesn't -provide any useful information. -The available extensions are not related to this command. - -Replace full GCC name by gcc in php -v output - - -Also apply - -From 9bf43c45908433d382f0499d529849172d0d8206 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@remirepo.net> -Date: Mon, 28 Dec 2020 08:33:09 +0100 -Subject: [PATCH] rename COMPILER and ARCHITECTURE macro (too generic) - ---- - configure.ac             |  4 ++-- - ext/standard/info.c      |  8 ++++---- - sapi/cli/php_cli.c       |  8 ++++---- - win32/build/confutils.js | 10 +++++----- - 4 files changed, 15 insertions(+), 15 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 9d9c8b155b07..143dc061346b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1289,10 +1289,10 @@ if test -n "${PHP_BUILD_PROVIDER}"; then -   AC_DEFINE_UNQUOTED(PHP_BUILD_PROVIDER,"$PHP_BUILD_PROVIDER",[build provider]) - fi - if test -n "${PHP_BUILD_COMPILER}"; then --  AC_DEFINE_UNQUOTED(COMPILER,"$PHP_BUILD_COMPILER",[used compiler for build]) -+  AC_DEFINE_UNQUOTED(PHP_BUILD_COMPILER,"$PHP_BUILD_COMPILER",[used compiler for build]) - fi - if test -n "${PHP_BUILD_ARCH}"; then --  AC_DEFINE_UNQUOTED(ARCHITECTURE,"$PHP_BUILD_ARCH",[build architecture]) -+  AC_DEFINE_UNQUOTED(PHP_BUILD_ARCH,"$PHP_BUILD_ARCH",[build architecture]) - fi -  - PHP_SUBST_OLD(PHP_INSTALLED_SAPIS) -diff --git a/ext/standard/info.c b/ext/standard/info.c -index 153cb6cde014..8ceef31d9fe4 100644 ---- a/ext/standard/info.c -+++ b/ext/standard/info.c -@@ -798,11 +798,11 @@ PHPAPI ZEND_COLD void php_print_info(int flag) - #ifdef PHP_BUILD_PROVIDER - 		php_info_print_table_row(2, "Build Provider", PHP_BUILD_PROVIDER); - #endif --#ifdef COMPILER --		php_info_print_table_row(2, "Compiler", COMPILER); -+#ifdef PHP_BUILD_COMPILER -+		php_info_print_table_row(2, "Compiler", PHP_BUILD_COMPILER); - #endif --#ifdef ARCHITECTURE --		php_info_print_table_row(2, "Architecture", ARCHITECTURE); -+#ifdef PHP_BUILD_ARCH -+		php_info_print_table_row(2, "Architecture", PHP_BUILD_ARCH); - #endif - #ifdef CONFIGURE_COMMAND - 		php_info_print_table_row(2, "Configure Command", CONFIGURE_COMMAND ); -diff --git a/sapi/cli/php_cli.c b/sapi/cli/php_cli.c -index 5092fb0ffd68..9d296acec631 100644 ---- a/sapi/cli/php_cli.c -+++ b/sapi/cli/php_cli.c -@@ -640,12 +640,12 @@ static int do_cli(int argc, char **argv) /* {{{ */ - #else - 					"NTS " - #endif --#ifdef COMPILER --					COMPILER -+#ifdef PHP_BUILD_COMPILER -+					PHP_BUILD_COMPILER - 					" " - #endif --#ifdef ARCHITECTURE --					ARCHITECTURE -+#ifdef PHP_BUILD_ARCH -+					PHP_BUILD_ARCH - 					" " - #endif - #if ZEND_DEBUG - -diff -up ./ext/standard/info.c.phpinfo ./ext/standard/info.c ---- ./ext/standard/info.c.phpinfo	2020-07-21 10:49:31.000000000 +0200 -+++ ./ext/standard/info.c	2020-07-21 11:41:56.295633523 +0200 -@@ -804,9 +804,6 @@ PHPAPI ZEND_COLD void php_print_info(int - #ifdef PHP_BUILD_ARCH - 		php_info_print_table_row(2, "Architecture", PHP_BUILD_ARCH); - #endif --#ifdef CONFIGURE_COMMAND --		php_info_print_table_row(2, "Configure Command", CONFIGURE_COMMAND ); --#endif -  - 		if (sapi_module.pretty_name) { - 			php_info_print_table_row(2, "Server API", sapi_module.pretty_name ); -diff -up ./ext/standard/tests/general_functions/phpinfo.phpt.phpinfo ./ext/standard/tests/general_functions/phpinfo.phpt ---- ./ext/standard/tests/general_functions/phpinfo.phpt.phpinfo	2020-07-21 10:49:31.000000000 +0200 -+++ ./ext/standard/tests/general_functions/phpinfo.phpt	2020-07-21 11:41:56.296633522 +0200 -@@ -17,7 +17,6 @@ PHP Version => %s -  - System => %s - Build Date => %s%a --Configure Command => %s - Server API => Command Line Interface - Virtual Directory Support => %s - Configuration File (php.ini) Path => %s -diff -up ./sapi/cli/php_cli.c.phpinfo ./sapi/cli/php_cli.c ---- ./sapi/cli/php_cli.c.phpinfo	2020-07-21 11:43:38.812475300 +0200 -+++ ./sapi/cli/php_cli.c	2020-07-21 11:43:45.783464540 +0200 -@@ -641,8 +641,7 @@ static int do_cli(int argc, char **argv) - 					"NTS " - #endif - #ifdef PHP_BUILD_COMPILER --					PHP_BUILD_COMPILER --					" " -+					"gcc " - #endif - #ifdef PHP_BUILD_ARCH - 					PHP_BUILD_ARCH diff --git a/php-8.0.10-phar-sha.patch b/php-8.0.10-phar-sha.patch deleted file mode 100644 index 7d6fa2c..0000000 --- a/php-8.0.10-phar-sha.patch +++ /dev/null @@ -1,515 +0,0 @@ -Backported for 8.0 from - - -From 8bb0c74e24359a11216824117ac3adf3d5ef7b71 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@remirepo.net> -Date: Thu, 5 Aug 2021 11:10:15 +0200 -Subject: [PATCH] switch phar to use sha256 signature by default - ---- - ext/phar/phar/pharcommand.inc                  | 2 +- - ext/phar/tests/create_new_and_modify.phpt      | 4 ++-- - ext/phar/tests/create_new_phar_c.phpt          | 4 ++-- - ext/phar/tests/phar_setsignaturealgo2.phpt     | 2 +- - ext/phar/tests/tar/phar_setsignaturealgo2.phpt | 2 +- - ext/phar/tests/zip/phar_setsignaturealgo2.phpt | 2 +- - ext/phar/util.c                                | 6 +++--- - ext/phar/zip.c                                 | 2 +- - 8 files changed, 12 insertions(+), 12 deletions(-) - -diff --git a/ext/phar/phar/pharcommand.inc b/ext/phar/phar/pharcommand.inc -index a31290eee75fe..5f698b4bec26b 100644 ---- a/ext/phar/phar/pharcommand.inc -+++ b/ext/phar/phar/pharcommand.inc -@@ -92,7 +92,7 @@ class PharCommand extends CLICommand -                 'typ' => 'select', -                 'val' => NULL, -                 'inf' => '<method> Selects the hash algorithm.', --                'select' => array('md5' => 'MD5','sha1' => 'SHA1') -+                'select' => array('md5' => 'MD5','sha1' => 'SHA1', 'sha256' => 'SHA256', 'sha512' => 'SHA512', 'openssl' => 'OPENSSL') -             ), -             'i' => array( -                 'typ' => 'regex', -diff --git a/ext/phar/tests/create_new_and_modify.phpt b/ext/phar/tests/create_new_and_modify.phpt -index 02e36c6cea2fe..32defcae8a639 100644 ---- a/ext/phar/tests/create_new_and_modify.phpt -+++ b/ext/phar/tests/create_new_and_modify.phpt -@@ -49,8 +49,8 @@ include $pname . '/b.php'; - <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?> - --EXPECTF-- - brand new! --string(40) "%s" --string(40) "%s" -+string(%d) "%s" -+string(%d) "%s" - bool(true) - modified! - another! -diff --git a/ext/phar/tests/create_new_phar_c.phpt b/ext/phar/tests/create_new_phar_c.phpt -index 566d3c4d5f8ad..bf6d740fd1d10 100644 ---- a/ext/phar/tests/create_new_phar_c.phpt -+++ b/ext/phar/tests/create_new_phar_c.phpt -@@ -20,7 +20,7 @@ var_dump($phar->getSignature()); - --EXPECTF-- - array(2) { -   ["hash"]=> --  string(40) "%s" -+  string(64) "%s" -   ["hash_type"]=> --  string(5) "SHA-1" -+  string(7) "SHA-256" - } -diff --git a/ext/phar/tests/phar_setsignaturealgo2.phpt b/ext/phar/tests/phar_setsignaturealgo2.phpt -index 293d3196713d8..4f31836fbbbcc 100644 ---- a/ext/phar/tests/phar_setsignaturealgo2.phpt -+++ b/ext/phar/tests/phar_setsignaturealgo2.phpt -@@ -52,7 +52,7 @@ array(2) { -   ["hash"]=> -   string(%d) "%s" -   ["hash_type"]=> --  string(5) "SHA-1" -+  string(7) "SHA-256" - } - array(2) { -   ["hash"]=> -diff --git a/ext/phar/tests/tar/phar_setsignaturealgo2.phpt b/ext/phar/tests/tar/phar_setsignaturealgo2.phpt -index 9923ac5c88476..cc10a241d739b 100644 ---- a/ext/phar/tests/tar/phar_setsignaturealgo2.phpt -+++ b/ext/phar/tests/tar/phar_setsignaturealgo2.phpt -@@ -51,7 +51,7 @@ array(2) { -   ["hash"]=> -   string(%d) "%s" -   ["hash_type"]=> --  string(5) "SHA-1" -+  string(7) "SHA-256" - } - array(2) { -   ["hash"]=> -diff --git a/ext/phar/tests/zip/phar_setsignaturealgo2.phpt b/ext/phar/tests/zip/phar_setsignaturealgo2.phpt -index 8de77479d7825..60fec578ee894 100644 ---- a/ext/phar/tests/zip/phar_setsignaturealgo2.phpt -+++ b/ext/phar/tests/zip/phar_setsignaturealgo2.phpt -@@ -78,7 +78,7 @@ array(2) { -   ["hash"]=> -   string(%d) "%s" -   ["hash_type"]=> --  string(5) "SHA-1" -+  string(7) "SHA-256" - } - array(2) { -   ["hash"]=> -diff --git a/ext/phar/util.c b/ext/phar/util.c -index 314acfe81a788..8d2db03b69601 100644 ---- a/ext/phar/util.c -+++ b/ext/phar/util.c -@@ -1798,6 +1798,8 @@ int phar_create_signature(phar_archive_d - 			*signature_length = 64; - 			break; - 		} -+		default: -+			phar->sig_flags = PHAR_SIG_SHA256; - 		case PHAR_SIG_SHA256: { - 			unsigned char digest[32]; - 			PHP_SHA256_CTX  context; -@@ -1894,8 +1896,6 @@ int phar_create_signature(phar_archive_d - 			*signature_length = siglen; - 		} - 		break; --		default: --			phar->sig_flags = PHAR_SIG_SHA1; - 		case PHAR_SIG_SHA1: { - 			unsigned char digest[20]; - 			PHP_SHA1_CTX  context; -diff --git a/ext/phar/zip.c b/ext/phar/zip.c -index 31d4bd2998215..c5e38cabf7b87 100644 ---- a/ext/phar/zip.c -+++ b/ext/phar/zip.c -@@ -1423,7 +1423,7 @@ int phar_zip_flush(phar_archive_data *phar, char *user_stub, zend_long len, int -  - 	memcpy(eocd.signature, "PK\5\6", 4); - 	if (!phar->is_data && !phar->sig_flags) { --		phar->sig_flags = PHAR_SIG_SHA1; -+		phar->sig_flags = PHAR_SIG_SHA256; - 	} - 	if (phar->sig_flags) { - 		PHAR_SET_16(eocd.counthere, zend_hash_num_elements(&phar->manifest) + 1); - -From c51af22fef988c1b2f92b7b9e3a9d745f7084815 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@remirepo.net> -Date: Thu, 5 Aug 2021 16:49:48 +0200 -Subject: [PATCH] implement openssl_256 and openssl_512 for phar singatures - ---- - ext/openssl/openssl.c                         |   1 + - ext/phar/phar.1.in                            |  10 +++- - ext/phar/phar.c                               |   8 +++- - ext/phar/phar/pharcommand.inc                 |  14 +++++- - ext/phar/phar_internal.h                      |   2 + - ext/phar/phar_object.c                        |  24 ++++++++-- - ext/phar/tests/files/openssl256.phar          | Bin 0 -> 7129 bytes - ext/phar/tests/files/openssl256.phar.pubkey   |   6 +++ - ext/phar/tests/files/openssl512.phar          | Bin 0 -> 7129 bytes - ext/phar/tests/files/openssl512.phar.pubkey   |   6 +++ - .../phar_get_supported_signatures_002a.phpt   |   6 ++- - .../tests/tar/phar_setsignaturealgo2.phpt     |  16 +++++++ - ext/phar/tests/test_signaturealgos.phpt       |   8 ++++ - ext/phar/util.c                               |  45 ++++++++++++++---- - 14 files changed, 128 insertions(+), 18 deletions(-) - create mode 100644 ext/phar/tests/files/openssl256.phar - create mode 100644 ext/phar/tests/files/openssl256.phar.pubkey - create mode 100644 ext/phar/tests/files/openssl512.phar - create mode 100644 ext/phar/tests/files/openssl512.phar.pubkey - -diff --git a/ext/phar/phar.1.in b/ext/phar/phar.1.in -index 77912b241dfd5..323e77b0e2a3b 100644 ---- a/ext/phar/phar.1.in -+++ b/ext/phar/phar.1.in -@@ -475,7 +475,15 @@ SHA512 - .TP - .PD - .B openssl --OpenSSL -+OpenSSL using SHA-1 -+.TP -+.PD -+.B openssl_sha256 -+OpenSSL using SHA-256 -+.TP -+.PD -+.B openssl_sha512 -+OpenSSL using SHA-512 -  - .SH SEE ALSO - For a more or less complete description of PHAR look here: -diff --git a/ext/phar/phar.c b/ext/phar/phar.c -index 77f21cef9da53..bc08e4edde05d 100644 ---- a/ext/phar/phar.c -+++ b/ext/phar/phar.c -@@ -869,6 +869,8 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, size_t fname_len, ch - 		PHAR_GET_32(sig_ptr, sig_flags); -  - 		switch(sig_flags) { -+			case PHAR_SIG_OPENSSL_SHA512: -+			case PHAR_SIG_OPENSSL_SHA256: - 			case PHAR_SIG_OPENSSL: { - 				uint32_t signature_len; - 				char *sig; -@@ -903,7 +905,7 @@ static int phar_parse_pharfile(php_stream *fp, char *fname, size_t fname_len, ch - 					return FAILURE; - 				} -  --				if (FAILURE == phar_verify_signature(fp, end_of_phar, PHAR_SIG_OPENSSL, sig, signature_len, fname, &signature, &sig_len, error)) { -+				if (FAILURE == phar_verify_signature(fp, end_of_phar, sig_flags, sig, signature_len, fname, &signature, &sig_len, error)) { - 					efree(savebuf); - 					efree(sig); - 					php_stream_close(fp); -@@ -3162,7 +3164,9 @@ int phar_flush(phar_archive_data *phar, char *user_stub, zend_long len, int conv -  - 				php_stream_write(newfile, digest, digest_len); - 				efree(digest); --				if (phar->sig_flags == PHAR_SIG_OPENSSL) { -+				if (phar->sig_flags == PHAR_SIG_OPENSSL || -+					phar->sig_flags == PHAR_SIG_OPENSSL_SHA256 || -+					phar->sig_flags == PHAR_SIG_OPENSSL_SHA512) { - 					phar_set_32(sig_buf, digest_len); - 					php_stream_write(newfile, sig_buf, 4); - 				} -diff --git a/ext/phar/phar/pharcommand.inc b/ext/phar/phar/pharcommand.inc -index 5f698b4bec26b..1b1eeca59c560 100644 ---- a/ext/phar/phar/pharcommand.inc -+++ b/ext/phar/phar/pharcommand.inc -@@ -92,7 +92,7 @@ class PharCommand extends CLICommand -                 'typ' => 'select', -                 'val' => NULL, -                 'inf' => '<method> Selects the hash algorithm.', --                'select' => array('md5' => 'MD5','sha1' => 'SHA1', 'sha256' => 'SHA256', 'sha512' => 'SHA512', 'openssl' => 'OPENSSL') -+                'select' => ['md5' => 'MD5','sha1' => 'SHA1', 'sha256' => 'SHA256', 'sha512' => 'SHA512', 'openssl' => 'OPENSSL', 'openssl_sha256' => 'OPENSSL_SHA256', 'openssl_sha512' => 'OPENSSL_SHA512'] -             ), -             'i' => array( -                 'typ' => 'regex', -@@ -156,6 +156,8 @@ class PharCommand extends CLICommand -         $hash_avail = Phar::getSupportedSignatures(); -         $hash_optional = array('SHA-256' => 'SHA256', -                                'SHA-512' => 'SHA512', -+                               'OpenSSL_sha256' => 'OpenSSL_SHA256', -+                               'OpenSSL_sha512' => 'OpenSSL_SHA512', -                                'OpenSSL' => 'OpenSSL'); -         if (!in_array('OpenSSL', $hash_avail)) { -             unset($phar_args['y']); -@@ -429,6 +431,16 @@ class PharCommand extends CLICommand -                     self::error("Cannot use OpenSSL signing without key.\n"); -                 } -                 return Phar::OPENSSL; -+            case 'openssl_sha256': -+                if (!$privkey) { -+                    self::error("Cannot use OpenSSL signing without key.\n"); -+                } -+                return Phar::OPENSSL_SHA256; -+            case 'openssl_sha512': -+                if (!$privkey) { -+                    self::error("Cannot use OpenSSL signing without key.\n"); -+                } -+                return Phar::OPENSSL_SHA512; -         } -     } -     // }}} -diff --git a/ext/phar/phar_internal.h b/ext/phar/phar_internal.h -index a9f81e2ab994a..30b408a8c4462 100644 ---- a/ext/phar/phar_internal.h -+++ b/ext/phar/phar_internal.h -@@ -88,6 +88,8 @@ - #define PHAR_SIG_SHA256           0x0003 - #define PHAR_SIG_SHA512           0x0004 - #define PHAR_SIG_OPENSSL          0x0010 -+#define PHAR_SIG_OPENSSL_SHA256   0x0011 -+#define PHAR_SIG_OPENSSL_SHA512   0x0012 -  - /* flags byte for each file adheres to these bitmasks. -    All unused values are reserved */ -diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c -index 9c1e5f2fa1eef..c05970e657f18 100644 ---- a/ext/phar/phar_object.c -+++ b/ext/phar/phar_object.c -@@ -1246,9 +1246,13 @@ PHP_METHOD(Phar, getSupportedSignatures) - 	add_next_index_stringl(return_value, "SHA-512", 7); - #ifdef PHAR_HAVE_OPENSSL - 	add_next_index_stringl(return_value, "OpenSSL", 7); -+	add_next_index_stringl(return_value, "OpenSSL_SHA256", 14); -+	add_next_index_stringl(return_value, "OpenSSL_SHA512", 14); - #else - 	if (zend_hash_str_exists(&module_registry, "openssl", sizeof("openssl")-1)) { - 		add_next_index_stringl(return_value, "OpenSSL", 7); -+		add_next_index_stringl(return_value, "OpenSSL_SHA256", 14); -+		add_next_index_stringl(return_value, "OpenSSL_SHA512", 14); - 	} - #endif - } -@@ -3028,6 +3032,8 @@ PHP_METHOD(Phar, setSignatureAlgorithm) - 		case PHAR_SIG_MD5: - 		case PHAR_SIG_SHA1: - 		case PHAR_SIG_OPENSSL: -+		case PHAR_SIG_OPENSSL_SHA256: -+		case PHAR_SIG_OPENSSL_SHA512: - 			if (phar_obj->archive->is_persistent && FAILURE == phar_copy_on_write(&(phar_obj->archive))) { - 				zend_throw_exception_ex(phar_ce_PharException, 0, "phar \"%s\" is persistent, unable to copy on write", phar_obj->archive->fname); - 				RETURN_THROWS(); -@@ -3066,19 +3072,25 @@ PHP_METHOD(Phar, getSignature) - 		add_assoc_stringl(return_value, "hash", phar_obj->archive->signature, phar_obj->archive->sig_len); - 		switch(phar_obj->archive->sig_flags) { - 			case PHAR_SIG_MD5: --				add_assoc_stringl(return_value, "hash_type", "MD5", 3); -+				add_assoc_string(return_value, "hash_type", "MD5"); - 				break; - 			case PHAR_SIG_SHA1: --				add_assoc_stringl(return_value, "hash_type", "SHA-1", 5); -+				add_assoc_string(return_value, "hash_type", "SHA-1"); - 				break; - 			case PHAR_SIG_SHA256: --				add_assoc_stringl(return_value, "hash_type", "SHA-256", 7); -+				add_assoc_string(return_value, "hash_type", "SHA-256"); - 				break; - 			case PHAR_SIG_SHA512: --				add_assoc_stringl(return_value, "hash_type", "SHA-512", 7); -+				add_assoc_string(return_value, "hash_type", "SHA-512"); - 				break; - 			case PHAR_SIG_OPENSSL: --				add_assoc_stringl(return_value, "hash_type", "OpenSSL", 7); -+				add_assoc_string(return_value, "hash_type", "OpenSSL"); -+				break; -+			case PHAR_SIG_OPENSSL_SHA256: -+				add_assoc_string(return_value, "hash_type", "OpenSSL_SHA256"); -+				break; -+			case PHAR_SIG_OPENSSL_SHA512: -+				add_assoc_string(return_value, "hash_type", "OpenSSL_SHA512"); - 				break; - 			default: - 				unknown = strpprintf(0, "Unknown (%u)", phar_obj->archive->sig_flags); -@@ -5103,6 +5115,8 @@ void phar_object_init(void) /* {{{ */ - 	REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "PHPS", PHAR_MIME_PHPS) - 	REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "MD5", PHAR_SIG_MD5) - 	REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "OPENSSL", PHAR_SIG_OPENSSL) -+	REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "OPENSSL_SHA256", PHAR_SIG_OPENSSL_SHA256) -+	REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "OPENSSL_SHA512", PHAR_SIG_OPENSSL_SHA512) - 	REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "SHA1", PHAR_SIG_SHA1) - 	REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "SHA256", PHAR_SIG_SHA256) - 	REGISTER_PHAR_CLASS_CONST_LONG(phar_ce_archive, "SHA512", PHAR_SIG_SHA512) -diff --git a/ext/phar/tests/phar_get_supported_signatures_002a.phpt b/ext/phar/tests/phar_get_supported_signatures_002a.phpt -index 06d811f2c35c2..639143b3d2c90 100644 ---- a/ext/phar/tests/phar_get_supported_signatures_002a.phpt -+++ b/ext/phar/tests/phar_get_supported_signatures_002a.phpt -@@ -14,7 +14,7 @@ phar.readonly=0 - var_dump(Phar::getSupportedSignatures()); - ?> - --EXPECT-- --array(5) { -+array(7) { -   [0]=> -   string(3) "MD5" -   [1]=> -@@ -25,4 +25,8 @@ array(5) { -   string(7) "SHA-512" -   [4]=> -   string(7) "OpenSSL" -+  [5]=> -+  string(14) "OpenSSL_SHA256" -+  [6]=> -+  string(14) "OpenSSL_SHA512" - } -diff --git a/ext/phar/tests/tar/phar_setsignaturealgo2.phpt b/ext/phar/tests/tar/phar_setsignaturealgo2.phpt -index cc10a241d739b..c2eb5d77a5bf0 100644 ---- a/ext/phar/tests/tar/phar_setsignaturealgo2.phpt -+++ b/ext/phar/tests/tar/phar_setsignaturealgo2.phpt -@@ -38,6 +38,10 @@ $pkey = ''; - openssl_pkey_export($private, $pkey, NULL, $config_arg); - $p->setSignatureAlgorithm(Phar::OPENSSL, $pkey); - var_dump($p->getSignature()); -+$p->setSignatureAlgorithm(Phar::OPENSSL_SHA512, $pkey); -+var_dump($p->getSignature()); -+$p->setSignatureAlgorithm(Phar::OPENSSL_SHA256, $pkey); -+var_dump($p->getSignature()); - } catch (Exception $e) { - echo $e->getMessage(); - } -@@ -83,3 +87,15 @@ array(2) { -   ["hash_type"]=> -   string(7) "OpenSSL" - } -+array(2) { -+  ["hash"]=> -+  string(%d) "%s" -+  ["hash_type"]=> -+  string(14) "OpenSSL_SHA512" -+} -+array(2) { -+  ["hash"]=> -+  string(%d) "%s" -+  ["hash_type"]=> -+  string(14) "OpenSSL_SHA256" -+} -diff --git a/ext/phar/util.c b/ext/phar/util.c -index 8d2db03b69601..515830bf2c70a 100644 ---- a/ext/phar/util.c -+++ b/ext/phar/util.c -@@ -34,7 +34,7 @@ - #include <openssl/ssl.h> - #include <openssl/pkcs12.h> - #else --static int phar_call_openssl_signverify(int is_sign, php_stream *fp, zend_off_t end, char *key, size_t key_len, char **signature, size_t *signature_len); -+static int phar_call_openssl_signverify(int is_sign, php_stream *fp, zend_off_t end, char *key, size_t key_len, char **signature, size_t *signature_len, php_uint32 sig_type); - #endif -  - /* for links to relative location, prepend cwd of the entry */ -@@ -1381,11 +1381,11 @@ static int phar_hex_str(const char *digest, size_t digest_len, char **signature) - /* }}} */ -  - #ifndef PHAR_HAVE_OPENSSL --static int phar_call_openssl_signverify(int is_sign, php_stream *fp, zend_off_t end, char *key, size_t key_len, char **signature, size_t *signature_len) /* {{{ */ -+static int phar_call_openssl_signverify(int is_sign, php_stream *fp, zend_off_t end, char *key, size_t key_len, char **signature, size_t *signature_len, php_uint32 sig_type) /* {{{ */ - { - 	zend_fcall_info fci; - 	zend_fcall_info_cache fcc; --	zval retval, zp[3], openssl; -+	zval retval, zp[4], openssl; - 	zend_string *str; -  - 	ZVAL_STRINGL(&openssl, is_sign ? "openssl_sign" : "openssl_verify", is_sign ? sizeof("openssl_sign")-1 : sizeof("openssl_verify")-1); -@@ -1402,6 +1402,14 @@ static int phar_call_openssl_signverify(int is_sign, php_stream *fp, zend_off_t - 	} else { - 		ZVAL_EMPTY_STRING(&zp[0]); - 	} -+	if (sig_type == PHAR_SIG_OPENSSL_SHA512) { -+		ZVAL_LONG(&zp[3], 9); /* value from openssl.c #define OPENSSL_ALGO_SHA512 9 */ -+	} else if (sig_type == PHAR_SIG_OPENSSL_SHA256) { -+		ZVAL_LONG(&zp[3], 7); /* value from openssl.c #define OPENSSL_ALGO_SHA256 7 */ -+	} else { -+		/* don't rely on default value which may change in the future */ -+		ZVAL_LONG(&zp[3], 1); /* value from openssl.c #define OPENSSL_ALGO_SHA1   1 */ -+	} -  - 	if ((size_t)end != Z_STRLEN(zp[0])) { - 		zval_ptr_dtor_str(&zp[0]); -@@ -1419,7 +1427,7 @@ static int phar_call_openssl_signverify(int is_sign, php_stream *fp, zend_off_t - 		return FAILURE; - 	} -  --	fci.param_count = 3; -+	fci.param_count = 4; - 	fci.params = zp; - 	Z_ADDREF(zp[0]); - 	if (is_sign) { -@@ -1482,12 +1490,22 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, uint32_t sig_type, - 	php_stream_rewind(fp); -  - 	switch (sig_type) { -+		case PHAR_SIG_OPENSSL_SHA512: -+		case PHAR_SIG_OPENSSL_SHA256: - 		case PHAR_SIG_OPENSSL: { - #ifdef PHAR_HAVE_OPENSSL - 			BIO *in; - 			EVP_PKEY *key; --			EVP_MD *mdtype = (EVP_MD *) EVP_sha1(); -+			const EVP_MD *mdtype; - 			EVP_MD_CTX *md_ctx; -+ -+			if (sig_type == PHAR_SIG_OPENSSL_SHA512) { -+				mdtype = EVP_sha512(); -+			} else if (sig_type == PHAR_SIG_OPENSSL_SHA256) { -+				mdtype = EVP_sha256(); -+			} else { -+				mdtype = EVP_sha1(); -+			} - #else - 			size_t tempsig; - #endif -@@ -1521,7 +1539,7 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, uint32_t sig_type, - #ifndef PHAR_HAVE_OPENSSL - 			tempsig = sig_len; -  --			if (FAILURE == phar_call_openssl_signverify(0, fp, end_of_phar, pubkey ? ZSTR_VAL(pubkey) : NULL, pubkey ? ZSTR_LEN(pubkey) : 0, &sig, &tempsig)) { -+			if (FAILURE == phar_call_openssl_signverify(0, fp, end_of_phar, pubkey ? ZSTR_VAL(pubkey) : NULL, pubkey ? ZSTR_LEN(pubkey) : 0, &sig, &tempsig, sig_type)) { - 				if (pubkey) { - 					zend_string_release_ex(pubkey, 0); - 				} -@@ -1815,6 +1833,8 @@ int phar_create_signature(phar_archive_data *phar, php_stream *fp, char **signat - 			*signature_length = 32; - 			break; - 		} -+		case PHAR_SIG_OPENSSL_SHA512: -+		case PHAR_SIG_OPENSSL_SHA256: - 		case PHAR_SIG_OPENSSL: { - 			unsigned char *sigbuf; - #ifdef PHAR_HAVE_OPENSSL -@@ -1822,6 +1842,15 @@ int phar_create_signature(phar_archive_data *phar, php_stream *fp, char **signat - 			BIO *in; - 			EVP_PKEY *key; - 			EVP_MD_CTX *md_ctx; -+			const EVP_MD *mdtype; -+ -+			if (phar->sig_flags == PHAR_SIG_OPENSSL_SHA512) { -+				mdtype = EVP_sha512(); -+			} else if (phar->sig_flags == PHAR_SIG_OPENSSL_SHA256) { -+				mdtype = EVP_sha256(); -+			} else { -+				mdtype = EVP_sha1(); -+			} -  - 			in = BIO_new_mem_buf(PHAR_G(openssl_privatekey), PHAR_G(openssl_privatekey_len)); -  -@@ -1847,7 +1876,7 @@ int phar_create_signature(phar_archive_data *phar, php_stream *fp, char **signat - 			siglen = EVP_PKEY_size(key); - 			sigbuf = emalloc(siglen + 1); -  --			if (!EVP_SignInit(md_ctx, EVP_sha1())) { -+			if (!EVP_SignInit(md_ctx, mdtype)) { - 				EVP_PKEY_free(key); - 				efree(sigbuf); - 				if (error) { -@@ -1885,7 +1914,7 @@ int phar_create_signature(phar_archive_data *phar, php_stream *fp, char **signat - 			siglen = 0; - 			php_stream_seek(fp, 0, SEEK_END); -  --			if (FAILURE == phar_call_openssl_signverify(1, fp, php_stream_tell(fp), PHAR_G(openssl_privatekey), PHAR_G(openssl_privatekey_len), (char **)&sigbuf, &siglen)) { -+			if (FAILURE == phar_call_openssl_signverify(1, fp, php_stream_tell(fp), PHAR_G(openssl_privatekey), PHAR_G(openssl_privatekey_len), (char **)&sigbuf, &siglen, phar->sig_flags)) { - 				if (error) { - 					spprintf(error, 0, "unable to write phar \"%s\" with requested openssl signature", phar->fname); - 				} diff --git a/php-8.0.10-snmp-sha.patch b/php-8.0.10-snmp-sha.patch deleted file mode 100644 index 3ef67ea..0000000 --- a/php-8.0.10-snmp-sha.patch +++ /dev/null @@ -1,143 +0,0 @@ -Backported for 8.0 from - - -From 718e91343fddb8817a004f96f111c424843bf746 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@php.net> -Date: Wed, 11 Aug 2021 13:02:18 +0200 -Subject: [PATCH] add SHA256 and SHA512 for security protocol - ---- - ext/snmp/config.m4                            | 18 +++++++++- - ext/snmp/snmp.c                               | 33 ++++++++++++++++++- - .../tests/snmp-object-setSecurity_error.phpt  |  2 +- - ext/snmp/tests/snmp3-error.phpt               |  2 +- - 4 files changed, 51 insertions(+), 4 deletions(-) - -diff --git a/ext/snmp/config.m4 b/ext/snmp/config.m4 -index 1475ddfe2b7f0..f285a572de9cb 100644 ---- a/ext/snmp/config.m4 -+++ b/ext/snmp/config.m4 -@@ -30,7 +30,7 @@ if test "$PHP_SNMP" != "no"; then -         AC_MSG_ERROR([Could not find the required paths. Please check your net-snmp installation.]) -       fi -     else --      AC_MSG_ERROR([Net-SNMP version 5.3 or greater reqired (detected $snmp_full_version).]) -+      AC_MSG_ERROR([Net-SNMP version 5.3 or greater required (detected $snmp_full_version).]) -     fi -   else -     AC_MSG_ERROR([Could not find net-snmp-config binary. Please check your net-snmp installation.]) -@@ -54,6 +54,22 @@ if test "$PHP_SNMP" != "no"; then -     $SNMP_SHARED_LIBADD -   ]) -  -+  dnl Check whether usmHMAC192SHA256AuthProtocol exists. -+  PHP_CHECK_LIBRARY($SNMP_LIBNAME, usmHMAC192SHA256AuthProtocol, -+  [ -+    AC_DEFINE(HAVE_SNMP_SHA256, 1, [ ]) -+  ], [], [ -+    $SNMP_SHARED_LIBADD -+  ]) -+ -+  dnl Check whether usmHMAC384SHA512AuthProtocol exists. -+  PHP_CHECK_LIBRARY($SNMP_LIBNAME, usmHMAC384SHA512AuthProtocol, -+  [ -+    AC_DEFINE(HAVE_SNMP_SHA512, 1, [ ]) -+  ], [], [ -+    $SNMP_SHARED_LIBADD -+  ]) -+ -   PHP_NEW_EXTENSION(snmp, snmp.c, $ext_shared) -   PHP_SUBST(SNMP_SHARED_LIBADD) - fi -diff --git a/ext/snmp/snmp.c b/ext/snmp/snmp.c -index 69d6549405b17..f0917501751f5 100644 ---- a/ext/snmp/snmp.c -+++ b/ext/snmp/snmp.c -@@ -29,6 +29,7 @@ - #include "php_snmp.h" -  - #include "zend_exceptions.h" -+#include "zend_smart_string.h" - #include "ext/spl/spl_exceptions.h" - #include "snmp_arginfo.h" -  -@@ -938,16 +939,48 @@ static int netsnmp_session_set_auth_prot - 	if (!strcasecmp(prot, "MD5")) { - 		s->securityAuthProto = usmHMACMD5AuthProtocol; - 		s->securityAuthProtoLen = USM_AUTH_PROTO_MD5_LEN; --	} else -+		return true; -+	} - #endif -+ - 	if (!strcasecmp(prot, "SHA")) { - 		s->securityAuthProto = usmHMACSHA1AuthProtocol; - 		s->securityAuthProtoLen = USM_AUTH_PROTO_SHA_LEN; --	} else { --		zend_value_error("Authentication protocol must be either \"MD5\" or \"SHA\""); --		return (-1); -+		return true; - 	} --	return (0); -+ -+#ifdef HAVE_SNMP_SHA256 -+	if (!strcasecmp(prot, "SHA256")) { -+		s->securityAuthProto = usmHMAC192SHA256AuthProtocol; -+		s->securityAuthProtoLen = sizeof(usmHMAC192SHA256AuthProtocol) / sizeof(oid); -+		return true; -+	} -+#endif -+ -+#ifdef HAVE_SNMP_SHA512 -+	if (!strcasecmp(prot, "SHA512")) { -+		s->securityAuthProto = usmHMAC384SHA512AuthProtocol; -+		s->securityAuthProtoLen = sizeof(usmHMAC384SHA512AuthProtocol) / sizeof(oid); -+		return true; -+	} -+#endif -+ -+	smart_string err = {0}; -+ -+	smart_string_appends(&err, "Authentication protocol must be \"SHA\""); -+#ifdef HAVE_SNMP_SHA256 -+	smart_string_appends(&err, " or \"SHA256\""); -+#endif -+#ifdef HAVE_SNMP_SHA512 -+	smart_string_appends(&err, " or \"SHA512\""); -+#endif -+#ifndef DISABLE_MD5 -+	smart_string_appends(&err, " or \"MD5\""); -+#endif -+	smart_string_0(&err); -+	zend_value_error("%s", err.c); -+	smart_string_free(&err); -+	return false; - } - /* }}} */ -  -diff --git a/ext/snmp/tests/snmp-object-setSecurity_error.phpt b/ext/snmp/tests/snmp-object-setSecurity_error.phpt -index f8de846492a75..cf4f928837773 100644 ---- a/ext/snmp/tests/snmp-object-setSecurity_error.phpt -+++ b/ext/snmp/tests/snmp-object-setSecurity_error.phpt -@@ -59,7 +59,7 @@ var_dump($session->close()); - --EXPECTF-- - Security level must be one of "noAuthNoPriv", "authNoPriv", or "authPriv" - Security level must be one of "noAuthNoPriv", "authNoPriv", or "authPriv" --Authentication protocol must be either "MD5" or "SHA" -+Authentication protocol must be %s -  - Warning: SNMP::setSecurity(): Error generating a key for authentication pass phrase '': Generic error (The supplied password length is too short.) in %s on line %d - bool(false) -diff --git a/ext/snmp/tests/snmp3-error.phpt b/ext/snmp/tests/snmp3-error.phpt -index 849e363b45058..389800dad6b28 100644 ---- a/ext/snmp/tests/snmp3-error.phpt -+++ b/ext/snmp/tests/snmp3-error.phpt -@@ -58,7 +58,7 @@ try { - Checking error handling - Security level must be one of "noAuthNoPriv", "authNoPriv", or "authPriv" - Security level must be one of "noAuthNoPriv", "authNoPriv", or "authPriv" --Authentication protocol must be either "MD5" or "SHA" -+Authentication protocol must be %s -  - Warning: snmp3_get(): Error generating a key for authentication pass phrase '': Generic error (The supplied password length is too short.) in %s on line %d - bool(false) diff --git a/php-8.0.6-deprecated.patch b/php-8.0.6-deprecated.patch deleted file mode 100644 index 1e6b93b..0000000 --- a/php-8.0.6-deprecated.patch +++ /dev/null @@ -1,400 +0,0 @@ -From 4dc8b3c0efaae25b08c8f59b068f17c97c59d0ae Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@remirepo.net> -Date: Wed, 5 May 2021 15:41:00 +0200 -Subject: [PATCH] get rid of inet_aton and inet_ntoa use inet_ntop iand - inet_pton where available standardize buffer size - ---- - ext/sockets/sockaddr_conv.c |  4 ++++ - ext/sockets/sockets.c       | 48 +++++++++++++++++++++++++------------ - ext/standard/dns.c          | 16 ++++++++++++- - main/network.c              | 20 ++++++++++++++-- - 4 files changed, 70 insertions(+), 18 deletions(-) - -diff --git a/ext/sockets/sockaddr_conv.c b/ext/sockets/sockaddr_conv.c -index 57996612d2d7e..65c8418fb3a6f 100644 ---- a/ext/sockets/sockaddr_conv.c -+++ b/ext/sockets/sockaddr_conv.c -@@ -87,7 +87,11 @@ int php_set_inet_addr(struct sockaddr_in *sin, char *string, php_socket *php_soc - 	struct in_addr tmp; - 	struct hostent *host_entry; -  -+#ifdef HAVE_INET_PTON -+	if (inet_pton(AF_INET, string, &tmp)) { -+#else - 	if (inet_aton(string, &tmp)) { -+#endif - 		sin->sin_addr.s_addr = tmp.s_addr; - 	} else { - 		if (strlen(string) > MAXFQDNLEN || ! (host_entry = php_network_gethostbyname(string))) { -diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c -index 16ad3e8013a4c..85c938d1b97b1 100644 ---- a/ext/sockets/sockets.c -+++ b/ext/sockets/sockets.c -@@ -220,8 +220,10 @@ zend_module_entry sockets_module_entry = { - ZEND_GET_MODULE(sockets) - #endif -  -+#ifndef HAVE_INET_NTOP - /* inet_ntop should be used instead of inet_ntoa */ - int inet_ntoa_lock = 0; -+#endif -  - static int php_open_listen_sock(php_socket *sock, int port, int backlog) /* {{{ */ - { -@@ -1082,10 +1084,12 @@ PHP_FUNCTION(socket_getsockname) - 	struct sockaddr_in		*sin; - #if HAVE_IPV6 - 	struct sockaddr_in6		*sin6; --	char					addr6[INET6_ADDRSTRLEN+1]; -+#endif -+#ifdef HAVE_INET_NTOP -+	char					addrbuf[INET6_ADDRSTRLEN]; - #endif - 	struct sockaddr_un		*s_un; --	char					*addr_string; -+	const char				*addr_string; - 	socklen_t				salen = sizeof(php_sockaddr_storage); -  - 	if (zend_parse_parameters(ZEND_NUM_ARGS(), "Oz|z", &arg1, socket_ce, &addr, &port) == FAILURE) { -@@ -1106,8 +1110,8 @@ PHP_FUNCTION(socket_getsockname) - #if HAVE_IPV6 - 		case AF_INET6: - 			sin6 = (struct sockaddr_in6 *) sa; --			inet_ntop(AF_INET6, &sin6->sin6_addr, addr6, INET6_ADDRSTRLEN); --			ZEND_TRY_ASSIGN_REF_STRING(addr, addr6); -+			inet_ntop(AF_INET6, &sin6->sin6_addr,  addrbuf, sizeof(addrbuf)); -+			ZEND_TRY_ASSIGN_REF_STRING(addr, addrbuf); -  - 			if (port != NULL) { - 				ZEND_TRY_ASSIGN_REF_LONG(port, htons(sin6->sin6_port)); -@@ -1117,11 +1121,14 @@ PHP_FUNCTION(socket_getsockname) - #endif - 		case AF_INET: - 			sin = (struct sockaddr_in *) sa; -+#ifdef HAVE_INET_NTOP -+			addr_string = inet_ntop(AF_INET, &sin->sin_addr, addrbuf, sizeof(addrbuf)); -+#else - 			while (inet_ntoa_lock == 1); - 			inet_ntoa_lock = 1; - 			addr_string = inet_ntoa(sin->sin_addr); - 			inet_ntoa_lock = 0; -- -+#endif - 			ZEND_TRY_ASSIGN_REF_STRING(addr, addr_string); -  - 			if (port != NULL) { -@@ -1154,10 +1161,12 @@ PHP_FUNCTION(socket_getpeername) - 	struct sockaddr_in		*sin; - #if HAVE_IPV6 - 	struct sockaddr_in6		*sin6; --	char					addr6[INET6_ADDRSTRLEN+1]; -+#endif -+#ifdef HAVE_INET_NTOP -+	char					addrbuf[INET6_ADDRSTRLEN]; - #endif - 	struct sockaddr_un		*s_un; --	char					*addr_string; -+	const char				*addr_string; - 	socklen_t				salen = sizeof(php_sockaddr_storage); -  - 	if (zend_parse_parameters(ZEND_NUM_ARGS(), "Oz|z", &arg1, socket_ce, &arg2, &arg3) == FAILURE) { -@@ -1178,9 +1187,9 @@ PHP_FUNCTION(socket_getpeername) - #if HAVE_IPV6 - 		case AF_INET6: - 			sin6 = (struct sockaddr_in6 *) sa; --			inet_ntop(AF_INET6, &sin6->sin6_addr, addr6, INET6_ADDRSTRLEN); -+			inet_ntop(AF_INET6, &sin6->sin6_addr, addrbuf, sizeof(addrbuf)); -  --			ZEND_TRY_ASSIGN_REF_STRING(arg2, addr6); -+			ZEND_TRY_ASSIGN_REF_STRING(arg2, addrbuf); -  - 			if (arg3 != NULL) { - 				ZEND_TRY_ASSIGN_REF_LONG(arg3, htons(sin6->sin6_port)); -@@ -1191,11 +1200,14 @@ PHP_FUNCTION(socket_getpeername) - #endif - 		case AF_INET: - 			sin = (struct sockaddr_in *) sa; -+#ifdef HAVE_INET_NTOP -+			addr_string = inet_ntop(AF_INET, &sin->sin_addr, addrbuf, sizeof(addrbuf)); -+#else - 			while (inet_ntoa_lock == 1); - 			inet_ntoa_lock = 1; - 			addr_string = inet_ntoa(sin->sin_addr); - 			inet_ntoa_lock = 0; -- -+#endif - 			ZEND_TRY_ASSIGN_REF_STRING(arg2, addr_string); -  - 			if (arg3 != NULL) { -@@ -1527,12 +1539,14 @@ PHP_FUNCTION(socket_recvfrom) - 	struct sockaddr_in	sin; - #if HAVE_IPV6 - 	struct sockaddr_in6	sin6; --	char				addr6[INET6_ADDRSTRLEN]; -+#endif -+#ifdef HAVE_INET_NTOP -+	char				addrbuf[INET6_ADDRSTRLEN]; - #endif - 	socklen_t			slen; - 	int					retval; - 	zend_long				arg3, arg4; --	char				*address; -+	const char			*address; - 	zend_string			*recv_buf; -  - 	if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ozllz|z", &arg1, socket_ce, &arg2, &arg3, &arg4, &arg5, &arg6) == FAILURE) { -@@ -1590,7 +1604,11 @@ PHP_FUNCTION(socket_recvfrom) - 			ZSTR_LEN(recv_buf) = retval; - 			ZSTR_VAL(recv_buf)[ZSTR_LEN(recv_buf)] = '\0'; -  -+#ifdef HAVE_INET_NTOP -+			address = inet_ntop(AF_INET, &sin.sin_addr, addrbuf, sizeof(addrbuf)); -+#else - 			address = inet_ntoa(sin.sin_addr); -+#endif -  - 			ZEND_TRY_ASSIGN_REF_NEW_STR(arg2, recv_buf); - 			ZEND_TRY_ASSIGN_REF_STRING(arg5, address ? address : "0.0.0.0"); -@@ -1617,11 +1635,11 @@ PHP_FUNCTION(socket_recvfrom) - 			ZSTR_LEN(recv_buf) = retval; - 			ZSTR_VAL(recv_buf)[ZSTR_LEN(recv_buf)] = '\0'; -  --			memset(addr6, 0, INET6_ADDRSTRLEN); --			inet_ntop(AF_INET6, &sin6.sin6_addr, addr6, INET6_ADDRSTRLEN); -+			memset(addrbuf, 0, INET6_ADDRSTRLEN); -+			inet_ntop(AF_INET6, &sin6.sin6_addr,  addrbuf, sizeof(addrbuf)); -  - 			ZEND_TRY_ASSIGN_REF_NEW_STR(arg2, recv_buf); --			ZEND_TRY_ASSIGN_REF_STRING(arg5, addr6[0] ? addr6 : "::"); -+			ZEND_TRY_ASSIGN_REF_STRING(arg5, addrbuf[0] ? addrbuf : "::"); - 			ZEND_TRY_ASSIGN_REF_LONG(arg6, ntohs(sin6.sin6_port)); - 			break; - #endif -diff --git a/ext/standard/dns.c b/ext/standard/dns.c -index 41b98424edb60..6efdbbe894b46 100644 ---- a/ext/standard/dns.c -+++ b/ext/standard/dns.c -@@ -228,6 +228,9 @@ PHP_FUNCTION(gethostbynamel) - 	struct hostent *hp; - 	struct in_addr in; - 	int i; -+#ifdef HAVE_INET_NTOP -+	char addr4[INET_ADDRSTRLEN]; -+#endif -  - 	ZEND_PARSE_PARAMETERS_START(1, 1) - 		Z_PARAM_PATH(hostname, hostname_len) -@@ -255,7 +258,11 @@ PHP_FUNCTION(gethostbynamel) - 		} -  - 		in = *h_addr_entry; -+#ifdef HAVE_INET_NTOP -+		add_next_index_string(return_value, inet_ntop(AF_INET, &in, addr4, INET_ADDRSTRLEN)); -+#else - 		add_next_index_string(return_value, inet_ntoa(in)); -+#endif - 	} - } - /* }}} */ -@@ -266,7 +273,10 @@ static zend_string *php_gethostbyname(char *name) - 	struct hostent *hp; - 	struct in_addr *h_addr_0; /* Don't call this h_addr, it's a macro! */ - 	struct in_addr in; --	char *address; -+#ifdef HAVE_INET_NTOP -+	char addr4[INET_ADDRSTRLEN]; -+#endif -+	const char *address; -  - 	hp = php_network_gethostbyname(name); - 	if (!hp) { -@@ -281,7 +291,11 @@ static zend_string *php_gethostbyname(char *name) -  - 	memcpy(&in.s_addr, h_addr_0, sizeof(in.s_addr)); -  -+#ifdef HAVE_INET_NTOP -+	address = inet_ntop(AF_INET, &in, addr4, INET_ADDRSTRLEN); -+#else - 	address = inet_ntoa(in); -+#endif - 	return zend_string_init(address, strlen(address), 0); - } - /* }}} */ -diff --git a/main/network.c b/main/network.c -index 2c504952b2dd1..7f2f714ec42df 100644 ---- a/main/network.c -+++ b/main/network.c -@@ -236,8 +236,12 @@ PHPAPI int php_network_getaddresses(const char *host, int socktype, struct socka - 	} while ((sai = sai->ai_next) != NULL); -  - 	freeaddrinfo(res); -+#else -+#ifdef HAVE_INET_PTON -+	if (!inet_pton(AF_INET, host, &in)) { - #else - 	if (!inet_aton(host, &in)) { -+#endif - 		if(strlen(host) > MAXFQDNLEN) { - 			host_info = NULL; - 			errno = E2BIG; -@@ -555,7 +559,11 @@ PHPAPI int php_network_parse_network_address_with_port(const char *addr, zend_lo - 		goto out; - 	} - #endif -+#ifdef HAVE_INET_PTON -+	if (inet_pton(AF_INET, tmp, &in4->sin_addr) > 0) { -+#else - 	if (inet_aton(tmp, &in4->sin_addr) > 0) { -+#endif - 		in4->sin_port = htons(port); - 		in4->sin_family = AF_INET; - 		*sl = sizeof(struct sockaddr_in); -@@ -617,15 +625,19 @@ PHPAPI void php_network_populate_name_from_sockaddr( - 	} -  - 	if (textaddr) { --#if HAVE_IPV6 && HAVE_INET_NTOP -+#ifdef HAVE_INET_NTOP - 		char abuf[256]; - #endif --		char *buf = NULL; -+		const char *buf = NULL; -  - 		switch (sa->sa_family) { - 			case AF_INET: - 				/* generally not thread safe, but it *is* thread safe under win32 */ -+#ifdef HAVE_INET_NTOP -+				buf = inet_ntop(AF_INET, &((struct sockaddr_in*)sa)->sin_addr, (char *)&abuf, sizeof(abuf)); -+#else - 				buf = inet_ntoa(((struct sockaddr_in*)sa)->sin_addr); -+#endif - 				if (buf) { - 					*textaddr = strpprintf(0, "%s:%d", - 						buf, ntohs(((struct sockaddr_in*)sa)->sin_port)); -@@ -862,7 +874,11 @@ php_socket_t php_network_connect_socket_to_host(const char *host, unsigned short -  - 					in4->sin_family = sa->sa_family; - 					in4->sin_port = htons(bindport); -+#ifdef HAVE_INET_PTON -+					if (!inet_pton(AF_INET, bindto, &in4->sin_addr)) { -+#else - 					if (!inet_aton(bindto, &in4->sin_addr)) { -+#endif - 						php_error_docref(NULL, E_WARNING, "Invalid IP Address: %s", bindto); - 						goto skip_bind; - 					} -From e5b6f43ec7813392d83ea586b7902e0396a1f792 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@remirepo.net> -Date: Thu, 6 May 2021 14:21:29 +0200 -Subject: [PATCH] get rid of inet_addr usage - ---- - main/fastcgi.c            | 4 ++++ - sapi/litespeed/lsapilib.c | 4 ++++ - 2 files changed, 8 insertions(+) - -diff --git a/main/fastcgi.c b/main/fastcgi.c -index 071f69d3a7f0..c936d42405de 100644 ---- a/main/fastcgi.c -+++ b/main/fastcgi.c -@@ -688,8 +688,12 @@ int fcgi_listen(const char *path, int backlog) - 		if (!*host || !strncmp(host, "*", sizeof("*")-1)) { - 			sa.sa_inet.sin_addr.s_addr = htonl(INADDR_ANY); - 		} else { -+#ifdef HAVE_INET_PTON -+			if (!inet_pton(AF_INET, host, &sa.sa_inet.sin_addr)) { -+#else - 			sa.sa_inet.sin_addr.s_addr = inet_addr(host); - 			if (sa.sa_inet.sin_addr.s_addr == INADDR_NONE) { -+#endif - 				struct hostent *hep; -  - 				if(strlen(host) > MAXFQDNLEN) { -diff --git a/sapi/litespeed/lsapilib.c b/sapi/litespeed/lsapilib.c -index a72b5dc1b988..305f3326a682 100644 ---- a/sapi/litespeed/lsapilib.c -+++ b/sapi/litespeed/lsapilib.c -@@ -2672,8 +2672,12 @@ int LSAPI_ParseSockAddr( const char * pBind, struct sockaddr * pAddr ) -             ((struct sockaddr_in *)pAddr)->sin_addr.s_addr = htonl( INADDR_LOOPBACK ); -         else -         { -+#ifdef HAVE_INET_PTON -+            if (!inet_pton(AF_INET, p, &((struct sockaddr_in *)pAddr)->sin_addr)) -+#else -             ((struct sockaddr_in *)pAddr)->sin_addr.s_addr = inet_addr( p ); -             if ( ((struct sockaddr_in *)pAddr)->sin_addr.s_addr == INADDR_BROADCAST) -+#endif -             { -                 doAddrInfo = 1; -             } -From 99d67d121acd4c324738509679d23acaf759d065 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@remirepo.net> -Date: Thu, 6 May 2021 16:35:48 +0200 -Subject: [PATCH] use getnameinfo instead of gethostbyaddr - ---- - ext/standard/dns.c | 34 ++++++++++++++++++++++------------ - 1 file changed, 22 insertions(+), 12 deletions(-) - -diff --git a/ext/standard/dns.c b/ext/standard/dns.c -index edd9a4549f5c..540c777faaba 100644 ---- a/ext/standard/dns.c -+++ b/ext/standard/dns.c -@@ -169,20 +169,30 @@ PHP_FUNCTION(gethostbyaddr) - static zend_string *php_gethostbyaddr(char *ip) - { - #if HAVE_IPV6 && HAVE_INET_PTON --	struct in6_addr addr6; --#endif --	struct in_addr addr; --	struct hostent *hp; -+	struct sockaddr_in sa4; -+	struct sockaddr_in6 sa6; -+	char out[NI_MAXHOST]; -  --#if HAVE_IPV6 && HAVE_INET_PTON --	if (inet_pton(AF_INET6, ip, &addr6)) { --		hp = gethostbyaddr((char *) &addr6, sizeof(addr6), AF_INET6); --	} else if (inet_pton(AF_INET, ip, &addr)) { --		hp = gethostbyaddr((char *) &addr, sizeof(addr), AF_INET); --	} else { --		return NULL; -+	if (inet_pton(AF_INET6, ip, &sa6.sin6_addr)) { -+		sa6.sin6_family = AF_INET6; -+ -+		if (getnameinfo((struct sockaddr *)&sa6, sizeof(sa6), out, sizeof(out), NULL, 0, NI_NAMEREQD) < 0) { -+			return zend_string_init(ip, strlen(ip), 0); -+		} -+		return zend_string_init(out, strlen(out), 0); -+	} else if (inet_pton(AF_INET, ip, &sa4.sin_addr)) { -+		sa4.sin_family = AF_INET; -+ -+		if (getnameinfo((struct sockaddr *)&sa4, sizeof(sa4), out, sizeof(out), NULL, 0, NI_NAMEREQD) < 0) { -+			return zend_string_init(ip, strlen(ip), 0); -+		} -+		return zend_string_init(out, strlen(out), 0); - 	} -+	return NULL; /* not a valid IP */ - #else -+	struct in_addr addr; -+	struct hostent *hp; -+ - 	addr.s_addr = inet_addr(ip); -  - 	if (addr.s_addr == -1) { -@@ -190,13 +200,13 @@ static zend_string *php_gethostbyaddr(char *ip) - 	} -  - 	hp = gethostbyaddr((char *) &addr, sizeof(addr), AF_INET); --#endif -  - 	if (!hp || hp->h_name == NULL || hp->h_name[0] == '\0') { - 		return zend_string_init(ip, strlen(ip), 0); - 	} -  - 	return zend_string_init(hp->h_name, strlen(hp->h_name), 0); -+#endif - } - /* }}} */ -  diff --git a/php-7.4.0-libdb.patch b/php-8.1.0-libdb.patch index d7c6289..7a2a097 100644 --- a/php-7.4.0-libdb.patch +++ b/php-8.1.0-libdb.patch @@ -79,10 +79,10 @@ diff -up ./ext/dba/dba.c.libdb ./ext/dba/dba.c   PHP_MINIT_FUNCTION(dba);   PHP_MSHUTDOWN_FUNCTION(dba);   PHP_MINFO_FUNCTION(dba); -@@ -459,6 +463,10 @@ PHP_MINFO_FUNCTION(dba) +@@ -452,6 +456,10 @@ PHP_MINFO_FUNCTION(dba)   	php_info_print_table_start(); -  	php_info_print_table_row(2, "DBA support", "enabled"); + 	php_info_print_table_row(2, "DBA support", "enabled");  +#ifdef DB_VERSION_STRING  + 	php_info_print_table_row(2, "libdb header version", DB_VERSION_STRING);  + 	php_info_print_table_row(2, "libdb library version", db_version(NULL, NULL, NULL)); diff --git a/php-8.1.0-phpinfo.patch b/php-8.1.0-phpinfo.patch new file mode 100644 index 0000000..d19b2f4 --- /dev/null +++ b/php-8.1.0-phpinfo.patch @@ -0,0 +1,44 @@ + +Drop "Configure Command" from phpinfo as it doesn't +provide any useful information. +The available extensions are not related to this command. + +Replace full GCC name by gcc in php -v output + + +diff -up ./ext/standard/info.c.phpinfo ./ext/standard/info.c +--- ./ext/standard/info.c.phpinfo	2020-07-21 10:49:31.000000000 +0200 ++++ ./ext/standard/info.c	2020-07-21 11:41:56.295633523 +0200 +@@ -805,9 +805,6 @@ PHPAPI ZEND_COLD void php_print_info(int + #ifdef PHP_BUILD_ARCH + 		php_info_print_table_row(2, "Architecture", PHP_BUILD_ARCH); + #endif +-#ifdef CONFIGURE_COMMAND +-		php_info_print_table_row(2, "Configure Command", CONFIGURE_COMMAND ); +-#endif +  + 		if (sapi_module.pretty_name) { + 			php_info_print_table_row(2, "Server API", sapi_module.pretty_name ); +diff -up ./ext/standard/tests/general_functions/phpinfo.phpt.phpinfo ./ext/standard/tests/general_functions/phpinfo.phpt +--- ./ext/standard/tests/general_functions/phpinfo.phpt.phpinfo	2020-07-21 10:49:31.000000000 +0200 ++++ ./ext/standard/tests/general_functions/phpinfo.phpt	2020-07-21 11:41:56.296633522 +0200 +@@ -17,7 +17,6 @@ PHP Version => %s +  + System => %s + Build Date => %s%a +-Configure Command => %s + Server API => Command Line Interface + Virtual Directory Support => %s + Configuration File (php.ini) Path => %s +diff -up ./sapi/cli/php_cli.c.phpinfo ./sapi/cli/php_cli.c +--- ./sapi/cli/php_cli.c.phpinfo	2020-07-21 11:43:38.812475300 +0200 ++++ ./sapi/cli/php_cli.c	2020-07-21 11:43:45.783464540 +0200 +@@ -645,7 +645,7 @@ static int do_cli(int argc, char **argv) + 					"NTS" + #endif + #ifdef PHP_BUILD_COMPILER +-					" " PHP_BUILD_COMPILER ++					" gcc" + #endif + #ifdef PHP_BUILD_ARCH + 					" " PHP_BUILD_ARCH diff --git a/php-8.0.10-systzdata-v20.patch b/php-8.1.0-systzdata-v21.patch index 5b0d84b..fb69621 100644 --- a/php-8.0.10-systzdata-v20.patch +++ b/php-8.1.0-systzdata-v21.patch @@ -5,6 +5,7 @@ Add support for use of the system timezone database, rather  than embedding a copy.  Discussed upstream but was not desired.  History: +r21: adapt for timelib 2021.03 (in 8.1.0)  r20: adapt for timelib 2020.03 (in 8.0.10RC1)  r19: adapt for timelib 2020.02 (in 8.0.0beta2)  r18: adapt for autotool change in 7.3.3RC1 @@ -31,9 +32,9 @@ 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 -diff -up ./ext/date/config0.m4.systzdata ./ext/date/config0.m4 ---- ./ext/date/config0.m4.systzdata	2021-08-10 11:35:28.000000000 +0200 -+++ ./ext/date/config0.m4	2021-08-10 12:09:41.067003517 +0200 +diff -up php-8.0.0beta3/ext/date/config0.m4.systzdata php-8.0.0beta3/ext/date/config0.m4 +--- php-8.0.0beta3/ext/date/config0.m4.systzdata	2020-09-01 19:13:26.000000000 +0200 ++++ php-8.0.0beta3/ext/date/config0.m4	2020-09-02 08:07:51.039979873 +0200  @@ -4,6 +4,19 @@ AC_CHECK_HEADERS([io.h])   dnl Check for strtoll, atoll   AC_CHECK_FUNCS(strtoll atoll) @@ -51,13 +52,13 @@ diff -up ./ext/date/config0.m4.systzdata ./ext/date/config0.m4  +   fi  +fi  + - PHP_DATE_CFLAGS="-I@ext_builddir@/lib -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -DHAVE_TIMELIB_CONFIG_H=1" - timelib_sources="lib/astro.c lib/dow.c lib/parse_date.c lib/parse_tz.c + PHP_DATE_CFLAGS="-Wno-implicit-fallthrough -I@ext_builddir@/lib -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -DHAVE_TIMELIB_CONFIG_H=1" + timelib_sources="lib/astro.c lib/dow.c lib/parse_date.c lib/parse_tz.c lib/parse_posix.c                    lib/timelib.c lib/tm2unixtime.c lib/unixtime2tm.c lib/parse_iso_intervals.c lib/interval.c" -diff -up ./ext/date/lib/parse_tz.c.systzdata ./ext/date/lib/parse_tz.c ---- ./ext/date/lib/parse_tz.c.systzdata	2021-08-10 11:35:28.000000000 +0200 -+++ ./ext/date/lib/parse_tz.c	2021-08-10 12:12:13.191605207 +0200 -@@ -26,8 +26,21 @@ +diff -up php-8.0.0beta3/ext/date/lib/parse_tz.c.systzdata php-8.0.0beta3/ext/date/lib/parse_tz.c +--- php-8.0.0beta3/ext/date/lib/parse_tz.c.systzdata	2020-09-01 19:13:26.000000000 +0200 ++++ php-8.0.0beta3/ext/date/lib/parse_tz.c	2020-09-02 08:07:51.039979873 +0200 +@@ -26,9 +26,22 @@   #include "timelib.h"   #include "timelib_private.h" @@ -72,6 +73,7 @@ diff -up ./ext/date/lib/parse_tz.c.systzdata ./ext/date/lib/parse_tz.c  +  +#else   #define TIMELIB_SUPPORTS_V2DATA + #define TIMELIB_SUPPORT_SLIM_FILE   #include "timezonedb.h"  +#endif  + @@ -79,7 +81,7 @@ diff -up ./ext/date/lib/parse_tz.c.systzdata ./ext/date/lib/parse_tz.c   #if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__))   # if defined(__LITTLE_ENDIAN__) -@@ -94,6 +107,11 @@ static int read_php_preamble(const unsig +@@ -95,6 +108,11 @@ static int read_php_preamble(const unsig   {   	uint32_t version; @@ -91,7 +93,7 @@ diff -up ./ext/date/lib/parse_tz.c.systzdata ./ext/date/lib/parse_tz.c   	/* read ID */   	version = (*tzf)[3] - '0';   	*tzf += 4; -@@ -435,7 +453,429 @@ void timelib_dump_tzinfo(timelib_tzinfo +@@ -577,7 +595,429 @@ void timelib_dump_tzinfo(timelib_tzinfo   	}   } @@ -522,7 +524,7 @@ diff -up ./ext/date/lib/parse_tz.c.systzdata ./ext/date/lib/parse_tz.c   {   	int left = 0, right = tzdb->index_size - 1; -@@ -461,9 +901,48 @@ static int seek_to_tz_position(const uns +@@ -603,9 +1043,48 @@ static int seek_to_tz_position(const uns   	return 0;   } @@ -571,7 +573,7 @@ diff -up ./ext/date/lib/parse_tz.c.systzdata ./ext/date/lib/parse_tz.c   }   const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(const timelib_tzdb *tzdb, int *count) -@@ -475,7 +954,30 @@ const timelib_tzdb_index_entry *timelib_ +@@ -617,7 +1096,30 @@ const timelib_tzdb_index_entry *timelib_   int timelib_timezone_id_is_valid(const char *timezone, const timelib_tzdb *tzdb)   {   	const unsigned char *tzf; @@ -603,7 +605,7 @@ diff -up ./ext/date/lib/parse_tz.c.systzdata ./ext/date/lib/parse_tz.c   }   static int skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz) -@@ -517,6 +1019,8 @@ static timelib_tzinfo* timelib_tzinfo_ct +@@ -662,6 +1164,8 @@ static timelib_tzinfo* timelib_tzinfo_ct   timelib_tzinfo *timelib_parse_tzfile(const char *timezone, const timelib_tzdb *tzdb, int *error_code)   {   	const unsigned char *tzf; @@ -612,7 +614,7 @@ diff -up ./ext/date/lib/parse_tz.c.systzdata ./ext/date/lib/parse_tz.c   	timelib_tzinfo *tmp;   	int version;   	int transitions_result, types_result; -@@ -524,7 +1028,7 @@ timelib_tzinfo *timelib_parse_tzfile(con +@@ -669,7 +1173,7 @@ timelib_tzinfo *timelib_parse_tzfile(con   	*error_code = TIMELIB_ERROR_NO_ERROR; @@ -621,9 +623,9 @@ diff -up ./ext/date/lib/parse_tz.c.systzdata ./ext/date/lib/parse_tz.c   		tmp = timelib_tzinfo_ctor(timezone);   		version = read_preamble(&tzf, tmp, &type); -@@ -563,11 +1067,36 @@ timelib_tzinfo *timelib_parse_tzfile(con +@@ -712,11 +1216,36 @@ timelib_tzinfo *timelib_parse_tzfile(con + 			return NULL;   		} - 		skip_posix_string(&tzf, tmp);  +#ifdef HAVE_SYSTEM_TZDATA  +		if (memmap) { @@ -17,7 +17,7 @@  ; 6. The directory from the --with-config-file-path compile time option, or the  ; Windows directory (usually C:\windows)  ; See the PHP docs for more specific information. -; http://php.net/configuration.file +; https://php.net/configuration.file  ; The syntax of the file is extremely simple.  Whitespace and lines  ; beginning with a semicolon are silently ignored (as you probably guessed). @@ -31,7 +31,7 @@  ; special sections cannot be overridden by user-defined INI files or  ; at runtime. Currently, [PATH=] and [HOST=] sections only work under  ; CGI/FastCGI. -; http://php.net/ini.sections +; https://php.net/ini.sections  ; Directives are specified using the following syntax:  ; directive = value @@ -181,7 +181,7 @@  ;;;;;;;;;;;;;;;;;;;;  ; Enable the PHP scripting language engine under Apache. -; http://php.net/engine +; https://php.net/engine  engine = On  ; This directive determines whether or not PHP will recognize code between @@ -194,11 +194,11 @@ engine = On  ; Default Value: On  ; Development Value: Off  ; Production Value: Off -; http://php.net/short-open-tag +; https://php.net/short-open-tag  short_open_tag = Off  ; The number of significant digits displayed in floating point numbers. -; http://php.net/precision +; https://php.net/precision  precision = 14  ; Output buffering is a mechanism for controlling how much output data @@ -222,7 +222,7 @@ precision = 14  ; Default Value: Off  ; Development Value: 4096  ; Production Value: 4096 -; http://php.net/output-buffering +; https://php.net/output-buffering  output_buffering = 4096  ; You can redirect all of the output of your scripts to a function.  For @@ -237,7 +237,7 @@ output_buffering = 4096  ;   and you cannot use both "ob_gzhandler" and "zlib.output_compression".  ; Note: output_handler must be empty if this is set 'On' !!!!  ;   Instead you must use zlib.output_handler. -; http://php.net/output-handler +; https://php.net/output-handler  ;output_handler =  ; URL rewriter function rewrites URL on the fly by using @@ -266,16 +266,16 @@ output_buffering = 4096  ;   performance, enable output_buffering in addition.  ; Note: You need to use zlib.output_handler instead of the standard  ;   output_handler, or otherwise the output will be corrupted. -; http://php.net/zlib.output-compression +; https://php.net/zlib.output-compression  zlib.output_compression = Off -; http://php.net/zlib.output-compression-level +; https://php.net/zlib.output-compression-level  ;zlib.output_compression_level = -1  ; You cannot specify additional output handlers if zlib.output_compression  ; is activated here. This setting does the same as output_handler but in  ; a different order. -; http://php.net/zlib.output-handler +; https://php.net/zlib.output-handler  ;zlib.output_handler =  ; Implicit flush tells PHP to tell the output layer to flush itself @@ -283,7 +283,7 @@ zlib.output_compression = Off  ; PHP function flush() after each and every call to print() or echo() and each  ; and every HTML block.  Turning this option on has serious performance  ; implications and is generally recommended for debugging purposes only. -; http://php.net/implicit-flush +; https://php.net/implicit-flush  ; Note: This directive is hardcoded to On for the CLI SAPI  implicit_flush = Off @@ -314,22 +314,22 @@ serialize_precision = -1  ; and below.  This directive makes most sense if used in a per-directory  ; or per-virtualhost web server configuration file.  ; Note: disables the realpath cache -; http://php.net/open-basedir +; https://php.net/open-basedir  ;open_basedir =  ; This directive allows you to disable certain functions.  ; It receives a comma-delimited list of function names. -; http://php.net/disable-functions +; https://php.net/disable-functions  disable_functions =  ; This directive allows you to disable certain classes.  ; It receives a comma-delimited list of class names. -; http://php.net/disable-classes +; https://php.net/disable-classes  disable_classes =  ; Colors for Syntax Highlighting mode.  Anything that's acceptable in  ; <span style="color: ???????"> would work. -; http://php.net/syntax-highlighting +; https://php.net/syntax-highlighting  ;highlight.string  = #DD0000  ;highlight.comment = #FF9900  ;highlight.keyword = #007700 @@ -340,24 +340,24 @@ disable_classes =  ; the request. Consider enabling it if executing long requests, which may end up  ; being interrupted by the user or a browser timing out. PHP's default behavior  ; is to disable this feature. -; http://php.net/ignore-user-abort +; https://php.net/ignore-user-abort  ;ignore_user_abort = On  ; Determines the size of the realpath cache to be used by PHP. This value should  ; be increased on systems where PHP opens many files to reflect the quantity of  ; the file operations performed.  ; Note: if open_basedir is set, the cache is disabled -; http://php.net/realpath-cache-size +; https://php.net/realpath-cache-size  ;realpath_cache_size = 4096k  ; Duration of time, in seconds for which to cache realpath information for a given  ; file or directory. For systems with rarely changing files, consider increasing this  ; value. -; http://php.net/realpath-cache-ttl +; https://php.net/realpath-cache-ttl  ;realpath_cache_ttl = 120  ; Enables or disables the circular reference collector. -; http://php.net/zend.enable-gc +; https://php.net/zend.enable-gc  zend.enable_gc = On  ; If enabled, scripts may be written in encodings that are incompatible with @@ -396,7 +396,7 @@ zend.exception_string_param_max_len = 0  ; (e.g. by adding its signature to the Web server header).  It is no security  ; threat in any way, but it makes it possible to determine whether you use PHP  ; on your server or not. -; http://php.net/expose-php +; https://php.net/expose-php  expose_php = On  ;;;;;;;;;;;;;;;;;;; @@ -404,7 +404,7 @@ expose_php = On  ;;;;;;;;;;;;;;;;;;;  ; Maximum execution time of each script, in seconds -; http://php.net/max-execution-time +; https://php.net/max-execution-time  ; Note: This directive is hardcoded to 0 for the CLI SAPI  max_execution_time = 30 @@ -415,18 +415,18 @@ max_execution_time = 30  ; Default Value: -1 (Unlimited)  ; Development Value: 60 (60 seconds)  ; Production Value: 60 (60 seconds) -; http://php.net/max-input-time +; https://php.net/max-input-time  max_input_time = 60  ; Maximum input variable nesting level -; http://php.net/max-input-nesting-level +; https://php.net/max-input-nesting-level  ;max_input_nesting_level = 64  ; How many GET/POST/COOKIE input variables may be accepted  ;max_input_vars = 1000  ; Maximum amount of memory a script may consume -; http://php.net/memory-limit +; https://php.net/memory-limit  memory_limit = 128M  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -482,7 +482,7 @@ memory_limit = 128M  ; Default Value: E_ALL  ; Development Value: E_ALL  ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; http://php.net/error-reporting +; https://php.net/error-reporting  error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT  ; This directive controls whether or not and where PHP will output errors, @@ -499,7 +499,7 @@ error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT  ; Default Value: On  ; Development Value: On  ; Production Value: Off -; http://php.net/display-errors +; https://php.net/display-errors  display_errors = Off  ; The display of errors which occur during PHP's startup sequence are handled @@ -508,7 +508,7 @@ display_errors = Off  ; Default Value: On  ; Development Value: On  ; Production Value: Off -; http://php.net/display-startup-errors +; https://php.net/display-startup-errors  display_startup_errors = Off  ; Besides displaying errors, PHP can also log errors to locations such as a @@ -518,36 +518,31 @@ display_startup_errors = Off  ; Default Value: Off  ; Development Value: On  ; Production Value: On -; http://php.net/log-errors +; https://php.net/log-errors  log_errors = On -; Set maximum length of log_errors. In error_log information about the source is -; added. The default is 1024 and 0 allows to not apply any maximum length at all. -; http://php.net/log-errors-max-len -log_errors_max_len = 1024 -  ; Do not log repeated messages. Repeated errors must occur in same file on same  ; line unless ignore_repeated_source is set true. -; http://php.net/ignore-repeated-errors +; https://php.net/ignore-repeated-errors  ignore_repeated_errors = Off  ; Ignore source of message when ignoring repeated messages. When this setting  ; is On you will not log errors with repeated messages from different files or  ; source lines. -; http://php.net/ignore-repeated-source +; https://php.net/ignore-repeated-source  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 is only effective in a debug compile, and if  ; error reporting includes E_WARNING in the allowed list -; http://php.net/report-memleaks +; https://php.net/report-memleaks  report_memleaks = On  ; This setting is off by default.  ;report_zend_debug = 0  ; Turn off normal error reporting and emit XML-RPC error XML -; http://php.net/xmlrpc-errors +; https://php.net/xmlrpc-errors  ;xmlrpc_errors = 0  ; An XML-RPC faultCode @@ -557,40 +552,40 @@ 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 -; http://php.net/html-errors +; https://php.net/html-errors  ;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  ; or function causing the error in detail. -; You can download a copy of the PHP manual from http://php.net/docs +; You can download a copy of the PHP manual from https://php.net/docs  ; and change docref_root to the base URL of your local copy including the  ; leading '/'. You must also specify the file extension being used including  ; the dot. PHP's default behavior is to leave these settings empty, in which  ; case no links to documentation are generated.  ; Note: Never use this feature for production boxes. -; http://php.net/docref-root +; https://php.net/docref-root  ; Examples  ;docref_root = "/phpmanual/" -; http://php.net/docref-ext +; https://php.net/docref-ext  ;docref_ext = .html  ; String to output before an error message. PHP's default behavior is to leave  ; this setting blank. -; http://php.net/error-prepend-string +; https://php.net/error-prepend-string  ; Example:  ;error_prepend_string = "<span style='color: #ff0000'>"  ; String to output after an error message. PHP's default behavior is to leave  ; this setting blank. -; http://php.net/error-append-string +; https://php.net/error-append-string  ; Example:  ;error_append_string = "</span>"  ; Log errors to specified file. PHP's default behavior is to leave this value  ; empty. -; http://php.net/error-log +; https://php.net/error-log  ; Example:  ;error_log = php_errors.log  ; Log errors to syslog (Event Log on Windows). @@ -613,7 +608,7 @@ report_memleaks = On  ;   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 +; https://php.net/syslog.filter  ;syslog.filter = ascii  ;windows.show_crt_warning @@ -627,14 +622,14 @@ report_memleaks = On  ; The separator used in PHP generated URLs to separate arguments.  ; PHP's default setting is "&". -; http://php.net/arg-separator.output +; https://php.net/arg-separator.output  ; Example:  ;arg_separator.output = "&"  ; List of separator(s) used by PHP to parse input URLs into variables.  ; PHP's default setting is "&".  ; NOTE: Every character in this directive is considered as separator! -; http://php.net/arg-separator.input +; https://php.net/arg-separator.input  ; Example:  ;arg_separator.input = ";&" @@ -648,7 +643,7 @@ report_memleaks = On  ; Default Value: "EGPCS"  ; Development Value: "GPCS"  ; Production Value: "GPCS"; -; http://php.net/variables-order +; https://php.net/variables-order  variables_order = "GPCS"  ; This directive determines which super global data (G,P & C) should be @@ -661,7 +656,7 @@ variables_order = "GPCS"  ; Default Value: None  ; Development Value: "GP"  ; Production Value: "GP" -; http://php.net/request-order +; https://php.net/request-order  request_order = "GP"  ; This directive determines whether PHP registers $argv & $argc each time it @@ -676,7 +671,7 @@ request_order = "GP"  ; Default Value: On  ; Development Value: Off  ; Production Value: Off -; http://php.net/register-argc-argv +; https://php.net/register-argc-argv  register_argc_argv = Off  ; When enabled, the ENV, REQUEST and SERVER variables are created when they're @@ -684,7 +679,7 @@ register_argc_argv = Off  ; 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 effect. -; http://php.net/auto-globals-jit +; https://php.net/auto-globals-jit  auto_globals_jit = On  ; Whether PHP will read the POST data. @@ -693,48 +688,48 @@ auto_globals_jit = On  ; and $_FILES to always be empty; the only way you will be able to read the  ; POST data will be through the php://input stream wrapper. This can be useful  ; to proxy requests or to process the POST data in a memory efficient fashion. -; http://php.net/enable-post-data-reading +; https://php.net/enable-post-data-reading  ;enable_post_data_reading = Off  ; Maximum size of POST data that PHP will accept.  ; Its value may be 0 to disable the limit. It is ignored if POST data reading  ; is disabled through enable_post_data_reading. -; http://php.net/post-max-size +; https://php.net/post-max-size  post_max_size = 8M  ; Automatically add files before PHP document. -; http://php.net/auto-prepend-file +; https://php.net/auto-prepend-file  auto_prepend_file =  ; Automatically add files after PHP document. -; http://php.net/auto-append-file +; https://php.net/auto-append-file  auto_append_file =  ; By default, PHP will output a media type using the Content-Type header. To  ; disable this, simply set it to be empty.  ;  ; PHP's built-in default media type is set to text/html. -; http://php.net/default-mimetype +; https://php.net/default-mimetype  default_mimetype = "text/html"  ; PHP's default character set is set to UTF-8. -; http://php.net/default-charset +; https://php.net/default-charset  default_charset = "UTF-8"  ; PHP internal character encoding is set to empty.  ; If empty, default_charset is used. -; http://php.net/internal-encoding +; https://php.net/internal-encoding  ;internal_encoding =  ; PHP input character encoding is set to empty.  ; If empty, default_charset is used. -; http://php.net/input-encoding +; https://php.net/input-encoding  ;input_encoding =  ; PHP output character encoding is set to empty.  ; If empty, default_charset is used.  ; See also output_buffer. -; http://php.net/output-encoding +; https://php.net/output-encoding  ;output_encoding =  ;;;;;;;;;;;;;;;;;;;;;;;;; @@ -748,23 +743,23 @@ default_charset = "UTF-8"  ;include_path = ".;c:\php\includes"  ;  ; PHP's default setting for include_path is ".;/path/to/php/pear" -; http://php.net/include-path +; https://php.net/include-path  ; The root of the PHP pages, used only if nonempty.  ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root  ; if you are running php as a CGI under any web server (other than IIS)  ; see documentation for security issues.  The alternate is to use the  ; cgi.force_redirect configuration below -; http://php.net/doc-root +; https://php.net/doc-root  doc_root =  ; The directory under which PHP opens the script using /~username used only  ; if nonempty. -; http://php.net/user-dir +; https://php.net/user-dir  user_dir =  ; Directory in which the loadable extensions (modules) reside. -; http://php.net/extension-dir +; https://php.net/extension-dir  ;extension_dir = "./"  ; On windows:  ;extension_dir = "ext" @@ -776,14 +771,14 @@ user_dir =  ; 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  ; disabled on them. -; http://php.net/enable-dl +; https://php.net/enable-dl  enable_dl = Off  ; cgi.force_redirect is necessary to provide security running PHP as a CGI under  ; most web servers.  Left undefined, PHP turns this on by default.  You can  ; turn it off here AT YOUR OWN RISK  ; **You CAN safely turn this off for IIS, in fact, you MUST.** -; http://php.net/cgi.force-redirect +; https://php.net/cgi.force-redirect  ;cgi.force_redirect = 1  ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with @@ -794,7 +789,7 @@ enable_dl = Off  ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP  ; will look for to know it is OK to continue execution.  Setting this variable MAY  ; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; http://php.net/cgi.redirect-status-env +; https://php.net/cgi.redirect-status-env  ;cgi.redirect_status_env =  ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's @@ -803,7 +798,7 @@ enable_dl = Off  ; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting  ; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts  ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; http://php.net/cgi.fix-pathinfo +; https://php.net/cgi.fix-pathinfo  ;cgi.fix_pathinfo=1  ; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside @@ -815,7 +810,7 @@ enable_dl = Off  ; security context that the request runs under.  mod_fastcgi under Apache  ; does not currently support this feature (03/17/2002)  ; Set to 1 if running under IIS.  Default is zero. -; http://php.net/fastcgi.impersonate +; https://php.net/fastcgi.impersonate  ;fastcgi.impersonate = 1  ; Disable logging through FastCGI connection. PHP's default behavior is to enable @@ -827,14 +822,14 @@ enable_dl = Off  ; is supported by Apache. When this option is set to 1, PHP will send  ; RFC2616 compliant header.  ; Default is zero. -; http://php.net/cgi.rfc2616-headers +; https://php.net/cgi.rfc2616-headers  ;cgi.rfc2616_headers = 0  ; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #!  ; (shebang) at the top of the running script. This line might be needed if the  ; script support running both as stand-alone script and via PHP CGI<. PHP in CGI  ; mode skips this line and ignores its content if this directive is turned on. -; http://php.net/cgi.check-shebang-line +; https://php.net/cgi.check-shebang-line  ;cgi.check_shebang_line=1  ;;;;;;;;;;;;;;;; @@ -842,16 +837,16 @@ enable_dl = Off  ;;;;;;;;;;;;;;;;  ; Whether to allow HTTP file uploads. -; http://php.net/file-uploads +; https://php.net/file-uploads  file_uploads = On  ; Temporary directory for HTTP uploaded files (will use system default if not  ; specified). -; http://php.net/upload-tmp-dir +; https://php.net/upload-tmp-dir  ;upload_tmp_dir =  ; Maximum allowed size for uploaded files. -; http://php.net/upload-max-filesize +; https://php.net/upload-max-filesize  upload_max_filesize = 2M  ; Maximum number of files that can be uploaded via a single request @@ -862,24 +857,24 @@ max_file_uploads = 20  ;;;;;;;;;;;;;;;;;;  ; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-fopen +; https://php.net/allow-url-fopen  allow_url_fopen = On -; Whether to allow include/require to open URLs (like http:// or ftp://) as files. -; http://php.net/allow-url-include +; Whether to allow include/require to open URLs (like https:// or ftp://) as files. +; https://php.net/allow-url-include  allow_url_include = Off  ; Define the anonymous ftp password (your email address). PHP's default setting  ; for this is empty. -; http://php.net/from +; https://php.net/from  ;from="john@doe.com"  ; Define the User-Agent string. PHP's default setting for this is empty. -; http://php.net/user-agent +; https://php.net/user-agent  ;user_agent="PHP"  ; Default timeout for socket based streams (seconds) -; http://php.net/default-socket-timeout +; https://php.net/default-socket-timeout  default_socket_timeout = 60  ; If your scripts have to deal with files from Macintosh systems, @@ -887,7 +882,7 @@ default_socket_timeout = 60  ; unix or win32 systems, setting this flag will cause PHP to  ; automatically detect the EOL character in those files so that  ; fgets() and file() will work regardless of the source of the file. -; http://php.net/auto-detect-line-endings +; https://php.net/auto-detect-line-endings  ;auto_detect_line_endings = Off  ;;;;;;;;;;;;;;;;;;;;;; @@ -928,26 +923,26 @@ cli_server.color = On  [Date]  ; Defines the default timezone used by the date functions -; http://php.net/date.timezone +; https://php.net/date.timezone  ;date.timezone = -; http://php.net/date.default-latitude +; https://php.net/date.default-latitude  ;date.default_latitude = 31.7667 -; http://php.net/date.default-longitude +; https://php.net/date.default-longitude  ;date.default_longitude = 35.2333 -; http://php.net/date.sunrise-zenith +; https://php.net/date.sunrise-zenith  ;date.sunrise_zenith = 90.833333 -; http://php.net/date.sunset-zenith +; https://php.net/date.sunset-zenith  ;date.sunset_zenith = 90.833333  [filter] -; http://php.net/filter.default +; https://php.net/filter.default  ;filter.default = unsafe_raw -; http://php.net/filter.default-flags +; https://php.net/filter.default-flags  ;filter.default_flags =  [iconv] @@ -985,7 +980,7 @@ cli_server.color = On  [sqlite3]  ; Directory pointing to SQLite3 extensions -; http://php.net/sqlite3.extension-dir +; https://php.net/sqlite3.extension-dir  ;sqlite3.extension_dir =  ; SQLite defensive mode flag (only available from SQLite 3.26+) @@ -999,14 +994,14 @@ cli_server.color = On  [Pcre]  ; PCRE library backtracking limit. -; http://php.net/pcre.backtrack-limit +; https://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). -; http://php.net/pcre.recursion-limit +; https://php.net/pcre.recursion-limit  ;pcre.recursion_limit=100000  ; Enables or disables JIT compilation of patterns. This requires the PCRE @@ -1015,7 +1010,7 @@ pcre.jit=0  [Pdo]  ; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; http://php.net/pdo-odbc.connection-pooling +; https://php.net/pdo-odbc.connection-pooling  ;pdo_odbc.connection_pooling=strict  [Pdo_mysql] @@ -1024,17 +1019,17 @@ pcre.jit=0  pdo_mysql.default_socket=  [Phar] -; http://php.net/phar.readonly +; https://php.net/phar.readonly  ;phar.readonly = On -; http://php.net/phar.require-hash +; https://php.net/phar.require-hash  ;phar.require_hash = On  ;phar.cache_list =  [mail function]  ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i"). -; http://php.net/sendmail-path +; https://php.net/sendmail-path  sendmail_path = /usr/sbin/sendmail -t -i  ; Force the addition of the specified parameters to be passed as extra parameters @@ -1052,13 +1047,13 @@ mail.add_x_header = Off  ;mail.log = syslog  [ODBC] -; http://php.net/odbc.default-db +; https://php.net/odbc.default-db  ;odbc.default_db    =  Not yet implemented -; http://php.net/odbc.default-user +; https://php.net/odbc.default-user  ;odbc.default_user  =  Not yet implemented -; http://php.net/odbc.default-pw +; https://php.net/odbc.default-pw  ;odbc.default_pw    =  Not yet implemented  ; Controls the ODBC cursor model. @@ -1066,68 +1061,72 @@ mail.add_x_header = Off  ;odbc.default_cursortype  ; Allow or prevent persistent links. -; http://php.net/odbc.allow-persistent +; https://php.net/odbc.allow-persistent  odbc.allow_persistent = On  ; Check that a connection is still valid before reuse. -; http://php.net/odbc.check-persistent +; https://php.net/odbc.check-persistent  odbc.check_persistent = On  ; Maximum number of persistent links.  -1 means no limit. -; http://php.net/odbc.max-persistent +; https://php.net/odbc.max-persistent  odbc.max_persistent = -1  ; Maximum number of links (persistent + non-persistent).  -1 means no limit. -; http://php.net/odbc.max-links +; https://php.net/odbc.max-links  odbc.max_links = -1  ; Handling of LONG fields.  Returns number of bytes to variables.  0 means  ; passthru. -; http://php.net/odbc.defaultlrl +; https://php.net/odbc.defaultlrl  odbc.defaultlrl = 4096  ; Handling of binary data.  0 means passthru, 1 return as is, 2 convert to char.  ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation  ; of odbc.defaultlrl and odbc.defaultbinmode -; http://php.net/odbc.defaultbinmode +; https://php.net/odbc.defaultbinmode  odbc.defaultbinmode = 1  [MySQLi]  ; Maximum number of persistent links.  -1 means no limit. -; http://php.net/mysqli.max-persistent +; https://php.net/mysqli.max-persistent  mysqli.max_persistent = -1  ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; http://php.net/mysqli.allow_local_infile +; https://php.net/mysqli.allow_local_infile  ;mysqli.allow_local_infile = On +; It allows the user to specify a folder where files that can be sent via LOAD DATA +; LOCAL can exist. It is ignored if mysqli.allow_local_infile is enabled. +;mysqli.local_infile_directory = +  ; Allow or prevent persistent links. -; http://php.net/mysqli.allow-persistent +; https://php.net/mysqli.allow-persistent  mysqli.allow_persistent = On  ; Maximum number of links.  -1 means no limit. -; http://php.net/mysqli.max-links +; https://php.net/mysqli.max-links  mysqli.max_links = -1  ; 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  ; at MYSQL_PORT. -; http://php.net/mysqli.default-port +; https://php.net/mysqli.default-port  mysqli.default_port = 3306  ; Default socket name for local MySQL connects.  If empty, uses the built-in  ; MySQL defaults. -; http://php.net/mysqli.default-socket +; https://php.net/mysqli.default-socket  mysqli.default_socket =  ; Default host for mysqli_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-host +; https://php.net/mysqli.default-host  mysqli.default_host =  ; Default user for mysqli_connect() (doesn't apply in safe mode). -; http://php.net/mysqli.default-user +; https://php.net/mysqli.default-user  mysqli.default_user =  ; Default password for mysqli_connect() (doesn't apply in safe mode). @@ -1135,12 +1134,17 @@ mysqli.default_user =  ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")  ; and reveal this password!  And of course, any users with read access to this  ; file will be able to reveal the password as well. -; http://php.net/mysqli.default-pw +; https://php.net/mysqli.default-pw  mysqli.default_pw =  ; Allow or prevent reconnect  mysqli.reconnect = Off +; If this option is enabled, closing a persistent connection will rollback +; any pending transactions of this connection, before it is put back +; into the persistent connection pool. +;mysqli.rollback_on_cached_plink = Off +  [mysqlnd]  ; Enable / Disable collection of general statistics by mysqlnd which can be  ; used to tune and monitor MySQL operations. @@ -1152,7 +1156,7 @@ mysqlnd.collect_memory_statistics = Off  ; Records communication from all extensions using mysqlnd to the specified log  ; file. -; http://php.net/mysqlnd.debug +; https://php.net/mysqlnd.debug  ;mysqlnd.debug =  ; Defines which queries will be logged. @@ -1180,44 +1184,44 @@ mysqlnd.collect_memory_statistics = Off  [PostgreSQL]  ; Allow or prevent persistent links. -; http://php.net/pgsql.allow-persistent +; https://php.net/pgsql.allow-persistent  pgsql.allow_persistent = On  ; Detect broken persistent links always with pg_pconnect().  ; Auto reset feature requires a little overheads. -; http://php.net/pgsql.auto-reset-persistent +; https://php.net/pgsql.auto-reset-persistent  pgsql.auto_reset_persistent = Off  ; Maximum number of persistent links.  -1 means no limit. -; http://php.net/pgsql.max-persistent +; https://php.net/pgsql.max-persistent  pgsql.max_persistent = -1  ; Maximum number of links (persistent+non persistent).  -1 means no limit. -; http://php.net/pgsql.max-links +; https://php.net/pgsql.max-links  pgsql.max_links = -1  ; Ignore PostgreSQL backends Notice message or not.  ; Notice message logging require a little overheads. -; http://php.net/pgsql.ignore-notice +; https://php.net/pgsql.ignore-notice  pgsql.ignore_notice = 0  ; Log PostgreSQL backends Notice message or not.  ; Unless pgsql.ignore_notice=0, module cannot log notice message. -; http://php.net/pgsql.log-notice +; https://php.net/pgsql.log-notice  pgsql.log_notice = 0  [bcmath]  ; Number of decimal digits for all bcmath functions. -; http://php.net/bcmath.scale +; https://php.net/bcmath.scale  bcmath.scale = 0  [browscap] -; http://php.net/browscap +; https://php.net/browscap  ;browscap = extra/browscap.ini  [Session]  ; Handler used to store/retrieve data. -; http://php.net/session.save-handler +; https://php.net/session.save-handler  session.save_handler = files  ; Argument passed to save_handler.  In the case of files, this is the path @@ -1246,7 +1250,7 @@ session.save_handler = files  ;  ; where MODE is the octal representation of the mode. Note that this  ; does not overwrite the process's umask. -; http://php.net/session.save-path +; https://php.net/session.save-path  ; RPM note : session directory must be owned by process owner  ; for mod_php, see /etc/httpd/conf.d/php.conf @@ -1263,42 +1267,42 @@ session.save_handler = files  session.use_strict_mode = 0  ; Whether to use cookies. -; http://php.net/session.use-cookies +; https://php.net/session.use-cookies  session.use_cookies = 1 -; http://php.net/session.cookie-secure +; https://php.net/session.cookie-secure  ;session.cookie_secure =  ; This option forces PHP to fetch and use a cookie for storing and maintaining  ; the session id. We encourage this operation as it's very helpful in combating  ; session hijacking when not specifying and managing your own session id. It is  ; not the be-all and end-all of session hijacking defense, but it's a good start. -; http://php.net/session.use-only-cookies +; https://php.net/session.use-only-cookies  session.use_only_cookies = 1  ; Name of the session (used as cookie name). -; http://php.net/session.name +; https://php.net/session.name  session.name = PHPSESSID  ; Initialize session on request startup. -; http://php.net/session.auto-start +; https://php.net/session.auto-start  session.auto_start = 0  ; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; http://php.net/session.cookie-lifetime +; https://php.net/session.cookie-lifetime  session.cookie_lifetime = 0  ; The path for which the cookie is valid. -; http://php.net/session.cookie-path +; https://php.net/session.cookie-path  session.cookie_path = /  ; The domain for which the cookie is valid. -; http://php.net/session.cookie-domain +; https://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. -; http://php.net/session.cookie-httponly +; https://php.net/session.cookie-httponly  session.cookie_httponly =  ; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) @@ -1308,7 +1312,7 @@ session.cookie_httponly =  session.cookie_samesite =  ; Handler used to serialize data. php is the standard serializer of PHP. -; http://php.net/session.serialize-handler +; https://php.net/session.serialize-handler  session.serialize_handler = php  ; Defines the probability that the 'garbage collection' process is started on every @@ -1317,7 +1321,7 @@ session.serialize_handler = php  ; Default Value: 1  ; Development Value: 1  ; Production Value: 1 -; http://php.net/session.gc-probability +; https://php.net/session.gc-probability  session.gc_probability = 1  ; Defines the probability that the 'garbage collection' process is started on every @@ -1327,12 +1331,12 @@ session.gc_probability = 1  ; Default Value: 100  ; Development Value: 1000  ; Production Value: 1000 -; http://php.net/session.gc-divisor +; https://php.net/session.gc-divisor  session.gc_divisor = 1000  ; After this number of seconds, stored data will be seen as 'garbage' and  ; cleaned up by the garbage collection process. -; http://php.net/session.gc-maxlifetime +; https://php.net/session.gc-maxlifetime  session.gc_maxlifetime = 1440  ; NOTE: If you are using the subdirectory option for storing session files @@ -1346,16 +1350,16 @@ session.gc_maxlifetime = 1440  ; Check HTTP Referer to invalidate externally stored URLs containing ids.  ; HTTP_REFERER has to contain this substring for the session to be  ; considered as valid. -; http://php.net/session.referer-check +; https://php.net/session.referer-check  session.referer_check =  ; Set to {nocache,private,public,} to determine HTTP caching aspects  ; or leave this empty to avoid sending anti-caching headers. -; http://php.net/session.cache-limiter +; https://php.net/session.cache-limiter  session.cache_limiter = nocache  ; Document expires after n minutes. -; http://php.net/session.cache-expire +; https://php.net/session.cache-expire  session.cache_expire = 180  ; trans sid support is disabled by default. @@ -1367,13 +1371,13 @@ session.cache_expire = 180  ;   in publicly accessible computer.  ; - User may access your site with the same session ID  ;   always using URL stored in browser's history or bookmarks. -; http://php.net/session.use-trans-sid +; https://php.net/session.use-trans-sid  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 +; https://php.net/session.sid-length  ; Default Value: 32  ; Development Value: 26  ; Production Value: 26 @@ -1388,7 +1392,7 @@ session.sid_length = 26  ; Default Value: "a=href,area=href,frame=src,form="  ; Development Value: "a=href,area=href,frame=src,form="  ; Production Value: "a=href,area=href,frame=src,form=" -; http://php.net/url-rewriter.tags +; https://php.net/url-rewriter.tags  session.trans_sid_tags = "a=href,area=href,frame=src,form="  ; URL rewriter does not rewrite absolute URLs by default. @@ -1413,14 +1417,14 @@ session.trans_sid_tags = "a=href,area=href,frame=src,form="  ; Default Value: 4  ; Development Value: 5  ; Production Value: 5 -; http://php.net/session.hash-bits-per-character +; https://php.net/session.hash-bits-per-character  session.sid_bits_per_character = 5  ; Enable upload progress tracking in $_SESSION  ; Default Value: On  ; Development Value: On  ; Production Value: On -; http://php.net/session.upload-progress.enabled +; https://php.net/session.upload-progress.enabled  ;session.upload_progress.enabled = On  ; Cleanup the progress information as soon as all POST data has been read @@ -1428,14 +1432,14 @@ session.sid_bits_per_character = 5  ; Default Value: On  ; Development Value: On  ; Production Value: On -; http://php.net/session.upload-progress.cleanup +; https://php.net/session.upload-progress.cleanup  ;session.upload_progress.cleanup = On  ; A prefix used for the upload progress key in $_SESSION  ; Default Value: "upload_progress_"  ; Development Value: "upload_progress_"  ; Production Value: "upload_progress_" -; http://php.net/session.upload-progress.prefix +; https://php.net/session.upload-progress.prefix  ;session.upload_progress.prefix = "upload_progress_"  ; The index name (concatenated with the prefix) in $_SESSION @@ -1443,7 +1447,7 @@ session.sid_bits_per_character = 5  ; Default Value: "PHP_SESSION_UPLOAD_PROGRESS"  ; Development Value: "PHP_SESSION_UPLOAD_PROGRESS"  ; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; http://php.net/session.upload-progress.name +; https://php.net/session.upload-progress.name  ;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS"  ; How frequently the upload progress should be updated. @@ -1451,18 +1455,18 @@ session.sid_bits_per_character = 5  ; Default Value: "1%"  ; Development Value: "1%"  ; Production Value: "1%" -; http://php.net/session.upload-progress.freq +; https://php.net/session.upload-progress.freq  ;session.upload_progress.freq =  "1%"  ; The minimum delay between updates, in seconds  ; Default Value: 1  ; Development Value: 1  ; Production Value: 1 -; http://php.net/session.upload-progress.min-freq +; https://php.net/session.upload-progress.min-freq  ;session.upload_progress.min_freq = "1"  ; Only write session data when session data is changed. Enabled by default. -; http://php.net/session.lazy-write +; https://php.net/session.lazy-write  ;session.lazy_write = On  [Assertion] @@ -1474,33 +1478,33 @@ session.sid_bits_per_character = 5  ; Default Value: 1  ; Development Value: 1  ; Production Value: -1 -; http://php.net/zend.assertions +; https://php.net/zend.assertions  zend.assertions = -1  ; Assert(expr); active by default. -; http://php.net/assert.active +; https://php.net/assert.active  ;assert.active = On  ; Throw an AssertionError on failed assertions -; http://php.net/assert.exception +; https://php.net/assert.exception  ;assert.exception = On  ; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) -; http://php.net/assert.warning +; https://php.net/assert.warning  ;assert.warning = On  ; Don't bail out by default. -; http://php.net/assert.bail +; https://php.net/assert.bail  ;assert.bail = Off  ; User-function to be called if an assertion fails. -; http://php.net/assert.callback +; https://php.net/assert.callback  ;assert.callback = 0  [mbstring]  ; language for internal character representation.  ; This affects mb_send_mail() and mbstring.detect_order. -; http://php.net/mbstring.language +; https://php.net/mbstring.language  ;mbstring.language = Japanese  ; Use of this INI entry is deprecated, use global internal_encoding instead. @@ -1515,7 +1519,7 @@ zend.assertions = -1  ; 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 < input_encoding < mbstring.http_input -; http://php.net/mbstring.http-input +; https://php.net/mbstring.http-input  ;mbstring.http_input =  ; Use of this INI entry is deprecated, use global output_encoding instead. @@ -1525,7 +1529,7 @@ zend.assertions = -1  ; The precedence is: default_charset < output_encoding < mbstring.http_output  ; To use an output encoding conversion, mbstring's output handler must be set  ; otherwise output encoding conversion cannot be performed. -; http://php.net/mbstring.http-output +; https://php.net/mbstring.http-output  ;mbstring.http_output =  ; enable automatic encoding translation according to @@ -1533,17 +1537,17 @@ zend.assertions = -1  ; converted to internal encoding by setting this to On.  ; Note: Do _not_ use automatic encoding translation for  ;       portable libs/applications. -; http://php.net/mbstring.encoding-translation +; https://php.net/mbstring.encoding-translation  ;mbstring.encoding_translation = Off  ; automatic encoding detection order.  ; "auto" detect order is changed according to mbstring.language -; http://php.net/mbstring.detect-order +; https://php.net/mbstring.detect-order  ;mbstring.detect_order = auto  ; substitute_character used when character cannot be converted  ; one from another -; http://php.net/mbstring.substitute-character +; https://php.net/mbstring.substitute-character  ;mbstring.substitute_character = none  ; Enable strict encoding detection. @@ -1566,7 +1570,7 @@ zend.assertions = -1  ; Tell the jpeg decode to ignore warnings and try to create  ; a gd image. The warning will then be displayed as notices  ; disabled by default -; http://php.net/gd.jpeg-ignore-warning +; https://php.net/gd.jpeg-ignore-warning  ;gd.jpeg_ignore_warning = 1  [exif] @@ -1575,42 +1579,42 @@ zend.assertions = -1  ; given by corresponding encode setting. When empty mbstring.internal_encoding  ; is used. For the decode settings you can distinguish between motorola and  ; intel byte order. A decode setting cannot be empty. -; http://php.net/exif.encode-unicode +; https://php.net/exif.encode-unicode  ;exif.encode_unicode = ISO-8859-15 -; http://php.net/exif.decode-unicode-motorola +; https://php.net/exif.decode-unicode-motorola  ;exif.decode_unicode_motorola = UCS-2BE -; http://php.net/exif.decode-unicode-intel +; https://php.net/exif.decode-unicode-intel  ;exif.decode_unicode_intel    = UCS-2LE -; http://php.net/exif.encode-jis +; https://php.net/exif.encode-jis  ;exif.encode_jis = -; http://php.net/exif.decode-jis-motorola +; https://php.net/exif.decode-jis-motorola  ;exif.decode_jis_motorola = JIS -; http://php.net/exif.decode-jis-intel +; https://php.net/exif.decode-jis-intel  ;exif.decode_jis_intel    = JIS  [Tidy]  ; The path to a default tidy configuration file to use when using tidy -; http://php.net/tidy.default-config +; https://php.net/tidy.default-config  ;tidy.default_config = /usr/local/lib/php/default.tcfg  ; Should tidy clean and repair output automatically?  ; WARNING: Do not use this option if you are generating non-html content  ; such as dynamic images -; http://php.net/tidy.clean-output +; https://php.net/tidy.clean-output  tidy.clean_output = Off  [soap]  ; Enables or disables WSDL caching feature. -; http://php.net/soap.wsdl-cache-enabled +; https://php.net/soap.wsdl-cache-enabled  soap.wsdl_cache_enabled=1  ; Sets the directory name where SOAP extension will put cache files. -; http://php.net/soap.wsdl-cache-dir +; https://php.net/soap.wsdl-cache-dir  ; RPM note : cache directory must be owned by process owner  ; for mod_php, see /etc/httpd/conf.d/php.conf @@ -1619,7 +1623,7 @@ soap.wsdl_cache_dir="/tmp"  ; (time to live) Sets the number of second while cached file will be used  ; instead of original one. -; http://php.net/soap.wsdl-cache-ttl +; https://php.net/soap.wsdl-cache-ttl  soap.wsdl_cache_ttl=86400  ; Sets the size of the cache limit. (Max. number of WSDL files to cache) @@ -8,19 +8,19 @@  # Please preserve changelog entries  #  # API/ABI check -%global apiver      20200930 -%global zendver     20200930 +%global apiver      20210902 +%global zendver     20210902  %global pdover      20170320  # Extension version  %global fileinfover 1.0.5 -%global oci8ver     3.0.1 +%global oci8ver     3.1.0  %global zipver      1.19.3  # Adds -z now to the linker flags  %global _hardened_build 1  # version used for php embedded library soname -%global embed_version 8.0 +%global embed_version 8.1  %global mysql_sock %(mysql_config --socket 2>/dev/null || echo /var/lib/mysql/mysql.sock) @@ -57,6 +57,13 @@  # Debug build, using --with debug  %bcond_with           debug +# build with system tzdata (2021 required) +%if 0%{?fedora} >= 33 || 0%{?rhel} >= 7 +%bcond_without        tzdata +%else +%bcond_with           tzdata +%endif +  # /usr/sbin/apsx with httpd < 2.4 and defined as /usr/bin/apxs with httpd >= 2.4  %{!?_httpd_apxs:       %{expand: %%global _httpd_apxs       %%{_sbindir}/apxs}}  %{!?_httpd_mmn:        %{expand: %%global _httpd_mmn        %%(cat %{_includedir}/httpd/.mmn 2>/dev/null || echo 0-0)}} @@ -85,21 +92,22 @@  %bcond_without         libgd  %bcond_with            zip -%global upver          8.0.10 -#global rcver          RC1 -#global lower          RC1 +%global upver          8.1.0 +%global rcver          RC1 +%global lower          RC1  Summary: PHP scripting language for creating dynamic web sites  Name: php  Version: %{upver}%{?rcver:~%{lower}} -Release: 2%{?dist} +Release: 1%{?dist}  # All files licensed under PHP version 3.01, except  # Zend is licensed under Zend  # TSRM is licensed under BSD  # main/snprintf.c, main/spprintf.c and main/rfc1867.c are ASL 1.0  # ext/date/lib is MIT  # Zend/zend_sort is NCSA -License: PHP and Zend and BSD and MIT and ASL 1.0 and NCSA +# Zend/asm is Boost +License: PHP and Zend and BSD and MIT and ASL 1.0 and NCSA and Boost  URL: http://www.php.net/  Source0: http://www.php.net/distributions/php-%{upver}%{?rcver}.tar.xz @@ -129,9 +137,7 @@ Source53: 20-ffi.ini  Patch1: php-7.4.0-httpd.patch  Patch5: php-7.2.0-includedir.patch  Patch6: php-8.0.0-embed.patch -Patch8: php-7.4.0-libdb.patch -# get rid of deprecated functions from 8.1 -Patch9: php-8.0.6-deprecated.patch +Patch8: php-8.1.0-libdb.patch  # RHEL backports  Patch10: php-7.0.7-curl.patch @@ -139,7 +145,7 @@ Patch10: php-7.0.7-curl.patch  # Use system nikic/php-parser  Patch41: php-8.0.0-parser.patch  # use system tzdata -Patch42: php-8.0.10-systzdata-v20.patch +Patch42: php-8.1.0-systzdata-v21.patch  # See http://bugs.php.net/53436  Patch43: php-7.4.0-phpize.patch  # Use -lldap_r for OpenLDAP @@ -148,12 +154,7 @@ Patch45: php-7.4.0-ldap_r.patch  Patch46: php-8.0.7-argon2.patch  # drop "Configure command" from phpinfo output  # and only use gcc (instead of full version) -Patch47: php-8.0.0-phpinfo.patch -# add sha256 / sha512 security protocol, from 8.1 -Patch48: php-8.0.10-snmp-sha.patch -# switch phar to use sha256 signature by default, from 8.1 -# implement openssl_256 and openssl_512 for phar signatures, from 8.1 -Patch49: php-8.0.10-phar-sha.patch +Patch47: php-8.1.0-phpinfo.patch  # RC Patch  Patch91: php-7.2.0-oci8conf.patch @@ -183,7 +184,7 @@ BuildRequires: nginx-filesystem  %endif  BuildRequires: %{?dtsprefix}libstdc++-devel  # no pkgconfig to avoid compat-openssl10 -BuildRequires: openssl-devel >= 1.0.1 +BuildRequires: openssl-devel >= 1.0.2  BuildRequires: pkgconfig(sqlite3) >= 3.7.4  BuildRequires: pkgconfig(zlib) >= 1.2.0.4  BuildRequires: smtpdaemon @@ -209,6 +210,9 @@ BuildRequires: %{?dtsprefix}systemtap-sdt-devel  #BuildRequires: re2c  # used for tests  BuildRequires: /bin/ps +%if %{with tzdata} +BuildRequires: tzdata +%endif  %if 0%{?rhel}  Obsoletes: php53, php53u, php54w, php55u, php55w, php56u, php56w, mod_php70u, php70w, mod_php71u, mod_php71w, mod_php72u, mod_php72w @@ -439,7 +443,7 @@ Requires: libtool  # see "php-config --libs"  Requires: krb5-devel%{?_isa}  Requires: libxml2-devel%{?_isa} -Requires: openssl-devel%{?_isa} >= 1.0.1 +Requires: openssl-devel%{?_isa} >= 1.0.2  %if %{with libpcre}  Requires: pcre2-devel%{?_isa}  %endif @@ -500,7 +504,7 @@ Requires: php-common%{?_isa} = %{version}-%{release}  Obsoletes: mod_php3-imap, stronghold-php-imap  BuildRequires: pkgconfig(krb5)  BuildRequires: pkgconfig(krb5-gssapi) -BuildRequires: openssl-devel >= 1.0.1 +BuildRequires: openssl-devel >= 1.0.2  BuildRequires: libc-client-devel  %if 0%{?rhel}  Obsoletes: php53-imap, php53u-imap, php54-imap, php54w-imap, php55u-imap, php55w-imap, php56u-imap, php56w-imap @@ -522,7 +526,7 @@ License: PHP  Requires: php-common%{?_isa} = %{version}-%{release}  BuildRequires: pkgconfig(libsasl2)  BuildRequires: openldap-devel -BuildRequires: openssl-devel >= 1.0.1 +BuildRequires: openssl-devel >= 1.0.2  %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 @@ -598,7 +602,7 @@ Requires: php-pdo%{?_isa} = %{version}-%{release}  Provides: php_database  Provides: php-pdo_pgsql, php-pdo_pgsql%{?_isa}  BuildRequires: krb5-devel -BuildRequires: openssl-devel >= 1.0.1 +BuildRequires: openssl-devel >= 1.0.2  BuildRequires: postgresql-devel  %if 0%{?rhel}  Obsoletes: php53-pgsql, php53u-pgsql, php54-pgsql, php54w-pgsql, php55u-pgsql, php55w-pgsql, php56u-pgsql, php56w-pgsql @@ -847,6 +851,7 @@ BuildRequires: pkgconfig(libpng)  BuildRequires: pkgconfig(freetype2)  BuildRequires: pkgconfig(xpm)  BuildRequires: pkgconfig(libwebp) +BuildRequires: pkgconfig(libavif)  Provides: bundled(gd) = 2.0.35  %endif  %if 0%{?rhel} @@ -1146,21 +1151,18 @@ in pure PHP.  %patch5 -p1 -b .includedir  %patch6 -p1 -b .embed  %patch8 -p1 -b .libdb -%patch9 -p1 -b .deprecated  %if 0%{?rhel}  %patch10 -p1 -b .curltls  %endif  %patch41 -p1 -b .syslib -%if 0%{?fedora} >= 31 || 0%{?rhel} >= 6 +%if %{with tzdata}  %patch42 -p1 -b .systzdata  %endif  %patch43 -p1 -b .headers  %patch45 -p1 -b .ldap_r  %patch46 -p1 -b .argon2  %patch47 -p1 -b .phpinfo -%patch48 -p1 -b .sha -%patch49 -p1 -b .pharsha  %patch91 -p1 -b .remi-oci8 @@ -1169,7 +1171,7 @@ in pure PHP.  # security patches  # Fixes for tests related to tzdata -%if 0%{?fedora} >= 29 || 0%{?rhel} >= 6 +%if %{with tzdata}  %patch300 -p1 -b .datetests  %endif @@ -1177,6 +1179,7 @@ in pure PHP.  # Prevent %%doc confusion over LICENSE files  cp Zend/LICENSE ZEND_LICENSE +cp Zend/asm/LICENSE BOOST_LICENSE  cp TSRM/LICENSE TSRM_LICENSE  cp sapi/fpm/LICENSE fpm_LICENSE  cp ext/mbstring/libmbfl/LICENSE libmbfl_LICENSE @@ -1193,14 +1196,10 @@ mkdir build-cgi build-apache build-embedded \  # ----- Manage known as failed test -------  # affected by systzdata patch +%if %{with tzdata}  rm ext/date/tests/timezone_location_get.phpt  rm ext/date/tests/timezone_version_get.phpt  rm ext/date/tests/timezone_version_get_basic1.phpt -%if 0%{?fedora} < 29 -# need tzdata 2018i -rm ext/date/tests/bug33414-1.phpt -rm ext/date/tests/bug33415-2.phpt -rm ext/date/tests/date_modify-1.phpt  %endif  # too fast builder  rm ext/date/tests/bug73837.phpt @@ -1375,7 +1374,7 @@ ln -sf ../configure      --with-layout=GNU \      --with-kerberos \      --with-libxml \ -%if 0%{?fedora} >= 29 || 0%{?rhel} >= 6 +%if %{with tzdata}      --with-system-tzdata \  %endif      --with-mhash \ @@ -2002,7 +2001,7 @@ fi  %files common -f files.common  %doc EXTENSIONS NEWS UPGRADING* README.REDIST.BINS *md docs -%license LICENSE TSRM_LICENSE ZEND_LICENSE +%license LICENSE TSRM_LICENSE ZEND_LICENSE BOOST_LICENSE  %license libmagic_LICENSE  %license timelib_LICENSE  %doc php.ini-* @@ -2152,6 +2151,10 @@ fi  %changelog +* Thu Sep  2 2021 Remi Collet <remi@remirepo.net> - 8.1.0~RC1-1 +- update to 8.1.0RC1 +- bump API version +  * Tue Aug 24 2021 Remi Collet <remi@remirepo.net> - 8.0.10-1  - Update to 8.0.10 - http://www.php.net/releases/8_0_10.php | 
