summaryrefslogtreecommitdiff
path: root/dev-lang
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/Manifest.gzbin21837 -> 21831 bytes
-rw-r--r--dev-lang/luau/Manifest4
-rw-r--r--dev-lang/luau/luau-0.611.ebuild (renamed from dev-lang/luau/luau-0.606.ebuild)10
-rw-r--r--dev-lang/php/Manifest4
-rw-r--r--dev-lang/php/files/php-8.2.15-gcc14-build-fix.patch16
-rw-r--r--dev-lang/php/php-8.2.15-r1.ebuild840
-rw-r--r--dev-lang/php/php-8.3.2-r1.ebuild (renamed from dev-lang/php/php-8.3.2.ebuild)1
-rw-r--r--dev-lang/python/Manifest22
-rw-r--r--dev-lang/python/python-2.7.18_p16-r1.ebuild1
-rw-r--r--dev-lang/python/python-3.10.13.ebuild1
-rw-r--r--dev-lang/python/python-3.11.7.ebuild1
-rw-r--r--dev-lang/python/python-3.11.8.ebuild1
-rw-r--r--dev-lang/python/python-3.12.1.ebuild1
-rw-r--r--dev-lang/python/python-3.12.1_p1.ebuild1
-rw-r--r--dev-lang/python/python-3.12.2.ebuild1
-rw-r--r--dev-lang/python/python-3.13.0_alpha2.ebuild1
-rw-r--r--dev-lang/python/python-3.13.0_alpha3.ebuild1
-rw-r--r--dev-lang/python/python-3.8.18.ebuild1
-rw-r--r--dev-lang/python/python-3.9.18.ebuild1
19 files changed, 890 insertions, 18 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz
index 3a4ae84a88d4..eb154c4776d4 100644
--- a/dev-lang/Manifest.gz
+++ b/dev-lang/Manifest.gz
Binary files differ
diff --git a/dev-lang/luau/Manifest b/dev-lang/luau/Manifest
index 38d05101c184..17d743a8b7b8 100644
--- a/dev-lang/luau/Manifest
+++ b/dev-lang/luau/Manifest
@@ -1,7 +1,7 @@
-DIST luau-0.606.tar.gz 1584784 BLAKE2B 93a665c6d91c77bd4861bb87278bc48dd596fcf5783004a132ce584fd53b347ed0515c5cd0397270018dfa993014daf7f3a8e9df41eb3f382fb7da4fa025acfe SHA512 66b688282d2bdae481d51edb4b4c9bc4034c05fd0a2cf6f45fee7691098aae5f123ae325ab0216ff5da4422ed7d43ae79748b294dda11e44015fb551eaf6c675
DIST luau-0.607.tar.gz 1587462 BLAKE2B 9aad6f6aeb2ddd8b1bb3b4ff1324e8f8f18fd530ae86e33c593f0349cd8ac743f41eca7f1dc7c231d0a6bfad405dbfe1153a0d4729010ecd16bbcbdfef9abed4 SHA512 66025a2c88ea530f92d01fc3d7bea71d76847c615e150463d81b531a6ef6921b9898e25b62eeb4a2057e56ddd8d7b5b9aaaffca5c832d0c9eac9fa15712f7d19
DIST luau-0.609.tar.gz 1602889 BLAKE2B 92c1f07fc97df494d7a7718d6c348060322637d4fefd7b64405f9af2e48f1f964e85d39a9eed22231fe875ccdcd5bfc46f280de62dfa29f019c5ebb87d5dc4f0 SHA512 7b6193dfd8af95b4dfab16c6ae6541150488a2655847bf88bf0befeb8df796b11d575e569d16aa33012241e5d5f32ba28b6c1160de0a3cbaad7e7d7b80a44ff1
-EBUILD luau-0.606.ebuild 764 BLAKE2B dbb31c77c0538445172c3a3cdf750c28febaf8e4043a010ba5a4c9a93b94d60d8bf69ca3a662d9fca6bbf813d470cc8f4c8e3b427e75cfc697d74c63bc99b9d4 SHA512 7bfc98bbb668ae901b3971037a4bab7874550e9dfef51dbab884f2c88666336818edfeaf7a24b094a2fd715be308bcbe2e3054aee8d232d13c766eb694931273
+DIST luau-0.611.tar.gz 1615229 BLAKE2B 925f3967bfe9f8ce764e3ce22763fd1363f0b47f5860f23ceea426a729bbce2cfc16479419889c573cd19cc891314bf72e06262967d8ec3e1d1faca7e2e5e573 SHA512 c3a0f84f73daa75d96ff33fb79456f0ec08dd4c4980afdcc64bbe4dea9d3189a17537cb60fcfe2e314b0a4dae635c52299514fb68bc77ed559c411c702f74bd3
EBUILD luau-0.607.ebuild 764 BLAKE2B dbb31c77c0538445172c3a3cdf750c28febaf8e4043a010ba5a4c9a93b94d60d8bf69ca3a662d9fca6bbf813d470cc8f4c8e3b427e75cfc697d74c63bc99b9d4 SHA512 7bfc98bbb668ae901b3971037a4bab7874550e9dfef51dbab884f2c88666336818edfeaf7a24b094a2fd715be308bcbe2e3054aee8d232d13c766eb694931273
EBUILD luau-0.609.ebuild 768 BLAKE2B f145b6bef107dcc282244a16f1bcebd23b97244bf6143b9adc852aba034e88eed120c2a1b306d56b086b40e67fca098cd129a3eae234e676ad5b36dc746c753f SHA512 5a9e54e4b42bd4caad1ac75f30027ebee49e6f6842cfc4dec518f537b6d2b0f8b4e3167481767e417ca80307efa691f3dcbbca38102773ca73935c20914f2475
+EBUILD luau-0.611.ebuild 768 BLAKE2B f145b6bef107dcc282244a16f1bcebd23b97244bf6143b9adc852aba034e88eed120c2a1b306d56b086b40e67fca098cd129a3eae234e676ad5b36dc746c753f SHA512 5a9e54e4b42bd4caad1ac75f30027ebee49e6f6842cfc4dec518f537b6d2b0f8b4e3167481767e417ca80307efa691f3dcbbca38102773ca73935c20914f2475
MISC metadata.xml 1071 BLAKE2B 21583b8ae784e9d98bf3f05cc8cca796e6e77b348ff43e52954a4aa67b805beaaf20c2f116753ed41764b51d85d4c673cd92e757053653bd8fc7bb8ab5d4ba79 SHA512 1a98dcfd442fc107c206c21c3ad3e464eec4ed3a77250b6dcaf982078553f612b1c6308a19a586835e6e17d3b6e208ecb6eca64b79fa2ad26f871b42e1711fe0
diff --git a/dev-lang/luau/luau-0.606.ebuild b/dev-lang/luau/luau-0.611.ebuild
index 065271398e29..8a5efaa5fcea 100644
--- a/dev-lang/luau/luau-0.606.ebuild
+++ b/dev-lang/luau/luau-0.611.ebuild
@@ -9,13 +9,15 @@ DESCRIPTION="Gradually typed embeddable scripting language derived from Lua"
HOMEPAGE="https://luau-lang.org/
https://github.com/Roblox/luau/"
-if [[ ${PV} == *9999* ]] ; then
+if [[ "${PV}" == *9999* ]] ; then
inherit git-r3
+
EGIT_REPO_URI="https://github.com/Roblox/${PN}.git"
else
SRC_URI="https://github.com/Roblox/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
- KEYWORDS="amd64 ~x86"
+
+ KEYWORDS="~amd64 ~x86"
fi
LICENSE="MIT"
@@ -24,8 +26,8 @@ SLOT="0"
DOCS=( CONTRIBUTING.md README.md SECURITY.md )
src_test() {
- "${BUILD_DIR}"/Luau.UnitTest || die
- "${BUILD_DIR}"/Luau.Conformance || die
+ "${BUILD_DIR}/Luau.UnitTest" || die
+ "${BUILD_DIR}/Luau.Conformance" || die
}
src_install() {
diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest
index 1f6c2985b439..b98864ae1327 100644
--- a/dev-lang/php/Manifest
+++ b/dev-lang/php/Manifest
@@ -1,5 +1,6 @@
AUX 20php5-envd 208 BLAKE2B 7d876903c7f58ab148e1d6bb2b0d86cb9f5ecd241bc00e92138d30e6272b277fddbe2ee233c82e6420c1ea42d493b872d975ed06295ba7502be5c26afa458f5a SHA512 5ddd373d586800a112666b21e449342028ccf60f4f7f1a87f4913e75f718ded881590bed79cbeff75c581a24acb8b46403f2bf496cd05f264b4f9f1e6c5e86fe
AUX php-8.1.27-gcc14-libxml.patch 1982 BLAKE2B dcb329e5bae787aa0d47f70e7d60f5a187568b10f2e3a1dd33b5fc422df7b5774e9f4093b728d3621bcdfa2d3d96da98272e80be553cce5ea61151b362347c0a SHA512 f68cb97cc3b0b8da5eb62d7217fcbe1652579771ed19aba0b52740cb056c85710a1b1bff3286dbefa72bc22885dd4b4df8c5f5b1f089c977106251d9daa2065d
+AUX php-8.2.15-gcc14-build-fix.patch 558 BLAKE2B 2f0d095252c88bfec424ca26cfecad1d24334778842a28289358bf826311e297fb8614118afc2e7a11b4448c4e89e9f3419a7e82fa56771b2d79979116be0aed SHA512 00b6461b46680494b908f252b84972b62fe2211d3e6d9b360f944144c5f82cf7e9050f778ca566da3228ab9eca29e49a49a74810e60029e9201570a03695d64b
AUX php-8.2.8-openssl-tests.patch 790 BLAKE2B fcfa6f361470f2baa65d2bbbde7c9629841546a560aa6f88d85b68727004e24949f9516340eba0339e575dcf06077d08540a7a6d58a0cda42d5cd26bf48d9e46 SHA512 d29b5334abee8bcbef62c88c01c9eaf887f25901763db75e754f6690e24138c9e45783943d32402f693bd7e4564d737521a8b0b8034d5401bac73ff30f453050
AUX php-capstone-optional.patch 2497 BLAKE2B f23236130be88d28d933d5482f1925c4e32e09c5022544ac2dec62465e9296baabe64f57fedd7ccb9f4499d354bd466d10cfb66596e8be029be6fa4f82dbc1a1 SHA512 a9000d789a7bc54d4b6cf8ed287dcfd71958dfc85c6417737dcd66b9461be5b1aa2568a19f5a9cd29927fe9d955ac24d04e2f64f1c4018110a8f81a6eb4813c5
AUX php-fpm_at-simple.service 316 BLAKE2B 0ba10f3e3b004fbf14956e1e4f04f59b8a127e6717fe6b92c09b9f931033a11551c75fbbee9010f6b694c5a8758ca0eec9eed457ae304ba0dea8f2c256c3b8d4 SHA512 7367a3f8d3874f8e0c76f331ba613a0250db02f60ad9f87affaf448dcb5bc34bcecb91d88f415764a12b24b46ae3d1b738a002af9f77a4b707e916e83a0021fd
@@ -11,6 +12,7 @@ DIST php-8.2.15.tar.xz 12075384 BLAKE2B cef15868968538e232093bd66d862a88f0960325
DIST php-8.3.2.tar.xz 12440200 BLAKE2B 90ab2fe220d99cc1da47162e04c768dc35ed4044ea9154f67bbc9124372859b85a33270bc38d41e9ab28df4b0defaf0e78cffe8eb8bd6fdfbec296a31ea4beab SHA512 acf9013d35ae639558fd4816d12dcae03f8af7944c2639f33cd33517503c6170d30101da6c72ebdaf5542bcaf858a54a22ecc8f86822a128f52938bd6ea9606c
EBUILD php-8.1.26-r1.ebuild 21992 BLAKE2B 6a2d19aefc689f44603bf95a14b21e345ae739a5dd66a620a065f36e4b72233753a8144f41434211de28ee49ac0e3c0dda3dd712749215a721007126104cddfc SHA512 928b5d071618a69d398c15223c8885924c5dbe6581bacc93f041a27c6caf4384ae43e0aeeb6f2bf31582b5d1838a6656a8e6cb24d18ddddf44e9df1e18694c93
EBUILD php-8.1.27-r1.ebuild 22189 BLAKE2B d905eea0beaf0df5d7d6f9422cce57fef41239eede600fb35c300cac025be4859d0e8c4f058c93aa591d5706527b45bf59ee713b3386699c3c3265bd10fc159c SHA512 8fb999c6cea7cd25f5f8356ef704122cd6ec21b55a49642215d52fd43f5facb0703e2bffb8112bd39395d985cc2db29d3f1f96e4848818456910d52b057d15bc
+EBUILD php-8.2.15-r1.ebuild 25120 BLAKE2B 7e32e8b6143f5e1d030ce00215fa5aa6525d3b2fa2be37401f3d81e8073ab1145fb2f7aff35a68cc87cb919b8ee89c812128e906738250bdccf5b500aa94815e SHA512 5fcf42966012e9b4714d001ad873748f673007d6345d15d8632f0ee3402d3b0313c9fbf9f519e8f51ebb530609495f68da5c3d2fb801114688252ef069b7771e
EBUILD php-8.2.15.ebuild 25071 BLAKE2B 22e68d7c2cc7320c075a9795f61c821b584f3fd3e43b4c0aa269321bc57b148a264220eb205fe85126f82ee2f53790479b8978a3a6faed94e4d18b7a245dfc53 SHA512 c3477fb2b148b4f413e3729f656187809a396d0d1cfc7d89836c69de70adc8873b8d6b9765c68122f1b1a6009082899579e6a319ecd2d6ab1aac842e2bdda596
-EBUILD php-8.3.2.ebuild 23786 BLAKE2B 19a772be50a0eca05a50d1012b0912bd09227dbdaa5a88393c3c9ce58c8960c4a843d3db88dae18589d12cc2fbbd62fb1d445a5d73af57636b12daa8ab8c5798 SHA512 8470ae9592b7d576f0565433a06c63d9cf0b56584d88ba8f1b23ec75aede135eedf75837de3980d0fc6928beb7e7aca89f2e4e80c3410b276032fc36ea998755
+EBUILD php-8.3.2-r1.ebuild 23834 BLAKE2B 343e1a6a62b116ed1620683c9ddd51b4f8be9c5e566041dbc79ece4b23ee2fec178c20df00fbf2d974ecbb2f98ca08d759e80ba8ef53986d9a6868c4de4de8df SHA512 dd708ea8a02d05a0ad0a7a9cbb0fd7487446c605b84b54ffab0e2be2b2086c57dadf7eb6cb7fefa6cde4ded1e8f4ed5bda3bb1b5389560fa608db5bd9bc22939
MISC metadata.xml 3892 BLAKE2B 69f96654884695b15fd3caf260a8e9d7e1b1e004c7d72bba340e093dd981d1fed5c00dfb547fea3d58be8f1516e52a01a966abbbfb90f10bd9dc14421e18bd8f SHA512 f7d93f5213aceb33e95ad883ed7015b6ab22eef5b0749e137aad2ecb8fc5187a9aca2b7f095421ff12d6102d5087fc2280e6c3ced12eda14e9bda8f3241b29a5
diff --git a/dev-lang/php/files/php-8.2.15-gcc14-build-fix.patch b/dev-lang/php/files/php-8.2.15-gcc14-build-fix.patch
new file mode 100644
index 000000000000..5f21f442ee06
--- /dev/null
+++ b/dev-lang/php/files/php-8.2.15-gcc14-build-fix.patch
@@ -0,0 +1,16 @@
+https://github.com/php/php-src/commit/72526609413e8a8cd768ed4966c17b1a9db6c12c.patch
+From: Remi Collet <remi@remirepo.net>
+Date: Mon, 22 Jan 2024 10:01:25 +0100
+Subject: [PATCH] Fix GH-13215 GCC 14 build
+
+--- a/Zend/zend_atomic.h
++++ b/Zend/zend_atomic.h
+@@ -23,7 +23,7 @@
+ ((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) || (__GNUC__ > (x)))
+
+ /* Builtins are used to avoid library linkage */
+-#if __has_feature(c_atomic)
++#if __has_feature(c_atomic) && defined(__clang__)
+ #define HAVE_C11_ATOMICS 1
+ #elif ZEND_GCC_PREREQ(4, 7)
+ #define HAVE_GNUC_ATOMICS 1
diff --git a/dev-lang/php/php-8.2.15-r1.ebuild b/dev-lang/php/php-8.2.15-r1.ebuild
new file mode 100644
index 000000000000..66bb272f5852
--- /dev/null
+++ b/dev-lang/php/php-8.2.15-r1.ebuild
@@ -0,0 +1,840 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WANT_AUTOMAKE="none"
+
+inherit flag-o-matic multilib systemd autotools
+
+DESCRIPTION="The PHP language runtime engine"
+HOMEPAGE="https://www.php.net/"
+SRC_URI="https://www.php.net/distributions/${P}.tar.xz"
+
+LICENSE="PHP-3.01
+ BSD
+ Zend-2.0
+ bcmath? ( LGPL-2.1+ )
+ fpm? ( BSD-2 )
+ gd? ( gd )
+ unicode? ( BSD-2 LGPL-2.1 )"
+
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+
+# We can build the following SAPIs in the given order
+SAPIS="embed cli cgi fpm apache2 phpdbg"
+
+# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
+IUSE="${IUSE}
+ ${SAPIS/cli/+cli}
+ threads"
+
+IUSE="${IUSE} acl apparmor argon2 avif bcmath berkdb bzip2 calendar
+ cdb cjk +ctype curl debug
+ enchant exif ffi +fileinfo +filter firebird
+ +flatfile ftp gd gdbm gmp +iconv imap inifile
+ intl iodbc ipv6 +jit kerberos ldap ldap-sasl libedit lmdb
+ mhash mssql mysql mysqli nls
+ oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
+ readline selinux +session session-mm sharedmem
+ +simplexml snmp soap sockets sodium spell sqlite ssl
+ sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode
+ valgrind webp +xml xmlreader xmlwriter 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 )
+ avif? ( gd zlib )
+ 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 )
+ 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 )
+ test? ( cli )
+"
+
+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.7[apache2?,fpm?]
+ >=dev-libs/libpcre2-10.30[jit?,unicode]
+ virtual/libcrypt:=
+ fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) selinux? ( sys-libs/libselinux ) )
+ apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
+ argon2? ( app-crypt/argon2:= )
+ avif? ( media-libs/libavif:= )
+ berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) )
+ bzip2? ( app-arch/bzip2:0= )
+ cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
+ curl? ( >=net-misc/curl-7.29.0 )
+ enchant? ( app-text/enchant:2 )
+ ffi? ( >=dev-libs/libffi-3.0.11:= )
+ firebird? ( dev-db/firebird )
+ 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? ( net-libs/c-client[kerberos=,ssl=] )
+ intl? ( dev-libs/icu:= )
+ kerberos? ( virtual/krb5 )
+ 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[sdk] )
+ odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) )
+ postgres? ( >=dev-db/postgresql-9.1:* )
+ qdbm? ( dev-db/qdbm )
+ readline? ( sys-libs/readline:0= )
+ session-mm? ( dev-libs/mm )
+ snmp? ( >=net-analyzer/net-snmp-5.2 )
+ sodium? ( dev-libs/libsodium:=[-minimal(-)] )
+ spell? ( >=app-text/aspell-0.50 )
+ sqlite? ( >=dev-db/sqlite-3.7.6.3 )
+ ssl? ( >=dev-libs/openssl-1.0.2:0= )
+ tidy? ( app-text/htmltidy )
+ tokyocabinet? ( dev-db/tokyocabinet )
+ truetype? ( =media-libs/freetype-2* )
+ unicode? ( dev-libs/oniguruma:= )
+ valgrind? ( dev-debug/valgrind )
+ webp? ( media-libs/libwebp:0= )
+ xml? ( >=dev-libs/libxml2-2.9.0 )
+ xpm? ( x11-libs/libXpm )
+ xslt? ( dev-libs/libxslt )
+ zip? ( >=dev-libs/libzip-1.2.0:= )
+ zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
+"
+
+IDEPEND=">=app-eselect/eselect-php-0.9.7[apache2?,fpm?]"
+
+RDEPEND="${COMMON_DEPEND}
+ virtual/mta
+ fpm? (
+ selinux? ( sec-policy/selinux-phpfpm )
+ systemd? ( sys-apps/systemd ) )"
+
+# Bison isn't actually needed when building from a release tarball
+# However, the configure script will warn if it's absent or if you
+# have an incompatible version installed. See bug 593278.
+DEPEND="${COMMON_DEPEND}
+ app-arch/xz-utils
+ >=sys-devel/bison-3.0.1"
+
+BDEPEND="virtual/pkgconfig"
+
+PHP_MV="$(ver_cut 1)"
+
+PATCHES=(
+ "${FILESDIR}/php-iodbc-header-location.patch"
+ "${FILESDIR}/php-capstone-optional.patch"
+ "${FILESDIR}/php-8.2.8-openssl-tests.patch"
+ "${FILESDIR}/php-8.2.15-gcc14-build-fix.patch"
+)
+
+php_install_ini() {
+ local phpsapi="${1}"
+
+ # work out where we are installing the ini file
+ php_set_ini_dir "${phpsapi}"
+
+ # Always install the production INI file, bug 611214.
+ local phpinisrc="php.ini-production-${phpsapi}"
+ cp php.ini-production "${phpinisrc}" || die
+
+ # default to /tmp for save_path, bug #282768
+ sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
+
+ # Set the extension dir
+ sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
+ -i "${phpinisrc}" || die
+
+ # Set the include path to point to where we want to find PEAR packages
+ sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
+
+ insinto "${PHP_INI_DIR#${EPREFIX}}"
+ newins "${phpinisrc}" php.ini
+
+ elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
+ elog
+
+ dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
+ dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
+
+ if use opcache; then
+ elog "Adding opcache to $PHP_EXT_INI_DIR"
+ echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
+ "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
+ dosym "../ext/opcache.ini" \
+ "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
+ fi
+
+ # SAPI-specific handling
+ if [[ "${sapi}" == "fpm" ]] ; then
+ einfo "Installing FPM config files php-fpm.conf and www.conf"
+ insinto "${PHP_INI_DIR#${EPREFIX}}"
+ doins sapi/fpm/php-fpm.conf
+ insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
+ doins sapi/fpm/www.conf
+ fi
+
+ dodoc php.ini-{development,production}
+}
+
+php_set_ini_dir() {
+ PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
+ PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
+ PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
+}
+
+src_prepare() {
+ default
+
+ # In php-7.x, the FPM pool configuration files have been split off
+ # of the main config. By default the pool config files go in
+ # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
+ # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
+ # we'll install the pool configuration file "www.conf" there.
+ php_set_ini_dir fpm
+ sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
+ sapi/fpm/php-fpm.conf.in \
+ || die 'failed to move the include directory in php-fpm.conf'
+
+ # Emulate buildconf to support cross-compilation
+ rm -fr aclocal.m4 autom4te.cache config.cache \
+ configure main/php_config.h.in || die
+ eautoconf --force
+ eautoheader
+
+ # missing skipif; fixed upstream already
+ rm sapi/cgi/tests/005.phpt || die
+
+ # These three get BORKED on no-ipv6 systems,
+ #
+ # https://github.com/php/php-src/pull/11651
+ #
+ rm ext/sockets/tests/mcast_ipv6_recv.phpt \
+ ext/sockets/tests/mcast_ipv6_recv_limited.phpt \
+ ext/sockets/tests/mcast_ipv6_send.phpt \
+ || die
+
+ # fails in a network sandbox,
+ #
+ # https://github.com/php/php-src/issues/11662
+ #
+ rm ext/sockets/tests/bug63000.phpt || die
+
+ # expected output needs to be updated,
+ #
+ # https://github.com/php/php-src/pull/11648
+ #
+ rm ext/dba/tests/dba_tcadb.phpt || die
+
+ # Two IMAP tests missing SKIPIFs,
+ #
+ # https://github.com/php/php-src/pull/11654
+ #
+ rm ext/imap/tests/imap_mutf7_to_utf8.phpt \
+ ext/imap/tests/imap_utf8_to_mutf7_basic.phpt \
+ || die
+
+ # broken upstream with icu-73.x,
+ #
+ # https://github.com/php/php-src/issues/11128
+ #
+ rm ext/intl/tests/calendar_clear_variation1.phpt || die
+
+ # overly sensitive to INI values; fixes sent upstream:
+ #
+ # https://github.com/php/php-src/pull/11631
+ #
+ rm ext/session/tests/{bug74514,bug74936,gh7787}.phpt || die
+
+ # This is sensitive to the current "nice" level:
+ #
+ # https://github.com/php/php-src/issues/11630
+ #
+ rm ext/standard/tests/general_functions/proc_nice_basic.phpt || die
+
+ # Tests ignoring the "-n" flag we pass to run-tests.php,
+ #
+ # https://github.com/php/php-src/pull/11669
+ #
+ rm ext/standard/tests/file/bug60120.phpt \
+ ext/standard/tests/general_functions/proc_open_null.phpt \
+ ext/standard/tests/general_functions/proc_open_redirect.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets1.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets2.phpt \
+ ext/standard/tests/general_functions/proc_open_sockets3.phpt \
+ ext/standard/tests/ini_info/php_ini_loaded_file.phpt \
+ sapi/cli/tests/016.phpt \
+ sapi/cli/tests/023.phpt \
+ sapi/cli/tests/bug65275.phpt \
+ sapi/cli/tests/bug74600.phpt \
+ sapi/cli/tests/bug78323.phpt \
+ || die
+
+ # Same TEST_PHP_EXTRA_ARGS (-n) issue with this one, but it's
+ # already been fixed upstream.
+ rm sapi/cli/tests/017.phpt || die
+
+ # Most Oracle tests are borked,
+ #
+ # * https://github.com/php/php-src/issues/11804
+ # * https://github.com/php/php-src/pull/11820
+ # * https://github.com/php/php-src/issues/11819
+ #
+ rm ext/oci8/tests/*.phpt || die
+
+ # https://github.com/php/php-src/issues/12801
+ rm ext/pcre/tests/gh11374.phpt || die
+}
+
+src_configure() {
+ addpredict /usr/share/snmp/mibs/.index #nowarn
+ addpredict /var/lib/net-snmp/mib_indexes #nowarn
+
+ # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527
+ filter-lto
+
+ PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
+
+ # Don't allow ./configure to detect and use an existing version
+ # of PHP; this can lead to all sorts of weird unpredictability
+ # as in bug 900210.
+ export ac_cv_prog_PHP=""
+
+ # The php-fpm config file wants localstatedir to be ${EPREFIX}/var
+ # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
+ local our_conf=(
+ --prefix="${PHP_DESTDIR}"
+ --mandir="${PHP_DESTDIR}/man"
+ --infodir="${PHP_DESTDIR}/info"
+ --libdir="${PHP_DESTDIR}/lib"
+ --with-libdir="$(get_libdir)"
+ --localstatedir="${EPREFIX}/var"
+ --without-pear
+ --without-valgrind
+ --with-external-libcrypt
+ $(use_enable threads zts)
+ )
+
+ # The slotted man/info pages will be missed by the default list of
+ # docompress paths.
+ docompress "${PHP_DESTDIR}/man" "${PHP_DESTDIR}/info"
+
+ our_conf+=(
+ $(use_with apparmor fpm-apparmor)
+ $(use_with argon2 password-argon2 "${EPREFIX}/usr")
+ $(use_with avif)
+ $(use_enable bcmath)
+ $(use_with bzip2 bz2 "${EPREFIX}/usr")
+ $(use_enable calendar)
+ $(use_enable ctype)
+ $(use_with curl)
+ $(use_enable xml dom)
+ $(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_with mhash mhash "${EPREFIX}/usr")
+ $(use_with iconv iconv \
+ $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr"))
+ $(use_enable intl)
+ $(use_enable ipv6)
+ $(use_with kerberos)
+ $(use_with xml libxml)
+ $(use_enable unicode mbstring)
+ $(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)
+ $(use_with selinux fpm-selinux)
+ $(use_with spell pspell "${EPREFIX}/usr")
+ $(use_enable simplexml)
+ $(use_enable sharedmem shmop)
+ $(use_with snmp snmp "${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)
+ $(use_enable xml)
+ $(use_enable xmlreader)
+ $(use_enable xmlwriter)
+ $(use_with xslt xsl)
+ $(use_with zip)
+ $(use_with zlib zlib "${EPREFIX}/usr")
+ $(use_enable debug)
+ $(use_with valgrind)
+ )
+
+ # DBA support
+ if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
+ || use qdbm || use lmdb || use tokyocabinet ; then
+ our_conf+=( "--enable-dba" )
+ fi
+
+ # DBA drivers support
+ our_conf+=(
+ $(use_with cdb)
+ $(use_with berkdb db4 "${EPREFIX}/usr")
+ $(use_enable flatfile)
+ $(use_with gdbm gdbm "${EPREFIX}/usr")
+ $(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)
+ $(use_enable cjk gd-jis-conv)
+ $(use_with gd jpeg)
+ $(use_with xpm)
+ $(use_with webp)
+ )
+ # enable gd last, so configure can pick up the previous settings
+ our_conf+=( $(use_enable gd) )
+
+ # IMAP support
+ if use imap ; then
+ our_conf+=(
+ $(use_with imap imap "${EPREFIX}/usr")
+ $(use_with ssl imap-ssl "${EPREFIX}/usr")
+ )
+ fi
+
+ # LDAP support
+ if use ldap ; then
+ our_conf+=(
+ $(use_with ldap ldap "${EPREFIX}/usr")
+ $(use_with ldap-sasl)
+ )
+ fi
+
+ # MySQL support
+ our_conf+=( $(use_with mysqli) )
+
+ local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
+ if use mysql || use mysqli ; then
+ our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
+ fi
+
+ # ODBC support
+ 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) )
+
+ # PDO support
+ if use pdo ; then
+ our_conf+=(
+ $(use_with mssql pdo-dblib "${EPREFIX}/usr")
+ $(use_with mysql pdo-mysql "mysqlnd")
+ $(use_with postgres pdo-pgsql)
+ $(use_with sqlite pdo-sqlite)
+ $(use_with firebird pdo-firebird "${EPREFIX}/usr")
+ $(use_with oci8-instant-client pdo-oci)
+ )
+ fi
+
+ # readline/libedit support
+ our_conf+=(
+ $(use_with readline readline "${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) )
+ fi
+
+ # Use pic for shared modules such as apache2's mod_php
+ our_conf+=( --with-pic )
+
+ # we use the system copy of pcre
+ # --with-external-pcre affects ext/pcre
+ our_conf+=(
+ --with-external-pcre
+ $(use_with jit pcre-jit)
+ )
+
+ # Catch CFLAGS problems
+ # Fixes bug #14067.
+ # Changed order to run it in reverse for bug #32022 and #12021.
+ replace-cpu-flags "k6*" "i586"
+
+ # Cache the ./configure test results between SAPIs.
+ our_conf+=( --cache-file="${T}/config.cache" )
+
+ # Support user-passed configuration parameters
+ our_conf+=( ${EXTRA_ECONF:-} )
+
+ # Support the Apache2 extras, they must be set globally for all
+ # SAPIs to work correctly, especially for external PHP extensions
+
+ # Create separate build trees for each enabled SAPI. The upstream
+ # build system doesn't do this, but we have to do it to use a
+ # different php.ini for each SAPI (see --with-config-file-path and
+ # --with-config-file-scan-dir below). The path winds up define'd
+ # in main/build-defs.h which is included in main/php.h which is
+ # included by basically everything; so, avoiding a rebuild after
+ # changing it is not an easy job.
+ local one_sapi
+ local sapi
+ mkdir "${WORKDIR}/sapis-build" || die
+ for one_sapi in $SAPIS ; do
+ use "${one_sapi}" || continue
+ php_set_ini_dir "${one_sapi}"
+
+ # The BUILD_DIR variable is used to determine where to output
+ # the files that autotools creates. This was all originally
+ # based on the autotools-utils eclass.
+ BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
+ cp -a "${S}" "${BUILD_DIR}" || die
+
+ local sapi_conf=(
+ --with-config-file-path="${PHP_INI_DIR}"
+ --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
+ )
+
+ for sapi in $SAPIS ; do
+ case "$sapi" in
+ cli|cgi|embed|fpm|phpdbg)
+ if [[ "${one_sapi}" == "${sapi}" ]] ; then
+ sapi_conf+=( "--enable-${sapi}" )
+ if [[ "fpm" == "${sapi}" ]] ; then
+ sapi_conf+=(
+ $(use_with acl fpm-acl)
+ $(use_with systemd fpm-systemd)
+ )
+ fi
+ else
+ sapi_conf+=( "--disable-${sapi}" )
+ fi
+ ;;
+
+ apache2)
+ if [[ "${one_sapi}" == "${sapi}" ]] ; then
+ sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
+ else
+ sapi_conf+=( --without-apxs2 )
+ fi
+ ;;
+ esac
+ done
+
+ # Construct the $myeconfargs array by concatenating $our_conf
+ # (the common args) and $sapi_conf (the SAPI-specific args).
+ local myeconfargs=( "${our_conf[@]}" )
+ myeconfargs+=( "${sapi_conf[@]}" )
+
+ pushd "${BUILD_DIR}" > /dev/null || die
+ einfo "Running econf in ${BUILD_DIR}"
+ econf "${myeconfargs[@]}"
+ popd > /dev/null || die
+ done
+}
+
+src_compile() {
+ # snmp seems to run during src_compile, too (bug #324739)
+ addpredict /usr/share/snmp/mibs/.index #nowarn
+ addpredict /var/lib/net-snmp/mib_indexes #nowarn
+
+ if use oci8-instant-client && use kerberos && use imap && use phar; then
+ # A conspiracy takes place when the first three of these flags
+ # are set together, causing the newly-built "php" to open
+ # /dev/urandom with mode rw when it starts. That's not actually
+ # a problem... unless you also have USE=phar, which runs that
+ # "php" to build some phar thingy in src_compile(). Later in
+ # src_test(), portage (at least) sets "addpredict /" so the
+ # problem does not repeat.
+ addpredict /dev/urandom #nowarn
+ fi
+
+ local sapi
+ for sapi in ${SAPIS} ; do
+ use "${sapi}" && emake -C "${WORKDIR}/sapis-build/${sapi}"
+ done
+}
+
+src_install() {
+ # see bug #324739 for what happens when we don't have that
+ addpredict /usr/share/snmp/mibs/.index #nowarn
+
+ # grab the first SAPI that got built and install common files from there
+ local first_sapi="", sapi=""
+ for sapi in $SAPIS ; do
+ if use $sapi ; then
+ first_sapi=$sapi
+ break
+ fi
+ done
+
+ # Makefile forgets to create this before trying to write to it...
+ dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
+
+ # Install php environment (without any sapis)
+ cd "${WORKDIR}/sapis-build/$first_sapi" || die
+ emake INSTALL_ROOT="${D}" \
+ install-build install-headers install-programs
+
+ local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
+
+ # Create the directory where we'll put version-specific php scripts
+ keepdir "/usr/share/php${PHP_MV}"
+
+ local file=""
+ local sapi_list=""
+
+ for sapi in ${SAPIS}; do
+ if use "${sapi}" ; then
+ einfo "Installing SAPI: ${sapi}"
+ cd "${WORKDIR}/sapis-build/${sapi}" || die
+
+ if [[ "${sapi}" == "apache2" ]] ; then
+ # We're specifically not using emake install-sapi as libtool
+ # may cause unnecessary relink failures (see bug #351266)
+ insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
+ newins ".libs/libphp$(get_libname)" \
+ "libphp${PHP_MV}$(get_libname)"
+ keepdir "/usr/$(get_libdir)/apache2/modules"
+ else
+ # needed each time, php_install_ini would reset it
+ local dest="${PHP_DESTDIR#${EPREFIX}}"
+ into "${dest}"
+ case "$sapi" in
+ cli)
+ source="sapi/cli/php"
+ # Install the "phar" archive utility.
+ if use phar ; then
+ emake INSTALL_ROOT="${D}" install-pharcmd
+ dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}"
+ fi
+ ;;
+ cgi)
+ source="sapi/cgi/php-cgi"
+ ;;
+ fpm)
+ source="sapi/fpm/php-fpm"
+ ;;
+ embed)
+ source="libs/libphp$(get_libname)"
+ ;;
+ phpdbg)
+ source="sapi/phpdbg/phpdbg"
+ ;;
+ *)
+ die "unhandled sapi in src_install"
+ ;;
+ esac
+
+ if [[ "${source}" == *"$(get_libname)" ]]; then
+ dolib.so "${source}"
+ else
+ dobin "${source}"
+ local name="$(basename ${source})"
+ dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}"
+ fi
+ fi
+
+ php_install_ini "${sapi}"
+
+ # construct correct SAPI string for php-config
+ # thanks to ferringb for the bash voodoo
+ if [[ "${sapi}" == "apache2" ]]; then
+ sapi_list="${sapi_list:+${sapi_list} }apache2handler"
+ else
+ sapi_list="${sapi_list:+${sapi_list} }${sapi}"
+ fi
+ fi
+ done
+
+ # Installing opcache module
+ if use opcache ; then
+ into "${PHP_DESTDIR#${EPREFIX}}"
+ dolib.so "modules/opcache$(get_libname)"
+ fi
+
+ # Install env.d files
+ newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
+ sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
+ sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
+
+ # set php-config variable correctly (bug #278439)
+ sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
+ "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
+
+ if use fpm ; then
+ if use systemd; then
+ systemd_newunit "${FILESDIR}/php-fpm_at.service" \
+ "php-fpm@${SLOT}.service"
+ else
+ systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
+ "php-fpm@${SLOT}.service"
+ fi
+ fi
+}
+
+src_test() {
+ export TEST_PHP_EXECUTABLE="${WORKDIR}/sapis-build/cli/sapi/cli/php"
+
+ # Sometimes when the sub-php launches a sub-sub-php, it uses these.
+ # Without an "-n" in all instances, the *live* php.ini can be loaded,
+ # pulling in *live* zend extensions. And those can be incompatible
+ # with the thing we just built.
+ export TEST_PHP_EXTRA_ARGS="-n"
+
+ if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
+ export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
+ fi
+
+ if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
+ export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
+ fi
+
+ # The sendmail override prevents ext/imap/tests/bug77020.phpt from
+ # actually trying to send mail, and will be fixed upstream soon:
+ #
+ # https://github.com/php/php-src/issues/11629
+ #
+ # The IO capture tests need to be disabled because they fail when
+ # std{in,out,err} are redirected (as they are within portage).
+ #
+ # One -n applies to the top-level "php", while the other applies
+ # to any sub-php that get invoked by the test runner.
+ SKIP_IO_CAPTURE_TESTS=1 SKIP_PERF_SENSITIVE=1 REPORT_EXIT_STATUS=1 \
+ "${TEST_PHP_EXECUTABLE}" -n \
+ "${WORKDIR}/sapis-build/cli/run-tests.php" --offline -n -q \
+ -d "session.save_path=${T}" \
+ -d "sendmail_path=echo >/dev/null" \
+ || die "tests failed"
+}
+
+pkg_postinst() {
+ # Output some general info to the user
+ if use apache2 ; then
+ elog
+ elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
+ elog "your apache2 command. OpenRC users can append that string to"
+ elog "APACHE2_OPTS in /etc/conf.d/apache2."
+ elog
+ elog "The apache module configuration file 70_mod_php.conf is"
+ elog "provided (and maintained) by eselect-php."
+ elog
+ fi
+
+ # Create the symlinks for php
+ local m
+ for m in ${SAPIS}; do
+ [[ ${m} == 'embed' ]] && continue;
+ if use $m ; then
+ local ci=$(eselect php show $m)
+ if [[ -z $ci ]]; then
+ eselect php set $m php${SLOT} || die
+ einfo "Switched ${m} to use php:${SLOT}"
+ einfo
+ elif [[ $ci != "php${SLOT}" ]] ; then
+ elog "To switch $m to use php:${SLOT}, run"
+ elog " eselect php set $m php${SLOT}"
+ elog
+ fi
+ fi
+ done
+
+ # Remove dead symlinks for SAPIs that were just disabled. For
+ # example, if the user has the cgi SAPI enabled, then he has an
+ # eselect-php symlink for it. If he later reinstalls PHP with
+ # USE="-cgi", that symlink will break. This call to eselect is
+ # supposed to remove that dead link per bug 572436.
+ eselect php cleanup || die
+
+ if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
+ elog "To build extensions for this version of PHP, you will need to"
+ elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
+ elog
+ fi
+
+ # Warn about the removal of PHP_INI_VERSION if the user has it set.
+ if [[ -n "${PHP_INI_VERSION}" ]]; then
+ ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
+ ewarn 'remove it from your configuration at your convenience. See'
+ ewarn
+ ewarn ' https://bugs.gentoo.org/611214'
+ ewarn
+ ewarn 'for more information.'
+ fi
+
+ elog "For details on how version slotting works, please see"
+ elog "the wiki:"
+ elog
+ elog " https://wiki.gentoo.org/wiki/PHP"
+ elog
+}
+
+pkg_postrm() {
+ # This serves two purposes. First, if we have just removed the last
+ # installed version of PHP, then this will remove any dead symlinks
+ # belonging to eselect-php. Second, if a user upgrades slots from
+ # (say) 5.6 to 7.0 and depcleans the old slot, then this will update
+ # his existing symlinks to point to the new 7.0 installation. The
+ # latter is bug 432962.
+ #
+ # Note: the eselect-php package may not be installed at this point,
+ # so we can't die() if this command fails.
+ eselect php cleanup
+}
diff --git a/dev-lang/php/php-8.3.2.ebuild b/dev-lang/php/php-8.3.2-r1.ebuild
index 2f308ebfbdf4..e2dff19d343f 100644
--- a/dev-lang/php/php-8.3.2.ebuild
+++ b/dev-lang/php/php-8.3.2-r1.ebuild
@@ -149,6 +149,7 @@ PHP_MV="$(ver_cut 1)"
PATCHES=(
"${FILESDIR}/php-iodbc-header-location.patch"
+ "${FILESDIR}/php-8.2.15-gcc14-build-fix.patch"
)
php_install_ini() {
diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest
index 7c97457b518f..6ee3f58e9b38 100644
--- a/dev-lang/python/Manifest
+++ b/dev-lang/python/Manifest
@@ -31,15 +31,15 @@ DIST python-gentoo-patches-3.13.0a2_p1.tar.xz 5176 BLAKE2B 87e278c11fafc69df918b
DIST python-gentoo-patches-3.13.0a3.tar.xz 5176 BLAKE2B 388453fe1bee3a901fc526f15580cfd9e2db60bda6ed0d0546df3d1bca8bbfd680931533c8b22f091699be6886985378ef2d8e5c8f2819fa53a1aa8a1cb51750 SHA512 9787feb96bfd50d9be9a5324a3e0c30175baae9fdcb62adb7fcf0d625b6b84494dc4ecefab8f8291256ef508f908350dcb781e1bdd0b12956e662bbe97fad3ae
DIST python-gentoo-patches-3.8.18_p1.tar.xz 33160 BLAKE2B 53c7d71f2cdcc21e991a9d61c8cb8833212d144d145d5949c5b28b62080121250d7633f477453743426d6e0ebdc9f6bd6648d4ccac8dfb2d559126455d8b1da3 SHA512 7fbadb2468711b5ecb8a9fefcf4dfe567df7f9b038ec87f37095d02589e7debbf5a8ad3f759d95b69ca60ce9fcd3ccf4aecde6592ed69c030cf51250935db052
DIST python-gentoo-patches-3.9.18_p1.tar.xz 25792 BLAKE2B f24ab6d3443c2b39a2fdca5810790eed51d2d42c93a3b41d75cad6b6c99ebf709f598eaa9881858e13ad102867d97a159f3a6d97a42569d5183de6118fb953c6 SHA512 be0c60c65d4c982cd8b934d14b69f5f41ca9f0d6c51d6bf195d64d0a5ffff3d359edc29a6a2f2808450c896d2795cc773c9f31680970205a37955134be50ee79
-EBUILD python-2.7.18_p16-r1.ebuild 8595 BLAKE2B 810a7db53bf8b6c7756113adc02cbe3c4ecc0883389223a0d363a1ffcc3f16cd07ee6a113ec1a6a96aa6c2e6eaf9d359c9833c4b13e6c0bea6e46c03e75bd70d SHA512 c7a4e70c374fbdaf7ccba7eb262c03a9009b925676609bcb934ed452313adf9104c7943338f20167f40d5a863da8755fafbe027e2571488393b9d4bdee55af03
-EBUILD python-3.10.13.ebuild 14194 BLAKE2B b2b1430e1c8f430a0d382b291e396d9e98c39a1b2e356a0955b272d69d1b18ff0513cceb7530f626470f742706a70b98880f29e8ad3822aa2ca6a2e0f32ba750 SHA512 0c2e2355e9ed690a2d433c7392de8d119efe30ba246eb12a287e16fe8822b3f555b7f12a1160744413994876c799e85ec463149bae7516483085c09ca4d0d320
-EBUILD python-3.11.7.ebuild 15077 BLAKE2B 79af0e6b8af99fa7d60d3408f408e5d55e046bd71918b9ab03b9eb68bb1605d4469d0e168524a3e3fc9a2dd42ea01c847198d6d67a874a1181755cd09200e94f SHA512 161b4e06661ce2ee21f8c2a08ade583b238d81d894738fea1e3965c00f149d3e26673e2da3a54cdd0b76a71442eaabc5c5939368c2d6c184bf5e0f2819d66dc1
-EBUILD python-3.11.8.ebuild 15082 BLAKE2B c6e51e89b2f0232aff44569cb2214ca6081a4a09f750f2e7780e23b05f516b8d42b8be86faa70e843b99dbe57a687641597d18e67fa4a7101304c98dcbfe0fd7 SHA512 9b7c7a9fe97c3da0e0388196ed0385ae0212ad52504e721cf7a604b9adbfcca4602956454f45c3d01acc93ce9f47b3b49d98292dc060094e5c198e8d4661221e
-EBUILD python-3.12.1.ebuild 14665 BLAKE2B fc36533f7ef899d40e991dabd8afee6e4a9fd12c6ca46a35de868899b9e36274a75403be2f0489f6d2a082f79bc449e14308328cc663c61890f910ecadcafb26 SHA512 142df80877917284abb34b9b8c2bac0c13dad1328c0d6ae2e0f5058412574dee4621c21e87f0282d95197523b52b28f3566e312575fbd0ddfc3b2c313a59a3a9
-EBUILD python-3.12.1_p1.ebuild 14644 BLAKE2B c665f9c4d66b10988ca13ba49b906de422cd94699473c4b6158b666fdd36e5c910f80d639a930cf8a690cfa4962baf02ea264bd6c757c73da176314adac06b1f SHA512 4dd11efcc1ebe97ac5e148dab76deee3170c22f8b96eef051ca66841439534936427949c77d30c88f79b6b09de0c6adc1b1d1fc08f1952d956444d2ce754eb74
-EBUILD python-3.12.2.ebuild 14643 BLAKE2B e865b16e1f8722cb19757f57d9fbf281ee2835d7b0ac19cc8a3c9f244ef122d272c2e5facb83117ddd3e487736eccb04e1fb10acfa21c6a4db3610b6267ed68e SHA512 a40d40177bb45f432f693dabf35a662c5e39a4cee55ae3e7fcd27182138caf061c6cb82289fae615d0ba46f6d620b01126b2163ce2824a24c5db4f3be7b6868b
-EBUILD python-3.13.0_alpha2.ebuild 14472 BLAKE2B 8c73b1b09066ecde25bf7cc02b5464b9c693726df8fab3a3087e5db4e43a8ace36c5a7308d8b8e58a6bded0105a0a35d8323bf88de8b2205d103454a27dc6052 SHA512 b444188ad98f78b3f620ca021734bd0f9790ea6a3ccd085ab11ac54ec4cf30910850ad6b54c8d05bdd35e309228327d8a7e185df951a61f69869987c838d89bd
-EBUILD python-3.13.0_alpha3.ebuild 14469 BLAKE2B 55868ed6a99db71be14e4f62b1b6e842b08dd8e1879f14aae2f75728d1d64e2325c9cd02068e151b3873a5acaab8a9bb392fb659bf8492317abc4ed2c094419c SHA512 9ce61d5f5d3f9618532ec31ad7034ec8a1f4846a9de5079961beb570f3156b99120d18976f45bf05b2e73c6e503c241bbb0bd863fbfd12bf72597d2c22b0b55d
-EBUILD python-3.8.18.ebuild 12362 BLAKE2B 28a2d0e389e3382695b199ec43d9dfdd92967c15e915362cecff6fc59812845a571cb6f33e5ba801848f4e8d3e8ea078c15a1d319dbe72c64029b1f1272b092a SHA512 f0f8f9206afe429cfee0c86435920144f2903f78bbb671e6a0038dbac1cc5f32ff1612fc14d5bca3e9cf9975ff5550f04fc6d515978b0a0ae1dbab24d107663b
-EBUILD python-3.9.18.ebuild 13845 BLAKE2B 9976335cb9df5bc1572948047efb2586ab5ecd0ad2a2c7b2e1bb617d0909dede03540e55e045b6a7e736df48a78bc4e3a92aad41e804f74f4079d54ee3394991 SHA512 cde972ba8e69e0b40a6111667f1f22b0bceddb548f615532dcb6dc93502cacb3f81c2cc068cdf35534308f3a81cf1cd9cab345e329433064175ec011a198481d
+EBUILD python-2.7.18_p16-r1.ebuild 8657 BLAKE2B 0eb279b8d90b6dca644c5ed5fb16921240d7f0016c56933b2662947ca7a358cd4031296123f1a43123698ca6c3f84cd191c911cc33bc4b0ae7013322b9df27de SHA512 9aecd6a59375cfcc7f71b7a4c7f35a5bbe620d01264fdd28990b4a4835a43b6e09b94da3e8653917bbd996c38c99a354bf2545bda3a0cbc3cd69652ddc751944
+EBUILD python-3.10.13.ebuild 14256 BLAKE2B 81635a820dfe695b915fc41301c7a6d89374fbcf9eb912c526a4acbb8803347daf84403534483c6255afe90f54ee819a4529d3c6532987eeb473e4bf9baee00e SHA512 2b19546b8e4b4b2646906da0a428d735a9a8310a8dd41c50b808fa795cf5e0b483ba481835ce308dcda37bd481320c2f0046582bc7ba59c6a4294f97ab8572ce
+EBUILD python-3.11.7.ebuild 15139 BLAKE2B bdfb24a91e2a1dfa93b0a67b1fb4355661dc80be5293bba672960f6a264d34b4457c3944c96d7c538b1b2e8162723ff2b54adbc6aae66f6700a30970b72cbc60 SHA512 aeb6e5878d51c16ea34d7600e39f6fbc65942b4ffcccef0136c09bde23bddbf97c4357efbb944578fe2d92b31dd168c1ab6b8f4d05c314c05937e43040faa37b
+EBUILD python-3.11.8.ebuild 15144 BLAKE2B d09cabeb6812787406806980f6d965e9b8eff12fd7025ffddbc506a81417c8a1787fc877e6f5ff011030d702c06648e78a45cebe1fe5f88cfae33d438466cc1b SHA512 6e2deed6cb93875f1d805480e471fe9a38adc7932f8229f92b80f8230ab5f7a316a2cd95261dd315e01290a2967ab72780b5a3f6208525901ea9f6807b9f4bac
+EBUILD python-3.12.1.ebuild 14727 BLAKE2B ff90d5b7df3b1f436de662e9243836db14706b0c3ad93c97cb4a7017dec7d8a07b183dd89c2663d105c43131034a4ba9af5c7f3637bacdf6fb2412814c8d69f0 SHA512 0ca516ff724627d7e2f5702ef1a35a593128a3bc5cd5d306b50860e4bede40f488b2235a4570a0cb756b5de02709249a9d42d7680afa449b58e8ef1d1caab2cd
+EBUILD python-3.12.1_p1.ebuild 14706 BLAKE2B 374feff63e990adf0f45cf2f22a23ba81d752c03cd6c273a011c256344d5538210e96b32f919a967470b929f1981caa874058dfd74d4d50d6421fde7e13d46b6 SHA512 04169e5a63f01d2f1cb3a8928a6cb976d6cffac69be1319e1281a4cafbf489881f7cffea2594c8bba9403f56e5a855eb626dc5ca3c3636b87c61c7d91fe5b1fc
+EBUILD python-3.12.2.ebuild 14705 BLAKE2B 18903ba05981c83c0d07a74f033b906d69eab7681a884a232636ecbd47034fd0586b51713c584e72c505fdc5fbb7cdc871a9a73c1a23003ae4e166d405690412 SHA512 103e71c40949b0dbcf66155c8a848d2ff50c90123342f46dd50bb06e54633dd198fbf91b6c916d98e5ba00821905af5a2f928c7f87abcc1e40c474ee1aedc1dc
+EBUILD python-3.13.0_alpha2.ebuild 14534 BLAKE2B 97829f0a0e2329beef8f56b8483662e7e007fbd000df4c930e8d5e6aaf430bcc6f1d32cba539f839713c4adfede0a71aa6c69ba6ba3e50cd0017462616ed26e9 SHA512 186ebdb26b1fd53c4729102e10542ff7d6bc2406edc684684c1615e2d6b040135227188dad7e691f205bd744b26871668dfb85b1df7ca2e703b6ebe449d9279c
+EBUILD python-3.13.0_alpha3.ebuild 14531 BLAKE2B a2c577ef91533a5fe3f110af0c8242da605c9b4a2d933e7dbc0fdc92f03fdc61ff629d6b7b4fc9933a64b811424dd579e52b41344bdf73e38556ef86689988f3 SHA512 e396dc8272f9f827b2bcb22842e2a195b0ffed820b59cd27665568bd5f539281bb9bd9a7dbbed8e8036b4c8f30ebd3edea5732aee74023e4f42a8a4a7a626ee5
+EBUILD python-3.8.18.ebuild 12424 BLAKE2B 08a9b26fd0c6700fc2fa86faa01ffc67d70e5b87be8aa5cad74e40a13183df2cb91fabbc642158503a7ce58d14cb6af02f916193118a11b5a9b53a16ece4993d SHA512 0000454a189a3e097f31466d3825f66cae30206c8a3350031b0ee66f0aa1cf4b690727d4318c76b9e89836ce0d58e4aac959b469a97eb3f1722e8002f56228ef
+EBUILD python-3.9.18.ebuild 13907 BLAKE2B 3a727aa599900b6edeed06d14798c6b91e189d91e7364b1e2d456835b6c7b521999b602760bdb8cec54b31aea55c6c0f6d71e58fec97d00789c759d8eda04dbe SHA512 1a6d71f8384109fb02e6665e98becb1fdf5f8b3545fa6339e95b3cfc7d40a0cf3fb7f1855fc34e97fc52a28965a18fffcbf2d1283633b95e80e28bb0eafd10b0
MISC metadata.xml 1350 BLAKE2B 394c04ff855d8e48312e348ec0cd70c23f39084d52eb953c335fe5791c61344244d18af272e4b81e2c5aa2beefd9e3cc5e4bc8ff44d29aa3234532203b597cba SHA512 b71ee05531554711a7c8dffeddce0845271c05dee915421beb8bb9960507e0afaf2fa5d3898325f0bff7061e76febff2fcedb32e5cd520d4ffc3fad2355cb79f
diff --git a/dev-lang/python/python-2.7.18_p16-r1.ebuild b/dev-lang/python/python-2.7.18_p16-r1.ebuild
index 7474e7d083e5..1195e193f0c6 100644
--- a/dev-lang/python/python-2.7.18_p16-r1.ebuild
+++ b/dev-lang/python/python-2.7.18_p16-r1.ebuild
@@ -39,6 +39,7 @@ RESTRICT="test"
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
+# <expat-2.6: https://github.com/python/cpython/issues/115133
RDEPEND="
app-arch/bzip2:=
dev-libs/libffi:=
diff --git a/dev-lang/python/python-3.10.13.ebuild b/dev-lang/python/python-3.10.13.ebuild
index a843933d9ab8..a8dc2f6575f8 100644
--- a/dev-lang/python/python-3.10.13.ebuild
+++ b/dev-lang/python/python-3.10.13.ebuild
@@ -40,6 +40,7 @@ RESTRICT="!test? ( test )"
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
+# <expat-2.6: https://github.com/python/cpython/issues/115133
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=
diff --git a/dev-lang/python/python-3.11.7.ebuild b/dev-lang/python/python-3.11.7.ebuild
index bd0403f833ed..a43e610443d3 100644
--- a/dev-lang/python/python-3.11.7.ebuild
+++ b/dev-lang/python/python-3.11.7.ebuild
@@ -40,6 +40,7 @@ RESTRICT="!test? ( test )"
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
+# <expat-2.6: https://github.com/python/cpython/issues/115133
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=
diff --git a/dev-lang/python/python-3.11.8.ebuild b/dev-lang/python/python-3.11.8.ebuild
index 669069799e62..8ea6f0bd7b58 100644
--- a/dev-lang/python/python-3.11.8.ebuild
+++ b/dev-lang/python/python-3.11.8.ebuild
@@ -40,6 +40,7 @@ RESTRICT="!test? ( test )"
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
+# <expat-2.6: https://github.com/python/cpython/issues/115133
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=
diff --git a/dev-lang/python/python-3.12.1.ebuild b/dev-lang/python/python-3.12.1.ebuild
index bcacd5492511..6c0fd66252e4 100644
--- a/dev-lang/python/python-3.12.1.ebuild
+++ b/dev-lang/python/python-3.12.1.ebuild
@@ -40,6 +40,7 @@ RESTRICT="!test? ( test )"
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
+# <expat-2.6: https://github.com/python/cpython/issues/115133
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=
diff --git a/dev-lang/python/python-3.12.1_p1.ebuild b/dev-lang/python/python-3.12.1_p1.ebuild
index 261d285075cf..432a056af7ae 100644
--- a/dev-lang/python/python-3.12.1_p1.ebuild
+++ b/dev-lang/python/python-3.12.1_p1.ebuild
@@ -40,6 +40,7 @@ RESTRICT="!test? ( test )"
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
+# <expat-2.6: https://github.com/python/cpython/issues/115133
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=
diff --git a/dev-lang/python/python-3.12.2.ebuild b/dev-lang/python/python-3.12.2.ebuild
index 0c77d80ba8fa..3c9c8ce7a1ce 100644
--- a/dev-lang/python/python-3.12.2.ebuild
+++ b/dev-lang/python/python-3.12.2.ebuild
@@ -40,6 +40,7 @@ RESTRICT="!test? ( test )"
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
+# <expat-2.6: https://github.com/python/cpython/issues/115133
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=
diff --git a/dev-lang/python/python-3.13.0_alpha2.ebuild b/dev-lang/python/python-3.13.0_alpha2.ebuild
index 6907f2db8bd3..4ddf84d9d1c8 100644
--- a/dev-lang/python/python-3.13.0_alpha2.ebuild
+++ b/dev-lang/python/python-3.13.0_alpha2.ebuild
@@ -39,6 +39,7 @@ RESTRICT="!test? ( test )"
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
+# <expat-2.6: https://github.com/python/cpython/issues/115133
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=
diff --git a/dev-lang/python/python-3.13.0_alpha3.ebuild b/dev-lang/python/python-3.13.0_alpha3.ebuild
index 772ef1abd235..e3cdda1302cb 100644
--- a/dev-lang/python/python-3.13.0_alpha3.ebuild
+++ b/dev-lang/python/python-3.13.0_alpha3.ebuild
@@ -39,6 +39,7 @@ RESTRICT="!test? ( test )"
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
+# <expat-2.6: https://github.com/python/cpython/issues/115133
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=
diff --git a/dev-lang/python/python-3.8.18.ebuild b/dev-lang/python/python-3.8.18.ebuild
index 54af09bc8cfd..8c559d9f08d8 100644
--- a/dev-lang/python/python-3.8.18.ebuild
+++ b/dev-lang/python/python-3.8.18.ebuild
@@ -40,6 +40,7 @@ RESTRICT="!test? ( test )"
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
+# <expat-2.6: https://github.com/python/cpython/issues/115133
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=
diff --git a/dev-lang/python/python-3.9.18.ebuild b/dev-lang/python/python-3.9.18.ebuild
index 15bb2cfef77e..c10ec2f54b06 100644
--- a/dev-lang/python/python-3.9.18.ebuild
+++ b/dev-lang/python/python-3.9.18.ebuild
@@ -40,6 +40,7 @@ RESTRICT="!test? ( test )"
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
+# <expat-2.6: https://github.com/python/cpython/issues/115133
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils:=