add internal UTC if tzdata is missing
bump to final API/ABI
switch to nikic/php-parser version 5
openssl: always warn about missing curve_name
This commit is contained in:
Remi Collet 2023-10-03 07:29:46 +02:00
parent 1dc9fab1f5
commit 29055c78ae
8 changed files with 170 additions and 89 deletions

57
.gitignore vendored
View File

@ -1,58 +1,9 @@
clog clog
TODO TODO
*.md *.md
php-5.*.xz
php-7.*.xz
php-7.*.xz.asc
/php-8.0.*.tar.xz
/php-8.0.*.tar.xz.asc
/php-8.1.*.tar.xz /php-8.1.*.tar.xz
/php-8.1.*.tar.xz.asc /php-8.1.*.tar.xz.asc
/php-8.2.0RC5.tar.xz /php-8.2.*.tar.xz
/php-8.2.0RC5.tar.xz.asc /php-8.2.*.tar.xz.asc
/php-8.2.0RC6.tar.xz /php-8.3.0RC3.tar.xz
/php-8.2.0RC6.tar.xz.asc /php-8.3.0RC3.tar.xz.asc
/php-8.2.0RC7.tar.xz
/php-8.2.0RC7.tar.xz.asc
/php-8.2.0.tar.xz
/php-8.2.0.tar.xz.asc
/php-8.2.1RC1.tar.xz
/php-8.2.1RC1.tar.xz.asc
/php-8.2.1.tar.xz
/php-8.2.1.tar.xz.asc
/php-8.2.2RC1.tar.xz
/php-8.2.2RC1.tar.xz.asc
/php-8.2.2.tar.xz
/php-8.2.2.tar.xz.asc
/php-8.2.3.tar.xz
/php-8.2.3.tar.xz.asc
/php-8.2.4RC1.tar.xz
/php-8.2.4RC1.tar.xz.asc
/php-8.2.4.tar.xz
/php-8.2.4.tar.xz.asc
/php-8.2.5RC1.tar.xz
/php-8.2.5RC1.tar.xz.asc
/php-8.2.5.tar.xz
/php-8.2.5.tar.xz.asc
/php-8.2.6RC1.tar.xz
/php-8.2.6RC1.tar.xz.asc
/php-8.2.6.tar.xz
/php-8.2.6.tar.xz.asc
/php-8.2.7RC1.tar.xz
/php-8.2.7RC1.tar.xz.asc
/php-8.2.7.tar.xz
/php-8.2.7.tar.xz.asc
/php-8.2.8RC1.tar.xz
/php-8.2.8RC1.tar.xz.asc
/php-8.2.8.tar.xz
/php-8.2.8.tar.xz.asc
/php-8.2.9RC1.tar.xz
/php-8.2.9RC1.tar.xz.asc
/php-8.2.9.tar.xz
/php-8.2.9.tar.xz.asc
/php-8.2.10.tar.xz
/php-8.2.10.tar.xz.asc
/php-8.2.11RC1.tar.xz
/php-8.2.11RC1.tar.xz.asc
/php-8.2.11.tar.xz
/php-8.2.11.tar.xz.asc

View File

@ -1,7 +1,7 @@
diff -up ./scripts/phpize.in.headers ./scripts/phpize.in diff -up ./scripts/phpize.in.headers ./scripts/phpize.in
--- ./scripts/phpize.in.headers 2019-07-23 10:05:11.000000000 +0200 --- ./scripts/phpize.in.headers 2019-07-23 10:05:11.000000000 +0200
+++ ./scripts/phpize.in 2019-07-23 10:18:13.648098089 +0200 +++ ./scripts/phpize.in 2019-07-23 10:18:13.648098089 +0200
@@ -165,6 +165,15 @@ phpize_autotools() @@ -166,6 +166,15 @@ phpize_autotools()
$PHP_AUTOHEADER || exit 1 $PHP_AUTOHEADER || exit 1
} }
@ -17,7 +17,7 @@ diff -up ./scripts/phpize.in.headers ./scripts/phpize.in
# Main script # Main script
case "$1" in case "$1" in
@@ -183,12 +192,15 @@ case "$1" in @@ -184,12 +193,15 @@ case "$1" in
# Version # Version
--version|-v) --version|-v)
@ -33,3 +33,33 @@ diff -up ./scripts/phpize.in.headers ./scripts/phpize.in
phpize_check_configm4 0 phpize_check_configm4 0
phpize_check_build_files phpize_check_build_files
From c454f120857df6f771c5475bf1fcc99e683b87dc Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Thu, 7 Sep 2023 09:56:51 +0200
Subject: [PATCH] also display PHP version in phpize
---
scripts/phpize.in | 3 +++
1 file changed, 3 insertions(+)
diff --git a/scripts/phpize.in b/scripts/phpize.in
index 7d9c1df14c8e..81605e06a590 100644
--- a/scripts/phpize.in
+++ b/scripts/phpize.in
@@ -59,6 +59,8 @@ phpize_check_configm4()
phpize_get_api_numbers()
{
# extracting API NOs:
+ PHP_MINOR_VERSION=`grep '#define PHP_MINOR_VERSION' $includedir/main/php_version.h|$SED 's/#define PHP_MINOR_VERSION //'`
+ PHP_MAJOR_VERSION=`grep '#define PHP_MAJOR_VERSION' $includedir/main/php_version.h|$SED 's/#define PHP_MAJOR_VERSION//'`
PHP_API_VERSION=`grep '#define PHP_API_VERSION' $includedir/main/php.h|$SED 's/#define PHP_API_VERSION//'`
ZEND_MODULE_API_NO=`grep '#define ZEND_MODULE_API_NO' $includedir/Zend/zend_modules.h|$SED 's/#define ZEND_MODULE_API_NO//'`
ZEND_EXTENSION_API_NO=`grep '#define ZEND_EXTENSION_API_NO' $includedir/Zend/zend_extensions.h|$SED 's/#define ZEND_EXTENSION_API_NO//'`
@@ -68,6 +70,7 @@ phpize_print_api_numbers()
{
phpize_get_api_numbers
echo "Configuring for:"
+ echo "PHP Version: ${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION}"
echo "PHP Api Version: "$PHP_API_VERSION
echo "Zend Module Api No: "$ZEND_MODULE_API_NO
echo "Zend Extension Api No: "$ZEND_EXTENSION_API_NO

View File

@ -0,0 +1,47 @@
From 21f9d16e130b412b6839494dcf30a2f1d7dcee0f Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Mon, 24 Jul 2023 10:54:49 +0200
Subject: [PATCH] Always warn about missing curve_name
Both Fedora and RHEL do not support arbitrary EC parameters
See https://bugzilla.redhat.com/2223953
---
ext/openssl/openssl.c | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index 33f51bfa4d..340b0467d3 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -4299,13 +4299,8 @@ static bool php_openssl_pkey_init_legacy_ec(EC_KEY *eckey, zval *data, bool *is_
OPENSSL_PKEY_SET_BN(data, b);
OPENSSL_PKEY_SET_BN(data, order);
+ php_error_docref(NULL, E_WARNING, "Missing params: curve_name (params only is not supported by OpenSSL)");
if (!(p && a && b && order)) {
- if (!p && !a && !b && !order) {
- php_error_docref(NULL, E_WARNING, "Missing params: curve_name");
- } else {
- php_error_docref(
- NULL, E_WARNING, "Missing params: curve_name or p, a, b, order");
- }
goto clean_exit;
}
@@ -4455,12 +4450,8 @@ static EVP_PKEY *php_openssl_pkey_init_ec(zval *data, bool *is_private) {
OPENSSL_PKEY_SET_BN(data, b);
OPENSSL_PKEY_SET_BN(data, order);
+ php_error_docref(NULL, E_WARNING, "Missing params: curve_name");
if (!(p && a && b && order)) {
- if (!p && !a && !b && !order) {
- php_error_docref(NULL, E_WARNING, "Missing params: curve_name");
- } else {
- php_error_docref(NULL, E_WARNING, "Missing params: curve_name or p, a, b, order");
- }
goto cleanup;
}
--
2.41.0

View File

@ -6,11 +6,11 @@ diff -up ./build/gen_stub.php.syslib ./build/gen_stub.php
$isInitialized = true; $isInitialized = true;
+ +
+ if (file_exists('/usr/share/php/PhpParser4/autoload.php')) { + if (file_exists('/usr/share/php/PhpParser5/autoload.php')) {
+ require_once '/usr/share/php/PhpParser4/autoload.php'; + require_once '/usr/share/php/PhpParser5/autoload.php';
+ return; + return;
+ } + }
+ +
$version = "4.15.1"; $version = "5.0.0alpha3";
$phpParserDir = __DIR__ . "/PHP-Parser-$version"; $phpParserDir = __DIR__ . "/PHP-Parser-$version";
if (!is_dir($phpParserDir)) { if (!is_dir($phpParserDir)) {

View File

@ -5,6 +5,7 @@ Add support for use of the system timezone database, rather
than embedding a copy. Discussed upstream but was not desired. than embedding a copy. Discussed upstream but was not desired.
History: History:
f24: add internal UTC if tzdata is missing
r23: fix possible buffer overflow r23: fix possible buffer overflow
r22: retrieve tzdata version from /usr/share/zoneinfo/tzdata.zi r22: retrieve tzdata version from /usr/share/zoneinfo/tzdata.zi
r21: adapt for timelib 2021.03 (in 8.1.0) r21: adapt for timelib 2021.03 (in 8.1.0)
@ -34,8 +35,9 @@ r3: fix a crash if /usr/share/zoneinfo doesn't exist (Raphael Geissert)
r2: add filesystem trawl to set up name alias index r2: add filesystem trawl to set up name alias index
r1: initial revision r1: initial revision
diff --git a/ext/date/config0.m4 b/ext/date/config0.m4 diff --git a/ext/date/config0.m4 b/ext/date/config0.m4
index 18b8106bd2..3d1f63c758 100644 index 6b803bf33e..53c3cdb3f4 100644
--- a/ext/date/config0.m4 --- a/ext/date/config0.m4
+++ b/ext/date/config0.m4 +++ b/ext/date/config0.m4
@@ -4,6 +4,19 @@ AC_CHECK_HEADERS([io.h]) @@ -4,6 +4,19 @@ AC_CHECK_HEADERS([io.h])
@ -59,10 +61,10 @@ index 18b8106bd2..3d1f63c758 100644
timelib_sources="lib/astro.c lib/dow.c lib/parse_date.c lib/parse_tz.c lib/parse_posix.c 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" lib/timelib.c lib/tm2unixtime.c lib/unixtime2tm.c lib/parse_iso_intervals.c lib/interval.c"
diff --git a/ext/date/lib/parse_tz.c b/ext/date/lib/parse_tz.c diff --git a/ext/date/lib/parse_tz.c b/ext/date/lib/parse_tz.c
index e41315efdb..4b6547c0a3 100644 index c7f93580d7..ec196a98b6 100644
--- a/ext/date/lib/parse_tz.c --- a/ext/date/lib/parse_tz.c
+++ b/ext/date/lib/parse_tz.c +++ b/ext/date/lib/parse_tz.c
@@ -26,9 +26,22 @@ @@ -26,9 +26,33 @@
#include "timelib.h" #include "timelib.h"
#include "timelib_private.h" #include "timelib_private.h"
@ -75,6 +77,17 @@ index e41315efdb..4b6547c0a3 100644
+ +
+#include "php_scandir.h" +#include "php_scandir.h"
+ +
+static const unsigned char internal_utc[] = {
+ 0x54, 0x5a, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x55, 0x54, 0x43, 0x00, 0x54, 0x5a, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x54, 0x43, 0x00, 0x0a, 0x55, 0x54, 0x43,
+ 0x30, 0x0a
+};
+
+#else +#else
#define TIMELIB_SUPPORTS_V2DATA #define TIMELIB_SUPPORTS_V2DATA
#define TIMELIB_SUPPORT_SLIM_FILE #define TIMELIB_SUPPORT_SLIM_FILE
@ -85,7 +98,7 @@ index e41315efdb..4b6547c0a3 100644
#if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__)) #if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__))
# if defined(__LITTLE_ENDIAN__) # if defined(__LITTLE_ENDIAN__)
@@ -95,6 +108,11 @@ static int read_php_preamble(const unsigned char **tzf, timelib_tzinfo *tz) @@ -95,6 +119,11 @@ static int read_php_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
{ {
uint32_t version; uint32_t version;
@ -97,7 +110,7 @@ index e41315efdb..4b6547c0a3 100644
/* read ID */ /* read ID */
version = (*tzf)[3] - '0'; version = (*tzf)[3] - '0';
*tzf += 4; *tzf += 4;
@@ -577,7 +595,467 @@ void timelib_dump_tzinfo(timelib_tzinfo *tz) @@ -577,7 +606,475 @@ void timelib_dump_tzinfo(timelib_tzinfo *tz)
} }
} }
@ -441,6 +454,9 @@ index e41315efdb..4b6547c0a3 100644
+ +
+ qsort(db_index, index_next, sizeof *db_index, sysdbcmp); + qsort(db_index, index_next, sizeof *db_index, sysdbcmp);
+ +
+ if (!index_next) {
+ db_index[index_next++].id = strdup("UTC");
+ }
+ db->index = db_index; + db->index = db_index;
+ db->index_size = index_next; + db->index_size = index_next;
+ +
@ -547,7 +563,12 @@ index e41315efdb..4b6547c0a3 100644
+ +
+ fd = open(fname, O_RDONLY); + fd = open(fname, O_RDONLY);
+ if (fd == -1) { + if (fd == -1) {
+ if (strcmp(timezone, "UTC")) {
+ return NULL; + return NULL;
+ } else {
+ *length = sizeof(internal_utc);
+ return internal_utc;
+ }
+ } else if (fstat(fd, &st) != 0 || !is_valid_tzfile(&st, fd)) { + } else if (fstat(fd, &st) != 0 || !is_valid_tzfile(&st, fd)) {
+ close(fd); + close(fd);
+ return NULL; + return NULL;
@ -566,7 +587,7 @@ index e41315efdb..4b6547c0a3 100644
{ {
int left = 0, right = tzdb->index_size - 1; int left = 0, right = tzdb->index_size - 1;
@@ -603,9 +1081,49 @@ static int seek_to_tz_position(const unsigned char **tzf, const char *timezone, @@ -603,9 +1100,49 @@ static int seek_to_tz_position(const unsigned char **tzf, const char *timezone,
return 0; return 0;
} }
@ -600,7 +621,7 @@ index e41315efdb..4b6547c0a3 100644
+ if (timezonedb_system == NULL) { + if (timezonedb_system == NULL) {
+ timelib_tzdb *tmp = malloc(sizeof *tmp); + timelib_tzdb *tmp = malloc(sizeof *tmp);
+ +
+ tmp->version = "0.system"; + tmp->version = "0";
+ tmp->data = NULL; + tmp->data = NULL;
+ create_zone_index(tmp); + create_zone_index(tmp);
+ retrieve_zone_version(tmp); + retrieve_zone_version(tmp);
@ -616,7 +637,7 @@ index e41315efdb..4b6547c0a3 100644
} }
const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(const timelib_tzdb *tzdb, int *count) const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(const timelib_tzdb *tzdb, int *count)
@@ -617,7 +1135,30 @@ const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(const timelib_ @@ -617,7 +1154,32 @@ const timelib_tzdb_index_entry *timelib_timezone_identifiers_list(const timelib_
int timelib_timezone_id_is_valid(const char *timezone, const timelib_tzdb *tzdb) int timelib_timezone_id_is_valid(const char *timezone, const timelib_tzdb *tzdb)
{ {
const unsigned char *tzf; const unsigned char *tzf;
@ -630,7 +651,9 @@ index e41315efdb..4b6547c0a3 100644
+ if (timezone[0] == '\0' || strstr(timezone, "..") != NULL) { + if (timezone[0] == '\0' || strstr(timezone, "..") != NULL) {
+ return 0; + return 0;
+ } + }
+ + if (!strcmp(timezone, "UTC")) {
+ return 1;
+ }
+ if (system_location_table) { + if (system_location_table) {
+ if (find_zone_info(system_location_table, timezone) != NULL) { + if (find_zone_info(system_location_table, timezone) != NULL) {
+ /* found in cache */ + /* found in cache */
@ -648,7 +671,7 @@ index e41315efdb..4b6547c0a3 100644
} }
static int skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz) static int skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
@@ -662,6 +1203,8 @@ static timelib_tzinfo* timelib_tzinfo_ctor(const char *name) @@ -662,6 +1224,8 @@ static timelib_tzinfo* timelib_tzinfo_ctor(const char *name)
timelib_tzinfo *timelib_parse_tzfile(const char *timezone, const timelib_tzdb *tzdb, int *error_code) timelib_tzinfo *timelib_parse_tzfile(const char *timezone, const timelib_tzdb *tzdb, int *error_code)
{ {
const unsigned char *tzf; const unsigned char *tzf;
@ -657,7 +680,7 @@ index e41315efdb..4b6547c0a3 100644
timelib_tzinfo *tmp; timelib_tzinfo *tmp;
int version; int version;
int transitions_result, types_result; int transitions_result, types_result;
@@ -669,7 +1212,7 @@ timelib_tzinfo *timelib_parse_tzfile(const char *timezone, const timelib_tzdb *t @@ -669,7 +1233,7 @@ timelib_tzinfo *timelib_parse_tzfile(const char *timezone, const timelib_tzdb *t
*error_code = TIMELIB_ERROR_NO_ERROR; *error_code = TIMELIB_ERROR_NO_ERROR;
@ -666,7 +689,7 @@ index e41315efdb..4b6547c0a3 100644
tmp = timelib_tzinfo_ctor(timezone); tmp = timelib_tzinfo_ctor(timezone);
version = read_preamble(&tzf, tmp, &type); version = read_preamble(&tzf, tmp, &type);
@@ -712,11 +1255,36 @@ timelib_tzinfo *timelib_parse_tzfile(const char *timezone, const timelib_tzdb *t @@ -712,11 +1276,38 @@ timelib_tzinfo *timelib_parse_tzfile(const char *timezone, const timelib_tzdb *t
return NULL; return NULL;
} }
@ -689,7 +712,9 @@ index e41315efdb..4b6547c0a3 100644
+ } + }
+ +
+ /* Now done with the mmap segment - discard it. */ + /* Now done with the mmap segment - discard it. */
+ if (memmap != internal_utc) {
+ munmap(memmap, maplen); + munmap(memmap, maplen);
+ }
+ } else { + } else {
+#endif +#endif
if (type == TIMELIB_TZINFO_PHP) { if (type == TIMELIB_TZINFO_PHP) {
@ -704,10 +729,10 @@ index e41315efdb..4b6547c0a3 100644
*error_code = TIMELIB_ERROR_NO_SUCH_TIMEZONE; *error_code = TIMELIB_ERROR_NO_SUCH_TIMEZONE;
tmp = NULL; tmp = NULL;
diff --git a/ext/date/php_date.c b/ext/date/php_date.c diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index cf4a11b8a2..cd49abc78d 100644 index 48c82bf7ec..443299c089 100644
--- a/ext/date/php_date.c --- a/ext/date/php_date.c
+++ b/ext/date/php_date.c +++ b/ext/date/php_date.c
@@ -457,7 +457,11 @@ PHP_MINFO_FUNCTION(date) @@ -490,7 +490,11 @@ PHP_MINFO_FUNCTION(date)
php_info_print_table_row(2, "date/time support", "enabled"); php_info_print_table_row(2, "date/time support", "enabled");
php_info_print_table_row(2, "timelib version", TIMELIB_ASCII_VERSION); php_info_print_table_row(2, "timelib version", TIMELIB_ASCII_VERSION);
php_info_print_table_row(2, "\"Olson\" Timezone Database Version", tzdb->version); php_info_print_table_row(2, "\"Olson\" Timezone Database Version", tzdb->version);

10
php.ini
View File

@ -144,6 +144,11 @@
; Development Value: 5 ; Development Value: 5
; Production Value: 5 ; Production Value: 5
; session.sid_length
; Default Value: 32
; Development Value: 26
; Production Value: 26
; short_open_tag ; short_open_tag
; Default Value: On ; Default Value: On
; Development Value: Off ; Development Value: Off
@ -154,6 +159,11 @@
; Development Value: "GPCS" ; Development Value: "GPCS"
; Production Value: "GPCS" ; Production Value: "GPCS"
; zend.assertions
; Default Value: 1
; Development Value: 1
; Production Value: -1
; zend.exception_ignore_args ; zend.exception_ignore_args
; Default Value: Off ; Default Value: Off
; Development Value: Off ; Development Value: Off

View File

@ -7,8 +7,8 @@
# #
# API/ABI check # API/ABI check
%global apiver 20220829 %global apiver 20230831
%global zendver 20220829 %global zendver 20230831
%global pdover 20170320 %global pdover 20170320
# we don't want -z defs linker flag # we don't want -z defs linker flag
@ -18,7 +18,7 @@
%global _hardened_build 1 %global _hardened_build 1
# version used for php embedded library soname # version used for php embedded library soname
%global embed_version 8.2 %global embed_version 8.3
%global mysql_sock %(mysql_config --socket 2>/dev/null || echo /var/lib/mysql/mysql.sock) %global mysql_sock %(mysql_config --socket 2>/dev/null || echo /var/lib/mysql/mysql.sock)
@ -64,8 +64,8 @@
%bcond_with imap %bcond_with imap
%bcond_without lmdb %bcond_without lmdb
%global upver 8.2.11 %global upver 8.3.0
#global rcver RC1 %global rcver RC3
Summary: PHP scripting language for creating dynamic web sites Summary: PHP scripting language for creating dynamic web sites
Name: php Name: php
@ -109,16 +109,20 @@ Patch8: php-8.1.0-libdb.patch
# Functional changes # Functional changes
# Use system nikic/php-parser # Use system nikic/php-parser
Patch41: php-8.2.0-parser.patch Patch41: php-8.3.0-parser.patch
# use system tzdata # use system tzdata
Patch42: php-8.1.0-systzdata-v23.patch Patch42: php-8.3.0-systzdata-v24.patch
# See http://bugs.php.net/53436 # See http://bugs.php.net/53436
# + display PHP version backported from 8.4
Patch43: php-7.4.0-phpize.patch Patch43: php-7.4.0-phpize.patch
# Use -lldap_r for OpenLDAP # Use -lldap_r for OpenLDAP
Patch45: php-7.4.0-ldap_r.patch Patch45: php-7.4.0-ldap_r.patch
# drop "Configure command" from phpinfo output # drop "Configure command" from phpinfo output
# and only use gcc (instead of full version) # and only use gcc (instead of full version)
Patch47: php-8.1.0-phpinfo.patch Patch47: php-8.1.0-phpinfo.patch
# Always warn about missing curve_name
# Both Fedora and RHEL do not support arbitrary EC parameters
Patch48: php-8.3.0-openssl-ec-param.patch
# Upstream fixes (100+) # Upstream fixes (100+)
@ -260,7 +264,7 @@ Summary: Common files for PHP
# fileinfo is licensed under PHP version 3.0 # fileinfo is licensed under PHP version 3.0
# regex, libmagic are licensed under BSD # regex, libmagic are licensed under BSD
License: PHP-3.01 AND BSD-2-Clause License: PHP-3.01 AND BSD-2-Clause
Requires: tzdata Recommends: tzdata
# ABI/API check - Arch specific # ABI/API check - Arch specific
Provides: php(api) = %{apiver}-%{__isa_bits} Provides: php(api) = %{apiver}-%{__isa_bits}
Provides: php(zend-abi) = %{zendver}-%{__isa_bits} Provides: php(zend-abi) = %{zendver}-%{__isa_bits}
@ -275,7 +279,7 @@ Provides: php-date, php-date%{?_isa}
Provides: bundled(timelib) Provides: bundled(timelib)
Provides: php-exif, php-exif%{?_isa} Provides: php-exif, php-exif%{?_isa}
Provides: php-fileinfo, php-fileinfo%{?_isa} Provides: php-fileinfo, php-fileinfo%{?_isa}
Provides: bundled(libmagic) = 5.29 Provides: bundled(libmagic) = 5.43
Provides: php-filter, php-filter%{?_isa} Provides: php-filter, php-filter%{?_isa}
Provides: php-ftp, php-ftp%{?_isa} Provides: php-ftp, php-ftp%{?_isa}
Provides: php-gettext, php-gettext%{?_isa} Provides: php-gettext, php-gettext%{?_isa}
@ -321,7 +325,7 @@ Requires: zlib-devel%{?_isa}
Provides: php-zts-devel = %{version}-%{release} Provides: php-zts-devel = %{version}-%{release}
Provides: php-zts-devel%{?_isa} = %{version}-%{release} Provides: php-zts-devel%{?_isa} = %{version}-%{release}
%endif %endif
Recommends: php-nikic-php-parser4 >= 4.15.1 Recommends: php-nikic-php-parser5 >= 5.0.0~alpha3
%description devel %description devel
@ -332,6 +336,7 @@ need to install this package.
%package opcache %package opcache
Summary: The Zend OPcache Summary: The Zend OPcache
License: PHP-3.01 License: PHP-3.01
BuildRequires: pkgconfig(capstone) >= 3.0
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
Provides: php-pecl-zendopcache = %{version} Provides: php-pecl-zendopcache = %{version}
Provides: php-pecl-zendopcache%{?_isa} = %{version} Provides: php-pecl-zendopcache%{?_isa} = %{version}
@ -719,6 +724,7 @@ in pure PHP.
%patch -P43 -p1 -b .headers %patch -P43 -p1 -b .headers
%patch -P45 -p1 -b .ldap_r %patch -P45 -p1 -b .ldap_r
%patch -P47 -p1 -b .phpinfo %patch -P47 -p1 -b .phpinfo
%patch -P48 -p1 -b .ec-param
# upstream patches # upstream patches
@ -734,7 +740,7 @@ cp TSRM/LICENSE TSRM_LICENSE
cp Zend/asm/LICENSE BOOST_LICENSE cp Zend/asm/LICENSE BOOST_LICENSE
cp sapi/fpm/LICENSE fpm_LICENSE cp sapi/fpm/LICENSE fpm_LICENSE
cp ext/mbstring/libmbfl/LICENSE libmbfl_LICENSE cp ext/mbstring/libmbfl/LICENSE libmbfl_LICENSE
cp ext/fileinfo/libmagic/LICENSE libmagic_LICENSE # cp ext/fileinfo/libmagic/LICENSE libmagic_LICENSE
cp ext/bcmath/libbcmath/LICENSE libbcmath_LICENSE cp ext/bcmath/libbcmath/LICENSE libbcmath_LICENSE
cp ext/date/lib/LICENSE.rst timelib_LICENSE cp ext/date/lib/LICENSE.rst timelib_LICENSE
@ -760,6 +766,9 @@ rm Zend/tests/bug54268.phpt
rm Zend/tests/bug68412.phpt rm Zend/tests/bug68412.phpt
# tar issue # tar issue
rm ext/zlib/tests/004-mb.phpt rm ext/zlib/tests/004-mb.phpt
# Both Fedora and RHEL do not support arbitrary EC parameters
# https://bugzilla.redhat.com/2223953
rm ext/openssl/tests/ecc_custom_params.phpt
# Safety check for API version change. # Safety check for API version change.
pver=$(sed -n '/#define PHP_VERSION /{s/.* "//;s/".*$//;p}' main/php_version.h) pver=$(sed -n '/#define PHP_VERSION /{s/.* "//;s/".*$//;p}' main/php_version.h)
@ -905,6 +914,7 @@ pushd build-cgi
build --libdir=%{_libdir}/php \ build --libdir=%{_libdir}/php \
--enable-pcntl \ --enable-pcntl \
--enable-opcache \ --enable-opcache \
--with-capstone \
--enable-phpdbg \ --enable-phpdbg \
%if %{with imap} %if %{with imap}
--with-imap=shared --with-imap-ssl \ --with-imap=shared --with-imap-ssl \
@ -1043,6 +1053,7 @@ build --includedir=%{_includedir}/php-zts \
--with-config-file-scan-dir=%{_sysconfdir}/php-zts.d \ --with-config-file-scan-dir=%{_sysconfdir}/php-zts.d \
--enable-pcntl \ --enable-pcntl \
--enable-opcache \ --enable-opcache \
--with-capstone \
%if %{with imap} %if %{with imap}
--with-imap=shared --with-imap-ssl \ --with-imap=shared --with-imap-ssl \
%endif %endif
@ -1142,7 +1153,7 @@ export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2
export SKIP_ONLINE_TESTS=1 export SKIP_ONLINE_TESTS=1
export SKIP_IO_CAPTURE_TESTS=1 export SKIP_IO_CAPTURE_TESTS=1
unset TZ LANG LC_ALL unset TZ LANG LC_ALL
if ! make test TESTS=-j4; then if ! make test TESTS=%{?_smp_mflags}; then
set +x set +x
for f in $(find .. -name \*.diff -type f -print); do for f in $(find .. -name \*.diff -type f -print); do
if ! grep -q XFAIL "${f/.diff/.phpt}" if ! grep -q XFAIL "${f/.diff/.phpt}"
@ -1406,7 +1417,7 @@ systemctl try-restart php-fpm.service >/dev/null 2>&1 || :
%files common -f files.common %files common -f files.common
%doc EXTENSIONS NEWS UPGRADING* README.REDIST.BINS *md docs %doc EXTENSIONS NEWS UPGRADING* README.REDIST.BINS *md docs
%license LICENSE TSRM_LICENSE ZEND_LICENSE BOOST_LICENSE %license LICENSE TSRM_LICENSE ZEND_LICENSE BOOST_LICENSE
%license libmagic_LICENSE #license libmagic_LICENSE
%license timelib_LICENSE %license timelib_LICENSE
%doc php.ini-* %doc php.ini-*
%config(noreplace) %{_sysconfdir}/php.ini %config(noreplace) %{_sysconfdir}/php.ini
@ -1541,6 +1552,13 @@ systemctl try-restart php-fpm.service >/dev/null 2>&1 || :
%changelog %changelog
* Tue Sep 26 2023 Remi Collet <remi@remirepo.net> - 8.3.0~rc3-1
- update to 8.3.0RC3 https://fedoraproject.org/wiki/Changes/php83
- add internal UTC if tzdata is missing
- bump to final API/ABI
- switch to nikic/php-parser version 5
- openssl: always warn about missing curve_name
* Tue Sep 26 2023 Remi Collet <remi@remirepo.net> - 8.2.11-1 * Tue Sep 26 2023 Remi Collet <remi@remirepo.net> - 8.2.11-1
- Update to 8.2.11 - http://www.php.net/releases/8_2_11.php - Update to 8.2.11 - http://www.php.net/releases/8_2_11.php

View File

@ -1,2 +1,2 @@
SHA512 (php-8.2.11.tar.xz) = 3c8db245854c0221a952e0f11fc8fbf8944caf73ae0049a710db0db5ce9c018207444dc8a60e2b3c63a6d025c5d09cd17b0542e1b7df8ad2e49635ef5faf7f45 SHA512 (php-8.3.0RC3.tar.xz) = e889fc4fd8b1b76c5e81ce198bc851880d06530f2cf6c8493876f98b596383321967c81c6034c6920815aa9be98917fa1aef81c6e120fae78875a85c7c793608
SHA512 (php-8.2.11.tar.xz.asc) = d4d1b633d9cac1eec6fe0057a12a1337d1db9fbf752cc54187af6272faba707f5f32bb8cf83f00c52af4812d7f5905d0ffa6d970bc2c26845fab0cb0d7a4c18f SHA512 (php-8.3.0RC3.tar.xz.asc) = 725c75bf67645b2f04d8e2e056b949c288d0adfb89c355d5e988b214ee9e7fc613dfad1849fee4b1bad4c54afb0834df5479fb71505de4b974f4131843eaf93a