summaryrefslogtreecommitdiff
path: root/dev-lang
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/Manifest.gzbin22647 -> 22637 bytes
-rw-r--r--dev-lang/ammonite-repl-bin/Manifest2
-rw-r--r--dev-lang/ammonite-repl-bin/ammonite-repl-bin-3.0.0.ebuild2
-rw-r--r--dev-lang/dafny-bin/Manifest4
-rw-r--r--dev-lang/dafny-bin/dafny-bin-4.10.0.ebuild2
-rw-r--r--dev-lang/dafny-bin/dafny-bin-4.9.1.ebuild56
-rw-r--r--dev-lang/dafny/Manifest2
-rw-r--r--dev-lang/dafny/dafny-4.10.0.ebuild2
-rw-r--r--dev-lang/go/Manifest3
-rw-r--r--dev-lang/go/files/go-1.24-skip-gdb-tests.patch12
-rw-r--r--dev-lang/go/go-1.24.1.ebuild1
-rw-r--r--dev-lang/php/Manifest10
-rw-r--r--dev-lang/php/files/php-8.3.10-optional-png-testfixen.patch1249
-rw-r--r--dev-lang/php/files/php-bug75457-pcre2-backport.patch22
-rw-r--r--dev-lang/php/php-8.2.28.ebuild (renamed from dev-lang/php/php-8.2.27-r1.ebuild)1
-rw-r--r--dev-lang/php/php-8.3.19.ebuild (renamed from dev-lang/php/php-8.3.17.ebuild)26
-rw-r--r--dev-lang/pypy/Manifest10
-rw-r--r--dev-lang/pypy/pypy-2.7.7.3.17.ebuild315
-rw-r--r--dev-lang/pypy/pypy-2.7.7.3.19.ebuild2
-rw-r--r--dev-lang/pypy/pypy-3.10.7.3.17_p4.ebuild238
-rw-r--r--dev-lang/pypy/pypy-3.10.7.3.19_p1.ebuild2
-rw-r--r--dev-lang/python/Manifest9
-rw-r--r--dev-lang/python/python-3.10.16_p2.ebuild2
-rw-r--r--dev-lang/python/python-3.11.11_p2.ebuild2
-rw-r--r--dev-lang/python/python-3.14.0_alpha6-r100.ebuild635
-rw-r--r--dev-lang/python/python-3.14.0_alpha6.ebuild630
26 files changed, 1335 insertions, 1904 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz
index f96e48f1ebcd..a8e5dc2a74d8 100644
--- a/dev-lang/Manifest.gz
+++ b/dev-lang/Manifest.gz
Binary files differ
diff --git a/dev-lang/ammonite-repl-bin/Manifest b/dev-lang/ammonite-repl-bin/Manifest
index b30cbe91e496..40d29c4216ce 100644
--- a/dev-lang/ammonite-repl-bin/Manifest
+++ b/dev-lang/ammonite-repl-bin/Manifest
@@ -6,5 +6,5 @@ DIST ammonite-repl-bin-3.0.0-2.13 52789295 BLAKE2B f743c6214daefeb6b65f06e5dfd23
DIST ammonite-repl-bin-3.0.0-3.3 58494899 BLAKE2B bab9c523dc9fe5621ee67a50685fb4d1b6995f2b7a8a5bd5e25cff6fe55e8763d48f62144b24d73213c41ce6c2967144488dbbed33cdf62a8922ee6c191794b8 SHA512 2bb8e3baa20f545babb6b570c203329d7df5dcdae030d1fbc439721376a45643c9bdd5323dbc67ee98592ed1fb88bb0853eae9f558919ca10374e57e2ca62bc4
DIST ammonite-repl-bin-3.0.0-3.5 59873934 BLAKE2B 80e802090b6185f19fd9073b54379a7fdbe633101594a59ab766b08ced98c5db0d9f8b34d685ed4d9e32cc62b8f4dc272208fd95b5fcd2f0b31666de6ae0de0d SHA512 4ffe5a16922a17228164a8ddd68ad06c2f0d20bd0cb69fa40799bca61c57fbf5d0f484cc2a2b27929666590617bffb5654ae6b7f42d07ebee89d840b645b80ee
EBUILD ammonite-repl-bin-2.5.11.ebuild 1184 BLAKE2B 46def29c850aa604c2d459dee32e7bd3ed7bb38bee8e3345fe184dcf44f41ea2c4e660119e1fe5fed43ef239292ec976f44266244fa7592b19845868b8b58a7d SHA512 9de63ce3f6ede7b217d80632f651d2c0a58aa01d84aaa73bc7f558449957e95e0a55d0ef23f28aec03b0299589e2ecf940e2edd04dd637760b87a0a4cd76ea9f
-EBUILD ammonite-repl-bin-3.0.0.ebuild 1134 BLAKE2B ab38baa0558c24b95b1c15cdff45e36803cd069fbf2dffc8d6e45f8a5690ab7d1f71e44fe7b83adb6436b8778811a43f1a2c248608c643d9d719485c0470e57b SHA512 166c4517b512fd2fcbf2cbe0b11ae464ccfc876386fb2c77870fd02e14cae88f77127631755ffbd6cefc1c3382ff7790495f78f131b0fd17109f1055a74e8159
+EBUILD ammonite-repl-bin-3.0.0.ebuild 1136 BLAKE2B cd544321d6d04eb89bdc91dea53c835b5f0c2966b4b00d58ce036ad98701feef98d641d48a3340b3d7d9cf7f22e4d73b18ae8b1bb81a4ac1457286037e90879f SHA512 ce87504ec4752126d8b009652c37d5e00e4527aa0be7ac036850e50ea7c7ccc75c944f39e86046f3a446a4b0b3db5a76ff80e6cd18a024ad0d657da0cea8c6a2
MISC metadata.xml 996 BLAKE2B 73e744123c74fcd6a9878b4f49cb4000265d6718e92e7644967b1195d5a7b7b520f016dfbad8e420e5a6620c23041b3618d7ae1a8ed48a6170f27ce23f191176 SHA512 0cae75b802af4fbbaf22850186308eb47e07fd456ef8056722315a033aadbd381cf42bbfcd672eafc7b37061bdb70254a08ab16b26d17a0fc13c429a16aea9de
diff --git a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-3.0.0.ebuild b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-3.0.0.ebuild
index 100be5f72252..4d7ba9892f35 100644
--- a/dev-lang/ammonite-repl-bin/ammonite-repl-bin-3.0.0.ebuild
+++ b/dev-lang/ammonite-repl-bin/ammonite-repl-bin-3.0.0.ebuild
@@ -22,7 +22,7 @@ KEYWORDS="amd64 ~arm64 ~x86"
RDEPEND=">=virtual/jre-1.8:*"
-IUSE="scala2-13 scala3-3 +scala3-5"
+IUSE="+scala2-13 +scala3-3 +scala3-5"
src_unpack() {
:
diff --git a/dev-lang/dafny-bin/Manifest b/dev-lang/dafny-bin/Manifest
index 80658abee0d5..69f8e5b6a782 100644
--- a/dev-lang/dafny-bin/Manifest
+++ b/dev-lang/dafny-bin/Manifest
@@ -1,5 +1,3 @@
DIST dafny-4.10.0-x64-ubuntu-20.04.zip 61352501 BLAKE2B 68227a1566e49a52b9159ab0d7ceaa4369fe0a2a18d97495b865b5d25507399a1e9753244fba19035231e4e0dd130881b0854479944479b8bed32c959c38a4ed SHA512 51929386f27841b4302b1e00865986b4aeea6205852ce7c90398a71a820dd334d3f71cf26255daf3a9a75fb4cc1bb84491165c77fd10ffaa35a267942294fd4b
-DIST dafny-4.9.1-x64-ubuntu-20.04.zip 60815385 BLAKE2B 76e4b7cf6bfea6f97bb04b77c034cf62732cc9fcadf1893f4783cf9e44cffc81f4067bbc001474b3b0a92f699b329f87ec77a2e34747a945d7786a33e6fff5b6 SHA512 37fdc7ab2f3feab6cce86103d57248e671daca91aead6588cb9f8de34e4b229178cb2da8bcc5bc26a45b85b76bb445c4c87c440d6e6a84409e2a3fdf7d34765f
-EBUILD dafny-bin-4.10.0.ebuild 1277 BLAKE2B 0f203acdb3866c53bb5f73bd4c380358e89561c1f7ce9bf42df9b451835b10923627e70f2d6e9060a4312ec3c685533a97cd0d8ebefe2a0752ac5e1de40c364b SHA512 7220680382c8e9cae4a237d728f50af4f154934521e1a56277688c71abd75df460473d5b8b042efc2f51f12e97952972c6367a837842f2685190cf6ffc0f4938
-EBUILD dafny-bin-4.9.1.ebuild 1276 BLAKE2B 657a4ad09b816aba6bfbe81806d6c8f264c9f9edb0101148080eeae033c2987657932229f2871e863c02ce8da2cdbc4c266a8bda00765f7eab6a6741ab9114cc SHA512 68d0b40cc62464fb2e027e7981e09a7750d8aa5eaf4061e0cae67ae86550ab5b7102f3f74cd6de3bcc14072834abbc3d088cc7fea7354e86b4621a4f3f1a664f
+EBUILD dafny-bin-4.10.0.ebuild 1276 BLAKE2B 657a4ad09b816aba6bfbe81806d6c8f264c9f9edb0101148080eeae033c2987657932229f2871e863c02ce8da2cdbc4c266a8bda00765f7eab6a6741ab9114cc SHA512 68d0b40cc62464fb2e027e7981e09a7750d8aa5eaf4061e0cae67ae86550ab5b7102f3f74cd6de3bcc14072834abbc3d088cc7fea7354e86b4621a4f3f1a664f
MISC metadata.xml 1826 BLAKE2B 66f000cee8fbf3bcae05da9249d5bc3388f9c05f32c45e96dd51b035aea220a9d49af25cb89b8b8a64a691408373c1ea02d0f345f9a4a554565f708a894664d5 SHA512 0cc12d9c49360bbc08bb8eccd3f7139ec149a9b731f0283b0f95a8506dd93458eb93f3347a978e55a86279ad85ee3233c1b87bfee36f22c9e40bdd14c0aef6c5
diff --git a/dev-lang/dafny-bin/dafny-bin-4.10.0.ebuild b/dev-lang/dafny-bin/dafny-bin-4.10.0.ebuild
index fa0411a41e93..2e67e92be0df 100644
--- a/dev-lang/dafny-bin/dafny-bin-4.10.0.ebuild
+++ b/dev-lang/dafny-bin/dafny-bin-4.10.0.ebuild
@@ -11,7 +11,7 @@ S="${WORKDIR}/dafny"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="-* ~amd64"
+KEYWORDS="-* amd64"
REQUIRED_USE="elibc_glibc"
RESTRICT="strip"
diff --git a/dev-lang/dafny-bin/dafny-bin-4.9.1.ebuild b/dev-lang/dafny-bin/dafny-bin-4.9.1.ebuild
deleted file mode 100644
index 2e67e92be0df..000000000000
--- a/dev-lang/dafny-bin/dafny-bin-4.9.1.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DESCRIPTION="Verification-aware programming language"
-HOMEPAGE="https://dafny.org/
- https://github.com/dafny-lang/dafny/"
-SRC_URI="https://github.com/dafny-lang/dafny/releases/download/v${PV}/dafny-${PV}-x64-ubuntu-20.04.zip"
-S="${WORKDIR}/dafny"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="-* amd64"
-REQUIRED_USE="elibc_glibc"
-RESTRICT="strip"
-
-RDEPEND="
- !dev-lang/dafny
- dev-libs/userspace-rcu
- dev-util/lttng-ust:0/2.12
- sci-mathematics/z3
-"
-BDEPEND="
- app-arch/unzip
-"
-
-QA_PREBUILT="*"
-
-src_prepare() {
- default
-
- # Remove bundled z3.
- # NOTICE: New versions do not need the bundled one but older versions
- # hardcoded the path relative to "dafny" binary.
- # While bumping make sure to verify that system's "z3" is used
- # by, for example, compiling/verifying a simple dafny program.
- rm -r z3 || die
-}
-
-src_install() {
- local dest="/opt/dafny"
-
- insinto "${dest}"
- # Maybe too general, but this installation mode matched how it arrives.
- insopts -m0755
- doins "${S}"/*
-
- local bin
- for bin in DafnyServer dafny ; do
- dosym "../../${dest}/${bin}" "/usr/bin/${bin}"
- done
-
- # Make "dafny-server" clients happy.
- dosym -r "/${dest}/DafnyServer" /usr/bin/dafny-server
-}
diff --git a/dev-lang/dafny/Manifest b/dev-lang/dafny/Manifest
index a2345506d69c..3201358987ce 100644
--- a/dev-lang/dafny/Manifest
+++ b/dev-lang/dafny/Manifest
@@ -399,7 +399,7 @@ DIST xunit.extensibility.execution.2.4.2.nupkg 353652 BLAKE2B f10e20d43b8030f51c
DIST xunit.runner.visualstudio.2.4.3.nupkg 809588 BLAKE2B ce18ac895657d1efa9752e44148812a452401fa06eba913dad716cfd6743d85a09ffbc0be52276a4b90d039ab76077cca7ab5316b73009aeff2b2fe77dc465f1 SHA512 d8b0d124425db24f98335b332fe55e1a08b39af55d8834dd4a2717fd4be45f3a06ae6cb16427a17adfb31e215dab622856152bb2da715acb1946ec9e935299f4
DIST xunit.runner.visualstudio.2.5.1.nupkg 348549 BLAKE2B 530ffc6b699a1589ad6a7fb5aa826d7238b63ea8dcd13ce5705a3d29a0ba70edeac2d9950cd1a00a13a779add761e4e14335689051a43b4cd662a330734e4df7 SHA512 0cc7887e7c7c3315db31aab79df236db9b5542e0234c27543dd5b11cf917674a8fdebc384e7331663b08d586fcf20628479a20ad7edbed4e61667903e812c6f0
DIST xunit.skippablefact.1.4.8.nupkg 44542 BLAKE2B 3c9b09d5196e8901770099b2e5078d9373e8ebc2da058a9071707d6fee56eab7c876578734f3be5b088db6ae83c8ad81a3aadfcab38e1fd2b28bd25601fe5463 SHA512 a2c680223bda4f9bfdbd751c8d6a5319e0a4611533272860ca0a396b26c473a13065301a5d8973074ea2bb5119caaeec5a67d547a96ae5d762dc09f337f51ad1
-EBUILD dafny-4.10.0.ebuild 18906 BLAKE2B 4c281146c319832cd7c917765d64fe469851bc4bc82cac1070a2687629ab025f068dcc34b8dba79347da790c567803bfdadd314dd240fa6f78082074516d60ed SHA512 005bccb059dd6a7bc0afbbdbea114fe8b01e210b9fa45fe0445cad6a0ec2e730aac9eed697224591f509a9f29047789377faece8ce7a67b4303015657544f580
+EBUILD dafny-4.10.0.ebuild 18905 BLAKE2B 91e0d0769de9fa872582a5648d9c2c5f82d5f432c37e000dbda1e00adfdaec3bf0d8223afe3909a29c977290b3ffcbc42f4e495cb3177175d67715cfd9d88fef SHA512 c8a99b495c1d76a82e6d2e1fb6467c9a8bd94eafee253edc45d45f504c6dddd18ace7e664a3a54aa73e7def7c1990824010a7b4c3a21c1efe94fa6544353453b
EBUILD dafny-4.8.0.ebuild 21093 BLAKE2B f3bc2e1080b1a4f47d6dfcfb8ff4284f1c78b165995933058b2ab4898f414de563ffb4daf057a2abdd757f9c12cc9abb3151872c68e073f08f38d6aa73cb8bcd SHA512 0163a7991f085cae600e9c85b5b9dd2a5e48cf8f6618a334e165c4b81469f8fc747172d9b8af829b43b202f7ccdf796eb340e111f203f32d76f68a58aa45bdd9
EBUILD dafny-4.8.1.ebuild 21157 BLAKE2B 12ce0ba00dddf39d85c97c80bfaeed0004866fc17369aa5bd1aaab2c083199ebc2925d2df6d0af46346a6adc124aa89db059ac92a668cd1d23546d94fe274dd1 SHA512 f86332ed23ad789becefc001d873395e5cbcf01870841d5845c86e9500d85db938136218bbc1ad4dcce1a9b1265fecb4614720d90005f1650ea5383f01158b60
EBUILD dafny-4.9.0.ebuild 20390 BLAKE2B e7d426bf27fa8cd4747c6c8e838a79942b24d4ff04f5e0d8c3f64e3ea07551756f18ec465fd83da6fad8d98a47c2a2f8551557e9dbfc819b176fbb843cb889e5 SHA512 6f559f88ff05e9b09c19dd400fd9e7ed9fe675269380b5389f0414d3efd523b34fb7ec53ad597e97bf5fc54bbfc0233784326bb4613e4fd2bff5c27b41104480
diff --git a/dev-lang/dafny/dafny-4.10.0.ebuild b/dev-lang/dafny/dafny-4.10.0.ebuild
index 4943c4a1f162..43a691fbb0f8 100644
--- a/dev-lang/dafny/dafny-4.10.0.ebuild
+++ b/dev-lang/dafny/dafny-4.10.0.ebuild
@@ -375,7 +375,7 @@ else
SRC_URI="https://github.com/dafny-lang/${PN}/archive/v${PV}.tar.gz
-> ${P}.tar.gz"
- KEYWORDS="~amd64"
+ KEYWORDS="amd64"
fi
SRC_URI+="
diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest
index 83b0e9443c82..091cf408570a 100644
--- a/dev-lang/go/Manifest
+++ b/dev-lang/go/Manifest
@@ -1,3 +1,4 @@
+AUX go-1.24-skip-gdb-tests.patch 408 BLAKE2B 062d5ee7bda4e4891a3098e4a9328136b128ac029cf4613d13dcc062a0af03d687f67a4c35bd3b130aad6af8661371b48408df471760eceb76d4e757a60189c2 SHA512 311e45c7fa8f0c32f7c2b3cd017af126a1781fbfddc5d62c5fbd6a2f2b4bc9f9d7492a6ba231bd97806821b1c75b0e096e1e7e526ea9c2d8bbe6108e5a907ca2
AUX go-never-download-newer-toolchains.patch 368 BLAKE2B 0c90f46492af80622f430b2d506b143f3b553b5276085f78f41b93fee8219745179038302462603b5b1677554d92911eb4865084d0488aaa4c71ae1abc307f71 SHA512 b5acf97ccf96c6a353fcb7bd97113c38562defd82338828124fcc72c71334feda9c4e839d2aae5b66b809bc8a692eac96396c54a478e17a7ffd8d2c68fea95e6
AUX go-sets.conf 256 BLAKE2B 670afd72a2fa961e2b3882ac48d10e9d047af7a68f47bc8c8985b2de7a84022410fb1acfe2c710f8b3804ec3b043bf18c948478cf7d31c982cff47714b309cdf SHA512 028fba72c2d82ef893416970c27cb277be15f7c5c67773c0a62cd8ce2c192813ba851339596f10a6f5394c479e67b62dd4e4520379cc03f764ed4a4ab834fba6
DIST go1.23.6.src.tar.gz 28179132 BLAKE2B 25c988547604c35de65aedfdee5af9f35f7a1c43f634c0147373d9c86baf2bb10068463f70013ef60acd3088149eb16502958b1ca63d7cee310e32eaddf1578a SHA512 c504476d42cdbcd1b6afe53c0974e82c19eb0efac974bc06d41c1641440676891cfe6416455a0cfc81fe82902a9b82ea0a1d95089c676667d05487e45f5e04e3
@@ -5,6 +6,6 @@ DIST go1.23.7.src.tar.gz 28181215 BLAKE2B d3c9bff18438f90f6730e1ad9580a3f97d266f
DIST go1.24.1.src.tar.gz 30777528 BLAKE2B 76217ec25a721183591a434b012bd9cfb6d6206410aafffce4490bff8053440f2aa590bac0cfb839f10c19a3368fe60515a61123a21d187f5289ba0ae1399c1c SHA512 a924d6bdc7e7101917e6d063bc7b471390525394e79224c152997564657c4362b5600e0c8bf6ee857d345129ccf7368bdf4ed2251ab740446ea2abda144e6353
EBUILD go-1.23.6.ebuild 4175 BLAKE2B d1e34e725ea51929715268d3009f5035967231a4a35c59779c898d352d3d0d9a8a6b03fee8a847215ff2b057bdf980fb11b6b905b33ee3ccc8a215eb348d5317 SHA512 8d792f83f8abf11353fa5009fa29a946cc7e0c8a2f2df7cf90e5acae8aaa68c2cd239ef03c324a61316bb217ea14f0b6d7514101c5d158f3b3bc3beb74dade27
EBUILD go-1.23.7.ebuild 4176 BLAKE2B 053173086abd8fc542b6389520b7211e8b96b7828428b037a2b3e9f69afdb076b094142c4300e4b2ee17fbfa05bd49f817d55548747a8baa6fd6d34194f6ec72 SHA512 5503c976318c24ee9263688e76c16c9f9c3165292127e6bcaf5656cc04f7072301fca6f3149f424340afa86aad65d9ca7393dd1914ab835818d9501e0a2eccd4
-EBUILD go-1.24.1.ebuild 3357 BLAKE2B c05a7f618c49903881f383691f79f3f4a166896ac38132541183fbbb6cdd310f344f896e9aedbb75087d8e4554e9aeb20ed6e0b855de30b75b3b958212892aa0 SHA512 880c62f269da94f49b6adb3bc5a6c6dedacaae123b935d3e37623714ff0826c587d71ac247dd4a9eca5a95b2887491c0ecd38f238885f6b68c12724712dd0d14
+EBUILD go-1.24.1.ebuild 3401 BLAKE2B 2ea55f57bad1c6970c494fe110f1d5c57af9db310d3d4071763f91594cae0ae838627d1e691b5ec8f3087c3a790f91e946a8ca299e0d8748fcc10ec7e5c3696e SHA512 7ea5b4533b6a7a46f26d8c447c1a8afd47efaaa263fe37c26684cb9fe1880f077e1e4562de05c85686769913568ed71b3e786e54170e184dad9aa89dbb8f4e79
EBUILD go-9999.ebuild 3363 BLAKE2B 49672850d9c2e09b4263d4fa7211608251a080be138abeef75fd4602db68e346f7591832e18ef3248a37519af5c9126f192c908549bbcb62d1e09a764aaacd7f SHA512 99ed1c3388e560e851213dc6239a2da268818fa6fc74f068e912af05f3794b49d1bc26de8d6047a961d7596dbe46a2aaacdf97a15e792dece609bbfa9403ff19
MISC metadata.xml 589 BLAKE2B 341e4c0e91d73ca668c1795035e1223eed60f85c724afd989ef1f8fb69649f7f6eaaf8a5228f6c8f587ffcc40a438c47d332fbe6866839f5a0829872a983f642 SHA512 fe58ddddfbd4d0d060516cb035592a80c0f48e125bb59c95d3c6fac0c182271e2a9ec9bd055b9cc8e6cb8c449e6c483bff4a23c362f532c24255febfdefc273a
diff --git a/dev-lang/go/files/go-1.24-skip-gdb-tests.patch b/dev-lang/go/files/go-1.24-skip-gdb-tests.patch
new file mode 100644
index 000000000000..498483571dad
--- /dev/null
+++ b/dev-lang/go/files/go-1.24-skip-gdb-tests.patch
@@ -0,0 +1,12 @@
+diff --git a/src/runtime/runtime-gdb_test.go b/src/runtime/runtime-gdb_test.go
+index 9c54d68949..d4eada51af 100644
+--- a/src/runtime/runtime-gdb_test.go
++++ b/src/runtime/runtime-gdb_test.go
+@@ -55,6 +55,7 @@ func checkGdbEnvironment(t *testing.T) {
+ case "plan9":
+ t.Skip("there is no gdb on Plan 9")
+ }
++ t.Skip("gdb tests do not work under gentoo portage")
+ }
+
+ func checkGdbVersion(t *testing.T) {
diff --git a/dev-lang/go/go-1.24.1.ebuild b/dev-lang/go/go-1.24.1.ebuild
index 022bec0a6614..423eda182b28 100644
--- a/dev-lang/go/go-1.24.1.ebuild
+++ b/dev-lang/go/go-1.24.1.ebuild
@@ -71,6 +71,7 @@ go_cross_compile() {
}
PATCHES=(
+ "${FILESDIR}"/go-1.24-skip-gdb-tests.patch
"${FILESDIR}"/go-never-download-newer-toolchains.patch
)
diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest
index f8652af648ed..5aacdc8a428d 100644
--- a/dev-lang/php/Manifest
+++ b/dev-lang/php/Manifest
@@ -6,18 +6,18 @@ AUX php-8.1.29-gcc14-intl.patch 810 BLAKE2B 3a16770c4ccdf0c0b2089700043c9d46a142
AUX php-8.2.20-implicit-printf.patch 2226 BLAKE2B 859cd38c6687b517a372973a8d282494f43bc5739ffa00c829de4a43ad72a752195657ededc7d4705699c0bd1ab249e588a74f6be85e1937c55de00d2844213d SHA512 95e4f535066b72e1497673dd633aa33beaf49c5a967ca2ad04e837ddea546f935717b3095d61cef8310138d77a3d18372139af3f979030b25b9ec2dc38318fb0
AUX php-8.2.23-fix-ub.patch 1141 BLAKE2B d9b3a0cf7bbcf9778dab55e5480b78d9e694f9818819ebc406fdebb6113802c1b90667bdd2db911038c5e235560b7448c65dc995b861835552aea1e59fd4d42b SHA512 0b7736967997611f7b14595186d55bd24cc81b23add26ed4a800b63e5ace087c22c9a32946d76b7a896fae988d64125ed10091bd079359c8c4a83b34fc1a372b
AUX php-8.2.8-openssl-tests.patch 790 BLAKE2B fcfa6f361470f2baa65d2bbbde7c9629841546a560aa6f88d85b68727004e24949f9516340eba0339e575dcf06077d08540a7a6d58a0cda42d5cd26bf48d9e46 SHA512 d29b5334abee8bcbef62c88c01c9eaf887f25901763db75e754f6690e24138c9e45783943d32402f693bd7e4564d737521a8b0b8034d5401bac73ff30f453050
-AUX php-8.3.10-optional-png-testfixen.patch 39081 BLAKE2B 7b21cdc8cf557144eee2455d540b834e583f919ffec3bb37ddf446cbd57e8835145f988d4b53c6341313e6e4001a7d879ad8c933677db9818a17b026694da230 SHA512 74b1d84b2e10073d32c79a2a6c73a0a6d198ad84190be2f4ecf752a338bbb1ba8353799b2c0fb9ff7e9513bbf2f849b8359c62db92631d4919d99bf97688376e
AUX php-8.3.9-gd-cachevars.patch 2287 BLAKE2B 7e9fe2192937dfcd000bdb0a8f0236582e95e97c6f7c1e5973a9bc48e8d0d1ae71c2fb4be3c507dae977d0fae96503b3bb02825a334581aca70d97cdd0545627 SHA512 3ec68bff7fd365307f41a04835c80f3acdd053924fde3e09e301349079db161318f68ac226ae1d99eaf14ee7527abe5226a0e3a7b601e0a804019b2ce8c099d8
+AUX php-bug75457-pcre2-backport.patch 1000 BLAKE2B 1acc0760326d40053e5b0572bf96f164ac169d6692ee9bfc824b36f6b0e5cbd2cee04f714f943bc59d3d7efbe127788869024b0dcd89a534272f9444ecdcb9ca SHA512 8f02f45e0574202a57e84c7bb5168e5c38656b849dd6058ebe7dd69011a6a32cd7ecb778d1c166ae72e9231ccee9915a96d5230f58a245262213c15e51853cf3
AUX php-capstone-optional.patch 2497 BLAKE2B f23236130be88d28d933d5482f1925c4e32e09c5022544ac2dec62465e9296baabe64f57fedd7ccb9f4499d354bd466d10cfb66596e8be029be6fa4f82dbc1a1 SHA512 a9000d789a7bc54d4b6cf8ed287dcfd71958dfc85c6417737dcd66b9461be5b1aa2568a19f5a9cd29927fe9d955ac24d04e2f64f1c4018110a8f81a6eb4813c5
AUX php-fpm_at-simple.service 316 BLAKE2B 0ba10f3e3b004fbf14956e1e4f04f59b8a127e6717fe6b92c09b9f931033a11551c75fbbee9010f6b694c5a8758ca0eec9eed457ae304ba0dea8f2c256c3b8d4 SHA512 7367a3f8d3874f8e0c76f331ba613a0250db02f60ad9f87affaf448dcb5bc34bcecb91d88f415764a12b24b46ae3d1b738a002af9f77a4b707e916e83a0021fd
AUX php-fpm_at.service 317 BLAKE2B f13fc38fcc0575a8517ee8d07b120efda37eabd2355061d0fdc303604c6b02ad42d7301180d86c977d5e585f5dd685343c592e37a6e0f44933707be79e0b77e0 SHA512 27982f9e2d958bfa75c89c7d3531e48d17fc388b1cdcbc8e09051b236b1184ee2baabdfcc567c19d9fcd067d4b3b86f171015616d8da42fccdabd89432d865e8
AUX php-iodbc-header-location.patch 481 BLAKE2B 9ea6a5d529dc7a8c78eeee800900372bc14309a05e352b2838da32e1384b61b507fdb623c9400094aa5b637eb1a87da92c72600eff79b18b8989ef90af56a0fa SHA512 86469f657d8807f005c28fd2149770c881add8f243fdfea087956c7987277597fe400a7af23f624f26da270356604717ed9cd04771154d7cf2ffe7237972372b
DIST php-8.1.30.tar.xz 11850340 BLAKE2B 9053c57814f53ff694ea6cf1a87253e4f8f7c5af6965a85109eca143abd8dd6c733c7f70d1c6cdc34db8932dd7e9e8289cebce37eef385ea51dc0cd8a71267ef SHA512 cdca1c1671362272bf6c2abf45d097b42ca06c0abf962ee814bf478f8b346f274f42a1b1aa6603cdd59a1978a8b9d1971b589706f2909b6ea34594de0edaee1e
DIST php-8.2.24.tar.xz 12110000 BLAKE2B 0f5c47350b8914f87cfbee932ea2e24d29635a0bdfed111b02e81d05574ff973f657d077858c20497bdc380285305d6c0f632eee1bbc9358f84004019108e368 SHA512 19016bfb955892a9999f01a619ab26035afe1cfb6488c7d1774d6745b703afb99e59032728ab811024413757e50163cdc32b0e95fda7e1d4243deb96568c7e79
-DIST php-8.2.27.tar.xz 12150992 BLAKE2B 220b71c04db5654b16f46f831776741f653d77d4363ae1279e5f7eb745aa862087cd89f63740a6584fb4925bf5cb9f72a267cf85ea5e0828f35975a08a011861 SHA512 c368d90d833e25d2b2e3a667010f1c5b37df772e2200855d38e4bcb3344585e0783ae53fadae499fe98abab95372adf787ba2413e9b6bc818628bc29a11ed453
-DIST php-8.3.17.tar.xz 12541560 BLAKE2B a3395354578763923adba03ad046cd0259a23db5985c020c7bc67302a89b13a55b89023b2136c2269146a9e7c6020aafdac8d3d124aa7ada383b681cda290239 SHA512 78ec7896ecaaab7e968914055e11c840f64492d55c68ae6ee693a5c96b633b8b75093fc334836832422a24d4156d86e8e0c4af2f87cbd861df8b67842f1bcf88
+DIST php-8.2.28.tar.xz 12147756 BLAKE2B eb2c5ad888f98b217d553efaa5f9832c791d7dcb73e90c1f0a45b536f3cbfd8f76c0606f993ca39492e43f587f5c0be1f1adac80c3ae7281527b8b381176f3bb SHA512 af2a4f43da756a78f762dbd2b9e589e52864c7069fd55a6a2b900e32a08728a7d69b80577dc79b5d4a86993846a2232b809b75ae415344935610a3934b10c6ba
+DIST php-8.3.19.tar.xz 12560852 BLAKE2B 19fb3ee207939b497ef65960a3b691beddaecfc70c2d408a9249e048605c2a3b4eb26da362c4e8283318c03c6464ba66537eafef854615db267886ff7a6351a0 SHA512 2872639f6a6de1680540da5a2df43db7ceeb7e25690b6f66d73373779ee3f9b0c2fe74aeeb7181749c9738b64f8d41b8a6f496751778c1df10b7f9aab43f21f7
EBUILD php-8.1.30.ebuild 22586 BLAKE2B a35ef5ea9b28ea0c0d40082aa7a9750158477f173c4eae88bb2ef4a44687a329c5152879e9759a02df8c6ad12cdb8e6762b0750cae3cd04102e3bc0acf0826ad SHA512 f383cca672b5a647e52d1def2537411f3e44d791fcafc62a665a2d1a9aed779d116f4d4b5323b7a510b03a9296677462e53277b34e48efeb86fb76f61bccc40c
EBUILD php-8.2.24.ebuild 26595 BLAKE2B 62bff19d9e738b5e8da960d6fc8d41ff35723356017ef048e7a45d54e07b62a43dcd632837f3917654e5600097fe2c50d2247137c693bf20627773fc6054fb36 SHA512 3df0a5705098463bedd5362af4b4ec1c06797932c1c3ad666fd6be115c601409ec3cdec75342e7da520966a17e3a4db30f975a5dbc6ff2d762a0234e639720ff
-EBUILD php-8.2.27-r1.ebuild 26778 BLAKE2B 324b0334ee35dc68ec5022ae66248253ccc590cb7aa5aa665a3ae26a51339ac92541c36ba2ae0c9d99a616155f7eae521b610fd7cb60db6b26cb0d71d15f51c8 SHA512 9ac034e3e1863cf7605652332c9de0d3cc36a482b13327f34ea1ea3863753e193cbb490dc2ed7df68b3e31de848392a9965a738c510f06b07a996df4e2e59adf
-EBUILD php-8.3.17.ebuild 24728 BLAKE2B 2d2b7dd26b75a4e525034dcd0c7e791aff5446f9bf3ce01807649a65929a471473a26871545b31de8492362124f9255923d436fe259dc4a4da17f788291a42d7 SHA512 710698a017c512ed6cc087fa9fcc10828f5f32c33b6490045cd4d58230b377887b2bea389aee3e9d220bac0f083f6d05867f15075348ae47e79af2ac0c0b56bb
+EBUILD php-8.2.28.ebuild 26827 BLAKE2B eb64e3338a6ad134f8a8dc11b66b85164f15de59010207c426fcbbc6839a6529aecc6ee97e556ed5a6e12f58848bee81f6eef900859e2e8477b916b3f8af7975 SHA512 f17a796d5748e6045faf8650d2cc65dc67937052f4e8f6fc23bc20dbfccd0f89268bf051a088a333f1f6dd72cd206a526b3a93f047cb26aa63edc1982912820d
+EBUILD php-8.3.19.ebuild 24512 BLAKE2B 2c29b88c098f403a2de3b2645dbf3390a1a4691c98f965764f2b541096d7ae1cf4ea35082f82688bde6a300311388de9c60bbd8727a180ebddc162ddc06ee4da SHA512 95fd342e2f708ccbefca98edf71c9eddec3532a5297506c17841f3bb22af034be0ee84d3daa50bf0d9c1c20088a1ad9cb216735bc8b6830abbfb7b0146b4f90f
MISC metadata.xml 4249 BLAKE2B 11f9270fbc0cae280ec3ec62c9e6acfc643f4c7952822537664e8bcdbdfed64805b0e83fcbfb83111123745fadf64b276b51e1e27c9b5eb38ef8ffc30965d12b SHA512 39c59d31de21a66ca55a4816bebd901c8f2b28b7d1340605845c535cc979bca4d8641280bf45782d5d3eb94820e054e7f52491a23a4d1cf692774e11becc55c1
diff --git a/dev-lang/php/files/php-8.3.10-optional-png-testfixen.patch b/dev-lang/php/files/php-8.3.10-optional-png-testfixen.patch
deleted file mode 100644
index def26884ef2f..000000000000
--- a/dev-lang/php/files/php-8.3.10-optional-png-testfixen.patch
+++ /dev/null
@@ -1,1249 +0,0 @@
-From e25636b087c507bf12922c8faf9f526aa87153a6 Mon Sep 17 00:00:00 2001
-From: Michael Orlitzky <michael@orlitzky.com>
-Date: Wed, 23 Aug 2023 18:42:17 -0400
-Subject: [PATCH 1/3] ext/gd/tests: fix three misleading die() messages
-
-Three of our gd tests could be skipped with a message about requiring
-bundled GD, but those tests don't actually require bundled GD. We
-update the messages to mention the specific functions that are
-required.
----
- ext/gd/tests/bug24155.phpt | 2 +-
- ext/gd/tests/bug39366.phpt | 2 +-
- ext/gd/tests/imagefilter.phpt | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/ext/gd/tests/bug24155.phpt b/ext/gd/tests/bug24155.phpt
-index 42c5e3d7926f5..7c12c38a1a6d7 100644
---- a/ext/gd/tests/bug24155.phpt
-+++ b/ext/gd/tests/bug24155.phpt
-@@ -4,7 +4,7 @@ Bug #24155 (gdImageRotate270 rotation problem).
- gd
- --SKIPIF--
- <?php
-- if (!function_exists("imagerotate")) die("skip requires bundled GD library\n");
-+ if (!function_exists("imagerotate")) die("skip requires imagerotate function");
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug39366.phpt b/ext/gd/tests/bug39366.phpt
-index 2fedbcef43dfe..81e81059c27e8 100644
---- a/ext/gd/tests/bug39366.phpt
-+++ b/ext/gd/tests/bug39366.phpt
-@@ -4,7 +4,7 @@ Bug #39366 (imagerotate does not respect alpha with angles>45)
- gd
- --SKIPIF--
- <?php
-- if (!function_exists("imagerotate")) die("skip requires bundled GD library\n");
-+ if (!function_exists("imagerotate")) die("skip requires imagerotate function");
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagefilter.phpt b/ext/gd/tests/imagefilter.phpt
-index 156f465da6016..79a73472511c7 100644
---- a/ext/gd/tests/imagefilter.phpt
-+++ b/ext/gd/tests/imagefilter.phpt
-@@ -4,7 +4,7 @@ imagefilter() function test
- gd
- --SKIPIF--
- <?php
-- if (!function_exists("imagefilter")) die("skip requires bundled GD library\n");
-+ if (!function_exists("imagefilter")) die("skip requires imagefilter function");
- ?>
- --FILE--
- <?php
-
-From 68a5f3f0a8e6299dddaafa2118ff322c532f1ae1 Mon Sep 17 00:00:00 2001
-From: Michael Orlitzky <michael@orlitzky.com>
-Date: Wed, 23 Aug 2023 19:56:10 -0400
-Subject: [PATCH 2/3] ext/gd/tests: add SKIPIF stanzas for missing PNG support
-
-The bundled libgd always has PNG support, but an external one may not.
----
- ext/gd/tests/bug22544-mb.phpt | 6 ++++++
- ext/gd/tests/bug22544.phpt | 6 ++++++
- ext/gd/tests/bug24155.phpt | 3 +++
- ext/gd/tests/bug27582_1.phpt | 6 ++++++
- ext/gd/tests/bug39780_extern.phpt | 3 +++
- ext/gd/tests/bug43073.phpt | 3 +++
- ext/gd/tests/bug43475.phpt | 3 +++
- ext/gd/tests/bug43828.phpt | 3 +++
- ext/gd/tests/bug45799.phpt | 6 ++++++
- ext/gd/tests/bug47946.phpt | 3 +++
- ext/gd/tests/bug48732-mb.phpt | 3 +++
- ext/gd/tests/bug48732.phpt | 4 ++++
- ext/gd/tests/bug50194.phpt | 4 +++-
- ext/gd/tests/bug51498.phpt | 3 +++
- ext/gd/tests/bug52070.phpt | 6 ++++++
- ext/gd/tests/bug53504.phpt | 3 +++
- ext/gd/tests/bug64641.phpt | 3 +++
- ext/gd/tests/bug66005.phpt | 6 ++++++
- ext/gd/tests/bug72482_2.phpt | 6 ++++++
- ext/gd/tests/bug72604.phpt | 6 ++++++
- ext/gd/tests/bug72913.phpt | 6 ++++++
- ext/gd/tests/bug73213.phpt | 6 ++++++
- ext/gd/tests/bug73272.phpt | 6 ++++++
- ext/gd/tests/bug73549.phpt | 6 ++++++
- ext/gd/tests/bug73614.phpt | 3 +++
- ext/gd/tests/bug74031.phpt | 6 ++++++
- ext/gd/tests/bug75124.phpt | 3 +++
- ext/gd/tests/bug77943.phpt | 6 ++++++
- ext/gd/tests/bug79945.phpt | 3 +++
- ext/gd/tests/imagearc_basic.phpt | 6 ++++++
- ext/gd/tests/imagearc_variation1.phpt | 6 ++++++
- ext/gd/tests/imagearc_variation2.phpt | 6 ++++++
- ext/gd/tests/imagechar_basic.phpt | 6 ++++++
- ext/gd/tests/imagecharup_basic.phpt | 6 ++++++
- ext/gd/tests/imagecolorallocatealpha_basic.phpt | 3 +++
- ext/gd/tests/imagecolorset_basic.phpt | 6 ++++++
- ext/gd/tests/imageconvolution_basic.phpt | 6 ++++++
- ext/gd/tests/imagecopyresampled_basic.phpt | 6 ++++++
- ext/gd/tests/imagecreatefrombmp_basic.phpt | 3 +++
- ext/gd/tests/imagecreatefromstring_bmp.phpt | 3 +++
- ext/gd/tests/imagecreatefromtga_basic.phpt | 3 +++
- ext/gd/tests/imagecreatefromtga_variation.phpt | 3 +++
- ext/gd/tests/imagecreatetruecolor_basic.phpt | 3 +++
- ext/gd/tests/imagecrop_auto.phpt | 3 +++
- ext/gd/tests/imagedashedline_basic.phpt | 3 +++
- ext/gd/tests/imageellipse_basic.phpt | 6 ++++++
- ext/gd/tests/imagefilledarc_basic.phpt | 3 +++
- ext/gd/tests/imagefilledarc_variation1.phpt | 3 +++
- ext/gd/tests/imagefilledarc_variation2.phpt | 3 +++
- ext/gd/tests/imagefilledellipse_basic.phpt | 6 ++++++
- ext/gd/tests/imagefilledpolygon_basic.phpt | 3 +++
- ext/gd/tests/imagefilltoborder_basic.phpt | 6 ++++++
- ext/gd/tests/imagefilter.phpt | 3 +++
- ext/gd/tests/imagegammacorrect_basic.phpt | 3 +++
- ext/gd/tests/imagegammacorrect_variation1.phpt | 3 +++
- ext/gd/tests/imagegammacorrect_variation2.phpt | 6 ++++++
- ext/gd/tests/imageopenpolygon_basic.phpt | 6 ++++++
- ext/gd/tests/imagepolygon_aa.phpt | 6 ++++++
- ext/gd/tests/imagepolygon_basic.phpt | 3 +++
- ext/gd/tests/imagerectangle_basic.phpt | 6 ++++++
- ext/gd/tests/imageresolution_png.phpt | 6 ++++++
- ext/gd/tests/imagesetbrush_basic.phpt | 6 ++++++
- ext/gd/tests/imagesetthickness_basic.phpt | 3 +++
- ext/gd/tests/imagestring_basic.phpt | 6 ++++++
- ext/gd/tests/imagestringup_basic.phpt | 6 ++++++
- ext/gd/tests/imagetruecolortopalette_basic.phpt | 3 +++
- ext/gd/tests/libgd00086_extern.phpt | 3 +++
- ext/gd/tests/test_image_equals_file_palette.phpt | 6 ++++++
- 68 files changed, 307 insertions(+), 1 deletion(-)
-
-diff --git a/ext/gd/tests/bug22544-mb.phpt b/ext/gd/tests/bug22544-mb.phpt
-index b67478e558c47..f99307df1212b 100644
---- a/ext/gd/tests/bug22544-mb.phpt
-+++ b/ext/gd/tests/bug22544-mb.phpt
-@@ -2,6 +2,12 @@
- Bug #22544 (TrueColor transparency in PNG images).
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $image = imageCreateTruecolor(640, 100);
-diff --git a/ext/gd/tests/bug22544.phpt b/ext/gd/tests/bug22544.phpt
-index 1fba04d93739c..28fc6bdfbb0c1 100644
---- a/ext/gd/tests/bug22544.phpt
-+++ b/ext/gd/tests/bug22544.phpt
-@@ -2,6 +2,12 @@
- Bug #22544 (TrueColor transparency in PNG images).
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $image = imageCreateTruecolor(640, 100);
-diff --git a/ext/gd/tests/bug24155.phpt b/ext/gd/tests/bug24155.phpt
-index 7c12c38a1a6d7..d78ee9b77816f 100644
---- a/ext/gd/tests/bug24155.phpt
-+++ b/ext/gd/tests/bug24155.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (!function_exists("imagerotate")) die("skip requires imagerotate function");
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug27582_1.phpt b/ext/gd/tests/bug27582_1.phpt
-index 2604c5fcaa9fd..1f15474f50d4b 100644
---- a/ext/gd/tests/bug27582_1.phpt
-+++ b/ext/gd/tests/bug27582_1.phpt
-@@ -2,6 +2,12 @@
- Bug #27582 (ImageFillToBorder() on alphablending image looses alpha on fill color)
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $dest = dirname(realpath(__FILE__)) . '/bug27582.png';
-diff --git a/ext/gd/tests/bug39780_extern.phpt b/ext/gd/tests/bug39780_extern.phpt
-index 2330bd65e57ab..438816fe22c6a 100644
---- a/ext/gd/tests/bug39780_extern.phpt
-+++ b/ext/gd/tests/bug39780_extern.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (GD_BUNDLED) die("skip requires extern GD\n");
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug43073.phpt b/ext/gd/tests/bug43073.phpt
-index 5c54d8770f86b..80c6480fea576 100644
---- a/ext/gd/tests/bug43073.phpt
-+++ b/ext/gd/tests/bug43073.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if(!function_exists('imagettftext')) die('skip imagettftext() not available');
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug43475.phpt b/ext/gd/tests/bug43475.phpt
-index 8944b57e3cde7..454d2daad0f1a 100644
---- a/ext/gd/tests/bug43475.phpt
-+++ b/ext/gd/tests/bug43475.phpt
-@@ -7,6 +7,9 @@ gd
- if (!GD_BUNDLED && version_compare(GD_VERSION, '2.2.2', '<')) {
- die("skip test requires GD 2.2.2 or higher");
- }
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug43828.phpt b/ext/gd/tests/bug43828.phpt
-index 8a0caf5decc35..8bc3f9bbcaf83 100644
---- a/ext/gd/tests/bug43828.phpt
-+++ b/ext/gd/tests/bug43828.phpt
-@@ -7,6 +7,9 @@ gd
- if (!GD_BUNDLED && version_compare(GD_VERSION, '2.2.2', '<')) {
- die("skip test requires GD 2.2.2 or higher");
- }
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug45799.phpt b/ext/gd/tests/bug45799.phpt
-index 8576b4d007822..f7124ce5b9713 100644
---- a/ext/gd/tests/bug45799.phpt
-+++ b/ext/gd/tests/bug45799.phpt
-@@ -2,6 +2,12 @@
- Bug #45799 (imagepng() crashes on empty image).
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $img = imagecreate(500,500);
-diff --git a/ext/gd/tests/bug47946.phpt b/ext/gd/tests/bug47946.phpt
-index 39e5aef9edffc..a87300568326f 100644
---- a/ext/gd/tests/bug47946.phpt
-+++ b/ext/gd/tests/bug47946.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (!GD_BUNDLED && version_compare(GD_VERSION, '2.2.5', '<=')) die('skip upstream fix not yet released');
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug48732-mb.phpt b/ext/gd/tests/bug48732-mb.phpt
-index 13a881254c203..361c1ac4d88f8 100644
---- a/ext/gd/tests/bug48732-mb.phpt
-+++ b/ext/gd/tests/bug48732-mb.phpt
-@@ -6,6 +6,9 @@ gd
- <?php
- if(!function_exists('imagefttext')) die('skip imagefttext() not available');
- if (substr(PHP_OS, 0, 3) == 'WIN') die('skip UTF-8 font file names not yet supported on Windows');
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug48732.phpt b/ext/gd/tests/bug48732.phpt
-index 44e4204503ef7..ed73954de3337 100644
---- a/ext/gd/tests/bug48732.phpt
-+++ b/ext/gd/tests/bug48732.phpt
-@@ -2,9 +2,13 @@
- Bug #48732 (TTF Bounding box wrong for letters below baseline)
- --EXTENSIONS--
- gd
-+
- --SKIPIF--
- <?php
- if(!function_exists('imagefttext')) die('skip imagefttext() not available');
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug50194.phpt b/ext/gd/tests/bug50194.phpt
-index 2addfe0e8325d..33d2400c46e80 100644
---- a/ext/gd/tests/bug50194.phpt
-+++ b/ext/gd/tests/bug50194.phpt
-@@ -5,7 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (!function_exists('imagettftext')) die('skip imagettftext() not available');
--//die('skip freetype issues');
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug51498.phpt b/ext/gd/tests/bug51498.phpt
-index 808444376525e..756ba1f71dc33 100644
---- a/ext/gd/tests/bug51498.phpt
-+++ b/ext/gd/tests/bug51498.phpt
-@@ -7,6 +7,9 @@ gd
- if (!GD_BUNDLED && version_compare(GD_VERSION, "2.3.0") < 0) {
- die("skip test requires GD 2.3.0 or higher");
- }
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug52070.phpt b/ext/gd/tests/bug52070.phpt
-index 1ba28affdbfcd..6bbe2363a650b 100644
---- a/ext/gd/tests/bug52070.phpt
-+++ b/ext/gd/tests/bug52070.phpt
-@@ -2,6 +2,12 @@
- Bug #52070 (imagedashedline() - dashed line sometimes is not visible)
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $im = imagecreate(1200, 800);
-diff --git a/ext/gd/tests/bug53504.phpt b/ext/gd/tests/bug53504.phpt
-index bb74497af05ab..5bd81f35aa0cb 100644
---- a/ext/gd/tests/bug53504.phpt
-+++ b/ext/gd/tests/bug53504.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if(!function_exists('imageftbbox')) die('skip imageftbbox() not available');
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug64641.phpt b/ext/gd/tests/bug64641.phpt
-index d300bd8fc6a0a..edfebee99c92a 100644
---- a/ext/gd/tests/bug64641.phpt
-+++ b/ext/gd/tests/bug64641.phpt
-@@ -7,6 +7,9 @@ gd
- if (!GD_BUNDLED && version_compare(GD_VERSION, '2.2.2', '<')) {
- die("skip test requires GD 2.2.2 or higher");
- }
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug66005.phpt b/ext/gd/tests/bug66005.phpt
-index 78e0f481dab17..3f3b421b8856a 100644
---- a/ext/gd/tests/bug66005.phpt
-+++ b/ext/gd/tests/bug66005.phpt
-@@ -2,6 +2,12 @@
- Bug #66005 (imagecopy does not support 1bit transparency on truecolor images)
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $dest = imagecreatetruecolor(150, 50);
-diff --git a/ext/gd/tests/bug72482_2.phpt b/ext/gd/tests/bug72482_2.phpt
-index 89f5bb28a77bd..0583fa4dedde3 100644
---- a/ext/gd/tests/bug72482_2.phpt
-+++ b/ext/gd/tests/bug72482_2.phpt
-@@ -2,6 +2,12 @@
- Bug 72482 (Ilegal write/read access caused by gdImageAALine overflow)
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'func.inc';
-diff --git a/ext/gd/tests/bug72604.phpt b/ext/gd/tests/bug72604.phpt
-index 706d7891c3220..a7d24e78dfefe 100644
---- a/ext/gd/tests/bug72604.phpt
-+++ b/ext/gd/tests/bug72604.phpt
-@@ -2,6 +2,12 @@
- Bug #72604 (imagearc() ignores thickness for full arcs)
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $im = imagecreatetruecolor(100, 100);
-diff --git a/ext/gd/tests/bug72913.phpt b/ext/gd/tests/bug72913.phpt
-index c3a7e9f9f56cf..9eb9c24653530 100644
---- a/ext/gd/tests/bug72913.phpt
-+++ b/ext/gd/tests/bug72913.phpt
-@@ -2,6 +2,12 @@
- Bug #72913 (imagecopy() loses single-color transparency on palette images)
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $base64 = 'iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAIAAACRXR/mAAAABnRSTlMAAAAAAABu'
-diff --git a/ext/gd/tests/bug73213.phpt b/ext/gd/tests/bug73213.phpt
-index c4c4bd6feeaf1..47fe8043135f8 100644
---- a/ext/gd/tests/bug73213.phpt
-+++ b/ext/gd/tests/bug73213.phpt
-@@ -2,6 +2,12 @@
- Bug #73213 (Integer overflow in imageline() with antialiasing)
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'func.inc';
-diff --git a/ext/gd/tests/bug73272.phpt b/ext/gd/tests/bug73272.phpt
-index cf10eb227ae11..0f0920b2687db 100644
---- a/ext/gd/tests/bug73272.phpt
-+++ b/ext/gd/tests/bug73272.phpt
-@@ -2,6 +2,12 @@
- Bug #73272 (imagescale() is not affected by, but affects imagesetinterpolation())
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'func.inc';
-diff --git a/ext/gd/tests/bug73549.phpt b/ext/gd/tests/bug73549.phpt
-index d25941dd565d3..26a7474b7d5b4 100644
---- a/ext/gd/tests/bug73549.phpt
-+++ b/ext/gd/tests/bug73549.phpt
-@@ -2,6 +2,12 @@
- Bug #73549 (Use after free when stream is passed to imagepng)
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $stream = fopen(__DIR__ . DIRECTORY_SEPARATOR . 'bug73549.png', 'w');
-diff --git a/ext/gd/tests/bug73614.phpt b/ext/gd/tests/bug73614.phpt
-index def4d37421160..e1261643f7116 100644
---- a/ext/gd/tests/bug73614.phpt
-+++ b/ext/gd/tests/bug73614.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (!GD_BUNDLED && version_compare(GD_VERSION, '2.2.5', '<=')) die('skip upstream bugfix not yet released');
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug74031.phpt b/ext/gd/tests/bug74031.phpt
-index b4efa6b749e8e..6dfb351fcff97 100644
---- a/ext/gd/tests/bug74031.phpt
-+++ b/ext/gd/tests/bug74031.phpt
-@@ -2,6 +2,12 @@
- (Bug #74031) ReflectionFunction for imagepng returns wrong number of parameters
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
-
-diff --git a/ext/gd/tests/bug75124.phpt b/ext/gd/tests/bug75124.phpt
-index 47b36157fec90..26e44f1d6a011 100644
---- a/ext/gd/tests/bug75124.phpt
-+++ b/ext/gd/tests/bug75124.phpt
-@@ -7,6 +7,9 @@ gd
- if (!GD_BUNDLED && version_compare(GD_VERSION, '2.2.5', '<')) {
- die('skip only for bundled libgd or external libgd >= 2.2.5');
- }
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/bug77943.phpt b/ext/gd/tests/bug77943.phpt
-index 8ed4114128f25..d7d71ceca84ae 100644
---- a/ext/gd/tests/bug77943.phpt
-+++ b/ext/gd/tests/bug77943.phpt
-@@ -2,6 +2,12 @@
- Bug #77943 (imageantialias($image, false); does not work)
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- require_once __DIR__ . '/func.inc';
-diff --git a/ext/gd/tests/bug79945.phpt b/ext/gd/tests/bug79945.phpt
-index b985ddd48be31..5db958e36d358 100644
---- a/ext/gd/tests/bug79945.phpt
-+++ b/ext/gd/tests/bug79945.phpt
-@@ -4,6 +4,9 @@ Bug #79945 (using php wrappers in imagecreatefrompng causes segmentation fault)
- gd
- --SKIPIF--
- <?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- set_error_handler(function($errno, $errstr) {
- if (str_contains($errstr, 'Cannot cast a filtered stream on this system')) {
- die('skip: fopencookie not support on this system');
-diff --git a/ext/gd/tests/imagearc_basic.phpt b/ext/gd/tests/imagearc_basic.phpt
-index be80f6c5f2317..339ea0b79d18d 100644
---- a/ext/gd/tests/imagearc_basic.phpt
-+++ b/ext/gd/tests/imagearc_basic.phpt
-@@ -5,6 +5,12 @@ Edgar Ferreira da Silva <contato [at] edgarfs [dot] com [dot] br>
- #testfest PHPSP on 2009-06-20
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
-
-diff --git a/ext/gd/tests/imagearc_variation1.phpt b/ext/gd/tests/imagearc_variation1.phpt
-index 89719aa60b494..bf20c74f0ce40 100644
---- a/ext/gd/tests/imagearc_variation1.phpt
-+++ b/ext/gd/tests/imagearc_variation1.phpt
-@@ -5,6 +5,12 @@ Edgar Ferreira da Silva <contato [at] edgarfs [dot] com [dot] br>
- #testfest PHPSP on 2009-06-20
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
-
-diff --git a/ext/gd/tests/imagearc_variation2.phpt b/ext/gd/tests/imagearc_variation2.phpt
-index 4597cf3a8ff89..c23bca840bf4e 100644
---- a/ext/gd/tests/imagearc_variation2.phpt
-+++ b/ext/gd/tests/imagearc_variation2.phpt
-@@ -5,6 +5,12 @@ Edgar Ferreira da Silva <contato [at] edgarfs [dot] com [dot] br>
- #testfest PHPSP on 2009-06-20
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
-
-diff --git a/ext/gd/tests/imagechar_basic.phpt b/ext/gd/tests/imagechar_basic.phpt
-index 3195eb82d4d4f..649dcccc2de87 100644
---- a/ext/gd/tests/imagechar_basic.phpt
-+++ b/ext/gd/tests/imagechar_basic.phpt
-@@ -5,6 +5,12 @@ Rafael Dohms <rdohms [at] gmail [dot] com>
- #testfest PHPSP on 2009-06-20
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $image = imagecreatetruecolor(180, 30);
-diff --git a/ext/gd/tests/imagecharup_basic.phpt b/ext/gd/tests/imagecharup_basic.phpt
-index 82bc18d6ad609..7ebbb8fce9a07 100644
---- a/ext/gd/tests/imagecharup_basic.phpt
-+++ b/ext/gd/tests/imagecharup_basic.phpt
-@@ -5,6 +5,12 @@ Rafael Dohms <rdohms [at] gmail [dot] com>
- #testfest PHPSP on 2009-06-20
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $image = imagecreatetruecolor(180, 30);
-diff --git a/ext/gd/tests/imagecolorallocatealpha_basic.phpt b/ext/gd/tests/imagecolorallocatealpha_basic.phpt
-index cc02aaed0d8b3..24ac882d550d5 100644
---- a/ext/gd/tests/imagecolorallocatealpha_basic.phpt
-+++ b/ext/gd/tests/imagecolorallocatealpha_basic.phpt
-@@ -9,6 +9,9 @@ gd
- if (!GD_BUNDLED && version_compare(GD_VERSION, '2.2.2', '<')) {
- die("skip test requires GD 2.2.2 or higher");
- }
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagecolorset_basic.phpt b/ext/gd/tests/imagecolorset_basic.phpt
-index cb9b3683aa8ee..5ed9a1ab8600e 100644
---- a/ext/gd/tests/imagecolorset_basic.phpt
-+++ b/ext/gd/tests/imagecolorset_basic.phpt
-@@ -5,6 +5,12 @@ Erick Belluci Tedeschi <erickbt86 [at] gmail [dot] com>
- #testfest PHPSP on 2009-06-20
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- // Create a 300x100 image
-diff --git a/ext/gd/tests/imageconvolution_basic.phpt b/ext/gd/tests/imageconvolution_basic.phpt
-index aa8347884999a..d8204e2d7eb28 100644
---- a/ext/gd/tests/imageconvolution_basic.phpt
-+++ b/ext/gd/tests/imageconvolution_basic.phpt
-@@ -5,6 +5,12 @@ Guilherme Blanco <guilhermeblanco [at] hotmail [dot] com>
- #testfest PHPSP on 2009-06-20
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $image = imagecreatetruecolor(180, 30);
-diff --git a/ext/gd/tests/imagecopyresampled_basic.phpt b/ext/gd/tests/imagecopyresampled_basic.phpt
-index a3200b3537809..9fb1178e540ae 100644
---- a/ext/gd/tests/imagecopyresampled_basic.phpt
-+++ b/ext/gd/tests/imagecopyresampled_basic.phpt
-@@ -2,6 +2,12 @@
- imagecopyresampled()
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
-
-diff --git a/ext/gd/tests/imagecreatefrombmp_basic.phpt b/ext/gd/tests/imagecreatefrombmp_basic.phpt
-index 51eb22c71adf0..4989e617b4719 100644
---- a/ext/gd/tests/imagecreatefrombmp_basic.phpt
-+++ b/ext/gd/tests/imagecreatefrombmp_basic.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (!(imagetypes() & IMG_BMP)) die('skip BMP support required');
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagecreatefromstring_bmp.phpt b/ext/gd/tests/imagecreatefromstring_bmp.phpt
-index 8f9e1dd675b91..34db04297e3aa 100644
---- a/ext/gd/tests/imagecreatefromstring_bmp.phpt
-+++ b/ext/gd/tests/imagecreatefromstring_bmp.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (!(imagetypes() & IMG_BMP)) die('skip BMP support required');
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagecreatefromtga_basic.phpt b/ext/gd/tests/imagecreatefromtga_basic.phpt
-index 25f034878b0c6..c66f66efbd638 100644
---- a/ext/gd/tests/imagecreatefromtga_basic.phpt
-+++ b/ext/gd/tests/imagecreatefromtga_basic.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (!(imagetypes() & IMG_TGA)) die('skip TGA support required');
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagecreatefromtga_variation.phpt b/ext/gd/tests/imagecreatefromtga_variation.phpt
-index 0948f978f2f6a..be9c7977bd6a7 100644
---- a/ext/gd/tests/imagecreatefromtga_variation.phpt
-+++ b/ext/gd/tests/imagecreatefromtga_variation.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (!(imagetypes() & IMG_TGA)) die('skip TGA support required');
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagecreatetruecolor_basic.phpt b/ext/gd/tests/imagecreatetruecolor_basic.phpt
-index 5af8a0a1a32bc..2e8a1ef983bd3 100644
---- a/ext/gd/tests/imagecreatetruecolor_basic.phpt
-+++ b/ext/gd/tests/imagecreatetruecolor_basic.phpt
-@@ -7,6 +7,9 @@ gd
- --SKIPIF--
- <?php
- if (!function_exists("imagecreatetruecolor")) die("skip GD Version not compatible");
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagecrop_auto.phpt b/ext/gd/tests/imagecrop_auto.phpt
-index 5d3d50b3ef317..5ed8e446a7f26 100644
---- a/ext/gd/tests/imagecrop_auto.phpt
-+++ b/ext/gd/tests/imagecrop_auto.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (!function_exists('imagecrop')) die( 'skip GD imagecropauto not present; skipping test' );
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagedashedline_basic.phpt b/ext/gd/tests/imagedashedline_basic.phpt
-index b36ffbfc6f593..d9ca69ad5f0b8 100644
---- a/ext/gd/tests/imagedashedline_basic.phpt
-+++ b/ext/gd/tests/imagedashedline_basic.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (!function_exists('imagedashedline')) die('skip imagedashedline() not available');
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imageellipse_basic.phpt b/ext/gd/tests/imageellipse_basic.phpt
-index 0c86e7cfcb859..da1e0e9926086 100644
---- a/ext/gd/tests/imageellipse_basic.phpt
-+++ b/ext/gd/tests/imageellipse_basic.phpt
-@@ -5,6 +5,12 @@ Ivan Rosolen <contato [at] ivanrosolen [dot] com>
- #testfest PHPSP on 2009-06-20
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
-
-diff --git a/ext/gd/tests/imagefilledarc_basic.phpt b/ext/gd/tests/imagefilledarc_basic.phpt
-index f3b8c7ac8e89e..006ed4aaa23b4 100644
---- a/ext/gd/tests/imagefilledarc_basic.phpt
-+++ b/ext/gd/tests/imagefilledarc_basic.phpt
-@@ -10,6 +10,9 @@ gd
- if (!GD_BUNDLED && version_compare(GD_VERSION, '2.2.2', '<')) {
- die("skip test requires GD 2.2.2 or higher");
- }
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagefilledarc_variation1.phpt b/ext/gd/tests/imagefilledarc_variation1.phpt
-index d25d2afc87987..d00c9b6c0be1e 100644
---- a/ext/gd/tests/imagefilledarc_variation1.phpt
-+++ b/ext/gd/tests/imagefilledarc_variation1.phpt
-@@ -10,6 +10,9 @@ gd
- if (!GD_BUNDLED && version_compare(GD_VERSION, '2.2.2', '<')) {
- die("skip test requires GD 2.2.2 or higher");
- }
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagefilledarc_variation2.phpt b/ext/gd/tests/imagefilledarc_variation2.phpt
-index fb4675ec5dd69..61157a0173158 100644
---- a/ext/gd/tests/imagefilledarc_variation2.phpt
-+++ b/ext/gd/tests/imagefilledarc_variation2.phpt
-@@ -10,6 +10,9 @@ gd
- if (!GD_BUNDLED && version_compare(GD_VERSION, '2.2.2', '<')) {
- die("skip test requires GD 2.2.2 or higher");
- }
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagefilledellipse_basic.phpt b/ext/gd/tests/imagefilledellipse_basic.phpt
-index 19a94b1200e24..a494b15c28e2e 100644
---- a/ext/gd/tests/imagefilledellipse_basic.phpt
-+++ b/ext/gd/tests/imagefilledellipse_basic.phpt
-@@ -2,6 +2,12 @@
- Testing imagefilledellipse() of GD library
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
-
-diff --git a/ext/gd/tests/imagefilledpolygon_basic.phpt b/ext/gd/tests/imagefilledpolygon_basic.phpt
-index 6cba5238d3246..bbb8f9c2eb044 100644
---- a/ext/gd/tests/imagefilledpolygon_basic.phpt
-+++ b/ext/gd/tests/imagefilledpolygon_basic.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (!function_exists('imagefilledpolygon')) die('skip imagefilledpolygon() not available');
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagefilltoborder_basic.phpt b/ext/gd/tests/imagefilltoborder_basic.phpt
-index 7e79ea47b46b6..f8ebe86bb2c6d 100644
---- a/ext/gd/tests/imagefilltoborder_basic.phpt
-+++ b/ext/gd/tests/imagefilltoborder_basic.phpt
-@@ -5,6 +5,12 @@ Ivan Rosolen <contato [at] ivanrosolen [dot] com>
- #testfest PHPSP on 2009-06-30
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- // Create a image
-diff --git a/ext/gd/tests/imagefilter.phpt b/ext/gd/tests/imagefilter.phpt
-index 79a73472511c7..c8cf182d9d4eb 100644
---- a/ext/gd/tests/imagefilter.phpt
-+++ b/ext/gd/tests/imagefilter.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (!function_exists("imagefilter")) die("skip requires imagefilter function");
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagegammacorrect_basic.phpt b/ext/gd/tests/imagegammacorrect_basic.phpt
-index 67b2a36a1657a..4f52309c825bf 100644
---- a/ext/gd/tests/imagegammacorrect_basic.phpt
-+++ b/ext/gd/tests/imagegammacorrect_basic.phpt
-@@ -10,6 +10,9 @@ gd
- if (!GD_BUNDLED && version_compare(GD_VERSION, '2.2.2', '<')) {
- die("skip test requires GD 2.2.2 or higher");
- }
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagegammacorrect_variation1.phpt b/ext/gd/tests/imagegammacorrect_variation1.phpt
-index 1c41a257b9ec4..55370aa49cf87 100644
---- a/ext/gd/tests/imagegammacorrect_variation1.phpt
-+++ b/ext/gd/tests/imagegammacorrect_variation1.phpt
-@@ -10,6 +10,9 @@ gd
- if (!GD_BUNDLED && version_compare(GD_VERSION, '2.2.2', '<')) {
- die("skip test requires GD 2.2.2 or higher");
- }
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagegammacorrect_variation2.phpt b/ext/gd/tests/imagegammacorrect_variation2.phpt
-index c75c728296bec..33c89d205a1a7 100644
---- a/ext/gd/tests/imagegammacorrect_variation2.phpt
-+++ b/ext/gd/tests/imagegammacorrect_variation2.phpt
-@@ -2,6 +2,12 @@
- Apply imagegammacorrect() to a step wedge
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- require __DIR__ . DIRECTORY_SEPARATOR . 'func.inc';
-diff --git a/ext/gd/tests/imageopenpolygon_basic.phpt b/ext/gd/tests/imageopenpolygon_basic.phpt
-index 6ed6d63a5ac47..ed8d3b698d11c 100644
---- a/ext/gd/tests/imageopenpolygon_basic.phpt
-+++ b/ext/gd/tests/imageopenpolygon_basic.phpt
-@@ -2,6 +2,12 @@
- imageopenpolygon(): basic test
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'func.inc';
-diff --git a/ext/gd/tests/imagepolygon_aa.phpt b/ext/gd/tests/imagepolygon_aa.phpt
-index 77fef3beed9a5..a0fded6e5e06c 100644
---- a/ext/gd/tests/imagepolygon_aa.phpt
-+++ b/ext/gd/tests/imagepolygon_aa.phpt
-@@ -2,6 +2,12 @@
- antialiased imagepolygon()
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'func.inc';
-diff --git a/ext/gd/tests/imagepolygon_basic.phpt b/ext/gd/tests/imagepolygon_basic.phpt
-index 4d17b30eacfa9..c41b0710ef435 100644
---- a/ext/gd/tests/imagepolygon_basic.phpt
-+++ b/ext/gd/tests/imagepolygon_basic.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (!function_exists('imagepolygon')) die('skip imagepolygon() not available');
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagerectangle_basic.phpt b/ext/gd/tests/imagerectangle_basic.phpt
-index d71c44156f98c..a40b130cba7d2 100644
---- a/ext/gd/tests/imagerectangle_basic.phpt
-+++ b/ext/gd/tests/imagerectangle_basic.phpt
-@@ -5,6 +5,12 @@ Ivan Rosolen <contato [at] ivanrosolen [dot] com>
- #testfest PHPSP on 2009-06-30
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- // Create a image
-diff --git a/ext/gd/tests/imageresolution_png.phpt b/ext/gd/tests/imageresolution_png.phpt
-index a72f351a156bf..13f51cd8f3a4a 100644
---- a/ext/gd/tests/imageresolution_png.phpt
-+++ b/ext/gd/tests/imageresolution_png.phpt
-@@ -2,6 +2,12 @@
- Set and get image resolution of PNG images
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $filename = __DIR__ . DIRECTORY_SEPARATOR . 'imageresolution_png.png';
-diff --git a/ext/gd/tests/imagesetbrush_basic.phpt b/ext/gd/tests/imagesetbrush_basic.phpt
-index be8a3d33e4ad7..5142e3690b85f 100644
---- a/ext/gd/tests/imagesetbrush_basic.phpt
-+++ b/ext/gd/tests/imagesetbrush_basic.phpt
-@@ -5,6 +5,12 @@ Erick Belluci Tedeschi <erickbt86 [at] gmail [dot] com>
- #testfest PHPSP on 2009-06-20
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- // Create the brush image
-diff --git a/ext/gd/tests/imagesetthickness_basic.phpt b/ext/gd/tests/imagesetthickness_basic.phpt
-index 88f7803dcf610..745dfcf905b92 100644
---- a/ext/gd/tests/imagesetthickness_basic.phpt
-+++ b/ext/gd/tests/imagesetthickness_basic.phpt
-@@ -7,6 +7,9 @@ gd
- --SKIPIF--
- <?php
- if (!function_exists("imagecreatetruecolor")) die("skip GD Version not compatible");
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/imagestring_basic.phpt b/ext/gd/tests/imagestring_basic.phpt
-index 1a71ba173c820..8a8e247eb0731 100644
---- a/ext/gd/tests/imagestring_basic.phpt
-+++ b/ext/gd/tests/imagestring_basic.phpt
-@@ -5,6 +5,12 @@ Rafael Dohms <rdohms [at] gmail [dot] com>
- #testfest PHPSP on 2009-06-20
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $image = imagecreatetruecolor(180, 30);
-diff --git a/ext/gd/tests/imagestringup_basic.phpt b/ext/gd/tests/imagestringup_basic.phpt
-index 85b85e1e31c51..f1e30a782fb88 100644
---- a/ext/gd/tests/imagestringup_basic.phpt
-+++ b/ext/gd/tests/imagestringup_basic.phpt
-@@ -5,6 +5,12 @@ Rafael Dohms <rdohms [at] gmail [dot] com>
- #testfest PHPSP on 2009-06-20
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- $image = imagecreatetruecolor(180, 30);
-diff --git a/ext/gd/tests/imagetruecolortopalette_basic.phpt b/ext/gd/tests/imagetruecolortopalette_basic.phpt
-index ae4555bb2ad72..2f1c2961a603c 100644
---- a/ext/gd/tests/imagetruecolortopalette_basic.phpt
-+++ b/ext/gd/tests/imagetruecolortopalette_basic.phpt
-@@ -10,6 +10,9 @@ gd
- die("skip test requires GD 2.2.2 or higher");
- }
- if (!function_exists("imagecreatetruecolor")) die("skip GD Version not compatible");
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/libgd00086_extern.phpt b/ext/gd/tests/libgd00086_extern.phpt
-index 8d2b0b7d8dbe8..a3585180b83e8 100644
---- a/ext/gd/tests/libgd00086_extern.phpt
-+++ b/ext/gd/tests/libgd00086_extern.phpt
-@@ -5,6 +5,9 @@ gd
- --SKIPIF--
- <?php
- if (GD_BUNDLED) die("skip requires external GD library\n");
-+ if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+ }
- ?>
- --FILE--
- <?php
-diff --git a/ext/gd/tests/test_image_equals_file_palette.phpt b/ext/gd/tests/test_image_equals_file_palette.phpt
-index a1022138230f6..2e294c04c4066 100644
---- a/ext/gd/tests/test_image_equals_file_palette.phpt
-+++ b/ext/gd/tests/test_image_equals_file_palette.phpt
-@@ -2,6 +2,12 @@
- test_image_equals_file(): comparing palette images
- --EXTENSIONS--
- gd
-+--SKIPIF--
-+<?php
-+if (!(imagetypes() & IMG_PNG)) {
-+ die("skip No PNG support");
-+}
-+?>
- --FILE--
- <?php
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'func.inc';
-
-From 14d9f2349274597bfc81c46222ea7e808d372bdb Mon Sep 17 00:00:00 2001
-From: Michael Orlitzky <michael@orlitzky.com>
-Date: Sat, 30 Dec 2023 16:13:40 -0500
-Subject: [PATCH 3/3] ext/gd/tests: imagerotate() is always available
-
-Following 59ec80c5, the imagerotate() function is always available. We
-may therefore remove its function_exists() checks without harm.
----
- ext/gd/tests/bug24155.phpt | 1 -
- ext/gd/tests/bug39366.phpt | 4 ----
- ext/gd/tests/imagerotate_overflow.phpt | 6 ------
- 3 files changed, 11 deletions(-)
-
-diff --git a/ext/gd/tests/bug24155.phpt b/ext/gd/tests/bug24155.phpt
-index d78ee9b77816f..c93c3bbbcb586 100644
---- a/ext/gd/tests/bug24155.phpt
-+++ b/ext/gd/tests/bug24155.phpt
-@@ -4,7 +4,6 @@ Bug #24155 (gdImageRotate270 rotation problem).
- gd
- --SKIPIF--
- <?php
-- if (!function_exists("imagerotate")) die("skip requires imagerotate function");
- if (!(imagetypes() & IMG_PNG)) {
- die("skip No PNG support");
- }
-diff --git a/ext/gd/tests/bug39366.phpt b/ext/gd/tests/bug39366.phpt
-index 81e81059c27e8..3c8b0130a410a 100644
---- a/ext/gd/tests/bug39366.phpt
-+++ b/ext/gd/tests/bug39366.phpt
-@@ -2,10 +2,6 @@
- Bug #39366 (imagerotate does not respect alpha with angles>45)
- --EXTENSIONS--
- gd
----SKIPIF--
--<?php
-- if (!function_exists("imagerotate")) die("skip requires imagerotate function");
--?>
- --FILE--
- <?php
-
-diff --git a/ext/gd/tests/imagerotate_overflow.phpt b/ext/gd/tests/imagerotate_overflow.phpt
-index 29cc89c1c56eb..a7be335ca92a6 100644
---- a/ext/gd/tests/imagerotate_overflow.phpt
-+++ b/ext/gd/tests/imagerotate_overflow.phpt
-@@ -2,12 +2,6 @@
- imagerotate() overflow with negative numbers
- --EXTENSIONS--
- gd
----SKIPIF--
--<?php
-- if (!function_exists('imagerotate')) {
-- die("skip imagerotate() not available.");
-- }
--?>
- --FILE--
- <?php
-
diff --git a/dev-lang/php/files/php-bug75457-pcre2-backport.patch b/dev-lang/php/files/php-bug75457-pcre2-backport.patch
new file mode 100644
index 000000000000..83c0ab0b3a2e
--- /dev/null
+++ b/dev-lang/php/files/php-bug75457-pcre2-backport.patch
@@ -0,0 +1,22 @@
+From 69480be12afb4040c6dd9275b7836231cdd6f6bb Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Wed, 12 Mar 2025 07:48:05 +0100
+Subject: [PATCH] Relax test expectation for pcre2lib 10.45 Using
+ e92848789acd8aa5cf32fedb519ba9378ac64e02
+
+Co-authored-by: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
+---
+ ext/pcre/tests/bug75457.phpt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ext/pcre/tests/bug75457.phpt b/ext/pcre/tests/bug75457.phpt
+index ee5ab162f8a6c..1401b25ff6fb7 100644
+--- a/ext/pcre/tests/bug75457.phpt
++++ b/ext/pcre/tests/bug75457.phpt
+@@ -6,5 +6,5 @@ $pattern = "/(((?(?C)0?=))(?!()0|.(?0)0)())/";
+ var_dump(preg_match($pattern, "hello"));
+ ?>
+ --EXPECTF--
+-Warning: preg_match(): Compilation failed: assertion expected after (?( or (?(?C) at offset 8 in %sbug75457.php on line %d
++Warning: preg_match(): Compilation failed:%r( atomic|)%r assertion expected after (?( or (?(?C) at offset 8 in %sbug75457.php on line %d
+ bool(false)
diff --git a/dev-lang/php/php-8.2.27-r1.ebuild b/dev-lang/php/php-8.2.28.ebuild
index 48520240c2fd..d7612d5e8ebb 100644
--- a/dev-lang/php/php-8.2.27-r1.ebuild
+++ b/dev-lang/php/php-8.2.28.ebuild
@@ -150,6 +150,7 @@ PATCHES=(
"${FILESDIR}/php-8.2.8-openssl-tests.patch"
"${FILESDIR}/php-8.2.20-implicit-printf.patch"
"${FILESDIR}/php-8.2.23-fix-ub.patch"
+ "${FILESDIR}/php-bug75457-pcre2-backport.patch"
)
# ARM/Windows functions (bug 923335)
diff --git a/dev-lang/php/php-8.3.17.ebuild b/dev-lang/php/php-8.3.19.ebuild
index d7b22f70b437..a450d59a202e 100644
--- a/dev-lang/php/php-8.3.17.ebuild
+++ b/dev-lang/php/php-8.3.19.ebuild
@@ -134,8 +134,8 @@ DEPEND="${COMMON_DEPEND}
BDEPEND="virtual/pkgconfig"
PATCHES=(
- "${FILESDIR}/php-8.3.10-optional-png-testfixen.patch"
"${FILESDIR}/php-8.3.9-gd-cachevars.patch"
+ "${FILESDIR}/php-bug75457-pcre2-backport.patch"
)
PHP_MV="$(ver_cut 1)"
@@ -230,15 +230,6 @@ src_prepare() {
#
rm ext/sockets/tests/bug63000.phpt || die
- # depends on truetype support, thus we skip it
- # if the "truetype" USE flag is missing
- #
- # https://github.com/php/php-src/issues/17891
- #
- if ! use truetype ; then
- rm ext/gd/tests/gh17373.phpt || die
- fi
-
# Tests ignoring the "-n" flag we pass to run-tests.php,
#
# https://github.com/php/php-src/pull/11669
@@ -263,14 +254,6 @@ src_prepare() {
# be running pre-install, in my opinion. Bug 927461.
rm ext/fileinfo/tests/bug78987.phpt || die
- # Bug 935382, fixed eventually by
- #
- # - https://github.com/php/php-src/pull/14788
- # - https://github.com/php/php-src/pull/14814
- #
- rm ext/standard/tests/strings/chunk_split_variation1_32bit.phpt || die
- rm ext/standard/tests/strings/wordwrap_memory_limit.phpt || die
-
# Bug 935379, not yet fixed upstream but looks harmless (ordering
# of keys isn't guaranteed AFAICS):
#
@@ -293,6 +276,13 @@ src_prepare() {
ext/gd/tests/bug73272.phpt \
|| die
+ # Test currently fails in the sandbox and the test for this variant
+ # might be broken. Upstream discusses removing the test again.
+ #
+ # - https://github.com/php/php-src/commit/930624899bb996efc2f6a24b992ede90
+ #
+ rm ext/standard/tests/file/bug72666_variation3.phpt || die
+
# One-off, somebody forgot to update a version constant
rm ext/reflection/tests/ReflectionZendExtension.phpt || die
diff --git a/dev-lang/pypy/Manifest b/dev-lang/pypy/Manifest
index 421c9c74cc00..3285d1c23480 100644
--- a/dev-lang/pypy/Manifest
+++ b/dev-lang/pypy/Manifest
@@ -1,16 +1,10 @@
-DIST pypy2.7-gentoo-patches-7.3.17.tar.xz 5324 BLAKE2B 866f172a6df6f0e94a98c611b37ae58635623e33a47619a5e44658d3908337a3f9029ff7de6997f760c3f1679fc83bfc6ddfb66852c492a581b3336b5eec3ed2 SHA512 6ce5266d0748f3c18a5546aa2bd8479ecb45923eb7df8a140a195e7f7b44999b9167ffdd44f7fd789ddd3a62cd77cb917863b0144180a1127befce1f290e650a
DIST pypy2.7-gentoo-patches-7.3.19.tar.xz 5328 BLAKE2B c997c0e7f39a4a6a9ec34811b38fc8f9b90ccae8c958ca420074013d63a4f1b453b6331be79a2df299efe177cc99d91038ae56156d37b5f9b9f8715ccd2cb75d SHA512 7bac5331fa868c60b376e405df212a29d406f117035fbc1ad8bd6d81212ab2ea4ce5b6b40e8dbbb6303fe941152e37aae17608a2eca9efd16767c8844f6f5fdb
-DIST pypy2.7-v7.3.17-src.tar.bz2 19907140 BLAKE2B de62ebc4e8102867effdecddca64c19c40458b112a6a56ac0c95247047b9f5437a5da68dffb51c14c21bce463c2ca489c6e6a4f86e8cc597b57df2eca707081e SHA512 82b2b9dbf0ea32c405ddc53d98a3a7a153f494d286e8719a0c40960168aadc0f49c3b313416488338f7f51c8fdb58120de41b1d47a8c8eda7db6d4ec4273b4eb
DIST pypy2.7-v7.3.19-src.tar.bz2 21011665 BLAKE2B b8e205927c829753dd3e5aba0868923efff73f62e5338d6200aab2470857fff9cf38763ab8b63a74a39299d4956d4794eedf5d474d083875bbb9cee9ea757e64 SHA512 8ab8d9c0fa94ec96ebfae30b7f97eb8dff6ad4ee17fa688df123927c45f3ffea2c7f5dbb98bd2f8a49f7db6baf0ba3e98fd230df0bdc8602e407fb2bc33144e3
-DIST pypy3.10-gentoo-patches-7.3.17_p4.tar.xz 30520 BLAKE2B b6ace80e0dc19a3fc24b1e5c97da1d67fc470c07032e86a875f0c994f6d2c64024a171d13b4e22f1531f15cb118a81993469a81dbc83eed03fce73a4b29f02d0 SHA512 586f8836ff3d122ad3fe3ec882057f37d2c509ea5cad98b674e917b1fd6022e0a27cc3639eaf9d3be43a91cb26fac73905067a2852bcda2f587e87e3e83b7be2
DIST pypy3.10-gentoo-patches-7.3.19_p1.tar.xz 6344 BLAKE2B 40ebbf87d0864e2a3957671680b7b9c0bea151fcdef808aef70711c24fdbd94846c15b010a3bd906915ab7a551d46f18264b2bda2c732d68b2594796d29226c8 SHA512 cd9d0ad4b48c21497f227f3b6540b01265df23de8cedaf212fe51dcae830a2812df6df169fdba3db36ccac29fb2d77aa2202f8e9b4bca543bd569db0d53c5736
-DIST pypy3.10-v7.3.17-src.tar.bz2 23350562 BLAKE2B 0a7a091976b352de61057f238fa386f767dd4d2fbcdcc0b4376066c20c2ad35d3818fa6e9e163ab5fd341856802e8ad1e2891decf5948c13cdb26726cd42019e SHA512 46e30845bbc73cf56f5033a24d3583253ce198522f3a28ae4e789884063ba167d401fc08ae7fc8c7769feed9cd942a8ab38961c8b8794d7fae8f9955479faa96
DIST pypy3.10-v7.3.19-src.tar.bz2 24547353 BLAKE2B 975de34c7e01117c74e184693b6659ba0e3d8d488d724c03737dbd64533452c954e045e45058e1e77b9bee68e01060e74e30d7898d29f1adce417ce4b46579b8 SHA512 8fa24d3556bcf9cd0e2facd697827a5001fcfae9bf7874957843e4751b259f85a8b36166921282d71f39bb468d1706bb669373aebbc52486b683fcc824fb30ad
DIST pypy3.11-gentoo-patches-7.3.19_p4.tar.xz 7008 BLAKE2B b441decac64d3565cf1d8d5b5e7f3b29f39a462c51f0bee3f480bc31847a1dd02d468241f78c01ec355fa33823bba508cc3eb5c5b97340cc208067d22eb535be SHA512 f52e3dbde99cfe55d286554deb1826cdf4ce63073f6e4c29d43bd33d9c78a4fcedbd32029ddfd1a854d0bf77524e82dee6cc4367e81f5b23e355af3e302d115a
DIST pypy3.11-v7.3.19-src.tar.bz2 24916380 BLAKE2B febc61b3a1c5055b5ab92e7f3af2c307605c8510131437b12df27b58a13b29f6fd0a4bf82d101f7f8f441ca93b20cf70dbd540af11578be297ea871d59304ea3 SHA512 ab078e81e5eefe16823350bdc9adcc444e0ef6835ff2234197f9e5cb0903c5208deb6df60722e99aa529ffff703c5dcbc08eaa7f753c2e5c1185afea6358395a
-EBUILD pypy-2.7.7.3.17.ebuild 7390 BLAKE2B b840b2c94b60e9d39aae7d5062c56f398428e4d31f1613cda39e34a6de1c279d06eace53774e08c7f5d2ab01f85d9bb30184de5fdbf9374ad276b97f58ac4e5a SHA512 8ffceda18cdc35e932d65ccb2c1962ce13c1fb46585afa9c909b9882e251ee8503822d1d0aac4f1ea669f566e0ae87a527fa467a2fc8578d899e67d58cca07bc
-EBUILD pypy-2.7.7.3.19.ebuild 7392 BLAKE2B 4b35786d65011016b75f0e173c047582b025d4f7f89f9f86e2c7fd7dcfb388b77a31f6f515393a47101756999ee495b7620de43c4275732d221ba964b066c412 SHA512 45baadb55e445268f792ff4bf75d40e611482e5c68635e411266d10c899de08d784e4ec6137a951b7e43ad9e2c2aae2f5c1818d686cfeba684bf07acbfba8c34
-EBUILD pypy-3.10.7.3.17_p4.ebuild 7140 BLAKE2B db6bfe1c3d44cdf9f4a1639c6bf8e35253c0ac3687f3a1315bfd52ca82c4a6fa0c3626c2aad938f8bcf2b2b6851db6fa1ed5f1847a891a08800040e0e4c27ea4 SHA512 efe64c07cfbdcb2fafbbbb93adeda1fd3ba22164130cb908d8bf26d0d82713fca179463f44673fb262573dca96a468573b53e67ab97d3f51563e23888afadfff
-EBUILD pypy-3.10.7.3.19_p1.ebuild 7156 BLAKE2B a7fe73c92496bda2a55a45cea4cb8a22df0d736571c9e616d4852d06128259326b66961169f7241a40aad26df17e336234947f0cd50dc81061e0936f5def653a SHA512 c3faeb02451b5cf360df330446468da253201fe5e234f055bf627dbcd72aae47d59049dd38cfafc0fcbe8ddc3df7147625bbfef5a3061e8d5a54bea861d0334f
+EBUILD pypy-2.7.7.3.19.ebuild 7390 BLAKE2B 0a2de7fe0cf184c8509edad7866a0642e154582b968987324c6a7deab7b8cc91a61283384b03554b55bbf5142fdfd4c2c32d734c67836f4079e8d23685845fe7 SHA512 a8e9978a6b27e54cf912083c10a6d3652d6e9b012e047434ae24a89a2cf0308df24e7f8b92e4008c1891c274d206201d68f915469a3f8b1ea786e054485e1d73
+EBUILD pypy-3.10.7.3.19_p1.ebuild 7154 BLAKE2B 7f9552092b1e5fde0ea58acee8ed657e644742784a7a4c359cc226c91344b40dca146a6ea54af3d0f4393ae4946456c390c3bc1894308873ff1d8c05c1cb648e SHA512 e2667579d7e7c032d08e1f1379b3462c398f681794ef121d9b8270125f51771d67d272dfcdee51691e6f1e75f32fd5773797b22b42063661ef33fc52c2a29056
EBUILD pypy-3.11.7.3.19_p4-r1.ebuild 7108 BLAKE2B 95193522904c4fbf328320216c44b325e81902bbe5e6e06a489ea32276342d6a4ad7812a150aafc1b549dff48c9e7608d4e6c9dc42d3648c4d17f86b5f6d1978 SHA512 837f0f743512358cd5d3b3ccd6a56f1893dbe660a8bf17cdb639ff25c2b4aa32cd1c9510ff1e6ea31d8074e1655d1042ee63cc3e058be167e73b9cc25f83521d
MISC metadata.xml 1124 BLAKE2B f1d09d26175cf20d1440a9a83352cf6f2f2e514d35d95116caf4a5ee86547f0165a6369e7a6b129ded75d28ba5a0c1c8f4da7d664d7c1e3c1e95153593057b3c SHA512 ae95400c9a1efc75372201c2353b128302355d1d087094953d73c325fa72bc24662d31c7287ae6a2583448ac345bb60744ac19391e07f8da8ef0327627e0e462
diff --git a/dev-lang/pypy/pypy-2.7.7.3.17.ebuild b/dev-lang/pypy/pypy-2.7.7.3.17.ebuild
deleted file mode 100644
index c17bbb07a99e..000000000000
--- a/dev-lang/pypy/pypy-2.7.7.3.17.ebuild
+++ /dev/null
@@ -1,315 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit pax-utils toolchain-funcs
-
-PYVER=$(ver_cut 1-2)
-PATCHSET_PV=$(ver_cut 3-)
-PYPY_PV=${PATCHSET_PV%_p*}
-
-MY_P="pypy${PYVER}-v${PYPY_PV/_}"
-PATCHSET="pypy${PYVER}-gentoo-patches-${PATCHSET_PV/_rc/rc}"
-
-DESCRIPTION="A fast, compliant alternative implementation of the Python (${PYVER}) language"
-HOMEPAGE="
- https://pypy.org/
- https://github.com/pypy/pypy/
-"
-SRC_URI="
- https://downloads.python.org/pypy/${MY_P}-src.tar.bz2
- https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
- https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
-"
-S="${WORKDIR}/${MY_P}-src"
-
-LICENSE="MIT"
-# pypy -c 'import sysconfig; print sysconfig.get_config_var("SOABI")'
-SLOT="${PYVER}/73"
-KEYWORDS="amd64 ~arm64 ~ppc64 x86 ~amd64-linux ~x86-linux"
-IUSE="bzip2 full-stdlib gdbm +jit ncurses sqlite tk"
-RESTRICT="test"
-
-RDEPEND="
- || (
- >=dev-python/pypy-exe-bin-${PYPY_PV}:${PYPY_PV}
- >=dev-python/pypy-exe-${PYPY_PV}:${PYPY_PV}[bzip2?,ncurses?]
- )
- dev-libs/openssl:0=
- gdbm? ( sys-libs/gdbm:0= )
- sqlite? ( dev-db/sqlite:3= )
- tk? (
- dev-lang/tk:0=
- dev-tcltk/tix:0=
- )
- !dev-python/pypy
-"
-DEPEND="
- ${RDEPEND}
-"
-
-src_prepare() {
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
-
- default
-}
-
-src_configure() {
- tc-export CC
-}
-
-src_compile() {
- # copy over to make sys.prefix happy
- cp -p "${BROOT}/usr/lib/pypy${PYVER}/pypy-c-${PYPY_PV}" pypy-c || die
- cp -p "${BROOT}/usr/lib/pypy${PYVER}/include/${PYPY_PV}"/* include/ || die
- # (not installed by pypy)
- rm pypy/module/cpyext/include/_numpypy/numpy/README || die
- mv pypy/module/cpyext/include/* include/ || die
- mv pypy/module/cpyext/parse/*.h include/ || die
- pax-mark m pypy-c
-
- # verify the subslot
- local soabi=$(
- ./pypy-c - <<-EOF
- import sysconfig
- print sysconfig.get_config_var("SOABI")
- EOF
- )
- [[ ${soabi#pypy-} == ${SLOT#*/} ]] || die "update subslot to ${soabi}"
-
- einfo "Generating caches and CFFI modules ..."
-
- if use full-stdlib; then
- # Generate Grammar and PatternGrammar pickles.
- ./pypy-c - <<-EOF || die "Generation of Grammar and PatternGrammar pickles failed"
- import lib2to3.pygram
- import lib2to3.patcomp
- lib2to3.patcomp.PatternCompiler()
- EOF
-
- # Generate cffi modules
- # Please keep in sync with pypy/tool/build_cffi_imports.py!
- cffi_targets=( pypy_util ssl audioop syslog pwdgrp resource )
- use gdbm && cffi_targets+=( gdbm )
- use ncurses && cffi_targets+=( curses )
- use sqlite && cffi_targets+=( sqlite3 )
- use tk && cffi_targets+=( tkinter/tklib )
-
- local t
- # all modules except tkinter output to .
- # tkinter outputs to the correct dir ...
- cd lib_pypy || die
- for t in "${cffi_targets[@]}"; do
- # tkinter doesn't work via -m
- ../pypy-c "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
- done
-
- # Verify that CFFI module list is up-to-date
- local expected_cksum=-7df4eab0
- local local_cksum=$(
- ../pypy-c - <<-EOF
- import binascii
- import json
- from pypy_tools.build_cffi_imports import cffi_build_scripts as x
- print("%08x" % (binascii.crc32(json.dumps(x)),))
- EOF
- )
- if [[ ${local_cksum} != ${expected_cksum} ]]; then
- die "Please verify cffi_targets and update checksum to ${local_cksum}"
- fi
-
- # Cleanup temporary objects
- find -name "_cffi_*.[co]" -delete || die
- find -type d -empty -delete || die
- fi
-}
-
-src_test() {
- # (unset)
- local -x PYTHONDONTWRITEBYTECODE=
- local -x COLUMNS=80
-
- local ignored_tests=(
- # network
- --ignore=lib-python/${PYVER}/test/test_urllibnet.py
- --ignore=lib-python/${PYVER}/test/test_urllib2net.py
- # lots of free space
- --ignore=lib-python/${PYVER}/test/test_zipfile64.py
-
- # broken by expat-2.4.5
- --ignore=lib-python/${PYVER}/test/test_minidom.py
- --ignore=lib-python/${PYVER}/test/test_xml_etree.py
- --ignore=lib-python/${PYVER}/test/test_xml_etree_c.py
- )
-
- ./pypy-c ./pypy/test_all.py --pypy=./pypy-c -vv \
- "${ignored_tests[@]}" lib-python || die
-}
-
-src_install() {
- local dest="/usr/lib/pypy${PYVER}"
- einfo "Installing PyPy ..."
- dosym "pypy-c-${PYPY_PV}" "${dest}/pypy-c"
- insinto "${dest}"
- # preserve mtimes to avoid obsoleting caches
- insopts -p
- if use full-stdlib; then
- doins -r include lib_pypy lib-python
-
- # replace copied headers with symlinks
- for x in "${BROOT}/usr/lib/pypy${PYVER}/include/${PYPY_PV}"/*; do
- dosym "${PYPY_PV}/${x##*/}" "${dest}/include/${x##*/}"
- done
-
- if ! use gdbm; then
- rm -r "${ED}${dest}"/lib_pypy/gdbm.py \
- "${ED}${dest}"/lib-python/*${PYVER}/test/test_gdbm.py || die
- fi
- if ! use sqlite; then
- rm -r "${ED}${dest}"/lib-python/*${PYVER}/sqlite3 \
- "${ED}${dest}"/lib_pypy/_sqlite3.py \
- "${ED}${dest}"/lib-python/*${PYVER}/test/test_sqlite.py || die
- fi
- if ! use tk; then
- rm -r "${ED}${dest}"/lib-python/*${PYVER}/{idlelib,lib-tk} \
- "${ED}${dest}"/lib_pypy/_tkinter \
- "${ED}${dest}"/lib-python/*${PYVER}/test/test_{tcl,tk,ttk*}.py || die
- fi
- else
- # install only the absolutely minimal subset of modules needed
- # for pypy3 build
- local lib_py_modules=(
- # base modules needed to even start pypy (and import site)
- codecs.py
- copy_reg.py
- encodings
- genericpath.py
- linecache.py
- os.py
- pkgutil.py
- posixpath.py
- re.py
- runpy.py
- site.py
- sre_compile.py
- sre_constants.py
- sre_parse.py
- stat.py
- string.py
- sysconfig.py
- traceback.py
- warnings.py
- UserDict.py
-
- # needed for python_optimize
- compileall.py
- getopt.py
- py_compile.py
- struct.py
-
- # needed for rpython
- argparse.py
- atexit.py
- base64.py
- bdb.py
- bisect.py
- cmd.py
- code.py
- codeop.py
- collections.py
- colorsys.py
- contextlib.py
- copy.py
- ctypes
- dis.py
- fnmatch.py
- functools.py
- gettext.py
- hashlib.py
- heapq.py
- inspect.py
- io.py
- json
- keyword.py
- locale.py
- logging
- new.py
- opcode.py
- optparse.py
- pdb.py
- pickle.py
- platform.py
- pprint.py
- random.py
- repr.py
- shlex.py
- shutil.py
- StringIO.py
- subprocess.py
- tempfile.py
- textwrap.py
- threading.py
- tokenize.py
- weakref.py
- zipfile.py
- )
-
- local distutils_modules=(
- # needed by site
- __init__.py
- errors.py
- sysconfig.py
- sysconfig_cpython.py
- sysconfig_pypy.py
- )
-
- local lib_pypy_modules=(
- # needed by site
- _sysconfigdata.py
-
- # needed by rpython
- cffi
- _ctypes
- _ffi.py
- _functools.py
- _sha.py
- _sha256.py
- _sha512.py
-
- # NB: we're deliberately skipping _hashlib to avoid some deps
- )
-
- cd "lib-python/${PYVER}" || die
- insinto "${dest}/lib-python/${PYVER}"
- doins -r "${lib_py_modules[@]}"
- cd - >/dev/null || die
-
- cd "lib-python/${PYVER}/distutils" || die
- insinto "${dest}/lib-python/${PYVER}/distutils"
- doins -r "${distutils_modules[@]}"
- cd - >/dev/null || die
-
- cd lib_pypy || die
- insinto "${dest}/lib_pypy"
- doins -r "${lib_pypy_modules[@]}"
- cd - >/dev/null || die
- fi
-
- dosym "../lib/pypy${PYVER}/pypy-c" /usr/bin/pypy
- dodoc README.rst
-
- local -x PYTHON="${ED}${dest}/pypy-c-${PYPY_PV}"
- # temporarily copy to build tree to facilitate module builds
- cp -p "${BROOT}${dest}/pypy-c-${PYPY_PV}" "${PYTHON}" || die
-
- einfo "Byte-compiling Python standard library..."
- "${PYTHON}" -m compileall \
- -x 'bad_coding|badsyntax|make_ssl_data|lib2to3/tests/data' \
- -q -f -d "${dest}" "${ED}/${dest}" || die
-
- # remove to avoid collisions
- rm "${PYTHON}" || die
-}
diff --git a/dev-lang/pypy/pypy-2.7.7.3.19.ebuild b/dev-lang/pypy/pypy-2.7.7.3.19.ebuild
index 5520e06682bf..ae0295f37ce5 100644
--- a/dev-lang/pypy/pypy-2.7.7.3.19.ebuild
+++ b/dev-lang/pypy/pypy-2.7.7.3.19.ebuild
@@ -27,7 +27,7 @@ S="${WORKDIR}/${MY_P}-src"
LICENSE="MIT"
# pypy -c 'import sysconfig; print sysconfig.get_config_var("SOABI")'
SLOT="${PYVER}/73"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 ~arm64 ~ppc64 x86 ~amd64-linux ~x86-linux"
IUSE="bzip2 full-stdlib gdbm +jit ncurses sqlite tk"
RESTRICT="test"
diff --git a/dev-lang/pypy/pypy-3.10.7.3.17_p4.ebuild b/dev-lang/pypy/pypy-3.10.7.3.17_p4.ebuild
deleted file mode 100644
index 798985845580..000000000000
--- a/dev-lang/pypy/pypy-3.10.7.3.17_p4.ebuild
+++ /dev/null
@@ -1,238 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs
-
-PYVER=$(ver_cut 1-2)
-PATCHSET_PV=$(ver_cut 3-)
-PYPY_PV=${PATCHSET_PV%_p*}
-
-MY_P="pypy${PYVER}-v${PYPY_PV/_}"
-PATCHSET="pypy${PYVER}-gentoo-patches-${PATCHSET_PV/_rc/rc}"
-
-DESCRIPTION="A fast, compliant alternative implementation of the Python (${PYVER}) language"
-HOMEPAGE="
- https://pypy.org/
- https://github.com/pypy/pypy/
-"
-SRC_URI="
- https://downloads.python.org/pypy/${MY_P}-src.tar.bz2
- https://buildbot.pypy.org/pypy/${MY_P}-src.tar.bz2
- https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
-"
-S="${WORKDIR}/${MY_P}-src"
-
-LICENSE="MIT"
-# pypy3 -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"))'
-# also check pypy/interpreter/pycode.py -> pypy_incremental_magic
-SLOT="${PYVER}/pypy310-pp73-384"
-KEYWORDS="amd64 ~arm64 ~ppc64 x86 ~amd64-linux ~x86-linux"
-IUSE="+ensurepip gdbm +jit ncurses sqlite +symlink +test-install tk"
-# many tests are failing upstream
-# see https://buildbot.pypy.org/summary?branch=py${PYVER}
-RESTRICT="test"
-
-RDEPEND="
- || (
- >=dev-python/pypy3_10-exe-${PYPY_PV}:${PYPY_PV}[bzip2(+),ncurses?]
- >=dev-python/pypy3_10-exe-bin-${PYPY_PV}:${PYPY_PV}
- )
- dev-lang/python-exec[python_targets_pypy3(-)]
- dev-libs/openssl:0=
- dev-python/gentoo-common
- ensurepip? ( dev-python/ensurepip-wheels )
- gdbm? ( sys-libs/gdbm:0= )
- sqlite? ( dev-db/sqlite:3= )
- tk? (
- dev-lang/tk:0=
- dev-tcltk/tix:0=
- )
- !dev-python/pypy3_10
- symlink? (
- !<dev-python/pypy3-7.3.17-r100
- )
-"
-DEPEND="
- ${RDEPEND}
-"
-
-src_prepare() {
- local PATCHES=(
- "${WORKDIR}/${PATCHSET}"
- )
-
- default
-}
-
-src_configure() {
- tc-export CC
-}
-
-src_compile() {
- mkdir bin || die
- # switch to the layout expected for cffi module builds
- mkdir "include/pypy${PYVER}" || die
- # copy over to make sys.prefix happy
- cp -p "${BROOT}/usr/bin/pypy${PYVER}-c-${PYPY_PV}" pypy${PYVER}-c || die
- cp -p "${BROOT}/usr/include/pypy${PYVER}/${PYPY_PV}"/* include/pypy${PYVER}/ || die
- # (not installed by pypy-exe)
- rm pypy/module/cpyext/include/_numpypy/numpy/README || die
- mv pypy/module/cpyext/include/* "include/pypy${PYVER}/" || die
- mv pypy/module/cpyext/parse/*.h "include/pypy${PYVER}/" || die
- pax-mark m "pypy${PYVER}-c"
-
- # verify the subslot
- local soabi=$(
- "./pypy${PYVER}-c" - <<-EOF
- import importlib.util
- import sysconfig
- soabi = sysconfig.get_config_var("SOABI")
- magic = importlib.util._RAW_MAGIC_NUMBER & 0xffff
- print(f"{soabi}-{magic}")
- EOF
- )
- [[ ${soabi} == ${SLOT#*/} ]] || die "update subslot to ${soabi}"
-
- # Add epython.py to the distribution
- echo 'EPYTHON="pypy3"' > lib-python/3/epython.py || die
-
- einfo "Generating caches and CFFI modules ..."
-
- # Generate sysconfig data
- local host_gnu_type=$(sh pypy/tool/release/config.guess)
- local overrides=(
- HOST_GNU_TYPE "${host_gnu_type:-unknown}"
- INCLUDEPY "${EPREFIX}/usr/include/pypy${PYVER}"
- LIBDIR "${EPREFIX}/usr/$(get_libdir)"
- TZPATH "${EPREFIX}/usr/share/zoneinfo"
- WHEEL_PKG_DIR "${EPREFIX}/usr/lib/python/ensurepip"
- )
- "./pypy${PYVER}-c" -m sysconfig --generate-posix-vars "${overrides[@]}" || die
- local outdir
- outdir=$(<pybuilddir.txt) || die
- cp "${outdir}"/_sysconfigdata__*.py lib-python/3/ || die
-
- # Generate Grammar and PatternGrammar pickles.
- "./pypy${PYVER}-c" - <<-EOF || die "Generation of Grammar and PatternGrammar pickles failed"
- import lib2to3.pygram
- import lib2to3.patcomp
- lib2to3.patcomp.PatternCompiler()
- EOF
-
- # Generate cffi modules
- # Please keep in sync with lib_pypy/pypy_tools/build_cffi_imports.py!
- # (NB: we build CFFI modules first to avoid error log when importing
- # build_cffi_imports).
- cffi_targets=(
- pypy_util blake2/_blake2 sha3/_sha3 ssl
- audioop syslog pwdgrp resource lzma posixshmem
- ctypes_test testmultiphase
- )
- use gdbm && cffi_targets+=( gdbm )
- use ncurses && cffi_targets+=( curses )
- use sqlite && cffi_targets+=( sqlite3 )
- use tk && cffi_targets+=( tkinter/tklib )
-
- local t
- # all modules except tkinter output to .
- # tkinter outputs to the correct dir ...
- cd lib_pypy || die
- for t in "${cffi_targets[@]}"; do
- # tkinter doesn't work via -m
- "../pypy${PYVER}-c" "_${t}_build.py" || die "Failed to build CFFI bindings for ${t}"
- done
- # testcapi does not have a "build" script
- "../pypy${PYVER}-c" -c "import _testcapi" || die
-
- # Verify that CFFI module list is up-to-date
- local expected_cksum=a4138e48
- local local_cksum=$(
- "../pypy${PYVER}-c" - <<-EOF
- import binascii
- import json
- from pypy_tools.build_cffi_imports import cffi_build_scripts as x
- print("%08x" % (binascii.crc32(json.dumps(x).encode()),))
- EOF
- )
- if [[ ${local_cksum} != ${expected_cksum} ]]; then
- die "Please verify cffi_targets and update checksum to ${local_cksum}"
- fi
-
- # Cleanup temporary objects
- find \( -name "*_cffi.c" -o -name '*.o' \) -delete || die
- find -type d -empty -delete || die
-}
-
-src_install() {
- local dest="/usr/lib/pypy${PYVER}"
- einfo "Installing PyPy ..."
- dodir /usr/bin
- dosym "pypy${PYVER}-c-${PYPY_PV}" "/usr/bin/pypy${PYVER}"
- insinto "${dest}"
- # preserve mtimes to avoid obsoleting caches
- insopts -p
- doins -r lib-python/3/. lib_pypy/.
- insinto /usr/include
- doins -r "include/pypy${PYVER}"
-
- # replace copied headers with symlinks
- for x in "${BROOT}/usr/include/pypy${PYVER}/${PYPY_PV}"/*; do
- dosym "${PYPY_PV}/${x##*/}" "/usr/include/pypy${PYVER}/${x##*/}"
- done
-
- dodoc README.rst
-
- rm -r "${ED}${dest}"/ensurepip/_bundled || die
- if ! use ensurepip; then
- rm -r "${ED}${dest}"/ensurepip || die
- fi
- if ! use gdbm; then
- rm -r "${ED}${dest}"/_gdbm* || die
- fi
- if ! use test-install; then
- rm -r "${ED}${dest}"/{ctypes,sqlite3,tkinter,unittest}/test \
- "${ED}${dest}"/{distutils,lib2to3}/tests \
- "${ED}${dest}"/idlelib/idle_test || die
- fi
- if ! use sqlite; then
- rm -r "${ED}${dest}"/sqlite3 \
- "${ED}${dest}"/_sqlite3* \
- "${ED}${dest}"/test/test_sqlite.py || die
- fi
- if ! use tk; then
- rm -r "${ED}${dest}"/{idlelib,tkinter} \
- "${ED}${dest}"/_tkinter \
- "${ED}${dest}"/test/test_{tcl,tk,ttk*}.py || die
- fi
- # remove test last since we have some file removals above
- if ! use test-install; then
- rm -r "${ED}${dest}"/test || die
- fi
- dosym ../python/EXTERNALLY-MANAGED "${dest}/EXTERNALLY-MANAGED"
-
- local -x PYTHON="${ED}/usr/bin/pypy${PYVER}-c-${PYPY_PV}"
- # temporarily copy to build tree to facilitate module builds
- cp -p "${BROOT}/usr/bin/pypy${PYVER}-c-${PYPY_PV}" "${PYTHON}" || die
-
- einfo "Byte-compiling Python standard library..."
- # exclude list from CPython Makefile.pre.in
- "${PYTHON}" -m compileall -j "$(makeopts_jobs)" -o 0 -o 1 -o 2 \
- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
- --hardlink-dupes -q -f -d "${dest}" "${ED}${dest}" || die
-
- # remove to avoid collisions
- rm "${PYTHON}" || die
-
- if use symlink; then
- dosym pypy${PYVER} /usr/bin/pypy3
-
- # install symlinks for python-exec
- local EPYTHON=pypy3
- local scriptdir=${D}$(python_get_scriptdir)
- mkdir -p "${scriptdir}" || die
- ln -s "../../../bin/pypy3" "${scriptdir}/python3" || die
- ln -s python3 "${scriptdir}/python" || die
- fi
-}
diff --git a/dev-lang/pypy/pypy-3.10.7.3.19_p1.ebuild b/dev-lang/pypy/pypy-3.10.7.3.19_p1.ebuild
index 35830df8d6c3..71b0224f5834 100644
--- a/dev-lang/pypy/pypy-3.10.7.3.19_p1.ebuild
+++ b/dev-lang/pypy/pypy-3.10.7.3.19_p1.ebuild
@@ -28,7 +28,7 @@ LICENSE="MIT"
# pypy3 -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"))'
# also check pypy/interpreter/pycode.py -> pypy_incremental_magic
SLOT="${PYVER}/pypy310-pp73-384"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 ~arm64 ~ppc64 x86 ~amd64-linux ~x86-linux"
IUSE="+ensurepip gdbm +jit ncurses sqlite +symlink +test-install tk"
# many tests are failing upstream
# see https://buildbot.pypy.org/summary?branch=py${PYVER}
diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest
index f856c9237eea..23cfa721de07 100644
--- a/dev-lang/python/Manifest
+++ b/dev-lang/python/Manifest
@@ -12,6 +12,8 @@ DIST Python-3.13.2.tar.xz 22621108 BLAKE2B 79c7dff8a15fd2487d62847a8e654c02433a8
DIST Python-3.13.2.tar.xz.asc 963 BLAKE2B 95a36c305dd452df23b4f119de05e1d3a2b2c9e0c2778a52dc4065f82b52752b68d89eb737cc54cced70623ad4a7b48c85fdff781bf7d7e3b747dacb1ef77db0 SHA512 5f019be530f688b0adf5d5cc9f2c2243e2f1dc7338559db14c1eedd12aadc85404d42c7aafd74e41828205d85f13f278876662ac30c8f3382a1ee081ba5f29f2
DIST Python-3.14.0a5.tar.xz 22850560 BLAKE2B 69d57ff07aad021fcfb626f9164529ce071e08182a4334a95b8411c451aa93db09c60d149868bbaad67d8c4bd79598ea22fa76856c3f70b9c35b04b6f48dbeb4 SHA512 ae34c994f00c36c6ce18091c63eb3469aa545ee391c6879c89f5722f7311f2e97cc997477897969777dfaf98090e3dd01dcdb655c986140e9a7796f963be9df9
DIST Python-3.14.0a5.tar.xz.sigstore 5067 BLAKE2B c3ef20345e05763d201090756ce7e786969d8351ba567b5708ec7a20e6d348c626201fd5b63afa51c0b6740aa3406222b4e07f01d81a8e3812dfc84b751ca248 SHA512 e6755be4a974d8007519e18b9ef417129fa032c9dff508f5170622bf8e8ef0616c8395a1261e9e0e80848c739f31e8369fb5893e7b29f308ad8d62cf1033d609
+DIST Python-3.14.0a6.tar.xz 22956068 BLAKE2B e8605da0dfa0f4ecf2f21cd770a074e73a2fbb24182d8adb27b1583da0ab48157bd9e70438c8efbb8fd17a66447e934a33128e0d50d9f253bde2f6c17df80375 SHA512 0fca503199bed0744139823aaf3ead30d7876556750b476fa6e1f701ae71fa7fe333cd46c775929c26729cf71bef6ba545fdc0118a0efca17c2434de3cadabe1
+DIST Python-3.14.0a6.tar.xz.sigstore 5227 BLAKE2B 1e517fc1205a2d9ec448fe17afac2c6a1874c08904b78f1f0ef6bb4140696ebc03e34080bb973eeae6fbb4adc9b0e3ad3a9133fbef0b48ba4aca99ae81f59862 SHA512 e1824480165f68597822e8934a58e744e3c4098b8646006548d20d42b8e8809ca95f129cc23edd49bd9dbaf158a36d60b7bc5bfd449c08af9e08e8e552e21f7d
DIST Python-3.8.20.tar.xz 18962788 BLAKE2B 715c75e0c0a3d3b77af7f07478311bb0554b80aac72915be703aa2d0dd6459a972e5669808e64da14a0b91bb183e00655055c1726f302dc3ccd8721e3b4ae3e6 SHA512 3c9341ee1fd33cb687958dcf2b7c0c7700489726c4d530c3e9d9537d46a6ab534541a4b312232d8505bea395a07e4518c42d75fb7571103e6b266f8f44115c61
DIST Python-3.8.20.tar.xz.asc 833 BLAKE2B 5c86c15a1090b42e42bb7512565b1a7ad9d2137d59e9fd1ab0f83fdfc37dfcf184389418d6703db809e9c8c04a169af292665a2b58bf5dc61b7724ecbb4132d9 SHA512 a751ae0407a593d97acac4d5f8a0456580c753efa12a7d960125c219b4897fdb26fc1ffd43d8ea33ad1449162dd3b2904c16b6c51c57561ba73de3ffa62e0eed
DIST Python-3.9.20.tar.xz 19648968 BLAKE2B 80a337ff406130599b8320068d11bc275d23473cedd7c85fcb9e40134f0f2d533be6e712139e788a6423cdc74cea938f306aa37c2a5099e3051f3e390159279c SHA512 c828f33edf1704e3149499d6d34e89264cb5cdb2b09ff05561641b359716d7996f0fe928629e09f006b1fd7850fdaf937275919c7fdd83f5efc32707c64d814b
@@ -26,19 +28,22 @@ DIST python-gentoo-patches-3.11.11_p2.tar.xz 16224 BLAKE2B d8404c8c87e109d2c699d
DIST python-gentoo-patches-3.12.9.tar.xz 10736 BLAKE2B 1f87d1bba8c094936e5cd3e0ef2eede0dbca3e658430f81b398735d8f02fff1f87739914014dbcb17163f8a969ffc5e7e4cce7d71557ce3c2e58487e6ed8b80f SHA512 342f11df85926e32455d52115d06b817a17f7ae104e3ea8e852046d321d829835bba7c07803c50dd5433ac8b615499428d5bc1a088b484ca0c4304eb8b2cb879
DIST python-gentoo-patches-3.13.2.tar.xz 8316 BLAKE2B 2367808924c83c02b8b2ca765fd4768d4f12cb8e8451eab9d084ce5950a5a81829e573d415f9a16db2e053105def90b5f52c91423fc71e57cd182a1d9c824d8c SHA512 580332ca037c1453f314d5811f96f7bf74defc16cfe515c4fe82ea08a7bf3679aa88d5456db846d988bcf4fbc9eeb4ebe7cee01d135bd55c87931206250e301a
DIST python-gentoo-patches-3.14.0a5.tar.xz 5668 BLAKE2B b12801ac5bfa50cb6e3bf4b79e70956b771e0a4c0d5d4265115cf144740a914f764655171fdbf3178ba76f91b7765aa681f0097aaa55e6aa330eeeec3320bb4e SHA512 3110f99058136e8587a4cce2f594a5fde7c575027440e9e4d3b77dba0428c6af60cd0d259833d5d46e3b9ac3f24a2ad3111e4c5436cb423079f5c1a230e47d97
+DIST python-gentoo-patches-3.14.0a6.tar.xz 5680 BLAKE2B 704014b9935db57b28e9191b1a9d478b2e3d17c66fc1bbe1d5df4de0197f51ae184ad44c8434d22c3113545c3267fa8838dc8fa90bab00aa50223e38c9f1be7e SHA512 e5446d9bf25334f117e7967d5d77424bfd8b4a5a277358b8e4c27aaa15686a0fd0c6957b4fd0306622dc83f02de5e2d2f02d1f9a5675412915bfbab4b072e94d
DIST python-gentoo-patches-3.8.20_p6.tar.xz 50876 BLAKE2B df0df21c75972fb73e36f66f0c90d3f953b14d7a59bf97ce4214dce6e6d937ed52fbf3db8f3eaf42cde141bfe4d7a731b06e41723285517461c790912706be9e SHA512 48ef567f6972e7975cb61d34a876d8c0db42f1a3c0b832f9366091dd5f2ca854c02887808843d314816c8cf6d7b0738c40e7835fedbba7b84e57f2515dde45e2
DIST python-gentoo-patches-3.9.20_p2.tar.xz 36140 BLAKE2B af0a9e08f3bfd8eb631760d100ec8f54db968a6bd201820192c4ea63ec88e0f83ffe77c709fcf4da43ad8d44eeb239ca1984561c3e7846e3fe4edd757d2321a4 SHA512 d451b41401de631eed996c34f40f2146d4d2f11bfa04fffa762c9b654e690d0ef95be0f51224a964a7c33784bb9b21e58434f6fee17cf39c20b5af34200569d5
DIST python-gentoo-patches-3.9.21_p1.tar.xz 35404 BLAKE2B 7b5ac27e814b06791fa5f0566763711c1b65a7c82ba66f97e237eebc6076f0bfdad3d8269ece6c4d4c238b62cc75b01f68ea3a5d7c4fffc46e88f79b2ba3e7fc SHA512 92c8548b31100a921378c72cc94a81062c96fd795fa2cd001c57a71e4af39e91b21b99e9e84db12adb142d9c4bda809445519c5c8a35545bd10230926bd7eded
EBUILD python-2.7.18_p16-r2.ebuild 8505 BLAKE2B feb4cf270dd478f2f7f16f969c9c8a28cf8121f3cc32f11407622afe0a1db79247d045cb6324b9b5f4939a6028164c655116fff98e2378eea7e23fe0b8ce1dda SHA512 cc3d964e6fd8577de2176cbf5832d8587e090158317e52fc42615b7494861b0a955983e0f8153401b6af44b1ba227cac87ae901cda524358518d2778fcd162f2
EBUILD python-3.10.16_p1.ebuild 15531 BLAKE2B cec70438eef3917846e6d26035f33bf2a0e90515a916c4283c286744deaea86f26b33e0fe96f9fba34552bd5917750abac8ec9726cb12937140291cfab689c9f SHA512 edf67f6b68442b860d209a2216b5c72151c242972329bd62463ef9e29d172f64a7bd4d8eb708f8b6830eaaed35336ddda5343c1f30dc3199abe859d97ba4c948
-EBUILD python-3.10.16_p2.ebuild 15539 BLAKE2B 1dd164e28dfecd11ec27aadafbe67258c686aa02aefe644f1cd161d77b0009fcecb76d03de52d9904324e79ecc1880ca6229bf2b69f942bfd523bfb07d97c726 SHA512 4977b4ffe465a1a6ae7f7d590b9b5bedc608bbd9de266b8bafaa54628c7ad21e7dd691a6fff4ce9938e5159513387e8920a1bd2e80d113fd9c986943bae548c6
+EBUILD python-3.10.16_p2.ebuild 15533 BLAKE2B 9b5bc81c3e679b1a7b5fd744f7437733cae9fb6cb74b6a0dce8fca1fc74aec1f0c230f62b4de73e4505aca07953788ad4d8559d8906193cf2036a39d8bd7a739 SHA512 c0d3eedafab5e44d3d110ad9efc13ab264b568218b2e0d45fc54ac0fdce72ad1ed5ca3aff82593e8806b9d20508736244395f3d4c65040e9aaf96e7fd9c9920e
EBUILD python-3.11.11_p1.ebuild 16699 BLAKE2B 5797ee3ec52e380d7f95373fde3130854506f13db4e4dadb07d7159dd290a7c41add2687ea51d79dc1afbee5cc700251ee8799a43440885803e82796407077a9 SHA512 44d5ba374441fd55830c89501cc00f9a9faab36f7a5c9c7dbd0bd2f65a633e0a93cb5aa57f3b5e57788d103a109f08e68a9f1a68bf65a6f97b7ffeb6f1f8a7e4
-EBUILD python-3.11.11_p2.ebuild 16707 BLAKE2B eb9c0af648e27d17bcf4f87211269b0cc4df0adaec212c8ae3e305fd9deb6178746071a7e69518450d5efd8618c3f93460e9ee268aab6b464f986c687bdeed0a SHA512 ed5a685f59dfe445bab6b8f051a46cbb819a3a764baea54da6e4631a1f959f193e09181c6292b8ba38ec255d26ddfa12da57c6248f4ecaf01e82d3f685a5d123
+EBUILD python-3.11.11_p2.ebuild 16701 BLAKE2B 550e38f5f867448afd2fa2e54adf0f2f6d5d1bcb40bb084e5ddff027a090797b0c40a9dce4437089ca950bb2b0657fc04b0319d6dccd0cf63892626d043e78be SHA512 9a6a03bb3ddd344269b6c05369a2ff9da600fa891b61aa8c6a886a44af6a001f249406077682de2dec96427929259b13a996d4eb8be972bbab75a9b71b66f3fd
EBUILD python-3.12.9.ebuild 15671 BLAKE2B 7b4dbd1c4b60b57c12ca33c2523230a3d52f9d5ec6ef56b922e34c369476d07f31fc9aa93b6b3346c092dfefa6631c86d2f498c4f69fc88cc1e4b42dc0698435 SHA512 c53dabbaf74fe6e19525865b42b43b4754171df43c6295183debf108ee43365fd409b302ec6febc90c10e7ef3b42564d11084df746cf37824f437d1ed3e58311
EBUILD python-3.13.2-r100.ebuild 16678 BLAKE2B f70e5c4541719979f5588c97e9b19b5be0f2566783fdfdac558820bd94dcc5f34ec15485db5836587f28dd93c09af046aad91ff1be2855ebde82e518a1e337fe SHA512 e73f5893d2fef16bd668124f918c50ef58ad50307182800598824f782a95928788aa57e18db9f550427c5e8bb958024151cc7bf4c18556d84c8359241b7304c2
EBUILD python-3.13.2.ebuild 16361 BLAKE2B 139a6204daab762327d366d6dc9806a81e1e31c28510b6460883233c488cdd82a06019dca27bde975e63ff68fd011e8fcc77d295b86a5173dd213d3119de1b76 SHA512 a850739e65cfe3d283b94e7b28d190ec026c2f30477368d157daf430530276975ec5c26bec22e3774ee0c380a55a427af08fdf9842e8c1327550aaf6146fe0b3
EBUILD python-3.14.0_alpha5-r100.ebuild 16695 BLAKE2B 2be26e8dd417df40d72e1361709a16d48add9e5262b09bd04191867f2b0f75b8e71fc8dee98b7f7976e925e54cd18e10e478f6ea06fa34164ce0f1f499738f1b SHA512 dfa892d823a07a7b9356b50a40c066e310ecd8a5e9cc674423a09e390a9115244a46af53df57667b3752103a9ac5bc0e0b9f7a57cec22875499f1edf14895d31
EBUILD python-3.14.0_alpha5.ebuild 16388 BLAKE2B 7cb2e9c39471f0ccfb2c436c4327469cb6e709f55d38016276876d318042afe59d7df2dea8e829fc21017a87bbd1fa1e3dcad33eb39fb673761d8b9a364f101a SHA512 cc12477ef0388b47441b06f76fc4fc35258753f121735a2ee1648740c9894025b0e426d5bebf922dec17f8c9c10569ee0c62b538cd31b924bdb21ecf4a25b933
+EBUILD python-3.14.0_alpha6-r100.ebuild 16695 BLAKE2B 2be26e8dd417df40d72e1361709a16d48add9e5262b09bd04191867f2b0f75b8e71fc8dee98b7f7976e925e54cd18e10e478f6ea06fa34164ce0f1f499738f1b SHA512 dfa892d823a07a7b9356b50a40c066e310ecd8a5e9cc674423a09e390a9115244a46af53df57667b3752103a9ac5bc0e0b9f7a57cec22875499f1edf14895d31
+EBUILD python-3.14.0_alpha6.ebuild 16388 BLAKE2B 7cb2e9c39471f0ccfb2c436c4327469cb6e709f55d38016276876d318042afe59d7df2dea8e829fc21017a87bbd1fa1e3dcad33eb39fb673761d8b9a364f101a SHA512 cc12477ef0388b47441b06f76fc4fc35258753f121735a2ee1648740c9894025b0e426d5bebf922dec17f8c9c10569ee0c62b538cd31b924bdb21ecf4a25b933
EBUILD python-3.8.20_p6.ebuild 13329 BLAKE2B 632fc0c922e18895efadeb33b8963a087f1951bb329c03f3d802fbda81ccf1b7c1e22f03c516d07819d1df66e8e1d7de0a8300ec308c8a56042b51dd86a51d01 SHA512 77e07e26f674bb245cc2d2c519c7a1b9e72a6eadcb4ea0631062189a3bf50e78a160a87d108b6867db9b9c3fdab22e85a290d73059a6859f052d83c7dda20014
EBUILD python-3.9.20_p2.ebuild 15374 BLAKE2B e9920e3c6c3bbfc7c5c07651f5ca16522f8efe926691f818e8126734206b6bd5d8960a769c1cc541505739aeffdce861c6ca176146401fa7c7d02516a56962c7 SHA512 9540922e418d1a820f97e323e98077e6fe584825940144aadae1c30de8f6d27de28d902fd14bcf98a77aa484719864fe2d25283ba7837a43331410401a239d85
EBUILD python-3.9.21_p1.ebuild 15382 BLAKE2B 81df703cc940b016b2e48627dda25da8ea151b26d667da26faf9b1aff340c4003bde7444dcd635f6a7c9264e99c7c9676ae3ad576881c4ca09ffb78466d39446 SHA512 9d0c96e1f56b5d30baff55b16c18be637d410ba4d6c0c28f14bf9ef1b84981858f3bf90e44db3b908c06aaffd21320fab01303f0d9fb22acb178e9c785a87723
diff --git a/dev-lang/python/python-3.10.16_p2.ebuild b/dev-lang/python/python-3.10.16_p2.ebuild
index 5e5ed7bb1904..4359116e4dca 100644
--- a/dev-lang/python/python-3.10.16_p2.ebuild
+++ b/dev-lang/python/python-3.10.16_p2.ebuild
@@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="PSF-2"
SLOT="${PYVER}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="
bluetooth build debug +ensurepip examples gdbm libedit
+ncurses pgo +readline +sqlite +ssl test tk valgrind
diff --git a/dev-lang/python/python-3.11.11_p2.ebuild b/dev-lang/python/python-3.11.11_p2.ebuild
index b4ca94a695ea..f2e7f82999a3 100644
--- a/dev-lang/python/python-3.11.11_p2.ebuild
+++ b/dev-lang/python/python-3.11.11_p2.ebuild
@@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="PSF-2"
SLOT="${PYVER}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="
bluetooth build debug +ensurepip examples gdbm libedit
+ncurses pgo +readline +sqlite +ssl test tk valgrind
diff --git a/dev-lang/python/python-3.14.0_alpha6-r100.ebuild b/dev-lang/python/python-3.14.0_alpha6-r100.ebuild
new file mode 100644
index 000000000000..2abe01749d3a
--- /dev/null
+++ b/dev-lang/python/python-3.14.0_alpha6-r100.ebuild
@@ -0,0 +1,635 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+LLVM_COMPAT=( 19 )
+LLVM_OPTIONAL=1
+VERIFY_SIG_METHOD=sigstore
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic linux-info llvm-r1
+inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs
+inherit verify-sig
+
+MY_PV=${PV/_alpha/a}
+MY_P="Python-${MY_PV%_p*}"
+PYVER="$(ver_cut 1-2)t"
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Freethreading (no-GIL) version of Python programming language"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+IUSE="
+ bluetooth build debug +ensurepip examples gdbm jit
+ libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind
+"
+REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )"
+RESTRICT="!test? ( test )"
+
+# Do not add a dependency on dev-lang/python to this ebuild.
+# If you need to apply a patch which requires python for bootstrapping, please
+# run the bootstrap code on your dev box and include the results in the
+# patchset. See bug 447752.
+
+RDEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ >=dev-libs/expat-2.1:=
+ dev-libs/libffi:=
+ dev-libs/mpdecimal:=
+ dev-python/gentoo-common
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libintl
+ ensurepip? ( dev-python/ensurepip-pip )
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ kernel_linux? ( sys-apps/util-linux:= )
+ ncurses? ( >=sys-libs/ncurses-5.2:= )
+ readline? (
+ !libedit? ( >=sys-libs/readline-4.1:= )
+ libedit? ( dev-libs/libedit:= )
+ )
+ sqlite? ( >=dev-db/sqlite-3.3.8:3= )
+ ssl? ( >=dev-libs/openssl-1.1.1:= )
+ tk? (
+ >=dev-lang/tcl-8.0:=
+ >=dev-lang/tk-8.0:=
+ dev-tcltk/blt:=
+ dev-tcltk/tix
+ )
+"
+# bluetooth requires headers from bluez
+DEPEND="
+ ${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ test? (
+ dev-python/ensurepip-pip
+ dev-python/ensurepip-setuptools
+ dev-python/ensurepip-wheel
+ )
+ valgrind? ( dev-debug/valgrind )
+"
+# autoconf-archive needed to eautoreconf
+BDEPEND="
+ dev-build/autoconf-archive
+ app-alternatives/awk
+ virtual/pkgconfig
+ jit? (
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ ')
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
+"
+RDEPEND+="
+ !build? ( app-misc/mime-types )
+"
+if [[ ${PV} != *_alpha* ]]; then
+ RDEPEND+="
+ dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
+ "
+fi
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+# large file tests involve a 2.5G file being copied (duplicated)
+CHECKREQS_DISK_BUILD=5500M
+
+QA_PKGCONFIG_VERSION=${PYVER%t}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+declare -rgA PYTHON_KERNEL_CHECKS=(
+ ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589
+ ["DNOTIFY"]="test_fcntl" # bug 938662
+)
+
+pkg_pretend() {
+ if use pgo || use test; then
+ check-reqs_pkg_pretend
+ fi
+
+ ewarn "Freethreading build is considered experimental upstream. Using it"
+ ewarn "could lead to unexpected breakage, including race conditions"
+ ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless"
+ ewarn "you can reproduce the problem with dev-lang/python. Instead,"
+ ewarn "please consider reporting freethreading problems upstream."
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ use jit && llvm-r1_pkg_setup
+ if use test || use pgo; then
+ check-reqs_pkg_setup
+
+ local CONFIG_CHECK
+ for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do
+ CONFIG_CHECK+="~${f} "
+ done
+ linux-info_pkg_setup
+ fi
+ fi
+}
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ # Ensure that internal copies of expat and libffi are not used.
+ # TODO: Makefile has annoying deps on expat headers
+ #rm -r Modules/expat || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ # force the correct number of jobs
+ # https://bugs.gentoo.org/737660
+ sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
+
+ # breaks tests when using --with-wheel-pkg-dir
+ rm -r Lib/test/wheeldata || die
+
+ eautoreconf
+}
+
+build_cbuild_python() {
+ # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+ local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
+
+ # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
+ # propagated to sysconfig for built extensions
+ #
+ # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
+ local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
+ local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
+ local -x CFLAGS= LDFLAGS=
+ local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
+ local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
+
+ # We need to build our own Python on CBUILD first, and feed it in.
+ # bug #847910
+ local myeconfargs_cbuild=(
+ "${myeconfargs[@]}"
+
+ --prefix="${BROOT}"/usr
+ --libdir="${cbuild_libdir:2}"
+
+ # Avoid needing to load the right libpython.so.
+ --disable-shared
+
+ # As minimal as possible for the mini CBUILD Python
+ # we build just for cross to satisfy --with-build-python.
+ --without-lto
+ --without-readline
+ --disable-optimizations
+ )
+
+ mkdir "${WORKDIR}"/${P}-${CBUILD} || die
+ pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
+
+ # Avoid as many dependencies as possible for the cross build.
+ mkdir Modules || die
+ cat > Modules/Setup.local <<-EOF || die
+ *disabled*
+ nis
+ _dbm _gdbm
+ _sqlite3
+ _hashlib _ssl
+ _curses _curses_panel
+ readline
+ _tkinter
+ pyexpat
+ zlib
+ # We disabled these for CBUILD because Python's setup.py can't handle locating
+ # libdir correctly for cross. This should be rechecked for the pure Makefile approach,
+ # and uncommented if needed.
+ #_ctypes
+ EOF
+
+ ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
+
+ # Unfortunately, we do have to build this immediately, and
+ # not in src_compile, because CHOST configure for Python
+ # will check the existence of the --with-build-python value
+ # immediately.
+ emake
+ popd &> /dev/null || die
+}
+
+src_configure() {
+ # disable automagic bluetooth headers detection
+ if ! use bluetooth; then
+ local -x ac_cv_header_bluetooth_bluetooth_h=no
+ fi
+
+ append-flags -fwrapv
+ filter-flags -malign-double
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ # PKG_CONFIG needed for cross.
+ tc-export CXX PKG_CONFIG
+
+ local dbmliborder=
+ if use gdbm; then
+ dbmliborder+="${dbmliborder:+:}gdbm"
+ fi
+
+ # Set baseline test skip flags.
+ COMMON_TEST_SKIPS=(
+ # this is actually test_gdb.test_pretty_print
+ -x test_pretty_print
+ # https://bugs.gentoo.org/933840
+ -x test_perf_profiler
+ )
+
+ # Arch-specific skips. See #931888 for a collection of these.
+ case ${CHOST} in
+ alpha*)
+ COMMON_TEST_SKIPS+=(
+ -x test_builtin
+ -x test_capi
+ -x test_cmath
+ -x test_float
+ # timeout
+ -x test_free_threading
+ -x test_math
+ -x test_numeric_tower
+ -x test_random
+ -x test_statistics
+ # bug 653850
+ -x test_resource
+ -x test_strtod
+ )
+ ;;
+ hppa*)
+ COMMON_TEST_SKIPS+=(
+ -x test_gdb
+ )
+ ;;
+ mips*)
+ COMMON_TEST_SKIPS+=(
+ -x test_ctypes
+ -x test_external_inspection
+ -x test_statistics
+ )
+ ;;
+ powerpc64-*) # big endian
+ COMMON_TEST_SKIPS+=(
+ -x test_gdb
+ )
+ ;;
+ riscv*)
+ COMMON_TEST_SKIPS+=(
+ -x test_urllib2
+ )
+ ;;
+ sparc*)
+ COMMON_TEST_SKIPS+=(
+ # bug 788022
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+ -x test_multiprocessing_spawn
+
+ -x test_ctypes
+ -x test_gdb
+ # bug 931908
+ -x test_exceptions
+ )
+ ;;
+ esac
+
+ # Kernel-config specific skips
+ for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do
+ if ! linux_config_exists || ! linux_chkconfig_present "${option}"
+ then
+ COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" )
+ fi
+ done
+
+ # musl-specific skips
+ use elibc_musl && COMMON_TEST_SKIPS+=(
+ # various musl locale deficiencies
+ -x test__locale
+ -x test_c_locale_coercion
+ -x test_locale
+ -x test_re
+
+ # known issues with find_library on musl
+ # https://bugs.python.org/issue21622
+ -x test_ctypes
+
+ # fpathconf, ttyname errno values
+ -x test_os
+ )
+
+ if use pgo; then
+ local profile_task_flags=(
+ -m test
+ "-j$(makeopts_jobs)"
+ --pgo-extended
+ --verbose3
+ -u-network
+
+ # We use a timeout because of how often we've had hang issues
+ # here. It also matches the default upstream PROFILE_TASK.
+ --timeout 1200
+
+ "${COMMON_TEST_SKIPS[@]}"
+
+ -x test_dtrace
+
+ # All of these seem to occasionally hang for PGO inconsistently
+ # They'll even hang here but be fine in src_test sometimes.
+ # bug #828535 (and related: bug #788022)
+ -x test_asyncio
+ -x test_httpservers
+ -x test_logging
+ -x test_multiprocessing_fork
+ -x test_socket
+ -x test_xmlrpc
+
+ # Hangs (actually runs indefinitely executing itself w/ many cpython builds)
+ # bug #900429
+ -x test_tools
+ )
+
+ if has_version "app-arch/rpm" ; then
+ # Avoid sandbox failure (attempts to write to /var/lib/rpm)
+ profile_task_flags+=(
+ -x test_distutils
+ )
+ fi
+ # PGO sometimes fails randomly
+ local -x PROFILE_TASK="${profile_task_flags[*]} || true"
+ fi
+
+ local myeconfargs=(
+ # glibc-2.30 removes it; since we can't cleanly force-rebuild
+ # Python on glibc upgrade, remove it proactively to give
+ # a chance for users rebuilding python before glibc
+ ac_cv_header_stropts_h=no
+
+ --enable-shared
+ --without-static-libpython
+ --enable-ipv6
+ --infodir='${prefix}/share/info'
+ --mandir='${prefix}/share/man'
+ --with-computed-gotos
+ --with-dbmliborder="${dbmliborder}"
+ --with-libc=
+ --enable-loadable-sqlite-extensions
+ --without-ensurepip
+ --without-lto
+ --with-system-expat
+ --with-system-libmpdec
+ --with-platlibdir=lib
+ --with-pkg-config=yes
+ --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
+ --disable-gil
+
+ $(use_with debug assertions)
+ $(use_enable jit experimental-jit)
+ $(use_enable pgo optimizations)
+ $(use_with readline readline "$(usex libedit editline readline)")
+ $(use_with valgrind)
+ )
+
+ # https://bugs.gentoo.org/700012
+ if tc-is-lto; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ myeconfargs+=(
+ --with-lto
+ )
+ fi
+
+ # Force-disable modules we don't want built.
+ # See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
+ cat > Modules/Setup.local <<-EOF || die
+ *disabled*
+ nis
+ $(usev !gdbm '_gdbm _dbm')
+ $(usev !sqlite '_sqlite3')
+ $(usev !ssl '_hashlib _ssl')
+ $(usev !ncurses '_curses _curses_panel')
+ $(usev !readline 'readline')
+ $(usev !tk '_tkinter')
+ EOF
+
+ # disable implicit optimization/debugging flags
+ local -x OPT=
+
+ if tc-is-cross-compiler ; then
+ build_cbuild_python
+ myeconfargs+=(
+ # Point the imminent CHOST build to the Python we just
+ # built for CBUILD.
+ --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
+ )
+ fi
+
+ # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
+ # propagated to sysconfig for built extensions
+ local -x CFLAGS_NODIST=${CFLAGS}
+ local -x LDFLAGS_NODIST=${LDFLAGS}
+ local -x CFLAGS= LDFLAGS=
+
+ # Fix implicit declarations on cross and prefix builds. Bug #674070.
+ if use ncurses; then
+ append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
+ fi
+
+ econf "${myeconfargs[@]}"
+
+ if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
+ eerror "configure has detected that the sem_open function is broken."
+ eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
+ die "Broken sem_open function (bug 496328)"
+ fi
+
+ # install epython.py as part of stdlib
+ echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
+}
+
+src_compile() {
+ # Ensure sed works as expected
+ # https://bugs.gentoo.org/594768
+ local -x LC_ALL=C
+ export PYTHONSTRICTEXTENSIONBUILD=1
+
+ # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
+ # end up writing bytecode & violating sandbox.
+ # bug #831897
+ local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
+
+ # Gentoo hack to disable accessing system site-packages
+ export GENTOO_CPYTHON_BUILD=1
+
+ if use pgo ; then
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+ local -x TMPDIR=/var/tmp
+ fi
+
+ # also need to clear the flags explicitly here or they end up
+ # in _sysconfigdata*
+ emake CPPFLAGS= CFLAGS= LDFLAGS=
+
+ # Restore saved value from above.
+ local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
+
+ # Work around bug 329499. See also bug 413751 and 457194.
+ if has_version dev-libs/libffi[pax-kernel]; then
+ pax-mark E python
+ else
+ pax-mark m python
+ fi
+}
+
+src_test() {
+ # Tests will not work when cross compiling.
+ if tc-is-cross-compiler; then
+ elog "Disabling tests due to crosscompiling."
+ return
+ fi
+
+ # this just happens to skip test_support.test_freeze that is broken
+ # without bundled expat
+ # TODO: get a proper skip for it upstream
+ local -x LOGNAME=buildbot
+
+ local test_opts=(
+ --verbose3
+ -u-network
+ -j "$(makeopts_jobs)"
+ "${COMMON_TEST_SKIPS[@]}"
+ )
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+ local -x TMPDIR=/var/tmp
+
+ nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local ret=${?}
+
+ [[ ${ret} -eq 0 ]] || die "emake test failed"
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ # -j1 hack for now for bug #843458
+ emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall
+
+ # Fix collisions between different slots of Python.
+ rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
+ # Fix collision with GIL-enabled build.
+ rm "${ED}/usr/bin/python${PYVER%t}" || die
+ mv "${ED}"/usr/bin/pydoc{${PYVER%t},${PYVER}} || die
+ mv "${ED}"/usr/share/man/man1/python{${PYVER%t},${PYVER}}.1 || die
+
+ # Cheap hack to get version with ABIFLAGS
+ local abiver=$(cd "${ED}/usr/include"; echo python*)
+ if [[ ${abiver} != python${PYVER} ]]; then
+ # Replace python3.X with a symlink to python3.Xm
+ rm "${ED}/usr/bin/python${PYVER}" || die
+ dosym "${abiver}" "/usr/bin/python${PYVER}"
+ # Create python3.X-config symlink
+ dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
+ # Create python-3.5m.pc symlink
+ dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
+ fi
+
+ # python seems to get rebuilt in src_install (bug 569908)
+ # Work around it for now.
+ if has_version dev-libs/libffi[pax-kernel]; then
+ pax-mark E "${ED}/usr/bin/${abiver}"
+ else
+ pax-mark m "${ED}/usr/bin/${abiver}"
+ fi
+
+ rm -r "${libdir}"/ensurepip/_bundled || die
+ if ! use sqlite; then
+ rm -r "${libdir}/"sqlite3 || die
+ fi
+ if use tk; then
+ # rename to avoid collision with dev-lang/python
+ mv "${ED}"/usr/bin/idle{${PYVER%t},${PYVER}} || die
+ else
+ rm -r "${ED}/usr/bin/idle${PYVER%t}" || die
+ rm -r "${libdir}/"{idlelib,tkinter} || die
+ fi
+
+ ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
+
+ dodoc Misc/{ACKS,HISTORY,NEWS}
+
+ if use examples; then
+ docinto examples
+ find Tools -name __pycache__ -exec rm -fr {} + || die
+ dodoc -r Tools
+ fi
+ insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
+ local libname=$(
+ printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
+ emake --no-print-directory -s -f - 2>/dev/null
+ )
+ newins Tools/gdb/libpython.py "${libname}"-gdb.py
+
+ newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
+ newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
+ sed \
+ -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
+ -e "s:@PYDOC@:pydoc${PYVER}:" \
+ -i "${ED}/etc/conf.d/pydoc-${PYVER}" \
+ "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
+
+ # python-exec wrapping support
+ local pymajor=${PYVER%.*}
+ local EPYTHON=python${PYVER}
+ local scriptdir=${D}$(python_get_scriptdir)
+ mkdir -p "${scriptdir}" || die
+ # python and pythonX
+ ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
+ ln -s "python${pymajor}" "${scriptdir}/python" || die
+ # python-config and pythonX-config
+ # note: we need to create a wrapper rather than symlinking it due
+ # to some random dirname(argv[0]) magic performed by python-config
+ cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
+ #!/bin/sh
+ exec "${abiver}-config" "\${@}"
+ EOF
+ chmod +x "${scriptdir}/python${pymajor}-config" || die
+ ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
+ # pydoc
+ ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
+ # idle
+ if use tk; then
+ ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
+ fi
+}
diff --git a/dev-lang/python/python-3.14.0_alpha6.ebuild b/dev-lang/python/python-3.14.0_alpha6.ebuild
new file mode 100644
index 000000000000..f4da576cf95f
--- /dev/null
+++ b/dev-lang/python/python-3.14.0_alpha6.ebuild
@@ -0,0 +1,630 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+LLVM_COMPAT=( 19 )
+LLVM_OPTIONAL=1
+VERIFY_SIG_METHOD=sigstore
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic linux-info llvm-r1
+inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs
+inherit verify-sig
+
+MY_PV=${PV/_alpha/a}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="An interpreted, interactive, object-oriented programming language"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+IUSE="
+ bluetooth build debug +ensurepip examples gdbm jit
+ libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind
+"
+REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )"
+RESTRICT="!test? ( test )"
+
+# Do not add a dependency on dev-lang/python to this ebuild.
+# If you need to apply a patch which requires python for bootstrapping, please
+# run the bootstrap code on your dev box and include the results in the
+# patchset. See bug 447752.
+
+RDEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ >=dev-libs/expat-2.1:=
+ dev-libs/libffi:=
+ dev-libs/mpdecimal:=
+ dev-python/gentoo-common
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libintl
+ ensurepip? ( dev-python/ensurepip-pip )
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ kernel_linux? ( sys-apps/util-linux:= )
+ ncurses? ( >=sys-libs/ncurses-5.2:= )
+ readline? (
+ !libedit? ( >=sys-libs/readline-4.1:= )
+ libedit? ( dev-libs/libedit:= )
+ )
+ sqlite? ( >=dev-db/sqlite-3.3.8:3= )
+ ssl? ( >=dev-libs/openssl-1.1.1:= )
+ tk? (
+ >=dev-lang/tcl-8.0:=
+ >=dev-lang/tk-8.0:=
+ dev-tcltk/blt:=
+ dev-tcltk/tix
+ )
+"
+# bluetooth requires headers from bluez
+DEPEND="
+ ${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ test? (
+ dev-python/ensurepip-pip
+ dev-python/ensurepip-setuptools
+ dev-python/ensurepip-wheel
+ )
+ valgrind? ( dev-debug/valgrind )
+"
+# autoconf-archive needed to eautoreconf
+BDEPEND="
+ dev-build/autoconf-archive
+ app-alternatives/awk
+ virtual/pkgconfig
+ jit? (
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ ')
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
+"
+RDEPEND+="
+ !build? ( app-misc/mime-types )
+"
+if [[ ${PV} != *_alpha* ]]; then
+ RDEPEND+="
+ dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
+ "
+fi
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+# large file tests involve a 2.5G file being copied (duplicated)
+CHECKREQS_DISK_BUILD=5500M
+
+QA_PKGCONFIG_VERSION=${PYVER%t}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+declare -rgA PYTHON_KERNEL_CHECKS=(
+ ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589
+ ["DNOTIFY"]="test_fcntl" # bug 938662
+)
+
+pkg_pretend() {
+ if use pgo || use test; then
+ check-reqs_pkg_pretend
+ fi
+
+ if use jit; then
+ ewarn "USE=jit is considered experimental upstream. Using it"
+ ewarn "could lead to unexpected breakage, including race conditions"
+ ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless"
+ ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead,"
+ ewarn "please consider reporting JIT problems upstream."
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ use jit && llvm-r1_pkg_setup
+ if use test || use pgo; then
+ check-reqs_pkg_setup
+
+ local CONFIG_CHECK
+ for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do
+ CONFIG_CHECK+="~${f} "
+ done
+ linux-info_pkg_setup
+ fi
+ fi
+}
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ # Ensure that internal copies of expat and libffi are not used.
+ # TODO: Makefile has annoying deps on expat headers
+ #rm -r Modules/expat || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ # force the correct number of jobs
+ # https://bugs.gentoo.org/737660
+ sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
+
+ # breaks tests when using --with-wheel-pkg-dir
+ rm -r Lib/test/wheeldata || die
+
+ eautoreconf
+}
+
+build_cbuild_python() {
+ # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
+ local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
+
+ # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
+ # propagated to sysconfig for built extensions
+ #
+ # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
+ local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
+ local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
+ local -x CFLAGS= LDFLAGS=
+ local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
+ local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
+
+ # We need to build our own Python on CBUILD first, and feed it in.
+ # bug #847910
+ local myeconfargs_cbuild=(
+ "${myeconfargs[@]}"
+
+ --prefix="${BROOT}"/usr
+ --libdir="${cbuild_libdir:2}"
+
+ # Avoid needing to load the right libpython.so.
+ --disable-shared
+
+ # As minimal as possible for the mini CBUILD Python
+ # we build just for cross to satisfy --with-build-python.
+ --without-lto
+ --without-readline
+ --disable-optimizations
+ )
+
+ mkdir "${WORKDIR}"/${P}-${CBUILD} || die
+ pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
+
+ # Avoid as many dependencies as possible for the cross build.
+ mkdir Modules || die
+ cat > Modules/Setup.local <<-EOF || die
+ *disabled*
+ nis
+ _dbm _gdbm
+ _sqlite3
+ _hashlib _ssl
+ _curses _curses_panel
+ readline
+ _tkinter
+ pyexpat
+ zlib
+ # We disabled these for CBUILD because Python's setup.py can't handle locating
+ # libdir correctly for cross. This should be rechecked for the pure Makefile approach,
+ # and uncommented if needed.
+ #_ctypes
+ EOF
+
+ ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
+
+ # Unfortunately, we do have to build this immediately, and
+ # not in src_compile, because CHOST configure for Python
+ # will check the existence of the --with-build-python value
+ # immediately.
+ emake
+ popd &> /dev/null || die
+}
+
+src_configure() {
+ # disable automagic bluetooth headers detection
+ if ! use bluetooth; then
+ local -x ac_cv_header_bluetooth_bluetooth_h=no
+ fi
+
+ append-flags -fwrapv
+ filter-flags -malign-double
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ # PKG_CONFIG needed for cross.
+ tc-export CXX PKG_CONFIG
+
+ local dbmliborder=
+ if use gdbm; then
+ dbmliborder+="${dbmliborder:+:}gdbm"
+ fi
+
+ # Set baseline test skip flags.
+ COMMON_TEST_SKIPS=(
+ # this is actually test_gdb.test_pretty_print
+ -x test_pretty_print
+ # https://bugs.gentoo.org/933840
+ -x test_perf_profiler
+ )
+
+ # Arch-specific skips. See #931888 for a collection of these.
+ case ${CHOST} in
+ alpha*)
+ COMMON_TEST_SKIPS+=(
+ -x test_builtin
+ -x test_capi
+ -x test_cmath
+ -x test_float
+ # timeout
+ -x test_free_threading
+ -x test_math
+ -x test_numeric_tower
+ -x test_random
+ -x test_statistics
+ # bug 653850
+ -x test_resource
+ -x test_strtod
+ )
+ ;;
+ hppa*)
+ COMMON_TEST_SKIPS+=(
+ -x test_gdb
+ )
+ ;;
+ mips*)
+ COMMON_TEST_SKIPS+=(
+ -x test_ctypes
+ -x test_external_inspection
+ -x test_statistics
+ )
+ ;;
+ powerpc64-*) # big endian
+ COMMON_TEST_SKIPS+=(
+ -x test_gdb
+ )
+ ;;
+ riscv*)
+ COMMON_TEST_SKIPS+=(
+ -x test_urllib2
+ )
+ ;;
+ sparc*)
+ COMMON_TEST_SKIPS+=(
+ # bug 788022
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+ -x test_multiprocessing_spawn
+
+ -x test_ctypes
+ -x test_gdb
+ # bug 931908
+ -x test_exceptions
+ )
+ ;;
+ esac
+
+ # Kernel-config specific skips
+ for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do
+ if ! linux_config_exists || ! linux_chkconfig_present "${option}"
+ then
+ COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" )
+ fi
+ done
+
+ # musl-specific skips
+ use elibc_musl && COMMON_TEST_SKIPS+=(
+ # various musl locale deficiencies
+ -x test__locale
+ -x test_c_locale_coercion
+ -x test_locale
+ -x test_re
+
+ # known issues with find_library on musl
+ # https://bugs.python.org/issue21622
+ -x test_ctypes
+
+ # fpathconf, ttyname errno values
+ -x test_os
+ )
+
+ if use pgo; then
+ local profile_task_flags=(
+ -m test
+ "-j$(makeopts_jobs)"
+ --pgo-extended
+ --verbose3
+ -u-network
+
+ # We use a timeout because of how often we've had hang issues
+ # here. It also matches the default upstream PROFILE_TASK.
+ --timeout 1200
+
+ "${COMMON_TEST_SKIPS[@]}"
+
+ -x test_dtrace
+
+ # All of these seem to occasionally hang for PGO inconsistently
+ # They'll even hang here but be fine in src_test sometimes.
+ # bug #828535 (and related: bug #788022)
+ -x test_asyncio
+ -x test_httpservers
+ -x test_logging
+ -x test_multiprocessing_fork
+ -x test_socket
+ -x test_xmlrpc
+
+ # Hangs (actually runs indefinitely executing itself w/ many cpython builds)
+ # bug #900429
+ -x test_tools
+ )
+
+ if has_version "app-arch/rpm" ; then
+ # Avoid sandbox failure (attempts to write to /var/lib/rpm)
+ profile_task_flags+=(
+ -x test_distutils
+ )
+ fi
+ # PGO sometimes fails randomly
+ local -x PROFILE_TASK="${profile_task_flags[*]} || true"
+ fi
+
+ local myeconfargs=(
+ # glibc-2.30 removes it; since we can't cleanly force-rebuild
+ # Python on glibc upgrade, remove it proactively to give
+ # a chance for users rebuilding python before glibc
+ ac_cv_header_stropts_h=no
+
+ --enable-shared
+ --without-static-libpython
+ --enable-ipv6
+ --infodir='${prefix}/share/info'
+ --mandir='${prefix}/share/man'
+ --with-computed-gotos
+ --with-dbmliborder="${dbmliborder}"
+ --with-libc=
+ --enable-loadable-sqlite-extensions
+ --without-ensurepip
+ --without-lto
+ --with-system-expat
+ --with-system-libmpdec
+ --with-platlibdir=lib
+ --with-pkg-config=yes
+ --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
+ --enable-gil
+
+ $(use_with debug assertions)
+ $(use_enable jit experimental-jit)
+ $(use_enable pgo optimizations)
+ $(use_with readline readline "$(usex libedit editline readline)")
+ $(use_with valgrind)
+ )
+
+ # https://bugs.gentoo.org/700012
+ if tc-is-lto; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ myeconfargs+=(
+ --with-lto
+ )
+ fi
+
+ # Force-disable modules we don't want built.
+ # See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
+ cat > Modules/Setup.local <<-EOF || die
+ *disabled*
+ nis
+ $(usev !gdbm '_gdbm _dbm')
+ $(usev !sqlite '_sqlite3')
+ $(usev !ssl '_hashlib _ssl')
+ $(usev !ncurses '_curses _curses_panel')
+ $(usev !readline 'readline')
+ $(usev !tk '_tkinter')
+ EOF
+
+ # disable implicit optimization/debugging flags
+ local -x OPT=
+
+ if tc-is-cross-compiler ; then
+ build_cbuild_python
+ myeconfargs+=(
+ # Point the imminent CHOST build to the Python we just
+ # built for CBUILD.
+ --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
+ )
+ fi
+
+ # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
+ # propagated to sysconfig for built extensions
+ local -x CFLAGS_NODIST=${CFLAGS}
+ local -x LDFLAGS_NODIST=${LDFLAGS}
+ local -x CFLAGS= LDFLAGS=
+
+ # Fix implicit declarations on cross and prefix builds. Bug #674070.
+ if use ncurses; then
+ append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
+ fi
+
+ econf "${myeconfargs[@]}"
+
+ if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
+ eerror "configure has detected that the sem_open function is broken."
+ eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
+ die "Broken sem_open function (bug 496328)"
+ fi
+
+ # install epython.py as part of stdlib
+ echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
+}
+
+src_compile() {
+ # Ensure sed works as expected
+ # https://bugs.gentoo.org/594768
+ local -x LC_ALL=C
+ export PYTHONSTRICTEXTENSIONBUILD=1
+
+ # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
+ # end up writing bytecode & violating sandbox.
+ # bug #831897
+ local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
+
+ # Gentoo hack to disable accessing system site-packages
+ export GENTOO_CPYTHON_BUILD=1
+
+ if use pgo ; then
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+ local -x TMPDIR=/var/tmp
+ fi
+
+ # also need to clear the flags explicitly here or they end up
+ # in _sysconfigdata*
+ emake CPPFLAGS= CFLAGS= LDFLAGS=
+
+ # Restore saved value from above.
+ local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
+
+ # Work around bug 329499. See also bug 413751 and 457194.
+ if has_version dev-libs/libffi[pax-kernel]; then
+ pax-mark E python
+ else
+ pax-mark m python
+ fi
+}
+
+src_test() {
+ # Tests will not work when cross compiling.
+ if tc-is-cross-compiler; then
+ elog "Disabling tests due to crosscompiling."
+ return
+ fi
+
+ # this just happens to skip test_support.test_freeze that is broken
+ # without bundled expat
+ # TODO: get a proper skip for it upstream
+ local -x LOGNAME=buildbot
+
+ local test_opts=(
+ --verbose3
+ -u-network
+ -j "$(makeopts_jobs)"
+ "${COMMON_TEST_SKIPS[@]}"
+ )
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+ local -x TMPDIR=/var/tmp
+
+ nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local ret=${?}
+
+ [[ ${ret} -eq 0 ]] || die "emake test failed"
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ # -j1 hack for now for bug #843458
+ emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall
+
+ # Fix collisions between different slots of Python.
+ rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
+
+ # Cheap hack to get version with ABIFLAGS
+ local abiver=$(cd "${ED}/usr/include"; echo python*)
+ if [[ ${abiver} != python${PYVER} ]]; then
+ # Replace python3.X with a symlink to python3.Xm
+ rm "${ED}/usr/bin/python${PYVER}" || die
+ dosym "${abiver}" "/usr/bin/python${PYVER}"
+ # Create python3.X-config symlink
+ dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
+ # Create python-3.5m.pc symlink
+ dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
+ fi
+
+ # python seems to get rebuilt in src_install (bug 569908)
+ # Work around it for now.
+ if has_version dev-libs/libffi[pax-kernel]; then
+ pax-mark E "${ED}/usr/bin/${abiver}"
+ else
+ pax-mark m "${ED}/usr/bin/${abiver}"
+ fi
+
+ rm -r "${libdir}"/ensurepip/_bundled || die
+ if ! use sqlite; then
+ rm -r "${libdir}/"sqlite3 || die
+ fi
+ if ! use tk; then
+ rm -r "${ED}/usr/bin/idle${PYVER}" || die
+ rm -r "${libdir}/"{idlelib,tkinter} || die
+ fi
+
+ ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die
+
+ dodoc Misc/{ACKS,HISTORY,NEWS}
+
+ if use examples; then
+ docinto examples
+ find Tools -name __pycache__ -exec rm -fr {} + || die
+ dodoc -r Tools
+ fi
+ insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
+ local libname=$(
+ printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
+ emake --no-print-directory -s -f - 2>/dev/null
+ )
+ newins Tools/gdb/libpython.py "${libname}"-gdb.py
+
+ newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
+ newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
+ sed \
+ -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
+ -e "s:@PYDOC@:pydoc${PYVER}:" \
+ -i "${ED}/etc/conf.d/pydoc-${PYVER}" \
+ "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
+
+ # python-exec wrapping support
+ local pymajor=${PYVER%.*}
+ local EPYTHON=python${PYVER}
+ local scriptdir=${D}$(python_get_scriptdir)
+ mkdir -p "${scriptdir}" || die
+ # python and pythonX
+ ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
+ ln -s "python${pymajor}" "${scriptdir}/python" || die
+ # python-config and pythonX-config
+ # note: we need to create a wrapper rather than symlinking it due
+ # to some random dirname(argv[0]) magic performed by python-config
+ cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
+ #!/bin/sh
+ exec "${abiver}-config" "\${@}"
+ EOF
+ chmod +x "${scriptdir}/python${pymajor}-config" || die
+ ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
+ # pydoc
+ ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
+ # idle
+ if use tk; then
+ ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
+ fi
+}