diff options
Diffstat (limited to 'dev-lang')
26 files changed, 1335 insertions, 1904 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz Binary files differindex f96e48f1ebcd..a8e5dc2a74d8 100644 --- a/dev-lang/Manifest.gz +++ b/dev-lang/Manifest.gz 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 +} |