php-7.4 legacy-ebuild added.
This commit is contained in:
		| @@ -1,10 +1 @@ | ||||
| AUX 20php5-envd 145 BLAKE2B 06476b8fc04d1e835496b417ac752f0834ddbe8584e4fddc6db0aa5e6845b82cdea0a1355c77125375dcdd0f0a3c19de5f3a8a64ee93950f96c437a16f971567 SHA512 581aa86479e3cd584ee1bc6dc6d4a135fe8ec343fe5519566d728d81f7018cfb23658bd0c0368951d380982c75adbb4f45acf3c146868aaf4e4ec8e9f2fad1ce | ||||
| AUX php-7.2.13-intl-use-icu-namespace.patch 11499 BLAKE2B 0dca597d5afd0309595499e3ff860e2d83183e570d02f202a1e2966d430606f09b8dc7427c4007e791914c8ee093a2e7cbf7372baa7896ac06d1912f2e707c09 SHA512 1332eb76feda2100685e319ae046512cf12b55a0d2be537c2172ccf035b547d851f84fb7941389882d7e3d674d91441e018c7b8f1e3f0d4cced05c314d5821fe | ||||
| AUX php-7.2.34-use-after-free-bug76047.patch 5542 BLAKE2B ccdabbe7a45f10f7a6666afabf27f2ab18ed011989447d950debe703e5f210d86a728c11bf883c74dc4ce88d634a8f10d1c9130a6e2dfb486ab92ebc1fb15e3c SHA512 8e2cc3dab0e3f3d7ba9b4a8cf4a16daa9cd908a5c1dc42ee1dfc44be82b4faffbb46b5bb0a88d15252edf4c95e05b4877c94aeaa05e9c511f3a49adafbc62c73 | ||||
| AUX php-fpm_at-simple.service 316 BLAKE2B 0ba10f3e3b004fbf14956e1e4f04f59b8a127e6717fe6b92c09b9f931033a11551c75fbbee9010f6b694c5a8758ca0eec9eed457ae304ba0dea8f2c256c3b8d4 SHA512 7367a3f8d3874f8e0c76f331ba613a0250db02f60ad9f87affaf448dcb5bc34bcecb91d88f415764a12b24b46ae3d1b738a002af9f77a4b707e916e83a0021fd | ||||
| AUX php-fpm_at.service 317 BLAKE2B f13fc38fcc0575a8517ee8d07b120efda37eabd2355061d0fdc303604c6b02ad42d7301180d86c977d5e585f5dd685343c592e37a6e0f44933707be79e0b77e0 SHA512 27982f9e2d958bfa75c89c7d3531e48d17fc388b1cdcbc8e09051b236b1184ee2baabdfcc567c19d9fcd067d4b3b86f171015616d8da42fccdabd89432d865e8 | ||||
| AUX php-freetype-2.9.1.patch 7667 BLAKE2B efc8f829bbad11b3e7b654d0882213ecb9aae766060d51f93446a6293a2f607339faba484c7b0b2f9318a5c5442da3c09e25aeda20dbc5e3258bf1009f8625b4 SHA512 0a06189f6fb3513cd2dcf9ddb590360475e2dd9a7aa8b13ab66c389c1ed40ce2361681f017cd3c6219f5b40a0a9d4978e57ca3ee4bacb7657db3285136fd2875 | ||||
| AUX php-iodbc-header-location.patch 481 BLAKE2B 9ea6a5d529dc7a8c78eeee800900372bc14309a05e352b2838da32e1384b61b507fdb623c9400094aa5b637eb1a87da92c72600eff79b18b8989ef90af56a0fa SHA512 86469f657d8807f005c28fd2149770c881add8f243fdfea087956c7987277597fe400a7af23f624f26da270356604717ed9cd04771154d7cf2ffe7237972372b | ||||
| DIST php-7.2.34.tar.xz 12309432 BLAKE2B 50522786d39296bc7411931c4f357d53c7a25da264192a6a6e7f7594f3dee108e22974e00a4bdc4d3af269ab63d07b28045ff6b4f4f0c79672ed059882647b93 SHA512 7ecc3de3b5db41ec4ff6a5ce6c7e77dc330753c6f3fd87db4d07d6bb763a0b047e83afeef2251b4c6a5d2ff53fd9f3d7e99d091ef2e2c6ab8f18db7447d8a97d | ||||
| EBUILD php-7.2.34-r2.ebuild 22872 BLAKE2B 041fd990f7c2e89ad83476bf66644321cad0c6132d6db5c88c07cbc44fc6246d012c2b0ea6553cfd886665bd8b34e300c986ed8c3de9b7e43bd4e0e0d9620525 SHA512 1b546d9911fc81bf306af751b0571efee65063388fe9d879da360bab61231bb321fb69c3c494c8bda5ccc2cc871308fd17e4a413e7654293640b00fdecb0a4ac | ||||
| MISC metadata.xml 3268 BLAKE2B 4abc96d858186ab5bc6f0797fb3f1cf7f5aaa0b07a4652dcc16aa65e197bd73803f6bac717084c0c9a194e7da5b6632523105205011a0d39221aabc16ade8e2e SHA512 1413edb5293cb93ad8f94376f11b9952ca6369b667ae23baed56d9cbaa68cb9cfa5a80da7dd7184ba84f08d5a4054068da1c10daca81d1730e7b6edebba8b29f | ||||
| DIST php-7.4.33.tar.xz 10420144 BLAKE2B e75817e79c698628c873c90afb3b5677480d03ecf07e8f2e26a062bc5b91affc6079e792e864f28cf12d45f86e5d01ede289ecdcefc06477986d193d22c982ef SHA512 499b63b99e5d8e8082ff89d3a91b4cb9a593ea7553b96e48863414c13d2e50275904ed29070e2232e529ee91160f505e6060a4d129cb5bf098aa5b6ea0928d3d | ||||
|   | ||||
							
								
								
									
										53
									
								
								dev-lang/php/files/bug81656-gcc-11.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								dev-lang/php/files/bug81656-gcc-11.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| From bb00a649e0c1ac57718cd9971e7e6f933cb2dadd Mon Sep 17 00:00:00 2001 | ||||
| From: Michael Wallner <mike@php.net> | ||||
| Date: Thu, 25 Nov 2021 07:43:14 +0100 | ||||
| Subject: [PATCH] fix #81656: GCC-11 silently ignores -R | ||||
|  | ||||
| --- | ||||
|  build/php.m4 | 28 ++++++++++++++-------------- | ||||
|  1 file changed, 14 insertions(+), 14 deletions(-) | ||||
|  | ||||
| diff --git a/build/php.m4 b/build/php.m4 | ||||
| index 3af2b8b72d47..4697c5df9274 100644 | ||||
| --- a/build/php.m4 | ||||
| +++ b/build/php.m4 | ||||
| @@ -279,25 +279,25 @@ dnl | ||||
|  dnl Checks for -R, etc. switch. | ||||
|  dnl | ||||
|  AC_DEFUN([PHP_RUNPATH_SWITCH],[ | ||||
| -AC_MSG_CHECKING([if compiler supports -R]) | ||||
| -AC_CACHE_VAL(php_cv_cc_dashr,[ | ||||
| +AC_MSG_CHECKING([if compiler supports -Wl,-rpath,]) | ||||
| +AC_CACHE_VAL(php_cv_cc_rpath,[ | ||||
|    SAVE_LIBS=$LIBS | ||||
| -  LIBS="-R /usr/$PHP_LIBDIR $LIBS" | ||||
| -  AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],[php_cv_cc_dashr=yes],[php_cv_cc_dashr=no]) | ||||
| +  LIBS="-Wl,-rpath,/usr/$PHP_LIBDIR $LIBS" | ||||
| +  AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],[php_cv_cc_rpath=yes],[php_cv_cc_rpath=no]) | ||||
|    LIBS=$SAVE_LIBS]) | ||||
| -AC_MSG_RESULT([$php_cv_cc_dashr]) | ||||
| -if test $php_cv_cc_dashr = "yes"; then | ||||
| -  ld_runpath_switch=-R | ||||
| +AC_MSG_RESULT([$php_cv_cc_rpath]) | ||||
| +if test $php_cv_cc_rpath = "yes"; then | ||||
| +  ld_runpath_switch=-Wl,-rpath, | ||||
|  else | ||||
| -  AC_MSG_CHECKING([if compiler supports -Wl,-rpath,]) | ||||
| -  AC_CACHE_VAL(php_cv_cc_rpath,[ | ||||
| +  AC_MSG_CHECKING([if compiler supports -R]) | ||||
| +  AC_CACHE_VAL(php_cv_cc_dashr,[ | ||||
|      SAVE_LIBS=$LIBS | ||||
| -    LIBS="-Wl,-rpath,/usr/$PHP_LIBDIR $LIBS" | ||||
| -    AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],[php_cv_cc_rpath=yes],[php_cv_cc_rpath=no]) | ||||
| +    LIBS="-R /usr/$PHP_LIBDIR $LIBS" | ||||
| +    AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],[php_cv_cc_dashr=yes],[php_cv_cc_dashr=no]) | ||||
|      LIBS=$SAVE_LIBS]) | ||||
| -  AC_MSG_RESULT([$php_cv_cc_rpath]) | ||||
| -  if test $php_cv_cc_rpath = "yes"; then | ||||
| -    ld_runpath_switch=-Wl,-rpath, | ||||
| +  AC_MSG_RESULT([$php_cv_cc_dashr]) | ||||
| +  if test $php_cv_cc_dashr = "yes"; then | ||||
| +    ld_runpath_switch=-R | ||||
|    else | ||||
|      dnl Something innocuous. | ||||
|      ld_runpath_switch=-L | ||||
| @@ -1,379 +0,0 @@ | ||||
| Based on the following upstream commits: | ||||
|  | ||||
| https://github.com/php/php-src/commit/8d35a423838eb462cd39ee535c5d003073cc5f22 | ||||
| https://github.com/php/php-src/commit/d8200e48857aeaf09f7127751efc5632ef7660a7 | ||||
| https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52 | ||||
|  | ||||
| --- a/ext/intl/breakiterator/breakiterator_class.cpp | ||||
| +++ b/ext/intl/breakiterator/breakiterator_class.cpp | ||||
| @@ -38,6 +38,7 @@ extern "C" { | ||||
|  } | ||||
|   | ||||
|  using PHP::CodePointBreakIterator; | ||||
| +using icu::RuleBasedBreakIterator; | ||||
|   | ||||
|  /* {{{ Global variables */ | ||||
|  zend_class_entry *BreakIterator_ce_ptr; | ||||
| --- a/ext/intl/breakiterator/breakiterator_class.h | ||||
| +++ b/ext/intl/breakiterator/breakiterator_class.h | ||||
| @@ -26,6 +26,8 @@ | ||||
|   | ||||
|  #ifndef USE_BREAKITERATOR_POINTER | ||||
|  typedef void BreakIterator; | ||||
| +#else | ||||
| +using icu::BreakIterator; | ||||
|  #endif | ||||
|   | ||||
|  typedef struct { | ||||
| --- a/ext/intl/breakiterator/breakiterator_methods.cpp | ||||
| +++ b/ext/intl/breakiterator/breakiterator_methods.cpp | ||||
| @@ -32,6 +32,8 @@ extern "C" { | ||||
|  } | ||||
|   | ||||
|  using PHP::CodePointBreakIterator; | ||||
| +using icu::BreakIterator; | ||||
| +using icu::Locale; | ||||
|   | ||||
|  U_CFUNC PHP_METHOD(BreakIterator, __construct) | ||||
|  { | ||||
| --- a/ext/intl/breakiterator/codepointiterator_internal.cpp | ||||
| +++ b/ext/intl/breakiterator/codepointiterator_internal.cpp | ||||
| @@ -33,6 +33,8 @@ typedef union { | ||||
|   | ||||
|  using namespace PHP; | ||||
|   | ||||
| +using icu::UCharCharacterIterator; | ||||
| + | ||||
|  UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CodePointBreakIterator); | ||||
|   | ||||
|  CodePointBreakIterator::CodePointBreakIterator() | ||||
| --- a/ext/intl/breakiterator/codepointiterator_internal.h | ||||
| +++ b/ext/intl/breakiterator/codepointiterator_internal.h | ||||
| @@ -18,8 +18,11 @@ | ||||
|  #define CODEPOINTITERATOR_INTERNAL_H | ||||
|   | ||||
|  #include <unicode/brkiter.h> | ||||
| +#include <unicode/unistr.h> | ||||
|   | ||||
| -using U_ICU_NAMESPACE::BreakIterator; | ||||
| +using icu::BreakIterator; | ||||
| +using icu::CharacterIterator; | ||||
| +using icu::UnicodeString; | ||||
|   | ||||
|  namespace PHP { | ||||
|   | ||||
| --- a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp | ||||
| +++ b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp | ||||
| @@ -26,6 +26,9 @@ extern "C" { | ||||
|  #include "../intl_convertcpp.h" | ||||
|  #include "../intl_common.h" | ||||
|   | ||||
| +using icu::RuleBasedBreakIterator; | ||||
| +using icu::Locale; | ||||
| + | ||||
|  static inline RuleBasedBreakIterator *fetch_rbbi(BreakIterator_object *bio) { | ||||
|  	return (RuleBasedBreakIterator*)bio->biter; | ||||
|  } | ||||
| --- a/ext/intl/calendar/calendar_class.cpp | ||||
| +++ b/ext/intl/calendar/calendar_class.cpp | ||||
| @@ -34,6 +34,9 @@ extern "C" { | ||||
|  #include <assert.h> | ||||
|  } | ||||
|   | ||||
| +using icu::GregorianCalendar; | ||||
| +using icu::Locale; | ||||
| + | ||||
|  /* {{{ Global variables */ | ||||
|  zend_class_entry *Calendar_ce_ptr; | ||||
|  zend_class_entry *GregorianCalendar_ce_ptr; | ||||
| --- a/ext/intl/calendar/calendar_class.h | ||||
| +++ b/ext/intl/calendar/calendar_class.h | ||||
| @@ -26,6 +26,8 @@ | ||||
|   | ||||
|  #ifndef USE_CALENDAR_POINTER | ||||
|  typedef void Calendar; | ||||
| +#else | ||||
| +using icu::Calendar; | ||||
|  #endif | ||||
|   | ||||
|  typedef struct { | ||||
| --- a/ext/intl/calendar/calendar_methods.cpp | ||||
| +++ b/ext/intl/calendar/calendar_methods.cpp | ||||
| @@ -40,6 +40,8 @@ extern "C" { | ||||
|  } | ||||
|  #include "../common/common_enum.h" | ||||
|   | ||||
| +using icu::Locale; | ||||
| + | ||||
|  U_CFUNC PHP_METHOD(IntlCalendar, __construct) | ||||
|  { | ||||
|  	zend_throw_exception( NULL, | ||||
| --- a/ext/intl/calendar/gregoriancalendar_methods.cpp | ||||
| +++ b/ext/intl/calendar/gregoriancalendar_methods.cpp | ||||
| @@ -23,6 +23,8 @@ | ||||
|  #include <unicode/locid.h> | ||||
|  #include <unicode/calendar.h> | ||||
|  #include <unicode/gregocal.h> | ||||
| +#include <unicode/ustring.h> | ||||
| + | ||||
|  extern "C" { | ||||
|  #include "../php_intl.h" | ||||
|  #include "../intl_common.h" | ||||
| @@ -34,6 +36,11 @@ extern "C" { | ||||
|  #include "zend_exceptions.h" | ||||
|  } | ||||
|   | ||||
| +using icu::GregorianCalendar; | ||||
| +using icu::Locale; | ||||
| +using icu::UnicodeString; | ||||
| +using icu::StringPiece; | ||||
| + | ||||
|  static inline GregorianCalendar *fetch_greg(Calendar_object *co) { | ||||
|  	return (GregorianCalendar*)co->ucal; | ||||
|  } | ||||
| --- a/ext/intl/common/common_date.cpp | ||||
| +++ b/ext/intl/common/common_date.cpp | ||||
| @@ -27,6 +27,9 @@ extern "C" { | ||||
|   | ||||
|  #include "zend_portability.h" | ||||
|   | ||||
| +using icu::TimeZone; | ||||
| +using icu::UnicodeString; | ||||
| + | ||||
|  /* {{{ timezone_convert_datetimezone | ||||
|   *      The timezone in DateTime and DateTimeZone is not unified. */ | ||||
|  U_CFUNC TimeZone *timezone_convert_datetimezone(int type, | ||||
| --- a/ext/intl/common/common_date.h | ||||
| +++ b/ext/intl/common/common_date.h | ||||
| @@ -28,6 +28,8 @@ U_CDECL_END | ||||
|   | ||||
|  #include <unicode/timezone.h> | ||||
|   | ||||
| +using icu::TimeZone; | ||||
| + | ||||
|  U_CFUNC TimeZone *timezone_convert_datetimezone(int type, void *object, int is_datetime, intl_error *outside_error, const char *func); | ||||
|  U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz, | ||||
|  		intl_error *err, const char *func); | ||||
| --- a/ext/intl/common/common_enum.h | ||||
| +++ b/ext/intl/common/common_enum.h | ||||
| @@ -75,6 +75,7 @@ U_CFUNC zval *zoi_with_current_get_current_data(zend_object_iterator *iter); | ||||
|  U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter); | ||||
|   | ||||
|  #ifdef __cplusplus | ||||
| +using icu::StringEnumeration; | ||||
|  U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object); | ||||
|  #endif | ||||
|   | ||||
| --- a/ext/intl/converter/converter.c | ||||
| +++ b/ext/intl/converter/converter.c | ||||
| @@ -18,6 +18,8 @@ | ||||
|  #include "zend_exceptions.h" | ||||
|   | ||||
|  #include <unicode/utypes.h> | ||||
| +#include <unicode/utf8.h> | ||||
| +#include <unicode/utf16.h> | ||||
|  #include <unicode/ucnv.h> | ||||
|  #include <unicode/ustring.h> | ||||
|   | ||||
| --- a/ext/intl/dateformat/dateformat_format_object.cpp | ||||
| +++ b/ext/intl/dateformat/dateformat_format_object.cpp | ||||
| @@ -33,6 +33,12 @@ extern "C" { | ||||
|  #include "../common/common_date.h" | ||||
|  } | ||||
|   | ||||
| +using icu::Locale; | ||||
| +using icu::DateFormat; | ||||
| +using icu::GregorianCalendar; | ||||
| +using icu::StringPiece; | ||||
| +using icu::SimpleDateFormat; | ||||
| + | ||||
|  static const DateFormat::EStyle valid_styles[] = { | ||||
|  		DateFormat::kNone, | ||||
|  		DateFormat::kFull, | ||||
| --- a/ext/intl/dateformat/dateformat_helpers.cpp | ||||
| +++ b/ext/intl/dateformat/dateformat_helpers.cpp | ||||
| @@ -28,6 +28,8 @@ extern "C" { | ||||
|  #include "../calendar/calendar_class.h" | ||||
|  } | ||||
|   | ||||
| +using icu::GregorianCalendar; | ||||
| + | ||||
|  int datefmt_process_calendar_arg(zval* calendar_zv, | ||||
|  								 Locale const& locale, | ||||
|  								 const char *func_name, | ||||
| --- a/ext/intl/dateformat/dateformat_helpers.h | ||||
| +++ b/ext/intl/dateformat/dateformat_helpers.h | ||||
| @@ -22,11 +22,16 @@ | ||||
|  #endif | ||||
|   | ||||
|  #include <unicode/calendar.h> | ||||
| +#include <unicode/datefmt.h> | ||||
|   | ||||
|  extern "C" { | ||||
|  #include "../php_intl.h" | ||||
|  } | ||||
|   | ||||
| +using icu::Locale; | ||||
| +using icu::Calendar; | ||||
| +using icu::DateFormat; | ||||
| + | ||||
|  int datefmt_process_calendar_arg(zval* calendar_zv, | ||||
|  								 Locale const& locale, | ||||
|  								 const char *func_name, | ||||
| --- a/ext/intl/grapheme/grapheme_string.c | ||||
| +++ b/ext/intl/grapheme/grapheme_string.c | ||||
| @@ -24,6 +24,7 @@ | ||||
|  #include "grapheme_util.h" | ||||
|   | ||||
|  #include <unicode/utypes.h> | ||||
| +#include <unicode/utf8.h> | ||||
|  #include <unicode/ucol.h> | ||||
|  #include <unicode/ustring.h> | ||||
|  #include <unicode/ubrk.h> | ||||
| @@ -834,10 +835,10 @@ PHP_FUNCTION(grapheme_extract) | ||||
|  	pstr = str + start; | ||||
|   | ||||
|  	/* just in case pstr points in the middle of a character, move forward to the start of the next char */ | ||||
| -	if ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) { | ||||
| -		char *str_end = str + str_len; | ||||
| +	if ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) { | ||||
| +		unsigned char *str_end = str + str_len; | ||||
|   | ||||
| -		while ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) { | ||||
| +		while ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) { | ||||
|  			pstr++; | ||||
|  			if ( pstr >= str_end ) { | ||||
|  				intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, | ||||
| --- a/ext/intl/intl_convertcpp.h | ||||
| +++ b/ext/intl/intl_convertcpp.h | ||||
| @@ -26,6 +26,8 @@ | ||||
|  #include <unicode/unistr.h> | ||||
|  #include <zend_types.h> | ||||
|   | ||||
| +using icu::UnicodeString; | ||||
| + | ||||
|  int intl_stringFromChar(UnicodeString &ret, char *str, size_t str_len, UErrorCode *status); | ||||
|   | ||||
|  zend_string* intl_charFromString(const UnicodeString &from, UErrorCode *status); | ||||
| --- a/ext/intl/msgformat/msgformat_helpers.cpp | ||||
| +++ b/ext/intl/msgformat/msgformat_helpers.cpp | ||||
| @@ -78,6 +78,16 @@ MessageFormatAdapter::getMessagePattern(MessageFormat* m) { | ||||
|  #endif | ||||
|  U_NAMESPACE_END | ||||
|   | ||||
| +using icu::Formattable; | ||||
| +using icu::Format; | ||||
| +using icu::DateFormat; | ||||
| +using icu::MessageFormat; | ||||
| +#ifdef HAS_MESSAGE_PATTERN | ||||
| +using icu::MessagePattern; | ||||
| +#endif | ||||
| +using icu::MessageFormatAdapter; | ||||
| +using icu::FieldPosition; | ||||
| + | ||||
|  U_CFUNC int32_t umsg_format_arg_count(UMessageFormat *fmt) | ||||
|  { | ||||
|  	int32_t fmt_count = 0; | ||||
| @@ -229,15 +239,16 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo, | ||||
|  					UnicodeString typeString = mp.getSubstring(type_part); | ||||
|  					/* This is all based on the rules in the docs for MessageFormat | ||||
|  					 * @see http://icu-project.org/apiref/icu4c/classMessageFormat.html */ | ||||
| -					if (typeString == "number") { | ||||
| +#define ASCII_LITERAL(s) UNICODE_STRING(s, sizeof(s)-1) | ||||
| +					if (typeString == ASCII_LITERAL("number")) { | ||||
|  						MessagePattern::Part style_part = mp.getPart(i + 1); /* Not advancing i */ | ||||
|  						if (style_part.getType() == UMSGPAT_PART_TYPE_ARG_STYLE) { | ||||
|  							UnicodeString styleString = mp.getSubstring(style_part); | ||||
| -							if (styleString == "integer") { | ||||
| +							if (styleString == ASCII_LITERAL("integer")) { | ||||
|  								type = Formattable::kInt64; | ||||
| -							} else if (styleString == "currency") { | ||||
| +							} else if (styleString == ASCII_LITERAL("currency")) { | ||||
|  								type = Formattable::kDouble; | ||||
| -							} else if (styleString == "percent") { | ||||
| +							} else if (styleString == ASCII_LITERAL("percent")) { | ||||
|  								type = Formattable::kDouble; | ||||
|  							} else { /* some style invalid/unknown to us */ | ||||
|  								type = Formattable::kDouble; | ||||
| @@ -245,12 +256,13 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo, | ||||
|  						} else { // if missing style, part, make it a double | ||||
|  							type = Formattable::kDouble; | ||||
|  						} | ||||
| -					} else if ((typeString == "date") || (typeString == "time")) { | ||||
| +					} else if ((typeString == ASCII_LITERAL("date")) || (typeString == ASCII_LITERAL("time"))) { | ||||
|  						type = Formattable::kDate; | ||||
| -					} else if ((typeString == "spellout") || (typeString == "ordinal") | ||||
| -							|| (typeString == "duration")) { | ||||
| +					} else if ((typeString == ASCII_LITERAL("spellout")) || (typeString == ASCII_LITERAL("ordinal")) | ||||
| +							|| (typeString == ASCII_LITERAL("duration"))) { | ||||
|  						type = Formattable::kDouble; | ||||
|  					} | ||||
| +#undef ASCII_LITERAL | ||||
|  				} else { | ||||
|  					/* If there's no UMSGPAT_PART_TYPE_ARG_TYPE right after a | ||||
|  					 * UMSGPAT_ARG_TYPE_SIMPLE argument, then the pattern | ||||
| --- a/ext/intl/normalizer/normalizer_normalize.c | ||||
| +++ b/ext/intl/normalizer/normalizer_normalize.c | ||||
| @@ -24,6 +24,7 @@ | ||||
|  #include "normalizer_class.h" | ||||
|  #include "normalizer_normalize.h" | ||||
|  #include "intl_convert.h" | ||||
| +#include <unicode/utf8.h> | ||||
|   | ||||
|  /* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] ) | ||||
|   * Normalize a string. }}} */ | ||||
| --- a/ext/intl/timezone/timezone_class.cpp | ||||
| +++ b/ext/intl/timezone/timezone_class.cpp | ||||
| @@ -37,6 +37,8 @@ extern "C" { | ||||
|  #include <ext/date/php_date.h> | ||||
|  } | ||||
|   | ||||
| +using icu::Calendar; | ||||
| + | ||||
|  /* {{{ Global variables */ | ||||
|  U_CDECL_BEGIN | ||||
|  zend_class_entry *TimeZone_ce_ptr = NULL; | ||||
| --- a/ext/intl/timezone/timezone_class.h | ||||
| +++ b/ext/intl/timezone/timezone_class.h | ||||
| @@ -29,6 +29,8 @@ | ||||
|   | ||||
|  #ifndef USE_TIMEZONE_POINTER | ||||
|  typedef void TimeZone; | ||||
| +#else | ||||
| +using icu::TimeZone; | ||||
|  #endif | ||||
|   | ||||
|  typedef struct { | ||||
| --- a/ext/intl/timezone/timezone_methods.cpp | ||||
| +++ b/ext/intl/timezone/timezone_methods.cpp | ||||
| @@ -23,6 +23,7 @@ | ||||
|  #include <unicode/locid.h> | ||||
|  #include <unicode/timezone.h> | ||||
|  #include <unicode/ustring.h> | ||||
| +#include <unicode/calendar.h> | ||||
|  #include "intl_convertcpp.h" | ||||
|   | ||||
|  #include "../common/common_date.h" | ||||
| @@ -37,6 +38,9 @@ extern "C" { | ||||
|  } | ||||
|  #include "common/common_enum.h" | ||||
|   | ||||
| +using icu::Locale; | ||||
| +using icu::Calendar; | ||||
| + | ||||
|  U_CFUNC PHP_METHOD(IntlTimeZone, __construct) | ||||
|  { | ||||
|  	zend_throw_exception( NULL, | ||||
| --- a/ext/intl/uchar/uchar.c | ||||
| +++ b/ext/intl/uchar/uchar.c | ||||
| @@ -3,6 +3,7 @@ | ||||
|  #include "intl_convert.h" | ||||
|   | ||||
|  #include <unicode/uchar.h> | ||||
| +#include <unicode/utf8.h> | ||||
|   | ||||
|  #define IC_METHOD(mname) PHP_METHOD(IntlChar, mname) | ||||
|   | ||||
| --  | ||||
| 2.19.2 | ||||
|  | ||||
| @@ -1,174 +0,0 @@ | ||||
| Backport of https://git.php.net/?p=php-src.git;a=commit;h=ef1e4891b47949c8dc0f9482eef9454a0ecdfa1d | ||||
|  | ||||
| --- a/Zend/tests/bug52361.phpt | ||||
| +++ b/Zend/tests/bug52361.phpt | ||||
| @@ -25,9 +25,8 @@ try { | ||||
|  --EXPECTF-- | ||||
|  1. Exception: aaa in %sbug52361.php:5 | ||||
|  Stack trace: | ||||
| -#0 %sbug52361.php(13): aaa->__destruct() | ||||
| -#1 %sbug52361.php(16): bbb() | ||||
| -#2 {main} | ||||
| +#0 %sbug52361.php(16): aaa->__destruct() | ||||
| +#1 {main} | ||||
|  2. Exception: bbb in %sbug52361.php:13 | ||||
|  Stack trace: | ||||
|  #0 %sbug52361.php(16): bbb() | ||||
| --- /dev/null | ||||
| +++ b/Zend/tests/bug76047.phpt | ||||
| @@ -0,0 +1,68 @@ | ||||
| +--TEST-- | ||||
| +Bug #76047: Use-after-free when accessing already destructed backtrace arguments | ||||
| +--FILE-- | ||||
| +<?php | ||||
| + | ||||
| +class Vuln { | ||||
| +    public $a; | ||||
| +    public function __destruct() { | ||||
| +        unset($this->a); | ||||
| +        $backtrace = (new Exception)->getTrace(); | ||||
| +        var_dump($backtrace); | ||||
| +    } | ||||
| +} | ||||
| + | ||||
| +function test($arg) { | ||||
| +    $arg = str_shuffle(str_repeat('A', 79)); | ||||
| +    $vuln = new Vuln(); | ||||
| +    $vuln->a = $arg; | ||||
| +} | ||||
| + | ||||
| +function test2($arg) { | ||||
| +    $$arg = 1; // Trigger symbol table | ||||
| +    $arg = str_shuffle(str_repeat('A', 79)); | ||||
| +    $vuln = new Vuln(); | ||||
| +    $vuln->a = $arg; | ||||
| +} | ||||
| + | ||||
| +test('x'); | ||||
| +test2('x'); | ||||
| + | ||||
| +?> | ||||
| +--EXPECTF-- | ||||
| +array(1) { | ||||
| +  [0]=> | ||||
| +  array(6) { | ||||
| +    ["file"]=> | ||||
| +    string(%d) "%s" | ||||
| +    ["line"]=> | ||||
| +    int(%d) | ||||
| +    ["function"]=> | ||||
| +    string(10) "__destruct" | ||||
| +    ["class"]=> | ||||
| +    string(4) "Vuln" | ||||
| +    ["type"]=> | ||||
| +    string(2) "->" | ||||
| +    ["args"]=> | ||||
| +    array(0) { | ||||
| +    } | ||||
| +  } | ||||
| +} | ||||
| +array(1) { | ||||
| +  [0]=> | ||||
| +  array(6) { | ||||
| +    ["file"]=> | ||||
| +    string(%d) "%s" | ||||
| +    ["line"]=> | ||||
| +    int(%d) | ||||
| +    ["function"]=> | ||||
| +    string(10) "__destruct" | ||||
| +    ["class"]=> | ||||
| +    string(4) "Vuln" | ||||
| +    ["type"]=> | ||||
| +    string(2) "->" | ||||
| +    ["args"]=> | ||||
| +    array(0) { | ||||
| +    } | ||||
| +  } | ||||
| +} | ||||
| --- a/Zend/zend_vm_def.h | ||||
| +++ b/Zend/zend_vm_def.h | ||||
| @@ -2366,9 +2366,9 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) | ||||
|  	uint32_t call_info = EX_CALL_INFO(); | ||||
|   | ||||
|  	if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) { | ||||
| +		EG(current_execute_data) = EX(prev_execute_data); | ||||
|  		i_free_compiled_variables(execute_data); | ||||
|   | ||||
| -		EG(current_execute_data) = EX(prev_execute_data); | ||||
|  		if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { | ||||
|  			zend_object *object = Z_OBJ(execute_data->This); | ||||
|  #if 0 | ||||
| @@ -2394,12 +2394,12 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) | ||||
|  		LOAD_NEXT_OPLINE(); | ||||
|  		ZEND_VM_LEAVE(); | ||||
|  	} else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) { | ||||
| +		EG(current_execute_data) = EX(prev_execute_data); | ||||
|  		i_free_compiled_variables(execute_data); | ||||
|   | ||||
|  		if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { | ||||
|  			zend_clean_and_cache_symbol_table(EX(symbol_table)); | ||||
|  		} | ||||
| -		EG(current_execute_data) = EX(prev_execute_data); | ||||
|   | ||||
|  		/* Free extra args before releasing the closure, | ||||
|  		 * as that may free the op_array. */ | ||||
| @@ -2449,6 +2449,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) | ||||
|  		ZEND_VM_LEAVE(); | ||||
|  	} else { | ||||
|  		if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) { | ||||
| +			EG(current_execute_data) = EX(prev_execute_data); | ||||
|  			i_free_compiled_variables(execute_data); | ||||
|  			if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) { | ||||
|  				if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { | ||||
| @@ -2456,7 +2457,6 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY) | ||||
|  				} | ||||
|  				zend_vm_stack_free_extra_args_ex(call_info, execute_data); | ||||
|  			} | ||||
| -			EG(current_execute_data) = EX(prev_execute_data); | ||||
|  			if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { | ||||
|  				OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype); | ||||
|  			} | ||||
| --- a/Zend/zend_vm_execute.h | ||||
| +++ b/Zend/zend_vm_execute.h | ||||
| @@ -434,9 +434,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_ | ||||
|  	uint32_t call_info = EX_CALL_INFO(); | ||||
|   | ||||
|  	if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) { | ||||
| +		EG(current_execute_data) = EX(prev_execute_data); | ||||
|  		i_free_compiled_variables(execute_data); | ||||
|   | ||||
| -		EG(current_execute_data) = EX(prev_execute_data); | ||||
|  		if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) { | ||||
|  			zend_object *object = Z_OBJ(execute_data->This); | ||||
|  #if 0 | ||||
| @@ -462,12 +462,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_ | ||||
|  		LOAD_NEXT_OPLINE(); | ||||
|  		ZEND_VM_LEAVE(); | ||||
|  	} else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) { | ||||
| +		EG(current_execute_data) = EX(prev_execute_data); | ||||
|  		i_free_compiled_variables(execute_data); | ||||
|   | ||||
|  		if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { | ||||
|  			zend_clean_and_cache_symbol_table(EX(symbol_table)); | ||||
|  		} | ||||
| -		EG(current_execute_data) = EX(prev_execute_data); | ||||
|   | ||||
|  		/* Free extra args before releasing the closure, | ||||
|  		 * as that may free the op_array. */ | ||||
| @@ -517,6 +517,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_ | ||||
|  		ZEND_VM_LEAVE(); | ||||
|  	} else { | ||||
|  		if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) { | ||||
| +			EG(current_execute_data) = EX(prev_execute_data); | ||||
|  			i_free_compiled_variables(execute_data); | ||||
|  			if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) { | ||||
|  				if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) { | ||||
| @@ -524,7 +525,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_ | ||||
|  				} | ||||
|  				zend_vm_stack_free_extra_args_ex(call_info, execute_data); | ||||
|  			} | ||||
| -			EG(current_execute_data) = EX(prev_execute_data); | ||||
|  			if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) { | ||||
|  				OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype); | ||||
|  			} | ||||
|   | ||||
							
								
								
									
										11
									
								
								dev-lang/php/files/php-7.4-openssl.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								dev-lang/php/files/php-7.4-openssl.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| --- a/ext/openssl/openssl.c		2023-10-03 14:25:32.113984176 +0200 | ||||
| +++ b/ext/openssl/openssl.c		2023-10-03 14:26:00.597980289 +0200 | ||||
| @@ -1517,7 +1517,7 @@ | ||||
|  	REGISTER_LONG_CONSTANT("PKCS7_NOSIGS", PKCS7_NOSIGS, CONST_CS|CONST_PERSISTENT); | ||||
|   | ||||
|  	REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_PADDING", RSA_PKCS1_PADDING, CONST_CS|CONST_PERSISTENT); | ||||
| -	REGISTER_LONG_CONSTANT("OPENSSL_SSLV23_PADDING", RSA_SSLV23_PADDING, CONST_CS|CONST_PERSISTENT); | ||||
| +//	REGISTER_LONG_CONSTANT("OPENSSL_SSLV23_PADDING", RSA_SSLV23_PADDING, CONST_CS|CONST_PERSISTENT); | ||||
|  	REGISTER_LONG_CONSTANT("OPENSSL_NO_PADDING", RSA_NO_PADDING, CONST_CS|CONST_PERSISTENT); | ||||
|  	REGISTER_LONG_CONSTANT("OPENSSL_PKCS1_OAEP_PADDING", RSA_PKCS1_OAEP_PADDING, CONST_CS|CONST_PERSISTENT); | ||||
|   | ||||
							
								
								
									
										50
									
								
								dev-lang/php/files/php-7.4.33-CVE-2022-31631.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								dev-lang/php/files/php-7.4.33-CVE-2022-31631.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | ||||
| From 921b6813da3237a83e908998483f46ae3d8bacba Mon Sep 17 00:00:00 2001 | ||||
| From: "Christoph M. Becker" <cmbecker69@gmx.de> | ||||
| Date: Mon, 31 Oct 2022 17:20:23 +0100 | ||||
| Subject: [PATCH] Fix #81740: PDO::quote() may return unquoted string | ||||
|  | ||||
| `sqlite3_snprintf()` expects its first parameter to be `int`; we need | ||||
| to avoid overflow. | ||||
| --- | ||||
|  ext/pdo_sqlite/sqlite_driver.c     |  3 +++ | ||||
|  ext/pdo_sqlite/tests/bug81740.phpt | 17 +++++++++++++++++ | ||||
|  2 files changed, 20 insertions(+) | ||||
|  create mode 100644 ext/pdo_sqlite/tests/bug81740.phpt | ||||
|  | ||||
| diff --git a/ext/pdo_sqlite/sqlite_driver.c b/ext/pdo_sqlite/sqlite_driver.c | ||||
| index 4233ff10ff2e..5a72a1eda23f 100644 | ||||
| --- a/ext/pdo_sqlite/sqlite_driver.c | ||||
| +++ b/ext/pdo_sqlite/sqlite_driver.c | ||||
| @@ -232,6 +232,9 @@ static char *pdo_sqlite_last_insert_id(pdo_dbh_t *dbh, const char *name, size_t | ||||
|  /* NB: doesn't handle binary strings... use prepared stmts for that */ | ||||
|  static int sqlite_handle_quoter(pdo_dbh_t *dbh, const char *unquoted, size_t unquotedlen, char **quoted, size_t *quotedlen, enum pdo_param_type paramtype ) | ||||
|  { | ||||
| +	if (unquotedlen > (INT_MAX - 3) / 2) { | ||||
| +		return 0; | ||||
| +	} | ||||
|  	*quoted = safe_emalloc(2, unquotedlen, 3); | ||||
|  	sqlite3_snprintf(2*unquotedlen + 3, *quoted, "'%q'", unquoted); | ||||
|  	*quotedlen = strlen(*quoted); | ||||
| diff --git a/ext/pdo_sqlite/tests/bug81740.phpt b/ext/pdo_sqlite/tests/bug81740.phpt | ||||
| new file mode 100644 | ||||
| index 000000000000..99fb07c3048b | ||||
| --- /dev/null | ||||
| +++ b/ext/pdo_sqlite/tests/bug81740.phpt | ||||
| @@ -0,0 +1,17 @@ | ||||
| +--TEST-- | ||||
| +Bug #81740 (PDO::quote() may return unquoted string) | ||||
| +--SKIPIF-- | ||||
| +<?php | ||||
| +if (!extension_loaded('pdo_sqlite')) print 'skip not loaded'; | ||||
| +if (getenv("SKIP_SLOW_TESTS")) die("skip slow test"); | ||||
| +?> | ||||
| +--INI-- | ||||
| +memory_limit=-1 | ||||
| +--FILE-- | ||||
| +<?php | ||||
| +$pdo = new PDO("sqlite::memory:"); | ||||
| +$string = str_repeat("a", 0x80000000); | ||||
| +var_dump($pdo->quote($string)); | ||||
| +?> | ||||
| +--EXPECT-- | ||||
| +bool(false) | ||||
| @@ -1,233 +0,0 @@ | ||||
| --- a/ext/gd/config.m4	2018-04-24 11:09:54.000000000 -0400 | ||||
| +++ b/ext/gd/config.m4	2018-05-04 15:18:49.867283889 -0400 | ||||
| @@ -186,21 +186,36 @@ | ||||
|  AC_DEFUN([PHP_GD_FREETYPE2],[ | ||||
|    if test "$PHP_FREETYPE_DIR" != "no"; then | ||||
|   | ||||
| -    for i in $PHP_FREETYPE_DIR /usr/local /usr; do | ||||
| -      if test -f "$i/bin/freetype-config"; then | ||||
| -        FREETYPE2_DIR=$i | ||||
| -        FREETYPE2_CONFIG="$i/bin/freetype-config" | ||||
| -        break | ||||
| +    AC_PATH_PROG(PKG_CONFIG, pkg-config, no) | ||||
| +    AC_MSG_CHECKING(for freetype2) | ||||
| + | ||||
| +    if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then | ||||
| + | ||||
| +      FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2` | ||||
| +      FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2` | ||||
| +      FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2` | ||||
| +      FREETYPE2_DIR="found" | ||||
| + | ||||
| +      AC_MSG_RESULT(from pkgconfig: version $FREETYPE2_VERSION found) | ||||
| +    else | ||||
| + | ||||
| +      for i in $PHP_FREETYPE_DIR /usr/local /usr; do | ||||
| +        if test -f "$i/bin/freetype-config"; then | ||||
| +          FREETYPE2_DIR=$i | ||||
| +          FREETYPE2_CONFIG="$i/bin/freetype-config" | ||||
| +          break | ||||
| +        fi | ||||
| +      done | ||||
| + | ||||
| +      if test -z "$FREETYPE2_DIR"; then | ||||
| +        AC_MSG_ERROR([freetype-config not found.]) | ||||
|        fi | ||||
| -    done | ||||
|   | ||||
| -    if test -z "$FREETYPE2_DIR"; then | ||||
| -      AC_MSG_ERROR([freetype-config not found.]) | ||||
| +      FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` | ||||
| +      FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` | ||||
| +      AC_MSG_RESULT(found via freetype-config) | ||||
|      fi | ||||
|   | ||||
| -    FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` | ||||
| -    FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` | ||||
| - | ||||
|      PHP_EVAL_INCLINE($FREETYPE2_CFLAGS) | ||||
|      PHP_EVAL_LIBLINE($FREETYPE2_LIBS, GD_SHARED_LIBADD) | ||||
|      AC_DEFINE(HAVE_LIBFREETYPE,1,[ ]) | ||||
| --- a/configure	2018-04-24 11:10:05.000000000 -0400 | ||||
| +++ b/configure	2018-05-04 15:18:45.626367913 -0400 | ||||
| @@ -34348,21 +34348,79 @@ | ||||
|   | ||||
|    if test "$PHP_FREETYPE_DIR" != "no"; then | ||||
|   | ||||
| -    for i in $PHP_FREETYPE_DIR /usr/local /usr; do | ||||
| -      if test -f "$i/bin/freetype-config"; then | ||||
| -        FREETYPE2_DIR=$i | ||||
| -        FREETYPE2_CONFIG="$i/bin/freetype-config" | ||||
| -        break | ||||
| +    # Extract the first word of "pkg-config", so it can be a program name with args. | ||||
| +set dummy pkg-config; ac_word=$2 | ||||
| +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||||
| +$as_echo_n "checking for $ac_word... " >&6; } | ||||
| +if ${ac_cv_path_PKG_CONFIG+:} false; then : | ||||
| +  $as_echo_n "(cached) " >&6 | ||||
| +else | ||||
| +  case $PKG_CONFIG in | ||||
| +  [\\/]* | ?:[\\/]*) | ||||
| +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. | ||||
| +  ;; | ||||
| +  *) | ||||
| +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||||
| +for as_dir in $PATH | ||||
| +do | ||||
| +  IFS=$as_save_IFS | ||||
| +  test -z "$as_dir" && as_dir=. | ||||
| +    for ac_exec_ext in '' $ac_executable_extensions; do | ||||
| +  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then | ||||
| +    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" | ||||
| +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||||
| +    break 2 | ||||
| +  fi | ||||
| +done | ||||
| +  done | ||||
| +IFS=$as_save_IFS | ||||
| + | ||||
| +  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" | ||||
| +  ;; | ||||
| +esac | ||||
| +fi | ||||
| +PKG_CONFIG=$ac_cv_path_PKG_CONFIG | ||||
| +if test -n "$PKG_CONFIG"; then | ||||
| +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 | ||||
| +$as_echo "$PKG_CONFIG" >&6; } | ||||
| +else | ||||
| +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||||
| +$as_echo "no" >&6; } | ||||
| +fi | ||||
| + | ||||
| +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5 | ||||
| +$as_echo_n "checking for freetype2... " >&6; } | ||||
| + | ||||
| + | ||||
| +    if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then | ||||
| + | ||||
| +      FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2` | ||||
| +      FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2` | ||||
| +      FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2` | ||||
| +      FREETYPE2_DIR="found" | ||||
| + | ||||
| +      { $as_echo "$as_me:${as_lineno-$LINENO}: result: from pkgconfig: version $FREETYPE2_VERSION found" >&5 | ||||
| +$as_echo "from pkgconfig: version $FREETYPE2_VERSION found" >&6; } | ||||
| +    else | ||||
| + | ||||
| +      for i in $PHP_FREETYPE_DIR /usr/local /usr; do | ||||
| +        if test -f "$i/bin/freetype-config"; then | ||||
| +          FREETYPE2_DIR=$i | ||||
| +          FREETYPE2_CONFIG="$i/bin/freetype-config" | ||||
| +          break | ||||
| +        fi | ||||
| +      done | ||||
| + | ||||
| +      if test -z "$FREETYPE2_DIR"; then | ||||
| +        as_fn_error $? "freetype-config not found." "$LINENO" 5 | ||||
|        fi | ||||
| -    done | ||||
|   | ||||
| -    if test -z "$FREETYPE2_DIR"; then | ||||
| -      as_fn_error $? "freetype-config not found." "$LINENO" 5 | ||||
| +      FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` | ||||
| +      FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` | ||||
| +      { $as_echo "$as_me:${as_lineno-$LINENO}: result: found via freetype-config" >&5 | ||||
| +$as_echo "found via freetype-config" >&6; } | ||||
|      fi | ||||
|   | ||||
| -    FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` | ||||
| -    FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` | ||||
| - | ||||
|   | ||||
|    for ac_i in $FREETYPE2_CFLAGS; do | ||||
|      case $ac_i in | ||||
| @@ -36019,21 +36076,78 @@ | ||||
|   | ||||
|    if test "$PHP_FREETYPE_DIR" != "no"; then | ||||
|   | ||||
| -    for i in $PHP_FREETYPE_DIR /usr/local /usr; do | ||||
| -      if test -f "$i/bin/freetype-config"; then | ||||
| -        FREETYPE2_DIR=$i | ||||
| -        FREETYPE2_CONFIG="$i/bin/freetype-config" | ||||
| -        break | ||||
| +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5 | ||||
| +$as_echo_n "checking for freetype2... " >&6; } | ||||
| +    # Extract the first word of "pkg-config", so it can be a program name with args. | ||||
| +set dummy pkg-config; ac_word=$2 | ||||
| +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||||
| +$as_echo_n "checking for $ac_word... " >&6; } | ||||
| +if ${ac_cv_path_PKG_CONFIG+:} false; then : | ||||
| +  $as_echo_n "(cached) " >&6 | ||||
| +else | ||||
| +  case $PKG_CONFIG in | ||||
| +  [\\/]* | ?:[\\/]*) | ||||
| +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. | ||||
| +  ;; | ||||
| +  *) | ||||
| +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||||
| +for as_dir in $PATH | ||||
| +do | ||||
| +  IFS=$as_save_IFS | ||||
| +  test -z "$as_dir" && as_dir=. | ||||
| +    for ac_exec_ext in '' $ac_executable_extensions; do | ||||
| +  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then | ||||
| +    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" | ||||
| +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||||
| +    break 2 | ||||
| +  fi | ||||
| +done | ||||
| +  done | ||||
| +IFS=$as_save_IFS | ||||
| + | ||||
| +  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" | ||||
| +  ;; | ||||
| +esac | ||||
| +fi | ||||
| +PKG_CONFIG=$ac_cv_path_PKG_CONFIG | ||||
| +if test -n "$PKG_CONFIG"; then | ||||
| +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 | ||||
| +$as_echo "$PKG_CONFIG" >&6; } | ||||
| +else | ||||
| +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||||
| +$as_echo "no" >&6; } | ||||
| +fi | ||||
| + | ||||
| + | ||||
| + | ||||
| +    if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then | ||||
| + | ||||
| +      FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2` | ||||
| +      FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2` | ||||
| +      FREETYPE2_VERSION=`$PKG_CONFIG --modversion freetype2` | ||||
| + | ||||
| +      { $as_echo "$as_me:${as_lineno-$LINENO}: result: from pkgconfig: version $FREETYPE_VERSON found" >&5 | ||||
| +$as_echo "from pkgconfig: version $FREETYPE_VERSON found" >&6; } | ||||
| +    else | ||||
| + | ||||
| +      for i in $PHP_FREETYPE_DIR /usr/local /usr; do | ||||
| +        if test -f "$i/bin/freetype-config"; then | ||||
| +          FREETYPE2_DIR=$i | ||||
| +          FREETYPE2_CONFIG="$i/bin/freetype-config" | ||||
| +          break | ||||
| +        fi | ||||
| +      done | ||||
| + | ||||
| +      if test -z "$FREETYPE2_DIR"; then | ||||
| +        as_fn_error $? "freetype-config not found." "$LINENO" 5 | ||||
|        fi | ||||
| -    done | ||||
|   | ||||
| -    if test -z "$FREETYPE2_DIR"; then | ||||
| -      as_fn_error $? "freetype-config not found." "$LINENO" 5 | ||||
| +      FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` | ||||
| +      FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` | ||||
| +      { $as_echo "$as_me:${as_lineno-$LINENO}: result: found via freetype-config" >&5 | ||||
| +$as_echo "found via freetype-config" >&6; } | ||||
|      fi | ||||
|   | ||||
| -    FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` | ||||
| -    FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` | ||||
| - | ||||
|   | ||||
|    for ac_i in $FREETYPE2_CFLAGS; do | ||||
|      case $ac_i in | ||||
| @@ -1,10 +1,13 @@ | ||||
| # Copyright 1999-2021 Gentoo Authors | ||||
| # Copyright 1999-2022 Gentoo Authors | ||||
| # Distributed under the terms of the GNU General Public License v2 | ||||
| 
 | ||||
| EAPI="7" | ||||
| 
 | ||||
| inherit flag-o-matic systemd autotools toolchain-funcs | ||||
| WANT_AUTOMAKE="none" | ||||
| 
 | ||||
| inherit flag-o-matic systemd autotools | ||||
| 
 | ||||
| MY_PV=${PV/_rc/RC} | ||||
| DESCRIPTION="The PHP language runtime engine" | ||||
| HOMEPAGE="https://www.php.net/" | ||||
| SRC_URI="https://www.php.net/distributions/${P}.tar.xz" | ||||
| @@ -18,7 +21,9 @@ LICENSE="PHP-3.01 | ||||
| 	unicode? ( BSD-2 LGPL-2.1 )" | ||||
| 
 | ||||
| SLOT="$(ver_cut 1-2)" | ||||
| KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" | ||||
| KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" | ||||
| 
 | ||||
| S="${WORKDIR}/${PN}-${MY_PV}" | ||||
| 
 | ||||
| # We can build the following SAPIs in the given order | ||||
| SAPIS="embed cli cgi fpm apache2 phpdbg" | ||||
| @@ -30,87 +35,101 @@ IUSE="${IUSE} | ||||
| 
 | ||||
| IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk | ||||
| 	coverage +ctype curl debug | ||||
| 	enchant exif +fileinfo +filter firebird | ||||
| 	+flatfile ftp gd gdbm gmp +hash +iconv imap inifile | ||||
| 	intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb | ||||
| 	enchant exif ffi +fileinfo +filter firebird | ||||
| 	+flatfile ftp gd gdbm gmp +iconv imap inifile | ||||
| 	intl iodbc ipv6 +jit +json kerberos ldap ldap-sasl libedit lmdb | ||||
| 	mhash mssql mysql mysqli nls | ||||
| 	oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm | ||||
| 	readline recode selinux +session session-mm sharedmem | ||||
| 	readline selinux +session session-mm sharedmem | ||||
| 	+simplexml snmp soap sockets sodium spell sqlite ssl | ||||
| 	sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp | ||||
| 	+xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib" | ||||
| 	sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode webp | ||||
| 	+xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib" | ||||
| 
 | ||||
| # Without USE=readline or libedit, the interactive "php -a" CLI will hang. | ||||
| # The Oracle instant client provides its own incompatible ldap library. | ||||
| REQUIRED_USE=" | ||||
| 	|| ( cli cgi fpm apache2 embed phpdbg ) | ||||
| 	cli? ( ^^ ( readline libedit ) ) | ||||
| 	!cli? ( ?? ( readline libedit ) ) | ||||
| 	truetype? ( gd zlib ) | ||||
| 	webp? ( gd zlib ) | ||||
| 	cjk? ( gd zlib ) | ||||
| 	exif? ( gd zlib ) | ||||
| 	xpm? ( gd zlib ) | ||||
| 	gd? ( zlib ) | ||||
| 	simplexml? ( xml ) | ||||
| 	soap? ( xml ) | ||||
| 	xmlrpc? ( xml iconv ) | ||||
| 	xmlreader? ( xml ) | ||||
| 	xmlwriter? ( xml ) | ||||
| 	xslt? ( xml ) | ||||
| 	ldap-sasl? ( ldap ) | ||||
| 	oci8-instant-client? ( !ldap ) | ||||
| 	qdbm? ( !gdbm ) | ||||
| 	session-mm? ( session !threads ) | ||||
| 	mysql? ( || ( mysqli pdo ) ) | ||||
| 	firebird? ( pdo ) | ||||
| 	mssql? ( pdo ) | ||||
| " | ||||
| 
 | ||||
| RESTRICT="!test? ( test )" | ||||
| 
 | ||||
| # The supported (that is, autodetected) versions of BDB are listed in | ||||
| # the ./configure script. Other versions *work*, but we need to stick to | ||||
| # the ones that can be detected to avoid a repeat of bug #564824. | ||||
| COMMON_DEPEND=" | ||||
| 	>=app-eselect/eselect-php-0.9.1[apache2?,fpm?] | ||||
| 	>=dev-libs/libpcre-8.32[unicode] | ||||
| 	>=dev-libs/libpcre2-10.30[jit?,unicode] | ||||
| 	fpm? ( acl? ( sys-apps/acl ) ) | ||||
| 	apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] ) | ||||
| 	argon2? ( app-crypt/argon2:= ) | ||||
| 	berkdb? ( || (	sys-libs/db:5.3 | ||||
| 					sys-libs/db:5.1 | ||||
| 					sys-libs/db:4.8 | ||||
| 					sys-libs/db:4.7 | ||||
| 					sys-libs/db:4.6 | ||||
| 					sys-libs/db:4.5 ) ) | ||||
| 	berkdb? ( || (  sys-libs/db:5.3 sys-libs/db:4.8 ) ) | ||||
| 	bzip2? ( app-arch/bzip2:0= ) | ||||
| 	cdb? ( || ( dev-db/cdb dev-db/tinycdb ) ) | ||||
| 	coverage? ( dev-util/lcov ) | ||||
| 	curl? ( >=net-misc/curl-7.10.5 ) | ||||
| 	enchant? ( <app-text/enchant-2.0:0 ) | ||||
| 	ffi? ( >=dev-libs/libffi-3.0.11:= ) | ||||
| 	firebird? ( dev-db/firebird ) | ||||
| 	gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= sys-libs/zlib ) | ||||
| 	gd? ( media-libs/libjpeg-turbo:0= media-libs/libpng:0= ) | ||||
| 	gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) | ||||
| 	gmp? ( dev-libs/gmp:0= ) | ||||
| 	iconv? ( virtual/libiconv ) | ||||
| 	imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) | ||||
| 	imap? ( net-libs/c-client[kerberos=,ssl=] ) | ||||
| 	intl? ( dev-libs/icu:= ) | ||||
| 	iodbc? ( dev-db/libiodbc ) | ||||
| 	kerberos? ( virtual/krb5 ) | ||||
| 	ldap? ( >=net-nds/openldap-1.2.11 ) | ||||
| 	ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) | ||||
| 	ldap? ( >=net-nds/openldap-1.2.11:= ) | ||||
| 	ldap-sasl? ( dev-libs/cyrus-sasl ) | ||||
| 	libedit? ( dev-libs/libedit ) | ||||
| 	lmdb? ( dev-db/lmdb:= ) | ||||
| 	mssql? ( dev-db/freetds[mssql] ) | ||||
| 	nls? ( sys-devel/gettext ) | ||||
| 	oci8-instant-client? ( dev-db/oracle-instantclient-basic ) | ||||
| 	odbc? ( >=dev-db/unixODBC-1.8.13 ) | ||||
| 	oci8-instant-client? ( dev-db/oracle-instantclient[sdk] ) | ||||
| 	odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) ) | ||||
| 	postgres? ( dev-db/postgresql:* ) | ||||
| 	qdbm? ( dev-db/qdbm ) | ||||
| 	readline? ( sys-libs/readline:0= ) | ||||
| 	recode? ( app-text/recode:0= ) | ||||
| 	session-mm? ( dev-libs/mm ) | ||||
| 	simplexml? ( >=dev-libs/libxml2-2.6.8 ) | ||||
| 	snmp? ( >=net-analyzer/net-snmp-5.2 ) | ||||
| 	soap? ( >=dev-libs/libxml2-2.6.8 ) | ||||
| 	sodium? ( dev-libs/libsodium:= ) | ||||
| 	sodium? ( dev-libs/libsodium:=[-minimal] ) | ||||
| 	spell? ( >=app-text/aspell-0.50 ) | ||||
| 	sqlite? ( >=dev-db/sqlite-3.7.6.3 ) | ||||
| 	ssl? ( | ||||
| 		!libressl? ( dev-libs/openssl:0= ) | ||||
| 		libressl? ( dev-libs/libressl:0= ) | ||||
| 	) | ||||
| 	tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) ) | ||||
| 	ssl? ( >=dev-libs/openssl-1.0.1:0= <dev-libs/openssl-3.0 ) | ||||
| 	tidy? ( app-text/htmltidy ) | ||||
| 	tokyocabinet? ( dev-db/tokyocabinet ) | ||||
| 	truetype? ( =media-libs/freetype-2* ) | ||||
| 	unicode? ( dev-libs/oniguruma:= ) | ||||
| 	wddx? ( >=dev-libs/libxml2-2.6.8 ) | ||||
| 	webp? ( media-libs/libwebp:0= ) | ||||
| 	xml? ( >=dev-libs/libxml2-2.6.8 ) | ||||
| 	xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv ) | ||||
| 	xmlreader? ( >=dev-libs/libxml2-2.6.8 ) | ||||
| 	xmlwriter? ( >=dev-libs/libxml2-2.6.8 ) | ||||
| 	xml? ( >=dev-libs/libxml2-2.7.6 ) | ||||
| 	xpm? ( x11-libs/libXpm ) | ||||
| 	xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 ) | ||||
| 	zip? ( sys-libs/zlib:0= ) | ||||
| 	zip-encryption? ( >=dev-libs/libzip-1.2.0:= ) | ||||
| 	zlib? ( sys-libs/zlib:0= ) | ||||
| 	xslt? ( dev-libs/libxslt ) | ||||
| 	zip? ( >=dev-libs/libzip-1.2.0:= ) | ||||
| 	zlib? ( >=sys-libs/zlib-1.2.0.4:0= ) | ||||
| " | ||||
| 
 | ||||
| RDEPEND="${COMMON_DEPEND} | ||||
| 	virtual/mta | ||||
| 	virtual/libcrypt | ||||
| 	fpm? ( | ||||
| 		selinux? ( sec-policy/selinux-phpfpm ) | ||||
| 		systemd? ( sys-apps/systemd ) )" | ||||
| @@ -124,44 +143,15 @@ DEPEND="${COMMON_DEPEND} | ||||
| 
 | ||||
| BDEPEND="virtual/pkgconfig" | ||||
| 
 | ||||
| # Without USE=readline or libedit, the interactive "php -a" CLI will hang. | ||||
| REQUIRED_USE=" | ||||
| 	|| ( cli cgi fpm apache2 embed phpdbg ) | ||||
| 	cli? ( ^^ ( readline libedit ) ) | ||||
| 	truetype? ( gd zlib ) | ||||
| 	webp? ( gd zlib ) | ||||
| 	cjk? ( gd zlib ) | ||||
| 	exif? ( gd zlib ) | ||||
| 	xpm? ( gd zlib ) | ||||
| 	gd? ( zlib ) | ||||
| 	simplexml? ( xml ) | ||||
| 	soap? ( xml ) | ||||
| 	wddx? ( xml ) | ||||
| 	xmlrpc? ( || ( xml iconv ) ) | ||||
| 	xmlreader? ( xml ) | ||||
| 	xslt? ( xml ) | ||||
| 	ldap-sasl? ( ldap ) | ||||
| 	mhash? ( hash ) | ||||
| 	phar? ( hash ) | ||||
| 	qdbm? ( !gdbm ) | ||||
| 	readline? ( !libedit ) | ||||
| 	recode? ( !imap !mysqli !mysql ) | ||||
| 	session-mm? ( session !threads ) | ||||
| 	mysql? ( hash || ( mysqli pdo ) ) | ||||
| 	mysqli? ( hash ) | ||||
| 	zip-encryption? ( zip ) | ||||
| " | ||||
| 
 | ||||
| RESTRICT="!test? ( test )" | ||||
| PHP_MV="$(ver_cut 1)" | ||||
| 
 | ||||
| PATCHES=( | ||||
| 	"${FILESDIR}/php-freetype-2.9.1.patch" | ||||
| 	"${FILESDIR}/php-7.2.13-intl-use-icu-namespace.patch" | ||||
| 	"${FILESDIR}/php-7.2.34-use-after-free-bug76047.patch" | ||||
| 	"${FILESDIR}"/php-iodbc-header-location.patch | ||||
| 	"${FILESDIR}"/bug81656-gcc-11.patch | ||||
| 	"${FILESDIR}"/php-7.4-openssl.patch | ||||
| 	"${FILESDIR}"/php-7.4.33-CVE-2022-31631.patch | ||||
| ) | ||||
| 
 | ||||
| PHP_MV="$(ver_cut 1)" | ||||
| 
 | ||||
| php_install_ini() { | ||||
| 	local phpsapi="${1}" | ||||
| 
 | ||||
| @@ -230,20 +220,19 @@ src_prepare() { | ||||
| 		sapi/fpm/php-fpm.conf.in \ | ||||
| 		|| die 'failed to move the include directory in php-fpm.conf' | ||||
| 
 | ||||
| 	# Bug 669566 - necessary so that build tools are updated for commands like pecl | ||||
| 	# Force rebuilding aclocal.m4 | ||||
| 	rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare" | ||||
| 	eautoreconf | ||||
| 	# Emulate buildconf to support cross-compilation | ||||
| 	rm -fr aclocal.m4 autom4te.cache config.cache \ | ||||
| 		configure main/php_config.h.in || die | ||||
| 	eautoconf --force | ||||
| 	eautoheader | ||||
| } | ||||
| 
 | ||||
| src_configure() { | ||||
| 	filter-lto # bug 855644 | ||||
| 
 | ||||
| 	addpredict /usr/share/snmp/mibs/.index #nowarn | ||||
| 	addpredict /var/lib/net-snmp/mib_indexes #nowarn | ||||
| 
 | ||||
| 	# Fix building against >=ICU-68, https://bugs.php.net/80310 | ||||
| 	append-cflags -DU_DEFINE_FALSE_AND_TRUE=1 | ||||
| 	append-cxxflags -DU_DEFINE_FALSE_AND_TRUE=1 | ||||
| 
 | ||||
| 	PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" | ||||
| 
 | ||||
| 	# The php-fpm config file wants localstatedir to be ${EPREFIX}/var | ||||
| @@ -256,101 +245,94 @@ src_configure() { | ||||
| 		--with-libdir="$(get_libdir)" | ||||
| 		--localstatedir="${EPREFIX}/var" | ||||
| 		--without-pear | ||||
| 		--without-valgrind | ||||
| 		$(use_enable threads maintainer-zts) | ||||
| 	) | ||||
| 
 | ||||
| 	our_conf+=( | ||||
| 		$(use_with argon2 password-argon2 "${EPREFIX}/usr") | ||||
| 		$(use_enable bcmath bcmath) | ||||
| 		$(use_enable bcmath) | ||||
| 		$(use_with bzip2 bz2 "${EPREFIX}/usr") | ||||
| 		$(use_enable calendar calendar) | ||||
| 		$(use_enable calendar) | ||||
| 		$(use_enable coverage gcov) | ||||
| 		$(use_enable ctype ctype) | ||||
| 		$(use_with curl curl "${EPREFIX}/usr") | ||||
| 		$(use_enable ctype) | ||||
| 		$(use_with curl) | ||||
| 		$(use_enable xml dom) | ||||
| 		$(use_with enchant enchant "${EPREFIX}/usr") | ||||
| 		$(use_enable exif exif) | ||||
| 		$(use_enable fileinfo fileinfo) | ||||
| 		$(use_enable filter filter) | ||||
| 		$(use_enable ftp ftp) | ||||
| 		$(use_with enchant) | ||||
| 		$(use_enable exif) | ||||
| 		$(use_with ffi) | ||||
| 		$(use_enable fileinfo) | ||||
| 		$(use_enable filter) | ||||
| 		$(use_enable ftp) | ||||
| 		$(use_with nls gettext "${EPREFIX}/usr") | ||||
| 		$(use_with gmp gmp "${EPREFIX}/usr") | ||||
| 		$(use_enable hash hash) | ||||
| 		$(use_with mhash mhash "${EPREFIX}/usr") | ||||
| 		$(use_with iconv iconv \ | ||||
| 			$(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr")) | ||||
| 		$(use_enable intl intl) | ||||
| 		$(use_enable ipv6 ipv6) | ||||
| 		$(use_enable json json) | ||||
| 		$(use_with kerberos kerberos "${EPREFIX}/usr") | ||||
| 		$(use_enable xml libxml) | ||||
| 		$(use_with xml libxml-dir "${EPREFIX}/usr") | ||||
| 			$(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr")) | ||||
| 		$(use_enable intl) | ||||
| 		$(use_enable ipv6) | ||||
| 		$(use_enable json) | ||||
| 		$(use_with kerberos) | ||||
| 		$(use_with xml libxml) | ||||
| 		$(use_enable unicode mbstring) | ||||
| 		$(use_with unicode onig "${EPREFIX}/usr") | ||||
| 		$(use_with ssl openssl "${EPREFIX}/usr") | ||||
| 		$(use_with ssl openssl-dir "${EPREFIX}/usr") | ||||
| 		$(use_enable pcntl pcntl) | ||||
| 		$(use_enable phar phar) | ||||
| 		$(use_enable pdo pdo) | ||||
| 		$(use_enable opcache opcache) | ||||
| 		$(use_with ssl openssl) | ||||
| 		$(use_enable pcntl) | ||||
| 		$(use_enable phar) | ||||
| 		$(use_enable pdo) | ||||
| 		$(use_enable opcache) | ||||
| 		$(use_with postgres pgsql "${EPREFIX}/usr") | ||||
| 		$(use_enable posix posix) | ||||
| 		$(use_enable posix) | ||||
| 		$(use_with spell pspell "${EPREFIX}/usr") | ||||
| 		$(use_with recode recode "${EPREFIX}/usr") | ||||
| 		$(use_enable simplexml simplexml) | ||||
| 		$(use_enable simplexml) | ||||
| 		$(use_enable sharedmem shmop) | ||||
| 		$(use_with snmp snmp "${EPREFIX}/usr") | ||||
| 		$(use_enable soap soap) | ||||
| 		$(use_enable sockets sockets) | ||||
| 		$(use_with sodium sodium "${EPREFIX}/usr") | ||||
| 		$(use_with sqlite sqlite3 "${EPREFIX}/usr") | ||||
| 		$(use_enable soap) | ||||
| 		$(use_enable sockets) | ||||
| 		$(use_with sodium) | ||||
| 		$(use_with sqlite sqlite3) | ||||
| 		$(use_enable sysvipc sysvmsg) | ||||
| 		$(use_enable sysvipc sysvsem) | ||||
| 		$(use_enable sysvipc sysvshm) | ||||
| 		$(use_with tidy tidy "${EPREFIX}/usr") | ||||
| 		$(use_enable tokenizer tokenizer) | ||||
| 		$(use_enable wddx wddx) | ||||
| 		$(use_enable xml xml) | ||||
| 		$(use_enable xmlreader xmlreader) | ||||
| 		$(use_enable xmlwriter xmlwriter) | ||||
| 		$(use_with xmlrpc xmlrpc) | ||||
| 		$(use_with xslt xsl "${EPREFIX}/usr") | ||||
| 		$(use_enable zip zip) | ||||
| 		$(use_with zip-encryption libzip "${EPREFIX}/usr") | ||||
| 		$(use_enable tokenizer) | ||||
| 		$(use_enable xml) | ||||
| 		$(use_enable xmlreader) | ||||
| 		$(use_enable xmlwriter) | ||||
| 		$(use_with xmlrpc) | ||||
| 		$(use_with xslt xsl) | ||||
| 		$(use_with zip) | ||||
| 		$(use_with zlib zlib "${EPREFIX}/usr") | ||||
| 		$(use_enable debug debug) | ||||
| 		$(use_enable debug) | ||||
| 	) | ||||
| 
 | ||||
| 	# DBA support | ||||
| 	if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ | ||||
| 		|| use qdbm || use lmdb || use tokyocabinet ; then | ||||
| 		our_conf+=( "--enable-dba${shared}" ) | ||||
| 		our_conf+=( "--enable-dba" ) | ||||
| 	fi | ||||
| 
 | ||||
| 	# DBA drivers support | ||||
| 	our_conf+=( | ||||
| 		$(use_with cdb cdb) | ||||
| 		$(use_with cdb) | ||||
| 		$(use_with berkdb db4 "${EPREFIX}/usr") | ||||
| 		$(use_enable flatfile flatfile) | ||||
| 		$(use_enable flatfile) | ||||
| 		$(use_with gdbm gdbm "${EPREFIX}/usr") | ||||
| 		$(use_enable inifile inifile) | ||||
| 		$(use_enable inifile) | ||||
| 		$(use_with qdbm qdbm "${EPREFIX}/usr") | ||||
| 		$(use_with tokyocabinet tcadb "${EPREFIX}/usr") | ||||
| 		$(use_with lmdb lmdb "${EPREFIX}/usr") | ||||
| 	) | ||||
| 
 | ||||
| 	# Support for the GD graphics library | ||||
| 	our_conf+=( | ||||
| 		$(use_with truetype freetype-dir "${EPREFIX}/usr") | ||||
| 		$(use_with truetype freetype) | ||||
| 		$(use_enable cjk gd-jis-conv) | ||||
| 		$(use_with gd jpeg-dir "${EPREFIX}/usr") | ||||
| 		$(use_with gd png-dir "${EPREFIX}/usr") | ||||
| 		$(use_with xpm xpm-dir "${EPREFIX}/usr") | ||||
| 		$(use_with gd jpeg) | ||||
| 		$(use_with xpm) | ||||
| 		$(use_with webp) | ||||
| 	) | ||||
| 	if use webp; then | ||||
| 		our_conf+=( --with-webp-dir="${EPREFIX}/usr" ) | ||||
| 	fi | ||||
| 	# enable gd last, so configure can pick up the previous settings | ||||
| 	our_conf+=( $(use_with gd gd) ) | ||||
| 	our_conf+=( $(use_enable gd) ) | ||||
| 
 | ||||
| 	# IMAP support | ||||
| 	if use imap ; then | ||||
| @@ -360,14 +342,11 @@ src_configure() { | ||||
| 		) | ||||
| 	fi | ||||
| 
 | ||||
| 	# Interbase/firebird support | ||||
| 	our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") ) | ||||
| 
 | ||||
| 	# LDAP support | ||||
| 	if use ldap ; then | ||||
| 		our_conf+=( | ||||
| 			$(use_with ldap ldap "${EPREFIX}/usr") | ||||
| 			$(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr") | ||||
| 			$(use_with ldap-sasl) | ||||
| 		) | ||||
| 	fi | ||||
| 
 | ||||
| @@ -383,10 +362,25 @@ src_configure() { | ||||
| 	fi | ||||
| 
 | ||||
| 	# ODBC support | ||||
| 	our_conf+=( | ||||
| 		$(use_with odbc unixODBC "${EPREFIX}/usr") | ||||
| 		$(use_with iodbc iodbc "${EPREFIX}/usr") | ||||
| 	) | ||||
| 	if use odbc && use iodbc ; then | ||||
| 		our_conf+=( | ||||
| 			--without-unixODBC | ||||
| 			--with-iodbc | ||||
| 			$(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr") | ||||
| 		) | ||||
| 	elif use odbc ; then | ||||
| 		our_conf+=( | ||||
| 			--with-unixODBC="${EPREFIX}/usr" | ||||
| 			--without-iodbc | ||||
| 			$(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr") | ||||
| 		) | ||||
| 	else | ||||
| 		our_conf+=( | ||||
| 			--without-unixODBC | ||||
| 			--without-iodbc | ||||
| 			--without-pdo-odbc | ||||
| 		) | ||||
| 	fi | ||||
| 
 | ||||
| 	# Oracle support | ||||
| 	our_conf+=( $(use_with oci8-instant-client oci8) ) | ||||
| @@ -397,9 +391,8 @@ src_configure() { | ||||
| 			$(use_with mssql pdo-dblib "${EPREFIX}/usr") | ||||
| 			$(use_with mysql pdo-mysql "${mysqllib}") | ||||
| 			$(use_with postgres pdo-pgsql) | ||||
| 			$(use_with sqlite pdo-sqlite "${EPREFIX}/usr") | ||||
| 			$(use_with sqlite pdo-sqlite) | ||||
| 			$(use_with firebird pdo-firebird "${EPREFIX}/usr") | ||||
| 			$(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr") | ||||
| 			$(use_with oci8-instant-client pdo-oci) | ||||
| 		) | ||||
| 	fi | ||||
| @@ -407,29 +400,24 @@ src_configure() { | ||||
| 	# readline/libedit support | ||||
| 	our_conf+=( | ||||
| 		$(use_with readline readline "${EPREFIX}/usr") | ||||
| 		$(use_with libedit libedit "${EPREFIX}/usr") | ||||
| 		$(use_with libedit) | ||||
| 	) | ||||
| 
 | ||||
| 	# Session support | ||||
| 	if use session ; then | ||||
| 		our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) | ||||
| 	else | ||||
| 		our_conf+=( $(use_enable session session) ) | ||||
| 		our_conf+=( $(use_enable session) ) | ||||
| 	fi | ||||
| 
 | ||||
| 	# Use pic for shared modules such as apache2's mod_php | ||||
| 	our_conf+=( --with-pic ) | ||||
| 
 | ||||
| 	# we use the system copy of pcre | ||||
| 	# --with-pcre-regex affects ext/pcre | ||||
| 	# --with-pcre-dir affects ext/filter and ext/zip | ||||
| 	# --with-pcre-valgrind cannot be enabled with system pcre | ||||
| 	# Many arches don't support pcre-jit | ||||
| 	# --with-external-pcre affects ext/pcre | ||||
| 	our_conf+=( | ||||
| 		--with-pcre-regex="${EPREFIX}/usr" | ||||
| 		--with-pcre-dir="${EPREFIX}/usr" | ||||
| 		--without-pcre-valgrind | ||||
| 		--without-pcre-jit | ||||
| 		--with-external-pcre | ||||
| 		$(use_with jit pcre-jit) | ||||
| 	) | ||||
| 
 | ||||
| 	# Catch CFLAGS problems | ||||
| @@ -522,7 +510,7 @@ src_install() { | ||||
| 	addpredict /usr/share/snmp/mibs/.index #nowarn | ||||
| 
 | ||||
| 	# grab the first SAPI that got built and install common files from there | ||||
| 	local first_sapi="",sapi="" | ||||
| 	local first_sapi="", sapi="" | ||||
| 	for sapi in $SAPIS ; do | ||||
| 		if use $sapi ; then | ||||
| 			first_sapi=$sapi | ||||
		Reference in New Issue
	
	Block a user