diff options
| -rw-r--r-- | failed.txt | 7 | ||||
| -rw-r--r-- | php-7.0.7-curl.patch | 15 | ||||
| -rw-r--r-- | php-8.0.30-icu.patch | 35 | ||||
| -rw-r--r-- | php-8.0.30-proto.patch | 294 | ||||
| -rw-r--r-- | php80.spec | 20 | 
5 files changed, 344 insertions, 27 deletions
| @@ -8,12 +8,12 @@ $ grep -ar 'Tests failed' /var/lib/mock/*/build.log  /var/lib/mock/el9x80/build.log:Tests failed   :    3  /var/lib/mock/el10a80/build.log:Tests failed  :    3  /var/lib/mock/el10x80/build.log:Tests failed  :    3 -/var/lib/mock/fc39a80/build.log:Tests failed  :    2 -/var/lib/mock/fc39x80/build.log:Tests failed  :    2  /var/lib/mock/fc40a80/build.log:Tests failed  :    3  /var/lib/mock/fc40x80/build.log:Tests failed  :    3  /var/lib/mock/fc41a80/build.log:Tests failed  :    3  /var/lib/mock/fc41x80/build.log:Tests failed  :    3 +/var/lib/mock/fc42a80/build.log:Tests failed  :    3 +/var/lib/mock/fc42x80/build.log:Tests failed  :    3  el8: @@ -21,9 +21,8 @@ el8:  	3	openssl_open() tests [ext/openssl/tests/openssl_open_basic.phpt]  all:  	3	openssl_private_decrypt() tests [ext/openssl/tests/openssl_private_decrypt_basic.phpt] -fc39, fc40, fc41, el9, el10: +fc40, fc41, fc42, el9, el10:  	3	openssl_error_string() tests (OpenSSL >= 3.0) [ext/openssl/tests/openssl_error_string_basic_openssl3.phpt] -fc40, fc41, el9, el10:  	3	openssl_x509_parse() tests [ext/openssl/tests/openssl_x509_parse_basic.phpt] diff --git a/php-7.0.7-curl.patch b/php-7.0.7-curl.patch deleted file mode 100644 index 218db98..0000000 --- a/php-7.0.7-curl.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -up php-7.0.7RC1/ext/curl/interface.c.curltls php-7.0.7RC1/ext/curl/interface.c ---- php-7.0.7RC1/ext/curl/interface.c.curltls	2016-05-10 17:28:33.000000000 +0200 -+++ php-7.0.7RC1/ext/curl/interface.c	2016-05-12 07:43:00.900419946 +0200 -@@ -1257,7 +1257,11 @@ PHP_MINIT_FUNCTION(curl) -  - #if LIBCURL_VERSION_NUM >= 0x072200 /* Available since 7.34.0 */ - 	REGISTER_CURL_CONSTANT(CURLOPT_LOGIN_OPTIONS); -+#endif -  -+#if LIBCURL_VERSION_NUM >= 0x071300 /* Available since 7.19.0 (in upstream curl 7.34) -+    backported in RHEL-7 curl-7.29.0-16.el7 rhbz#1012136 -+    backported in RHEL-6 curl-7.19.7-43.el6 rhbz#1036789  */ - 	REGISTER_CURL_CONSTANT(CURL_SSLVERSION_TLSv1_0); - 	REGISTER_CURL_CONSTANT(CURL_SSLVERSION_TLSv1_1); - 	REGISTER_CURL_CONSTANT(CURL_SSLVERSION_TLSv1_2); diff --git a/php-8.0.30-icu.patch b/php-8.0.30-icu.patch new file mode 100644 index 0000000..38b7b0f --- /dev/null +++ b/php-8.0.30-icu.patch @@ -0,0 +1,35 @@ +From cc46a4e6b5a413bab3e264c1dcaaf7052f54fbc4 Mon Sep 17 00:00:00 2001 +From: David Carlier <devnexen@gmail.com> +Date: Sat, 17 Feb 2024 21:38:21 +0000 +Subject: [PATCH] ext/intl: level up c++ runtime std for icu 74 and onwards. + +to align with what is required to build icu 74 itself. + +Close GH-14002 +--- + NEWS               |  3 +++ + ext/intl/config.m4 | 11 ++++++++++- + 2 files changed, 13 insertions(+), 1 deletion(-) + +diff --git a/ext/intl/config.m4 b/ext/intl/config.m4 +index dd687bcd97de3..48f5147ca7bbf 100644 +--- a/ext/intl/config.m4 ++++ b/ext/intl/config.m4 +@@ -83,7 +83,16 @@ if test "$PHP_INTL" != "no"; then +     breakiterator/codepointiterator_methods.cpp" +  +   PHP_REQUIRE_CXX() +-  PHP_CXX_COMPILE_STDCXX(11, mandatory, PHP_INTL_STDCXX) ++ ++  AC_MSG_CHECKING([if intl requires -std=gnu++17]) ++  AS_IF([test "$PKG_CONFIG icu-uc --atleast-version=74"],[ ++    AC_MSG_RESULT([yes]) ++    PHP_CXX_COMPILE_STDCXX(17, mandatory, PHP_INTL_STDCXX) ++  ],[ ++    AC_MSG_RESULT([no]) ++    PHP_CXX_COMPILE_STDCXX(11, mandatory, PHP_INTL_STDCXX) ++  ]) ++ +   PHP_INTL_CXX_FLAGS="$INTL_COMMON_FLAGS $PHP_INTL_STDCXX $ICU_CXXFLAGS" +   case $host_alias in +   *cygwin*) PHP_INTL_CXX_FLAGS="$PHP_INTL_CXX_FLAGS -D_POSIX_C_SOURCE=200809L" diff --git a/php-8.0.30-proto.patch b/php-8.0.30-proto.patch new file mode 100644 index 0000000..a0c09d1 --- /dev/null +++ b/php-8.0.30-proto.patch @@ -0,0 +1,294 @@ +From f566cba0bb6bd53b1d44d5097e68201412b00f7a Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@php.net> +Date: Thu, 25 Nov 2021 13:16:26 +0100 +Subject: [PATCH] fix [-Wstrict-prototypes] build warnings in ext/gd + +--- + ext/gd/config.m4 |  2 -- + ext/gd/gd.c      | 58 ++++++++++++++++++++++++------------------------ + 2 files changed, 29 insertions(+), 31 deletions(-) + +diff --git a/ext/gd/gd.c b/ext/gd/gd.c +index 166e82b4321c9..ebd3c6c9c3d01 100644 +--- a/ext/gd/gd.c ++++ b/ext/gd/gd.c +@@ -142,16 +142,16 @@ static void php_image_filter_pixelate(IN + static void php_image_filter_scatter(INTERNAL_FUNCTION_PARAMETERS); +  + /* End Section filters declarations */ +-static gdImagePtr _php_image_create_from_string(zend_string *Data, char *tn, gdImagePtr (*ioctx_func_p)()); +-static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn, gdImagePtr (*func_p)(), gdImagePtr (*ioctx_func_p)()); +-static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn, void (*func_p)()); ++static gdImagePtr _php_image_create_from_string(zend_string *Data, char *tn, gdImagePtr (*ioctx_func_p)(gdIOCtxPtr)); ++static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn, gdImagePtr (*func_p)(FILE *), gdImagePtr (*ioctx_func_p)(gdIOCtxPtr)); ++static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn); + static gdIOCtx *create_stream_context_from_zval(zval *to_zval); + static gdIOCtx *create_stream_context(php_stream *stream, int close_stream); + static gdIOCtx *create_output_context(); + static int _php_image_type(char data[12]); +  + /* output streaming (formerly gd_ctx.c) */ +-static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn, void (*func_p)()); ++static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn); +  + /********************************************************* +  * +@@ -1464,7 +1464,7 @@ static int _php_image_type (char data[12 + /* }}} */ +  + /* {{{ _php_image_create_from_string */ +-gdImagePtr _php_image_create_from_string(zend_string *data, char *tn, gdImagePtr (*ioctx_func_p)()) ++gdImagePtr _php_image_create_from_string(zend_string *data, char *tn, gdImagePtr (*ioctx_func_p)(gdIOCtxPtr)) + { + 	gdImagePtr im; + 	gdIOCtx *io_ctx; +@@ -1569,7 +1569,7 @@ PHP_FUNCTION(imagecreatefromstring) + /* }}} */ +  + /* {{{ _php_image_create_from */ +-static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn, gdImagePtr (*func_p)(), gdImagePtr (*ioctx_func_p)()) ++static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn, gdImagePtr (*func_p)(FILE *), gdImagePtr (*ioctx_func_p)(gdIOCtxPtr)) + { + 	char *file; + 	size_t file_len; +@@ -1613,7 +1613,7 @@ static void _php_image_create_from(INTER + 		if (FAILURE == php_stream_cast(stream, PHP_STREAM_AS_STDIO, (void**)&fp, REPORT_ERRORS)) { + 			goto out_err; + 		} +-	} else if (ioctx_func_p) { ++	} else if (ioctx_func_p || image_type == PHP_GDIMG_TYPE_GD2PART) { + 		/* we can create an io context */ + 		gdIOCtx* io_ctx; + 		zend_string *buff; +@@ -1637,7 +1637,7 @@ static void _php_image_create_from(INTER + 		} +  + 		if (image_type == PHP_GDIMG_TYPE_GD2PART) { +-			im = (*ioctx_func_p)(io_ctx, srcx, srcy, width, height); ++			im = gdImageCreateFromGd2PartCtx(io_ctx, srcx, srcy, width, height); + 		} else { + 			im = (*ioctx_func_p)(io_ctx); + 		} +@@ -1655,7 +1655,7 @@ static void _php_image_create_from(INTER + 	if (!im && fp) { + 		switch (image_type) { + 			case PHP_GDIMG_TYPE_GD2PART: +-				im = (*func_p)(fp, srcx, srcy, width, height); ++				im = gdImageCreateFromGd2Part(fp, srcx, srcy, width, height); + 				break; + #ifdef HAVE_GD_XPM + 			case PHP_GDIMG_TYPE_XPM: +@@ -1738,7 +1738,7 @@ PHP_FUNCTION(imagecreatefromxbm) + /* {{{ Create a new image from XPM file or URL */ + PHP_FUNCTION(imagecreatefromxpm) + { +-	_php_image_create_from(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_XPM, "XPM", gdImageCreateFromXpm, NULL); ++	_php_image_create_from(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_XPM, "XPM", NULL, NULL); + } + /* }}} */ + #endif +@@ -1767,7 +1767,7 @@ PHP_FUNCTION(imagecreatefromgd2) + /* {{{ Create a new image from a given part of GD2 file or URL */ + PHP_FUNCTION(imagecreatefromgd2part) + { +-	_php_image_create_from(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GD2PART, "GD2", gdImageCreateFromGd2Part, gdImageCreateFromGd2PartCtx); ++	_php_image_create_from(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GD2PART, "GD2", NULL, NULL); + } + /* }}} */ +  +@@ -1790,7 +1790,7 @@ PHP_FUNCTION(imagecreatefromtga) + #endif +  + /* {{{ _php_image_output */ +-static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn, void (*func_p)()) ++static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn) + { + 	zval *imgind; + 	char *file = NULL; +@@ -1837,13 +1837,13 @@ static void _php_image_output(INTERNAL_F +  + 		switch (image_type) { + 			case PHP_GDIMG_TYPE_GD: +-				(*func_p)(im, fp); ++				gdImageGd(im, fp); + 				break; + 			case PHP_GDIMG_TYPE_GD2: + 				if (q == -1) { + 					q = 128; + 				} +-				(*func_p)(im, fp, q, t); ++				gdImageGd2(im, fp, q, t); + 				break; + 			EMPTY_SWITCH_DEFAULT_CASE() + 		} +@@ -1863,13 +1863,13 @@ static void _php_image_output(INTERNAL_F +  + 		switch (image_type) { + 			case PHP_GDIMG_TYPE_GD: +-				(*func_p)(im, tmp); ++				gdImageGd(im, tmp); + 				break; + 			case PHP_GDIMG_TYPE_GD2: + 				if (q == -1) { + 					q = 128; + 				} +-				(*func_p)(im, tmp, q, t); ++				gdImageGd2(im, tmp, q, t); + 				break; + 			EMPTY_SWITCH_DEFAULT_CASE() + 		} +@@ -1939,7 +1939,7 @@ PHP_FUNCTION(imagexbm) + /* {{{ Output GIF image to browser or file */ + PHP_FUNCTION(imagegif) + { +-	_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GIF, "GIF", gdImageGifCtx); ++	_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GIF, "GIF"); + } + /* }}} */ +  +@@ -1947,7 +1947,7 @@ PHP_FUNCTION(imagegif) + /* {{{ Output PNG image to browser or file */ + PHP_FUNCTION(imagepng) + { +-	_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_PNG, "PNG", gdImagePngCtxEx); ++	_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_PNG, "PNG"); + } + /* }}} */ + #endif /* HAVE_GD_PNG */ +@@ -1956,7 +1956,7 @@ PHP_FUNCTION(imagepng) + /* {{{ Output WEBP image to browser or file */ + PHP_FUNCTION(imagewebp) + { +-	_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_WEBP, "WEBP", gdImageWebpCtx); ++	_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_WEBP, "WEBP"); + } + /* }}} */ + #endif /* HAVE_GD_WEBP */ +@@ -1965,7 +1965,7 @@ PHP_FUNCTION(imagewebp) + /* {{{ Output JPEG image to browser or file */ + PHP_FUNCTION(imagejpeg) + { +-	_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_JPG, "JPEG", gdImageJpegCtx); ++	_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_JPG, "JPEG"); + } + /* }}} */ + #endif /* HAVE_GD_JPG */ +@@ -2017,14 +2017,14 @@ PHP_FUNCTION(imagewbmp) + /* {{{ Output GD image to browser or file */ + PHP_FUNCTION(imagegd) + { +-	_php_image_output(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GD, "GD", gdImageGd); ++	_php_image_output(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GD, "GD"); + } + /* }}} */ +  + /* {{{ Output GD2 image to browser or file */ + PHP_FUNCTION(imagegd2) + { +-	_php_image_output(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GD2, "GD2", gdImageGd2); ++	_php_image_output(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GD2, "GD2"); + } + /* }}} */ +  +@@ -4154,7 +4154,7 @@ static gdIOCtx *create_output_context() + 	return ctx; + } +  +-static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn, void (*func_p)()) ++static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn) + { + 	zval *imgind; + 	zend_long quality = -1, basefilter = -1; +@@ -4189,13 +4189,13 @@ static void _php_image_output_ctx(INTERN +  + 	switch (image_type) { + 		case PHP_GDIMG_TYPE_JPG: +-			(*func_p)(im, ctx, (int) quality); ++			gdImageJpegCtx(im, ctx, (int) quality); + 			break; + 		case PHP_GDIMG_TYPE_WEBP: + 			if (quality == -1) { + 				quality = 80; + 			} +-			(*func_p)(im, ctx, (int) quality); ++			gdImageWebpCtx(im, ctx, (int) quality); + 			break; + #ifdef HAVE_GD_PNG + 		case PHP_GDIMG_TYPE_PNG: +@@ -4207,7 +4207,7 @@ static void _php_image_output_ctx(INTERN + 			break; + #endif + 		case PHP_GDIMG_TYPE_GIF: +-			(*func_p)(im, ctx); ++			gdImageGifCtx(im, ctx); + 			break; + 		 EMPTY_SWITCH_DEFAULT_CASE() + 	} + +From b7356692f69f4ac0a07ea54e83debdd04b426dcb Mon Sep 17 00:00:00 2001 +From: George Peter Banyard <girgias@php.net> +Date: Wed, 12 May 2021 14:41:11 +0100 +Subject: [PATCH] Specify function pointer signature for scanf implementation + +Fix [-Wstrict-prototypes] warnings in standard/scanf.c +--- + ext/standard/scanf.c | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git a/ext/standard/scanf.c b/ext/standard/scanf.c +index f58b4195cc599..78ecc1642cf92 100644 +--- a/ext/standard/scanf.c ++++ b/ext/standard/scanf.c +@@ -106,6 +106,8 @@ typedef struct CharSet { + 	} *ranges; + } CharSet; +  ++typedef zend_long (*int_string_formater)(const char*, char**, int); ++ + /* +  * Declarations for functions used only in this file. +  */ +@@ -583,7 +585,7 @@ PHPAPI int php_sscanf_internal( char *string, char *format, + 	int  base = 0; + 	int  underflow = 0; + 	size_t width; +-	zend_long (*fn)() = NULL; ++	int_string_formater fn = NULL; + 	char *ch, sch; + 	int  flags; + 	char buf[64];	/* Temporary buffer to hold scanned number +@@ -740,29 +742,29 @@ PHPAPI int php_sscanf_internal( char *string, char *format, + 			case 'D': + 				op = 'i'; + 				base = 10; +-				fn = (zend_long (*)())ZEND_STRTOL_PTR; ++				fn = (int_string_formater)ZEND_STRTOL_PTR; + 				break; + 			case 'i': + 				op = 'i'; + 				base = 0; +-				fn = (zend_long (*)())ZEND_STRTOL_PTR; ++				fn = (int_string_formater)ZEND_STRTOL_PTR; + 				break; + 			case 'o': + 				op = 'i'; + 				base = 8; +-				fn = (zend_long (*)())ZEND_STRTOL_PTR; ++				fn = (int_string_formater)ZEND_STRTOL_PTR; + 				break; + 			case 'x': + 			case 'X': + 				op = 'i'; + 				base = 16; +-				fn = (zend_long (*)())ZEND_STRTOL_PTR; ++				fn = (int_string_formater)ZEND_STRTOL_PTR; + 				break; + 			case 'u': + 				op = 'i'; + 				base = 10; + 				flags |= SCAN_UNSIGNED; +-				fn = (zend_long (*)())ZEND_STRTOUL_PTR; ++				fn = (int_string_formater)ZEND_STRTOUL_PTR; + 				break; +  + 			case 'f': @@ -30,7 +30,7 @@  %global oraclelib 19.1  %global oracledir 19.25  %else -%global oraclever 23.6 +%global oraclever 23.7  %global oraclemax 24  %global oraclelib 23.1  %global oracledir 23 @@ -124,7 +124,7 @@  Summary: PHP scripting language for creating dynamic web sites  Name: php  Version: %{upver}%{?rcver:~%{rcver}} -Release: 11%{?dist} +Release: 12%{?dist}  # All files licensed under PHP version 3.01, except  # Zend is licensed under Zend  # TSRM is licensed under BSD @@ -166,8 +166,10 @@ Patch7: php-7.4.0-libdb.patch  Patch8: php-8.0.30-libxml212.patch  # get rid of deprecated functions from 8.1  Patch9: php-8.0.6-deprecated.patch -# RHEL backports -Patch10: php-7.0.7-curl.patch +# For recent ICU from 8.2 +Patch11: php-8.0.30-icu.patch +# Fix strict prototypes from 8.1 +Patch12: php-8.0.30-proto.patch  # Functional changes  # Use system nikic/php-parser @@ -1212,9 +1214,8 @@ in pure PHP.  %patch -P7 -p1 -b .libdb  %patch -P8 -p1 -b .libxml212  %patch -P9 -p1 -b .deprecated -%if 0%{?rhel} == 7 -%patch -P10 -p1 -b .curltls -%endif +%patch -P11 -p1 -b .icu74 +%patch -P12 -p1 -b .proto  %patch -P41 -p1 -b .syslib  %patch -P42 -p1 -b .systzdata @@ -1406,7 +1407,7 @@ LDFLAGS="-fsanitize=address"  export LDFLAGS  CFLAGS=$(echo $RPM_OPT_FLAGS -fno-strict-aliasing -Wno-pointer-sign  -fsanitize=address -ggdb | sed 's/-mstackrealign//')  %else -CFLAGS=$(echo $RPM_OPT_FLAGS -fno-strict-aliasing -Wno-pointer-sign | sed 's/-mstackrealign//') +CFLAGS=$(echo $RPM_OPT_FLAGS -fno-strict-aliasing -Wno-pointer-sign -Wno-incompatible-pointer-types | sed 's/-mstackrealign//')  %endif  export CFLAGS @@ -2254,6 +2255,9 @@ EOF  %changelog +* Thu Feb 13 2025 Remi Collet <remi@remirepo.net> - 8.0.30-12 +- backport fix for ICU 74+ +  * Wed Nov 27 2024 Remi Collet <remi@remirepo.net> - 8.0.30-11  - Fix Leak partial content of the heap through heap buffer over-read    CVE-2024-8929 | 
