rebase to 8.2.13 add %__phpize and %__phpconfig macros move httpd/nginx wants directives to config files in /etc php-fpm.conf: move include directive after [global] section following upstream example, allowing overriding use SPDX license IDs

This commit is contained in:
Remi Collet 2023-11-24 09:23:57 +01:00 committed by root
parent b253ec1bb2
commit 7f1284b499
11 changed files with 926 additions and 676 deletions

2
.gitignore vendored
View File

@ -6,3 +6,5 @@
/php-8.1.8.tar.xz.asc /php-8.1.8.tar.xz.asc
/php-8.1.14.tar.xz /php-8.1.14.tar.xz
/php-8.1.14.tar.xz.asc /php-8.1.14.tar.xz.asc
/php-8.2.13.tar.xz
/php-8.2.13.tar.xz.asc

2
.php.metadata Normal file
View File

@ -0,0 +1,2 @@
425be7c55d66618ab9db1af779371fbab28f7320 php-8.2.13.tar.xz
3ce51b7ad6c4ebd5108101b256cd6e8c1e007182 php-8.2.13.tar.xz.asc

View File

@ -115,7 +115,12 @@ opcache.blacklist_filename=/etc/php.d/opcache*.blacklist
;opcache.file_cache_fallback=1 ;opcache.file_cache_fallback=1
; Enables or disables copying of PHP code (text segment) into HUGE PAGES. ; Enables or disables copying of PHP code (text segment) into HUGE PAGES.
; This should improve performance, but requires appropriate OS configuration. ; Under certain circumstances (if only a single global PHP process is
; started from which all others fork), this can increase performance
; by a tiny amount because TLB misses are reduced. On the other hand, this
; delays PHP startup, increases memory usage and degrades performance
; under memory pressure - use with care.
; Requires appropriate OS configuration.
opcache.huge_code_pages=0 opcache.huge_code_pages=0
; Validate cached file permissions. ; Validate cached file permissions.

View File

@ -18,4 +18,10 @@
%__php %{_bindir}/php %__php %{_bindir}/php
%__ztsphp %{_bindir}/zts-php %__ztsphp %{_bindir}/zts-php
%__phpize %{_bindir}/phpize
%__ztsphpize %{_bindir}/zts-phpize
%__phpconfig %{_bindir}/php-config
%__ztsphpconfig %{_bindir}/zts-php-config
%pecl_xmldir %{_sharedstatedir}/php/peclxml %pecl_xmldir %{_sharedstatedir}/php/peclxml

View File

@ -5,6 +5,8 @@ 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
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)
r20: adapt for timelib 2020.03 (in 8.0.10RC1) r20: adapt for timelib 2020.03 (in 8.0.10RC1)
@ -33,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])
@ -58,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"
@ -74,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
@ -84,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;
@ -96,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)
} }
} }
@ -440,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;
+ +
@ -456,7 +473,7 @@ index e41315efdb..4b6547c0a3 100644
+ size_t n; + size_t n;
+ char *data, *p; + char *data, *p;
+ +
+ data = malloc(3 * sysdb->index_size + 7); + data = malloc(3 * sysdb->index_size + sizeof(FAKE_HEADER) - 1);
+ +
+ p = mempcpy(data, FAKE_HEADER, sizeof(FAKE_HEADER) - 1); + p = mempcpy(data, FAKE_HEADER, sizeof(FAKE_HEADER) - 1);
+ +
@ -546,7 +563,12 @@ index e41315efdb..4b6547c0a3 100644
+ +
+ 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;
@ -565,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;
} }
@ -599,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);
@ -615,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;
@ -629,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 */
@ -647,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;
@ -656,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;
@ -665,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;
} }
@ -688,7 +712,9 @@ index e41315efdb..4b6547c0a3 100644
+ } + }
+ +
+ /* 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,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);

View File

@ -1,7 +1,7 @@
diff -up ./build/gen_stub.php.syslib ./build/gen_stub.php diff -up ./build/gen_stub.php.syslib ./build/gen_stub.php
--- ./build/gen_stub.php.syslib 2020-06-25 08:11:51.782046813 +0200 --- ./build/gen_stub.php.syslib 2020-06-25 08:11:51.782046813 +0200
+++ ./build/gen_stub.php 2020-06-25 08:13:11.188860368 +0200 +++ ./build/gen_stub.php 2020-06-25 08:13:11.188860368 +0200
@@ -1075,6 +1075,12 @@ function initPhpParser() { @@ -3265,6 +3265,12 @@ function initPhpParser() {
} }
$isInitialized = true; $isInitialized = true;
@ -11,6 +11,6 @@ diff -up ./build/gen_stub.php.syslib ./build/gen_stub.php
+ return; + return;
+ } + }
+ +
$version = "4.13.0"; $version = "4.15.1";
$phpParserDir = __DIR__ . "/PHP-Parser-$version"; $phpParserDir = __DIR__ . "/PHP-Parser-$version";
if (!is_dir($phpParserDir)) { if (!is_dir($phpParserDir)) {

View File

@ -5,11 +5,6 @@
; All relative paths in this configuration file are relative to PHP's install ; All relative paths in this configuration file are relative to PHP's install
; prefix. ; prefix.
; Include one or more files. If glob(3) exists, it is used to include a bunch of
; files from a glob(3) pattern. This directive can be used everywhere in the
; file.
include=/etc/php-fpm.d/*.conf
;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;
; Global Options ; ; Global Options ;
;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;
@ -133,5 +128,8 @@ daemonize = yes
; used in logs and stats. There is no limitation on the number of pools which ; used in logs and stats. There is no limitation on the number of pools which
; FPM can handle. Your system will tell you anyway :) ; FPM can handle. Your system will tell you anyway :)
; See /etc/php-fpm.d/*.conf ; Include one or more files. If glob(3) exists, it is used to include a bunch of
; files from a glob(3) pattern. This directive can be used everywhere in the
; file.
include=/etc/php-fpm.d/*.conf

File diff suppressed because it is too large Load Diff

11
php.ini
View File

@ -9,8 +9,8 @@
; PHP attempts to find and load this configuration from a number of locations. ; PHP attempts to find and load this configuration from a number of locations.
; The following is a summary of its search order: ; The following is a summary of its search order:
; 1. SAPI module specific location. ; 1. SAPI module specific location.
; 2. The PHPRC environment variable. (As of PHP 5.2.0) ; 2. The PHPRC environment variable.
; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) ; 3. A number of predefined registry keys on Windows
; 4. Current working directory (except CLI) ; 4. Current working directory (except CLI)
; 5. The web server's directory (for SAPI modules), or directory of PHP ; 5. The web server's directory (for SAPI modules), or directory of PHP
; (otherwise in Windows) ; (otherwise in Windows)
@ -425,6 +425,11 @@ max_input_time = 60
; How many GET/POST/COOKIE input variables may be accepted ; How many GET/POST/COOKIE input variables may be accepted
;max_input_vars = 1000 ;max_input_vars = 1000
; How many multipart body parts (combined input variable and file uploads) may
; be accepted.
; Default Value: -1 (Sum of max_input_vars and max_file_uploads)
;max_multipart_body_parts = 1500
; Maximum amount of memory a script may consume ; Maximum amount of memory a script may consume
; https://php.net/memory-limit ; https://php.net/memory-limit
memory_limit = 128M memory_limit = 128M
@ -449,7 +454,7 @@ memory_limit = 128M
; development and early testing. ; development and early testing.
; ;
; Error Level Constants: ; Error Level Constants:
; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) ; E_ALL - All errors and warnings
; E_ERROR - fatal run-time errors ; E_ERROR - fatal run-time errors
; E_RECOVERABLE_ERROR - almost fatal run-time errors ; E_RECOVERABLE_ERROR - almost fatal run-time errors
; E_WARNING - run-time warnings (non-fatal errors) ; E_WARNING - run-time warnings (non-fatal errors)

113
php.spec
View File

@ -7,8 +7,8 @@
# #
# API/ABI check # API/ABI check
%global apiver 20210902 %global apiver 20220829
%global zendver 20210902 %global zendver 20220829
%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.1 %global embed_version 8.2
%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,7 +64,7 @@
%bcond_with imap %bcond_with imap
%bcond_without lmdb %bcond_without lmdb
%global upver 8.1.14 %global upver 8.2.13
#global rcver RC1 #global rcver RC1
Summary: PHP scripting language for creating dynamic web sites Summary: PHP scripting language for creating dynamic web sites
@ -78,7 +78,7 @@ Release: 1%{?dist}
# ext/date/lib is MIT # ext/date/lib is MIT
# Zend/zend_sort is NCSA # Zend/zend_sort is NCSA
# Zend/asm is Boost # Zend/asm is Boost
License: PHP and Zend and BSD and MIT and ASL 1.0 and NCSA and Boost License: PHP-3.01 AND Zend-2.0 AND BSD-2-Clause AND MIT AND Apache-1.0 AND NCSA AND BSL-1.0
URL: http://www.php.net/ URL: http://www.php.net/
Source0: https://www.php.net/distributions/php-%{upver}%{?rcver}.tar.xz Source0: https://www.php.net/distributions/php-%{upver}%{?rcver}.tar.xz
@ -109,9 +109,9 @@ Patch8: php-8.1.0-libdb.patch
# Functional changes # Functional changes
# Use system nikic/php-parser # Use system nikic/php-parser
Patch41: php-8.1.0-parser.patch Patch41: php-8.2.0-parser.patch
# use system tzdata # use system tzdata
Patch42: php-8.1.0-systzdata-v22.patch Patch42: php-8.1.0-systzdata-v24.patch
# See http://bugs.php.net/53436 # See http://bugs.php.net/53436
Patch43: php-7.4.0-phpize.patch Patch43: php-7.4.0-phpize.patch
# Use -lldap_r for OpenLDAP # Use -lldap_r for OpenLDAP
@ -213,7 +213,7 @@ running in prefork mode. This module is deprecated.
%package cli %package cli
Summary: Command-line interface for PHP Summary: Command-line interface for PHP
# sapi/cli/ps_title.c is PostgreSQL # sapi/cli/ps_title.c is PostgreSQL
License: PHP and Zend and BSD and MIT and ASL 1.0 and NCSA and PostgreSQL License: PHP-3.01 AND Zend-2.0 AND BSD-2-Clause AND MIT AND Apache-1.0 AND NCSA AND PostgreSQL
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
Provides: php-cgi = %{version}-%{release}, php-cgi%{?_isa} = %{version}-%{release} Provides: php-cgi = %{version}-%{release}, php-cgi%{?_isa} = %{version}-%{release}
Provides: php-pcntl, php-pcntl%{?_isa} Provides: php-pcntl, php-pcntl%{?_isa}
@ -236,6 +236,7 @@ The php-dbg package contains the interactive PHP debugger.
Summary: PHP FastCGI Process Manager Summary: PHP FastCGI Process Manager
BuildRequires: libacl-devel BuildRequires: libacl-devel
BuildRequires: pkgconfig(libsystemd) >= 209 BuildRequires: pkgconfig(libsystemd) >= 209
BuildRequires: pkgconfig(libselinux)
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
%{?systemd_requires} %{?systemd_requires}
# To ensure correct /var/lib/php/session ownership: # To ensure correct /var/lib/php/session ownership:
@ -258,7 +259,8 @@ Summary: Common files for PHP
# All files licensed under PHP version 3.01, except # All files licensed under PHP version 3.01, except
# 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 and BSD License: PHP-3.01 AND BSD-2-Clause
Requires: 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}
@ -286,6 +288,7 @@ Provides: php-libxml, php-libxml%{?_isa}
Provides: php-openssl, php-openssl%{?_isa} Provides: php-openssl, php-openssl%{?_isa}
Provides: php-phar, php-phar%{?_isa} Provides: php-phar, php-phar%{?_isa}
Provides: php-pcre, php-pcre%{?_isa} Provides: php-pcre, php-pcre%{?_isa}
Provides: php-random, php-random%{?_isa}
Provides: php-reflection, php-reflection%{?_isa} Provides: php-reflection, php-reflection%{?_isa}
Provides: php-session, php-session%{?_isa} Provides: php-session, php-session%{?_isa}
Provides: php-sockets, php-sockets%{?_isa} Provides: php-sockets, php-sockets%{?_isa}
@ -318,7 +321,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.13.0 Recommends: php-nikic-php-parser4 >= 4.15.1
%description devel %description devel
@ -328,7 +331,7 @@ need to install this package.
%package opcache %package opcache
Summary: The Zend OPcache Summary: The Zend OPcache
License: PHP License: PHP-3.01
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}
@ -346,7 +349,7 @@ bytecode optimization patterns that make code execution faster.
%package imap %package imap
Summary: A module for PHP applications that use IMAP Summary: A module for PHP applications that use IMAP
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
BuildRequires: pkgconfig(krb5) BuildRequires: pkgconfig(krb5)
BuildRequires: pkgconfig(krb5-gssapi) BuildRequires: pkgconfig(krb5-gssapi)
@ -362,7 +365,7 @@ messages on mail servers. PHP is an HTML-embedded scripting language.
%package ldap %package ldap
Summary: A module for PHP applications that use LDAP Summary: A module for PHP applications that use LDAP
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
BuildRequires: pkgconfig(libsasl2) BuildRequires: pkgconfig(libsasl2)
BuildRequires: openldap-devel BuildRequires: openldap-devel
@ -377,7 +380,7 @@ language.
%package pdo %package pdo
Summary: A database access abstraction module for PHP applications Summary: A database access abstraction module for PHP applications
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
# ABI/API check - Arch specific # ABI/API check - Arch specific
Provides: php-pdo-abi = %{pdover}-%{__isa_bits} Provides: php-pdo-abi = %{pdover}-%{__isa_bits}
@ -394,7 +397,7 @@ databases.
%package mysqlnd %package mysqlnd
Summary: A module for PHP applications that use MySQL databases Summary: A module for PHP applications that use MySQL databases
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-pdo%{?_isa} = %{version}-%{release} Requires: php-pdo%{?_isa} = %{version}-%{release}
Provides: php_database Provides: php_database
Provides: php-mysqli = %{version}-%{release} Provides: php-mysqli = %{version}-%{release}
@ -413,7 +416,7 @@ This package use the MySQL Native Driver
%package pgsql %package pgsql
Summary: A PostgreSQL database module for PHP Summary: A PostgreSQL database module for PHP
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-pdo%{?_isa} = %{version}-%{release} Requires: php-pdo%{?_isa} = %{version}-%{release}
Provides: php_database Provides: php_database
Provides: php-pdo_pgsql, php-pdo_pgsql%{?_isa} Provides: php-pdo_pgsql, php-pdo_pgsql%{?_isa}
@ -432,7 +435,7 @@ php package.
%package process %package process
Summary: Modules for PHP script using system process interfaces Summary: Modules for PHP script using system process interfaces
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
Provides: php-posix, php-posix%{?_isa} Provides: php-posix, php-posix%{?_isa}
Provides: php-shmop, php-shmop%{?_isa} Provides: php-shmop, php-shmop%{?_isa}
@ -449,7 +452,7 @@ communication.
Summary: A module for PHP applications that use ODBC databases Summary: A module for PHP applications that use ODBC databases
# All files licensed under PHP version 3.01, except # All files licensed under PHP version 3.01, except
# pdo_odbc is licensed under PHP version 3.0 # pdo_odbc is licensed under PHP version 3.0
License: PHP License: PHP-3.01
Requires: php-pdo%{?_isa} = %{version}-%{release} Requires: php-pdo%{?_isa} = %{version}-%{release}
Provides: php_database Provides: php_database
Provides: php-pdo_odbc, php-pdo_odbc%{?_isa} Provides: php-pdo_odbc, php-pdo_odbc%{?_isa}
@ -467,7 +470,7 @@ package.
%package soap %package soap
Summary: A module for PHP applications that use the SOAP protocol Summary: A module for PHP applications that use the SOAP protocol
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(libxml-2.0)
@ -479,7 +482,7 @@ support to PHP for using the SOAP web services protocol.
%package pdo-firebird %package pdo-firebird
Summary: PDO driver for Interbase/Firebird databases Summary: PDO driver for Interbase/Firebird databases
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
# for fb_config command # for fb_config command
BuildRequires: firebird-devel BuildRequires: firebird-devel
Requires: php-pdo%{?_isa} = %{version}-%{release} Requires: php-pdo%{?_isa} = %{version}-%{release}
@ -494,7 +497,7 @@ Interbase/Firebird databases.
%package snmp %package snmp
Summary: A module for PHP applications that query SNMP-managed devices Summary: A module for PHP applications that query SNMP-managed devices
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-common%{?_isa} = %{version}-%{release}, net-snmp Requires: php-common%{?_isa} = %{version}-%{release}, net-snmp
BuildRequires: net-snmp-devel BuildRequires: net-snmp-devel
@ -507,7 +510,7 @@ will need to install this package and the php package.
%package xml %package xml
Summary: A module for PHP applications which use XML Summary: A module for PHP applications which use XML
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
Provides: php-dom, php-dom%{?_isa} Provides: php-dom, php-dom%{?_isa}
Provides: php-domxml, php-domxml%{?_isa} Provides: php-domxml, php-domxml%{?_isa}
@ -529,7 +532,7 @@ Summary: A module for PHP applications which need multi-byte string handling
# All files licensed under PHP version 3.01, except # All files licensed under PHP version 3.01, except
# libmbfl is licensed under LGPLv2 # libmbfl is licensed under LGPLv2
# ucgendat is licensed under OpenLDAP # ucgendat is licensed under OpenLDAP
License: PHP and LGPLv2 and OpenLDAP License: PHP-3.01 AND LGPL-2.1-only AND OLDAP-2.8
BuildRequires: pkgconfig(oniguruma) >= 6.8 BuildRequires: pkgconfig(oniguruma) >= 6.8
Provides: bundled(libmbfl) = 1.3.2 Provides: bundled(libmbfl) = 1.3.2
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
@ -541,7 +544,7 @@ support for multi-byte string handling to PHP.
%package gd %package gd
Summary: A module for PHP applications for using the gd graphics library Summary: A module for PHP applications for using the gd graphics library
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
BuildRequires: pkgconfig(gdlib) >= 2.1.1 BuildRequires: pkgconfig(gdlib) >= 2.1.1
@ -553,7 +556,7 @@ support for using the gd graphics library to PHP.
Summary: A module for PHP applications for using the bcmath library Summary: A module for PHP applications for using the bcmath library
# All files licensed under PHP version 3.01, except # All files licensed under PHP version 3.01, except
# libbcmath is licensed under LGPLv2+ # libbcmath is licensed under LGPLv2+
License: PHP and LGPLv2+ License: PHP-3.01 AND LGPL-2.1-or-later
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
%description bcmath %description bcmath
@ -563,7 +566,7 @@ support for using the bcmath library to PHP.
%package gmp %package gmp
Summary: A module for PHP applications for using the GNU MP library Summary: A module for PHP applications for using the GNU MP library
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
BuildRequires: gmp-devel BuildRequires: gmp-devel
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
@ -574,7 +577,7 @@ using the GNU MP library.
%package dba %package dba
Summary: A database abstraction layer module for PHP applications Summary: A database abstraction layer module for PHP applications
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
%if %{with db4} %if %{with db4}
BuildRequires: libdb-devel BuildRequires: libdb-devel
%endif %endif
@ -595,7 +598,7 @@ support for using the DBA database abstraction layer to PHP.
%package tidy %package tidy
Summary: Standard PHP module provides tidy library support Summary: Standard PHP module provides tidy library support
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
BuildRequires: libtidy-devel BuildRequires: libtidy-devel
@ -608,7 +611,7 @@ support for using the tidy library to PHP.
%package pdo-dblib %package pdo-dblib
Summary: PDO driver for Microsoft SQL Server and Sybase databases Summary: PDO driver for Microsoft SQL Server and Sybase databases
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-pdo%{?_isa} = %{version}-%{release} Requires: php-pdo%{?_isa} = %{version}-%{release}
BuildRequires: freetds-devel BuildRequires: freetds-devel
Provides: php-pdo_dblib, php-pdo_dblib%{?_isa} Provides: php-pdo_dblib, php-pdo_dblib%{?_isa}
@ -634,7 +637,7 @@ into applications to provide PHP scripting language support.
%package pspell %package pspell
Summary: A module for PHP applications for using pspell interfaces Summary: A module for PHP applications for using pspell interfaces
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
BuildRequires: aspell-devel >= 0.50.0 BuildRequires: aspell-devel >= 0.50.0
@ -646,7 +649,7 @@ support for using the pspell library to PHP.
%package intl %package intl
Summary: Internationalization extension for PHP applications Summary: Internationalization extension for PHP applications
# All files licensed under PHP version 3.01 # All files licensed under PHP version 3.01
License: PHP License: PHP-3.01
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
BuildRequires: pkgconfig(icu-i18n) >= 50.1 BuildRequires: pkgconfig(icu-i18n) >= 50.1
BuildRequires: pkgconfig(icu-io) >= 50.1 BuildRequires: pkgconfig(icu-io) >= 50.1
@ -659,7 +662,7 @@ support for using the ICU library to PHP.
%package enchant %package enchant
Summary: Enchant spelling extension for PHP applications Summary: Enchant spelling extension for PHP applications
# All files licensed under PHP version 3.0 # All files licensed under PHP version 3.0
License: PHP License: PHP-3.01
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
BuildRequires: pkgconfig(enchant-2) BuildRequires: pkgconfig(enchant-2)
@ -671,7 +674,7 @@ support for using the enchant library to PHP.
%package sodium %package sodium
Summary: Wrapper for the Sodium cryptographic library Summary: Wrapper for the Sodium cryptographic library
# All files licensed under PHP version 3.0.1 # All files licensed under PHP version 3.0.1
License: PHP License: PHP-3.01
BuildRequires: pkgconfig(libsodium) >= 1.0.9 BuildRequires: pkgconfig(libsodium) >= 1.0.9
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
@ -688,8 +691,7 @@ low-level PHP extension for the libsodium cryptographic library.
%package ffi %package ffi
Summary: Foreign Function Interface Summary: Foreign Function Interface
# All files licensed under PHP version 3.0.1 # All files licensed under PHP version 3.0.1
License: PHP License: PHP-3.01
Group: System Environment/Libraries
BuildRequires: pkgconfig(libffi) BuildRequires: pkgconfig(libffi)
Requires: php-common%{?_isa} = %{version}-%{release} Requires: php-common%{?_isa} = %{version}-%{release}
@ -707,25 +709,23 @@ in pure PHP.
%setup -q -n php-%{upver}%{?rcver} %setup -q -n php-%{upver}%{?rcver}
%patch1 -p1 -b .mpmcheck %patch -P1 -p1 -b .mpmcheck
%patch5 -p1 -b .includedir %patch -P5 -p1 -b .includedir
%patch6 -p1 -b .embed %patch -P6 -p1 -b .embed
%patch8 -p1 -b .libdb %patch -P8 -p1 -b .libdb
%patch41 -p1 -b .syslib %patch -P41 -p1 -b .syslib
%patch42 -p1 -b .systzdata %patch -P42 -p1 -b .systzdata
%patch43 -p1 -b .headers %patch -P43 -p1 -b .headers
%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7 %patch -P45 -p1 -b .ldap_r
%patch45 -p1 -b .ldap_r %patch -P47 -p1 -b .phpinfo
%endif
%patch47 -p1 -b .phpinfo
# upstream patches # upstream patches
# security patches # security patches
# Fixes for tests # Fixes for tests
%patch300 -p1 -b .datetests %patch -P300 -p1 -b .datetests
# Prevent %%doc confusion over LICENSE files # Prevent %%doc confusion over LICENSE files
@ -751,6 +751,8 @@ mkdir build-cgi build-embedded \
# ----- Manage known as failed test ------- # ----- Manage known as failed test -------
# affected by systzdata patch # affected by systzdata patch
rm ext/date/tests/timezone_location_get.phpt 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
rm ext/date/tests/bug80963.phpt rm ext/date/tests/bug80963.phpt
# fails sometime # fails sometime
rm ext/sockets/tests/mcast_ipv?_recv.phpt rm ext/sockets/tests/mcast_ipv?_recv.phpt
@ -1014,6 +1016,7 @@ pushd build-fpm
build --enable-fpm \ build --enable-fpm \
--with-fpm-acl \ --with-fpm-acl \
--with-fpm-systemd \ --with-fpm-systemd \
--with-fpm-selinux \
--libdir=%{_libdir}/php \ --libdir=%{_libdir}/php \
--without-mysqli \ --without-mysqli \
--disable-pdo \ --disable-pdo \
@ -1224,8 +1227,8 @@ mv $RPM_BUILD_ROOT%{_sysconfdir}/php-fpm.d/www.conf.default .
# install systemd unit files and scripts for handling server startup # install systemd unit files and scripts for handling server startup
install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/php-fpm.service.d install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/php-fpm.service.d
install -Dm 644 %{SOURCE6} $RPM_BUILD_ROOT%{_unitdir}/php-fpm.service install -Dm 644 %{SOURCE6} $RPM_BUILD_ROOT%{_unitdir}/php-fpm.service
install -Dm 644 %{SOURCE12} $RPM_BUILD_ROOT%{_unitdir}/httpd.service.d/php-fpm.conf install -Dm 644 %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/httpd.service.d/php-fpm.conf
install -Dm 644 %{SOURCE12} $RPM_BUILD_ROOT%{_unitdir}/nginx.service.d/php-fpm.conf install -Dm 644 %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/nginx.service.d/php-fpm.conf
# LogRotate # LogRotate
install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d install -m 755 -d $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
install -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/php-fpm install -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/php-fpm
@ -1462,8 +1465,8 @@ systemctl try-restart php-fpm.service >/dev/null 2>&1 || :
%config(noreplace) %{_sysconfdir}/nginx/conf.d/php-fpm.conf %config(noreplace) %{_sysconfdir}/nginx/conf.d/php-fpm.conf
%config(noreplace) %{_sysconfdir}/nginx/default.d/php.conf %config(noreplace) %{_sysconfdir}/nginx/default.d/php.conf
%{_unitdir}/php-fpm.service %{_unitdir}/php-fpm.service
%{_unitdir}/httpd.service.d/php-fpm.conf %config(noreplace) %{_sysconfdir}/systemd/system/httpd.service.d/php-fpm.conf
%{_unitdir}/nginx.service.d/php-fpm.conf %config(noreplace) %{_sysconfdir}/systemd/system/nginx.service.d/php-fpm.conf
%{_sbindir}/php-fpm %{_sbindir}/php-fpm
%dir %{_sysconfdir}/systemd/system/php-fpm.service.d %dir %{_sysconfdir}/systemd/system/php-fpm.service.d
%dir %{_sysconfdir}/php-fpm.d %dir %{_sysconfdir}/php-fpm.d
@ -1539,6 +1542,14 @@ systemctl try-restart php-fpm.service >/dev/null 2>&1 || :
%changelog %changelog
* Fri Nov 24 2023 Remi Collet <rcollet@redhat.com> - 8.2.13-1
- rebase to 8.2.13 RHEL-14699
- add %%__phpize and %%__phpconfig macros
- move httpd/nginx wants directives to config files in /etc
- php-fpm.conf: move include directive after [global] section
following upstream example, allowing overriding
- use SPDX license IDs
* Fri Jan 13 2023 Remi Collet <rcollet@redhat.com> - 8.1.14-1 * Fri Jan 13 2023 Remi Collet <rcollet@redhat.com> - 8.1.14-1
- rebase to 8.1.14 - rebase to 8.1.14

View File

@ -1,2 +1,2 @@
SHA512 (php-8.1.14.tar.xz) = 75a5dc3b0490cd8105d4f6c5446522b38953d78fe7b568798db749740f365c818b251d86aba72f5e555c5fe4e4a28e352a9510803bf3cdfe37d125824ae84d61 SHA512 (php-8.2.13.tar.xz) = 8031e33d148c5acbfbb3ed00d7a266813c8919db86ba260ba65e1837d6db8d0bd66d8ddef66884466dd3fe51ece7882b03f8d8db6ff4383f80a68b7beafc03af
SHA512 (php-8.1.14.tar.xz.asc) = 80322fce4f0557a506019fafd3e5d1f06021ae05a0855b594e6432a3b58d08f5856cf7bb33f2e75259a58795b8dc3323c101fe464c9c4facdff15d920f0bcde7 SHA512 (php-8.2.13.tar.xz.asc) = 0e4e665ba134222e342f2c5d2456ebf6f2d06e82a513c5d9ab02f720581d0eb4f537757d4fc3c86d941d9d0140546c1f37334feff6b4e8d6fd37878346c9e66c