Sync from SUSE:SLFO:Main php8 revision d67e00d1bbf785134c99c81ba9c6d040

This commit is contained in:
Adrian Schröter 2024-06-21 10:21:00 +02:00
parent 76b9511613
commit 34e21658a0
11 changed files with 527 additions and 300 deletions

BIN
php-8.2.19.tar.xz (Stored with Git LFS)

Binary file not shown.

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE5gkT5N8gmQfY4w2WZZqXyc8qeVoFAmY6Oh0ACgkQZZqXyc8q
eVqhwQ/+PKg1U0UyhG6sVJkm3xWxYaw4WPayeIHm65eLN0TnESM38QawmAx8CxZS
Seo0Kn64USfoKrOiCAj7KNC1BBqiYHSxfF9xemE/FPwTW52ywfZHnOY8hK4EitJD
3NhNHOovcEgsGMPYcymRULne/5Rihi1XKUmWg9RBWMcfo9q8ICJG7wS4MGPW/OQH
RNdreoiOZLHM4FLIbSzIlexVXx9Mn0fIuovLxQMx1yWKOfKzFwt2RF4nP9D/IQdz
Te5ktwnEq0nbK/jwZnBUq2ievMOSrQmfcxMxdbnqYE0VPL5riXb6A1rxCkiX05Z2
WeFTwYeFBb3sEDcM7hZDoIznQTWsLoLDBZSbPuJ2sfPkzhm1w9DCIWdoF5HbSREG
CWJvQEpDmsjzAJPMlw9QVvXe73difhfBWbpbBDz0O/g0NtPxj3vbInVC/jfBPSwb
RsenmEACqf+PXRAC9shp4yL0ac3CMgKF8uKO39nfcw9xNkVPLWNI6pDH3tGPhr1O
XfqDorvfW9cKwMAWR59fw5sZr8PGB95RV365PgzJ35+XohoSA/Ys+f4YXwi2IPbW
GQCPDnhVkYtyhuXTHDj++goWeAfdE8ZUdzdYSQro5bLHE+TGb5RDJ8ADP1Bi75uf
fMWKJFnzVSixVYQmPBOLZt+J+NT34n0yb0oYrQXkJee1PDCTS3s=
=WBn3
-----END PGP SIGNATURE-----

BIN
php-8.3.8.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

16
php-8.3.8.tar.xz.asc Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEESx/A2d+SMhztn2FdvsVV4ioUNVMFAmZfK+4ACgkQvsVV4ioU
NVNKGRAAp1I9pjv04n7OkvUyeIxCJ0Ou1GcoDTqoy30LpVrWswU1VkKBwb1Sr2Dj
5efWKylCZZ9+9IzJJVGxG6hAPlFer9JMSuO+FZXjLnvAAgDJy64L2eOadjsg0u9+
xKv2molW0arG25P3P8xRpXKisRy0JJpxNhTSUiXUUL/Gy0zW9Uc/6wrKPF5c3LQF
i7UzpMuqaxOuXznwQaWhkcIk7GNDhZJAW5SsX6FFkxctbDXAICCfiFN1WPgfiG15
ZYLexBZKGzufnH0T6b7o/pylFWhlVSt59B55witdimZciE8QCNKnmqCGafhYda/J
UZAOb9X2MJjvBMRQLI6jpCoV8XAY5Jo7F5QkaZmnECydGj9XDADWYlVG4XLP0p34
htcDB6odzURZDLxKYD97KRRL+bycj161Bh3WW7tRD9OIoNvtkgHg2ko531APUccl
x1FFFkB9Trm9b/+y95EuCMN80BQXjd4Q6pQHaTo33UAlY182VfhewfWRB9OsLezn
LXGZ9m4jC18AKnyrpLMPJuDUZjrorXOBjqQp0be8TlNhuXNbVgV+/WG/8+KChr7Y
GBupFNkBpYHQsmQTZNuSJMqVzcxPFc1k4pp2SGvscVMPoqdgw9dRFsK6s40KbQ7g
dXT8aLjWoYFAmE3bD7PJtWsnB3b/ghat6CuNGjLK9mp4V82Mv7Y=
=aLaa
-----END PGP SIGNATURE-----

View File

@ -1,8 +1,8 @@
Index: php-8.2.15/configure.ac Index: php-8.3.8/configure.ac
=================================================================== ===================================================================
--- php-8.2.15.orig/configure.ac --- php-8.3.8.orig/configure.ac
+++ php-8.2.15/configure.ac +++ php-8.3.8/configure.ac
@@ -1618,7 +1618,7 @@ PHP_CONFIGURE_PART(Configuring libtool) @@ -1660,7 +1660,7 @@ PHP_CONFIGURE_PART(Configuring libtool)
dnl Silence warning: `ar: 'u' modifier ignored since 'D' is the default` dnl Silence warning: `ar: 'u' modifier ignored since 'D' is the default`
dnl See https://github.com/php/php-src/pull/3017 dnl See https://github.com/php/php-src/pull/3017

View File

@ -16,11 +16,11 @@ Signed-off-by: Arjen de Korte <build+github@de-korte.org>
ext/phar/zip.c | 2 +- ext/phar/zip.c | 2 +-
6 files changed, 18 insertions(+), 5 deletions(-) 6 files changed, 18 insertions(+), 5 deletions(-)
Index: php-8.2.16/ext/phar/phar.c Index: php-8.3.8/ext/phar/phar.c
=================================================================== ===================================================================
--- php-8.2.16.orig/ext/phar/phar.c --- php-8.3.8.orig/ext/phar/phar.c
+++ php-8.2.16/ext/phar/phar.c +++ php-8.3.8/ext/phar/phar.c
@@ -2999,7 +2999,7 @@ int phar_flush(phar_archive_data *phar, @@ -2996,7 +2996,7 @@ int phar_flush(phar_archive_data *phar,
4: metadata-len 4: metadata-len
+: metadata +: metadata
*/ */
@ -29,10 +29,10 @@ Index: php-8.2.16/ext/phar/phar.c
phar_set_32(entry_buffer, entry->uncompressed_filesize); phar_set_32(entry_buffer, entry->uncompressed_filesize);
phar_set_32(entry_buffer+4, mytime); phar_set_32(entry_buffer+4, mytime);
phar_set_32(entry_buffer+8, entry->compressed_filesize); phar_set_32(entry_buffer+8, entry->compressed_filesize);
Index: php-8.2.16/ext/phar/phar_internal.h Index: php-8.3.8/ext/phar/phar_internal.h
=================================================================== ===================================================================
--- php-8.2.16.orig/ext/phar/phar_internal.h --- php-8.3.8.orig/ext/phar/phar_internal.h
+++ php-8.2.16/ext/phar/phar_internal.h +++ php-8.3.8/ext/phar/phar_internal.h
@@ -427,6 +427,21 @@ static inline enum phar_fp_type phar_get @@ -427,6 +427,21 @@ static inline enum phar_fp_type phar_get
return PHAR_G(cached_fp)[entry->phar->phar_pos].manifest[entry->manifest_pos].fp_type; return PHAR_G(cached_fp)[entry->phar->phar_pos].manifest[entry->manifest_pos].fp_type;
} }
@ -55,10 +55,10 @@ Index: php-8.2.16/ext/phar/phar_internal.h
static inline zend_off_t phar_get_fp_offset(phar_entry_info *entry) static inline zend_off_t phar_get_fp_offset(phar_entry_info *entry)
{ {
if (!entry->is_persistent) { if (!entry->is_persistent) {
Index: php-8.2.16/ext/phar/stream.c Index: php-8.3.8/ext/phar/stream.c
=================================================================== ===================================================================
--- php-8.2.16.orig/ext/phar/stream.c --- php-8.3.8.orig/ext/phar/stream.c
+++ php-8.2.16/ext/phar/stream.c +++ php-8.3.8/ext/phar/stream.c
@@ -474,7 +474,7 @@ static int phar_stream_flush(php_stream @@ -474,7 +474,7 @@ static int phar_stream_flush(php_stream
phar_entry_data *data = (phar_entry_data *) stream->abstract; phar_entry_data *data = (phar_entry_data *) stream->abstract;
@ -68,11 +68,11 @@ Index: php-8.2.16/ext/phar/stream.c
ret = phar_flush(data->phar, 0, 0, 0, &error); ret = phar_flush(data->phar, 0, 0, 0, &error);
if (error) { if (error) {
php_stream_wrapper_log_error(stream->wrapper, REPORT_ERRORS, "%s", error); php_stream_wrapper_log_error(stream->wrapper, REPORT_ERRORS, "%s", error);
Index: php-8.2.16/ext/phar/tar.c Index: php-8.3.8/ext/phar/tar.c
=================================================================== ===================================================================
--- php-8.2.16.orig/ext/phar/tar.c --- php-8.3.8.orig/ext/phar/tar.c
+++ php-8.2.16/ext/phar/tar.c +++ php-8.3.8/ext/phar/tar.c
@@ -972,7 +972,7 @@ int phar_tar_flush(phar_archive_data *ph @@ -965,7 +965,7 @@ int phar_tar_flush(phar_archive_data *ph
char halt_stub[] = "__HALT_COMPILER();"; char halt_stub[] = "__HALT_COMPILER();";
entry.flags = PHAR_ENT_PERM_DEF_FILE; entry.flags = PHAR_ENT_PERM_DEF_FILE;
@ -81,11 +81,11 @@ Index: php-8.2.16/ext/phar/tar.c
entry.is_modified = 1; entry.is_modified = 1;
entry.is_crc_checked = 1; entry.is_crc_checked = 1;
entry.is_tar = 1; entry.is_tar = 1;
Index: php-8.2.16/ext/phar/util.c Index: php-8.3.8/ext/phar/util.c
=================================================================== ===================================================================
--- php-8.2.16.orig/ext/phar/util.c --- php-8.3.8.orig/ext/phar/util.c
+++ php-8.2.16/ext/phar/util.c +++ php-8.3.8/ext/phar/util.c
@@ -574,7 +574,7 @@ phar_entry_data *phar_get_or_create_entr @@ -584,7 +584,7 @@ phar_entry_data *phar_get_or_create_entr
phar_add_virtual_dirs(phar, path, path_len); phar_add_virtual_dirs(phar, path, path_len);
etemp.is_modified = 1; etemp.is_modified = 1;
@ -94,11 +94,11 @@ Index: php-8.2.16/ext/phar/util.c
etemp.is_crc_checked = 1; etemp.is_crc_checked = 1;
etemp.phar = phar; etemp.phar = phar;
etemp.filename = estrndup(path, path_len); etemp.filename = estrndup(path, path_len);
Index: php-8.2.16/ext/phar/zip.c Index: php-8.3.8/ext/phar/zip.c
=================================================================== ===================================================================
--- php-8.2.16.orig/ext/phar/zip.c --- php-8.3.8.orig/ext/phar/zip.c
+++ php-8.2.16/ext/phar/zip.c +++ php-8.3.8/ext/phar/zip.c
@@ -1237,7 +1237,7 @@ int phar_zip_flush(phar_archive_data *ph @@ -1236,7 +1236,7 @@ int phar_zip_flush(phar_archive_data *ph
pass.error = &temperr; pass.error = &temperr;
entry.flags = PHAR_ENT_PERM_DEF_FILE; entry.flags = PHAR_ENT_PERM_DEF_FILE;

View File

@ -1,8 +1,8 @@
Index: php-8.2.7/php.ini-production Index: php-8.3.0/php.ini-production
=================================================================== ===================================================================
--- php-8.2.7.orig/php.ini-production --- php-8.3.0.orig/php.ini-production
+++ php-8.2.7/php.ini-production +++ php-8.3.0/php.ini-production
@@ -742,7 +742,7 @@ default_charset = "UTF-8" @@ -752,7 +752,7 @@ default_charset = "UTF-8"
;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2" ; UNIX: "/path1:/path2"
@ -11,7 +11,7 @@ Index: php-8.2.7/php.ini-production
; ;
; Windows: "\path1;\path2" ; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes" ;include_path = ".;c:\php\includes"
@@ -976,7 +976,7 @@ cli_server.color = On @@ -986,7 +986,7 @@ cli_server.color = On
[Date] [Date]
; Defines the default timezone used by the date functions ; Defines the default timezone used by the date functions
; https://php.net/date.timezone ; https://php.net/date.timezone
@ -20,7 +20,7 @@ Index: php-8.2.7/php.ini-production
; https://php.net/date.default-latitude ; https://php.net/date.default-latitude
;date.default_latitude = 31.7667 ;date.default_latitude = 31.7667
@@ -1169,7 +1169,7 @@ mysqli.max_persistent = -1 @@ -1179,7 +1179,7 @@ mysqli.max_persistent = -1
; Allow or prevent persistent links. ; Allow or prevent persistent links.
; https://php.net/mysqli.allow-persistent ; https://php.net/mysqli.allow-persistent
@ -29,10 +29,10 @@ Index: php-8.2.7/php.ini-production
; Maximum number of links. -1 means no limit. ; Maximum number of links. -1 means no limit.
; https://php.net/mysqli.max-links ; https://php.net/mysqli.max-links
Index: php-8.2.7/sapi/fpm/www.conf.in Index: php-8.3.0/sapi/fpm/www.conf.in
=================================================================== ===================================================================
--- php-8.2.7.orig/sapi/fpm/www.conf.in --- php-8.3.0.orig/sapi/fpm/www.conf.in
+++ php-8.2.7/sapi/fpm/www.conf.in +++ php-8.3.0/sapi/fpm/www.conf.in
@@ -27,6 +27,8 @@ @@ -27,6 +27,8 @@
; If the group is not set, the user's group is used. ; If the group is not set, the user's group is used.
user = @php_fpm_user@ user = @php_fpm_user@

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,10 +35,11 @@ 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
Index: php-8.2.7/ext/date/config0.m4
=================================================================== diff --git a/ext/date/config0.m4 b/ext/date/config0.m4
--- php-8.2.7.orig/ext/date/config0.m4 index 6b803bf33e..53c3cdb3f4 100644
+++ php-8.2.7/ext/date/config0.m4 --- a/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])
dnl Check for strtoll, atoll dnl Check for strtoll, atoll
AC_CHECK_FUNCS(strtoll atoll) AC_CHECK_FUNCS(strtoll atoll)
@ -58,11 +60,11 @@ Index: php-8.2.7/ext/date/config0.m4
PHP_DATE_CFLAGS="-Wno-implicit-fallthrough -I@ext_builddir@/lib -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -DHAVE_TIMELIB_CONFIG_H=1" 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 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"
Index: php-8.2.7/ext/date/lib/parse_tz.c diff --git a/ext/date/lib/parse_tz.c b/ext/date/lib/parse_tz.c
=================================================================== index c7f93580d7..ec196a98b6 100644
--- php-8.2.7.orig/ext/date/lib/parse_tz.c --- a/ext/date/lib/parse_tz.c
+++ php-8.2.7/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: php-8.2.7/ext/date/lib/parse_tz.c
+ +
+#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: php-8.2.7/ext/date/lib/parse_tz.c
#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 unsig @@ -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: php-8.2.7/ext/date/lib/parse_tz.c
/* 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 @@ -577,7 +606,475 @@ void timelib_dump_tzinfo(timelib_tzinfo *tz)
} }
} }
@ -441,6 +454,9 @@ Index: php-8.2.7/ext/date/lib/parse_tz.c
+ +
+ 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: php-8.2.7/ext/date/lib/parse_tz.c
+ +
+ fd = open(fname, O_RDONLY); + fd = open(fname, O_RDONLY);
+ if (fd == -1) { + if (fd == -1) {
+ return NULL; + if (strcmp(timezone, "UTC")) {
+ 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: php-8.2.7/ext/date/lib/parse_tz.c
{ {
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 uns @@ -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: php-8.2.7/ext/date/lib/parse_tz.c
+ 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: php-8.2.7/ext/date/lib/parse_tz.c
} }
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_ @@ -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: php-8.2.7/ext/date/lib/parse_tz.c
+ 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: php-8.2.7/ext/date/lib/parse_tz.c
} }
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_ct @@ -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: php-8.2.7/ext/date/lib/parse_tz.c
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(con @@ -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: php-8.2.7/ext/date/lib/parse_tz.c
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(con @@ -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: php-8.2.7/ext/date/lib/parse_tz.c
+ } + }
+ +
+ /* Now done with the mmap segment - discard it. */ + /* Now done with the mmap segment - discard it. */
+ munmap(memmap, maplen); + if (memmap != internal_utc) {
+ munmap(memmap, maplen);
+ }
+ } else { + } else {
+#endif +#endif
if (type == TIMELIB_TZINFO_PHP) { if (type == TIMELIB_TZINFO_PHP) {
@ -703,11 +728,11 @@ Index: php-8.2.7/ext/date/lib/parse_tz.c
} else { } else {
*error_code = TIMELIB_ERROR_NO_SUCH_TIMEZONE; *error_code = TIMELIB_ERROR_NO_SUCH_TIMEZONE;
tmp = NULL; tmp = NULL;
Index: php-8.2.7/ext/date/php_date.c diff --git a/ext/date/php_date.c b/ext/date/php_date.c
=================================================================== index 48c82bf7ec..443299c089 100644
--- php-8.2.7.orig/ext/date/php_date.c --- a/ext/date/php_date.c
+++ php-8.2.7/ext/date/php_date.c +++ b/ext/date/php_date.c
@@ -472,7 +472,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);

View File

@ -1,38 +1,222 @@
------------------------------------------------------------------- -------------------------------------------------------------------
Mon May 13 09:49:46 UTC 2024 - pgajdos@suse.com Fri Jun 7 07:02:10 UTC 2024 - pgajdos@suse.com
- version update to 8.2.19 - version update to 8.3.8 [bsc#1226073]
* a bugfix release, see https://www.php.net/ChangeLog-8.php#8.2.19 CGI:
- version update to 8.2.18 Fixed buffer limit on Windows, replacing read call usage by _read.
* a security release, see https://www.php.net/ChangeLog-8.php#8.2.18 Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577)
* fixed CVE-2024-3096 [bsc#1222858] CLI:
* fixed CVE-2024-2756 [bsc#1222857] Fixed bug GH-14189 (PHP Interactive shell input state incorrectly handles quoted heredoc literals.).
- version update to 8.2.17 Core:
* a bugfix release, see https://www.php.net/ChangeLog-8.php#8.2.17 Fixed bug GH-13970 (Incorrect validation of #[Attribute] flags type for non-compile-time expressions).
DOM:
------------------------------------------------------------------- Fix crashes when entity declaration is removed while still having entity references.
Fri Feb 16 07:57:56 UTC 2024 - pgajdos@suse.com Fix references not handled correctly in C14N.
Fix crash when calling childNodes next() when iterator is exhausted.
- version update to 8.2.16 Fix crash in ParentNode::append() when dealing with a fragment containing text nodes.
* This is a bug fix release. Filter:
Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter_var FILTER_VALIDATE_URL). (CVE-2024-5458)
FPM:
Fix bug GH-14175 (Show decimal number instead of scientific notation in systemd status).
Hash:
ext/hash: Swap the checking order of `__has_builtin` and `__GNUC__` (Saki Takamachi)
Intl:
Fixed build regression on systems without C++17 compilers.
MySQLnd:
Fix bug GH-14255 (mysqli_fetch_assoc reports error from nested query).
Opcache:
Fixed bug GH-14109 (Fix accidental persisting of internal class constant in shm).
OpenSSL:
The openssl_private_decrypt function in PHP and Marvin attack.
Standard:
Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585)
XML:
Fixed bug GH-14124 (Segmentation fault with XML extension under certain memory limit).
XMLReader:
Fixed bug GH-14183 (XMLReader::open() can't be overridden).
- modified patches - modified patches
% php-build-reproducible-phar.patch (refreshed) % php-build-reproducible-phar.patch (refreshed)
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Jan 18 18:01:47 UTC 2024 - pgajdos@suse.com Thu May 9 15:57:56 UTC 2024 - pgajdos@suse.com
- version update to 8.2.15 - version update to 8.3.7
Core:
Fixed zend_call_stack build with Linux/uclibc-ng without thread support.
Fixed bug GH-13772 (Invalid execute_data->opline pointers in observer fcall handlers when JIT is enabled).
Fixed bug GH-13931 (Applying zero offset to null pointer in Zend/zend_opcode.c).
Fixed bug GH-13942 (Align the behavior of zend-max-execution-timers with other timeout implementations).
Fixed bug GH-14003 (Broken cleanup of unfinished calls with callable convert parameters).
Fixed bug GH-14013 (Erroneous dnl appended in configure).
Fixed bug GH-10232 (If autoloading occurs during constant resolution filename and lineno are identified incorrectly).
Fixed bug GH-13727 (Missing void keyword).
Fibers:
Fixed bug GH-13903 (ASAN false positive underflow when executing copy()).
Fileinfo:
Fixed bug GH-13795 (Test failing in ext/fileinfo/tests/bug78987.phpt on big-endian PPC).
FPM:
Fixed bug GH-13563 (Setting bool values via env in FPM config fails).
Intl:
Fixed build for icu 74 and onwards.
MySQLnd:
Fix shift out of bounds on 32-bit non-fast-path platforms.
Opcache:
Fixed bug GH-13433 (Segmentation Fault in zend_class_init_statics when using opcache.preload).
Fixed incorrect assumptions across compilation units for static calls.
OpenSSL:
Fixed bug GH-10495 (feof on OpenSSL stream hangs indefinitely).
PDO SQLite:
Fix GH-13984 (Buffer size is now checked before memcmp).
Fix GH-13998 (Manage refcount of agg_context->val correctly).
Phar:
Fixed bug GH-13836 (Renaming a file in a Phar to an already existing filename causes a NULL pointer dereference).
Fixed bug GH-13833 (Applying zero offset to null pointer in zend_hash.c).
Fix potential NULL pointer dereference before calling EVP_SignInit.
PHPDBG:
Fixed bug GH-13827 (Null pointer access of type 'zval' in phpdbg_frame).
Posix:
Fix usage of reentrant functions in ext/posix.
Session:
Fixed bug GH-13856 (Member access within null pointer of type 'ps_files' in ext/session/mod_files.c).
Fixed bug GH-13891 (memleak and segfault when using ini_set with session.trans_sid_hosts).
Fixed buffer _read/_write size limit on windows for the file mode.
Streams:
Fixed file_get_contents() on Windows fails with "errno=22 Invalid argument".
Fixed bug GH-13264 (Part 1 - Memory leak on stream filter failure).
Fixed bug GH-13860 (Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in ext/openssl/xp_ssl.c - causing use of dead socket).
Fixed bug GH-11678 (Build fails on musl 1.2.4 - lfs64).
Treewide:
Fix gcc-14 Wcalloc-transposed-args warnings.
-------------------------------------------------------------------
Fri Apr 12 07:37:23 UTC 2024 - pgajdos@suse.com
- version update to 8.3.6 [bsc#1222857] [bsc#1222858]
Core:
Fixed GH-13569 (GC buffer unnecessarily grows up to GC_MAX_BUF_SIZE when scanning WeakMaps).
Fixed bug GH-13612 (Corrupted memory in destructor with weak references).
Fixed bug GH-13446 (Restore exception handler after it finishes).
Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure).
Fixed bug GH-13670 (GC does not scale well with a lot of objects created in destructor).
DOM:
Add some missing ZPP checks.
Fix potential memory leak in XPath evaluation results.
FPM:
Fixed GH-11086 (FPM: config test runs twice in daemonised mode).
Fix incorrect check in fpm_shm_free().
GD:
Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests).
Gettext:
Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 with category set to LC_ALL.
MySQLnd:
Fix GH-13452 (Fixed handshake response [mysqlnd]).
Fix incorrect charset length in check_mb_eucjpms().
Opcache:
Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null).
Fixed GH-13712 (Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded).
Random:
Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown modes).
Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between requests when MT_RAND_PHP is used).
Session:
Fixed bug GH-13680 (Segfault with session_decode and compilation error).
SPL:
Fixed bug GH-13685 (Unexpected null pointer in zend_string.h).
Standard:
Fixed bug GH-11808 (Live filesystem modified by tests).
Fixed GH-13402 (Added validation of `\n` in $additional_headers of mail()).
Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows).
Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc_open). (CVE-2024-1874)
Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756)
Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, opening ATO risk). (CVE-2024-3096)
Fixed bug GHSA-fjp9-9hwx-59fq (mb_encode_mimeheader runs endlessly for some inputs). (CVE-2024-2757)
Fix bug GH-13932 (Attempt to fix mbstring on windows build) (msvc).
-------------------------------------------------------------------
Tue Mar 19 06:17:22 UTC 2024 - pgajdos@suse.com
- version update to 8.3.4
* This is a bug fix release.
-------------------------------------------------------------------
Wed Mar 6 19:39:24 UTC 2024 - Pedro Monreal <pmonreal@suse.com>
- Use the system default cipher list instead of hardcoded values
by using crypto-policies. [bsc#1211301]
* Use the --with-system-ciphers configure option.
-------------------------------------------------------------------
Fri Feb 16 07:20:02 UTC 2024 - pgajdos@suse.com
- version update to 8.3.3
* A bugfix release.
- modified patches
% php-build-reproducible-phar.patch (refreshed)
-------------------------------------------------------------------
Thu Jan 18 18:06:25 UTC 2024 - pgajdos@suse.com
- version update to 8.3.2
* This is a bug fix release. * This is a bug fix release.
- modified patches - modified patches
% php-ar-flags.patch (refreshed) % php-ar-flags.patch (refreshed)
% php-build-reproducible-phar.patch (refreshed) % php-build-reproducible-phar.patch (refreshed)
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Jan 2 11:40:49 UTC 2024 - pgajdos@suse.com Wed Dec 27 17:54:25 UTC 2023 - Manu Maier <mmanu84@outlook.de>
- version update to 8.2.14 - version update to 8.3.1
* This is a bug fix release. * This is a bug fix release.
https://www.php.net/ChangeLog-8.php#8.2.14 https://www.php.net/ChangeLog-8.php#8.3.1
-------------------------------------------------------------------
Fri Nov 24 11:04:42 UTC 2023 - pgajdos@suse.com
- version update to 8.3.0
* https://www.php.net/releases/8.3/en.php
* Typed class constants
* Dynamic class constant fetch
* New #[\Override] attribute
* Deep-cloning of readonly properties
* New json_validate() function
* New Randomizer::getBytesFromString() method
* New Randomizer::getFloat() and Randomizer::nextFloat() methods
* New DOMElement::getAttributeNames(),
DOMElement::insertAdjacentElement(),
DOMElement::insertAdjacentText(),
DOMElement::toggleAttribute(),
DOMNode::contains(), DOMNode::getRootNode(),
DOMNode::isEqualNode(), DOMNameSpaceNode::contains(), and
DOMParentNode::replaceChildren() methods.
* New IntlCalendar::setDate(),
IntlCalendar::setDateTime(),
IntlGregorianCalendar::createFromDate(), and
IntlGregorianCalendar::createFromDateTime() methods.
* New ldap_connect_wallet(), and ldap_exop_sync() functions.
* New mb_str_pad() function.
* New posix_sysconf(), posix_pathconf(), posix_fpathconf(),
and posix_eaccess() functions.
* New ReflectionMethod::createFromMethodName() method.
* New socket_atmark() function.
* New str_increment(), str_decrement(),
and stream_context_set_options() functions.
* New ZipArchive::getArchiveFlag() method.
* Support for generation EC keys with custom EC parameters in
OpenSSL extension.
* New INI setting zend.max_allowed_stack_size to set the maximum
allowed stack size.
* php.ini now supports fallback/default value syntax.
* Anonymous classes can now be readonly.
* https://www.php.net/ChangeLog-8.php#PHP_8_3
- modified patches
% php-ar-flags.patch (refreshed)
% php-build-reproducible-phar.patch (refreshed)
% php-ini.patch (refreshed)
- modified sources
% php8.keyring
- deleted patches
- php-systzdata-v23.patch
- added patches
+ php-systzdata-v24.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Nov 24 09:20:44 UTC 2023 - pgajdos@suse.com Fri Nov 24 09:20:44 UTC 2023 - pgajdos@suse.com

View File

@ -1,5 +1,32 @@
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEYHHgIBYJKwYBBAHaRw8BAQdAOm0RDYTmM6omlqoTx6Wy65agVJ4q8EPGczNn
YOrHyo20HUpha3ViIFplbGVua2EgPGJ1a2thQHBocC5uZXQ+iJMEExYIADsCGwMF
CwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQTCjZN1dWA+tKu3JYYcB3ncXAqd5AUC
YHHi+QIZAQAKCRAcB3ncXAqd5MZdAP0eAbdHgjHqKYol3QaXRhErAvvLHPSEXN5c
AImF3zIICgD+NJZZMQDXd1OOKDt+YLiIqIq2ibRhOP5mZryPCGkq9QG0J0pha3Vi
IFplbGVua2EgPGpha3ViLm9wZW5zc2xAZ21haWwuY29tPoiQBBMWCAA4FiEEwo2T
dXVgPrSrtyWGHAd53FwKneQFAmBx4owCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgEC
F4AACgkQHAd53FwKneS0NwEAt0IRpoCN/JNwg1TIseybpmC65nSzYVyX10xe4Ji5
0dcBAI6TYA+47z6F4IVRg2c8Vtg1xktot7b/tKn6hgdv59sLtCdKYWt1YiBaZWxl
bmthIDxqYWt1Yi56ZWxlbmthQGdtYWlsLmNvbT6IkAQTFggAOBYhBMKNk3V1YD60
q7clhhwHedxcCp3kBQJgceAgAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJ
EBwHedxcCp3k+3MBAKuK15XyHw+sdFATFuW9vN+lXqHnYid2jRzQUoh5wG/FAQDc
BXQgXRfe72XRoxY4AE3E4onGMfzW3kbDKDVF7o4zDrg4BGBx4CASCisGAQQBl1UB
BQEBB0Bm2FjWsSDUwL5nbAhtl+rwnGLKbWiVYrwHQocgKFj6GwMBCAeIeAQYFggA
IBYhBMKNk3V1YD60q7clhhwHedxcCp3kBQJgceAgAhsMAAoJEBwHedxcCp3k8ZwA
/jLRHUBKIeRAxeGJhoqJRr2oTxrP887FuX9/ikSX21bcAQD90AB2fu6dpAkOFyZz
X9UdE7QxtBhHVWRx3DRr4P/cDrgzBGBx4KcWCSsGAQQB2kcPAQEHQEDgLoxnsU3i
jAnPZwAbShiRcxeQ/gXkqufbQlVJy/BfiPUEGBYIACYWIQTCjZN1dWA+tKu3JYYc
B3ncXAqd5AUCYHHgpwIbAgUJAeEzgACBCRAcB3ncXAqd5HYgBBkWCAAdFiEEK92x
XVRjS6mw6oyiCpxkP6el608FAmBx4KcACgkQCpxkP6el608JUgEA7NU04gu368gu
lSeGbGcjAERgJmFcxHjyEoqb7eCR+9UBALhy3Q6VSio081TBhtg9M82QL0NoxlkZ
NYg3TjzR5U4Mg9YA/1tG8HmWUqv5dE901v18ErGVKo8di06VqJT4jE8BRNLcAQCI
PkJjNZFtt73kqNgwA/L2JPF2T6YJWYSPOtmQMrCnCw==
=e6EH
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGBlJjMBEAC2wbO/PIAzVSAp2kk7MXmzoXVRSPyEbnjN6qm77nrzvugh/beP mQINBGBlJjMBEAC2wbO/PIAzVSAp2kk7MXmzoXVRSPyEbnjN6qm77nrzvugh/beP
ZucG6lbXMxRsCj4GS9xLcGZoSQZhT/2GJdy+aUt7zf6sympJUTcgPdEVmf5uTxWn ZucG6lbXMxRsCj4GS9xLcGZoSQZhT/2GJdy+aUt7zf6sympJUTcgPdEVmf5uTxWn
QkBg0Bdm6h8xwvgTZVrdfwy7f7jfAsGSXKzEmJfJ2L6LHmAMI3I+csdPqKBHSzj6 QkBg0Bdm6h8xwvgTZVrdfwy7f7jfAsGSXKzEmJfJ2L6LHmAMI3I+csdPqKBHSzj6
@ -65,185 +92,174 @@ wpxdIIyaoaS8NSuPIrV1g4SUXYs=
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
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
iU/+ iyd81D5NzgxJGv3lMqTyusT9NOtHof1WzDQFgRayma8ZwamZ6odKbnFiA8aZQiJF
=pJ+M gniJYMICkEfbfMrwazgnJ/tLDsFk3UdHC1LNPQ4gvkW4oC2HynsRXEoYb9b7LPws
-----END PGP PUBLIC KEY BLOCK----- b1HrWYI+SpdBEzW8DZq1bK7hiUvMWI/ufQSoqrPICQxrU14rdb5VQ/K6Gqgi/ru0
-----BEGIN PGP PUBLIC KEY BLOCK----- HUVyaWMgQSBNYW5uIDxlcmljQGVhbWFubi5jb20+iQJOBBMBCgAhBQJYOKuGAhsD
BQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAACEJEGPxWptxU3bKFiEEr9hpH9rt8Dvf
mQINBGBd5LkBEADOcegzhSUO+DqPpQSTRyVE5mHE9dAhpexUvAmyT3b5rJoOgUXp bkYFY/Fam3FTdsoUTRAAg2YDJkmQlKRdm0u9Oh2oY+e16UI+ceOaZ0gryfCswM/r
I+/VzKa2t40gkcdkg/uHZbMGTQg43fvtsY1eD32uveJK0rMntBINnOaf7jDRa9Qd NieqsjiJJP5N0CYTeyOg/RkHQOAUuVft65bjjWSpTHY6LS9XYcYg5mt4StTCib5q
KqXWyQIbOSM/yyyItc6n2mFC4rZHaNU1QwZCPGEYt4PTgTmOiFj6NHfyWMIUzITY 9PhW78gOnkE3tm6Ql5njpcUhio5O9qCGz2FgXJW07pOFSrOePTL4BH3oxQnb0PyN
a/7EkuFcV3tiqeu8Gm2cGllFgaQ09/3dhLzblstggd4f1A7z75aoGmMy6xvwFzc3 TWXQLWo9Sa5XlBwqHgBFauyq7J75HlfD7uyKbQIb4Eu/Ba+5uAPesyeeBWt0D9pA
ZAy1rxXdF5QCpds+uvWXkrpNJpRGZJ4eR8O42LODJEpgRGk4LA+jvZunW0gtJOIK /vy39UXcXgzB80R8mVvqFR/xpDkeo8ce/J2G0BJTNSA0GqqiqdKKlwbYhd3r4Lxz
mAGfX2ISk28arCR129dxahHHKefUS8Qc2zTK6/I/Bp/ZMVc/NC3os6JurQJD/Kff iWUMW3hvI+PFtqxZlBLI17wO4GIVqQt6J8tDo9e9gbjPwEVtoNDBt+3ymOdqoGZt
4amhNaBYRWD+Nn7fR+itZ3HPBH2yf0nzL0cgwGt37GbQXGqRvHcwmoABY9m3WZVC lMG66/VEvrtmQMPBY8VVjKDPvupVXhobyJjnj2NLj0a9xhRuJNhX8WGk4Td+U/n1
1ImdOS6T3zMrUC4ATyD/qtUs6NuxyV22C1jLRtGqu2YMdAw+s1G6V6Q3Y0SrlRqw j+SuOmhVQN9dDhdcorsX2vuB6Wj7sk22JxVhPu9jfZqIWUER6gO6lJTOhP5M2A2x
0Nb4Ug0gMwKZdVCU+22qGmVJ44D7fSr7AyIZmSrC4i6IoF9I0pcpZYdIImgOBnmS KJc2CmwRwZ7OXEc265MJNY7qEzNM0fno4y8JMPJn6+CVimjKHolFPTZW9YbhKwga
mwOIin5/k0Oqg3gZWZAn2YV6qpVn3RjVz/GkFkml31TneDi+aZJSvmypbvTjkaH/ G564XoypW1GAbesiyhsdIE8Re8mXl6/1BGjXVgjZ/xzTU1grrDobWNX7sbh4+3Ed
zALwKpcSIdVZYlmlWfWprG8UY3Wc3XJq6zRYjG9YAdgZLzH+7B7yr/VR8wARAQAB EiUDQAzuURvW3lyW0Ulfizx4Ofc06ejmgNDlcUILq3EKauoLnD+/jjPxCKZfsUi0
tCFTZXJnZXkgUGFudGVsZWV2IDxzZXJnZXlAcGhwLm5ldD6JAlcEEwEIAEECGwMF HEVyaWMgQSBNYW5uIDxlcmljQHRvem55LmNvbT6JAjYEMAEKACAWIQSv2Gkf2u3w
CwkIBwIGFQoJCAsCBBYCAwECHgECF4ACGQEWIQTmCRPk3yCZB9jjDZZlmpfJzyp5 O99uRgVj8VqbcVN2ygUCWz7hSgIdAAAKCRBj8VqbcVN2ytIeEAC9rHbm7aqotLp7
WgUCYmuyVgUJEO1yXAAKCRBlmpfJzyp5WoQ2EACCVGtdOTFMQWF7cpnAbNFSGzMv yt4b+ua2usIXjztsSI5jT9BW7BLFPzajKIqmQSGWe37IlmtQrwU1YzSarT0pDd3/
9dffE7aOacVahEcRMuu5O5ONhZMlKweXjXJjmXJga4XxZifcopnoJEiiAmd6eb1o R97m8Al3PeCrlShi/3o6py+2PakqHz2nAwC7BKI58W2VhdkDnidLSGbpb/X6lePI
deHfrXAarKig/HqCHXtTFBc0ADEgIew9ErHjKCipg3uBAxvR8ndCV/xDmAIDdZGM EzWiKR38u7DZ0rnZW/KEcEkl+cCph0R5C15TgjMFnNm2t+DrPtwvxZ8St0KXUwKh
7uhklYvtk68jgzK3tzYyDzes+eQKhjQdXfHgp2MqV+aeuuy8csFWvJV/DJDTXFMe YJUHB/hkOuQRnheyLRFHGkY+kxUuWvGSavTXZMPfZHzSpPH8+Dk42WJAjAUMdwNw
DwAm9tB8fMqHZDOlF1jpl+FbXS3NdN/Oee8Ltja+x5iTMMI5lVmnHpemx62W+O2y kMMQItKM+5epZqzXat7N/3ZNNeV6fwWTsMTcOaFmrRiNnk9KTBtNNd3ny/n0Zswc
CHUdd4TXxI6afvpKXnHDjsXZoZoLU1iYwVtA7XGIZTCzfzWMvFsXtXp+3GsfOFFZ ujjTOQW+Hjx6Qx+kWr258Z1s9NvDoNJAtZBYAKGrQe7CkQ9h6uwoY1cZ2jD6BzPo
teXYk4XgoF+3m+VRUDXckyd33Hc2WZDIe4PKYU+SjxV9Gn/Ltq9XzwPb9UgLoi6u YWt8kHyh2FcVJyKVcG7Gupy1f4j4YEsUjHUXuo1Gqrjm6kThGaa6YXbG7h0g6CoX
FRnJo9r4zATKeU4e0mK9mZyy5Ndl57tHXsEd+r2Saih0kv0bX3LxWI8ab6JWpOCF v7cpWg57ir1H/noXtdr81XXPrybODEKQsHVRAfQrV0gb7i60YYV5zsL+FPeCSU6a
WY+3nVUXJq5aH3Gtsdv/XUqk+M7616LIsdDZbLZ789QrE9mOEvADns9wIjt8XFcd 85U0oIR9TsL+y3h8jCGKD44EDG+ZzRzi4cIyDdFi5cX8gcMEFsMfRGBjQZcE7vI2
//5k7/OM/5f/GK0+p9dv51uSnuyqtX21StG5/Y+ixu0MuK7jK2gSmQ0HwoU2uzlU JpCgv6PIhH+dCWod2yKQe/hHwvQmztle+4lh31F8SDSqj0fQzOmdbacwLiPoLhF8
XvFyIWgEH/+QUgM1QoflovBjp+5cwIb7CIl0sqPDoRbaWWAqtgiRIFeI/UcIss2W yCEkV+6BDVbJGwh1R5T94nibcvIzvLQgRXJpYyBNYW5uIDxlcmljLm1hbm5AdmFj
qHUY+bIZbtipSA+Tv7QoU2VyZ2V5IFBhbnRlbGVldiA8c2VyZ2V5QHMtcGFudGVs YXNhLmNvbT6JAkMEMAEKAC0WIQSv2Gkf2u3wO99uRgVj8VqbcVN2ygUCZGOdMQ8d
ZWV2LnJ1PokCVAQTAQgAPgIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBOYJ IExlZnQgdGhlIHRlYW0ACgkQY/Fam3FTdsoVAhAA5493PVYJP6HAx1eUz57bEkxw
E+TfIJkH2OMNlmWal8nPKnlaBQJia7JWBQkQ7XJcAAoJEGWal8nPKnlaeLQP/3dE zU7Nj9X5ZvaW4nlPkjpir9PMp4KZQHfoG+pO/5Q7j0dUbv601uxY0nZyCKb9vc2b
YpCNYxSx6itLIkMnVifdWi7Oe7ATqIGfIO5Z4uZ9E0JCv0CDHy4AMQ78NG67zK5X DC9BOxQwGtqPLZqD0dgf3I5Ybn+EiYF9PsPdmbz1jwxrHEgxsk+qEiTIv4TEPFlP
SngoCGHdsXUw9h857dtXTqVKpG7wDABSJQC+g6hu4sK67tpFlu8Zc+IGtGc2eNjT HXzoPc09vwnUhRNkAxuhhI3Noocf8igpF1o1aC4VfYqW3P6WCD48xoevYd+B4Svl
FSciMdlCaocY+ehWVVuuEew7KvdVfEMxJILRk3grhqzsXo0PaePqjRK/lx/wYHDW 1NZKwoUp+Gf2b7nRNjP8VyxyxK/xwg6EQbSbzZF+XLIVO/q1lfkKN5I/Jk327aiS
7255ALibJ8Q3yf9h+LOdEa0qH1xsdSP7G55t1kBCoGsFbT8sPLNzFMtqzuiTgQgs m9wqkh0H5FgzLXP4pwnGLGw3OU92BluGEWiBuSigThEse81+h/LtEM46e3fNsNT4
TMNOeiwOrPRUIw4yVQOO5svZ0+agjOGf0iklG0heQMC7LGKFAzKIFtxVrV6hSgwH bEUEvvQrJAFj2XaIs4zG1LxvvvkycjGXO4VzdrTTpbwiw+3XQ8hwjdN+W86kryJh
t7y2fA5RvRBR0zZG6L5bUkP0/9txF6c6HsSVihAOpX2Mypel5uHDgnqq6eGbMzG4 mGpryO/TWREwWnTxIoktp3bgtUjfzpFj/ziYmyEMkW1U8Wtc/808vP3w5rHxImAr
0MoOmnaWcFrICNr+uZLY1FfAlr1Nl4syiqXF36+rA2e53QVcPp2nlv9IR+ijWtUV YeYxDdqxO/ZmJKYcjOSX5BITeq8C9/eoKcABhnr0cj6U9BZBUcT1EgRC9uK606bt
IO+xcpAFKZ5NwWERO+oQoGNkquW7UK4x8jO8ezkYs/nC6Y+cJ3AiuPS76avnP47/ n21U/L+BlAsNE1MbvX24p8mLAPd/QI/OtSbojBnc3MVw4QTGRrnn/Md78vLZ4UnU
SAvbyVLDamyzyt8mSMsnyqgghz6ivqqWE810i103AfFCjDokNTd0uzpCcL74VN5p HoExeqOGGRmGroVj6kOZk6swafDySA4myrGzSqjCuXKxkyKcC00AOrjG3gDfC6zl
FsveI563xWinbIoAtgPvFHd18NfYgkyLbk69V4s/h0onD8pEid23ExDKXKOXBZzn HM/59YYY9LU2lhsMM3O5Ag0EWDitOwEQALQtlBtJl9A9sOxcPeeObMwDz3csw0I5
1Bw57z/ZFCxySlULQs59BMFTdY9VXTqX8l2pahmLtC1TZXJnZXkgUGFudGVsZWV2 6VgUfvngLSHToiq2IEVd4TSFQKb+/FsMvTsUEtJIf+0E2LzzZ9h1ha+SqUK4PsQh
IDxzZXJnZXlAc2VyZ2V5cGFudGVsZWV2LmNvbT6JAlQEEwEIAD4CGwMFCwkIBwIG f5cr2TjIYU2hPP2fqYdJd2r0GgjavK0OfcW5geUtDu/YUBAfMqm5SCkYlRdTqReL
FQoJCAsCBBYCAwECHgECF4AWIQTmCRPk3yCZB9jjDZZlmpfJzyp5WgUCYmuyVgUJ 09YuINRayqgDdfsK8i4jltBMnTeS/vtoGn+T6v0w+aJ5aKl7VNPmVYs6pFrz3EKj
EO1yXAAKCRBlmpfJzyp5WlRDEACcPD/Dra0f0HW4qqu0ZYeorsmRqyI2+pb1tsXU 8qV5WE+WVZ5KukaaLGMjrxiItN6OV3V7PAaxvTB8b+KaWU76Dibw9Pm1Y0qUigeh
5qLn7VUZebyRaLkt3kq/E3emnxB2Mftn3OW9YzHDWQcjczHtkKPrfeU82Ja13TF5 X3OgS16xdHwwqg9ZlWPoFCcet4rsVLVyuOvdBZT+MHvhzRc6fVUnHocKdo4DIntW
vutyHUSTn9RqzL5ftx+O4OZ0H5cqssnypgdnkBA5ca2G2s3DqnpthZP7e2Yh3vPE CTyiAveel/BQrlzE/Gywk20BY6JQO4+ceeTwRUI/6IwAfGYups+qMPIsnWWQl1S5
EHg5HvE7GsH1cyN73Efp4xAJltFSdFVtNDrZ8xIjw9iUnnl0Pa6YxFKuy5AsLTv9 jXJ+1ba9jnHsrhjhfoSLtp3Yb+1FE1GMNzY6VL+TAckLXrhK9a0goONJwqhLD4ZK
T6yhAP882o5fW1jqiTUpKq4l/GCjKZWIjBgUQaUPDdWISNhG0qoK/GUNpR/WfaJM JPhi/epieWg8A1u5dOxyCxh53e1UHKMD+ntp4SPUMthPdJQ7GeJYlBJxLDakBF2v
dyYFt9bG+NGSx+g0RXYOWmn3OEVga5J7f1pkXgciOdHY4FMRGWGGhDDcfaWBTXVa 7f91ynNgN0vj67laq+u5CRzQx+nW7C22mIr2pevIomjQpy01nmVDhdSEJcteOpjo
k/iMlWbrPNwUeu371W4pMkZaDHq0RqFbzkX5ePCcUqeOHZPz5qrjASkOrDrp75D5 PJBRiY44M3jEq5BGkKiU1XnlBHV/qK9rXJ2gXT4uRkRVGkSu56+Zi0OTwICwkkXu
Zho6UcMEaOmA3E883LZQCY+zh9H9n34UUIqla2js7pnq9Ab0uYOVe5F+TirH3qAz mFxjaw2VnxnfABEBAAGJAjYEGAEKAAkFAlg4rTsCGyAAIQkQY/Fam3FTdsoWIQSv
IrpfbralGnED6lgLbJaxU3eUTu13L/xgUfH2jqa4mvDBS4g+rBqj4J2Qcbc/fjnU 2Gkf2u3wO99uRgVj8VqbcVN2yrKxD/9QgFZmvesPlsmr7EcHWDOAhpi+DJYwzr9A
Eintu2HN8QGJEpkNSFAjuWXQ0Dmjidl710DzcVZy+WMcHmANeXZ7MSXXvGwUV+RC DC1VE69bXQ/5ilCBoOj2z9xhsrm/CmCNMRW9mwgFjExCyEhJbUfLUcH0bVde5fR4
5Kr/PzVATkCwJUY+cemU3E/+vp+oUOF1OxvISKKEF1QH9p64kyE0ezPJ5SsVz4nz 3ZoPhi8tf2WZiLJTy559Apb6bowiOWMnFGcBdhxmTOeCSYTvmuvcSKQckJHfykD3
i6CE+bkCDQRgXeS5ARAAkDhiIBBJa1Hml3MB3yDDg7JvVbDAA6Bi9w5Xeym0sqId R8eUIaSoN2qJJjRZ0F6xMJXJtVg6+oNfHQ6WdrFO0ULwDN4JywtZMtYn23h9pxvB
M623U2O/RQlzzfZXsg3f4a66Zjot1t1axFZXXNw6p999kZtE5xk10Qcq6zfmUDM6 91x5K0qvttHGZ3FOBzVVYmvKQVRimKDTA9KpxVULlh4jrnwub+tAJIQqpaKLdwlY
yrlmatmCImu+mlWRrW7Yqba7DpgWJ5m4FXGTp08Np8nNJiICaG7Hfk7HtZIjzMr9 CCrJQ4o8CSGP5xrhfLkdHwpLxjGePjb58xp4m+/gJdrBChk2N5xlk/XnTnT1YOeM
5ffaTaXsiSLadvP0o2knP0cvBLPWQKMU89ADI8xh80mm6omsnSby2fluUeugSKNo 7CsooEa3SQOV7Yws5w3buRVZISqtSbi9jFZGGKq1WxK6zfp5eWLzoklsOO4Z/8Ji
KxJqdoqWCWD5br0Ypk3UyG9gUcoJUyQmC2gUUs9g1ksyeq/xGlrTcJ9l7c5I2iby 3bHZ1cJxw4Cu3o7UJBc36xv15daGA0fUxkYarRsOQtBxGj3KZ5vbWBVSZvGUAVp0
frRrafWyE5Zg/vlKLBffnsSkIrV+0c4RFjjlteRm6Eig6lVmXbOXbfSopIyvG9IY gFOUEWnIaDJrc2Mzt4CoFx/fZ8nLOxKS0BmfRzXgT9KLlodKAwU6y+Vf9/f9Q6Nc
mbgY5tRX/aMvpOeUcbqx9Wfsup1MYY7th5B/XSXJQCsRg2k1nMl7Hgq9MVrmkKCu RPqyWdpYHz0hQz4+OF3yGZWKc2vC+l31f6+HyiE5n5GyBLEth/kdmgJRDlyQqkgh
X1IvWBmAilrxlAqdldqSA+8/ZJxQyapdDtw8ecV0NIFFG2tCxodnJcl5RVZRGsO4 9CUv5l89etp286/3Eeylhwujn3U4NMqkXxz7dFUYSueGezBM+GOyGFL74Cdt5moQ
gNjQVZW6Hp3ktpcDLsJkpNhnsH8yK9hmBve//KBftpzb0I13W7bJMJoz6rg52FDb yZjrxaVGsrkCDQRYOK0dARAAxbj34OlZA1kiEjolyHGVcSErfvhNxmoqOl/sP1l2
O99NZmLJl9N85mCPNISvhaHFOLKcyFpROnue2eiER8OLv/M24n/2nvp1SWwkhv+i vvMMHaJEPxwrG8zKvnrpEemgP/qi13R/bruRFWMdMvXVMq61IqXBPbv6clygVFEX
M6FIT1yCFpxXjXxCISJM1oYmTM9e5Wj30jZAvYcgwD9KY/TGzSZo1W/BPiuIQiUA VKEFTaA+P27W1qxSwM+5FeVb8EDzI949Zd3FqLNNjuQbHAKjszZCRIaEeHib7UC5
EQEAAYkCPAQYAQgAJhYhBOYJE+TfIJkH2OMNlmWal8nPKnlaBQJgXeS5AhsMBQkH iGxlh0K51o24pI0UPoK3EHAoTg2jDey8PdPNknYvYjEY5Q5TDuarpYnKBghd5jJx
hh9cAAoJEGWal8nPKnla6mwP/3D/kYM2nkvoXLMO8K0q59Y7uf3SE3wZ2VHyDd/X VSCARselhwvfm+Ztg1tap3ULDRtyPNDfZiLz27W31g61q0+ABwxP0ssuBGQPQWDp
aKjOfXQFEyK5RqZYI+mbv/xI58+XoVlf9y3nUzyURCaBRaPtvTbpy6b8Y3ARw8xT g5C6huGyiwfZ9HLffae4vpAV2Thl/VaUoXU+OJhGDeSb5CA6KkiMrdF8qIDvhGtu
5wBYDVaY0xzlHjidFVNnDJ1MKNvwn68V4qZdX1dxzHB+PrUeZG5YVoGCSw1au4Yq 9Sv7NRZbd83SrPGsXa5vwzKgQI/NGN+jzHnyCXjlJXWlcFiUUml0DRpL5Pu6lU5j
GuYP0VuE5AeY9pP6c/mC7sSuLAJ7izkaz6INiIW7hcJcRPXY2NdyCRwzSY36UAI7 qDp+8UHufjGX/dorm5ewfaSUprtPBG0sIBW20ZXZ2QI8dnGpM0pzT9S87auMYq0Q
ZVnKervpK1eXrLhpwSbbBgS4/oh+sdu90oQb32dJRVTZZ/nT18CR6Ttxvsu5rFt8 xiCm/OgfC1IzoWJamFyBYaJFLuocFlhyAvvBX0uSbZk1HKG0iShQO+RoRldzcCUi
Q4bVkXHiDZPvrrz9kOCo1pe3DfXOb2oRMlF3oZ6h+MhNC3IZvVTEY0WK62I5Grfe KzhxQQmOkbAh5KdWJTwV6n0zbrOFLCYdiMUP6Vu6s5kAykIr7CxTbXgyVudBlmEl
uGdMBvcI+BFpQ+prv7bZVOU/jZlQL6DEfQ2T2eNc2xiYP1dKwoqH6hcb8j3Oids8 xPIKc5Eee8NRlPAzddhUt2F+o/xrSx92DpWQYmjSSG3fQIwcnOnQTIa3yY48vILc
8xPfLxeMIPZBgCLyxwRJIW8ChSh/R9vo9P+HNmFkt7TLy+AVQm5QV/gmdvwJnTS3 sg8AEQEAAYkCNgQYAQoACQUCWDitHQIbDAAhCRBj8VqbcVN2yhYhBK/YaR/a7fA7
tDsPUBA7WX2pMsYbQEDzWyQdrmSAgpGw5naHqz+hcjGK6VsYW/bH5FQeOKfUPE4E 325GBWPxWptxU3bKVWUP/j2A5yJvkbEK5gktiWlglEoGmm0W9+AGyKrYPTfDRTtj
VPpIcXjQE//JzrJ8sJkPITD4I8cIrMo2DSessrODvkDootC5wCwD2jzKzbwVjGTg 486L6OseprYtJ5boMUsYQqAv7XEkIUYoUn8KbZ4K3h+kaK19o4WAs7+B2OOA8VCy
tm6LWTIamS0UshAHDk9tnddxgPD8yeFzXbQRJC7sBoFcLcBRJrF6urlEBgmmWo4A 4WbfzjSwpxdKqXjD1b1n6g+D/124vjEOp6+6/eY5A75HUG3/hX7282TTWRfV+0xH
bItY IxeGWqM9FRSn61JBNPkozm7EPe0sJbFwHESI6Nn3ieCJG4W6I1KdnXoYxyQSH0y6
=z8k6 bVj5HjAmxFpl66WuYDTZowvjUiRlMcAtGErLFsN+NV4xREczmAGE9hRXD2OjGdcL
-----END PGP PUBLIC KEY BLOCK----- ML4FEIMXDttUvzncvCBKraBdkLRF927ZoG0tdaWIZ2a2/0XAoIsWsQLKDFtS7Z8Y
-----BEGIN PGP PUBLIC KEY BLOCK----- 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 ovhBoCTlBaU=
i8vSfcISHQ+xu5UqBiC0nfFNfIAi+z2averRqu+Qg8vPbtLyPiENVnpkZX6wWW+a =Hyro
pEjhjtmK/1WFccY2W7WIjOOGicq3oYQNzAr8M8j9u4nJR+zdF7F4CThdadwFRH7l
x4QFUm0d7ZCz3u6LFysg1IFArrySDy0oJQqjx7JveV3IfD6VFyUXpj6RZ7DyJagy
rv73yKwzGbZxBQaIP2n4wOrKpgvF9gUyhek4r/CistHYr5MLJnQKvlntL5JCDKtT
zHNlJAy7/A7o6ReE1zLwVztwFqCjwzbei+8zFHcpraOUyCAPVrCG5/mhk3230n5S
ZYZcyed58s5f8fbpBWm8Ke44xelcoeymDEBOqG9eiVk6PgGWN5ryqFF8Oo8BqJ2g
YzZLkfRJvyMo1w8dLYiimjT3VYfE4PKXBjbd7LK6BClqi61I1pa7KP/kD3h9hpef
jY0GEiHEDnGKPzBroopAPRibtPPPiICfG5k4hYDLqv2SwLkOoJKWQUFwDdoVSJFe
h+SCcKfJW8n/BhtKgQpPVWtN/j2Y4WS7v32/RM1Zocl/eXBDWDVBO0F0KZbCWanI
bAW44EBN/A1omSk+7skYWVAlA94fWSLGKOtza0DaAPsZM/bbm/uHF0FeoiYvxqng
U3I=
=wkmV
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

View File

@ -40,8 +40,8 @@
%define psuffix %{nil} %define psuffix %{nil}
%endif %endif
%global apiver 20220829 %global apiver 20230831
%global zendver 20220829 %global zendver 20230831
%define extension_dir %{_libdir}/%{php_name}/extensions %define extension_dir %{_libdir}/%{php_name}/extensions
%define php_sysconf %{_sysconfdir}/%{php_name} %define php_sysconf %{_sysconfdir}/%{php_name}
@ -57,7 +57,7 @@
%bcond_without sodium %bcond_without sodium
Name: %{pprefix}%{php_name}%{psuffix} Name: %{pprefix}%{php_name}%{psuffix}
Version: 8.2.19 Version: 8.3.8
Release: 0 Release: 0
Summary: Interpreter for the PHP scripting language version 8 Summary: Interpreter for the PHP scripting language version 8
License: MIT AND PHP-3.01 License: MIT AND PHP-3.01
@ -85,7 +85,8 @@ Patch2: php-php-config.patch
# SUSE specific ini defaults # SUSE specific ini defaults
Patch3: php-ini.patch Patch3: php-ini.patch
# use of the system timezone database # use of the system timezone database
Patch4: php-systzdata-v23.patch # https://git.remirepo.net/cgit/rpms/scl-php83/php.git/plain/php-8.3.0-systzdata-v24.patch
Patch4: php-systzdata-v24.patch
# adjust upstream systemd unit to SUSE needs # adjust upstream systemd unit to SUSE needs
Patch5: php-systemd-unit.patch Patch5: php-systemd-unit.patch
# PATCH-FEATURE-OPENSUSE use ordered input files for reproducible /usr/bin/phar.phar # PATCH-FEATURE-OPENSUSE use ordered input files for reproducible /usr/bin/phar.phar
@ -1154,6 +1155,7 @@ Build cli \
--with-mysqli=shared,mysqlnd \ --with-mysqli=shared,mysqlnd \
--with-unixODBC=shared,%{_usr} \ --with-unixODBC=shared,%{_usr} \
--with-openssl=shared \ --with-openssl=shared \
--with-system-ciphers \
--with-pgsql=shared,%{_usr} \ --with-pgsql=shared,%{_usr} \
--enable-phar=shared \ --enable-phar=shared \
--with-enchant=shared \ --with-enchant=shared \