summaryrefslogtreecommitdiff
path: root/dev-lang
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/Manifest.gzbin21991 -> 22156 bytes
-rw-r--r--dev-lang/algol68g/Manifest2
-rw-r--r--dev-lang/algol68g/algol68g-3.5.4.ebuild2
-rw-r--r--dev-lang/boogie/Manifest2
-rw-r--r--dev-lang/boogie/boogie-3.2.3.ebuild307
-rw-r--r--dev-lang/dafny-bin/Manifest2
-rw-r--r--dev-lang/dafny-bin/dafny-bin-4.7.0.ebuild2
-rw-r--r--dev-lang/dafny/Manifest2
-rw-r--r--dev-lang/dafny/dafny-4.7.0.ebuild2
-rw-r--r--dev-lang/eisl/Manifest6
-rw-r--r--dev-lang/eisl/eisl-4.00.ebuild2
-rw-r--r--dev-lang/eisl/eisl-5.10.ebuild (renamed from dev-lang/eisl/eisl-3.95.ebuild)2
-rw-r--r--dev-lang/elixir/Manifest2
-rw-r--r--dev-lang/elixir/elixir-1.17.2.ebuild39
-rw-r--r--dev-lang/erlang/Manifest2
-rw-r--r--dev-lang/erlang/erlang-27.0.1.ebuild169
-rw-r--r--dev-lang/gleam/Manifest7
-rw-r--r--dev-lang/gleam/files/gleam-1.4.0-rust178-compat.patch28
-rw-r--r--dev-lang/gleam/gleam-1.4.1.ebuild (renamed from dev-lang/gleam/gleam-1.1.0.ebuild)4
-rw-r--r--dev-lang/haxe/Manifest2
-rw-r--r--dev-lang/haxe/haxe-4.3.5.ebuild67
-rw-r--r--dev-lang/interprolog/Manifest3
-rw-r--r--dev-lang/interprolog/interprolog-2.1.2-r2.ebuild59
-rw-r--r--dev-lang/interprolog/interprolog-2.1.2-r3.ebuild2
-rw-r--r--dev-lang/jwasm/Manifest8
-rw-r--r--dev-lang/jwasm/files/jwasm-2.18-makefile-dep-fix.patch11
-rw-r--r--dev-lang/jwasm/files/jwasm-2.18-types-test.patch47
-rw-r--r--dev-lang/jwasm/jwasm-2.13.ebuild2
-rw-r--r--dev-lang/jwasm/jwasm-2.18.ebuild36
-rw-r--r--dev-lang/jwasm/metadata.xml2
-rw-r--r--dev-lang/luau/Manifest12
-rw-r--r--dev-lang/luau/luau-0.632.ebuild2
-rw-r--r--dev-lang/luau/luau-0.635.ebuild (renamed from dev-lang/luau/luau-0.630.ebuild)0
-rw-r--r--dev-lang/luau/luau-0.636.ebuild (renamed from dev-lang/luau/luau-0.618.ebuild)2
-rw-r--r--dev-lang/luau/luau-0.637.ebuild38
-rw-r--r--dev-lang/micropython/Manifest3
-rw-r--r--dev-lang/micropython/files/micropython-1.23.0-gcc13-build-fix.patch11
-rw-r--r--dev-lang/micropython/micropython-1.23.0.ebuild73
-rw-r--r--dev-lang/nasm/Manifest4
-rw-r--r--dev-lang/nasm/metadata.xml4
-rw-r--r--dev-lang/nasm/nasm-2.16.03.ebuild11
-rw-r--r--dev-lang/nim/Manifest2
-rw-r--r--dev-lang/nim/nim-2.0.6.ebuild2
-rw-r--r--dev-lang/php/Manifest10
-rw-r--r--dev-lang/php/php-8.1.26-r1.ebuild762
-rw-r--r--dev-lang/php/php-8.1.28.ebuild782
-rw-r--r--dev-lang/php/php-8.2.15.ebuild845
-rw-r--r--dev-lang/php/php-8.2.18.ebuild863
-rw-r--r--dev-lang/php/php-8.2.20.ebuild3
-rw-r--r--dev-lang/python/Manifest16
-rw-r--r--dev-lang/python/python-3.10.14_p2.ebuild542
-rw-r--r--dev-lang/python/python-3.11.9_p1.ebuild573
-rw-r--r--dev-lang/python/python-3.12.4_p3.ebuild558
-rw-r--r--dev-lang/python/python-3.13.0_rc1.ebuild658
-rw-r--r--dev-lang/python/python-3.13.0_rc1_p1.ebuild660
-rw-r--r--dev-lang/python/python-3.8.19_p3.ebuild432
-rw-r--r--dev-lang/python/python-3.9.19_p4.ebuild492
-rw-r--r--dev-lang/qu-prolog/Manifest5
-rw-r--r--dev-lang/qu-prolog/files/qu-prolog-10.8-compiler-flags.patch18
-rw-r--r--dev-lang/qu-prolog/qu-prolog-10.7.ebuild20
-rw-r--r--dev-lang/qu-prolog/qu-prolog-10.8.ebuild114
-rw-r--r--dev-lang/ruby/Manifest5
-rw-r--r--dev-lang/ruby/ruby-3.2.5.ebuild300
-rw-r--r--dev-lang/ruby/ruby-3.3.4-r1.ebuild301
-rw-r--r--dev-lang/ruby/ruby-3.3.4.ebuild3
-rw-r--r--dev-lang/rust-bin/Manifest2
-rw-r--r--dev-lang/rust-bin/rust-bin-1.79.0.ebuild2
-rw-r--r--dev-lang/rust/Manifest2
-rw-r--r--dev-lang/rust/rust-1.79.0.ebuild2
-rw-r--r--dev-lang/scrapscript/Manifest4
-rw-r--r--dev-lang/scrapscript/metadata.xml23
-rw-r--r--dev-lang/scrapscript/scrapscript-0.1.1.ebuild33
-rw-r--r--dev-lang/scrapscript/scrapscript-9999.ebuild33
-rw-r--r--dev-lang/spidermonkey/Manifest11
-rw-r--r--dev-lang/spidermonkey/spidermonkey-115.10.0.ebuild504
-rw-r--r--dev-lang/spidermonkey/spidermonkey-115.11.0.ebuild503
-rw-r--r--dev-lang/spidermonkey/spidermonkey-115.12.0.ebuild503
-rw-r--r--dev-lang/spidermonkey/spidermonkey-115.13.0.ebuild2
-rw-r--r--dev-lang/spidermonkey/spidermonkey-115.9.1.ebuild474
-rw-r--r--dev-lang/typescript/Manifest4
-rw-r--r--dev-lang/typescript/typescript-5.5.3.ebuild2
-rw-r--r--dev-lang/typescript/typescript-5.5.4.ebuild43
-rw-r--r--dev-lang/uasm/Manifest2
-rw-r--r--dev-lang/uasm/uasm-2.56.2.ebuild2
-rw-r--r--dev-lang/xsb/Manifest5
-rw-r--r--dev-lang/xsb/xsb-3.8.0.ebuild198
-rw-r--r--dev-lang/xsb/xsb-4.0.0-r1.ebuild2
-rw-r--r--dev-lang/yasm/Manifest3
-rw-r--r--dev-lang/yasm/files/yasm-1.3.0-fix-modern-c.patch87
-rw-r--r--dev-lang/yasm/yasm-1.3.0-r2.ebuild (renamed from dev-lang/yasm/yasm-1.3.0-r1.ebuild)8
-rw-r--r--dev-lang/zig-bin/Manifest13
-rw-r--r--dev-lang/zig-bin/zig-bin-0.13.0.ebuild89
-rw-r--r--dev-lang/zig/Manifest7
-rw-r--r--dev-lang/zig/files/zig-0.13.0-test-fmt-no-doc.patch17
-rw-r--r--dev-lang/zig/files/zig-0.13.0-test-std-kernel-version.patch28
-rw-r--r--dev-lang/zig/zig-0.13.0.ebuild213
-rw-r--r--dev-lang/zig/zig-9999.ebuild4
97 files changed, 6191 insertions, 5581 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz
index 17e9a5ad8623..ee1e66d47ab9 100644
--- a/dev-lang/Manifest.gz
+++ b/dev-lang/Manifest.gz
Binary files differ
diff --git a/dev-lang/algol68g/Manifest b/dev-lang/algol68g/Manifest
index b8460297a7ad..2060469b39ba 100644
--- a/dev-lang/algol68g/Manifest
+++ b/dev-lang/algol68g/Manifest
@@ -6,5 +6,5 @@ DIST algol68g-3.5.4.tar.gz 664208 BLAKE2B b8e2bcc53cf3cc7254da37f1d5655ddc4f7956
EBUILD algol68g-3.5.1.ebuild 946 BLAKE2B 7826e7dd8c13921585c3056103f6ad3e241e1599e45ed7854fd1f2da334d057bd5c92d6178491387cbdf391b7bc3bda1d2f1ca1eb458a0eb2d1b4251157ef29d SHA512 509e4b99469fcf59a74871f4d5f28ec22d2b6ae6c361abfa9305ef666580f27154cd33ffa3c923df665229c581bb56d8a57f33d16dc0d0b546cf1509cf6f1d39
EBUILD algol68g-3.5.2.ebuild 946 BLAKE2B 7826e7dd8c13921585c3056103f6ad3e241e1599e45ed7854fd1f2da334d057bd5c92d6178491387cbdf391b7bc3bda1d2f1ca1eb458a0eb2d1b4251157ef29d SHA512 509e4b99469fcf59a74871f4d5f28ec22d2b6ae6c361abfa9305ef666580f27154cd33ffa3c923df665229c581bb56d8a57f33d16dc0d0b546cf1509cf6f1d39
EBUILD algol68g-3.5.3.ebuild 947 BLAKE2B 87f8a18c197e751b44821dcf82b8c262d8430caa080e2f3a742771b583a94d99b6e072c109d7c66738dce198a03de3c3fecc8fac9f45a504b0d9508fa3d07688 SHA512 d2e9d150e89e830205f4a9f7c406c40ccce9399a89499f8757b0ff1e3651143333f2577b0a4eb6b388a706b14a884023f562bf4a0c018c41bd50cff9c52ac7a3
-EBUILD algol68g-3.5.4.ebuild 947 BLAKE2B 87f8a18c197e751b44821dcf82b8c262d8430caa080e2f3a742771b583a94d99b6e072c109d7c66738dce198a03de3c3fecc8fac9f45a504b0d9508fa3d07688 SHA512 d2e9d150e89e830205f4a9f7c406c40ccce9399a89499f8757b0ff1e3651143333f2577b0a4eb6b388a706b14a884023f562bf4a0c018c41bd50cff9c52ac7a3
+EBUILD algol68g-3.5.4.ebuild 946 BLAKE2B 7826e7dd8c13921585c3056103f6ad3e241e1599e45ed7854fd1f2da334d057bd5c92d6178491387cbdf391b7bc3bda1d2f1ca1eb458a0eb2d1b4251157ef29d SHA512 509e4b99469fcf59a74871f4d5f28ec22d2b6ae6c361abfa9305ef666580f27154cd33ffa3c923df665229c581bb56d8a57f33d16dc0d0b546cf1509cf6f1d39
MISC metadata.xml 665 BLAKE2B 2b9b283f86666d64dd77164c5afb0d76403c63f9f0dfac3170eb2ade95bcc382b09d14248cb720edf7c1b055e78ca5ca0017b6784caf4381d970a011301058bd SHA512 b3171d505f9f9e4dcdd5b5a0c6d302849fa017538402832dd3db205c48c68a39867089aae4d1f3c158a45bfc170b21f83789cba16511f251d70300020e102b0a
diff --git a/dev-lang/algol68g/algol68g-3.5.4.ebuild b/dev-lang/algol68g/algol68g-3.5.4.ebuild
index 6689c5616025..3b5c40da8f55 100644
--- a/dev-lang/algol68g/algol68g-3.5.4.ebuild
+++ b/dev-lang/algol68g/algol68g-3.5.4.ebuild
@@ -9,7 +9,7 @@ SRC_URI="https://jmvdveer.home.xs4all.nl/${P}.tar.gz"
LICENSE="GPL-3+"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
IUSE="+curl +gsl +mpfr +ncurses plotutils postgres +readline"
RDEPEND="
diff --git a/dev-lang/boogie/Manifest b/dev-lang/boogie/Manifest
index a5e48c8aa879..9749ccde6b24 100644
--- a/dev-lang/boogie/Manifest
+++ b/dev-lang/boogie/Manifest
@@ -2,6 +2,7 @@ AUX boogie-3.0.4-disable-analyzers.patch 764 BLAKE2B 965f6a8007a4324aa95b165109d
DIST boogie-3.1.6.tar.gz 2053303 BLAKE2B bc4c9ee72e605b1c78140f6120d0fe8ffcad663638829b28e8b5c7238d7265c156ad8994f4bb79989aea030b571b261f71b09050d80ab5a94625e47adc29a74d SHA512 31c4ca25bde610354f5ce4aaeab8f885c89f443a2d96671d55b4b38dc5dc30b6060f89100dba68a2bc962d6169618e1ab9f6958b1f12730687fa1e5c47267663
DIST boogie-3.2.0.tar.gz 2064238 BLAKE2B 01b10f33dddd651b97786c0d9e3c8678c2c3afeb7dfc9403024a6d676b6b8a553b79804fe060b3e165f5b7dcee48de9f208639b115e5557fcd447f767f9144f0 SHA512 0642a407e0a7129776cbee934c45dbac0d12c41d9c920c6d2006c93af71046db0519b2530052686e5fc965a4b525641b5da1ab8ffeb4a48a3e8cfd5f918a6d66
DIST boogie-3.2.1.tar.gz 2065129 BLAKE2B 714ab5c5737d6020ae773b3b2a014a96322a8117a149d9476a540bb2cee88f3bb95e15fd2560bddb772ea14841cd3a7ee3a4025330c408bb94a37446f0acd1f1 SHA512 e5bad71281f5134e700d0da847f3473b3dc3f2e287fdd2aca11cf346870aef8f6c73f6d1983765b6d14cedbf77be4a38529c8b92f7295fc6dc5910e3947a5e43
+DIST boogie-3.2.3.tar.gz 2064649 BLAKE2B f8388d782f90351a9a63aa8a9f68e70a562e76f12b376ae20c0adc6c31c85341b1676290a9128d72b65c97ccdf14c2a83f5e0fb87cfc86595f083f04e9b0b1f8 SHA512 9b56cf1c0a9b66d9c20719c85da196d531eb242ab2fbbad4dbba494761d00e9551b2945f86f269339803cebff99e98cea7a807598c42efcdb194d930f63e75c2
DIST microsoft.bcl.asyncinterfaces.6.0.0.nupkg 76354 BLAKE2B aca3f5db71e4037dbdd604aeaebcd0962ccc171915b77b4c409ab744bf0a469c7d588f9504fc7fa49e3863e9593b66b4083235cb49e812d1f87b3dadb32e6003 SHA512 221a05a0c910f7a87b620d8f3831ed392b4eb95d112bee274d35f27009ad2a26445de9d7cd235fe6fb4a03f2550874bda3be3dddd96edaf9c0852a9c23d7b099
DIST microsoft.codecoverage.16.2.0.nupkg 3133582 BLAKE2B 418cf403247d594cde0d827f8ca8690019a7631525f07993937085f4bbf8473364b4c99aea6e8b7b0020208d15fe0da63f0f4e69c273493c51ae011e8bd82667 SHA512 91f1d43fc038a20f5367d9aab669105dc7514dfbe749260b52789c09a75abcc6bdc000ee0c7f432231d4cc09e99bf5b863dd6289d813342f74d9dad23a651625
DIST microsoft.csharp.4.0.1.nupkg 462346 BLAKE2B 209ccebc9103b803d26ea1f0232245c3cd231078b03a83a0011a2a79a1a8a324a72c5b3fda94b2686fff170932f366e165f81a36a70df590a39c45d70778e4be SHA512 c0e75a9162f28ba4c4572c8fac4fd4c8c97d6d3505a37683646ba5f7e5f6ac0da69d5200d2646054de90e8e08f893a10e514591b69b8273640842b2cf90bddec
@@ -195,4 +196,5 @@ DIST system.xml.xpath.xmldocument.4.3.0.nupkg 138523 BLAKE2B ba53f3b5ac0f2d1d1e9
EBUILD boogie-3.1.6.ebuild 9418 BLAKE2B f2ab18943dd53d9d54fbf579d6f603ff53c3c74ab0e373c8be244b91cb172c964d01970400f8096a6fd16d1a9838df7d4d1597f62e74b2ab345e4d24410bac41 SHA512 28a0a1089b99108b86ff165c1157294b6cb7562f775a9b78420caa2ad925c7620b9e6faa3318279dd07da3c5da44886794cc9187484549aa921d6ab7aae1a7b2
EBUILD boogie-3.2.0.ebuild 9475 BLAKE2B 1c2fc5631b2f16ee7c55cf850e35add9cc8e6f83271b9dbe89cd3ae91eef04068bf1eba0585dbbbb751a2e08740ba2f60492f9dc1fd169a9211b29939693c00d SHA512 4dda5316e21247409c0568fc13ff9572c6f01a4ce1be50db002fd4d68ab49ef8795213c097511c3d674de7fb52cd860243cbcd859e64ae13474e2dfa77d96d84
EBUILD boogie-3.2.1.ebuild 9504 BLAKE2B cd6159246008d9410453f1ab139838816e22f517768a2584192165afb2151b3c80e568230a4edc00b57b232f49cf71e9a178c0ecf0ddda0d72a221f0d7f23a2e SHA512 bb399d2c6717f1dfa599b15409d1590aaac4f437dafb1805cd20eba1bbf5c619ffc34f65c2eb39f78842d3be88ccf39a0e1f354bdeaaa76945d78418d52b5b49
+EBUILD boogie-3.2.3.ebuild 9504 BLAKE2B cd6159246008d9410453f1ab139838816e22f517768a2584192165afb2151b3c80e568230a4edc00b57b232f49cf71e9a178c0ecf0ddda0d72a221f0d7f23a2e SHA512 bb399d2c6717f1dfa599b15409d1590aaac4f437dafb1805cd20eba1bbf5c619ffc34f65c2eb39f78842d3be88ccf39a0e1f354bdeaaa76945d78418d52b5b49
MISC metadata.xml 1102 BLAKE2B 215544658792715aae72787f7c949ed89df9c05ceab5a919a861c02b7938c0d1ee228e0ede55008287b616faf70992a8c1f2854e6e5e1fc909718ae682996bb8 SHA512 b6a626c485e2a5db3390da62c629507a60417eda8b508d7ed8d1c017ac337743d2c4fe0e8554b103f989176dcd2969cc8579e91532b07a22c1b66328ef241e8d
diff --git a/dev-lang/boogie/boogie-3.2.3.ebuild b/dev-lang/boogie/boogie-3.2.3.ebuild
new file mode 100644
index 000000000000..baa291441b16
--- /dev/null
+++ b/dev-lang/boogie/boogie-3.2.3.ebuild
@@ -0,0 +1,307 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DOTNET_PKG_COMPAT=8.0
+NUGETS="
+microsoft.bcl.asyncinterfaces@6.0.0
+microsoft.codecoverage@16.2.0
+microsoft.csharp@4.0.1
+microsoft.dotnet.internalabstractions@1.0.0
+microsoft.net.test.sdk@16.2.0
+microsoft.netcore.platforms@1.0.1
+microsoft.netcore.platforms@1.1.0
+microsoft.netcore.targets@1.0.1
+microsoft.netcore.targets@1.1.0
+microsoft.testplatform.objectmodel@16.2.0
+microsoft.testplatform.testhost@16.2.0
+microsoft.win32.primitives@4.0.1
+microsoft.win32.primitives@4.3.0
+microsoft.win32.registry@4.0.0
+microsoft.win32.registry@4.3.0
+microsoft.win32.systemevents@6.0.0
+netstandard.library@1.6.0
+netstandard.library@2.0.0
+newtonsoft.json@9.0.1
+nunit@3.12.0
+nunit3testadapter@3.15.1
+runtime.any.system.collections@4.3.0
+runtime.any.system.diagnostics.tools@4.3.0
+runtime.any.system.diagnostics.tracing@4.3.0
+runtime.any.system.globalization.calendars@4.3.0
+runtime.any.system.globalization@4.3.0
+runtime.any.system.io@4.3.0
+runtime.any.system.reflection.extensions@4.3.0
+runtime.any.system.reflection.primitives@4.3.0
+runtime.any.system.reflection@4.3.0
+runtime.any.system.resources.resourcemanager@4.3.0
+runtime.any.system.runtime.handles@4.3.0
+runtime.any.system.runtime.interopservices@4.3.0
+runtime.any.system.runtime@4.3.0
+runtime.any.system.text.encoding.extensions@4.3.0
+runtime.any.system.text.encoding@4.3.0
+runtime.any.system.threading.tasks@4.3.0
+runtime.any.system.threading.timer@4.3.0
+runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system.io.compression@4.1.0
+runtime.native.system.net.http@4.0.1
+runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.native.system.security.cryptography@4.0.0
+runtime.native.system@4.0.0
+runtime.native.system@4.3.0
+runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl@4.3.0
+runtime.unix.microsoft.win32.primitives@4.3.0
+runtime.unix.system.console@4.3.0
+runtime.unix.system.diagnostics.debug@4.3.0
+runtime.unix.system.io.filesystem@4.3.0
+runtime.unix.system.net.primitives@4.3.0
+runtime.unix.system.net.sockets@4.3.0
+runtime.unix.system.private.uri@4.3.0
+runtime.unix.system.runtime.extensions@4.3.0
+system.appcontext@4.1.0
+system.buffers@4.0.0
+system.buffers@4.3.0
+system.collections.concurrent@4.0.12
+system.collections.immutable@1.2.0
+system.collections.nongeneric@4.0.1
+system.collections.nongeneric@4.3.0
+system.collections.specialized@4.0.1
+system.collections.specialized@4.3.0
+system.collections@4.0.11
+system.collections@4.3.0
+system.componentmodel.eventbasedasync@4.0.11
+system.componentmodel.eventbasedasync@4.3.0
+system.componentmodel.primitives@4.1.0
+system.componentmodel.primitives@4.3.0
+system.componentmodel.typeconverter@4.1.0
+system.componentmodel.typeconverter@4.3.0
+system.componentmodel@4.0.1
+system.componentmodel@4.3.0
+system.configuration.configurationmanager@6.0.0
+system.console@4.0.0
+system.diagnostics.debug@4.0.11
+system.diagnostics.debug@4.3.0
+system.diagnostics.diagnosticsource@4.0.0
+system.diagnostics.process@4.1.0
+system.diagnostics.process@4.3.0
+system.diagnostics.textwritertracelistener@4.0.0
+system.diagnostics.tools@4.0.1
+system.diagnostics.tracesource@4.0.0
+system.diagnostics.tracing@4.1.0
+system.diagnostics.tracing@4.3.0
+system.drawing.common@6.0.0
+system.dynamic.runtime@4.0.11
+system.globalization.calendars@4.0.1
+system.globalization.extensions@4.0.1
+system.globalization.extensions@4.3.0
+system.globalization@4.0.11
+system.globalization@4.3.0
+system.io.compression.zipfile@4.0.1
+system.io.compression@4.1.0
+system.io.filesystem.primitives@4.0.1
+system.io.filesystem.primitives@4.3.0
+system.io.filesystem@4.0.1
+system.io.filesystem@4.3.0
+system.io@4.1.0
+system.io@4.3.0
+system.linq.async@6.0.1
+system.linq.expressions@4.1.0
+system.linq@4.1.0
+system.linq@4.3.0
+system.net.http@4.1.0
+system.net.nameresolution@4.3.0
+system.net.primitives@4.0.11
+system.net.sockets@4.1.0
+system.objectmodel@4.0.12
+system.private.datacontractserialization@4.1.1
+system.private.uri@4.3.0
+system.reactive@4.4.1
+system.reflection.emit.ilgeneration@4.0.1
+system.reflection.emit.lightweight@4.0.1
+system.reflection.emit@4.0.1
+system.reflection.extensions@4.0.1
+system.reflection.extensions@4.3.0
+system.reflection.metadata@1.3.0
+system.reflection.primitives@4.0.1
+system.reflection.primitives@4.3.0
+system.reflection.typeextensions@4.1.0
+system.reflection.typeextensions@4.3.0
+system.reflection@4.1.0
+system.reflection@4.3.0
+system.resources.resourcemanager@4.0.1
+system.resources.resourcemanager@4.3.0
+system.runtime.caching@6.0.0
+system.runtime.extensions@4.1.0
+system.runtime.extensions@4.3.0
+system.runtime.handles@4.0.1
+system.runtime.handles@4.3.0
+system.runtime.interopservices.runtimeinformation@4.0.0
+system.runtime.interopservices.runtimeinformation@4.3.0
+system.runtime.interopservices@4.1.0
+system.runtime.interopservices@4.3.0
+system.runtime.loader@4.0.0
+system.runtime.numerics@4.0.1
+system.runtime.serialization.json@4.0.2
+system.runtime.serialization.primitives@4.1.1
+system.runtime@4.1.0
+system.runtime@4.3.0
+system.security.accesscontrol@6.0.0
+system.security.claims@4.3.0
+system.security.cryptography.algorithms@4.2.0
+system.security.cryptography.cng@4.2.0
+system.security.cryptography.csp@4.0.0
+system.security.cryptography.encoding@4.0.0
+system.security.cryptography.openssl@4.0.0
+system.security.cryptography.primitives@4.0.0
+system.security.cryptography.protecteddata@6.0.0
+system.security.cryptography.x509certificates@4.1.0
+system.security.permissions@6.0.0
+system.security.principal.windows@4.3.0
+system.security.principal@4.3.0
+system.text.encoding.extensions@4.0.11
+system.text.encoding.extensions@4.3.0
+system.text.encoding@4.0.11
+system.text.encoding@4.3.0
+system.text.regularexpressions@4.1.0
+system.text.regularexpressions@4.3.0
+system.threading.tasks.extensions@4.0.0
+system.threading.tasks.extensions@4.3.0
+system.threading.tasks@4.0.11
+system.threading.tasks@4.3.0
+system.threading.thread@4.0.0
+system.threading.thread@4.3.0
+system.threading.threadpool@4.0.10
+system.threading.threadpool@4.3.0
+system.threading.timer@4.0.1
+system.threading@4.0.11
+system.threading@4.3.0
+system.windows.extensions@6.0.0
+system.xml.readerwriter@4.0.11
+system.xml.readerwriter@4.3.0
+system.xml.xdocument@4.0.11
+system.xml.xmldocument@4.0.1
+system.xml.xmldocument@4.3.0
+system.xml.xmlserializer@4.0.11
+system.xml.xpath.xmldocument@4.0.1
+system.xml.xpath.xmldocument@4.3.0
+system.xml.xpath@4.0.1
+system.xml.xpath@4.3.0
+"
+
+inherit check-reqs dotnet-pkg edo multiprocessing
+
+DESCRIPTION="SMT-based program verifier"
+HOMEPAGE="https://github.com/boogie-org/boogie/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/boogie-org/${PN}.git"
+else
+ SRC_URI="https://github.com/boogie-org/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64"
+fi
+
+SRC_URI+=" ${NUGET_URIS} "
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ sci-mathematics/z3
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/OutputCheck
+ dev-python/lit
+ dev-python/psutil
+ )
+"
+
+PATCHES=( "${FILESDIR}/${PN}-3.0.4-disable-analyzers.patch" )
+
+CHECKREQS_DISK_BUILD="2G"
+DOTNET_PKG_PROJECTS=( Source/BoogieDriver/BoogieDriver.csproj )
+DOTNET_PKG_BUILD_EXTRA_ARGS=( -p:RollForward=Major )
+
+pkg_setup() {
+ check-reqs_pkg_setup
+ dotnet-pkg_pkg_setup
+}
+
+src_unpack() {
+ dotnet-pkg_src_unpack
+
+ if [[ -n "${EGIT_REPO_URI}" ]] ; then
+ git-r3_src_unpack
+ fi
+}
+
+src_prepare() {
+ # Remove bad tests.
+ local -a bad_tests=(
+ civl/inductive-sequentialization/BroadcastConsensus.bpl
+ civl/inductive-sequentialization/ChangRoberts.bpl
+ civl/inductive-sequentialization/PingPong.bpl
+ civl/large-samples/GC.bpl
+ civl/paxos/is.sh
+ civl/samples/reserve.bpl
+ civl/samples/treiber-stack.bpl
+ inst/vector-generic.bpl
+ livevars/stack_overflow.bpl
+ prover/cvc5-offline.bpl
+ prover/cvc5.bpl
+ prover/exitcode.bpl
+ prover/z3-hard-timeout.bpl
+ prover/z3mutl.bpl
+ snapshots/runtest.snapshot
+ test0/AssumeFalseSplit/AssumeFalseSplit.bpl
+ test0/Split/Split.bpl
+ test15/CaptureInlineUnroll.bpl
+ test2/Timeouts0.bpl
+ test21/InterestingExamples4.bpl
+ )
+ local bad_test
+ for bad_test in "${bad_tests[@]}" ; do
+ rm "${S}/Test/${bad_test}" || die
+ done
+
+ # Update the boogieBinary variable.
+ sed "/^boogieBinary/s|= .*|= '${DOTNET_PKG_OUTPUT}/BoogieDriver.dll'|" \
+ -i "${S}/Test/lit.site.cfg" || die "failed to update lit.site.cfg"
+
+ dotnet-pkg_src_prepare
+}
+
+src_test() {
+ einfo "Starting tests using the lit test tool."
+ local -a lit_opts=(
+ --order=lexical
+ --time-tests
+ --timeout 1800 # Let one test take no more than half a hour.
+ --verbose
+ --workers="$(makeopts_jobs)"
+ )
+ edo lit "${lit_opts[@]}" "${S}/Test"
+}
+
+src_install() {
+ dotnet-pkg-base_install
+ dotnet-pkg-base_dolauncher "/usr/share/${P}/BoogieDriver" boogie
+
+ einstalldocs
+}
diff --git a/dev-lang/dafny-bin/Manifest b/dev-lang/dafny-bin/Manifest
index 613260136dad..6b3d01a527a4 100644
--- a/dev-lang/dafny-bin/Manifest
+++ b/dev-lang/dafny-bin/Manifest
@@ -1,5 +1,5 @@
DIST dafny-4.6.0-x64-ubuntu-20.04.zip 63265253 BLAKE2B ebba4490857fb9860289ccad5ea03251366ec5d745588e43a74529c3500f5f02c516bef70f4c661b3138b935e340102ea2537e0c22daf64b88941fec1ff90b4b SHA512 2537cc9d2b2a5514d5ff83988856bac4100bb381eef540870867e47d4557e54bf0889a60ad329f961366558be30590cb5c611bcc7a15305c27a1c38da629746f
DIST dafny-4.7.0-x64-ubuntu-20.04.zip 63382915 BLAKE2B dfda2ceccabd2c223e7ab8ae6c8b02e7f34b42d4c115c2b8013941220246817536313d35927cca68f1427332b937434ec8e9a5dc6347b56eac0f907366c123d2 SHA512 89ef8ebda46b99cebd22f9721fc7af74c8e265a73db4530c571bd37b58d6741f15064d77ee5035be2b2039565b4bc826251dd29d6752557dfb9044fe40b07775
EBUILD dafny-bin-4.6.0.ebuild 1266 BLAKE2B d468b3d62b76525ac092d6ea0c4db6a20d30b883d9c66dca490172ff548e7d27d546e9cf93acbaa8d3b2c6bdc600fcb455f04085971943b413faefcda7b7b56e SHA512 f2eb9d0e966a164ce03c37b46b9e64d5ffb957a03491d931504656d6f918f641329a95f08281e026c9e080ed55e7efd9e7d17ec1b67ec9a2197c2b854e3f50a8
-EBUILD dafny-bin-4.7.0.ebuild 1267 BLAKE2B a43474ee492a32e6dc5287dccf7f3e2b5bef765c120e710194285803c2d8341a89c0bf4cc374e85b753984ac80c4227cc55e5f6440fad7091e65f53d22f0af97 SHA512 dd56c0f34b37a65bae3fc4f54e78c727b39b7efd421b74530c33d60a45a2906edd21c369485ffede7bf158a0b84c85473fa4f320cab2292d923c3c4a84efa3e8
+EBUILD dafny-bin-4.7.0.ebuild 1266 BLAKE2B d468b3d62b76525ac092d6ea0c4db6a20d30b883d9c66dca490172ff548e7d27d546e9cf93acbaa8d3b2c6bdc600fcb455f04085971943b413faefcda7b7b56e SHA512 f2eb9d0e966a164ce03c37b46b9e64d5ffb957a03491d931504656d6f918f641329a95f08281e026c9e080ed55e7efd9e7d17ec1b67ec9a2197c2b854e3f50a8
MISC metadata.xml 1826 BLAKE2B 66f000cee8fbf3bcae05da9249d5bc3388f9c05f32c45e96dd51b035aea220a9d49af25cb89b8b8a64a691408373c1ea02d0f345f9a4a554565f708a894664d5 SHA512 0cc12d9c49360bbc08bb8eccd3f7139ec149a9b731f0283b0f95a8506dd93458eb93f3347a978e55a86279ad85ee3233c1b87bfee36f22c9e40bdd14c0aef6c5
diff --git a/dev-lang/dafny-bin/dafny-bin-4.7.0.ebuild b/dev-lang/dafny-bin/dafny-bin-4.7.0.ebuild
index 8ed638b01e1e..66b2bf3d4f1b 100644
--- a/dev-lang/dafny-bin/dafny-bin-4.7.0.ebuild
+++ b/dev-lang/dafny-bin/dafny-bin-4.7.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/Manifest b/dev-lang/dafny/Manifest
index dfef10dba0d2..3b4369de4a64 100644
--- a/dev-lang/dafny/Manifest
+++ b/dev-lang/dafny/Manifest
@@ -367,5 +367,5 @@ DIST xunit.runner.visualstudio.2.4.3.nupkg 809588 BLAKE2B ce18ac895657d1efa9752e
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.6.0.ebuild 19686 BLAKE2B d26b6a164fe3a4c16c1130057103be047bec579ed87ea84611e17fff71271aaab2690a7d3195f8747b2a77a1150d6fdf4ceb4873fdd86ea9dd56aba58ced9925 SHA512 14923ff113a7aeca39af8eecbd1a1eedae171e34d3e812f0cb301e0635f9c1dc724aceb898db9a72ed771e5c4f3e907df1fa0b4eb4069eafd7a026d4f9faf285
-EBUILD dafny-4.7.0.ebuild 20969 BLAKE2B be17a511d947e5c04442af34cc7dd7ffa23da2818ef32b688011bc25d42d86e715176913e1d5b0dd0ca0a3880dd3a64eb962d6b0514e875a4cbfb30209476a95 SHA512 4708cd5daba42d67a986fe4bf25efa926c315780fdfba98efcd3949d431cb9e1d388737a470e8fbddd3fef4092e658c2942fbf4197671ce18d70404980865495
+EBUILD dafny-4.7.0.ebuild 20968 BLAKE2B dcb3e0ad327528a7daedfef62e523404baed4a17b34d65ea1f812b9052a67e94b8df29d65946c643c11872c4e09229bc8de46013ab2ee4691cc90159d91d9167 SHA512 cd830820563c61d7c6e4a0a88dab3a819e3b48d5133fa4e00e88fcba5b50a9ce6093406060f6315531322112cffd03e6aba4ce86bf1f447419d4e0a1671421ae
MISC metadata.xml 1884 BLAKE2B e3a53cfd90a4edf1d9fd9f567ac3c23fd88cc46602cfe6aea31ddc40585ebc89ab82833dcd21c82083671a54454d62f162f45d56d6b0ec9c202148b3d5ea2c6d SHA512 4cffb9c237ed85097ce1496a72f5aa9c5a0f5758402fe66ff745a3b1dbc3f8d9a40fecc9140ee1b9418f09b62794f7e0a47f908e6ba01b370087d4df62bfa46e
diff --git a/dev-lang/dafny/dafny-4.7.0.ebuild b/dev-lang/dafny/dafny-4.7.0.ebuild
index edd00aee8e1e..9b156ca74c80 100644
--- a/dev-lang/dafny/dafny-4.7.0.ebuild
+++ b/dev-lang/dafny/dafny-4.7.0.ebuild
@@ -373,7 +373,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/eisl/Manifest b/dev-lang/eisl/Manifest
index f32124b02832..3ca922a9581f 100644
--- a/dev-lang/eisl/Manifest
+++ b/dev-lang/eisl/Manifest
@@ -1,9 +1,9 @@
AUX eisl-3.60-Makefile.patch 883 BLAKE2B 42419e7db0c5b960e218e821cd53d11caaa1a48d74c3e3d810c387e7e74f4fb2699d1cc54fc59c4201664a35384288c1f43e9910cabca9747f2522f2dc3aa364 SHA512 de22e920debb00b2988b8cd9d63c50c7c43d680c5b668f32dd9841a50875f7a857f5c320a00311f4d4adbff857298bf1e25f19f6a0baa7f0cba81ac63aaacd0f
-DIST eisl-3.95.tar.gz 2438216 BLAKE2B 927af9a8b0469fcda16501a6fffba60eebc708dcfaba1b076b0ffe80396c285fc1fbb427694548418f76102451f7e37506686bf8d025decd04245e105fa618f7 SHA512 50e4159bbbc3c72fe985db3b2d77be63f2e8197027e97ac5af0e9316e5f817497bfc0a9f7cf0b0624bb8baf2cf28b5b94556ad77edcdee2e8e8a6d63a74e02a2
DIST eisl-4.00.tar.gz 2299966 BLAKE2B fe2d4e486d459866870b0baa23d2eb32890e1661460116508bd18aa401ec71cb68395bf857c98ba749005dcfd0985ab628274800a32e749abf27a767a2ce8615 SHA512 0b4d225f6068a9ff05c6483663b68ae920a1f63e30b47e7350243a70902ae7f5818cf4713fdd45c223e858a4e435d5e93f0944965af1db3f8d9d48f0e2db8239
DIST eisl-5.00.tar.gz 2995464 BLAKE2B ecfc577df2e2b470845a0f3cbaa646408b8d5ec72c0b0e86263c443d6cf0aad0401d7f70e826db71ba824f7659fb4620a83aa81840e2c1b7822c97ada5212d86 SHA512 c82aaac0a9878f33abfe5edd54a37884965a00e6f37e901f81e49537afe8a4891343096d6089058c8ce0df4e8cc89f1f6c179f97eb950e45b949e95d9e094ddf
-EBUILD eisl-3.95.ebuild 1010 BLAKE2B caf0eaf92d6f0397eba23e8641b1bff1d5316d97d1886e75a2bcd504354fbef1ca19d053168ad592503156a7b6270da2dd39cb03f65f78dbb210f6c569476904 SHA512 f637a8521189709117940c1d4240280357394dfb9dceb591658afbc58ccc5190e649144df52ac100f24e0ca3c98913b53d67ca4fa5aa92814bab560791913b35
-EBUILD eisl-4.00.ebuild 1011 BLAKE2B 291b801fbede039429edf9317a5ac1a7beed406019edb25aa218be9f718deff1742a4e99adc349ebe04d5160126bae590de9dc831378aeddfaf7bcce5e554ca1 SHA512 71d7528dbfbc0b76b68bc574aa7ca11b463cae94a5682bc74458cd8b0530de222de50aa540e3e9e444bbef58b2c36d49bb94ad929a99dc9574148ac3abba6afd
+DIST eisl-5.10.tar.gz 2994605 BLAKE2B 6e877db145fe086118975f1c81537e6c2e6dc28c24a59a155c4549e99a72e554f03c8167610564292446e44e3882a176a69fee681c6c3dc3adebe5b775ad321c SHA512 b600946df1472ea632d497ddd4cd58fb5940da4a917652c792460cb3d3fa4390c3b80457afd46bceefe2873691d885c92bdb931df8579d4b24b948ae4e504d05
+EBUILD eisl-4.00.ebuild 1010 BLAKE2B caf0eaf92d6f0397eba23e8641b1bff1d5316d97d1886e75a2bcd504354fbef1ca19d053168ad592503156a7b6270da2dd39cb03f65f78dbb210f6c569476904 SHA512 f637a8521189709117940c1d4240280357394dfb9dceb591658afbc58ccc5190e649144df52ac100f24e0ca3c98913b53d67ca4fa5aa92814bab560791913b35
EBUILD eisl-5.00.ebuild 1011 BLAKE2B 291b801fbede039429edf9317a5ac1a7beed406019edb25aa218be9f718deff1742a4e99adc349ebe04d5160126bae590de9dc831378aeddfaf7bcce5e554ca1 SHA512 71d7528dbfbc0b76b68bc574aa7ca11b463cae94a5682bc74458cd8b0530de222de50aa540e3e9e444bbef58b2c36d49bb94ad929a99dc9574148ac3abba6afd
+EBUILD eisl-5.10.ebuild 1011 BLAKE2B 291b801fbede039429edf9317a5ac1a7beed406019edb25aa218be9f718deff1742a4e99adc349ebe04d5160126bae590de9dc831378aeddfaf7bcce5e554ca1 SHA512 71d7528dbfbc0b76b68bc574aa7ca11b463cae94a5682bc74458cd8b0530de222de50aa540e3e9e444bbef58b2c36d49bb94ad929a99dc9574148ac3abba6afd
EBUILD eisl-9999.ebuild 1005 BLAKE2B bf9361efcf3f564ea3dd41a9f9d404b95b774df7f88b6280fa1d41d67eebbe1063d6f49876068478d31d11dc0846247b7655d4022ca07cd26c4ee869856acd6b SHA512 dfb4fc078498d62a137dcac57a0cd7bf5c7efb85bf4b9cbec3406ebbe432906e1d621ddf282145a3037bdd1a84b603b665d14638adf4d2894441da7b9c7a3b8c
MISC metadata.xml 631 BLAKE2B fd171b07cf1f7beae7be774a5da360d466c83f01a6bd52dc69af436926ae5aebec27a2723c11498be21c4f96f6b82c6aa3571f4b84e763459ef78086450252f2 SHA512 dd9e329f24ce6d3922e92e81d36234b93151f71c88d6ba4b38557565a7c1c3bc4b7172d4d55f1d2d5bd6c5cada449691067cc71abd4d456941f6a8b78fe0df87
diff --git a/dev-lang/eisl/eisl-4.00.ebuild b/dev-lang/eisl/eisl-4.00.ebuild
index 0ef48728bee1..1e6288f65690 100644
--- a/dev-lang/eisl/eisl-4.00.ebuild
+++ b/dev-lang/eisl/eisl-4.00.ebuild
@@ -16,7 +16,7 @@ else
SRC_URI="https://github.com/sasagawa888/${PN}/archive/v${PV}.tar.gz
-> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="amd64 ~x86"
fi
LICENSE="BSD-2"
diff --git a/dev-lang/eisl/eisl-3.95.ebuild b/dev-lang/eisl/eisl-5.10.ebuild
index 1e6288f65690..0ef48728bee1 100644
--- a/dev-lang/eisl/eisl-3.95.ebuild
+++ b/dev-lang/eisl/eisl-5.10.ebuild
@@ -16,7 +16,7 @@ else
SRC_URI="https://github.com/sasagawa888/${PN}/archive/v${PV}.tar.gz
-> ${P}.tar.gz"
- KEYWORDS="amd64 ~x86"
+ KEYWORDS="~amd64 ~x86"
fi
LICENSE="BSD-2"
diff --git a/dev-lang/elixir/Manifest b/dev-lang/elixir/Manifest
index 34977a8948f9..6401f8bdd67e 100644
--- a/dev-lang/elixir/Manifest
+++ b/dev-lang/elixir/Manifest
@@ -9,9 +9,11 @@ DIST elixir-1.15.7.tar.gz 3151775 BLAKE2B 62dc5e390f7b704fdab2be91b36faabc62aed0
DIST elixir-1.15.8.tar.gz 3152250 BLAKE2B 5a4eeca0d2a63fa5dbf322f79bc3373a56a639cc0d583bf660d04dba8e11a2aa2c19b0e4c561ffb4354e225d9c64585d4c6529033b47c6e00c5cf0cc34cf070b SHA512 5e1e5524e5849c5fd56f073f8308acaf3aac77dd78cd6c2a88687ce7a311d96335436d341d52375c4c66524019a26915b2ce608a7d3431e52d16fc3e37beb3b4
DIST elixir-1.16.2.tar.gz 3357093 BLAKE2B 61ba738542d33e827f7352b7f0a27aa76fc06f037d35c56efd96be1c26e28be90b6f2998cd2cac0090e5da771f6c45ad12d68644e36a214de36c9e26d4ac9686 SHA512 1e90adcd5d0512d4b394276e431f3987fc61a3f6191cd5c1d0f7fdd82baba99747aa553a3583e0813ffb5a48a32ce02a24e27b641f86a61e421722a802a850c1
DIST elixir-1.16.3.tar.gz 3360376 BLAKE2B ac6cdc16f193560e18338bd3e45a4f88c7d4398969336062551477dfdafaab8ada60ae64c856647b36967205849427413938da87f746bd52d03d78e141ba5a03 SHA512 1511fb78bdcc50850cbf91007ed11c6a89e947d0a743c1e9ed30e1c93c1b47b5377fced17eeb66ac511d4f151d2e00ef2ecc6fb425d0d4afe2451be41a6ba6ee
+DIST elixir-1.17.2.tar.gz 3255067 BLAKE2B b2902c41262303fe33efeb22f8fe6cf76596f7d9894b018c0d45eaf1858f7d2ffaa1481659ff290c71807b03c5f2ebb17160d7420133d440957f344df6d01126 SHA512 f9d4983c3e7bd054a76bfe0dfa4aea483a4dd84ada432ae5a144167ff8d268499077704214eaaecfda84469c2f747a3594258ca95a7955bffde0c7b0f65985f2
EBUILD elixir-1.14.5-r2.ebuild 1124 BLAKE2B 9e2db53b75ba926cd48a945155b0688774f344a68237010eeb712d5884504b7156600e97e6ef68ff930a7068de34bc974374cffc5ed857ca3e1e5acbc31be77a SHA512 c26275434d77a2004ab24b0e989f2cf1ffded9e5718b54eeb57e7314b5109c6b5ee50b10f84013157a71867ecab7e60f6a55dfa65dff8ff51c3c32d94b471412
EBUILD elixir-1.15.7.ebuild 1019 BLAKE2B 548d634aa96e2870d25acb3cc2104b1c0bb4007e7ca7bb72d1f7e4ef665c114b1f305b61f07ec4e7d7daa8a17cd0a2ccdb4b8473b77e31f4f4247642ac147327 SHA512 64a81fb48913bfef71db087c2afb25de826d31311b5df5efbec2be891bfa1669c44723fd3097d00f46b3adb34f2f830e2bb36177f59cdd6b03eed38d47999de5
EBUILD elixir-1.15.8.ebuild 1022 BLAKE2B 39dcca698a60d83057297aeee72f45fce2751851de8c46fdf8d1b3b6a807204dabce74ec15953575b1a98d6c7221c63ad9e1a2079d888baca716ac8f120d7abd SHA512 10bebf96befc825277ed193fc4a4c5e331f385bbeb51d31790b3d1b326b22b45978d0daa60776f12ae95fdf6fddcbd339789190aefd9b650651bd2ebb3ec3e15
EBUILD elixir-1.16.2.ebuild 1072 BLAKE2B ae4ae5a412db1470f8b34d598e2c0ccd6b4a0bbdacfffb23e130335d7b29bc708c2b9ef8b1f45a3c52a49bc976347288351646ba2255fb8dd108670986e90f91 SHA512 47acef4abcbb766abb9976a885199c481fc83c6c6510685630e5ba75a9e04c2cf6dcb2e579c39c6c8d3a9d0521e62d51f2b4958cffbf619be99f172f80215d2e
EBUILD elixir-1.16.3.ebuild 1008 BLAKE2B 8fd43a3908bd041ff4eac297e9b0483af41485186ec01ae7284bff9eee428c87b60d48b14dd22e7a4a61436fed74f456cb598639859359cca06479dc52838e7e SHA512 a3d6f6fae136a2a6abdbd52dc158d865c85ce4eabc229b9cfb199059a9bd05123314691db088c39c44d9a733317cfae0f679eaead5a03b862483327e6394b1fd
+EBUILD elixir-1.17.2.ebuild 1008 BLAKE2B d9b267e50c585231d45ad12d2d22f0ca5ebd21a86133eadf018e68cd77c299f31d1377c95a8a52aff44932a8e11f635994d13f343c901c5f364244eb4b0b09ce SHA512 b12477639201728ed35e9299dbecd355308644dbfe076add605fc74d8e29b2706ce405676526bb57b592eecb6fb4f0b865a1173343dc52e22331b214fcf52a7e
MISC metadata.xml 724 BLAKE2B ae59dba7153a9cdbeb0ed45acf54cf733f07ebc1b43896f88ff09686ecbdd56553e92f7733e5f556d01e622cadb85a24da879799b0f742d7e257425db1f300b4 SHA512 43cc4435aa89e2ba8edaf8f4cead814c514fac07a7c0500f3f7dfe35d2da6f75f835df0d21d862be6dcbffbd9c6e5ea32b21296048ec903c1491ccfd4854316b
diff --git a/dev-lang/elixir/elixir-1.17.2.ebuild b/dev-lang/elixir/elixir-1.17.2.ebuild
new file mode 100644
index 000000000000..0f14987b04c1
--- /dev/null
+++ b/dev-lang/elixir/elixir-1.17.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Elixir programming language"
+HOMEPAGE="https://elixir-lang.org"
+SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0 ErlPL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~riscv ~sparc ~x86"
+IUSE="test"
+
+RESTRICT="!test? ( test )"
+
+# https://hexdocs.pm/elixir/compatibility-and-deprecations.html#between-elixir-and-erlang-otp
+DEPEND="
+ >=dev-lang/erlang-25:0=[ssl]
+ <dev-lang/erlang-28
+"
+# 'mix' tool collides with sci-biology/phylip, bug #537514
+RDEPEND="${DEPEND}
+ !!sci-biology/phylip
+"
+DEPEND+="
+ test? ( dev-vcs/git )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.9.1-disable-network-tests.patch
+ "${FILESDIR}"/${PN}-1.10.3-no-Q.patch
+ "${FILESDIR}"/${PN}-1.10.3-epmd-daemon.patch
+)
+
+src_install() {
+ emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="${EPREFIX}/usr" install
+ dodoc README.md CHANGELOG.md CODE_OF_CONDUCT.md
+}
diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest
index db25f508606c..8f5bec07e2ec 100644
--- a/dev-lang/erlang/Manifest
+++ b/dev-lang/erlang/Manifest
@@ -9,6 +9,7 @@ AUX erlang-27.0-dont-ignore-LDFLAGS.patch 679 BLAKE2B acfc9a6320144a370a82bb7962
DIST erlang-26.2.1.tar.gz 62435848 BLAKE2B 4e257c73de868b5bbd213a66ece60f29e5231845c5f40b17876b8f042c20ba89bced920ffdbb2a44b890b920d8a147b0a0cb4a2bce66a51e49b720ee794c06c9 SHA512 f4fa0d11ecbd99ca5ef4421abb78ef2aba8ea0f8d19e4aed991c2afcc42bb057a37ae34a416b050fd7ed8ca39ba7cc8b3619ff371bc09f56dfd5b523988a8f8c
DIST erlang-26.2.2.tar.gz 62440930 BLAKE2B c2746b3eb4ffcd3643803745df3e6474291edfb1bd50a0a7cd858942d89808d8b041afd7d8c9dbd0ac336b71412cad972768a3c11d06908605e8a9521f5f5c11 SHA512 27d89f4ee1c7beccd27348ad0d5d9650cda58614f3c278b0a7cf062bf4efc91bd1c7aecfff55b934c57f69cb30c41ead89b94625616817acb2e5910b95bc80fd
DIST erlang-26.2.4.tar.gz 62476971 BLAKE2B f3acfb05a569ce0b4cfd9d9a30ac4840845cc285691294c2ff2776c45812b9046d3453700150912128c385458a3afba7dc54ab773611d46de31b4d2744fcdaf6 SHA512 2fa385b5ec93810c984f31e22757fe8614087191adf0f99376702bd15a316237f8abc1b65d40a302d3919cd28afe65fb4086e39638c6c39af165c0c1ee6fb51d
+DIST erlang-27.0.1.tar.gz 62055749 BLAKE2B 2cbf74efb6e2bd821b30e9b39d13b5b16899a49eedcbedd171068cb4da5d2f5cd98697a4234387d194aeace3ec1c168d752a2afd5bc52c4c6799dfd68ade6916 SHA512 03bba7f7d8226474b4dba9855e78b59c7cf78973fbb2ed48893a26879dc0dce579336e9cae6870f154bdd48cf3be6398cc1ec4ff52f252017d84edb20d565e71
DIST erlang-27.0.tar.gz 62019520 BLAKE2B 9c683e4de7a1b98579e572667746461b9cba0b54d572cde75e3484003548fea2f657292b7f6bfcb4e765d74d744276ddf5ee3f7f615b29cc4b3e563a8cc00944 SHA512 16945c50c09caad9aac6808470ea2a0e282713f23e54cd4ad60510b114811b5deac427acb36cc8049443b4e3c3302c40b02c696cf3f2028f8bd3e836c8c48ea9
DIST erlang_doc_html_26.2.tar.gz 37572819 BLAKE2B c9e5dcaf4a282063a58883fc63adb14e4448333e07994542fdf6dfb29cf4c782f3b7a33b4b6543ffa64b2ce9f40fa9482ca798181bd84e00ebaf5a3223d300d4 SHA512 846f42666d190c9c2b4c11048e842f921d2bc9767483b6f54095c3aba0cbea9a0fbe06daac4c4837b371f9653346660704ea957fd9fbb6606e4274897042abaa
DIST erlang_doc_html_27.0.tar.gz 29506649 BLAKE2B bae1425e3b43608c59975c7936e3e250ae9606acce34a7168c2ef1aba60a2956858e3a5cb4412f8ff937c93821110eae5f0d71b9378cce86d9ad9810f70510dc SHA512 a86497709bb0571b261f520f3e875d51628bc741affa8aded941fd9f66a7a6c821dbf415554cd7be6f91ebedd0d6ca7e6dde2f072bbffdf307bc127f17423536
@@ -17,5 +18,6 @@ DIST erlang_doc_man_27.0.tar.gz 1764909 BLAKE2B b55614bc3c795813eb2d73dc990f740e
EBUILD erlang-26.2.1.ebuild 5334 BLAKE2B 7e04036ef4e52fd3e96aa3304ba7558dd836cffbe57892bcbe60875fd72f12e856dcee33d9b399b6dc6c6ee9f01ee95f160f403d0916a0b7b4aeedb587a92d0b SHA512 8a6581d831fe83a3bb1fbd079648f7559fbf61aa967cb5da1aa8fe9f633eedc69f422397541fc3bd0f76883d9f43316d8972d6ea8f8683a6bb521b825bf9e3e3
EBUILD erlang-26.2.2.ebuild 5383 BLAKE2B 93f349d27f78506582d9155ba5ddb51b720d72b9b0f48d061ab311e17ba0a98a0248b36ef9a835a94c8873a6ede5ea45ca5e2138369283b95c0a7ff130a52bf2 SHA512 32215031638111845b543620d884ea2ff7508e344efda0272fd7ea509f849c1e21d935caa303006e78231cc6833ae572a7345e0e3379e7457cbc353c3e166c76
EBUILD erlang-26.2.4.ebuild 5432 BLAKE2B 0d5c5b84c2169c98e779957643670691f7ed985f8fb78cbe114ac4bbb151c4baeab44e0073a56aa3fe34d6c654fb44a06a87a892c5aeb7c815991ab1ac302ba4 SHA512 555d24e9ffebd9d158ef23a39054f0934d18395b468a6a8695e5269749775278e804579759425cfd1cef049090c7574eccaccba67196e1b63453e5a3e489334d
+EBUILD erlang-27.0.1.ebuild 5035 BLAKE2B 632ae310fe05d4385d41ffee3b8c56a6275892b165747b26b1b7c7c5d762389f429b1451f3d9e2a296c963d9e182d806c9c65d9ca16dfd7ce97504bf05ffc32b SHA512 01dbb3cf15a7aae64d94e0a02388dfdfb9296ad2c5a616009e51da08547e238704f7de6ddafec2221ee0bd42caaa1b31dc41f487a63638a4a7d5a5e15e65ed58
EBUILD erlang-27.0.ebuild 5550 BLAKE2B 8a12af1b6ce0ccf4abd8525f8d8f7ca59fac6d7a6dc0a3ff274cc5e7af3bc06570499d6d4a4c19b3b5fa0723bc36f9a35d954a2a1c1abe899b0a7b07510485d5 SHA512 1128abd81627bc65eefb676095168295f221cf4f12efffcb89ec70637d1fb7653a633c26a289ea5b7f0f8f7caf253ad55e63ad37f893951fd927fa238dc22065
MISC metadata.xml 624 BLAKE2B aa99e3487778663cc634e71ed1d22b63ce829d2180c41c390737c7c5761982de8db5755c82db0753cc36c45888409095cbe5f0df3f31f2bf09c12a67c091fcaf SHA512 29910d752f37bf7cb020f8d18790c477a4702e767dec059be9487cb7edf98dfef3b4bdaf37e4275281a26104187ddabfbc9ba9c104fd8bee19a306c3dee4281e
diff --git a/dev-lang/erlang/erlang-27.0.1.ebuild b/dev-lang/erlang/erlang-27.0.1.ebuild
new file mode 100644
index 000000000000..790c862e2aa5
--- /dev/null
+++ b/dev-lang/erlang/erlang-27.0.1.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+WX_GTK_VER="3.2-gtk3"
+
+inherit autotools flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets
+
+UPSTREAM_V="$(ver_cut 1-2)"
+
+DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
+HOMEPAGE="https://www.erlang.org/ https://github.com/erlang/otp"
+SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/${PN}/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz
+ -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
+ doc? ( https://github.com/${PN}/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz
+ -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
+S="${WORKDIR}"/otp-OTP-${PV}
+
+LICENSE="Apache-2.0"
+# We use this subslot because Compiled HiPE Code can be loaded on the exact
+# same build of ERTS that was used when compiling the code. See
+# http://erlang.org/doc/system_principles/misc.html for more information.
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="doc java +kpoll odbc sctp ssl systemd tk wxwidgets"
+
+RDEPEND="
+ acct-group/epmd
+ acct-user/epmd
+ sys-libs/ncurses:0
+ sys-libs/zlib
+ java? ( >=virtual/jdk-1.8:* )
+ odbc? ( dev-db/unixODBC )
+ sctp? ( net-misc/lksctp-tools )
+ ssl? ( >=dev-libs/openssl-0.9.7d:0= )
+ systemd? ( sys-apps/systemd )
+ wxwidgets? (
+ dev-libs/glib:2
+ x11-libs/wxGTK:${WX_GTK_VER}[X,opengl]
+ virtual/glu
+ )
+"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-27.0-dont-ignore-LDFLAGS.patch
+ "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch
+ "${FILESDIR}"/${PN}-25.1.2-c99.patch # Bug #882887
+ "${FILESDIR}"/${PN}-26.2.4-test-errorinfo.patch
+)
+
+SITEFILE=50"${PN}"-gentoo.el
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ # FreeBSD & OpenBSD
+ pthread_set_name_np
+)
+
+src_prepare() {
+ default
+
+ tc-export AR CPP CXX LD
+
+ # bug #797886: erlang's VM does unsafe casts for ints
+ # to pointers and back. This breaks on gcc-11 -flto.
+ append-flags -fno-strict-aliasing
+
+ # Ensure that we use erl_interface's libei.a, and not the system
+ # libei.so from dev-libs/libei. Bug #912888.
+ sed -i 's/-lei$/-l:libei.a/' \
+ "${S}"/lib/odbc/c_src/Makefile.in || die
+ (cd "${S}"/lib/odbc &&
+ eautoconf -B "${S}"/make/autoconf &&
+ eautoheader -B "${S}"/make/autoconf) || die
+}
+
+src_configure() {
+ use wxwidgets && setup-wxwidgets
+
+ local myconf=(
+ --disable-builtin-zlib
+
+ # don't search for static zlib
+ --with-ssl-zlib=no
+
+ $(use_enable kpoll kernel-poll)
+ $(use_with java javac)
+ $(use_with odbc)
+ $(use_enable sctp)
+ $(use_with ssl ssl)
+ $(use_enable ssl dynamic-ssl-lib)
+ $(use_enable systemd)
+ $(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
+ )
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake
+ use doc && emake docs DOC_TARGETS=chunks
+}
+
+extract_version() {
+ local path="$1"
+ local var_name="$2"
+ sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed"
+}
+
+src_install() {
+ local erl_libdir_rel="$(get_libdir)/erlang"
+ local erl_libdir="/usr/${erl_libdir_rel}"
+ local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)"
+ local erl_erts_ver="$(extract_version erts VSN)"
+ local my_manpath="/usr/share/${PN}/man"
+
+ [[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version"
+ [[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version"
+
+ emake INSTALL_PREFIX="${D}" install
+
+ if use doc ; then
+ emake INSTALL_PREFIX="${D}" install-docs DOC_TARGETS=chunks
+
+ # Note: we explicitly install docs into:
+ # /usr/share/doc/${PF}/{doc,lib,erts-*}
+ # To maintain that layout we gather everything in 'html-docs'.
+ # See bug #684376.
+ mkdir html-docs || die
+ mv "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* html-docs/ || die
+ local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" html-docs/. )
+ docompress -x /usr/share/doc/${PF}
+ else
+ local DOCS=("README.md")
+ fi
+
+ einstalldocs
+
+ dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl
+ dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc
+ dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript
+ dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call
+ dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp
+
+ ## Clean up the no longer needed files
+ rm "${ED}/${erl_libdir}/Install" || die
+
+ # Bug #922743
+ docompress "${my_manpath}"
+
+ insinto "${my_manpath}"
+ doins -r "${WORKDIR}"/man/*
+ # extend MANPATH, so the normal man command can find it
+ # see bug 189639
+ newenvd - "90erlang" <<-_EOF_
+ MANPATH="${my_manpath}"
+ _EOF_
+
+ newinitd "${FILESDIR}"/epmd.init-r3 epmd
+ use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
+}
+
+src_test() {
+ # Only run a subset of tests to test that everything was built
+ # successfully, otherwise we will be here for a long time.
+ emake kernel_test ARGS="-suite os_SUITE"
+}
diff --git a/dev-lang/gleam/Manifest b/dev-lang/gleam/Manifest
index 449aa65a6b59..608c7a42dca6 100644
--- a/dev-lang/gleam/Manifest
+++ b/dev-lang/gleam/Manifest
@@ -1,4 +1,5 @@
-DIST gleam-1.1.0-crates.tar.xz 28586380 BLAKE2B edecdff51966a0091bc915d7e3d4f8d1530f62dd4cb6b2b5d235e0512103c614df028351e61b6793bc56a79f469567a95224cbae3dee7b4932df23d21a5f3c5f SHA512 221675cab2b1ca6e61bbe1a87976640d25e741de4578a8d7ed5be3e552d784596bac1905af2ea06d1b3c5c6efb1ec189aa682d3e9e3f6462fd09d8b31af9603d
-DIST gleam-1.1.0.tar.gz 882622 BLAKE2B 7f3ff5ce346e3f1b8d7a13723ea649f5b6e325a563cd3f4e4c0b227f3d9e4643e1e9cd403dbe9c5e8c93e47c2ae6fe1f137250c0155f8b4acbe324fdcf9efc91 SHA512 265867096b758ab554f0b4228d95b40a30d5796499b29775465d8dc3cc3ad37cf517cf979f33d906229dd33e424708e40a13ea6cf9932b54c573cd2335788695
-EBUILD gleam-1.1.0.ebuild 1002 BLAKE2B b3d0103dd43b516f290ef34cf04f384db8884937774c03b308baf93f4c208ec92f09f71cbc387241ea889e556b2d78f95e03f352c950b9a1b7d54e39008efd99 SHA512 cc158df3a11ef0e4a495eaa640ed16778519ca3d9c5796cd43693c4d5e6124292194261bfe3877a76881276b3f0fbc7e4b57d8926d9bad2d9957c1ff9c09fd6a
+AUX gleam-1.4.0-rust178-compat.patch 1253 BLAKE2B 1a05f9b2cacd84a2bc52bd7cdf30470920f6c3ba406f8e5f0fc067128cb2630fc0ba4895ffeef2d5ff3f1ce9ffef60147267ff1876df09ba5957e6cbaea87307 SHA512 89ad034f4f41faa3adae86452ae8f87eb77e91527943c4289351255098df67518723f8308a23235972b2df002d2b37d451743628d860e37086dc039a17718189
+DIST gleam-1.4.0-crates.tar.xz 42395452 BLAKE2B 36733afeda26214d4d5078824fe46a7c531b73875fd265727f1e363d799accd0b4e4401798e81ef4c60dba6401e00a5df63ed54fa424d4b7a395ee07a0124676 SHA512 5996bf3e4b11d95c05de9fe02e0f2ea8ca195931098e897ee74cb96515b81cadf7e46bd566d895d79d83ac71058a05a75b2f4a60da6ff9c6e0ad9dd0332daf3a
+DIST gleam-1.4.1.tar.gz 1024265 BLAKE2B c1e37d4ba261d94d2131ab79f24859cbad0a465b967c9231d991ed0640cbed3be9fbae0b693b73020ffb56346f77e313420bb1c3c4c90e7b4d0807c400008464 SHA512 ea8dbab041f3dc480c408595b9adf4fc9a588f8438c98b5c7234d735c3b0ad98fe556d4a0258a663b322275212a5f5dbc48637e9d8d557915630dae85904a5cd
+EBUILD gleam-1.4.1.ebuild 1069 BLAKE2B 5361603890ad0b12cadbb93d300c7558128a825ee105d73112873e306b548416194d8f7845f7408107fa8505b61fe3de436cd8d8929cdbe64ac1fb861fd02bd1 SHA512 3df007190721bce286c3cec05e5e0ffd6a48f9d2e4f20da947718c70852e9d01054c42700c18f934ee4f7bf13622546b205380631757cc6eb8ce497acf1cb8e3
MISC metadata.xml 339 BLAKE2B 75c47a1669f737b04e1ca54cb3d222f84f408ad4d24ae8c505dd0d6644b4c0069618cb8ef7f5c773f271c3ac1ae8d6a625e0a4cabadbf23b9eae0c9ab149d3cd SHA512 5f769e170ffff7a528f5de910ba8ff1c525214357e1e421c2b6a922700ef77271b91687c18708787195d6b28179a95dc171082c1e94291bc9fef8771fb7c7086
diff --git a/dev-lang/gleam/files/gleam-1.4.0-rust178-compat.patch b/dev-lang/gleam/files/gleam-1.4.0-rust178-compat.patch
new file mode 100644
index 000000000000..3e3ab1dc1937
--- /dev/null
+++ b/dev-lang/gleam/files/gleam-1.4.0-rust178-compat.patch
@@ -0,0 +1,28 @@
+From b2301ad49894fa7a6edc89a3b2128be274bd2996 Mon Sep 17 00:00:00 2001
+From: Philipp Herzog <ph@flyingcircus.io>
+Date: Sat, 3 Aug 2024 11:10:37 +0200
+Subject: [PATCH] Store formatted variables in a variable
+
+This fixes compilation errors when compiling with slightly less recent
+rust compilers, e.g. 1.78.0 and 1.77.1.
+
+The performance overhead of formatting the string here is neglegible in
+any case since the string is only discarded if there are zero or one
+variables, in which case the extra call to `join` is very cheap.
+
+Upstream: https://github.com/gleam-lang/gleam/pull/3484
+--- a/compiler-core/src/language_server/code_action.rs
++++ b/compiler-core/src/language_server/code_action.rs
+@@ -344,10 +344,11 @@ impl<'ast> ast::visit::Visit<'ast> for LetAssertToCase<'_> {
+ self.visit_typed_pattern(&assignment.pattern);
+ let variables = std::mem::take(&mut self.pattern_variables);
+
++ let formatted_all = format!("#({})", variables.join(", "));
+ let assigned = match variables.len() {
+ 0 => "_",
+ 1 => variables.first().expect("Variables is length one"),
+- _ => &format!("#({})", variables.join(", ")),
++ _ => &formatted_all,
+ };
+
+ let edit = TextEdit {
diff --git a/dev-lang/gleam/gleam-1.1.0.ebuild b/dev-lang/gleam/gleam-1.4.1.ebuild
index 050a8cc09d08..7151240a5284 100644
--- a/dev-lang/gleam/gleam-1.1.0.ebuild
+++ b/dev-lang/gleam/gleam-1.4.1.ebuild
@@ -9,7 +9,7 @@ DESCRIPTION="A friendly language for building type-safe, scalable systems!"
HOMEPAGE="https://gleam.run https://github.com/gleam-lang/gleam"
SRC_URI="
https://github.com/gleam-lang/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
- https://dev.gentoo.org/~matthew/distfiles/${P}-crates.tar.xz
+ https://dev.gentoo.org/~matthew/distfiles/${PN}-1.4.0-crates.tar.xz
"
LICENSE="0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 CC0-1.0 ISC MIT MPL-2.0 Unicode-DFS-2016 Unlicense ZLIB openssl"
@@ -18,6 +18,8 @@ KEYWORDS="~amd64"
RDEPEND="dev-lang/erlang:*"
+PATCHES=( "${FILESDIR}"/${PN}-1.4.0-rust178-compat.patch )
+
# rust does not use *FLAGS from make.conf, silence portage warning
# update with proper path to binaries this crate installs, omit leading /
QA_FLAGS_IGNORED="usr/bin/${PN}"
diff --git a/dev-lang/haxe/Manifest b/dev-lang/haxe/Manifest
index db34448015e4..1760a9c45c95 100644
--- a/dev-lang/haxe/Manifest
+++ b/dev-lang/haxe/Manifest
@@ -1,3 +1,5 @@
DIST haxe-4.3.4.tar.gz 8409775 BLAKE2B 929797d71c23724c08c85957be8b39d6802d35990f70a85f8f7c309fa4505dae2b4b24e881ea8f55b02d68af4eb5fb7956c2562cdc5a8f201925a3029bd2cafd SHA512 77f08d5ecd2f0d08d4f44f186120a3f72eb51c712116d50d524f116d981b28fec4e5a03ef0d7c84bf0451caac76a37d642841202d01822cbb5f08981f12998ec
+DIST haxe-4.3.5.tar.gz 8409453 BLAKE2B 5240d9dc215b9636927d2461c6250acc566c7e314850a2804af8a3d4ae8ca6f7ea2c53da5b5852b3714da102c07e58fdfcc36a3104f5fca0612b55cfcfd3e4be SHA512 df8c93542102b359946507ab3b5d33b69556c57a491b0196d2ab51733fcfc03482867550a6f11543aee0c50ce685dfc89220f5d828b982219defcfec3508447c
EBUILD haxe-4.3.4.ebuild 1357 BLAKE2B 8aceead965bade611912317c79ff3d1951c8e715d5aa8af6c30ba7df661b3a8a5fd1cdb0ada60ec2b5dfdecd8c57e032646a8e389b6919735b11525d36f11aee SHA512 927cdfd6f6664c86efc860cabc36c267e0caa53665211cbc990a24a07c0a9a4aa69cf8480ca82fddb2980cf187c6b013ae473a7b5633db05678f930924194a1c
+EBUILD haxe-4.3.5.ebuild 1351 BLAKE2B 2e7d177143ac025bfad3783c9cda86fb148f212acdc0ea1e8dbc2378c14c4a2755ec05b37d9db2d5c8413258c2c5a03486384d208c0bff1635308d3f5e807851 SHA512 88cf0f7303dbf37d8550ed24e1887e422c47296ef75d2ce068f6fc7e1d820b38e11c9555ae29a673d347705a382d26dd590e72dd8aa4769559e6d87d90393902
MISC metadata.xml 733 BLAKE2B 293f296fd51f93d0834ba3f9ad2815161313f2ee7fcc5ebb68f20090e76fd67b4845114c4c78959cd13d64146e9221d001e0be76b65323d1d5b3cf934085a1ec SHA512 6dd648666a0916f27edc70e637e426e03790d4fd50a43fd2696b62c69cdf0f8b1c831fd8dca03db844209a0a23952c5dc1bc1b929b42928f6608288f470f8399
diff --git a/dev-lang/haxe/haxe-4.3.5.ebuild b/dev-lang/haxe/haxe-4.3.5.ebuild
new file mode 100644
index 000000000000..b922a3ab9e47
--- /dev/null
+++ b/dev-lang/haxe/haxe-4.3.5.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Multi-target universal programming language"
+HOMEPAGE="https://haxe.org/
+ https://github.com/HaxeFoundation/haxe/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/HaxeFoundation/haxe.git"
+else
+ # Haxe-debian is a distribution variant that contains the required git modules.
+ SRC_URI="https://github.com/HaxeFoundation/haxe-debian/archive/upstream/${PV}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/haxe-debian-upstream"
+
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="GPL-2+ MIT"
+SLOT="0/${PV}"
+IUSE="+ocamlopt"
+RESTRICT="strip"
+
+RDEPEND="
+ >=dev-lang/ocaml-4:=[ocamlopt?]
+ >=dev-ml/luv-0.5.12:=
+ dev-ml/extlib:=
+ dev-ml/ocaml-sha:=
+ dev-ml/ptmap:=
+ dev-ml/sedlex:=
+ dev-ml/xml-light:=
+
+ dev-lang/neko:=
+ dev-libs/boehm-gc:=
+ dev-libs/libpcre:=
+ net-libs/mbedtls:=
+ sys-libs/zlib:=
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ dev-ml/camlp5
+ dev-ml/dune
+ dev-ml/findlib
+"
+
+QA_FLAGS_IGNORED="usr/bin/haxelib"
+QA_PRESTRIPPED="usr/bin/haxelib"
+
+src_configure() {
+ export OCAMLOPT="$(usex ocamlopt ocamlopt.opt ocamlopt)"
+}
+
+src_compile() {
+ emake -j1 BRANCH="" COMMIT_DATE="" COMMIT_SHA="" \
+ OCAMLOPT="${OCAMLOPT}" INSTALL_DIR="/usr"
+}
+
+src_install() {
+ emake DESTDIR="${D}" INSTALL_DIR="/usr" install
+ dodoc *.md
+}
diff --git a/dev-lang/interprolog/Manifest b/dev-lang/interprolog/Manifest
index 85eb5f9b9fe9..3971f430071b 100644
--- a/dev-lang/interprolog/Manifest
+++ b/dev-lang/interprolog/Manifest
@@ -1,6 +1,5 @@
AUX interprolog-2.1.2-java1.4.patch 1341 BLAKE2B b1c02e38f990d8f693a274cb258b18151e5b5d93a8670ae40d2d0b29b25c8ee86c749463b880166d759509331c9bd58d57286f9c62b36ba53673291129d27a09 SHA512 cfd4a637e4d86172547448801c92decfa3f10fa7d02e007c42d8415901d742ecbdf1fca1e4034c7069885a06824f1577bc64f2454a2c31877af68e74ad3aa0d2
AUX interprolog-2.1.2-java17.patch 793 BLAKE2B d1f501918b153ce840887c4b697783a2a5ddd4fece70148c88d761d04891aa5710c3a33c5c14eb22b787ddedb52e852991bac80f3dd9fbe1a3764521d5336cba SHA512 26dc6ebaf903374da09af41b452a7a47af5fbf17d763d837603d5bdd628408b3d7adfddbad375a22f37ffddf66626336c3eac82c36acc0eb2942f07836291d0c
DIST interprolog212.zip 1066931 BLAKE2B ea2666ff756c30db35262137938c32ee98d8a145ce59ea3b8694328771b8925395f7643ecabf9e0c010515176fdbbedcd333a81003a09c0ae1d9c1a94215e095 SHA512 e3d8b216f7e76d5d95ad9d27a96720075575fd717c89ddf9403376a72e18d56fd68afa2b1e6e70da55b99cd84043a16695ff37a59ec3366115cd4c36ed1ff50c
-EBUILD interprolog-2.1.2-r2.ebuild 1122 BLAKE2B 2a5eed55438be7d9942782f4382420077e3f3276c557ecd33c9fc8ab2a20aa73811c68c21c1a3c31209a686f2da7af5dfb2dea423aba1fdc44b2ec48cd3fded2 SHA512 8f722f7031d8eb994dfdfc05309e14ac0e9c2b0a6610bf48d19b9c1d2dab2d80ced5a3d5a19928f4afedc0ab4bddaee27f92b1741d24e293d4057e3254443021
-EBUILD interprolog-2.1.2-r3.ebuild 1124 BLAKE2B f75b8661ba1268ac43ff1c1af928ed0d9cf459698a8292a1698ffe36cb1804b21e92baa91f7480904e69fe484c60e941f09bc05f8ba7baae292406d9d09a3015 SHA512 aac7e723499a9dab0a2de00503d277e5addad15af77ca6f7bb5b61d93225961683073ec8beac3369b5b5dfa9e816a4bf2e06457abafbf25e80d6e9098276a157
+EBUILD interprolog-2.1.2-r3.ebuild 1119 BLAKE2B 043098c51dcdf8af6d2a71048c1f35e0a3da4e10f979621cf5625678479056531fd57830a60a9d81183a0ad9dbda43ecaeb41eaccc854a72972afb6122a56dfe SHA512 178510dbc1d281ecbe1aeff293858bb8b2e0821b23f3e7150649579d9fa4fc47fec7db59ca7a2428d752976201d0cbab5297ff51978f6b2f8f181fa22e2e3e07
MISC metadata.xml 237 BLAKE2B d4347f2b84f6246e0bf64c19548b9bf8ad5094bf392fabb2b5add3bdb2af1e866aa34f67d4dad5fd6595daa79233456e962684b4d062bdc7be1f4ee1ef92d3ee SHA512 525172b6046cff15248158e173c764b9294cf0a8220914ef6b46ca4f15fdb79caca8089cb04ac0b1ca56e2496dc84d1f933b2d56e806007883cbc914a1a4eca5
diff --git a/dev-lang/interprolog/interprolog-2.1.2-r2.ebuild b/dev-lang/interprolog/interprolog-2.1.2-r2.ebuild
deleted file mode 100644
index 9c7632350f8b..000000000000
--- a/dev-lang/interprolog/interprolog-2.1.2-r2.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit java-pkg-2 java-ant-2
-
-MY_P="${PN}$(ver_rs 1- '')"
-
-DESCRIPTION="InterProlog is a Java front-end and enhancement for Prolog"
-HOMEPAGE="https://declarativa.com/InterProlog/"
-SRC_URI="https://declarativa.com/InterProlog/${MY_P}.zip"
-
-LICENSE="LGPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="doc"
-
-RDEPEND=">=virtual/jdk-1.8:*
- dev-java/junit:0"
-
-DEPEND="${RDEPEND}
- app-arch/unzip
- >=dev-java/ant-1.10.14-r3:0
- || (
- dev-lang/xsb
- dev-lang/swi-prolog
- dev-lang/yap )"
-
-S="${WORKDIR}"/${MY_P}
-
-EANT_GENTOO_CLASSPATH="junit"
-
-src_prepare() {
- eapply "${FILESDIR}"/${P}-java1.4.patch
- eapply "${FILESDIR}"/${P}-java17.patch
- eapply_user
-
- cp "${FILESDIR}"/build.xml "${S}" || die
- mkdir "${S}"/src
- mv "${S}"/com "${S}"/src
- rm interprolog.jar junit.jar
-}
-
-src_compile() {
- java-pkg_jar-from junit
- eant jar $(use_doc)
-}
-
-src_install() {
- java-pkg_dojar dist/${PN}.jar
-
- if use doc ; then
- java-pkg_dohtml -r docs/*
- dodoc INSTALL.htm faq.htm prologAPI.htm
- dodoc -r images
- dodoc PaperEPIA01.doc
- fi
-}
diff --git a/dev-lang/interprolog/interprolog-2.1.2-r3.ebuild b/dev-lang/interprolog/interprolog-2.1.2-r3.ebuild
index c2698caaa5e8..67d410cd21e2 100644
--- a/dev-lang/interprolog/interprolog-2.1.2-r3.ebuild
+++ b/dev-lang/interprolog/interprolog-2.1.2-r3.ebuild
@@ -16,7 +16,7 @@ S="${WORKDIR}"/${MY_P}
LICENSE="LGPL-2"
SLOT="0"
-KEYWORDS="amd64 ~x86"
+KEYWORDS="amd64"
BDEPEND="app-arch/unzip"
diff --git a/dev-lang/jwasm/Manifest b/dev-lang/jwasm/Manifest
index cbab8bb00264..40f93d17d09d 100644
--- a/dev-lang/jwasm/Manifest
+++ b/dev-lang/jwasm/Manifest
@@ -1,5 +1,9 @@
AUX jwasm-2.11-types-test.patch 1761 BLAKE2B b719bb79504e708925bfa407e72df7a37044b834bc3118fa9baf1a0cb478a0ab852872147148462188324954ef958af30cbcbca28fc992660276a15100ecb1b6 SHA512 0a4f3e613c8e724939ce9e23f8f4ce10ca89bf6c1579929719b3ccad62ac66cceecc3f8799c20c2875b7d4dcc7390bf0e4ca64aa08aab0b39bd7a4ab381b150b
+AUX jwasm-2.18-makefile-dep-fix.patch 280 BLAKE2B fe4abbede4922a66adcde0296c5d2421cefc4d4c387f000b7fc0f675bc980c6f51a57aaad52b243adb88a64063c6e63e5da4b937bf7baa589b7ee98473520917 SHA512 95ac9ce92ff9ce10771f304a029073da8be48f81c5f81a269c1785a6a94e9228c9fb348750a624b969aeefe687d5ab1416967f470b762cc26719acbe2a9a8f3b
+AUX jwasm-2.18-types-test.patch 1471 BLAKE2B 87c696bc22e8fb9584be5e6fde14dfaa9bf62e4e74ad2d4d542e07ac08be4591ecc920553d5b516d12518c7b35d626ef8121e0e8cd2c03e20a6ccb027e5f42b8 SHA512 ac7af52f85ebf430722d731518a6f8660369feff6d1318590c436b1080a0785b1a73e166235752e3b6631f86a9e19e8e7da76f628d2ba918bdae14db535df270
AUX makefile-dep-fix.patch 497 BLAKE2B d0fc87c0aff19689efa2440c7d90d3f0d7c80310e40dad6f4dd938e139d5458b5e4ae72153cb38242ae683c887ce085494f358e3f67c2be028adeadf176403ac SHA512 29526a14d7a6bc775d6cd590b1c75a864eb04c365de736e93c810d715760ac4d76b6691f05f9077adec9c6938aefa8637d6efd9db67c81752e604308fffd64e6
DIST jwasm-2.13.tar.gz 578365 BLAKE2B 8c6fbe3e6cb56c0fe8135c30c629534d2b6e2a2ed534249834e0e2674bf6635cb15ab94d4fa05c5378cb0db8569ddc3ba49d2d7c9615b7ddb769cba1a2d5b715 SHA512 03f80f4a74b39c6093f5cd5334364f7458836a52ad01279c95683e7053cb4211c40235e16f6f2ee40bc7316dcd8a4fbcb57bf3606d31249d96d01933a8aa0563
-EBUILD jwasm-2.13.ebuild 771 BLAKE2B 249ed2462c3eddafd5e78580a41d3837d9187481272007ec100d4e514866743de09888ee1dcee89adadfc4a3f773bc8d3cbcfdd59606ea5ecaa63158b9c678f1 SHA512 ce900c45292c5cbcec98a1c4f357005b40b59fba8e50ae961a72383f00dac0a920a8dc70f38e070b1038b47142f1eab9f65ef8ad1422053e7a5c1b1257fc08c2
-MISC metadata.xml 294 BLAKE2B 27e182db85c289075151811df775761aa9d9ed661474dcc710e084d3c325924d88b1c57389554a65383de3acf15ec4cce9a18e8cbffdd2a9230212279dad9174 SHA512 ef96dd7f6948e978281b5259ff6392aa72c90a672f4eef3394feece7e6c39c1ab96b42b8a2bbc3645dcb0d036778ac83055c9b76656f8d03f0a27dbf60084a0c
+DIST jwasm-2.18.tar.gz 1169949 BLAKE2B 2a5d6c37f27dd5193390a5b5ab7d7ec260a800ead132dda4a49b16b5ae43b53ef397b663166767c8f4ce2de69dd9fa61e59e0537d837ba85da38cb17aa0da6e0 SHA512 f5ca9d2ec80b979e2acec7246861e13e11717917f59df126f28339e3c1ded3405c8a93daaef6ee817bc217d593151010bf18c85c9fc03600ff70cb18e793309c
+EBUILD jwasm-2.13.ebuild 770 BLAKE2B 33703e3a7a239568439286ca9f05dc33c679bd70f7255047295cd8e883a7207efa53c5ee484e74687469ca86e743453b679e5eb35a423b46666dfbd1b2f64d5d SHA512 238fceaf1b4f2f5d27345ee462a7e174a4a345d609173d6a6202c346544482277a1e579a133f4096af419ecb94108d7496ea5e261d3f13c13e8f1ca279598445
+EBUILD jwasm-2.18.ebuild 796 BLAKE2B e284f0def853b7c31fea11dee8a7256765a958d1a0b805ec2b267ab247f0cce2fa0e4acb3d4a8b680eb83e4468efc256f35378e136093501c389e3160187c30d SHA512 baa339ca4a4a7cd43cba7da462d43fd14deec4e9df5dc2e897312cc017c5e13336e25bfcef322f4896188074370a4e88d1ce0ac6f2408f95092cbc03d53a3acb
+MISC metadata.xml 307 BLAKE2B c7eb2546ed5af50a82d536311203f569ef0d7450c7b3a40cf342ede488b4b1cf5bff66a3b54e0eb9c201e3468f1f76756a88f989a60ed9d528f3d5124abd302e SHA512 6f5dfb2ca18c019747390572a642bc7172a98ef80b9a099bbe08b561713e81c025eb8b14c391465ea2678dc0e00fc7bcda4d367ae8d27cfb65f7893f129cc907
diff --git a/dev-lang/jwasm/files/jwasm-2.18-makefile-dep-fix.patch b/dev-lang/jwasm/files/jwasm-2.18-makefile-dep-fix.patch
new file mode 100644
index 000000000000..277216cf18ef
--- /dev/null
+++ b/dev-lang/jwasm/files/jwasm-2.18-makefile-dep-fix.patch
@@ -0,0 +1,11 @@
+--- a/GccUnix.mak
++++ b/GccUnix.mak
+@@ -30,7 +30,7 @@ include gccmod.inc
+
+ #.c.o:
+ # $(CC) -c $(inc_dirs) $(c_flags) -o $(OUTD)/$*.o $<
+-$(OUTD)/%.o: src/%.c
++$(OUTD)/%.o: src/%.c | $(OUTD)
+ $(CC) -c $(inc_dirs) $(c_flags) -o $(OUTD)/$*.o $<
+
+ all: $(OUTD) $(OUTD)/$(TARGET1)
diff --git a/dev-lang/jwasm/files/jwasm-2.18-types-test.patch b/dev-lang/jwasm/files/jwasm-2.18-types-test.patch
new file mode 100644
index 000000000000..37b35208e96f
--- /dev/null
+++ b/dev-lang/jwasm/files/jwasm-2.18-types-test.patch
@@ -0,0 +1,47 @@
+From b19339d4356efbd9b49f73e67ed7c09b9dad4b75 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Thu, 16 May 2013 12:24:17 +0300
+Subject: [PATCH 1/2] types: add sanity tests for used sizes
+
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+--- a/gccmod.inc
++++ b/gccmod.inc
+@@ -6,6 +6,7 @@ $(OUTD)/atofloat.o \
+ $(OUTD)/backptch.o \
+ $(OUTD)/bin.o \
+ $(OUTD)/branch.o \
++$(OUTD)/checks.o \
+ $(OUTD)/cmdline.o \
+ $(OUTD)/codegen.o \
+ $(OUTD)/coff.o \
+--- /dev/null
++++ b/src/checks.c
+@@ -0,0 +1,26 @@
++/****************************************************************************
++*
++* This code is Public Domain.
++*
++* ========================================================================
++*
++* Description: make sure "inttype.h" filelds are of the desired size.
++*
++****************************************************************************/
++
++#include "inttype.h"
++
++/* fails to compile if type sizes are of unexpected size */
++static void validate_inttype_sizes()
++{
++/* try to create */
++#define T_IS_SIZE(__type, __expected_size, __test_name) \
++ char __test_name[2 * (sizeof (__type) == (__expected_size)) - 1];
++
++ T_IS_SIZE(uint_8, 1, size_of_uint_8_must_be_1_byte);
++ T_IS_SIZE(uint_16, 2, size_of_uint_16_must_be_2_bytes);
++ T_IS_SIZE(uint_32, 4, size_of_uint_32_must_be_4_bytes);
++ T_IS_SIZE(uint_64, 8, size_of_uint_64_must_be_8_bytes);
++
++#undef T_IS_SIZE
++}
+--
+1.8.2.1
diff --git a/dev-lang/jwasm/jwasm-2.13.ebuild b/dev-lang/jwasm/jwasm-2.13.ebuild
index 0242aa2b604c..2cac391deb8d 100644
--- a/dev-lang/jwasm/jwasm-2.13.ebuild
+++ b/dev-lang/jwasm/jwasm-2.13.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/JWasm/JWasm/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Watcom-1.0"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
RDEPEND=""
DEPEND=""
diff --git a/dev-lang/jwasm/jwasm-2.18.ebuild b/dev-lang/jwasm/jwasm-2.18.ebuild
new file mode 100644
index 000000000000..f583e3ffd328
--- /dev/null
+++ b/dev-lang/jwasm/jwasm-2.18.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="MASM-compatible TASM-similar assembler (fork of Wasm)"
+HOMEPAGE="https://github.com/Baron-von-Riedesel/JWasm"
+SRC_URI="https://github.com/Baron-von-Riedesel/JWasm/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/JWasm-${PV}"
+
+LICENSE="Watcom-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.18-types-test.patch
+ "${FILESDIR}"/${PN}-2.18-makefile-dep-fix.patch
+)
+
+src_prepare() {
+ default
+
+ # don't strip binary
+ sed -i GccUnix.mak -e 's/ -s / /g' || die
+}
+
+src_compile() {
+ emake -f GccUnix.mak CC="$(tc-getCC) ${CFLAGS} ${LDFLAGS}"
+}
+
+src_install() {
+ dobin build/GccUnixR/jwasm
+ dodoc -r README.md History.txt Html/
+}
diff --git a/dev-lang/jwasm/metadata.xml b/dev-lang/jwasm/metadata.xml
index 28db5ef5b1ca..1c0ee30d49c1 100644
--- a/dev-lang/jwasm/metadata.xml
+++ b/dev-lang/jwasm/metadata.xml
@@ -4,6 +4,6 @@
<!-- maintainer-needed -->
<upstream>
<remote-id type="sourceforge">jwasm</remote-id>
- <remote-id type="github">JWasm/JWasm</remote-id>
+ <remote-id type="github">Baron-von-Riedesel/JWasm</remote-id>
</upstream>
</pkgmetadata>
diff --git a/dev-lang/luau/Manifest b/dev-lang/luau/Manifest
index cf9415f7ecc4..635110114f44 100644
--- a/dev-lang/luau/Manifest
+++ b/dev-lang/luau/Manifest
@@ -1,9 +1,11 @@
-DIST luau-0.618.tar.gz 1672989 BLAKE2B ecd166a9562aa103d27e29154687548bce04e45c9810b4aa264fe6eb38e3c2077a9cd4c61f138af62c605580c477b382fd2612616a3638a5a708c3d315011a12 SHA512 9fb6aa39ff2ad92a90afefb77ede472a2fb8a99417a669a1e19774a5550ca79709c034f353b459780f07f406dcac1b83639fb4fcd31215d811df491851fc1a6c
-DIST luau-0.630.tar.gz 1736333 BLAKE2B 205d5575b97007108ebf197ff1bfd9d94c3c3f116ba2c1f8068ef9762b30e211973d5da458f261223647fc725bad926fa9406070d95220d390b9e5ecaabf75af SHA512 9f8290a11abe5e9c91eaf5c9c71b940d4ca2bd6a730a2fc6e9cb830e9f7bf6d87a29cb8e71268ed1fe5af0e01738e7e15fbe2a14d81c32e7c76961d146c1128c
DIST luau-0.632.tar.gz 1740751 BLAKE2B e6a6da0dd8b599d0c77d01976e58239234deb9ff577d20cc77017e90731b254d5b516032c7927d0dc6d52047259e0715fdbe2c4e888cca775aa0303da9d52e87 SHA512 1fa204965ceea94a96dd879431d10ab33de16ab2d8ebb2d73d866d213246acb2ae9aad0126511c7f4b3a965c115bf3e68d7069b021718d784170acadb20cf645
DIST luau-0.634.tar.gz 1741026 BLAKE2B ec61c08b8165aca085f9743deee620c2dfb289e59a2c7aa9bb5dd441eaab8a6bfd38eb9295192ace96558e2f209e47752eb7405e9a5c7c645d21694569a0ce7c SHA512 a58e1c1a0eb56d0bd9d656e0420735fa30b58283c4c9f704404db5a51b66361a3ffa98600e6b6d68a6b9e30ccf0879ad43935f9d73295c06ab947dcd2c4d2ac5
-EBUILD luau-0.618.ebuild 776 BLAKE2B 6ddab7faf06aab3a3d4f04b8945074e342458df741b3e37e6555b9ebdc019db26541bb75080028292bc233520b58f23d50a872e31e0c7f5a3f3ed0ab092dab9b SHA512 147029f8a5c01e58b390efc9c961cb323ea089b39907f15b6830999b0fc1c90adaddf7a4da86aa6fc8caa51719fda2c034504485b50bd95bb793870c9694651c
-EBUILD luau-0.630.ebuild 777 BLAKE2B c5f16047056f2cfe0a8d1b4373f41b27a6929fe0a789cfee41cb9199921cc3eadf1c67296624bf9a831884f062e4acc6caa988c15fb45b3079b7736cf9a2dff4 SHA512 64d8b22353719b73411b324aac8d18beb584605c935fa6b4a3e01839d625c4f51265ed042489ca486bf8d07d54d3f41759128cb77e43fe6bcb601afef4ed3a99
-EBUILD luau-0.632.ebuild 777 BLAKE2B c5f16047056f2cfe0a8d1b4373f41b27a6929fe0a789cfee41cb9199921cc3eadf1c67296624bf9a831884f062e4acc6caa988c15fb45b3079b7736cf9a2dff4 SHA512 64d8b22353719b73411b324aac8d18beb584605c935fa6b4a3e01839d625c4f51265ed042489ca486bf8d07d54d3f41759128cb77e43fe6bcb601afef4ed3a99
+DIST luau-0.635.tar.gz 1748762 BLAKE2B 84d12c0cfc2d70f1a6a029de5c42c3781b9786c8d7994bc4b8c0f762e7f40b805af0e02ad3cb1b2098d3c8f133554b43496d67202515d7b23b1d9fe68cd62e9e SHA512 b574e3a6e466f994772b3dcbc8eced19c2c29ddb4d4195276a1b708bab8c81555e6a78d97f426937062c6ced2c28cdc57ffe60ed1e10f9cba07a3ada35fcf91c
+DIST luau-0.636.tar.gz 1757794 BLAKE2B 3e2e55dbae17c61d34fe2ca81c7198d5e9d5637b9360831361287de6ff21eca60761f6d2c827d9826393f6d5468228eb8a34537318eb042043cd2bd147376a7b SHA512 55899c5132541e5f79232ef083b79d3b7ac8b51a937496a729da4b2bcd2b8cdea1c881529a776a524037f29ea878dc1b97c0dccabef38e8e26fd4426b6d562fd
+DIST luau-0.637.tar.gz 1764323 BLAKE2B 7d02ba7641b576ccadb3ff233d73d6887f26d5c1e812fa3f74fbcdf9d8ead01f13a4a9147469d37b27fdcacc39169b1a139328a1aa6c49325585be5aa3582c0b SHA512 a7e0b6bf57770f026f59d66c1f424a9f292850076a07e203f7ab1296c229cb1541aee556bbc3833adc79f5a77520b4575539ffbd1422c044f59d60886feb917d
+EBUILD luau-0.632.ebuild 776 BLAKE2B 6ddab7faf06aab3a3d4f04b8945074e342458df741b3e37e6555b9ebdc019db26541bb75080028292bc233520b58f23d50a872e31e0c7f5a3f3ed0ab092dab9b SHA512 147029f8a5c01e58b390efc9c961cb323ea089b39907f15b6830999b0fc1c90adaddf7a4da86aa6fc8caa51719fda2c034504485b50bd95bb793870c9694651c
EBUILD luau-0.634.ebuild 777 BLAKE2B c5f16047056f2cfe0a8d1b4373f41b27a6929fe0a789cfee41cb9199921cc3eadf1c67296624bf9a831884f062e4acc6caa988c15fb45b3079b7736cf9a2dff4 SHA512 64d8b22353719b73411b324aac8d18beb584605c935fa6b4a3e01839d625c4f51265ed042489ca486bf8d07d54d3f41759128cb77e43fe6bcb601afef4ed3a99
+EBUILD luau-0.635.ebuild 777 BLAKE2B c5f16047056f2cfe0a8d1b4373f41b27a6929fe0a789cfee41cb9199921cc3eadf1c67296624bf9a831884f062e4acc6caa988c15fb45b3079b7736cf9a2dff4 SHA512 64d8b22353719b73411b324aac8d18beb584605c935fa6b4a3e01839d625c4f51265ed042489ca486bf8d07d54d3f41759128cb77e43fe6bcb601afef4ed3a99
+EBUILD luau-0.636.ebuild 777 BLAKE2B c5f16047056f2cfe0a8d1b4373f41b27a6929fe0a789cfee41cb9199921cc3eadf1c67296624bf9a831884f062e4acc6caa988c15fb45b3079b7736cf9a2dff4 SHA512 64d8b22353719b73411b324aac8d18beb584605c935fa6b4a3e01839d625c4f51265ed042489ca486bf8d07d54d3f41759128cb77e43fe6bcb601afef4ed3a99
+EBUILD luau-0.637.ebuild 777 BLAKE2B c5f16047056f2cfe0a8d1b4373f41b27a6929fe0a789cfee41cb9199921cc3eadf1c67296624bf9a831884f062e4acc6caa988c15fb45b3079b7736cf9a2dff4 SHA512 64d8b22353719b73411b324aac8d18beb584605c935fa6b4a3e01839d625c4f51265ed042489ca486bf8d07d54d3f41759128cb77e43fe6bcb601afef4ed3a99
MISC metadata.xml 1077 BLAKE2B 922b79785db23ac7301e2e7a0c66834ae4ccb42466c87b92bd4d9db821830c307fac2192d0010ef224ef64fd83e80a62d47b29f9118432f70ed2340ec9bf49c5 SHA512 7d334c02c73ddc2628a5bebf598d79e9216eb5e4195905ba3a38453261cb25f240b41903042a0fdaad7453ed3cfd04ed2ba382746f38c25036095b019ea4b286
diff --git a/dev-lang/luau/luau-0.632.ebuild b/dev-lang/luau/luau-0.632.ebuild
index ff2804b115f7..ba40b86df707 100644
--- a/dev-lang/luau/luau-0.632.ebuild
+++ b/dev-lang/luau/luau-0.632.ebuild
@@ -17,7 +17,7 @@ else
SRC_URI="https://github.com/luau-lang/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="amd64 ~x86"
fi
LICENSE="MIT"
diff --git a/dev-lang/luau/luau-0.630.ebuild b/dev-lang/luau/luau-0.635.ebuild
index ff2804b115f7..ff2804b115f7 100644
--- a/dev-lang/luau/luau-0.630.ebuild
+++ b/dev-lang/luau/luau-0.635.ebuild
diff --git a/dev-lang/luau/luau-0.618.ebuild b/dev-lang/luau/luau-0.636.ebuild
index ba40b86df707..ff2804b115f7 100644
--- a/dev-lang/luau/luau-0.618.ebuild
+++ b/dev-lang/luau/luau-0.636.ebuild
@@ -17,7 +17,7 @@ else
SRC_URI="https://github.com/luau-lang/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
- KEYWORDS="amd64 ~x86"
+ KEYWORDS="~amd64 ~x86"
fi
LICENSE="MIT"
diff --git a/dev-lang/luau/luau-0.637.ebuild b/dev-lang/luau/luau-0.637.ebuild
new file mode 100644
index 000000000000..ff2804b115f7
--- /dev/null
+++ b/dev-lang/luau/luau-0.637.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Gradually typed embeddable scripting language derived from Lua"
+HOMEPAGE="https://luau-lang.org/
+ https://github.com/luau-lang/luau/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/luau-lang/${PN}.git"
+else
+ SRC_URI="https://github.com/luau-lang/${PN}/archive/${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+DOCS=( CONTRIBUTING.md README.md SECURITY.md )
+
+src_test() {
+ "${BUILD_DIR}/Luau.UnitTest" || die
+ "${BUILD_DIR}/Luau.Conformance" || die
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe "${BUILD_DIR}"/luau{,-analyze,-ast,-compile,-reduce}
+
+ einstalldocs
+}
diff --git a/dev-lang/micropython/Manifest b/dev-lang/micropython/Manifest
index b9a9124ce48b..2c20359ab2fb 100644
--- a/dev-lang/micropython/Manifest
+++ b/dev-lang/micropython/Manifest
@@ -1,6 +1,9 @@
AUX micropython-1.17-exclude-float-parse-tests.patch 525 BLAKE2B f9a3b7c8f625edcac31be6df9dd7936e9f9099995875e55882206241a24c252148b64ec726643d1700ad59d615cabdaa69377d2d303e4572dc2f600255c76930 SHA512 e5c67b461fd132b71ca87325cb4a4fe5608b18d6b1e058746d87d39832c92bcc9673366755292d6cb51fd2770a2ddea0688bcdd7f2052a2c2ee2f180e9b63c69
AUX micropython-1.17-gcc13-build-fix.patch 1826 BLAKE2B 3212ce3d7ef51f9163a143b1a3727770a6c9b049e7a4b386117366af7cc451ac1740cf217772f6b9a6fe531ec9c610bd61b143e428fad19cccf96c295e58b97d SHA512 540a38b845f7e457fa19e8645f62bc1bd7972e29d5414dba76d8f72d9c4279e49f906b04e7e96c2f61a60da9cac4a9d5c2ca688a436376e8c203fe0959249b25
AUX micropython-1.17-prevent-stripping.patch 461 BLAKE2B 9daee505d5c446a3a6756336cfc5fb016053f36f5f567cf35aa6ab9a1b794a28fd92b81a27ffc2ce077a75c422c9b2a957c417b561edcf85ffa5653e1eddec41 SHA512 0cd5a8c499552b0728242af531406e0d26d91f560d7d4b38ea6fd0bc0b43639e77af9e56b6b89cba5d5661131357fa1a714c3fe734e3ab59f60fc63258d00c4c
+AUX micropython-1.23.0-gcc13-build-fix.patch 387 BLAKE2B c33adce39efba0e1acdc3dee8dac3438eac15f12cd79cbb5b3c708fc741f42ff26a477b62cabd71f993fdf29cc0e5dc92bd10f7543c6b93a2b985a6061eebc7e SHA512 29cee711ea5c70fbe6707074fcbc71fac4cabd69939070879bca7f2480d052e136e10542df54a9aa6371479350397518697f42fe56db26ca594ed10dc1410e98
DIST micropython-1.17.tar.xz 56606868 BLAKE2B a6338d173de646764c1573ebabdb9818746a479fd2dd618f9be9955881e3829c4d89da4602934e71655734ec1c6f2150a6ac2c54a5fed9bee998905a00d5c6ea SHA512 8074214040e35ae1ca99721ec442f4cef70fa03380b7662016c55cb3acff9178fc54140c0d818c9581389b4daaade142ecf75b65a2919c666a50255423a39a54
+DIST micropython-1.23.0.tar.xz 85748224 BLAKE2B 3fca138bbe9a676c671812625ac374e82c3c91bb41db32557747ea4d28941de92be80bbf2e642f9094427dbcf6ee285c63ddad66510287074edb716017599384 SHA512 16f065bbbed1469587597193e7131ed9278ca2b22c8614098b5c79060f853db2a5a38ffe85688126cee86a5cb110d74840f50be4b009a687d7d310b54de2b2b5
EBUILD micropython-1.17.ebuild 1429 BLAKE2B 9779c5a596e49068b07a91f635928a842d71927c389ca55403040c84dc6d02510948975112688d4924945bf7c119fc20fba1caf72f4b13ba46b0f7aade5f6ef9 SHA512 f2e43607d1abee316ddb8ea80ffcee828eb9785285574696266c55c3cfa0f5872f731232ee14158dc55970bfe9d9d72a50b4f905558465effc7fe440e558bf6e
+EBUILD micropython-1.23.0.ebuild 1591 BLAKE2B bbf3f6d9de6e09eaceee4320a60f957011dfc5d4fad55f4565f442c9ebccade3a50b3c8acf198129c37c260d59a7654a0224dfdd807c65bea15bc65f800b7c5f SHA512 cfa9bc6fcbe33c1fcff1d36f6b73a1f53ce44c928f2754d2db339a86d1528b316ce62b3555828ead20038a00b90844cc1175b211d37a4810a929a9c62ab17f9e
MISC metadata.xml 1163 BLAKE2B 6edfd7148dc0686e3cfc81e429f8a1643eab9fba88bdf9264adf737ea03761a5e15a3b4994ba901d9655fa419d27ea29adbea7e6fb5ac0d7dfebd1c0115ea885 SHA512 5e658e8b5e364741a4d020f8331effeed21dd4508f6048bb6c192f3721e91cba503846d741d56886714f462f7f68d21e79e9989d46c858ffb71584c7d6ca7c00
diff --git a/dev-lang/micropython/files/micropython-1.23.0-gcc13-build-fix.patch b/dev-lang/micropython/files/micropython-1.23.0-gcc13-build-fix.patch
new file mode 100644
index 000000000000..bf418bcd7421
--- /dev/null
+++ b/dev-lang/micropython/files/micropython-1.23.0-gcc13-build-fix.patch
@@ -0,0 +1,11 @@
+--- a/py/mkrules.mk 2024-06-09 04:22:17.760512031 +1000
++++ b/py/mkrules.mk 2024-06-09 21:02:24.926427912 +1000
+@@ -234,9 +234,6 @@
+ # we may want to compile using Thumb, but link with non-Thumb libc.
+ $(Q)$(CC) -o $@ $^ $(LIB) $(LDFLAGS)
+ ifndef DEBUG
+-ifdef STRIP
+- $(Q)$(STRIP) $(STRIPFLAGS_EXTRA) $@
+-endif
+ endif
+ $(Q)$(SIZE) $$(find $(BUILD) -path "$(BUILD)/build/frozen*.o") $@
diff --git a/dev-lang/micropython/micropython-1.23.0.ebuild b/dev-lang/micropython/micropython-1.23.0.ebuild
new file mode 100644
index 000000000000..a35b07da8c2f
--- /dev/null
+++ b/dev-lang/micropython/micropython-1.23.0.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Python implementation for microcontrollers"
+HOMEPAGE="https://micropython.org https://github.com/micropython/micropython"
+SRC_URI="https://micropython.org/resources/source/${P}.tar.xz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ dev-libs/libffi:=
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-gcc13-build-fix.patch"
+)
+
+src_prepare() {
+ default
+ cd ports/unix || die
+
+ # 1) don't die on compiler warning
+ # 2) remove /usr/local prefix references in favour of /usr
+ # 3) enforce our CFLAGS
+ # 4) enforce our LDFLAGS
+ sed -e 's#-Werror##g;' \
+ -e 's#\/usr\/local#\/usr#g;' \
+ -e "s#^CFLAGS = \(.*\)#CFLAGS = \1 ${CFLAGS}#g" \
+ -e "s#^LDFLAGS = \(.*\)#LDFLAGS = \1 ${LDFLAGS}#g" \
+ -i Makefile || die "can't patch Makefile"
+}
+
+src_compile() {
+ # Build the cross-compiler first. Build fails without this.
+ einfo ""
+ einfo "Building the mpy-crosscompiler."
+ einfo ""
+ cd "${S}/mpy-cross" || die
+ emake CC="$(tc-getCC)"
+
+ # Finally, build the unix port.
+ einfo ""
+ einfo "Building the micropython unix port."
+ einfo ""
+ cd "${S}/ports/unix" || die
+ emake CC="$(tc-getCC)"
+}
+
+src_test() {
+ cd ports/unix || die
+ emake CC="$(tc-getCC)" test
+}
+
+src_install() {
+ pushd ports/unix > /dev/null || die
+ emake CC="$(tc-getCC)" DESTDIR="${D}" install
+ popd > /dev/null || die
+
+ # remove .git files
+ find tools -type f -name '.git*' -exec rm {} \; || die
+
+ dodoc -r tools
+ einstalldocs
+}
diff --git a/dev-lang/nasm/Manifest b/dev-lang/nasm/Manifest
index ac47ec1a3834..963fa865659e 100644
--- a/dev-lang/nasm/Manifest
+++ b/dev-lang/nasm/Manifest
@@ -6,5 +6,5 @@ DIST nasm-2.16.02.tar.xz 1044824 BLAKE2B daa3585e9aef3c388e3b577a52453b31aaa7f13
DIST nasm-2.16.03.tar.xz 1032388 BLAKE2B 742cbf330341fde9f778d8ca13e8c06199f48796d47028ac973d39e3d9e434450cdfebe89f6ab248d372bdaeb0c88a25eb7153a39b66fc05e770523d4c9e11e9 SHA512 0c706e41a9c33e1ac3bad5056e8bf8cbcd51785b551a6e34ce7d0d723df8eaab8603a033e89b3dcda1004b558f9e9ef3196691500f10d8201bf47a323a516f84
EBUILD nasm-2.16.01-r1.ebuild 1581 BLAKE2B 0dcfc4b92ff0462b0e21c6b5f4144098f79130bd968f2808f3ce5afca27e23638496ee276a6cfdb81ffd85fd7e314db8036be60cec1db7f4b398aeb9f8cf0a17 SHA512 06d03935a76a8bb160914f6a0c76137b60364451d7275ceb613dc5bfb029044ede6e87d6a9cae5e25be3d5ba06f3aa9ae306786ba80f078f1e243f90181a6347
EBUILD nasm-2.16.02.ebuild 1951 BLAKE2B 790570970fa932ecce625160956a727a6ba19bac514ec8732267a581c6579a73782c22fb80a5873ffe3d68f65709547d4b29f2378cd87546578d20bf1a811714 SHA512 745fb377ef4bb08c263119c6835e5e8f672d975056a8d0d2b1edd2ac2fb1bde7f670b7ecdcdf8162333dfb776e41f59c31f9c42cde025f77890cef35d2fdfa0e
-EBUILD nasm-2.16.03.ebuild 2001 BLAKE2B 24fdb5670d037e5e15c847abf9db2186c39ed6dc67ac125d133347a64131d5757358e609d60c07eedaeee660eb193a41ef33deb90020a471c05821142c095974 SHA512 d652343f4a71c0c2ca0fcd57541d7c4dadf74b13d0ec58e3d7418819f3511af03b1628df7ad15da422f5bab6aa507ad102c0095940620e384225adb50c6ff52c
-MISC metadata.xml 879 BLAKE2B 17d2ca1a78ed46d24fe75188387da9c03dafcd6aacf0db7c82fdee39ad766dac23010b6c51c90c08a3e591e93589a29a151ac5bc52fd6b3911504f2f124da6b7 SHA512 d6e921fc48851be64d1dfc0be200a1a86842e5d4d00a9f4551e7ca76a91272dc5f1f01928d3656a5e340283c83f7283bb9e7094c0309406d9392d57048239563
+EBUILD nasm-2.16.03.ebuild 2037 BLAKE2B aa00f4133e2102479a06196e2feefac09ddabf40f2135515a8b5ac0faba4eddfa06f8ac142b94a98ba20a70396cd0c110be9fd07a7d28f2400c3f067a450a9d1 SHA512 926b22fc1e4c5065f88612b241095e32ea7a7b07b0f810d031322ecd1e9d72af15eac5bfe54c8ce6b8a5afcfd08b99d985ec958ee83de17c59186fbe3198b056
+MISC metadata.xml 882 BLAKE2B be1a98bd73ea5160613c66b00d6da2925e20097f02e449dc2394ef13298a1f23321d83e178bf3592fdcb5d4c276617674fac5d323e057035c6c3df184d048efd SHA512 437cd65249042f3437b27d50bea9ebd9ac2360b0600365751f6ffddd3d31c7eaed371a0b364668812e79bb1cfb64917069b62cb6939699270f26bc0474c9c917
diff --git a/dev-lang/nasm/metadata.xml b/dev-lang/nasm/metadata.xml
index af856ea306f0..4c45454f107f 100644
--- a/dev-lang/nasm/metadata.xml
+++ b/dev-lang/nasm/metadata.xml
@@ -2,8 +2,8 @@
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>matthew@gentoo.org</email>
- <name>Matthew Smith</name>
+ <email>arthurzam@gentoo.org</email>
+ <name>Arthur Zamarin</name>
</maintainer>
<longdescription>
The Netwide Assembler, NASM, is an 80x86 assembler designed for portability
diff --git a/dev-lang/nasm/nasm-2.16.03.ebuild b/dev-lang/nasm/nasm-2.16.03.ebuild
index 4c03189e21b1..472488d3e511 100644
--- a/dev-lang/nasm/nasm-2.16.03.ebuild
+++ b/dev-lang/nasm/nasm-2.16.03.ebuild
@@ -12,8 +12,8 @@ S="${WORKDIR}"/${P/_}
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ia64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
-IUSE="doc lto"
+KEYWORDS="amd64 arm64 ~ia64 ~loong ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
QA_CONFIG_IMPL_DECL_SKIP=(
# Windows.
@@ -75,10 +75,9 @@ src_prepare() {
}
src_configure() {
- local myconfargs=(
- $(use_enable lto)
- )
- econf "${myconfargs[@]}"
+ # --enable-lto just appends -flto to *FLAGS
+ # so let users just use lto through normal make.conf *FLAGS
+ econf
}
src_compile() {
diff --git a/dev-lang/nim/Manifest b/dev-lang/nim/Manifest
index fe5baf81cf5d..6dac2192a2c9 100644
--- a/dev-lang/nim/Manifest
+++ b/dev-lang/nim/Manifest
@@ -5,5 +5,5 @@ DIST nim-2.0.4.tar.xz 7620508 BLAKE2B cf7c737d734c5a468ac9229fb021bcd252c5c4f20a
DIST nim-2.0.6.tar.xz 7668088 BLAKE2B 1cc2b3be355b236b467fa6629747de55b60b6d2f3e9d8bc584fa4f30ba842d68a0db984aff234df1299b0a782af1d464382bb37fa62c0c7a952e667bf0d3c3be SHA512 9668b34decb55fd27f0edb8c6dcdd2d8dbed00f71e8ce5c177422aedbcc359f4b943b29a38875f4715c1903a32b8388e2a4662d5ceb301349b23eb2277dbde1e
DIST nim-atlas-0.8.0.tar.gz 59097 BLAKE2B 231b238ac3b15cc2c2d9ad927f80ae72d8ae4c649277515f32df6cc04275ccd38db5307d627572af547501e6522c06c86dc279dc3e13b5385f14e24032f6fe69 SHA512 747c13e2c5bd45a1dc6c1426f8c7637f638ada9dd4c9aa3edf4ef8367060e73226dc4bcde6380fac25ed47ebf4097fd223c72fadc3cceba8c71dd0f0571e47eb
EBUILD nim-2.0.4.ebuild 4408 BLAKE2B 290abe3fe80d779a72c07f81d4e6d7d93b569c003bcd1f85b0e9309345373edf5acf0090be8c8d127635e6d4b653a36fc0724038fe1708bdc17576a4c69f4c03 SHA512 b8fc6f49eb8921afe3bb731f2323567720ea04daac05e4a352ba8cfec82f0bf6af4872c5e3c7d596a4dacc77da45f3bea3b5d3a150857920d84bf28c7c505a53
-EBUILD nim-2.0.6.ebuild 4406 BLAKE2B 00439d84d1f76331bac382f0fdd258e89ad6c66262071bad61bf201605f74da30e02a8f7f67a9db8af1464798b10098ad145c993b167e84adc927f0a91c17a95 SHA512 af8b9f0637c8dd3b8a280ce1d145f32e1524689e20120840894f419e5e261433c76770120fa0ea434ce70f99e8f594a1008b03e585087d5620ec98a045a8f185
+EBUILD nim-2.0.6.ebuild 4405 BLAKE2B f33ab0ba4705016172352572f6d9578274b504ca0920289e764a2988d46a2cd290e905166577755c594732b3cfaebccbb90dcd3414680199e4012db27de5ee74 SHA512 9d42ca7771522685af89dbf520d7e43b603351c4015775c12d9560b868ba30f4ee2ff1a86930625d4d016e8e3d8e65c67971ecb7eea2f5212a62b72576f8aad9
MISC metadata.xml 2093 BLAKE2B 250d27e71538be674ff7f32fe55089fca33f0d6ab55fdbe2b0f858f3d4373e729f273c16b2bf0bc3265be4289e7de1438096bf60e69bd0100e126fc5cc6173eb SHA512 74a188f13cc0653aa30d0c18126ed1cfb11d4325d71ffca6af03ad62b135796cd64d269e2ea85280cd1e486b527947b287eee4db648600451336e323882ff0e3
diff --git a/dev-lang/nim/nim-2.0.6.ebuild b/dev-lang/nim/nim-2.0.6.ebuild
index 524cd020c819..d73e284e011c 100644
--- a/dev-lang/nim/nim-2.0.6.ebuild
+++ b/dev-lang/nim/nim-2.0.6.ebuild
@@ -18,7 +18,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
+KEYWORDS="amd64 ~arm ~x86"
IUSE="test-js test"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest
index 8bccd8fd2d11..40d67d8c2438 100644
--- a/dev-lang/php/Manifest
+++ b/dev-lang/php/Manifest
@@ -10,18 +10,10 @@ AUX php-capstone-optional.patch 2497 BLAKE2B f23236130be88d28d933d5482f1925c4e32
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.26.tar.xz 11809448 BLAKE2B e1d50f1de572580a207586b3c3b57081f7b9f1b680ffe8f9e82c88c9285af117dd7e9e2576fcb13119176cb9cd02b39481b6f40e9a1df81aa90b8c4d3e59e4b1 SHA512 5bc40077e57c0fccdf17810d688baea416f22ac248bb01b73d2e2590fc4cfabc7001c1c3833281a60870c74178f7b06cbc85474eba695aabf969ad0081a98417
-DIST php-8.1.28.tar.xz 11848504 BLAKE2B a5deb596176bcd69c33f239e752ac75e2da1538efe6d2b321802c50ea250214c6d9b59e8a5cb74f97f37c917159ef4fde4ccda4403d6e0a6fe751a19b7687472 SHA512 d56ecac164e00e9514cd3c6c8c453598b323118dc7d7ae7cc14ba0847d50a2e455b2391f52e0d81af325b02d8f73a7d2ed66bf66d068dac4a496d777c83a398f
DIST php-8.1.29.tar.xz 11826292 BLAKE2B 471f85504531c61e534c857a854de2ce9935b263e002deee19c4508390f6b2a11f89a02f55a90d660ee8d537b22a45db057e24373fb17fd2edf45f6e458f0196 SHA512 fd4f75224f71111a4cc40b3015ae70ac57a623326a3299da9ab8bd9dfad4ea27ff345d0eb75f1407d183207e763d372d738bbd8d217d01ec1414d29a547e8ba7
-DIST php-8.2.15.tar.xz 12075384 BLAKE2B cef15868968538e232093bd66d862a88f0960325f2274eaf53a3d114d01787c58844aa3bce8bc09a723acd95801e1935a60e79fc189317e7f1ba19196dbfcdc4 SHA512 56c94bcafe07cf4bf5eb5fc6c67fcf16654c44a262ffb18188fc3ffac5e9bb11d39093bfb26c26bc8d2dec7e530d1a175180909262c9b5c30130cf5a4a293166
-DIST php-8.2.18.tar.xz 12089400 BLAKE2B 82a4ef0aee7fa66018cb528e6fc2da40f67be2a75449ed85c54881e6725cfa9fe82d6d5655c12d2e92f3fd685479367b7c038df5af0d7a0a122d627c78c50514 SHA512 8bdd6e5aa19dac80745d258a43f7330a3096d47dc66cbef0054b8f9eb9ace5e87d841a4001185a783241a416975753c922425e977f50b2716ce643b6a7bf351f
DIST php-8.2.20.tar.xz 12097568 BLAKE2B 1e38e48ea9c28abfe2c3bd860bc5d959fbe327669c007f2e2a665ae14f5a045f6ad8a0a972f32618f88ea1ff3636c2692504478b5b094b48404d6c4a214f863b SHA512 c659ed4809b6507aa428b483c85c7322815ac9d7d8e4bfe575513a5e69c5a680b8d089fd98a19f83d3a00df3de61468809f21408455913aa24d519776e44abc5
DIST php-8.3.9.tar.xz 12470616 BLAKE2B 44cc360c91b121f6fe1c768134d2e5e355fe1ab23ebefb98e60e878755e79b0bd31fa46a435eb5c3dabf034fb7b4bd785db014dc63f40331a6b168a14d849571 SHA512 f6291b71cf2c66f9effc2a8a7b0365364481cd5532551161194376893074f1f20dc7e9dbd628727e3b07460ac63b6d38bf4871bf4976e2b3b290f230b0111360
-EBUILD php-8.1.26-r1.ebuild 21992 BLAKE2B 6a2d19aefc689f44603bf95a14b21e345ae739a5dd66a620a065f36e4b72233753a8144f41434211de28ee49ac0e3c0dda3dd712749215a721007126104cddfc SHA512 928b5d071618a69d398c15223c8885924c5dbe6581bacc93f041a27c6caf4384ae43e0aeeb6f2bf31582b5d1838a6656a8e6cb24d18ddddf44e9df1e18694c93
-EBUILD php-8.1.28.ebuild 22549 BLAKE2B d09d8749f4daa08f6aae974f79a0726dca5890058d7678e378da48c330a69c9e71b9f8468ae6924d2369aa56db164fb88c98928729996792c6dc9350232a5937 SHA512 0928681d7a843f97c4084fd6050407eadb3253eb3b33bfb76725feaad9ef2e3b6763a66cdd174e689cf8b4606ef37f29628e073d990b8526b6ae6cd19fd58dde
EBUILD php-8.1.29.ebuild 22547 BLAKE2B b087d99d25da6da7a6cea1619782fc66f926b8f06ae2fca802b9a4ab63699578bccfd46f50bfd9a916df68f2028b6267694a46c423c580ed836de9f1a054f7a7 SHA512 e46a9f3a296c8052a0ef7db8de88ee69837065cfb91c51f2639ebc2b49260d4894b83d1f27dbcb259f82d6e9daa93d86ec06656af49868ff9ffeb0b9a0840384
-EBUILD php-8.2.15.ebuild 25370 BLAKE2B 48ace575c7542824739c35e836e7213008d355214c0ad77e358e4e70887aa76a990f0bc4a583097a1cd16c6b37f7da6ca6fe20b419d7ca628838be0f89557d80 SHA512 266d3c538548bd124a828eaa4ab2b9f4daaf954005f589f83fc4b66bb1a6b7a980c2fbf056d8a86fc5c956ea0231fd76deca57861661274c3693b561397c1e1d
-EBUILD php-8.2.18.ebuild 25786 BLAKE2B b6c8acb63663a8cc0e4adc7cc79b285e95add4308a5686523d3808b5ac21ed075091cddf17854733fa429ec8ff0210a580352d727358fd281acb7238d18fad44 SHA512 0480657861f695fd3ab011720c7dfdbd59c9fcb297dcf1e72c10877235e2e131c12bfa184268a6602834b9a5502befebd569d4184ba7a3f35166c89e2959fdfd
-EBUILD php-8.2.20.ebuild 26473 BLAKE2B ac859f939dc6d05ec1f0892f99fbf531431ce4cb667c20dbb4d83b194e70f341ed44483c93d985076a8c548ef86bee3665411fa82ba4e5089906da95b83d0515 SHA512 e257b6ec490df75935c4c3fd0cda4b2e3f74a8104f317af2e4dc505f705db32afc9242edc9a19f747b3f20962ef803678e4f56ef1738596438541ebf85868876
+EBUILD php-8.2.20.ebuild 26562 BLAKE2B 37bf48f7beb96e95c97504adb1db1f2f9baefc726728d15676e42789bee44480084c6bc24caa07ec89b7e551a1fdc36cdea56b6c933c292cfcc89c2398ab6a9b SHA512 96801bf89f12256b192d646e439c3fdf43eb4420d6c207cf6387cadb6c1f75a72f75c36758710000a023e38f40fecb4e4e654356f381318486d1303bdbf1a30a
EBUILD php-8.3.9.ebuild 24491 BLAKE2B c15272414cfb9a9ac441881f2d9b213fdabcaf8191086338e39bbc8d0f16bc04e055b28ad737872b5d01c83e0dfdaa72485f5eda1baa48b5a24284db0589b98c SHA512 edf6fab8192fd2ea7f4bb26a92270deaf7c64951e6f30dda6bf7d1df9a6acf71dc298099f943118f10ce590c05934406b23483513a005616b3b1b5116b4fc9c1
MISC metadata.xml 4249 BLAKE2B 11f9270fbc0cae280ec3ec62c9e6acfc643f4c7952822537664e8bcdbdfed64805b0e83fcbfb83111123745fadf64b276b51e1e27c9b5eb38ef8ffc30965d12b SHA512 39c59d31de21a66ca55a4816bebd901c8f2b28b7d1340605845c535cc979bca4d8641280bf45782d5d3eb94820e054e7f52491a23a4d1cf692774e11becc55c1
diff --git a/dev-lang/php/php-8.1.26-r1.ebuild b/dev-lang/php/php-8.1.26-r1.ebuild
deleted file mode 100644
index 4b24fb08bbe5..000000000000
--- a/dev-lang/php/php-8.1.26-r1.ebuild
+++ /dev/null
@@ -1,762 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-WANT_AUTOMAKE="none"
-
-inherit flag-o-matic multilib systemd autotools
-
-DESCRIPTION="The PHP language runtime engine"
-HOMEPAGE="https://www.php.net/"
-SRC_URI="https://www.php.net/distributions/${P}.tar.xz"
-
-LICENSE="PHP-3.01
- BSD
- Zend-2.0
- bcmath? ( LGPL-2.1+ )
- fpm? ( BSD-2 )
- gd? ( gd )
- unicode? ( BSD-2 LGPL-2.1 )"
-
-SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-
-# We can build the following SAPIs in the given order
-SAPIS="embed cli cgi fpm apache2 phpdbg"
-
-# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
-IUSE="${IUSE}
- ${SAPIS/cli/+cli}
- threads"
-
-IUSE="${IUSE} acl apparmor argon2 avif bcmath berkdb bzip2 calendar
- cdb cjk coverage +ctype curl debug
- enchant exif ffi +fileinfo +filter firebird
- +flatfile ftp gd gdbm gmp +iconv imap inifile
- intl iodbc ipv6 +jit kerberos ldap ldap-sasl libedit lmdb
- mhash mssql mysql mysqli nls
- oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
- readline selinux +session session-mm sharedmem
- +simplexml snmp soap sockets sodium spell sqlite ssl
- sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode webp
- +xml xmlreader xmlwriter xpm xslt zip zlib"
-
-# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
-# The Oracle instant client provides its own incompatible ldap library.
-REQUIRED_USE="
- || ( cli cgi fpm apache2 embed phpdbg )
- avif? ( gd zlib )
- cli? ( ^^ ( readline libedit ) )
- !cli? ( ?? ( readline libedit ) )
- truetype? ( gd zlib )
- webp? ( gd zlib )
- cjk? ( gd zlib )
- exif? ( gd zlib )
- xpm? ( gd zlib )
- gd? ( zlib )
- simplexml? ( xml )
- soap? ( xml )
- xmlreader? ( xml )
- xmlwriter? ( xml )
- xslt? ( xml )
- ldap-sasl? ( ldap )
- oci8-instant-client? ( !ldap )
- qdbm? ( !gdbm )
- session-mm? ( session !threads )
- mysql? ( || ( mysqli pdo ) )
- firebird? ( pdo )
- mssql? ( pdo )
-"
-
-RESTRICT="!test? ( test )"
-
-# The supported (that is, autodetected) versions of BDB are listed in
-# the ./configure script. Other versions *work*, but we need to stick to
-# the ones that can be detected to avoid a repeat of bug #564824.
-COMMON_DEPEND="
- >=app-eselect/eselect-php-0.9.7[apache2?,fpm?]
- >=dev-libs/libpcre2-10.30[jit?,unicode]
- virtual/libcrypt:=
- fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) )
- apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
- argon2? ( app-crypt/argon2:= )
- avif? ( media-libs/libavif:= )
- berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) )
- bzip2? ( app-arch/bzip2:0= )
- cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- coverage? ( dev-util/lcov )
- curl? ( >=net-misc/curl-7.29.0 )
- enchant? ( app-text/enchant:2 )
- ffi? ( >=dev-libs/libffi-3.0.11:= )
- firebird? ( dev-db/firebird )
- gd? ( media-libs/libjpeg-turbo:0= media-libs/libpng:0= )
- gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
- gmp? ( dev-libs/gmp:0= )
- iconv? ( virtual/libiconv )
- imap? ( net-libs/c-client[kerberos=,ssl=] )
- intl? ( dev-libs/icu:= )
- kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11:= )
- ldap-sasl? ( dev-libs/cyrus-sasl )
- libedit? ( dev-libs/libedit )
- lmdb? ( dev-db/lmdb:= )
- mssql? ( dev-db/freetds[mssql] )
- nls? ( sys-devel/gettext )
- oci8-instant-client? ( dev-db/oracle-instantclient[sdk] )
- odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) )
- postgres? ( >=dev-db/postgresql-9.1:* )
- qdbm? ( dev-db/qdbm )
- readline? ( sys-libs/readline:0= )
- session-mm? ( dev-libs/mm )
- snmp? ( >=net-analyzer/net-snmp-5.2 )
- sodium? ( dev-libs/libsodium:=[-minimal(-)] )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? ( >=dev-libs/openssl-1.0.2:0= )
- tidy? ( app-text/htmltidy )
- tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
- unicode? ( dev-libs/oniguruma:= )
- webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.9.0 )
- xpm? ( x11-libs/libXpm )
- xslt? ( dev-libs/libxslt )
- zip? ( >=dev-libs/libzip-1.2.0:= )
- zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
-"
-
-IDEPEND=">=app-eselect/eselect-php-0.9.7[apache2?,fpm?]"
-
-RDEPEND="${COMMON_DEPEND}
- virtual/mta
- fpm? (
- selinux? ( sec-policy/selinux-phpfpm )
- systemd? ( sys-apps/systemd ) )"
-
-# Bison isn't actually needed when building from a release tarball
-# However, the configure script will warn if it's absent or if you
-# have an incompatible version installed. See bug 593278.
-DEPEND="${COMMON_DEPEND}
- app-arch/xz-utils
- >=sys-devel/bison-3.0.1"
-
-BDEPEND="virtual/pkgconfig"
-
-PHP_MV="$(ver_cut 1)"
-
-PATCHES=(
- "${FILESDIR}/php-iodbc-header-location.patch"
- "${FILESDIR}/php-capstone-optional.patch"
-)
-
-php_install_ini() {
- local phpsapi="${1}"
-
- # work out where we are installing the ini file
- php_set_ini_dir "${phpsapi}"
-
- # Always install the production INI file, bug 611214.
- local phpinisrc="php.ini-production-${phpsapi}"
- cp php.ini-production "${phpinisrc}" || die
-
- # default to /tmp for save_path, bug #282768
- sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
-
- # Set the extension dir
- sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
- -i "${phpinisrc}" || die
-
- # Set the include path to point to where we want to find PEAR packages
- sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
-
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- newins "${phpinisrc}" php.ini
-
- elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
- elog
-
- dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
- dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
-
- if use opcache; then
- elog "Adding opcache to $PHP_EXT_INI_DIR"
- echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
- "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
- dosym "../ext/opcache.ini" \
- "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
- fi
-
- # SAPI-specific handling
- if [[ "${sapi}" == "fpm" ]] ; then
- einfo "Installing FPM config files php-fpm.conf and www.conf"
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- doins sapi/fpm/php-fpm.conf
- insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
- doins sapi/fpm/www.conf
- fi
-
- dodoc php.ini-{development,production}
-}
-
-php_set_ini_dir() {
- PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
- PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
- PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
-}
-
-src_prepare() {
- default
-
- # In php-7.x, the FPM pool configuration files have been split off
- # of the main config. By default the pool config files go in
- # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
- # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
- # we'll install the pool configuration file "www.conf" there.
- php_set_ini_dir fpm
- sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
- sapi/fpm/php-fpm.conf.in \
- || die 'failed to move the include directory in php-fpm.conf'
-
- # Emulate buildconf to support cross-compilation
- rm -fr aclocal.m4 autom4te.cache config.cache \
- configure main/php_config.h.in || die
- eautoconf --force
- eautoheader
-
- # Remove false positive test failures
- # stream_isatty fails due to portage redirects
- # curl tests here fail for network sandbox issues
- # session tests here fail because we set the session directory to $T
- rm tests/output/stream_isatty_err.phpt \
- tests/output/stream_isatty_out-err.phpt \
- tests/output/stream_isatty_out.phpt \
- ext/curl/tests/bug76675.phpt \
- ext/curl/tests/bug77535.phpt \
- ext/curl/tests/curl_error_basic.phpt \
- ext/session/tests/bug74514.phpt \
- ext/session/tests/bug74936.phpt || die
-
-}
-
-src_configure() {
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
-
- # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527
- filter-lto
-
- # The php-fpm config file wants localstatedir to be ${EPREFIX}/var
- # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
- local our_conf=(
- --prefix="${PHP_DESTDIR}"
- --mandir="${PHP_DESTDIR}/man"
- --infodir="${PHP_DESTDIR}/info"
- --libdir="${PHP_DESTDIR}/lib"
- --with-libdir="$(get_libdir)"
- --localstatedir="${EPREFIX}/var"
- --without-pear
- --without-valgrind
- $(use_enable threads zts)
- )
-
- our_conf+=(
- $(use_with apparmor fpm-apparmor)
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
- $(use_with avif)
- $(use_enable bcmath)
- $(use_with bzip2 bz2 "${EPREFIX}/usr")
- $(use_enable calendar)
- $(use_enable coverage gcov)
- $(use_enable ctype)
- $(use_with curl)
- $(use_enable xml dom)
- $(use_with enchant)
- $(use_enable exif)
- $(use_with ffi)
- $(use_enable fileinfo)
- $(use_enable filter)
- $(use_enable ftp)
- $(use_with nls gettext "${EPREFIX}/usr")
- $(use_with gmp gmp "${EPREFIX}/usr")
- $(use_with mhash mhash "${EPREFIX}/usr")
- $(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr"))
- $(use_enable intl)
- $(use_enable ipv6)
- $(use_with kerberos)
- $(use_with xml libxml)
- $(use_enable unicode mbstring)
- $(use_with ssl openssl)
- $(use_enable pcntl)
- $(use_enable phar)
- $(use_enable pdo)
- $(use_enable opcache)
- $(use_with postgres pgsql "${EPREFIX}/usr")
- $(use_enable posix)
- $(use_with spell pspell "${EPREFIX}/usr")
- $(use_enable simplexml)
- $(use_enable sharedmem shmop)
- $(use_with snmp snmp "${EPREFIX}/usr")
- $(use_enable soap)
- $(use_enable sockets)
- $(use_with sodium)
- $(use_with sqlite sqlite3)
- $(use_enable sysvipc sysvmsg)
- $(use_enable sysvipc sysvsem)
- $(use_enable sysvipc sysvshm)
- $(use_with tidy tidy "${EPREFIX}/usr")
- $(use_enable tokenizer)
- $(use_enable xml)
- $(use_enable xmlreader)
- $(use_enable xmlwriter)
- $(use_with xslt xsl)
- $(use_with zip)
- $(use_with zlib zlib "${EPREFIX}/usr")
- $(use_enable debug)
- )
-
- # DBA support
- if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
- || use qdbm || use lmdb || use tokyocabinet ; then
- our_conf+=( "--enable-dba" )
- fi
-
- # DBA drivers support
- our_conf+=(
- $(use_with cdb)
- $(use_with berkdb db4 "${EPREFIX}/usr")
- $(use_enable flatfile)
- $(use_with gdbm gdbm "${EPREFIX}/usr")
- $(use_enable inifile)
- $(use_with qdbm qdbm "${EPREFIX}/usr")
- $(use_with tokyocabinet tcadb "${EPREFIX}/usr")
- $(use_with lmdb lmdb "${EPREFIX}/usr")
- )
-
- # Support for the GD graphics library
- our_conf+=(
- $(use_with truetype freetype)
- $(use_enable cjk gd-jis-conv)
- $(use_with gd jpeg)
- $(use_with xpm)
- $(use_with webp)
- )
- # enable gd last, so configure can pick up the previous settings
- our_conf+=( $(use_enable gd) )
-
- # IMAP support
- if use imap ; then
- our_conf+=(
- $(use_with imap imap "${EPREFIX}/usr")
- $(use_with ssl imap-ssl "${EPREFIX}/usr")
- )
- fi
-
- # LDAP support
- if use ldap ; then
- our_conf+=(
- $(use_with ldap ldap "${EPREFIX}/usr")
- $(use_with ldap-sasl)
- )
- fi
-
- # MySQL support
- our_conf+=( $(use_with mysqli mysqli "mysqlnd") )
-
- local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
- if use mysql || use mysqli ; then
- our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
- fi
-
- # ODBC support
- if use odbc && use iodbc ; then
- our_conf+=(
- --without-unixODBC
- --with-iodbc
- $(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr")
- )
- elif use odbc ; then
- our_conf+=(
- --with-unixODBC="${EPREFIX}/usr"
- --without-iodbc
- $(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr")
- )
- else
- our_conf+=(
- --without-unixODBC
- --without-iodbc
- --without-pdo-odbc
- )
- fi
-
- # Oracle support
- our_conf+=( $(use_with oci8-instant-client oci8) )
-
- # PDO support
- if use pdo ; then
- our_conf+=(
- $(use_with mssql pdo-dblib "${EPREFIX}/usr")
- $(use_with mysql pdo-mysql "mysqlnd")
- $(use_with postgres pdo-pgsql)
- $(use_with sqlite pdo-sqlite)
- $(use_with firebird pdo-firebird "${EPREFIX}/usr")
- $(use_with oci8-instant-client pdo-oci)
- )
- fi
-
- # readline/libedit support
- our_conf+=(
- $(use_with readline readline "${EPREFIX}/usr")
- $(use_with libedit)
- )
-
- # Session support
- if use session ; then
- our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
- else
- our_conf+=( $(use_enable session) )
- fi
-
- # Use pic for shared modules such as apache2's mod_php
- our_conf+=( --with-pic )
-
- # we use the system copy of pcre
- # --with-external-pcre affects ext/pcre
- our_conf+=(
- --with-external-pcre
- $(use_with jit pcre-jit)
- )
-
- # Catch CFLAGS problems
- # Fixes bug #14067.
- # Changed order to run it in reverse for bug #32022 and #12021.
- replace-cpu-flags "k6*" "i586"
-
- # Cache the ./configure test results between SAPIs.
- our_conf+=( --cache-file="${T}/config.cache" )
-
- # Support user-passed configuration parameters
- our_conf+=( ${EXTRA_ECONF:-} )
-
- # Support the Apache2 extras, they must be set globally for all
- # SAPIs to work correctly, especially for external PHP extensions
-
- local one_sapi
- local sapi
- mkdir -p "${WORKDIR}/sapis-build" || die
- for one_sapi in $SAPIS ; do
- use "${one_sapi}" || continue
- php_set_ini_dir "${one_sapi}"
-
- # The BUILD_DIR variable is used to determine where to output
- # the files that autotools creates. This was all originally
- # based on the autotools-utils eclass.
- BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
- cp -a "${S}" "${BUILD_DIR}" || die
- cd "${BUILD_DIR}" || die
-
- local sapi_conf=(
- --with-config-file-path="${PHP_INI_DIR}"
- --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
- )
-
- for sapi in $SAPIS ; do
- case "$sapi" in
- cli|cgi|embed|fpm|phpdbg)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( "--enable-${sapi}" )
- if [[ "fpm" == "${sapi}" ]] ; then
- sapi_conf+=(
- $(use_with acl fpm-acl)
- $(use_with systemd fpm-systemd)
- )
- fi
- else
- sapi_conf+=( "--disable-${sapi}" )
- fi
- ;;
-
- apache2)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
- else
- sapi_conf+=( --without-apxs2 )
- fi
- ;;
- esac
- done
-
- # Construct the $myeconfargs array by concatenating $our_conf
- # (the common args) and $sapi_conf (the SAPI-specific args).
- local myeconfargs=( "${our_conf[@]}" )
- myeconfargs+=( "${sapi_conf[@]}" )
-
- pushd "${BUILD_DIR}" > /dev/null || die
- econf "${myeconfargs[@]}"
- popd > /dev/null || die
- done
-}
-
-src_compile() {
- # snmp seems to run during src_compile, too (bug #324739)
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- local sapi
- for sapi in ${SAPIS} ; do
- if use "${sapi}"; then
- cd "${WORKDIR}/sapis-build/$sapi" || \
- die "Failed to change dir to ${WORKDIR}/sapis-build/$1"
- emake
- fi
- done
-}
-
-src_install() {
- # see bug #324739 for what happens when we don't have that
- addpredict /usr/share/snmp/mibs/.index #nowarn
-
- # grab the first SAPI that got built and install common files from there
- local first_sapi="", sapi=""
- for sapi in $SAPIS ; do
- if use $sapi ; then
- first_sapi=$sapi
- break
- fi
- done
-
- # Makefile forgets to create this before trying to write to it...
- dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
-
- # Install php environment (without any sapis)
- cd "${WORKDIR}/sapis-build/$first_sapi" || die
- emake INSTALL_ROOT="${D}" \
- install-build install-headers install-programs
-
- local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
-
- # Create the directory where we'll put version-specific php scripts
- keepdir "/usr/share/php${PHP_MV}"
-
- local file=""
- local sapi_list=""
-
- for sapi in ${SAPIS}; do
- if use "${sapi}" ; then
- einfo "Installing SAPI: ${sapi}"
- cd "${WORKDIR}/sapis-build/${sapi}" || die
-
- if [[ "${sapi}" == "apache2" ]] ; then
- # We're specifically not using emake install-sapi as libtool
- # may cause unnecessary relink failures (see bug #351266)
- insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
- newins ".libs/libphp$(get_libname)" \
- "libphp${PHP_MV}$(get_libname)"
- keepdir "/usr/$(get_libdir)/apache2/modules"
- else
- # needed each time, php_install_ini would reset it
- local dest="${PHP_DESTDIR#${EPREFIX}}"
- into "${dest}"
- case "$sapi" in
- cli)
- source="sapi/cli/php"
- # Install the "phar" archive utility.
- if use phar ; then
- emake INSTALL_ROOT="${D}" install-pharcmd
- dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}"
- fi
- ;;
- cgi)
- source="sapi/cgi/php-cgi"
- ;;
- fpm)
- source="sapi/fpm/php-fpm"
- ;;
- embed)
- source="libs/libphp$(get_libname)"
- ;;
- phpdbg)
- source="sapi/phpdbg/phpdbg"
- ;;
- *)
- die "unhandled sapi in src_install"
- ;;
- esac
-
- if [[ "${source}" == *"$(get_libname)" ]]; then
- dolib.so "${source}"
- else
- dobin "${source}"
- local name="$(basename ${source})"
- dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}"
- fi
- fi
-
- php_install_ini "${sapi}"
-
- # construct correct SAPI string for php-config
- # thanks to ferringb for the bash voodoo
- if [[ "${sapi}" == "apache2" ]]; then
- sapi_list="${sapi_list:+${sapi_list} }apache2handler"
- else
- sapi_list="${sapi_list:+${sapi_list} }${sapi}"
- fi
- fi
- done
-
- # Installing opcache module
- if use opcache ; then
- into "${PHP_DESTDIR#${EPREFIX}}"
- dolib.so "modules/opcache$(get_libname)"
- fi
-
- # Install env.d files
- newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
- sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
- sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
-
- # set php-config variable correctly (bug #278439)
- sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
- "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
-
- if use fpm ; then
- if use systemd; then
- systemd_newunit "${FILESDIR}/php-fpm_at.service" \
- "php-fpm@${SLOT}.service"
- else
- systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
- "php-fpm@${SLOT}.service"
- fi
- fi
-}
-
-src_test() {
- echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
- PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php"
- if [[ ! -x "${PHP_BIN}" ]] ; then
- ewarn "Test phase requires USE=cli, skipping"
- return
- else
- export TEST_PHP_EXECUTABLE="${PHP_BIN}"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
- export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
- export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
- fi
-
- SKIP_ONLINE_TESTS=1 REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
- "session.save_path=${T}" \
- "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \
- "session.save_path=${T}"
-
- for name in ${EXPECTED_TEST_FAILURES}; do
- mv "${name}.out" "${name}.out.orig" 2>/dev/null || die
- done
-
- local failed="$(find -name '*.out')"
- if [[ ${failed} != "" ]] ; then
- ewarn "The following test cases failed unexpectedly:"
- for name in ${failed}; do
- ewarn " ${name/.out/}"
- done
- else
- einfo "No unexpected test failures, all fine"
- fi
-
- if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then
- local passed=""
- for name in ${EXPECTED_TEST_FAILURES}; do
- [[ -f "${name}.diff" ]] && continue
- passed="${passed} ${name}"
- done
- if [[ ${passed} != "" ]] ; then
- einfo "The following test cases passed unexpectedly:"
- for name in ${passed}; do
- ewarn " ${passed}"
- done
- else
- einfo "None of the known-to-fail tests passed, all fine"
- fi
- fi
-}
-
-pkg_postinst() {
- # Output some general info to the user
- if use apache2 ; then
- elog
- elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
- elog "your apache2 command. OpenRC users can append that string to"
- elog "APACHE2_OPTS in /etc/conf.d/apache2."
- elog
- elog "The apache module configuration file 70_mod_php.conf is"
- elog "provided (and maintained) by eselect-php."
- elog
- fi
-
- # Create the symlinks for php
- local m
- for m in ${SAPIS}; do
- [[ ${m} == 'embed' ]] && continue;
- if use $m ; then
- local ci=$(eselect php show $m)
- if [[ -z $ci ]]; then
- eselect php set $m php${SLOT} || die
- einfo "Switched ${m} to use php:${SLOT}"
- einfo
- elif [[ $ci != "php${SLOT}" ]] ; then
- elog "To switch $m to use php:${SLOT}, run"
- elog " eselect php set $m php${SLOT}"
- elog
- fi
- fi
- done
-
- # Remove dead symlinks for SAPIs that were just disabled. For
- # example, if the user has the cgi SAPI enabled, then he has an
- # eselect-php symlink for it. If he later reinstalls PHP with
- # USE="-cgi", that symlink will break. This call to eselect is
- # supposed to remove that dead link per bug 572436.
- eselect php cleanup || die
-
- if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
- elog "To build extensions for this version of PHP, you will need to"
- elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
- elog
- fi
-
- # Warn about the removal of PHP_INI_VERSION if the user has it set.
- if [[ -n "${PHP_INI_VERSION}" ]]; then
- ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
- ewarn 'remove it from your configuration at your convenience. See'
- ewarn
- ewarn ' https://bugs.gentoo.org/611214'
- ewarn
- ewarn 'for more information.'
- fi
-
- elog "For details on how version slotting works, please see"
- elog "the wiki:"
- elog
- elog " https://wiki.gentoo.org/wiki/PHP"
- elog
-}
-
-pkg_postrm() {
- # This serves two purposes. First, if we have just removed the last
- # installed version of PHP, then this will remove any dead symlinks
- # belonging to eselect-php. Second, if a user upgrades slots from
- # (say) 5.6 to 7.0 and depcleans the old slot, then this will update
- # his existing symlinks to point to the new 7.0 installation. The
- # latter is bug 432962.
- #
- # Note: the eselect-php package may not be installed at this point,
- # so we can't die() if this command fails.
- eselect php cleanup
-}
diff --git a/dev-lang/php/php-8.1.28.ebuild b/dev-lang/php/php-8.1.28.ebuild
deleted file mode 100644
index 4fb765cbc0a9..000000000000
--- a/dev-lang/php/php-8.1.28.ebuild
+++ /dev/null
@@ -1,782 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-WANT_AUTOMAKE="none"
-
-inherit flag-o-matic multilib systemd autotools
-
-DESCRIPTION="The PHP language runtime engine"
-HOMEPAGE="https://www.php.net/"
-SRC_URI="https://www.php.net/distributions/${P}.tar.xz"
-
-LICENSE="PHP-3.01
- BSD
- Zend-2.0
- bcmath? ( LGPL-2.1+ )
- fpm? ( BSD-2 )
- gd? ( gd )
- unicode? ( BSD-2 LGPL-2.1 )"
-
-SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ~ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-
-# We can build the following SAPIs in the given order
-SAPIS="embed cli cgi fpm apache2 phpdbg"
-
-# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
-IUSE="${IUSE}
- ${SAPIS/cli/+cli}
- threads"
-
-IUSE="${IUSE} acl apparmor argon2 avif bcmath berkdb bzip2 calendar
- cdb cjk coverage +ctype curl debug
- enchant exif ffi +fileinfo +filter firebird
- +flatfile ftp gd gdbm gmp +iconv imap inifile
- intl iodbc ipv6 +jit kerberos ldap ldap-sasl libedit lmdb
- mhash mssql mysql mysqli nls
- oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
- readline selinux +session session-mm sharedmem
- +simplexml snmp soap sockets sodium spell sqlite ssl
- sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode webp
- +xml xmlreader xmlwriter xpm xslt zip zlib"
-
-# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
-# The Oracle instant client provides its own incompatible ldap library.
-REQUIRED_USE="
- || ( cli cgi fpm apache2 embed phpdbg )
- avif? ( gd zlib )
- cli? ( ^^ ( readline libedit ) )
- !cli? ( ?? ( readline libedit ) )
- truetype? ( gd zlib )
- webp? ( gd zlib )
- cjk? ( gd zlib )
- exif? ( gd zlib )
- xpm? ( gd zlib )
- gd? ( zlib )
- simplexml? ( xml )
- soap? ( xml )
- xmlreader? ( xml )
- xmlwriter? ( xml )
- xslt? ( xml )
- ldap-sasl? ( ldap )
- oci8-instant-client? ( !ldap )
- qdbm? ( !gdbm )
- session-mm? ( session !threads )
- mysql? ( || ( mysqli pdo ) )
- firebird? ( pdo )
- mssql? ( pdo )
-"
-
-RESTRICT="!test? ( test )"
-
-# The supported (that is, autodetected) versions of BDB are listed in
-# the ./configure script. Other versions *work*, but we need to stick to
-# the ones that can be detected to avoid a repeat of bug #564824.
-COMMON_DEPEND="
- >=app-eselect/eselect-php-0.9.7[apache2?,fpm?]
- >=dev-libs/libpcre2-10.30[jit?,unicode]
- virtual/libcrypt:=
- fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) )
- apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
- argon2? ( app-crypt/argon2:= )
- avif? ( media-libs/libavif:= )
- berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) )
- bzip2? ( app-arch/bzip2:0= )
- cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- coverage? ( dev-util/lcov )
- curl? ( >=net-misc/curl-7.29.0 )
- enchant? ( app-text/enchant:2 )
- ffi? ( >=dev-libs/libffi-3.0.11:= )
- firebird? ( dev-db/firebird )
- gd? ( media-libs/libjpeg-turbo:0= media-libs/libpng:0= )
- gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
- gmp? ( dev-libs/gmp:0= )
- iconv? ( virtual/libiconv )
- imap? ( net-libs/c-client[kerberos=,ssl=] )
- intl? ( dev-libs/icu:= )
- kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11:= )
- ldap-sasl? ( dev-libs/cyrus-sasl )
- libedit? ( dev-libs/libedit )
- lmdb? ( dev-db/lmdb:= )
- mssql? ( dev-db/freetds[mssql] )
- nls? ( sys-devel/gettext )
- oci8-instant-client? ( dev-db/oracle-instantclient[sdk] )
- odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) )
- postgres? ( >=dev-db/postgresql-9.1:* )
- qdbm? ( dev-db/qdbm )
- readline? ( sys-libs/readline:0= )
- session-mm? ( dev-libs/mm )
- snmp? ( >=net-analyzer/net-snmp-5.2 )
- sodium? ( dev-libs/libsodium:=[-minimal(-)] )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? ( >=dev-libs/openssl-1.0.2:0= )
- tidy? ( app-text/htmltidy )
- tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
- unicode? ( dev-libs/oniguruma:= )
- webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.9.0 )
- xpm? ( x11-libs/libXpm )
- xslt? ( dev-libs/libxslt )
- zip? ( >=dev-libs/libzip-1.2.0:= )
- zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
-"
-
-IDEPEND=">=app-eselect/eselect-php-0.9.7[apache2?,fpm?]"
-
-RDEPEND="${COMMON_DEPEND}
- virtual/mta
- fpm? (
- selinux? ( sec-policy/selinux-phpfpm )
- systemd? ( sys-apps/systemd ) )"
-
-# Bison isn't actually needed when building from a release tarball
-# However, the configure script will warn if it's absent or if you
-# have an incompatible version installed. See bug 593278.
-DEPEND="${COMMON_DEPEND}
- app-arch/xz-utils
- >=sys-devel/bison-3.0.1"
-
-BDEPEND="virtual/pkgconfig"
-
-PHP_MV="$(ver_cut 1)"
-
-PATCHES=(
- "${FILESDIR}/php-iodbc-header-location.patch"
- "${FILESDIR}/php-capstone-optional.patch"
- "${FILESDIR}/php-8.1.27-gcc14-libxml.patch"
- "${FILESDIR}/php-8.1.27-implicit-decls.patch"
- "${FILESDIR}/fix-musl-llvm.patch"
-)
-
-# ARM/Windows functions that are expected to be undefined.
-QA_CONFIG_IMPL_DECL_SKIP=(
- __crc32d
- _controlfp
- _controlfp_s
-)
-
-# Functions from alternate iconv implementations (bug 925268)
-QA_CONFIG_IMPL_DECL_SKIP+=(
- iconv_ccs_init
- cstoccsid
-)
-
-php_install_ini() {
- local phpsapi="${1}"
-
- # work out where we are installing the ini file
- php_set_ini_dir "${phpsapi}"
-
- # Always install the production INI file, bug 611214.
- local phpinisrc="php.ini-production-${phpsapi}"
- cp php.ini-production "${phpinisrc}" || die
-
- # default to /tmp for save_path, bug #282768
- sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
-
- # Set the extension dir
- sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
- -i "${phpinisrc}" || die
-
- # Set the include path to point to where we want to find PEAR packages
- sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
-
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- newins "${phpinisrc}" php.ini
-
- elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
- elog
-
- dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
- dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
-
- if use opcache; then
- elog "Adding opcache to $PHP_EXT_INI_DIR"
- echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
- "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
- dosym "../ext/opcache.ini" \
- "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
- fi
-
- # SAPI-specific handling
- if [[ "${sapi}" == "fpm" ]] ; then
- einfo "Installing FPM config files php-fpm.conf and www.conf"
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- doins sapi/fpm/php-fpm.conf
- insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
- doins sapi/fpm/www.conf
- fi
-
- dodoc php.ini-{development,production}
-}
-
-php_set_ini_dir() {
- PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
- PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
- PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
-}
-
-src_prepare() {
- default
-
- # In php-7.x, the FPM pool configuration files have been split off
- # of the main config. By default the pool config files go in
- # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
- # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
- # we'll install the pool configuration file "www.conf" there.
- php_set_ini_dir fpm
- sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
- sapi/fpm/php-fpm.conf.in \
- || die 'failed to move the include directory in php-fpm.conf'
-
- # Emulate buildconf to support cross-compilation
- rm -fr aclocal.m4 autom4te.cache config.cache \
- configure main/php_config.h.in || die
- eautoconf --force
- eautoheader
-
- # Remove false positive test failures
- # stream_isatty fails due to portage redirects
- # curl tests here fail for network sandbox issues
- # session tests here fail because we set the session directory to $T
- rm tests/output/stream_isatty_err.phpt \
- tests/output/stream_isatty_out-err.phpt \
- tests/output/stream_isatty_out.phpt \
- ext/curl/tests/bug76675.phpt \
- ext/curl/tests/bug77535.phpt \
- ext/curl/tests/curl_error_basic.phpt \
- ext/session/tests/bug74514.phpt \
- ext/session/tests/bug74936.phpt \
- ext/fileinfo/tests/bug78987.phpt || die
-}
-
-src_configure() {
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
-
- # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527
- filter-lto
-
- # The php-fpm config file wants localstatedir to be ${EPREFIX}/var
- # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
- local our_conf=(
- --prefix="${PHP_DESTDIR}"
- --mandir="${PHP_DESTDIR}/man"
- --infodir="${PHP_DESTDIR}/info"
- --libdir="${PHP_DESTDIR}/lib"
- --with-libdir="$(get_libdir)"
- --localstatedir="${EPREFIX}/var"
- --without-pear
- --without-valgrind
- $(use_enable threads zts)
- )
-
- # The slotted man/info pages will be missed by the default list of
- # docompress paths.
- docompress "${PHP_DESTDIR}/man" "${PHP_DESTDIR}/info"
-
- our_conf+=(
- $(use_with apparmor fpm-apparmor)
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
- $(use_with avif)
- $(use_enable bcmath)
- $(use_with bzip2 bz2 "${EPREFIX}/usr")
- $(use_enable calendar)
- $(use_enable coverage gcov)
- $(use_enable ctype)
- $(use_with curl)
- $(use_enable xml dom)
- $(use_with enchant)
- $(use_enable exif)
- $(use_with ffi)
- $(use_enable fileinfo)
- $(use_enable filter)
- $(use_enable ftp)
- $(use_with nls gettext "${EPREFIX}/usr")
- $(use_with gmp gmp "${EPREFIX}/usr")
- $(use_with mhash mhash "${EPREFIX}/usr")
- $(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr"))
- $(use_enable intl)
- $(use_enable ipv6)
- $(use_with kerberos)
- $(use_with xml libxml)
- $(use_enable unicode mbstring)
- $(use_with ssl openssl)
- $(use_enable pcntl)
- $(use_enable phar)
- $(use_enable pdo)
- $(use_enable opcache)
- $(use_with postgres pgsql "${EPREFIX}/usr")
- $(use_enable posix)
- $(use_with spell pspell "${EPREFIX}/usr")
- $(use_enable simplexml)
- $(use_enable sharedmem shmop)
- $(use_with snmp snmp "${EPREFIX}/usr")
- $(use_enable soap)
- $(use_enable sockets)
- $(use_with sodium)
- $(use_with sqlite sqlite3)
- $(use_enable sysvipc sysvmsg)
- $(use_enable sysvipc sysvsem)
- $(use_enable sysvipc sysvshm)
- $(use_with tidy tidy "${EPREFIX}/usr")
- $(use_enable tokenizer)
- $(use_enable xml)
- $(use_enable xmlreader)
- $(use_enable xmlwriter)
- $(use_with xslt xsl)
- $(use_with zip)
- $(use_with zlib zlib "${EPREFIX}/usr")
- $(use_enable debug)
- )
-
- # DBA support
- if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
- || use qdbm || use lmdb || use tokyocabinet ; then
- our_conf+=( "--enable-dba" )
- fi
-
- # DBA drivers support
- our_conf+=(
- $(use_with cdb)
- $(use_with berkdb db4 "${EPREFIX}/usr")
- $(use_enable flatfile)
- $(use_with gdbm gdbm "${EPREFIX}/usr")
- $(use_enable inifile)
- $(use_with qdbm qdbm "${EPREFIX}/usr")
- $(use_with tokyocabinet tcadb "${EPREFIX}/usr")
- $(use_with lmdb lmdb "${EPREFIX}/usr")
- )
-
- # Support for the GD graphics library
- our_conf+=(
- $(use_with truetype freetype)
- $(use_enable cjk gd-jis-conv)
- $(use_with gd jpeg)
- $(use_with xpm)
- $(use_with webp)
- )
- # enable gd last, so configure can pick up the previous settings
- our_conf+=( $(use_enable gd) )
-
- # IMAP support
- if use imap ; then
- our_conf+=(
- $(use_with imap imap "${EPREFIX}/usr")
- $(use_with ssl imap-ssl "${EPREFIX}/usr")
- )
- fi
-
- # LDAP support
- if use ldap ; then
- our_conf+=(
- $(use_with ldap ldap "${EPREFIX}/usr")
- $(use_with ldap-sasl)
- )
- fi
-
- # MySQL support
- our_conf+=( $(use_with mysqli mysqli "mysqlnd") )
-
- local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
- if use mysql || use mysqli ; then
- our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
- fi
-
- # ODBC support
- if use odbc && use iodbc ; then
- our_conf+=(
- --without-unixODBC
- --with-iodbc
- $(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr")
- )
- elif use odbc ; then
- our_conf+=(
- --with-unixODBC="${EPREFIX}/usr"
- --without-iodbc
- $(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr")
- )
- else
- our_conf+=(
- --without-unixODBC
- --without-iodbc
- --without-pdo-odbc
- )
- fi
-
- # Oracle support
- our_conf+=( $(use_with oci8-instant-client oci8) )
-
- # PDO support
- if use pdo ; then
- our_conf+=(
- $(use_with mssql pdo-dblib "${EPREFIX}/usr")
- $(use_with mysql pdo-mysql "mysqlnd")
- $(use_with postgres pdo-pgsql)
- $(use_with sqlite pdo-sqlite)
- $(use_with firebird pdo-firebird "${EPREFIX}/usr")
- $(use_with oci8-instant-client pdo-oci)
- )
- fi
-
- # readline/libedit support
- our_conf+=(
- $(use_with readline readline "${EPREFIX}/usr")
- $(use_with libedit)
- )
-
- # Session support
- if use session ; then
- our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
- else
- our_conf+=( $(use_enable session) )
- fi
-
- # Use pic for shared modules such as apache2's mod_php
- our_conf+=( --with-pic )
-
- # we use the system copy of pcre
- # --with-external-pcre affects ext/pcre
- our_conf+=(
- --with-external-pcre
- $(use_with jit pcre-jit)
- )
-
- # Catch CFLAGS problems
- # Fixes bug #14067.
- # Changed order to run it in reverse for bug #32022 and #12021.
- replace-cpu-flags "k6*" "i586"
-
- # Cache the ./configure test results between SAPIs.
- our_conf+=( --cache-file="${T}/config.cache" )
-
- # Support user-passed configuration parameters
- our_conf+=( ${EXTRA_ECONF:-} )
-
- # Support the Apache2 extras, they must be set globally for all
- # SAPIs to work correctly, especially for external PHP extensions
-
- local one_sapi
- local sapi
- mkdir -p "${WORKDIR}/sapis-build" || die
- for one_sapi in $SAPIS ; do
- use "${one_sapi}" || continue
- php_set_ini_dir "${one_sapi}"
-
- # The BUILD_DIR variable is used to determine where to output
- # the files that autotools creates. This was all originally
- # based on the autotools-utils eclass.
- BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
- cp -a "${S}" "${BUILD_DIR}" || die
- cd "${BUILD_DIR}" || die
-
- local sapi_conf=(
- --with-config-file-path="${PHP_INI_DIR}"
- --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
- )
-
- for sapi in $SAPIS ; do
- case "$sapi" in
- cli|cgi|embed|fpm|phpdbg)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( "--enable-${sapi}" )
- if [[ "fpm" == "${sapi}" ]] ; then
- sapi_conf+=(
- $(use_with acl fpm-acl)
- $(use_with systemd fpm-systemd)
- )
- fi
- else
- sapi_conf+=( "--disable-${sapi}" )
- fi
- ;;
-
- apache2)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
- else
- sapi_conf+=( --without-apxs2 )
- fi
- ;;
- esac
- done
-
- # Construct the $myeconfargs array by concatenating $our_conf
- # (the common args) and $sapi_conf (the SAPI-specific args).
- local myeconfargs=( "${our_conf[@]}" )
- myeconfargs+=( "${sapi_conf[@]}" )
-
- pushd "${BUILD_DIR}" > /dev/null || die
- econf "${myeconfargs[@]}"
- popd > /dev/null || die
- done
-}
-
-src_compile() {
- # snmp seems to run during src_compile, too (bug #324739)
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- local sapi
- for sapi in ${SAPIS} ; do
- if use "${sapi}"; then
- cd "${WORKDIR}/sapis-build/$sapi" || \
- die "Failed to change dir to ${WORKDIR}/sapis-build/$1"
- emake
- fi
- done
-}
-
-src_install() {
- # see bug #324739 for what happens when we don't have that
- addpredict /usr/share/snmp/mibs/.index #nowarn
-
- # grab the first SAPI that got built and install common files from there
- local first_sapi="", sapi=""
- for sapi in $SAPIS ; do
- if use $sapi ; then
- first_sapi=$sapi
- break
- fi
- done
-
- # Makefile forgets to create this before trying to write to it...
- dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
-
- # Install php environment (without any sapis)
- cd "${WORKDIR}/sapis-build/$first_sapi" || die
- emake INSTALL_ROOT="${D}" \
- install-build install-headers install-programs
-
- local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
-
- # Create the directory where we'll put version-specific php scripts
- keepdir "/usr/share/php${PHP_MV}"
-
- local file=""
- local sapi_list=""
-
- for sapi in ${SAPIS}; do
- if use "${sapi}" ; then
- einfo "Installing SAPI: ${sapi}"
- cd "${WORKDIR}/sapis-build/${sapi}" || die
-
- if [[ "${sapi}" == "apache2" ]] ; then
- # We're specifically not using emake install-sapi as libtool
- # may cause unnecessary relink failures (see bug #351266)
- insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
- newins ".libs/libphp$(get_libname)" \
- "libphp${PHP_MV}$(get_libname)"
- keepdir "/usr/$(get_libdir)/apache2/modules"
- else
- # needed each time, php_install_ini would reset it
- local dest="${PHP_DESTDIR#${EPREFIX}}"
- into "${dest}"
- case "$sapi" in
- cli)
- source="sapi/cli/php"
- # Install the "phar" archive utility.
- if use phar ; then
- emake INSTALL_ROOT="${D}" install-pharcmd
- dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}"
- fi
- ;;
- cgi)
- source="sapi/cgi/php-cgi"
- ;;
- fpm)
- source="sapi/fpm/php-fpm"
- ;;
- embed)
- source="libs/libphp$(get_libname)"
- ;;
- phpdbg)
- source="sapi/phpdbg/phpdbg"
- ;;
- *)
- die "unhandled sapi in src_install"
- ;;
- esac
-
- if [[ "${source}" == *"$(get_libname)" ]]; then
- dolib.so "${source}"
- else
- dobin "${source}"
- local name="$(basename ${source})"
- dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}"
- fi
- fi
-
- php_install_ini "${sapi}"
-
- # construct correct SAPI string for php-config
- # thanks to ferringb for the bash voodoo
- if [[ "${sapi}" == "apache2" ]]; then
- sapi_list="${sapi_list:+${sapi_list} }apache2handler"
- else
- sapi_list="${sapi_list:+${sapi_list} }${sapi}"
- fi
- fi
- done
-
- # Installing opcache module
- if use opcache ; then
- into "${PHP_DESTDIR#${EPREFIX}}"
- dolib.so "modules/opcache$(get_libname)"
- fi
-
- # Install env.d files
- newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
- sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
- sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
-
- # set php-config variable correctly (bug #278439)
- sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
- "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
-
- if use fpm ; then
- if use systemd; then
- systemd_newunit "${FILESDIR}/php-fpm_at.service" \
- "php-fpm@${SLOT}.service"
- else
- systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
- "php-fpm@${SLOT}.service"
- fi
- fi
-}
-
-src_test() {
- echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
- PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php"
- if [[ ! -x "${PHP_BIN}" ]] ; then
- ewarn "Test phase requires USE=cli, skipping"
- return
- else
- export TEST_PHP_EXECUTABLE="${PHP_BIN}"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
- export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
- export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
- fi
-
- SKIP_ONLINE_TESTS=1 REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
- "session.save_path=${T}" \
- "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \
- "session.save_path=${T}"
-
- for name in ${EXPECTED_TEST_FAILURES}; do
- mv "${name}.out" "${name}.out.orig" 2>/dev/null || die
- done
-
- local failed="$(find -name '*.out')"
- if [[ ${failed} != "" ]] ; then
- ewarn "The following test cases failed unexpectedly:"
- for name in ${failed}; do
- ewarn " ${name/.out/}"
- done
- else
- einfo "No unexpected test failures, all fine"
- fi
-
- if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then
- local passed=""
- for name in ${EXPECTED_TEST_FAILURES}; do
- [[ -f "${name}.diff" ]] && continue
- passed="${passed} ${name}"
- done
- if [[ ${passed} != "" ]] ; then
- einfo "The following test cases passed unexpectedly:"
- for name in ${passed}; do
- ewarn " ${passed}"
- done
- else
- einfo "None of the known-to-fail tests passed, all fine"
- fi
- fi
-}
-
-pkg_postinst() {
- # Output some general info to the user
- if use apache2 ; then
- elog
- elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
- elog "your apache2 command. OpenRC users can append that string to"
- elog "APACHE2_OPTS in /etc/conf.d/apache2."
- elog
- elog "The apache module configuration file 70_mod_php.conf is"
- elog "provided (and maintained) by eselect-php."
- elog
- fi
-
- # Create the symlinks for php
- local m
- for m in ${SAPIS}; do
- [[ ${m} == 'embed' ]] && continue;
- if use $m ; then
- local ci=$(eselect php show $m)
- if [[ -z $ci ]]; then
- eselect php set $m php${SLOT} || die
- einfo "Switched ${m} to use php:${SLOT}"
- einfo
- elif [[ $ci != "php${SLOT}" ]] ; then
- elog "To switch $m to use php:${SLOT}, run"
- elog " eselect php set $m php${SLOT}"
- elog
- fi
- fi
- done
-
- # Remove dead symlinks for SAPIs that were just disabled. For
- # example, if the user has the cgi SAPI enabled, then he has an
- # eselect-php symlink for it. If he later reinstalls PHP with
- # USE="-cgi", that symlink will break. This call to eselect is
- # supposed to remove that dead link per bug 572436.
- eselect php cleanup || die
-
- if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
- elog "To build extensions for this version of PHP, you will need to"
- elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
- elog
- fi
-
- # Warn about the removal of PHP_INI_VERSION if the user has it set.
- if [[ -n "${PHP_INI_VERSION}" ]]; then
- ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
- ewarn 'remove it from your configuration at your convenience. See'
- ewarn
- ewarn ' https://bugs.gentoo.org/611214'
- ewarn
- ewarn 'for more information.'
- fi
-
- elog "For details on how version slotting works, please see"
- elog "the wiki:"
- elog
- elog " https://wiki.gentoo.org/wiki/PHP"
- elog
-}
-
-pkg_postrm() {
- # This serves two purposes. First, if we have just removed the last
- # installed version of PHP, then this will remove any dead symlinks
- # belonging to eselect-php. Second, if a user upgrades slots from
- # (say) 5.6 to 7.0 and depcleans the old slot, then this will update
- # his existing symlinks to point to the new 7.0 installation. The
- # latter is bug 432962.
- #
- # Note: the eselect-php package may not be installed at this point,
- # so we can't die() if this command fails.
- eselect php cleanup
-}
diff --git a/dev-lang/php/php-8.2.15.ebuild b/dev-lang/php/php-8.2.15.ebuild
deleted file mode 100644
index 32739c75690e..000000000000
--- a/dev-lang/php/php-8.2.15.ebuild
+++ /dev/null
@@ -1,845 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-WANT_AUTOMAKE="none"
-
-inherit flag-o-matic multilib systemd autotools
-
-DESCRIPTION="The PHP language runtime engine"
-HOMEPAGE="https://www.php.net/"
-SRC_URI="https://www.php.net/distributions/${P}.tar.xz"
-
-LICENSE="PHP-3.01
- BSD
- Zend-2.0
- bcmath? ( LGPL-2.1+ )
- fpm? ( BSD-2 )
- gd? ( gd )
- unicode? ( BSD-2 LGPL-2.1 )"
-
-SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ~ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-
-# We can build the following SAPIs in the given order
-SAPIS="embed cli cgi fpm apache2 phpdbg"
-
-# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
-IUSE="${IUSE}
- ${SAPIS/cli/+cli}
- threads"
-
-IUSE="${IUSE} acl apparmor argon2 avif bcmath berkdb bzip2 calendar
- cdb cjk +ctype curl debug
- enchant exif ffi +fileinfo +filter firebird
- +flatfile ftp gd gdbm gmp +iconv imap inifile
- intl iodbc ipv6 +jit kerberos ldap ldap-sasl libedit lmdb
- mhash mssql mysql mysqli nls
- oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
- readline selinux +session session-mm sharedmem
- +simplexml snmp soap sockets sodium spell sqlite ssl
- sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode
- valgrind webp +xml xmlreader xmlwriter xpm xslt zip zlib"
-
-# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
-# The Oracle instant client provides its own incompatible ldap library.
-REQUIRED_USE="
- || ( cli cgi fpm apache2 embed phpdbg )
- avif? ( gd zlib )
- cli? ( ^^ ( readline libedit ) )
- !cli? ( ?? ( readline libedit ) )
- truetype? ( gd zlib )
- webp? ( gd zlib )
- cjk? ( gd zlib )
- exif? ( gd zlib )
- xpm? ( gd zlib )
- gd? ( zlib )
- simplexml? ( xml )
- soap? ( xml )
- xmlreader? ( xml )
- xmlwriter? ( xml )
- xslt? ( xml )
- ldap-sasl? ( ldap )
- oci8-instant-client? ( !ldap )
- qdbm? ( !gdbm )
- session-mm? ( session !threads )
- mysql? ( || ( mysqli pdo ) )
- firebird? ( pdo )
- mssql? ( pdo )
- test? ( cli )
-"
-
-RESTRICT="!test? ( test )"
-
-# The supported (that is, autodetected) versions of BDB are listed in
-# the ./configure script. Other versions *work*, but we need to stick to
-# the ones that can be detected to avoid a repeat of bug #564824.
-COMMON_DEPEND="
- >=app-eselect/eselect-php-0.9.7[apache2?,fpm?]
- >=dev-libs/libpcre2-10.30[jit?,unicode]
- virtual/libcrypt:=
- fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) selinux? ( sys-libs/libselinux ) )
- apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
- argon2? ( app-crypt/argon2:= )
- avif? ( media-libs/libavif:= )
- berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) )
- bzip2? ( app-arch/bzip2:0= )
- cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- curl? ( >=net-misc/curl-7.29.0 )
- enchant? ( app-text/enchant:2 )
- ffi? ( >=dev-libs/libffi-3.0.11:= )
- firebird? ( dev-db/firebird )
- gd? ( media-libs/libjpeg-turbo:0= media-libs/libpng:0= )
- gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
- gmp? ( dev-libs/gmp:0= )
- iconv? ( virtual/libiconv )
- imap? ( net-libs/c-client[kerberos=,ssl=] )
- intl? ( dev-libs/icu:= )
- kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11:= )
- ldap-sasl? ( dev-libs/cyrus-sasl )
- libedit? ( dev-libs/libedit )
- lmdb? ( dev-db/lmdb:= )
- mssql? ( dev-db/freetds[mssql] )
- nls? ( sys-devel/gettext )
- oci8-instant-client? ( dev-db/oracle-instantclient[sdk] )
- odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) )
- postgres? ( >=dev-db/postgresql-9.1:* )
- qdbm? ( dev-db/qdbm )
- readline? ( sys-libs/readline:0= )
- session-mm? ( dev-libs/mm )
- snmp? ( >=net-analyzer/net-snmp-5.2 )
- sodium? ( dev-libs/libsodium:=[-minimal(-)] )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? ( >=dev-libs/openssl-1.0.2:0= )
- tidy? ( app-text/htmltidy )
- tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
- unicode? ( dev-libs/oniguruma:= )
- valgrind? ( dev-debug/valgrind )
- webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.9.0 )
- xpm? ( x11-libs/libXpm )
- xslt? ( dev-libs/libxslt )
- zip? ( >=dev-libs/libzip-1.2.0:= )
- zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
-"
-
-IDEPEND=">=app-eselect/eselect-php-0.9.7[apache2?,fpm?]"
-
-RDEPEND="${COMMON_DEPEND}
- virtual/mta
- fpm? (
- selinux? ( sec-policy/selinux-phpfpm )
- systemd? ( sys-apps/systemd ) )"
-
-# Bison isn't actually needed when building from a release tarball
-# However, the configure script will warn if it's absent or if you
-# have an incompatible version installed. See bug 593278.
-DEPEND="${COMMON_DEPEND}
- app-arch/xz-utils
- >=sys-devel/bison-3.0.1"
-
-BDEPEND="virtual/pkgconfig"
-
-PHP_MV="$(ver_cut 1)"
-
-PATCHES=(
- "${FILESDIR}/php-iodbc-header-location.patch"
- "${FILESDIR}/php-capstone-optional.patch"
- "${FILESDIR}/php-8.2.8-openssl-tests.patch"
-)
-
-php_install_ini() {
- local phpsapi="${1}"
-
- # work out where we are installing the ini file
- php_set_ini_dir "${phpsapi}"
-
- # Always install the production INI file, bug 611214.
- local phpinisrc="php.ini-production-${phpsapi}"
- cp php.ini-production "${phpinisrc}" || die
-
- # default to /tmp for save_path, bug #282768
- sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
-
- # Set the extension dir
- sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
- -i "${phpinisrc}" || die
-
- # Set the include path to point to where we want to find PEAR packages
- sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
-
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- newins "${phpinisrc}" php.ini
-
- elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
- elog
-
- dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
- dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
-
- if use opcache; then
- elog "Adding opcache to $PHP_EXT_INI_DIR"
- echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
- "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
- dosym "../ext/opcache.ini" \
- "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
- fi
-
- # SAPI-specific handling
- if [[ "${sapi}" == "fpm" ]] ; then
- einfo "Installing FPM config files php-fpm.conf and www.conf"
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- doins sapi/fpm/php-fpm.conf
- insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
- doins sapi/fpm/www.conf
- fi
-
- dodoc php.ini-{development,production}
-}
-
-php_set_ini_dir() {
- PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
- PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
- PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
-}
-
-src_prepare() {
- default
-
- # In php-7.x, the FPM pool configuration files have been split off
- # of the main config. By default the pool config files go in
- # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
- # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
- # we'll install the pool configuration file "www.conf" there.
- php_set_ini_dir fpm
- sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
- sapi/fpm/php-fpm.conf.in \
- || die 'failed to move the include directory in php-fpm.conf'
-
- # Emulate buildconf to support cross-compilation
- rm -fr aclocal.m4 autom4te.cache config.cache \
- configure main/php_config.h.in || die
- eautoconf --force
- eautoheader
-
- # missing skipif; fixed upstream already
- rm sapi/cgi/tests/005.phpt || die
-
- # These three get BORKED on no-ipv6 systems,
- #
- # https://github.com/php/php-src/pull/11651
- #
- rm ext/sockets/tests/mcast_ipv6_recv.phpt \
- ext/sockets/tests/mcast_ipv6_recv_limited.phpt \
- ext/sockets/tests/mcast_ipv6_send.phpt \
- || die
-
- # fails in a network sandbox,
- #
- # https://github.com/php/php-src/issues/11662
- #
- rm ext/sockets/tests/bug63000.phpt || die
-
- # expected output needs to be updated,
- #
- # https://github.com/php/php-src/pull/11648
- #
- rm ext/dba/tests/dba_tcadb.phpt || die
-
- # Two IMAP tests missing SKIPIFs,
- #
- # https://github.com/php/php-src/pull/11654
- #
- rm ext/imap/tests/imap_mutf7_to_utf8.phpt \
- ext/imap/tests/imap_utf8_to_mutf7_basic.phpt \
- || die
-
- # broken upstream with icu-73.x,
- #
- # https://github.com/php/php-src/issues/11128
- #
- rm ext/intl/tests/calendar_clear_variation1.phpt || die
-
- # overly sensitive to INI values; fixes sent upstream:
- #
- # https://github.com/php/php-src/pull/11631
- #
- rm ext/session/tests/{bug74514,bug74936,gh7787}.phpt || die
-
- # This is sensitive to the current "nice" level:
- #
- # https://github.com/php/php-src/issues/11630
- #
- rm ext/standard/tests/general_functions/proc_nice_basic.phpt || die
-
- # Tests ignoring the "-n" flag we pass to run-tests.php,
- #
- # https://github.com/php/php-src/pull/11669
- #
- rm ext/standard/tests/file/bug60120.phpt \
- ext/standard/tests/general_functions/proc_open_null.phpt \
- ext/standard/tests/general_functions/proc_open_redirect.phpt \
- ext/standard/tests/general_functions/proc_open_sockets1.phpt \
- ext/standard/tests/general_functions/proc_open_sockets2.phpt \
- ext/standard/tests/general_functions/proc_open_sockets3.phpt \
- ext/standard/tests/ini_info/php_ini_loaded_file.phpt \
- sapi/cli/tests/016.phpt \
- sapi/cli/tests/023.phpt \
- sapi/cli/tests/bug65275.phpt \
- sapi/cli/tests/bug74600.phpt \
- sapi/cli/tests/bug78323.phpt \
- || die
-
- # Same TEST_PHP_EXTRA_ARGS (-n) issue with this one, but it's
- # already been fixed upstream.
- rm sapi/cli/tests/017.phpt || die
-
- # Most Oracle tests are borked,
- #
- # * https://github.com/php/php-src/issues/11804
- # * https://github.com/php/php-src/pull/11820
- # * https://github.com/php/php-src/issues/11819
- #
- rm ext/oci8/tests/*.phpt || die
-
- # https://github.com/php/php-src/issues/12801
- rm ext/pcre/tests/gh11374.phpt || die
-
- # This is a memory usage test with hard-coded limits. Whenever the
- # limits are surpassed... they get increased... but in the meantime,
- # the tests fail. This is not really a test that end users should
- # be running pre-install, in my opinion. Bug 927461.
- rm ext/fileinfo/tests/bug78987.phpt || die
-}
-
-src_configure() {
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527
- filter-lto
-
- PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
-
- # Don't allow ./configure to detect and use an existing version
- # of PHP; this can lead to all sorts of weird unpredictability
- # as in bug 900210.
- export ac_cv_prog_PHP=""
-
- # The php-fpm config file wants localstatedir to be ${EPREFIX}/var
- # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
- local our_conf=(
- --prefix="${PHP_DESTDIR}"
- --mandir="${PHP_DESTDIR}/man"
- --infodir="${PHP_DESTDIR}/info"
- --libdir="${PHP_DESTDIR}/lib"
- --with-libdir="$(get_libdir)"
- --localstatedir="${EPREFIX}/var"
- --without-pear
- --without-valgrind
- --with-external-libcrypt
- $(use_enable threads zts)
- )
-
- # The slotted man/info pages will be missed by the default list of
- # docompress paths.
- docompress "${PHP_DESTDIR}/man" "${PHP_DESTDIR}/info"
-
- our_conf+=(
- $(use_with apparmor fpm-apparmor)
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
- $(use_with avif)
- $(use_enable bcmath)
- $(use_with bzip2 bz2 "${EPREFIX}/usr")
- $(use_enable calendar)
- $(use_enable ctype)
- $(use_with curl)
- $(use_enable xml dom)
- $(use_with enchant)
- $(use_enable exif)
- $(use_with ffi)
- $(use_enable fileinfo)
- $(use_enable filter)
- $(use_enable ftp)
- $(use_with nls gettext "${EPREFIX}/usr")
- $(use_with gmp gmp "${EPREFIX}/usr")
- $(use_with mhash mhash "${EPREFIX}/usr")
- $(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr"))
- $(use_enable intl)
- $(use_enable ipv6)
- $(use_with kerberos)
- $(use_with xml libxml)
- $(use_enable unicode mbstring)
- $(use_with ssl openssl)
- $(use_enable pcntl)
- $(use_enable phar)
- $(use_enable pdo)
- $(use_enable opcache)
- $(use_with postgres pgsql "${EPREFIX}/usr")
- $(use_enable posix)
- $(use_with selinux fpm-selinux)
- $(use_with spell pspell "${EPREFIX}/usr")
- $(use_enable simplexml)
- $(use_enable sharedmem shmop)
- $(use_with snmp snmp "${EPREFIX}/usr")
- $(use_enable soap)
- $(use_enable sockets)
- $(use_with sodium)
- $(use_with sqlite sqlite3)
- $(use_enable sysvipc sysvmsg)
- $(use_enable sysvipc sysvsem)
- $(use_enable sysvipc sysvshm)
- $(use_with tidy tidy "${EPREFIX}/usr")
- $(use_enable tokenizer)
- $(use_enable xml)
- $(use_enable xmlreader)
- $(use_enable xmlwriter)
- $(use_with xslt xsl)
- $(use_with zip)
- $(use_with zlib zlib "${EPREFIX}/usr")
- $(use_enable debug)
- $(use_with valgrind)
- )
-
- # DBA support
- if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
- || use qdbm || use lmdb || use tokyocabinet ; then
- our_conf+=( "--enable-dba" )
- fi
-
- # DBA drivers support
- our_conf+=(
- $(use_with cdb)
- $(use_with berkdb db4 "${EPREFIX}/usr")
- $(use_enable flatfile)
- $(use_with gdbm gdbm "${EPREFIX}/usr")
- $(use_enable inifile)
- $(use_with qdbm qdbm "${EPREFIX}/usr")
- $(use_with tokyocabinet tcadb "${EPREFIX}/usr")
- $(use_with lmdb lmdb "${EPREFIX}/usr")
- )
-
- # Support for the GD graphics library
- our_conf+=(
- $(use_with truetype freetype)
- $(use_enable cjk gd-jis-conv)
- $(use_with gd jpeg)
- $(use_with xpm)
- $(use_with webp)
- )
- # enable gd last, so configure can pick up the previous settings
- our_conf+=( $(use_enable gd) )
-
- # IMAP support
- if use imap ; then
- our_conf+=(
- $(use_with imap imap "${EPREFIX}/usr")
- $(use_with ssl imap-ssl "${EPREFIX}/usr")
- )
- fi
-
- # LDAP support
- if use ldap ; then
- our_conf+=(
- $(use_with ldap ldap "${EPREFIX}/usr")
- $(use_with ldap-sasl)
- )
- fi
-
- # MySQL support
- our_conf+=( $(use_with mysqli) )
-
- local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
- if use mysql || use mysqli ; then
- our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
- fi
-
- # ODBC support
- if use odbc && use iodbc ; then
- our_conf+=(
- --without-unixODBC
- --with-iodbc
- $(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr")
- )
- elif use odbc ; then
- our_conf+=(
- --with-unixODBC="${EPREFIX}/usr"
- --without-iodbc
- $(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr")
- )
- else
- our_conf+=(
- --without-unixODBC
- --without-iodbc
- --without-pdo-odbc
- )
- fi
-
- # Oracle support
- our_conf+=( $(use_with oci8-instant-client oci8) )
-
- # PDO support
- if use pdo ; then
- our_conf+=(
- $(use_with mssql pdo-dblib "${EPREFIX}/usr")
- $(use_with mysql pdo-mysql "mysqlnd")
- $(use_with postgres pdo-pgsql)
- $(use_with sqlite pdo-sqlite)
- $(use_with firebird pdo-firebird "${EPREFIX}/usr")
- $(use_with oci8-instant-client pdo-oci)
- )
- fi
-
- # readline/libedit support
- our_conf+=(
- $(use_with readline readline "${EPREFIX}/usr")
- $(use_with libedit)
- )
-
- # Session support
- if use session ; then
- our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
- else
- our_conf+=( $(use_enable session) )
- fi
-
- # Use pic for shared modules such as apache2's mod_php
- our_conf+=( --with-pic )
-
- # we use the system copy of pcre
- # --with-external-pcre affects ext/pcre
- our_conf+=(
- --with-external-pcre
- $(use_with jit pcre-jit)
- )
-
- # Catch CFLAGS problems
- # Fixes bug #14067.
- # Changed order to run it in reverse for bug #32022 and #12021.
- replace-cpu-flags "k6*" "i586"
-
- # Cache the ./configure test results between SAPIs.
- our_conf+=( --cache-file="${T}/config.cache" )
-
- # Support user-passed configuration parameters
- our_conf+=( ${EXTRA_ECONF:-} )
-
- # Support the Apache2 extras, they must be set globally for all
- # SAPIs to work correctly, especially for external PHP extensions
-
- # Create separate build trees for each enabled SAPI. The upstream
- # build system doesn't do this, but we have to do it to use a
- # different php.ini for each SAPI (see --with-config-file-path and
- # --with-config-file-scan-dir below). The path winds up define'd
- # in main/build-defs.h which is included in main/php.h which is
- # included by basically everything; so, avoiding a rebuild after
- # changing it is not an easy job.
- local one_sapi
- local sapi
- mkdir "${WORKDIR}/sapis-build" || die
- for one_sapi in $SAPIS ; do
- use "${one_sapi}" || continue
- php_set_ini_dir "${one_sapi}"
-
- # The BUILD_DIR variable is used to determine where to output
- # the files that autotools creates. This was all originally
- # based on the autotools-utils eclass.
- BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
- cp -a "${S}" "${BUILD_DIR}" || die
-
- local sapi_conf=(
- --with-config-file-path="${PHP_INI_DIR}"
- --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
- )
-
- for sapi in $SAPIS ; do
- case "$sapi" in
- cli|cgi|embed|fpm|phpdbg)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( "--enable-${sapi}" )
- if [[ "fpm" == "${sapi}" ]] ; then
- sapi_conf+=(
- $(use_with acl fpm-acl)
- $(use_with systemd fpm-systemd)
- )
- fi
- else
- sapi_conf+=( "--disable-${sapi}" )
- fi
- ;;
-
- apache2)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
- else
- sapi_conf+=( --without-apxs2 )
- fi
- ;;
- esac
- done
-
- # Construct the $myeconfargs array by concatenating $our_conf
- # (the common args) and $sapi_conf (the SAPI-specific args).
- local myeconfargs=( "${our_conf[@]}" )
- myeconfargs+=( "${sapi_conf[@]}" )
-
- pushd "${BUILD_DIR}" > /dev/null || die
- einfo "Running econf in ${BUILD_DIR}"
- econf "${myeconfargs[@]}"
- popd > /dev/null || die
- done
-}
-
-src_compile() {
- # snmp seems to run during src_compile, too (bug #324739)
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- if use oci8-instant-client && use kerberos && use imap && use phar; then
- # A conspiracy takes place when the first three of these flags
- # are set together, causing the newly-built "php" to open
- # /dev/urandom with mode rw when it starts. That's not actually
- # a problem... unless you also have USE=phar, which runs that
- # "php" to build some phar thingy in src_compile(). Later in
- # src_test(), portage (at least) sets "addpredict /" so the
- # problem does not repeat.
- addpredict /dev/urandom #nowarn
- fi
-
- local sapi
- for sapi in ${SAPIS} ; do
- use "${sapi}" && emake -C "${WORKDIR}/sapis-build/${sapi}"
- done
-}
-
-src_install() {
- # see bug #324739 for what happens when we don't have that
- addpredict /usr/share/snmp/mibs/.index #nowarn
-
- # grab the first SAPI that got built and install common files from there
- local first_sapi="", sapi=""
- for sapi in $SAPIS ; do
- if use $sapi ; then
- first_sapi=$sapi
- break
- fi
- done
-
- # Makefile forgets to create this before trying to write to it...
- dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
-
- # Install php environment (without any sapis)
- cd "${WORKDIR}/sapis-build/$first_sapi" || die
- emake INSTALL_ROOT="${D}" \
- install-build install-headers install-programs
-
- local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
-
- # Create the directory where we'll put version-specific php scripts
- keepdir "/usr/share/php${PHP_MV}"
-
- local file=""
- local sapi_list=""
-
- for sapi in ${SAPIS}; do
- if use "${sapi}" ; then
- einfo "Installing SAPI: ${sapi}"
- cd "${WORKDIR}/sapis-build/${sapi}" || die
-
- if [[ "${sapi}" == "apache2" ]] ; then
- # We're specifically not using emake install-sapi as libtool
- # may cause unnecessary relink failures (see bug #351266)
- insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
- newins ".libs/libphp$(get_libname)" \
- "libphp${PHP_MV}$(get_libname)"
- keepdir "/usr/$(get_libdir)/apache2/modules"
- else
- # needed each time, php_install_ini would reset it
- local dest="${PHP_DESTDIR#${EPREFIX}}"
- into "${dest}"
- case "$sapi" in
- cli)
- source="sapi/cli/php"
- # Install the "phar" archive utility.
- if use phar ; then
- emake INSTALL_ROOT="${D}" install-pharcmd
- dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}"
- fi
- ;;
- cgi)
- source="sapi/cgi/php-cgi"
- ;;
- fpm)
- source="sapi/fpm/php-fpm"
- ;;
- embed)
- source="libs/libphp$(get_libname)"
- ;;
- phpdbg)
- source="sapi/phpdbg/phpdbg"
- ;;
- *)
- die "unhandled sapi in src_install"
- ;;
- esac
-
- if [[ "${source}" == *"$(get_libname)" ]]; then
- dolib.so "${source}"
- else
- dobin "${source}"
- local name="$(basename ${source})"
- dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}"
- fi
- fi
-
- php_install_ini "${sapi}"
-
- # construct correct SAPI string for php-config
- # thanks to ferringb for the bash voodoo
- if [[ "${sapi}" == "apache2" ]]; then
- sapi_list="${sapi_list:+${sapi_list} }apache2handler"
- else
- sapi_list="${sapi_list:+${sapi_list} }${sapi}"
- fi
- fi
- done
-
- # Installing opcache module
- if use opcache ; then
- into "${PHP_DESTDIR#${EPREFIX}}"
- dolib.so "modules/opcache$(get_libname)"
- fi
-
- # Install env.d files
- newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
- sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
- sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
-
- # set php-config variable correctly (bug #278439)
- sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
- "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
-
- if use fpm ; then
- if use systemd; then
- systemd_newunit "${FILESDIR}/php-fpm_at.service" \
- "php-fpm@${SLOT}.service"
- else
- systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
- "php-fpm@${SLOT}.service"
- fi
- fi
-}
-
-src_test() {
- export TEST_PHP_EXECUTABLE="${WORKDIR}/sapis-build/cli/sapi/cli/php"
-
- # Sometimes when the sub-php launches a sub-sub-php, it uses these.
- # Without an "-n" in all instances, the *live* php.ini can be loaded,
- # pulling in *live* zend extensions. And those can be incompatible
- # with the thing we just built.
- export TEST_PHP_EXTRA_ARGS="-n"
-
- if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
- export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
- export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
- fi
-
- # The sendmail override prevents ext/imap/tests/bug77020.phpt from
- # actually trying to send mail, and will be fixed upstream soon:
- #
- # https://github.com/php/php-src/issues/11629
- #
- # The IO capture tests need to be disabled because they fail when
- # std{in,out,err} are redirected (as they are within portage).
- #
- # One -n applies to the top-level "php", while the other applies
- # to any sub-php that get invoked by the test runner.
- SKIP_IO_CAPTURE_TESTS=1 SKIP_PERF_SENSITIVE=1 REPORT_EXIT_STATUS=1 \
- "${TEST_PHP_EXECUTABLE}" -n \
- "${WORKDIR}/sapis-build/cli/run-tests.php" --offline -n -q \
- -d "session.save_path=${T}" \
- -d "sendmail_path=echo >/dev/null" \
- || die "tests failed"
-}
-
-pkg_postinst() {
- # Output some general info to the user
- if use apache2 ; then
- elog
- elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
- elog "your apache2 command. OpenRC users can append that string to"
- elog "APACHE2_OPTS in /etc/conf.d/apache2."
- elog
- elog "The apache module configuration file 70_mod_php.conf is"
- elog "provided (and maintained) by eselect-php."
- elog
- fi
-
- # Create the symlinks for php
- local m
- for m in ${SAPIS}; do
- [[ ${m} == 'embed' ]] && continue;
- if use $m ; then
- local ci=$(eselect php show $m)
- if [[ -z $ci ]]; then
- eselect php set $m php${SLOT} || die
- einfo "Switched ${m} to use php:${SLOT}"
- einfo
- elif [[ $ci != "php${SLOT}" ]] ; then
- elog "To switch $m to use php:${SLOT}, run"
- elog " eselect php set $m php${SLOT}"
- elog
- fi
- fi
- done
-
- # Remove dead symlinks for SAPIs that were just disabled. For
- # example, if the user has the cgi SAPI enabled, then he has an
- # eselect-php symlink for it. If he later reinstalls PHP with
- # USE="-cgi", that symlink will break. This call to eselect is
- # supposed to remove that dead link per bug 572436.
- eselect php cleanup || die
-
- if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
- elog "To build extensions for this version of PHP, you will need to"
- elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
- elog
- fi
-
- # Warn about the removal of PHP_INI_VERSION if the user has it set.
- if [[ -n "${PHP_INI_VERSION}" ]]; then
- ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
- ewarn 'remove it from your configuration at your convenience. See'
- ewarn
- ewarn ' https://bugs.gentoo.org/611214'
- ewarn
- ewarn 'for more information.'
- fi
-
- elog "For details on how version slotting works, please see"
- elog "the wiki:"
- elog
- elog " https://wiki.gentoo.org/wiki/PHP"
- elog
-}
-
-pkg_postrm() {
- # This serves two purposes. First, if we have just removed the last
- # installed version of PHP, then this will remove any dead symlinks
- # belonging to eselect-php. Second, if a user upgrades slots from
- # (say) 5.6 to 7.0 and depcleans the old slot, then this will update
- # his existing symlinks to point to the new 7.0 installation. The
- # latter is bug 432962.
- #
- # Note: the eselect-php package may not be installed at this point,
- # so we can't die() if this command fails.
- eselect php cleanup
-}
diff --git a/dev-lang/php/php-8.2.18.ebuild b/dev-lang/php/php-8.2.18.ebuild
deleted file mode 100644
index a7ece279280a..000000000000
--- a/dev-lang/php/php-8.2.18.ebuild
+++ /dev/null
@@ -1,863 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-WANT_AUTOMAKE="none"
-
-inherit flag-o-matic multilib systemd autotools
-
-DESCRIPTION="The PHP language runtime engine"
-HOMEPAGE="https://www.php.net/"
-SRC_URI="https://www.php.net/distributions/${P}.tar.xz"
-
-LICENSE="PHP-3.01
- BSD
- Zend-2.0
- bcmath? ( LGPL-2.1+ )
- fpm? ( BSD-2 )
- gd? ( gd )
- unicode? ( BSD-2 LGPL-2.1 )"
-
-SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ~ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-
-# We can build the following SAPIs in the given order
-SAPIS="embed cli cgi fpm apache2 phpdbg"
-
-# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
-IUSE="${IUSE}
- ${SAPIS/cli/+cli}
- threads"
-
-IUSE="${IUSE} acl apparmor argon2 avif bcmath berkdb bzip2 calendar
- cdb cjk +ctype curl debug
- enchant exif ffi +fileinfo +filter firebird
- +flatfile ftp gd gdbm gmp +iconv imap inifile
- intl iodbc ipv6 +jit kerberos ldap ldap-sasl libedit lmdb
- mhash mssql mysql mysqli nls
- oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
- readline selinux +session session-mm sharedmem
- +simplexml snmp soap sockets sodium spell sqlite ssl
- sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode
- valgrind webp +xml xmlreader xmlwriter xpm xslt zip zlib"
-
-# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
-# The Oracle instant client provides its own incompatible ldap library.
-REQUIRED_USE="
- || ( cli cgi fpm apache2 embed phpdbg )
- avif? ( gd zlib )
- cli? ( ^^ ( readline libedit ) )
- !cli? ( ?? ( readline libedit ) )
- truetype? ( gd zlib )
- webp? ( gd zlib )
- cjk? ( gd zlib )
- exif? ( gd zlib )
- xpm? ( gd zlib )
- gd? ( zlib )
- simplexml? ( xml )
- soap? ( xml )
- xmlreader? ( xml )
- xmlwriter? ( xml )
- xslt? ( xml )
- ldap-sasl? ( ldap )
- oci8-instant-client? ( !ldap )
- qdbm? ( !gdbm )
- session-mm? ( session !threads )
- mysql? ( || ( mysqli pdo ) )
- firebird? ( pdo )
- mssql? ( pdo )
- test? ( cli )
-"
-
-RESTRICT="!test? ( test )"
-
-# The supported (that is, autodetected) versions of BDB are listed in
-# the ./configure script. Other versions *work*, but we need to stick to
-# the ones that can be detected to avoid a repeat of bug #564824.
-COMMON_DEPEND="
- >=app-eselect/eselect-php-0.9.7[apache2?,fpm?]
- >=dev-libs/libpcre2-10.30[jit?,unicode]
- virtual/libcrypt:=
- fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) selinux? ( sys-libs/libselinux ) )
- apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
- argon2? ( app-crypt/argon2:= )
- avif? ( media-libs/libavif:= )
- berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) )
- bzip2? ( app-arch/bzip2:0= )
- cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
- curl? ( >=net-misc/curl-7.29.0 )
- enchant? ( app-text/enchant:2 )
- ffi? ( >=dev-libs/libffi-3.0.11:= )
- firebird? ( dev-db/firebird )
- gd? ( media-libs/libjpeg-turbo:0= media-libs/libpng:0= )
- gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
- gmp? ( dev-libs/gmp:0= )
- iconv? ( virtual/libiconv )
- imap? ( net-libs/c-client[kerberos=,ssl=] )
- intl? ( dev-libs/icu:= )
- kerberos? ( virtual/krb5 )
- ldap? ( >=net-nds/openldap-1.2.11:= )
- ldap-sasl? ( dev-libs/cyrus-sasl )
- libedit? ( dev-libs/libedit )
- lmdb? ( dev-db/lmdb:= )
- mssql? ( dev-db/freetds[mssql] )
- nls? ( sys-devel/gettext )
- oci8-instant-client? ( dev-db/oracle-instantclient[sdk] )
- odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) )
- postgres? ( >=dev-db/postgresql-9.1:* )
- qdbm? ( dev-db/qdbm )
- readline? ( sys-libs/readline:0= )
- session-mm? ( dev-libs/mm )
- snmp? ( >=net-analyzer/net-snmp-5.2 )
- sodium? ( dev-libs/libsodium:=[-minimal(-)] )
- spell? ( >=app-text/aspell-0.50 )
- sqlite? ( >=dev-db/sqlite-3.7.6.3 )
- ssl? ( >=dev-libs/openssl-1.0.2:0= )
- tidy? ( app-text/htmltidy )
- tokyocabinet? ( dev-db/tokyocabinet )
- truetype? ( =media-libs/freetype-2* )
- unicode? ( dev-libs/oniguruma:= )
- valgrind? ( dev-debug/valgrind )
- webp? ( media-libs/libwebp:0= )
- xml? ( >=dev-libs/libxml2-2.9.0 )
- xpm? ( x11-libs/libXpm )
- xslt? ( dev-libs/libxslt )
- zip? ( >=dev-libs/libzip-1.2.0:= )
- zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
-"
-
-IDEPEND=">=app-eselect/eselect-php-0.9.7[apache2?,fpm?]"
-
-RDEPEND="${COMMON_DEPEND}
- virtual/mta
- fpm? (
- selinux? ( sec-policy/selinux-phpfpm )
- systemd? ( sys-apps/systemd ) )"
-
-# Bison isn't actually needed when building from a release tarball
-# However, the configure script will warn if it's absent or if you
-# have an incompatible version installed. See bug 593278.
-DEPEND="${COMMON_DEPEND}
- app-arch/xz-utils
- >=sys-devel/bison-3.0.1"
-
-BDEPEND="virtual/pkgconfig"
-
-PHP_MV="$(ver_cut 1)"
-
-PATCHES=(
- "${FILESDIR}/php-iodbc-header-location.patch"
- "${FILESDIR}/php-capstone-optional.patch"
- "${FILESDIR}/php-8.2.8-openssl-tests.patch"
- "${FILESDIR}/fix-musl-llvm.patch"
-)
-
-# ARM/Windows functions (bug 923335)
-QA_CONFIG_IMPL_DECL_SKIP=(
- __crc32d
- _controlfp
- _controlfp_s
-)
-
-# Functions from alternate iconv implementations (bug 925268)
-QA_CONFIG_IMPL_DECL_SKIP+=(
- iconv_ccs_init
- cstoccsid
-)
-
-php_install_ini() {
- local phpsapi="${1}"
-
- # work out where we are installing the ini file
- php_set_ini_dir "${phpsapi}"
-
- # Always install the production INI file, bug 611214.
- local phpinisrc="php.ini-production-${phpsapi}"
- cp php.ini-production "${phpinisrc}" || die
-
- # default to /tmp for save_path, bug #282768
- sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
-
- # Set the extension dir
- sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
- -i "${phpinisrc}" || die
-
- # Set the include path to point to where we want to find PEAR packages
- sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
-
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- newins "${phpinisrc}" php.ini
-
- elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
- elog
-
- dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
- dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
-
- if use opcache; then
- elog "Adding opcache to $PHP_EXT_INI_DIR"
- echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
- "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
- dosym "../ext/opcache.ini" \
- "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
- fi
-
- # SAPI-specific handling
- if [[ "${sapi}" == "fpm" ]] ; then
- einfo "Installing FPM config files php-fpm.conf and www.conf"
- insinto "${PHP_INI_DIR#${EPREFIX}}"
- doins sapi/fpm/php-fpm.conf
- insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
- doins sapi/fpm/www.conf
- fi
-
- dodoc php.ini-{development,production}
-}
-
-php_set_ini_dir() {
- PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
- PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
- PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
-}
-
-src_prepare() {
- default
-
- # In php-7.x, the FPM pool configuration files have been split off
- # of the main config. By default the pool config files go in
- # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
- # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
- # we'll install the pool configuration file "www.conf" there.
- php_set_ini_dir fpm
- sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
- sapi/fpm/php-fpm.conf.in \
- || die 'failed to move the include directory in php-fpm.conf'
-
- # Emulate buildconf to support cross-compilation
- rm -fr aclocal.m4 autom4te.cache config.cache \
- configure main/php_config.h.in || die
- eautoconf --force
- eautoheader
-
- # missing skipif; fixed upstream already
- rm sapi/cgi/tests/005.phpt || die
-
- # These three get BORKED on no-ipv6 systems,
- #
- # https://github.com/php/php-src/pull/11651
- #
- rm ext/sockets/tests/mcast_ipv6_recv.phpt \
- ext/sockets/tests/mcast_ipv6_recv_limited.phpt \
- ext/sockets/tests/mcast_ipv6_send.phpt \
- || die
-
- # fails in a network sandbox,
- #
- # https://github.com/php/php-src/issues/11662
- #
- rm ext/sockets/tests/bug63000.phpt || die
-
- # expected output needs to be updated,
- #
- # https://github.com/php/php-src/pull/11648
- #
- rm ext/dba/tests/dba_tcadb.phpt || die
-
- # Two IMAP tests missing SKIPIFs,
- #
- # https://github.com/php/php-src/pull/11654
- #
- rm ext/imap/tests/imap_mutf7_to_utf8.phpt \
- ext/imap/tests/imap_utf8_to_mutf7_basic.phpt \
- || die
-
- # broken upstream with icu-73.x,
- #
- # https://github.com/php/php-src/issues/11128
- #
- rm ext/intl/tests/calendar_clear_variation1.phpt || die
-
- # overly sensitive to INI values; fixes sent upstream:
- #
- # https://github.com/php/php-src/pull/11631
- #
- rm ext/session/tests/{bug74514,bug74936,gh7787}.phpt || die
-
- # This is sensitive to the current "nice" level:
- #
- # https://github.com/php/php-src/issues/11630
- #
- rm ext/standard/tests/general_functions/proc_nice_basic.phpt || die
-
- # Tests ignoring the "-n" flag we pass to run-tests.php,
- #
- # https://github.com/php/php-src/pull/11669
- #
- rm ext/standard/tests/file/bug60120.phpt \
- ext/standard/tests/general_functions/proc_open_null.phpt \
- ext/standard/tests/general_functions/proc_open_redirect.phpt \
- ext/standard/tests/general_functions/proc_open_sockets1.phpt \
- ext/standard/tests/general_functions/proc_open_sockets2.phpt \
- ext/standard/tests/general_functions/proc_open_sockets3.phpt \
- ext/standard/tests/ini_info/php_ini_loaded_file.phpt \
- sapi/cli/tests/016.phpt \
- sapi/cli/tests/023.phpt \
- sapi/cli/tests/bug65275.phpt \
- sapi/cli/tests/bug74600.phpt \
- sapi/cli/tests/bug78323.phpt \
- || die
-
- # Same TEST_PHP_EXTRA_ARGS (-n) issue with this one, but it's
- # already been fixed upstream.
- rm sapi/cli/tests/017.phpt || die
-
- # Most Oracle tests are borked,
- #
- # * https://github.com/php/php-src/issues/11804
- # * https://github.com/php/php-src/pull/11820
- # * https://github.com/php/php-src/issues/11819
- #
- rm ext/oci8/tests/*.phpt || die
-
- # https://github.com/php/php-src/issues/12801
- rm ext/pcre/tests/gh11374.phpt || die
-
- # This is a memory usage test with hard-coded limits. Whenever the
- # limits are surpassed... they get increased... but in the meantime,
- # the tests fail. This is not really a test that end users should
- # be running pre-install, in my opinion. Bug 927461.
- rm ext/fileinfo/tests/bug78987.phpt || die
-
- # glibc-2.39 compatibility, fixed upstream in
- # https://github.com/php/php-src/pull/14097
- rm ext/standard/tests/strings/setlocale_variation3.phpt || die
-}
-
-src_configure() {
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527
- filter-lto
-
- PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
-
- # Don't allow ./configure to detect and use an existing version
- # of PHP; this can lead to all sorts of weird unpredictability
- # as in bug 900210.
- export ac_cv_prog_PHP=""
-
- # The php-fpm config file wants localstatedir to be ${EPREFIX}/var
- # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
- local our_conf=(
- --prefix="${PHP_DESTDIR}"
- --mandir="${PHP_DESTDIR}/man"
- --infodir="${PHP_DESTDIR}/info"
- --libdir="${PHP_DESTDIR}/lib"
- --with-libdir="$(get_libdir)"
- --localstatedir="${EPREFIX}/var"
- --without-pear
- --without-valgrind
- --with-external-libcrypt
- $(use_enable threads zts)
- )
-
- # The slotted man/info pages will be missed by the default list of
- # docompress paths.
- docompress "${PHP_DESTDIR}/man" "${PHP_DESTDIR}/info"
-
- our_conf+=(
- $(use_with apparmor fpm-apparmor)
- $(use_with argon2 password-argon2 "${EPREFIX}/usr")
- $(use_with avif)
- $(use_enable bcmath)
- $(use_with bzip2 bz2 "${EPREFIX}/usr")
- $(use_enable calendar)
- $(use_enable ctype)
- $(use_with curl)
- $(use_enable xml dom)
- $(use_with enchant)
- $(use_enable exif)
- $(use_with ffi)
- $(use_enable fileinfo)
- $(use_enable filter)
- $(use_enable ftp)
- $(use_with nls gettext "${EPREFIX}/usr")
- $(use_with gmp gmp "${EPREFIX}/usr")
- $(use_with mhash mhash "${EPREFIX}/usr")
- $(use_with iconv iconv \
- $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr"))
- $(use_enable intl)
- $(use_enable ipv6)
- $(use_with kerberos)
- $(use_with xml libxml)
- $(use_enable unicode mbstring)
- $(use_with ssl openssl)
- $(use_enable pcntl)
- $(use_enable phar)
- $(use_enable pdo)
- $(use_enable opcache)
- $(use_with postgres pgsql "${EPREFIX}/usr")
- $(use_enable posix)
- $(use_with selinux fpm-selinux)
- $(use_with spell pspell "${EPREFIX}/usr")
- $(use_enable simplexml)
- $(use_enable sharedmem shmop)
- $(use_with snmp snmp "${EPREFIX}/usr")
- $(use_enable soap)
- $(use_enable sockets)
- $(use_with sodium)
- $(use_with sqlite sqlite3)
- $(use_enable sysvipc sysvmsg)
- $(use_enable sysvipc sysvsem)
- $(use_enable sysvipc sysvshm)
- $(use_with tidy tidy "${EPREFIX}/usr")
- $(use_enable tokenizer)
- $(use_enable xml)
- $(use_enable xmlreader)
- $(use_enable xmlwriter)
- $(use_with xslt xsl)
- $(use_with zip)
- $(use_with zlib zlib "${EPREFIX}/usr")
- $(use_enable debug)
- $(use_with valgrind)
- )
-
- # DBA support
- if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
- || use qdbm || use lmdb || use tokyocabinet ; then
- our_conf+=( "--enable-dba" )
- fi
-
- # DBA drivers support
- our_conf+=(
- $(use_with cdb)
- $(use_with berkdb db4 "${EPREFIX}/usr")
- $(use_enable flatfile)
- $(use_with gdbm gdbm "${EPREFIX}/usr")
- $(use_enable inifile)
- $(use_with qdbm qdbm "${EPREFIX}/usr")
- $(use_with tokyocabinet tcadb "${EPREFIX}/usr")
- $(use_with lmdb lmdb "${EPREFIX}/usr")
- )
-
- # Support for the GD graphics library
- our_conf+=(
- $(use_with truetype freetype)
- $(use_enable cjk gd-jis-conv)
- $(use_with gd jpeg)
- $(use_with xpm)
- $(use_with webp)
- )
- # enable gd last, so configure can pick up the previous settings
- our_conf+=( $(use_enable gd) )
-
- # IMAP support
- if use imap ; then
- our_conf+=(
- $(use_with imap imap "${EPREFIX}/usr")
- $(use_with ssl imap-ssl "${EPREFIX}/usr")
- )
- fi
-
- # LDAP support
- if use ldap ; then
- our_conf+=(
- $(use_with ldap ldap "${EPREFIX}/usr")
- $(use_with ldap-sasl)
- )
- fi
-
- # MySQL support
- our_conf+=( $(use_with mysqli) )
-
- local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
- if use mysql || use mysqli ; then
- our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
- fi
-
- # ODBC support
- if use odbc && use iodbc ; then
- our_conf+=(
- --without-unixODBC
- --with-iodbc
- $(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr")
- )
- elif use odbc ; then
- our_conf+=(
- --with-unixODBC="${EPREFIX}/usr"
- --without-iodbc
- $(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr")
- )
- else
- our_conf+=(
- --without-unixODBC
- --without-iodbc
- --without-pdo-odbc
- )
- fi
-
- # Oracle support
- our_conf+=( $(use_with oci8-instant-client oci8) )
-
- # PDO support
- if use pdo ; then
- our_conf+=(
- $(use_with mssql pdo-dblib "${EPREFIX}/usr")
- $(use_with mysql pdo-mysql "mysqlnd")
- $(use_with postgres pdo-pgsql)
- $(use_with sqlite pdo-sqlite)
- $(use_with firebird pdo-firebird "${EPREFIX}/usr")
- $(use_with oci8-instant-client pdo-oci)
- )
- fi
-
- # readline/libedit support
- our_conf+=(
- $(use_with readline readline "${EPREFIX}/usr")
- $(use_with libedit)
- )
-
- # Session support
- if use session ; then
- our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
- else
- our_conf+=( $(use_enable session) )
- fi
-
- # Use pic for shared modules such as apache2's mod_php
- our_conf+=( --with-pic )
-
- # we use the system copy of pcre
- # --with-external-pcre affects ext/pcre
- our_conf+=(
- --with-external-pcre
- $(use_with jit pcre-jit)
- )
-
- # Catch CFLAGS problems
- # Fixes bug #14067.
- # Changed order to run it in reverse for bug #32022 and #12021.
- replace-cpu-flags "k6*" "i586"
-
- # Cache the ./configure test results between SAPIs.
- our_conf+=( --cache-file="${T}/config.cache" )
-
- # Support user-passed configuration parameters
- our_conf+=( ${EXTRA_ECONF:-} )
-
- # Support the Apache2 extras, they must be set globally for all
- # SAPIs to work correctly, especially for external PHP extensions
-
- # Create separate build trees for each enabled SAPI. The upstream
- # build system doesn't do this, but we have to do it to use a
- # different php.ini for each SAPI (see --with-config-file-path and
- # --with-config-file-scan-dir below). The path winds up define'd
- # in main/build-defs.h which is included in main/php.h which is
- # included by basically everything; so, avoiding a rebuild after
- # changing it is not an easy job.
- local one_sapi
- local sapi
- mkdir "${WORKDIR}/sapis-build" || die
- for one_sapi in $SAPIS ; do
- use "${one_sapi}" || continue
- php_set_ini_dir "${one_sapi}"
-
- # The BUILD_DIR variable is used to determine where to output
- # the files that autotools creates. This was all originally
- # based on the autotools-utils eclass.
- BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
- cp -a "${S}" "${BUILD_DIR}" || die
-
- local sapi_conf=(
- --with-config-file-path="${PHP_INI_DIR}"
- --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
- )
-
- for sapi in $SAPIS ; do
- case "$sapi" in
- cli|cgi|embed|fpm|phpdbg)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( "--enable-${sapi}" )
- if [[ "fpm" == "${sapi}" ]] ; then
- sapi_conf+=(
- $(use_with acl fpm-acl)
- $(use_with systemd fpm-systemd)
- )
- fi
- else
- sapi_conf+=( "--disable-${sapi}" )
- fi
- ;;
-
- apache2)
- if [[ "${one_sapi}" == "${sapi}" ]] ; then
- sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
- else
- sapi_conf+=( --without-apxs2 )
- fi
- ;;
- esac
- done
-
- # Construct the $myeconfargs array by concatenating $our_conf
- # (the common args) and $sapi_conf (the SAPI-specific args).
- local myeconfargs=( "${our_conf[@]}" )
- myeconfargs+=( "${sapi_conf[@]}" )
-
- pushd "${BUILD_DIR}" > /dev/null || die
- einfo "Running econf in ${BUILD_DIR}"
- econf "${myeconfargs[@]}"
- popd > /dev/null || die
- done
-}
-
-src_compile() {
- # snmp seems to run during src_compile, too (bug #324739)
- addpredict /usr/share/snmp/mibs/.index #nowarn
- addpredict /var/lib/net-snmp/mib_indexes #nowarn
-
- if use oci8-instant-client && use kerberos && use imap && use phar; then
- # A conspiracy takes place when the first three of these flags
- # are set together, causing the newly-built "php" to open
- # /dev/urandom with mode rw when it starts. That's not actually
- # a problem... unless you also have USE=phar, which runs that
- # "php" to build some phar thingy in src_compile(). Later in
- # src_test(), portage (at least) sets "addpredict /" so the
- # problem does not repeat.
- addpredict /dev/urandom #nowarn
- fi
-
- local sapi
- for sapi in ${SAPIS} ; do
- use "${sapi}" && emake -C "${WORKDIR}/sapis-build/${sapi}"
- done
-}
-
-src_install() {
- # see bug #324739 for what happens when we don't have that
- addpredict /usr/share/snmp/mibs/.index #nowarn
-
- # grab the first SAPI that got built and install common files from there
- local first_sapi="", sapi=""
- for sapi in $SAPIS ; do
- if use $sapi ; then
- first_sapi=$sapi
- break
- fi
- done
-
- # Makefile forgets to create this before trying to write to it...
- dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
-
- # Install php environment (without any sapis)
- cd "${WORKDIR}/sapis-build/$first_sapi" || die
- emake INSTALL_ROOT="${D}" \
- install-build install-headers install-programs
-
- local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
-
- # Create the directory where we'll put version-specific php scripts
- keepdir "/usr/share/php${PHP_MV}"
-
- local file=""
- local sapi_list=""
-
- for sapi in ${SAPIS}; do
- if use "${sapi}" ; then
- einfo "Installing SAPI: ${sapi}"
- cd "${WORKDIR}/sapis-build/${sapi}" || die
-
- if [[ "${sapi}" == "apache2" ]] ; then
- # We're specifically not using emake install-sapi as libtool
- # may cause unnecessary relink failures (see bug #351266)
- insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
- newins ".libs/libphp$(get_libname)" \
- "libphp${PHP_MV}$(get_libname)"
- keepdir "/usr/$(get_libdir)/apache2/modules"
- else
- # needed each time, php_install_ini would reset it
- local dest="${PHP_DESTDIR#${EPREFIX}}"
- into "${dest}"
- case "$sapi" in
- cli)
- source="sapi/cli/php"
- # Install the "phar" archive utility.
- if use phar ; then
- emake INSTALL_ROOT="${D}" install-pharcmd
- dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}"
- fi
- ;;
- cgi)
- source="sapi/cgi/php-cgi"
- ;;
- fpm)
- source="sapi/fpm/php-fpm"
- ;;
- embed)
- source="libs/libphp$(get_libname)"
- ;;
- phpdbg)
- source="sapi/phpdbg/phpdbg"
- ;;
- *)
- die "unhandled sapi in src_install"
- ;;
- esac
-
- if [[ "${source}" == *"$(get_libname)" ]]; then
- dolib.so "${source}"
- else
- dobin "${source}"
- local name="$(basename ${source})"
- dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}"
- fi
- fi
-
- php_install_ini "${sapi}"
-
- # construct correct SAPI string for php-config
- # thanks to ferringb for the bash voodoo
- if [[ "${sapi}" == "apache2" ]]; then
- sapi_list="${sapi_list:+${sapi_list} }apache2handler"
- else
- sapi_list="${sapi_list:+${sapi_list} }${sapi}"
- fi
- fi
- done
-
- # Installing opcache module
- if use opcache ; then
- into "${PHP_DESTDIR#${EPREFIX}}"
- dolib.so "modules/opcache$(get_libname)"
- fi
-
- # Install env.d files
- newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
- sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
- sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
-
- # set php-config variable correctly (bug #278439)
- sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
- "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
-
- if use fpm ; then
- if use systemd; then
- systemd_newunit "${FILESDIR}/php-fpm_at.service" \
- "php-fpm@${SLOT}.service"
- else
- systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
- "php-fpm@${SLOT}.service"
- fi
- fi
-}
-
-src_test() {
- export TEST_PHP_EXECUTABLE="${WORKDIR}/sapis-build/cli/sapi/cli/php"
-
- # Sometimes when the sub-php launches a sub-sub-php, it uses these.
- # Without an "-n" in all instances, the *live* php.ini can be loaded,
- # pulling in *live* zend extensions. And those can be incompatible
- # with the thing we just built.
- export TEST_PHP_EXTRA_ARGS="-n"
-
- if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
- export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
- fi
-
- if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
- export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
- fi
-
- # The sendmail override prevents ext/imap/tests/bug77020.phpt from
- # actually trying to send mail, and will be fixed upstream soon:
- #
- # https://github.com/php/php-src/issues/11629
- #
- # The IO capture tests need to be disabled because they fail when
- # std{in,out,err} are redirected (as they are within portage).
- #
- # One -n applies to the top-level "php", while the other applies
- # to any sub-php that get invoked by the test runner.
- SKIP_IO_CAPTURE_TESTS=1 SKIP_PERF_SENSITIVE=1 REPORT_EXIT_STATUS=1 \
- "${TEST_PHP_EXECUTABLE}" -n \
- "${WORKDIR}/sapis-build/cli/run-tests.php" --offline -n -q \
- -d "session.save_path=${T}" \
- -d "sendmail_path=echo >/dev/null" \
- || die "tests failed"
-}
-
-pkg_postinst() {
- # Output some general info to the user
- if use apache2 ; then
- elog
- elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
- elog "your apache2 command. OpenRC users can append that string to"
- elog "APACHE2_OPTS in /etc/conf.d/apache2."
- elog
- elog "The apache module configuration file 70_mod_php.conf is"
- elog "provided (and maintained) by eselect-php."
- elog
- fi
-
- # Create the symlinks for php
- local m
- for m in ${SAPIS}; do
- [[ ${m} == 'embed' ]] && continue;
- if use $m ; then
- local ci=$(eselect php show $m)
- if [[ -z $ci ]]; then
- eselect php set $m php${SLOT} || die
- einfo "Switched ${m} to use php:${SLOT}"
- einfo
- elif [[ $ci != "php${SLOT}" ]] ; then
- elog "To switch $m to use php:${SLOT}, run"
- elog " eselect php set $m php${SLOT}"
- elog
- fi
- fi
- done
-
- # Remove dead symlinks for SAPIs that were just disabled. For
- # example, if the user has the cgi SAPI enabled, then he has an
- # eselect-php symlink for it. If he later reinstalls PHP with
- # USE="-cgi", that symlink will break. This call to eselect is
- # supposed to remove that dead link per bug 572436.
- eselect php cleanup || die
-
- if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
- elog "To build extensions for this version of PHP, you will need to"
- elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
- elog
- fi
-
- # Warn about the removal of PHP_INI_VERSION if the user has it set.
- if [[ -n "${PHP_INI_VERSION}" ]]; then
- ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
- ewarn 'remove it from your configuration at your convenience. See'
- ewarn
- ewarn ' https://bugs.gentoo.org/611214'
- ewarn
- ewarn 'for more information.'
- fi
-
- elog "For details on how version slotting works, please see"
- elog "the wiki:"
- elog
- elog " https://wiki.gentoo.org/wiki/PHP"
- elog
-}
-
-pkg_postrm() {
- # This serves two purposes. First, if we have just removed the last
- # installed version of PHP, then this will remove any dead symlinks
- # belonging to eselect-php. Second, if a user upgrades slots from
- # (say) 5.6 to 7.0 and depcleans the old slot, then this will update
- # his existing symlinks to point to the new 7.0 installation. The
- # latter is bug 432962.
- #
- # Note: the eselect-php package may not be installed at this point,
- # so we can't die() if this command fails.
- eselect php cleanup
-}
diff --git a/dev-lang/php/php-8.2.20.ebuild b/dev-lang/php/php-8.2.20.ebuild
index f4a2e43fcdb1..115df248ab4e 100644
--- a/dev-lang/php/php-8.2.20.ebuild
+++ b/dev-lang/php/php-8.2.20.ebuild
@@ -354,6 +354,9 @@ src_prepare() {
# - https://github.com/php/php-src/issues/14786
#
rm ext/dba/tests/dba_gdbm.phpt || die
+
+ # https://github.com/php/php-src/pull/14439
+ rm ext/openssl/tests/bug74341.phpt || die
}
src_configure() {
diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest
index 59c5f61849ac..597b1184adc7 100644
--- a/dev-lang/python/Manifest
+++ b/dev-lang/python/Manifest
@@ -18,34 +18,50 @@ DIST Python-3.13.0b3.tar.xz 20841504 BLAKE2B 92760124355483da082ac9fdc7a72eb6739
DIST Python-3.13.0b3.tar.xz.asc 963 BLAKE2B 784df664961ea36cb570d685c0cf6e8fe7159161c38103f217303bc0264c73a9904021cca297a180c7dd712d4e7fcee161d741919bee49eff962a25d14568d41 SHA512 3d8bdc8c26441a12518940d264e93a8897042e297ccf9cd2ddec725716a58486475be9462582ee489bd189a4d028b43504f979298174c1b008d521b7ab5fbf1b
DIST Python-3.13.0b4.tar.xz 20876136 BLAKE2B b3a7b42b03320df618af18844a8b0f1c4b88b9bcd581cacd2d40d3ecec7d0f11aac36e54913f64541a2287d7a5052aa69f8e8d0379d6bbb4fba78600bf484f75 SHA512 e556f7a4e54b688d0424b0bd84f9849b52f4f7e04c68d4d5b877d86b4f9ded92c9efaa2b7ab33f345235f35e8d544833542f7a4cb100d0ff15b7d98b8367b935
DIST Python-3.13.0b4.tar.xz.asc 963 BLAKE2B 0d9c7baa1eedce684e73359682f63c2aa6e7abc7cc77ee7fcf6d9658e93221c02412aa55f22d16337b72a680f10c70520742292da1138228f9257f81bc57d328 SHA512 243637efff94965aa4d997fe26c91a7c1aa7dcfdf7f78d35d6f4fc408b654dfa9d075d1c73bc5a90d145f6e5029ee395a86faf7e027c24a55fabfea6ca20fbd4
+DIST Python-3.13.0rc1.tar.xz 20881016 BLAKE2B 3971a233e9c3c782973e0276740f00f8f2072eeda914663cdf7fa6c5de2437c60c441184344a64e25cab5c71a02c47cf4602dd08f127f310c885386cd887fec4 SHA512 fce7664f3298cfd191a7dc20b7b47acafdc50d058a2814312c94c30b65291395957d701e4661b9bb760417942acb5d27e5b8bb479bcda9a82cf29f53772a2daf
+DIST Python-3.13.0rc1.tar.xz.asc 963 BLAKE2B 1c292362cd133dbbb1df1e0cf440e8adde2bc8db9174e550d5b76a09e80d0dbc11a0250e6f041e54fe58f25dc05f071c7af1aa910ae56ece5eb430502a2ba67c SHA512 3613829d9631f46b1b1ce11bfe5bb7fbfa49d97b639bb883c86737ea6ae8d15c24c526083cafb916011bd6d0b3b5fab2b17afd367edbdce99b32e0b4b845fd22
DIST Python-3.8.19.tar.xz 18975156 BLAKE2B 57b241aeb8f99a8c30590dcb9402abbcf573f00d06e807846bc9135c0a8a4af896c4d772d34abc3c292339953f4974a203bff61a78641d91b1826770226cd7e9 SHA512 1d2a57fa15ccdaec8cdca508ba2ffb01e1ae053a3446ac709bc334480f8e913070899f01ed680cce6dc7ddfddcb27ef402fe206562249fa4c4e87be21ece0625
DIST Python-3.8.19.tar.xz.asc 833 BLAKE2B a11705011e9ea2bd6cbabc2b4c896ba94675341188eb483b881c2cb25c932e9ff25f9f589f930605b0442ff93a1f54532608b111c8ace715a406ce10809af671 SHA512 efdaae5462badcf4b98625ce8ab0e34756acea9539416e6ec428725b04539f8c38c1978de346510d669e93bbeef3ae20b1534e4c6582f89c7dc56a04c7cae140
DIST Python-3.9.19.tar.xz 19682840 BLAKE2B a12256663f0ff3b799c2193c5877aa89a434340dfa01e655f790abea70af0709b54577e1c2590add241308a8581fd6f45a22aed450bd5db2bf9fa35c4a9d619b SHA512 5577830c734e63a70bbc62cd33d263b9aa87c4381b49cb694c3559067c4c682a55506b65ec5514a8e0a5abf6294dc728e909385d449ae1c388e62f83cea9bb89
DIST Python-3.9.19.tar.xz.asc 833 BLAKE2B b48b58b8ccf4d6ba8d0d7120f04bebf59f843ffecf5fde4c3989fd9c26e3d3d1ccf4e5688f7024ae94775c8731e9ffa56799fca8596289edf93e4aac5480aaad SHA512 f7f4946243dfc56de2c84f50276b088d347f17054f50e3331d1e312e2a8e2c6ed1b4b4a807202b51137fd2af3fc9218cafa42ed348a954ace896d9a432e2defd
DIST python-gentoo-patches-2.7.18_p16.tar.xz 35448 BLAKE2B 0139c0944f62f9cdd236f6a8557e0ed19704c7d72869af1cb7d8bd3e646a746cd4a0201e1b44232a5e78ef49f254db20b0d0271bf744fbfd4fe0f1e99b8f3e6c SHA512 810be590d0e06fab4b2165e6852ca49662f09dcd7e20b47a29f613ad7653252c8dfac3f0eb228d77c8a914efa7c08788b2fbd552a4b47504f5fd0ec17450c48f
DIST python-gentoo-patches-3.10.14_p1.tar.xz 15836 BLAKE2B a850e4ad4f025fa9d38ccba937f1b3ee8443ed186c22ede58b4c7324a8541cf724590686671a9aa9194662303ce75bc80aac8ee6f9da34b793876817b6f593ff SHA512 5d969f5e5126ee675a062924a5f403de142fc5bfe4a931fd3576bcc6298a855419d305d4b1ffedacb429783a05324b36eef4c45c861c47bada0bdd840de2bca3
+DIST python-gentoo-patches-3.10.14_p2.tar.xz 19564 BLAKE2B 2ad1398e0679e73028a0614e8c4ef6bc76928f6c1d0e93c39c3bf2c23201904ee677377abb120444995154bda4251cb8f0aabafca5e6c82601a6270d0e62bf67 SHA512 6d4194b85a176a1a0f7acc3eab48829d504e66381f3008821a9a433e63f5188b444321192ad536d8219a1c3ca56dbdb5c39439401cbbb30f35a606e2b6617624
DIST python-gentoo-patches-3.11.9.tar.xz 8456 BLAKE2B 4e62837f17c1d056460df417b056a79ad78dbcdd3454761c7cda68ffe6faf8f4d4f04d5539e0ba94332fe19a751f7d5ff2c35ff969a6aa09a2c72d2ce5efbff1 SHA512 a288aa8d1d15e906e0f1762602a2122f9dc91bbd6b72123ac5d00ce55b3af324a4e8280b600fc0fb630e489e57ee1547d7595a4ede7a70e4b26d6686a8414997
+DIST python-gentoo-patches-3.11.9_p1.tar.xz 12348 BLAKE2B 885c18eb52d299c8da43fe48106a2464ce594822e8ed362150c98f749065447b7438741cacf82a71db102434a5b2a2e91778aca8609fd7ede7898f9e57a82d49 SHA512 2ed8a97692a8980e565038ad095dad8ed3daf1f8c5c5e042a0bc278c320e099962ad13b5ff919ae334674a4828c5e8f3b9c3af6b3c37e93a42374284f5ea2243
DIST python-gentoo-patches-3.12.3.tar.xz 6028 BLAKE2B 7953a48a1d95a6a33bd88060fbcac463a5469371aa0c882c3945f1fea64a63c4d45fca8451f51f4eaeea00a04267ad2e54e4cc720c95e8bb5a3477e00263b80a SHA512 4779bab2b24e59e4a77987ce3e9611d99e87c9c4d016309758c26a65fe2e11ef04d48d5af628c02b1552dc1f31b768f87448f8e19e716b4fe372941e6dacac3f
DIST python-gentoo-patches-3.12.4_p1.tar.xz 7088 BLAKE2B 450b95539aaf7c8c052ca1bbcab3b1a8f1c33e8007b6c66cc290c33d88cac8bad346e13cf96508834599a59ccb6548e6dd8cbfb1e24d84539f502101b04299d0 SHA512 df874cb1d8d0f5df60fca82daa2a59cbcfeba6be72b021101a753306a09bb19ee268681b3fdb39659be923d868c727bf7aabbe8173cfd48a329c66f4727353c7
DIST python-gentoo-patches-3.12.4_p2.tar.xz 11124 BLAKE2B 8e49af60b1e514de9b77c562a8df5ae7d6caf0045e631fcf85a8f91335cf18f1df2ac611ea73d26e5b70c2537beb423a9303dcce41c2c2e2b049ee9f1e537b53 SHA512 df1d49e60d23f5f09144c57034c86f81f8d185f65c3a93bbb2b386977638bd525b45fe1dff8c7202d60ca3a5fdf96b94a492b076072713565e7449b679fde7b5
+DIST python-gentoo-patches-3.12.4_p3.tar.xz 14796 BLAKE2B 68f5235ef434f9db16e7bc635ff51b6607cfb9be713fdc3c0ef624ec0f513345f6e02e27b8ebc2b3c8a5fcd4f4f5161024407ae364bdffd3b22a7a9d3a509b30 SHA512 8e337a7234b8ad64dd82435dcda0ef4e90c21214bd7b13a83fe9ba700d5b07ce11fb33b7d34d808132120b4a077fde26278b87116bb02ccef50470c046a66d2b
DIST python-gentoo-patches-3.13.0b1_p3.tar.xz 11056 BLAKE2B ef932bac59d2316ee8fe638a3d34ce247ff587915546038627674cd4c03179998a58336f8ebae45f1fcc94c8059d61ff6f22693f25ace1462bce275f50bfb48f SHA512 956e3da7376d60d7a593af50fff9842016a3b193180e93ab8298756c9eedfb2aaf8c1287bb75111e6340b5bac20a12dcb00ef51ecf0e12ef9ae5c98202fb071b
DIST python-gentoo-patches-3.13.0b2_p9.tar.xz 11288 BLAKE2B e46bac845ce54e32446316b8a5e055905f023e88ad7fb9cfed101f0fccf6c0fef2fb9fd5b7dc4b15ec1e6c075ceaa9f07777c3cfede0f88412871beac0a54e47 SHA512 4148342d649acd98cce1f3d3c7bdbf4adad069ba555624882ddb69f00ee0e64641014086b5e60d97eac809ccb1e3e782a112eb58d7bb83bcfa3222811cbb8682
DIST python-gentoo-patches-3.13.0b3.tar.xz 5704 BLAKE2B 665f60d0a440c63ca6bbc1615333e01e0b9d3c5cd8c871157866dd70146a9afb71aecdb6f72f75de2fd8c163d011c8df538c8b278ad6a91079f3300bd05fead3 SHA512 959826aaf467235c8a144a2b94137113b273f79febd30fee0556b718132bb89b5ba97bc01a3718771cade099777f131b322682f336dfaabe18cd5838a75318fa
DIST python-gentoo-patches-3.13.0b3_p1.tar.xz 8716 BLAKE2B 25b2d9f059c6f31a354b19833a3dfaab446a43ca00bbaa415e38c3ede6c4a738046469ca4ef6e184a5d7df33a8a1c5209271a1eb0728c3791e6630953bcd798f SHA512 57bbe0470e3356cef3b1880cedd18d4e84d6f64d1f398ce3e3e729744ac5f7a4dc4144333e2355f9ecf41c58382ab5708e7dbf7d480dbf797caa460862aee3bd
DIST python-gentoo-patches-3.13.0b4.tar.xz 5700 BLAKE2B cc3e6d899dc51dc4a0f4b57fb5a891a61e5ba5a943edd31b55b6540f1d52a61f2a80f8ac1cdbc36ce155a83ab3942b8991fad0e83baab4c0a1080e62b30e16df SHA512 bf236ed221512a032a057f8b89b29a28e84cfaba56f58c2eaacee846db636089b2ae4534dc55ff3389cfbf1a4485e1cc2049a5cdb98ec1cd31eef71de60596c1
+DIST python-gentoo-patches-3.13.0rc1.tar.xz 5696 BLAKE2B c34beb06ea6052b297e1bc5ec790f712a6d8acfa23b16b44dd8a7fc2788a4ba266da21cc2f463e79f10749e2f4752ae34c7074a0e588e84614020e6acd86403b SHA512 a6a2e8dc2a35a76b265788658cd8ecf2f5b7f466701cf4599df300eb8914435198f26789dafa309a7dc4c23e0da2aeb905c8175611f6fa50f622e70016212202
+DIST python-gentoo-patches-3.13.0rc1_p1.tar.xz 9840 BLAKE2B f8f52be8fde89793e5692a4693c030980a32651626cc6184f962d7d9dc9209ce6593f127ff279b71fda4fafeec148af80971bdb6dcaf129f63cc52238a34630f SHA512 e0d3aaf528ffeed8335f98dd4bfd43da8274757b0ae9f6a473134e9b57eafe12b870e41e1aafa52c2bd96de1b7ab9b9f225ddf8e87eec51f088b5484b3c92852
DIST python-gentoo-patches-3.8.19_p2.tar.xz 35524 BLAKE2B a6b81e6ae907b60eea676cb65a9c693e62453dc44616baaadb294c5782a195c20eff6c2869b38ea110fe06e9e511468f4ab0c3d1811b16e0ab2833f9dc09b25b SHA512 9944c330b6062c2ac6e13fcfbc1c8835dfd078f6744cdfbc03ba787ae97c08bdae559cefadafe9dfe9be9c31f8c15ee895599b266d870f73c06a2f4b15c78dc3
+DIST python-gentoo-patches-3.8.19_p3.tar.xz 39392 BLAKE2B 451765c7546831c35f52e2772b8b43b6515f66cace2d13ed473228bf2d2b18f49b938a61d4cdf1be0fecbebfac1fc8d3d95f7597eb9d877c0b2ce495e8d419c1 SHA512 76e405ddfd3ee98dbd077f6ec83ae93d0506ddbc3b2b8884a0f38c6269ea982b635b0eb7820f6f9b2f81eb0ef514b93a5eb10437414cde4de2bfb7ea37764b3c
DIST python-gentoo-patches-3.9.19_p3.tar.xz 28240 BLAKE2B 35c70b1f9a590abe9a74795f478ab788cd72c96e9d84f2756685e61324dc4203148e71b00a236bb4af8fb8315e3582ecec255b39749a653e0511d4a9f9fef725 SHA512 6b8f4dab4aa7d4d646ee4091b5cf76bbc8896d4299a3623660a2c5fec06c0cf56c0a50ac87604885cd155141bc85e0e80acdbedb7b34a813901aad021b9b8ab2
+DIST python-gentoo-patches-3.9.19_p4.tar.xz 32048 BLAKE2B 9595d508304baf36a2c8daa2ae15d3596fdfb5fed5c531fc379ee347d5b165885ade1842f094184fb7bd81a6385e45f9b77ba7bfa4334ea30292c0bc59b373e2 SHA512 5713c69ee3745246a570e0f05ac8f45baa8f9fa8a2154c930f1ddcf827a2a790cb5e308f5ff9452d3ffda5d60c167a02429af773eebf13dcb6463793cd448500
EBUILD python-2.7.18_p16-r2.ebuild 8603 BLAKE2B 6a2ee7f1a5d0eae487cf0293fb2528c97679d0fb395cd51f00a08ede8abb473f3e16051c8b7b797a99c4462d520955c01b1b0d238caf0652a3166034bed60839 SHA512 e498d3f4904e2cf2de6a6d0beb8e573a462bc96970c861616bd12956434154146e1625ea36b44f984b82f3d6cc90b33860b71c4067002b7f96510eb5e632e572
EBUILD python-3.10.14_p1-r1.ebuild 14742 BLAKE2B 52b80ddc253a2c2d60422af667dd04519404b6b1ed979fa0992b95dd471449ec1dcac814f49aa38cc0d7fcf6af5ed40035f8801cd2fc988865b61430dd511461 SHA512 272d8889f14ed94e72140afbc650b502b7f5a881ff681c760e307b2eb873679ae105fd87af3097c69eaef2b4a396fe7673505e1a0fd6ea4220d40a6a589d00a1
+EBUILD python-3.10.14_p2.ebuild 14750 BLAKE2B 66b25f15ad2b70e66cf39b00fcf6c87b6a5addd9bffa57b5fb829e39c2a152ea0b9a03dcb36c3aca055451ea26c08033c025d041dfbf512dce21b071dda93266 SHA512 49803d7fb19b44728ab249202880df88c716fbe5c016cd837d2c7f77c56fb9da4df8fe128da37b807e8818b912705607ad2ed7dde5b883131ff03499903d8593
EBUILD python-3.11.9-r1.ebuild 15854 BLAKE2B f0c4576472eeea91a436eb64a0555a6db1125370bb0a586aa520e76047d8615603e23b8fb415fe86ed19ecd29038ae5bc7354e7d33c1bcd004ab82f62b5391dc SHA512 57cbe71b9d90e2fe06d28ad0fdee30da1d0ae9dbc4163e15b98f78069a7a7bb0a4312d8caa26fe23e74234c73f0b48409d77b28e40f47bf83667e7717d36fe32
+EBUILD python-3.11.9_p1.ebuild 15859 BLAKE2B 3912f98a53ed4023e4aa1f3e5469daf2024f02db9e172304b3682d6af379a7f16595d08113f8e53ad099d2568a8c5c38ee64d3b4a638c069a3f7e4ac1bc22ffc SHA512 5da6b28c883fbaafd273f97203d5fc573b79f96dde44b9c8ad50749725928aafe82a8ed73ecb7b17d29828dbc38dddde66a53fae57c4bc0a161eb186cf16b413
EBUILD python-3.12.3-r1.ebuild 15415 BLAKE2B eccb47a2bea4df5bf3d1116afa348ddb87ed03f7031e5742ecf8e06cb875bb6a79f800313ca4ac7ed1cbae81de65f8aaf80616a1e423d8362480447b33860348 SHA512 4c9423cf3c24f4cc2dd095a7340277c0b119dcc95281cc08e23019ef6d9478af77b9b1961dedbac2709cc05923dcc6c1ac5ef1727106068431d21a9e8613aa21
EBUILD python-3.12.4_p1.ebuild 14881 BLAKE2B c3a4339cd5cf2bb6f97bf60142dfa022b5cc421da66d209247fbdc6c1c2ebd3cb701689ea50d3cfe897ecfe48a801edaabd6160a0ed747f5dfc407569d93ad8b SHA512 6572c6ed811576377ed5de3e5e12bb7de0795b802a4cbd60eebca7d82ac0dd07afa3ee05a9b98ffe45a4aa4dd6aeaaa4acf8b5f34d19cd76efb129e3c50dac4e
EBUILD python-3.12.4_p2.ebuild 14881 BLAKE2B c3a4339cd5cf2bb6f97bf60142dfa022b5cc421da66d209247fbdc6c1c2ebd3cb701689ea50d3cfe897ecfe48a801edaabd6160a0ed747f5dfc407569d93ad8b SHA512 6572c6ed811576377ed5de3e5e12bb7de0795b802a4cbd60eebca7d82ac0dd07afa3ee05a9b98ffe45a4aa4dd6aeaaa4acf8b5f34d19cd76efb129e3c50dac4e
+EBUILD python-3.12.4_p3.ebuild 14881 BLAKE2B c3a4339cd5cf2bb6f97bf60142dfa022b5cc421da66d209247fbdc6c1c2ebd3cb701689ea50d3cfe897ecfe48a801edaabd6160a0ed747f5dfc407569d93ad8b SHA512 6572c6ed811576377ed5de3e5e12bb7de0795b802a4cbd60eebca7d82ac0dd07afa3ee05a9b98ffe45a4aa4dd6aeaaa4acf8b5f34d19cd76efb129e3c50dac4e
EBUILD python-3.13.0_beta1_p3.ebuild 17346 BLAKE2B 83266bc2fb4b68f001c6669b02c83909ec1eb2cb1dfc69f5a14a9a33fcbeba76c3bf6068f1b38a5ba8d3e64dfa9e04df896b4cdd51d149e94f843ffcd61d51e5 SHA512 0ba4fdd9d5531f045565c8da01e9e1a455160e4d1767b7e3f4a5f667cc300e8b1a9fb47023ca2f3b4b64a54b346648cdd56fd200bbd9be71712757de9680059d
EBUILD python-3.13.0_beta2_p9.ebuild 17108 BLAKE2B 1f22231f8246ff3c78b119b3ff8b574efac464bf25a9a82ff7eedd7632acb52d4457b586b50d23f0c06e15618f733daf4691a08cf54db2ff700e4f39d85295fd SHA512 ca0b2941ea726c1d03cd39f7bd434ce994669d79fec7bdfd2a7d06c7fc8c620bd0fbbe8e78c7ac4ba4903c9d95058e2a397c2d7960f547248e35764785aad86a
EBUILD python-3.13.0_beta3.ebuild 17108 BLAKE2B 1f22231f8246ff3c78b119b3ff8b574efac464bf25a9a82ff7eedd7632acb52d4457b586b50d23f0c06e15618f733daf4691a08cf54db2ff700e4f39d85295fd SHA512 ca0b2941ea726c1d03cd39f7bd434ce994669d79fec7bdfd2a7d06c7fc8c620bd0fbbe8e78c7ac4ba4903c9d95058e2a397c2d7960f547248e35764785aad86a
EBUILD python-3.13.0_beta3_p1.ebuild 17108 BLAKE2B 1f22231f8246ff3c78b119b3ff8b574efac464bf25a9a82ff7eedd7632acb52d4457b586b50d23f0c06e15618f733daf4691a08cf54db2ff700e4f39d85295fd SHA512 ca0b2941ea726c1d03cd39f7bd434ce994669d79fec7bdfd2a7d06c7fc8c620bd0fbbe8e78c7ac4ba4903c9d95058e2a397c2d7960f547248e35764785aad86a
EBUILD python-3.13.0_beta4.ebuild 17080 BLAKE2B 9f6ccdd02861ace3241f64eab592e5130015c9cd1870417013a50dc47cfee014faff8e27590246aad491482bc9f15a87839df236659d436fff8b9faf4acde9f4 SHA512 11b625319906a0103302c0720938c349b67cf2896c4b2b974173f3fe8f4ea78f928885606363732ef3e800531f9ae127d31c7189f7b4d30756520c05207c4114
+EBUILD python-3.13.0_rc1.ebuild 17074 BLAKE2B 1a97becd3d25cf108627366848aaa398dac1023927cb8fc01a4252585f2cf3a47f6a28e79b2afc741f3259f0b8e4a0d2307a3769fc4fe6a3dd8a3ab9af24e712 SHA512 4c5ccc47dc2937b00137c892be95234e420ad691297759e26d83ec085ed89dea8975e87a605864a5492cf1645697e07459a8a324c89112c6bf9e1bc4c7fae08f
+EBUILD python-3.13.0_rc1_p1.ebuild 17165 BLAKE2B a5f89f583f0254533facdd41b8cd3ce3ebf6d8925d0747b0134a6577407b740594a3de3ad93f43e7c8b3acc28a00d83928d87eb5ec6b103a998f722dec7f49d9 SHA512 d2a5283f9f3c7092d2e66aa49db5d0abbf5b1cfa14660426d9bd387a1e82fc073e16c7ef9774c0ea2d9fbdf35a5f6ab33b35739faada92a93e2feaa9bd283fb4
EBUILD python-3.8.19_p2.ebuild 12217 BLAKE2B ff0dc6d1012257d77cdac44a2c3b022ec6c06564a4f2bbf871450efd17d9486ee36af14d57fd338adfc9fdf96d43b880cd5b12f4f73bf2008b52e34fbd0e7459 SHA512 d61c2155ee1332be4c0bc799a306efd7b2ea0655ab1ec957446c9711b798bbee0d4815c5e4fb9da325d1c20dbe820ff03f58b7ff4e825a770f78a00706754062
+EBUILD python-3.8.19_p3.ebuild 12225 BLAKE2B b39ffe181bfd0928056b9d4463795279ce41a64c2cd8ef2829ec3aeb7093de9b2514d0c2d54fd877f83581b30d659f295cafa6cda88bf4aa68378ce0d1ca75b2 SHA512 b810c88c716b7f71f9c0875cd63da5dda4894f743880432a1d07be42c5fa62a412f51217a3f4003019405791008e9be0e9b43a5d722b98fcb67131283ded9ea3
EBUILD python-3.9.19_p3.ebuild 13667 BLAKE2B c1579e1d0395e677834ce1891f4de07abf4b5156d1e150d2f04dfd5a5a21afa4dde9e5800dc7ba591c3c5d51267c64c60f4ece3b31f583bb320841ce89c649f4 SHA512 9df7d256591e73d71d6b8e3a637d737102ae809534c62d92b69a9fad8cb1ad693730398f5392f03fa5a194c7259143d1e83fdc6bcd872599f322269108af4e66
+EBUILD python-3.9.19_p4.ebuild 13675 BLAKE2B 8f79a78b8744f25ca31131fff5b0cf2083acbc92853cfb57906fd25780318219445c68a097a76a6eb9074b5f0c749c9992877e09f1af60ef1c21717c71a482c1 SHA512 554a77f2a6f7c9d1a0130c7e61a7f5b72c242685c115e3ee5f4303684f75f664b0567d9f7077400e9f25f541b4ca726978bb77ce9e2fa238242967b00795f31c
MISC metadata.xml 1562 BLAKE2B d89ba32e0a261cfa3f185881f83a8bd9434aba2029aca437419d625ed3d025fc3226d4440dfdc34c1c64c42448bb00f903b88d80ac06f2bddf8dd58a7aa66673 SHA512 3fb20f7648db7a5d7080bb9e439b39f90cd0f56bfa24d0b97b9d7966c1062951b9d9d1cea9ec557d7db065cbd53c8a394503616d807b2ea4c5a3ea2c806c0ff2
diff --git a/dev-lang/python/python-3.10.14_p2.ebuild b/dev-lang/python/python-3.10.14_p2.ebuild
new file mode 100644
index 000000000000..0b054e7e0898
--- /dev/null
+++ b/dev-lang/python/python-3.10.14_p2.ebuild
@@ -0,0 +1,542 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
+inherit prefix python-utils-r1 toolchain-funcs verify-sig
+
+MY_PV=${PV/_rc/rc}
+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.asc
+ )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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
+"
+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/libcrypt:=
+ virtual/libintl
+ ensurepip? ( dev-python/ensurepip-wheels )
+ 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 )
+ valgrind? ( dev-debug/valgrind )
+ test? ( app-arch/xz-utils )
+"
+# autoconf-archive needed to eautoreconf
+BDEPEND="
+ dev-build/autoconf-archive
+ app-alternatives/awk
+ virtual/pkgconfig
+ verify-sig? ( sec-keys/openpgp-keys-python )
+"
+RDEPEND+="
+ !build? ( app-misc/mime-types )
+"
+if [[ ${PV} != *_alpha* ]]; then
+ RDEPEND+="
+ dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
+ "
+fi
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+# large file tests involve a 2.5G file being copied (duplicated)
+CHECKREQS_DISK_BUILD=5500M
+
+QA_PKGCONFIG_VERSION=${PYVER}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+pkg_pretend() {
+ use test && check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ use test && check-reqs_pkg_setup
+}
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ # Ensure that internal copies of expat and libffi are not used.
+ rm -r Modules/expat || die
+ rm -r Modules/_ctypes/libffi* || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ # https://bugs.gentoo.org/850151
+ sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
+
+ # force the correct number of jobs
+ # https://bugs.gentoo.org/737660
+ local jobs=$(makeopts_jobs)
+ sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
+ sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || 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 and bug #864911.
+ 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.
+ --without-lto
+ --disable-optimizations
+ )
+
+ mkdir "${WORKDIR}"/${P}-${CBUILD} || die
+ pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
+ # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
+ # libdir correctly for cross.
+ PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
+ ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
+
+ # Avoid as many dependencies as possible for the cross build.
+ cat >> Makefile <<-EOF || die
+ MODULE_NIS=disabled
+ MODULE__DBM=disabled
+ MODULE__GDBM=disabled
+ MODULE__DBM=disabled
+ MODULE__SQLITE3=disabled
+ MODULE__HASHLIB=disabled
+ MODULE__SSL=disabled
+ MODULE__CURSES=disabled
+ MODULE__CURSES_PANEL=disabled
+ MODULE_READLINE=disabled
+ MODULE__TKINTER=disabled
+ MODULE_PYEXPAT=disabled
+ MODULE_ZLIB=disabled
+ EOF
+
+ # Unfortunately, we do have to build this immediately, and
+ # not in src_compile, because CHOST configure for Python
+ # will check the existence of the Python it was pointed to
+ # immediately.
+ PYTHON_DISABLE_MODULES+=" _ctypes _crypt" 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
+ local disable
+ use gdbm || disable+=" gdbm"
+ use ncurses || disable+=" _curses _curses_panel"
+ use readline || disable+=" readline"
+ use sqlite || disable+=" _sqlite3"
+ use ssl || export PYTHON_DISABLE_SSL="1"
+ use tk || disable+=" _tkinter"
+ export PYTHON_DISABLE_MODULES="${disable}"
+
+ if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
+ einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
+ 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
+
+ if use pgo; then
+ local profile_task_flags=(
+ -m test
+ "-j$(makeopts_jobs)"
+ --pgo-extended
+ -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
+
+ -x test_gdb
+ -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_concurrent_futures
+ -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
+ )
+
+ # musl-specific skips
+ use elibc_musl && profile_task_flags+=(
+ # 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 has_version "app-arch/rpm" ; then
+ # Avoid sandbox failure (attempts to write to /var/lib/rpm)
+ profile_task_flags+=(
+ -x test_distutils
+ )
+ fi
+ local -x PROFILE_TASK="${profile_task_flags[*]}"
+ 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-ffi
+ --with-system-libmpdec
+ --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
+
+ $(use_with debug assertions)
+ $(use_enable pgo optimizations)
+ $(use_with readline readline "$(usex libedit editline readline)")
+ $(use_with valgrind)
+ )
+
+ # disable implicit optimization/debugging flags
+ local -x OPT=
+
+ # https://bugs.gentoo.org/700012
+ if tc-is-lto; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ myeconfargs+=(
+ --with-lto
+ )
+ fi
+
+ if tc-is-cross-compiler ; then
+ build_cbuild_python
+ # Point the imminent CHOST build to the Python we just
+ # built for CBUILD.
+ export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
+ 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
+
+ hprefixify setup.py
+ 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
+ # Prevent using distutils bundled by setuptools.
+ # https://bugs.gentoo.org/823728
+ export SETUPTOOLS_USE_DISTUTILS=stdlib
+
+ # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
+ # end up writing bytecode & violating sandbox.
+ # bug #831897
+ local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
+
+ if use pgo ; then
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ addpredict "/usr/lib/python${PYVER}/site-packages"
+ 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
+
+ local test_opts=(
+ -u-network
+ -j "$(makeopts_jobs)"
+
+ # fails
+ -x test_concurrent_futures
+ -x test_gdb
+ )
+
+ if use sparc ; then
+ # bug #788022
+ test_opts+=(
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+ )
+ fi
+
+ # musl-specific skips
+ use elibc_musl && test_opts+=(
+ # 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
+ )
+
+ # workaround docutils breaking tests
+ cat > Lib/docutils.py <<-EOF || die
+ raise ImportError("Thou shalt not import!")
+ EOF
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+ # workaround https://bugs.gentoo.org/775416
+ addwrite "/usr/lib/python${PYVER}/site-packages"
+
+ nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local ret=${?}
+
+ rm Lib/docutils.py || die
+
+ [[ ${ret} -eq 0 ]] || die "emake test failed"
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ emake DESTDIR="${D}" 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 ensurepip; then
+ rm -r "${libdir}"/ensurepip || die
+ fi
+ if ! use sqlite; then
+ rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
+ fi
+ if ! use tk; then
+ rm -r "${ED}/usr/bin/idle${PYVER}" || die
+ rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || 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
+ # 2to3, pydoc
+ ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
+ 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.11.9_p1.ebuild b/dev-lang/python/python-3.11.9_p1.ebuild
new file mode 100644
index 000000000000..c61b855b214a
--- /dev/null
+++ b/dev-lang/python/python-3.11.9_p1.ebuild
@@ -0,0 +1,573 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
+inherit prefix python-utils-r1 toolchain-funcs verify-sig
+
+MY_PV=${PV/_rc/rc}
+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.asc
+ )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~ia64 ~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
+"
+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:=
+ app-crypt/libb2
+ >=dev-libs/expat-2.1:=
+ dev-libs/libffi:=
+ dev-libs/mpdecimal:=
+ dev-python/gentoo-common
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ virtual/libintl
+ ensurepip? ( dev-python/ensurepip-wheels )
+ 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? ( app-arch/xz-utils )
+ valgrind? ( dev-debug/valgrind )
+"
+# autoconf-archive needed to eautoreconf
+BDEPEND="
+ dev-build/autoconf-archive
+ app-alternatives/awk
+ virtual/pkgconfig
+ verify-sig? ( sec-keys/openpgp-keys-python )
+"
+RDEPEND+="
+ !build? ( app-misc/mime-types )
+"
+if [[ ${PV} != *_alpha* ]]; then
+ RDEPEND+="
+ dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
+ "
+fi
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+# large file tests involve a 2.5G file being copied (duplicated)
+CHECKREQS_DISK_BUILD=5500M
+
+QA_PKGCONFIG_VERSION=${PYVER}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+pkg_pretend() {
+ use test && check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ use test && check-reqs_pkg_setup
+}
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ # Ensure that internal copies of expat and libffi are not used.
+ rm -r Modules/expat || die
+ rm -r Modules/_ctypes/libffi* || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ # https://bugs.gentoo.org/850151
+ sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
+
+ # force the correct number of jobs
+ # https://bugs.gentoo.org/737660
+ local jobs=$(makeopts_jobs)
+ sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
+ sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || 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
+ # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
+ # libdir correctly for cross.
+ PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
+ ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
+
+ # Avoid as many dependencies as possible for the cross build.
+ cat >> Makefile <<-EOF || die
+ MODULE_NIS_STATE=disabled
+ MODULE__DBM_STATE=disabled
+ MODULE__GDBM_STATE=disabled
+ MODULE__DBM_STATE=disabled
+ MODULE__SQLITE3_STATE=disabled
+ MODULE__HASHLIB_STATE=disabled
+ MODULE__SSL_STATE=disabled
+ MODULE__CURSES_STATE=disabled
+ MODULE__CURSES_PANEL_STATE=disabled
+ MODULE_READLINE_STATE=disabled
+ MODULE__TKINTER_STATE=disabled
+ MODULE_PYEXPAT_STATE=disabled
+ MODULE_ZLIB_STATE=disabled
+ EOF
+
+ # 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.
+ PYTHON_DISABLE_MODULES+=" _ctypes _crypt" 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
+
+ if use pgo; then
+ local profile_task_flags=(
+ -m test
+ "-j$(makeopts_jobs)"
+ --pgo-extended
+ -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
+
+ -x test_gdb
+ -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_concurrent_futures
+ -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
+ )
+
+ # musl-specific skips
+ use elibc_musl && profile_task_flags+=(
+ # 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 has_version "app-arch/rpm" ; then
+ # Avoid sandbox failure (attempts to write to /var/lib/rpm)
+ profile_task_flags+=(
+ -x test_distutils
+ )
+ fi
+ local -x PROFILE_TASK="${profile_task_flags[*]}"
+ 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-ffi
+ --with-system-libmpdec
+ --with-platlibdir=lib
+ --with-pkg-config=yes
+ --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
+
+ $(use_with debug assertions)
+ $(use_enable pgo optimizations)
+ $(use_with readline readline "$(usex libedit editline readline)")
+ $(use_with valgrind)
+ )
+
+ # disable implicit optimization/debugging flags
+ local -x OPT=
+
+ # https://bugs.gentoo.org/700012
+ if tc-is-lto; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ myeconfargs+=(
+ --with-lto
+ )
+ fi
+
+ 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
+
+ hprefixify setup.py
+ 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
+
+ # force-disable modules we don't want built
+ local disable_modules=( NIS )
+ use gdbm || disable_modules+=( _GDBM _DBM )
+ use sqlite || disable_modules+=( _SQLITE3 )
+ use ssl || disable_modules+=( _HASHLIB _SSL )
+ use ncurses || disable_modules+=( _CURSES _CURSES_PANEL )
+ use readline || disable_modules+=( READLINE )
+ use tk || disable_modules+=( _TKINTER )
+
+ local mod
+ for mod in "${disable_modules[@]}"; do
+ echo "MODULE_${mod}_STATE=disabled"
+ done >> Makefile || die
+
+ # 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
+ # Prevent using distutils bundled by setuptools.
+ # https://bugs.gentoo.org/823728
+ export SETUPTOOLS_USE_DISTUTILS=stdlib
+ export PYTHONSTRICTEXTENSIONBUILD=1
+
+ # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
+ # end up writing bytecode & violating sandbox.
+ # bug #831897
+ local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
+
+ if use pgo ; then
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ addpredict "/usr/lib/python${PYVER}/site-packages"
+ 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=(
+ -u-network
+ -j "$(makeopts_jobs)"
+
+ # fails
+ -x test_concurrent_futures
+ -x test_gdb
+ )
+
+ if use sparc ; then
+ # bug #788022
+ test_opts+=(
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+ )
+ fi
+
+ # musl-specific skips
+ use elibc_musl && test_opts+=(
+ # 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
+ )
+
+ # workaround docutils breaking tests
+ cat > Lib/docutils.py <<-EOF || die
+ raise ImportError("Thou shalt not import!")
+ EOF
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+ # workaround https://bugs.gentoo.org/775416
+ addwrite "/usr/lib/python${PYVER}/site-packages"
+
+ nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local ret=${?}
+
+ rm Lib/docutils.py || die
+
+ [[ ${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}" 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 ensurepip; then
+ rm -r "${libdir}"/ensurepip || die
+ fi
+ 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,test/test_tk*} || 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
+ # 2to3, pydoc
+ ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
+ ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
+ # idle
+ if use tk; then
+ ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
+ fi
+}
+
+pkg_postinst() {
+ local v
+ for v in ${REPLACING_VERSIONS}; do
+ if ver_test "${v}" -lt 3.11.0_beta4-r2; then
+ ewarn "Python 3.11.0b4 has changed its module ABI. The .pyc files"
+ ewarn "installed previously are no longer valid and will be regenerated"
+ ewarn "(or ignored) on the next import. This may cause sandbox failures"
+ ewarn "when installing some packages and checksum mismatches when removing"
+ ewarn "old versions. To actively prevent this, rebuild all packages"
+ ewarn "installing Python 3.11 modules, e.g. using:"
+ ewarn
+ ewarn " emerge -1v /usr/lib/python3.11/site-packages"
+ fi
+ done
+}
diff --git a/dev-lang/python/python-3.12.4_p3.ebuild b/dev-lang/python/python-3.12.4_p3.ebuild
new file mode 100644
index 000000000000..a2461c6b3906
--- /dev/null
+++ b/dev-lang/python/python-3.12.4_p3.ebuild
@@ -0,0 +1,558 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
+inherit python-utils-r1 toolchain-funcs verify-sig
+
+MY_PV=${PV/_rc/rc}
+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.asc
+ )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~ia64 ~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
+"
+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:=
+ app-crypt/libb2
+ >=dev-libs/expat-2.1:=
+ dev-libs/libffi:=
+ dev-libs/mpdecimal:=
+ dev-python/gentoo-common
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ 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? (
+ app-arch/xz-utils
+ 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
+ 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
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+# large file tests involve a 2.5G file being copied (duplicated)
+CHECKREQS_DISK_BUILD=5500M
+
+QA_PKGCONFIG_VERSION=${PYVER}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+pkg_pretend() {
+ use test && check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ use test && check-reqs_pkg_setup
+}
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ 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 _crypt
+ 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
+
+ if use pgo; then
+ local profile_task_flags=(
+ -m test
+ "-j$(makeopts_jobs)"
+ --pgo-extended
+ -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
+
+ -x test_gdb
+ -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_concurrent_futures
+ -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
+ )
+
+ # musl-specific skips
+ use elibc_musl && profile_task_flags+=(
+ # 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 has_version "app-arch/rpm" ; then
+ # Avoid sandbox failure (attempts to write to /var/lib/rpm)
+ profile_task_flags+=(
+ -x test_distutils
+ )
+ fi
+ local -x PROFILE_TASK="${profile_task_flags[*]}"
+ 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
+
+ $(use_with debug assertions)
+ $(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}
+
+ if use pgo ; then
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ addpredict "/usr/lib/python${PYVER}/site-packages"
+ 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=(
+ -u-network
+ -j "$(makeopts_jobs)"
+
+ # fails
+ -x test_concurrent_futures
+ -x test_gdb
+ )
+
+ if use sparc ; then
+ # bug #788022
+ test_opts+=(
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+ )
+ fi
+
+ # musl-specific skips
+ use elibc_musl && test_opts+=(
+ # 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
+ )
+
+ # workaround docutils breaking tests
+ cat > Lib/docutils.py <<-EOF || die
+ raise ImportError("Thou shalt not import!")
+ EOF
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+ # workaround https://bugs.gentoo.org/775416
+ addwrite "/usr/lib/python${PYVER}/site-packages"
+
+ nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local ret=${?}
+
+ rm Lib/docutils.py || die
+
+ [[ ${ret} -eq 0 ]] || die "emake test failed"
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ # the Makefile rules are broken
+ # https://github.com/python/cpython/issues/100221
+ mkdir -p "${libdir}"/lib-dynload || die
+
+ # -j1 hack for now for bug #843458
+ emake -j1 DESTDIR="${D}" 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 ensurepip; then
+ rm -r "${libdir}"/ensurepip || die
+ fi
+ 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,test/test_tk*} || 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
+ # 2to3, pydoc
+ ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
+ 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.13.0_rc1.ebuild b/dev-lang/python/python-3.13.0_rc1.ebuild
new file mode 100644
index 000000000000..ba7b05698742
--- /dev/null
+++ b/dev-lang/python/python-3.13.0_rc1.ebuild
@@ -0,0 +1,658 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+LLVM_COMPAT=( 18 )
+LLVM_OPTIONAL=1
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing
+inherit pax-utils python-utils-r1 toolchain-funcs verify-sig
+
+MY_PV=${PV/_}
+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.asc
+ )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="
+ bluetooth build +debug +ensurepip examples gdbm +gil 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:=
+ app-crypt/libb2
+ >=dev-libs/expat-2.1:=
+ dev-libs/libffi:=
+ dev-libs/mpdecimal:=
+ dev-python/gentoo-common
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ 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? (
+ app-arch/xz-utils
+ 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 '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/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
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+# large file tests involve a 2.5G file being copied (duplicated)
+CHECKREQS_DISK_BUILD=5500M
+
+QA_PKGCONFIG_VERSION=${PYVER}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+pkg_pretend() {
+ use test && check-reqs_pkg_pretend
+
+ if ! use gil || use jit; then
+ ewarn "USE=-gil and USE=jit flags are considered experimental upstream. Using"
+ ewarn "them 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[gil,-jit]. Instead,"
+ ewarn "please consider reporting freethreading / JIT problems upstream."
+ fi
+}
+
+pkg_setup() {
+ use jit && llvm-r1_pkg_setup
+ use test && check-reqs_pkg_setup
+}
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ 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 _crypt
+ 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=(
+ # failures
+ -x test_concurrent_futures
+ -x test_gdb
+ # flaky: https://github.com/python/cpython/issues/121973
+ -x test_pyrepl
+ )
+
+ # 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
+ )
+ ;;
+ ia64*)
+ COMMON_TEST_SKIPS+=(
+ -x test_ctypes
+ -x test_external_inspection
+ )
+ ;;
+ mips*)
+ COMMON_TEST_SKIPS+=(
+ -x test_ctypes
+ -x test_external_inspection
+ -x test_statistics
+ )
+ ;;
+ powerpc64-*) # big endian
+ COMMON_TEST_SKIPS+=(
+ -x test_descr
+ )
+ ;;
+ riscv*)
+ COMMON_TEST_SKIPS+=(
+ -x test_urllib2
+ )
+ ;;
+ sparc*)
+ COMMON_TEST_SKIPS+=(
+ # bug 788022
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+
+ -x test_ctypes
+ -x test_descr
+ # bug 931908
+ -x test_exceptions
+ )
+ ;;
+ esac
+
+ # 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
+
+ # Fails in profiling run, passes in src_test().
+ -x test_capi
+ )
+
+ # Arch-specific skips. See #931888 for a collection of these.
+ case ${CHOST} in
+ alpha*)
+ profile_task_flags+=(
+ -x test_os
+ )
+ ;;
+ hppa*)
+ profile_task_flags+=(
+ -x test_descr
+ # bug 931908
+ -x test_exceptions
+ -x test_os
+ )
+ ;;
+ ia64*)
+ profile_task_flags+=(
+ -x test_signal
+ )
+ ;;
+ powerpc64-*) # big endian
+ profile_task_flags+=(
+ # bug 931908
+ -x test_exceptions
+ )
+ ;;
+ riscv*)
+ profile_task_flags+=(
+ -x test_statistics
+ )
+ ;;
+ esac
+
+ if has_version "app-arch/rpm" ; then
+ # Avoid sandbox failure (attempts to write to /var/lib/rpm)
+ profile_task_flags+=(
+ -x test_distutils
+ )
+ fi
+ local -x PROFILE_TASK="${profile_task_flags[*]}"
+ 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
+
+ $(use_with debug assertions)
+ $(use_enable gil)
+ $(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=
+ 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=
+
+ 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}" 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 ensurepip; then
+ rm -r "${libdir}"/ensurepip || die
+ fi
+ 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,test/test_tk*} || 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
+}
+
+pkg_postinst() {
+ local v
+ for v in ${REPLACING_VERSIONS}; do
+ if ver_test "${v}" -lt 3.13.0_beta2; then
+ ewarn "Python 3.13.0b2 has changed its module ABI. The .pyc files"
+ ewarn "installed previously are no longer valid and will be regenerated"
+ ewarn "(or ignored) on the next import. This may cause sandbox failures"
+ ewarn "when installing some packages and checksum mismatches when removing"
+ ewarn "old versions. To actively prevent this, rebuild all packages"
+ ewarn "installing Python 3.13 modules, e.g. using:"
+ ewarn
+ ewarn " emerge -1v /usr/lib/python3.13/site-packages"
+ fi
+ done
+}
diff --git a/dev-lang/python/python-3.13.0_rc1_p1.ebuild b/dev-lang/python/python-3.13.0_rc1_p1.ebuild
new file mode 100644
index 000000000000..a7d766ef12e0
--- /dev/null
+++ b/dev-lang/python/python-3.13.0_rc1_p1.ebuild
@@ -0,0 +1,660 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+LLVM_COMPAT=( 18 )
+LLVM_OPTIONAL=1
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing
+inherit pax-utils python-utils-r1 toolchain-funcs verify-sig
+
+MY_PV=${PV/_}
+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.asc
+ )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="
+ bluetooth build +debug +ensurepip examples gdbm +gil 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:=
+ app-crypt/libb2
+ >=dev-libs/expat-2.1:=
+ dev-libs/libffi:=
+ dev-libs/mpdecimal:=
+ dev-python/gentoo-common
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ 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? (
+ app-arch/xz-utils
+ 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 '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/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
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+# large file tests involve a 2.5G file being copied (duplicated)
+CHECKREQS_DISK_BUILD=5500M
+
+QA_PKGCONFIG_VERSION=${PYVER}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+pkg_pretend() {
+ use test && check-reqs_pkg_pretend
+
+ if ! use gil || use jit; then
+ ewarn "USE=-gil and USE=jit flags are considered experimental upstream. Using"
+ ewarn "them 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[gil,-jit]. Instead,"
+ ewarn "please consider reporting freethreading / JIT problems upstream."
+ fi
+}
+
+pkg_setup() {
+ use jit && llvm-r1_pkg_setup
+ use test && check-reqs_pkg_setup
+}
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ 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 _crypt
+ 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=(
+ # failures
+ -x test_concurrent_futures
+ -x test_gdb
+ # flaky: https://github.com/python/cpython/issues/121973
+ -x test_pyrepl
+ # flaky: https://github.com/python/cpython/issues/122136 (bug #936314)
+ -x test_asyncio
+ )
+
+ # 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
+ )
+ ;;
+ ia64*)
+ COMMON_TEST_SKIPS+=(
+ -x test_ctypes
+ -x test_external_inspection
+ )
+ ;;
+ mips*)
+ COMMON_TEST_SKIPS+=(
+ -x test_ctypes
+ -x test_external_inspection
+ -x test_statistics
+ )
+ ;;
+ powerpc64-*) # big endian
+ COMMON_TEST_SKIPS+=(
+ -x test_descr
+ )
+ ;;
+ riscv*)
+ COMMON_TEST_SKIPS+=(
+ -x test_urllib2
+ )
+ ;;
+ sparc*)
+ COMMON_TEST_SKIPS+=(
+ # bug 788022
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+
+ -x test_ctypes
+ -x test_descr
+ # bug 931908
+ -x test_exceptions
+ )
+ ;;
+ esac
+
+ # 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
+
+ # Fails in profiling run, passes in src_test().
+ -x test_capi
+ )
+
+ # Arch-specific skips. See #931888 for a collection of these.
+ case ${CHOST} in
+ alpha*)
+ profile_task_flags+=(
+ -x test_os
+ )
+ ;;
+ hppa*)
+ profile_task_flags+=(
+ -x test_descr
+ # bug 931908
+ -x test_exceptions
+ -x test_os
+ )
+ ;;
+ ia64*)
+ profile_task_flags+=(
+ -x test_signal
+ )
+ ;;
+ powerpc64-*) # big endian
+ profile_task_flags+=(
+ # bug 931908
+ -x test_exceptions
+ )
+ ;;
+ riscv*)
+ profile_task_flags+=(
+ -x test_statistics
+ )
+ ;;
+ esac
+
+ if has_version "app-arch/rpm" ; then
+ # Avoid sandbox failure (attempts to write to /var/lib/rpm)
+ profile_task_flags+=(
+ -x test_distutils
+ )
+ fi
+ local -x PROFILE_TASK="${profile_task_flags[*]}"
+ 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
+
+ $(use_with debug assertions)
+ $(use_enable gil)
+ $(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=
+ 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=
+
+ 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}" 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 ensurepip; then
+ rm -r "${libdir}"/ensurepip || die
+ fi
+ 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,test/test_tk*} || 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
+}
+
+pkg_postinst() {
+ local v
+ for v in ${REPLACING_VERSIONS}; do
+ if ver_test "${v}" -lt 3.13.0_beta2; then
+ ewarn "Python 3.13.0b2 has changed its module ABI. The .pyc files"
+ ewarn "installed previously are no longer valid and will be regenerated"
+ ewarn "(or ignored) on the next import. This may cause sandbox failures"
+ ewarn "when installing some packages and checksum mismatches when removing"
+ ewarn "old versions. To actively prevent this, rebuild all packages"
+ ewarn "installing Python 3.13 modules, e.g. using:"
+ ewarn
+ ewarn " emerge -1v /usr/lib/python3.13/site-packages"
+ fi
+ done
+}
diff --git a/dev-lang/python/python-3.8.19_p3.ebuild b/dev-lang/python/python-3.8.19_p3.ebuild
new file mode 100644
index 000000000000..2a490a407fa3
--- /dev/null
+++ b/dev-lang/python/python-3.8.19_p3.ebuild
@@ -0,0 +1,432 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+WANT_LIBTOOL="none"
+
+inherit autotools flag-o-matic multiprocessing pax-utils
+inherit prefix python-utils-r1 toolchain-funcs verify-sig
+
+MY_PV=${PV/_rc/rc}
+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.asc
+ )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="
+ bluetooth build debug +ensurepip examples gdbm +ncurses pgo
+ +readline +sqlite +ssl test tk valgrind
+"
+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/libcrypt:=
+ virtual/libintl
+ ensurepip? ( dev-python/ensurepip-wheels )
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ kernel_linux? ( sys-apps/util-linux:= )
+ ncurses? ( >=sys-libs/ncurses-5.2:= )
+ readline? ( >=sys-libs/readline-4.1:= )
+ 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? ( app-arch/xz-utils )
+ valgrind? ( dev-debug/valgrind )
+"
+# autoconf-archive needed to eautoreconf
+BDEPEND="
+ dev-build/autoconf-archive
+ app-alternatives/awk
+ virtual/pkgconfig
+ verify-sig? ( sec-keys/openpgp-keys-python )
+"
+RDEPEND+="
+ !build? ( app-misc/mime-types )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+QA_PKGCONFIG_VERSION=${PYVER}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ # Ensure that internal copies of expat and libffi are not used.
+ rm -r Modules/expat || die
+ rm -r Modules/_ctypes/libffi* || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ # https://bugs.gentoo.org/850151
+ sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
+
+ # force the correct number of jobs
+ # https://bugs.gentoo.org/737660
+ local jobs=$(makeopts_jobs)
+ sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
+ sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
+
+ rm Lib/distutils/command/wininst*.exe || die
+
+ eautoreconf
+}
+
+src_configure() {
+ # disable automagic bluetooth headers detection
+ if ! use bluetooth; then
+ local -x ac_cv_header_bluetooth_bluetooth_h=no
+ fi
+ local disable
+ use gdbm || disable+=" gdbm"
+ use ncurses || disable+=" _curses _curses_panel"
+ use readline || disable+=" readline"
+ use sqlite || disable+=" _sqlite3"
+ use ssl || export PYTHON_DISABLE_SSL="1"
+ use tk || disable+=" _tkinter"
+ export PYTHON_DISABLE_MODULES="${disable}"
+
+ if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
+ einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
+ 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
+
+ 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
+ --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-ffi
+ --with-system-libmpdec
+ --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
+
+ $(use_with debug assertions)
+ $(use_with valgrind)
+ )
+
+ # disable implicit optimization/debugging flags
+ local -x OPT=
+
+ # https://bugs.gentoo.org/700012
+ if tc-is-lto; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ myeconfargs+=(
+ --with-lto
+ )
+ fi
+
+ if tc-is-cross-compiler ; then
+ # 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 and bug #864911.
+ local myeconfargs_cbuild=(
+ "${myeconfargs[@]}"
+
+ --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.
+ --without-lto
+ --disable-optimizations
+ )
+
+ # Point the imminent CHOST build to the Python we just
+ # built for CBUILD.
+ export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
+
+ mkdir "${WORKDIR}"/${P}-${CBUILD} || die
+ pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
+ # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
+ # libdir correctly for cross.
+ PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \
+ ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
+
+ # Avoid as many dependencies as possible for the cross build.
+ cat >> Makefile <<-EOF || die
+ MODULE_NIS=disabled
+ MODULE__DBM=disabled
+ MODULE__GDBM=disabled
+ MODULE__DBM=disabled
+ MODULE__SQLITE3=disabled
+ MODULE__HASHLIB=disabled
+ MODULE__SSL=disabled
+ MODULE__CURSES=disabled
+ MODULE__CURSES_PANEL=disabled
+ MODULE_READLINE=disabled
+ MODULE__TKINTER=disabled
+ MODULE_PYEXPAT=disabled
+ MODULE_ZLIB=disabled
+ EOF
+
+ # Unfortunately, we do have to build this immediately, and
+ # not in src_compile, because CHOST configure for Python
+ # will check the existence of the Python it was pointed to
+ # immediately.
+ PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake
+ popd &> /dev/null || die
+ 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
+
+ hprefixify setup.py
+ 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
+ # Prevent using distutils bundled by setuptools.
+ # https://bugs.gentoo.org/823728
+ export SETUPTOOLS_USE_DISTUTILS=stdlib
+
+ # also need to clear the flags explicitly here or they end up
+ # in _sysconfigdata*
+ emake CPPFLAGS= CFLAGS= LDFLAGS=
+
+ # 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
+
+ local test_opts=(
+ -u-network
+ -j "$(makeopts_jobs)"
+
+ # fails
+ -x test_concurrent_futures
+ -x test_gdb
+ )
+
+ if use sparc ; then
+ # bug #788022
+ test_opts+=(
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+ )
+ fi
+
+ # workaround docutils breaking tests
+ cat > Lib/docutils.py <<-EOF || die
+ raise ImportError("Thou shalt not import!")
+ EOF
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local ret=${?}
+
+ rm Lib/docutils.py || die
+
+ [[ ${ret} -eq 0 ]] || die "emake test failed"
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ emake DESTDIR="${D}" altinstall
+
+ # Remove static library
+ rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
+
+ # 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 ensurepip; then
+ rm -r "${libdir}"/ensurepip || die
+ fi
+ if ! use sqlite; then
+ rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
+ fi
+ if ! use tk; then
+ rm -r "${ED}/usr/bin/idle${PYVER}" || die
+ rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || 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
+ # 2to3, pydoc
+ ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
+ 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.9.19_p4.ebuild b/dev-lang/python/python-3.9.19_p4.ebuild
new file mode 100644
index 000000000000..711e311506f8
--- /dev/null
+++ b/dev-lang/python/python-3.9.19_p4.ebuild
@@ -0,0 +1,492 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
+inherit prefix python-utils-r1 toolchain-funcs verify-sig
+
+MY_PV=${PV/_rc/rc}
+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.asc
+ )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="
+ bluetooth build debug +ensurepip examples gdbm +ncurses pgo
+ +readline +sqlite +ssl test tk valgrind
+"
+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/libcrypt:=
+ virtual/libintl
+ ensurepip? ( dev-python/ensurepip-wheels )
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ kernel_linux? ( sys-apps/util-linux:= )
+ ncurses? ( >=sys-libs/ncurses-5.2:= )
+ readline? ( >=sys-libs/readline-4.1:= )
+ 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? ( app-arch/xz-utils )
+ valgrind? ( dev-debug/valgrind )
+"
+# autoconf-archive needed to eautoreconf
+BDEPEND="
+ dev-build/autoconf-archive
+ app-alternatives/awk
+ virtual/pkgconfig
+ verify-sig? ( sec-keys/openpgp-keys-python )
+"
+RDEPEND+="
+ !build? ( app-misc/mime-types )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+# large file tests involve a 2.5G file being copied (duplicated)
+CHECKREQS_DISK_BUILD=5500M
+
+QA_PKGCONFIG_VERSION=${PYVER}
+# false positives -- functions specific to *BSD
+QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
+
+pkg_pretend() {
+ use test && check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ use test && check-reqs_pkg_setup
+}
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ # Ensure that internal copies of expat and libffi are not used.
+ rm -r Modules/expat || die
+ rm -r Modules/_ctypes/libffi* || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ # https://bugs.gentoo.org/850151
+ sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
+
+ # force the correct number of jobs
+ # https://bugs.gentoo.org/737660
+ local jobs=$(makeopts_jobs)
+ sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
+ sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
+
+ eautoreconf
+}
+
+src_configure() {
+ # disable automagic bluetooth headers detection
+ if ! use bluetooth; then
+ local -x ac_cv_header_bluetooth_bluetooth_h=no
+ fi
+ local disable
+ use gdbm || disable+=" gdbm"
+ use ncurses || disable+=" _curses _curses_panel"
+ use readline || disable+=" readline"
+ use sqlite || disable+=" _sqlite3"
+ use ssl || export PYTHON_DISABLE_SSL="1"
+ use tk || disable+=" _tkinter"
+ export PYTHON_DISABLE_MODULES="${disable}"
+
+ if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
+ einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
+ 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
+
+ if use pgo; then
+ local profile_task_flags=(
+ -m test
+ "-j$(makeopts_jobs)"
+ --pgo-extended
+ -x test_gdb
+ -x test_dtrace
+ -u-network
+
+ # 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_concurrent_futures
+ -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
+ local -x PROFILE_TASK="${profile_task_flags[*]}"
+ 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
+ --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-ffi
+ --with-system-libmpdec
+ --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
+
+ $(use_with debug assertions)
+ $(use_enable pgo optimizations)
+ $(use_with valgrind)
+ )
+
+ # disable implicit optimization/debugging flags
+ local -x OPT=
+
+ # https://bugs.gentoo.org/700012
+ if tc-is-lto; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ myeconfargs+=(
+ --with-lto
+ )
+ fi
+
+ if tc-is-cross-compiler ; then
+ # 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 and bug #864911.
+ local myeconfargs_cbuild=(
+ "${myeconfargs[@]}"
+
+ --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.
+ --without-lto
+ --disable-optimizations
+ )
+
+ # Point the imminent CHOST build to the Python we just
+ # built for CBUILD.
+ export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
+
+ mkdir "${WORKDIR}"/${P}-${CBUILD} || die
+ pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
+ # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
+ # libdir correctly for cross.
+ PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \
+ ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
+
+ # Avoid as many dependencies as possible for the cross build.
+ cat >> Makefile <<-EOF || die
+ MODULE_NIS=disabled
+ MODULE__DBM=disabled
+ MODULE__GDBM=disabled
+ MODULE__DBM=disabled
+ MODULE__SQLITE3=disabled
+ MODULE__HASHLIB=disabled
+ MODULE__SSL=disabled
+ MODULE__CURSES=disabled
+ MODULE__CURSES_PANEL=disabled
+ MODULE_READLINE=disabled
+ MODULE__TKINTER=disabled
+ MODULE_PYEXPAT=disabled
+ MODULE_ZLIB=disabled
+ EOF
+
+ # Unfortunately, we do have to build this immediately, and
+ # not in src_compile, because CHOST configure for Python
+ # will check the existence of the Python it was pointed to
+ # immediately.
+ PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake
+ popd &> /dev/null || die
+ 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
+
+ hprefixify setup.py
+ 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
+ # Prevent using distutils bundled by setuptools.
+ # https://bugs.gentoo.org/823728
+ export SETUPTOOLS_USE_DISTUTILS=stdlib
+
+ # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
+ # end up writing bytecode & violating sandbox.
+ # bug #831897
+ local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
+
+ if use pgo ; then
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ addpredict "/usr/lib/python${PYVER}/site-packages"
+ 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
+
+ local test_opts=(
+ -u-network
+ -j "$(makeopts_jobs)"
+
+ # fails
+ -x test_concurrent_futures
+ -x test_gdb
+ )
+
+ if use sparc ; then
+ # bug #788022
+ test_opts+=(
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+ )
+ fi
+
+ # workaround docutils breaking tests
+ cat > Lib/docutils.py <<-EOF || die
+ raise ImportError("Thou shalt not import!")
+ EOF
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local ret=${?}
+
+ rm Lib/docutils.py || die
+
+ [[ ${ret} -eq 0 ]] || die "emake test failed"
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ emake DESTDIR="${D}" altinstall
+
+ # Remove static library
+ rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
+
+ # 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 ensurepip; then
+ rm -r "${libdir}"/ensurepip || die
+ fi
+ if ! use sqlite; then
+ rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
+ fi
+ if ! use tk; then
+ rm -r "${ED}/usr/bin/idle${PYVER}" || die
+ rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || 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
+ # 2to3, pydoc
+ ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
+ 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/qu-prolog/Manifest b/dev-lang/qu-prolog/Manifest
index b5f37fbe3e4b..3f131eb99223 100644
--- a/dev-lang/qu-prolog/Manifest
+++ b/dev-lang/qu-prolog/Manifest
@@ -1,8 +1,11 @@
+AUX qu-prolog-10.8-compiler-flags.patch 762 BLAKE2B c1a760a4a2243f19170485a64838da52a9a9f9257f12cfe029e3d738162de33dea0ed0315d0321206baef465e54e6ffd40b2906e64af7afeb1c8005754fb4ea5 SHA512 3f273df669eaff0329c3c8b57e2e30cb75b6c884a79aff55fc6421b8875a84fa0288c71709fbbd0d274b3d80c0d0ec10f07cc42a2d1aafbb024cd6d5d200b442
AUX qu-prolog-10.x-compiler-flags.patch 762 BLAKE2B 1b96597015aeae67aa92caf5913e81f2bf11e86c73ce6acaaeee1f2663871471fd595eaccfb00cdd10cedf9677c03095bc37ddc2a8d4a370d38439896f16e72b SHA512 c09286d76692a125d98b6bf3684df0d6dd57cd5ef70387fdbd5184493d978c8d5b9c1ce63c4305986df28382e0201abb53af3a6451f802d677dbc22b1741237e
AUX qu-prolog-10.x-qa-compiler-flags.patch 995 BLAKE2B 1a35bd4eecc08cb9b4d861b65710a38fcada73e5ceed4cd02cc196541ec7417990788179022c1b12c7a545df5f5e074178745d70d97e960e1dfb4747556f2963 SHA512 e766c099f53e66f3775d8b50cc4f659770369001f78689b41c5a8e4ddcc4249bd7aaba678bcd60b879688d1b2525135454ff03e01d4d4b43bb1f2f357561ee55
AUX qu-prolog-10.x-qt5.patch 1037 BLAKE2B 91287f26c97c0c2f1c9cd3bae3a007cf27e4b8121aca4a42cabbbb37c224b7399ed06468b7a725977f27bad2fcda8d2165bfeb569f36491d227dd472036de5ed SHA512 9dd1c8245f725d552bf23ad9ef1bb858a06c69b66778fa851013775081751a77923e2145f6575966e8394666b8dc2e04724d102be28b32efaa44b7e474b3dd7f
DIST qp10.6.tar.gz 1671349 BLAKE2B 189ddd733a0bbf939387de60ec76e8e41a430af5f4684a9a3b8cc3effa4e402cfd4471c955f4d626d2de8cf14eb93c2977540ad209d06ce9b562325a4b984fea SHA512 425b35c758ba86cc14a1faf5c19f2c091142be6c42261323dc6f551efd6c80f7223584cd2be239748539eaf25308f777d95fd5bfdc65b33ca3245377e1766299
DIST qp10.7.tar.gz 1857589 BLAKE2B 986f0d8744d5b0a3974191d154a2ca0efa97f6c02483d975b4bb43bd7ae44d9d4233f6bffc1947d03ac3db9c0181953254e66bc62d55add6b0debbed1ad21de6 SHA512 305c89710e02167bb37e999b5af182b9dbca710d32c79149782a90f29b2e80f6a5462e9fb22153e770cef7484c5181bde31f1fe680b786f0f253ced13a3df830
+DIST qp10.8.tar.gz 1707106 BLAKE2B aaba3e722c3aa3f566e7e4469f581fa854fc865066173664a18421c3de32ba7be804896812191b3bcdb2f4e713e9886f12765e0fc1bc3f5f609e0c679cdb4374 SHA512 7c677a9b9cac0c1de626f213be158297844fd403deb62ec976684926c287827734c27a89771b6e48dfc5822033aeb24aafc2c34cd13cada88db49ee1f9612fc7
EBUILD qu-prolog-10.6.ebuild 2058 BLAKE2B 60e865b6e4ca924bd8e7335108d71362d3bca82ea8669b3419fd81db1da800d4bf3287c8fe9aa5e5cdab49e104ed33d6f4ab6112921d87fa1532b5d95b1b5da5 SHA512 3f7d7758cef24570a01e180c765783dc489d9171ed85260b8944d925006026626e2dac3ecdc7cb834258ac6092d2c9284cf8f14d8ac3e9ed6aab7bfccbdc34ff
-EBUILD qu-prolog-10.7.ebuild 2164 BLAKE2B 2069a2f1519e6d7b421ae2f39377c2281c93100ffe0793a31dd50b8aed5cac6634fcd03f74aa1f7edc9609e2f1a06463080b0b15ee0c8a059a9a9f410f733e83 SHA512 80d6e11953f791fd351dcada58c28d0fdb910da568d891582df3b97d52f911032b19e37f86b80dfd9758929b63913e6f1d77e1c69f3c4c5c5a83c207b2da7695
+EBUILD qu-prolog-10.7.ebuild 2513 BLAKE2B af53027edd33393fd2df9205d2d0ae11dbf1dd7d7245a2c47bf62ffdf66436825f3bb577ae785fa08964e6c77a947427fb9ec5e23d95d24f6771569648045ef9 SHA512 8209ca5590fbdb965181e78a2ddfa0426299dcb14328d5e53bdc5adc91dbbab525a827befeb4adfd33b748091374f73e8c6b55737b04428c9e6143f5f3946e01
+EBUILD qu-prolog-10.8.ebuild 2476 BLAKE2B 6b78946300691101bc268ad2fcb3af6ede31ad6d7ffd1f56b28e91110ccccada355a534a6117823b75ceea115b4624eadab7b9436289e865d348a4f885ef8030 SHA512 f9c57f37f11a18d51ead78b7c458c9450e4e114d1d9cd79c8ece32338d2d5ccb0a87edf1fbbf8b511b66aeec4837a14b755e09194831d48d5514d0cd1022a21a
MISC metadata.xml 348 BLAKE2B ca5e1c4b76b62f23822a7a8c4f666faa96e4eabfb4a4477f40b49984dedee39d911d1ac5fd811e340af4b3ce556073baa6fa40949925419996b7c41c04605efa SHA512 5e41fd540a4897642a392bc0eea54762142f80f9523e0abd497e10d4c4cc83f0c0784063383b53c363d7e55ffbb75829201dd93cc73cbfbf4e7c5e8419ae337c
diff --git a/dev-lang/qu-prolog/files/qu-prolog-10.8-compiler-flags.patch b/dev-lang/qu-prolog/files/qu-prolog-10.8-compiler-flags.patch
new file mode 100644
index 000000000000..28eedb06e077
--- /dev/null
+++ b/dev-lang/qu-prolog/files/qu-prolog-10.8-compiler-flags.patch
@@ -0,0 +1,18 @@
+--- qp10.6.orig/configure.ac 2020-06-24 23:37:02.000000000 -0000
++++ qp10.6/configure.ac 2021-05-15 16:36:32.504585122 -0000
+@@ -228,9 +228,12 @@
+ #-----------------------------------------------------------------------------
+ dnl Check for -fno-strict-aliasing
+ AC_MSG_CHECKING([for -fno-strict-aliasing])
+-echo "int i;" > aliasing_test.cc
+-qp_alias=[`gcc -fno-strict-aliasing -c aliasing_test.cc`]
+-rm aliasing_test.*
++ac_saved_cflags=$[]_AC_LANG_PREFIX[]FLAGS
++_AC_LANG_PREFIX[]FLAGS="-Werror -fno-strict-aliasing"
++AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int main(void) { return 0; }]])],
++ [qp_alias=""],
++ [qp_alias="not-found"])
++_AC_LANG_PREFIX[]FLAGS="$ac_saved_cflags"
+ if test -n "$qp_alias"; then
+ AC_MSG_RESULT(not found)
+ GCC_ALIAS_FLAG=
diff --git a/dev-lang/qu-prolog/qu-prolog-10.7.ebuild b/dev-lang/qu-prolog/qu-prolog-10.7.ebuild
index 9a5c4599174f..a9b27bccbba7 100644
--- a/dev-lang/qu-prolog/qu-prolog-10.7.ebuild
+++ b/dev-lang/qu-prolog/qu-prolog-10.7.ebuild
@@ -1,17 +1,17 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..12} )
-inherit autotools python-any-r1 qmake-utils
+inherit autotools flag-o-matic python-any-r1 qmake-utils
MY_P=qp${PV}
DESCRIPTION="Extended Prolog supporting quantifiers, object-variables and substitutions"
-HOMEPAGE="http://staff.itee.uq.edu.au/pjr/HomePages/QuPrologHome.html"
-SRC_URI="http://staff.itee.uq.edu.au/pjr/HomePages/QPFiles/${MY_P}.tar.gz"
+HOMEPAGE="https://staff.itee.uq.edu.au/pjr/HomePages/QuPrologHome.html"
+SRC_URI="https://staff.itee.uq.edu.au/pjr/HomePages/QPFiles/${MY_P}.tar.gz"
LICENSE="Apache-2.0 GPL-2+"
SLOT="0"
@@ -46,6 +46,14 @@ src_prepare() {
}
src_configure() {
+ # -Werror=strict-aliasing
+ # https://bugs.gentoo.org/924768
+ # Upstream's sole provided contact method is email. I have sent an email
+ # describing the issue with a fairly rapid response saying there will be
+ # a new release "shortly" and that hopefully it will include a fix. -- Eli
+ append-flags -fno-strict-aliasing
+ filter-lto
+
econf \
--libdir=/usr/$(get_libdir) \
$(use_enable debug) \
diff --git a/dev-lang/qu-prolog/qu-prolog-10.8.ebuild b/dev-lang/qu-prolog/qu-prolog-10.8.ebuild
new file mode 100644
index 000000000000..bb5358c114ed
--- /dev/null
+++ b/dev-lang/qu-prolog/qu-prolog-10.8.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit autotools flag-o-matic python-any-r1 qmake-utils
+
+MY_P=qp${PV}
+
+DESCRIPTION="Extended Prolog supporting quantifiers, object-variables and substitutions"
+HOMEPAGE="https://staff.itee.uq.edu.au/pjr/HomePages/QuPrologHome.html"
+SRC_URI="https://staff.itee.uq.edu.au/pjr/HomePages/QPFiles/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0 GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="debug doc examples pcre pedro qt5 readline threads"
+
+RDEPEND="
+ !dev-util/rej
+ qt5? (
+ dev-qt/qtwidgets:5
+ dev-qt/qtgui:5
+ )
+ pcre? ( dev-libs/libpcre2 )
+ pedro? ( net-misc/pedro )
+ readline? ( app-misc/rlwrap )"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ dev-lang/perl"
+
+S="${WORKDIR}"/${MY_P}
+
+src_prepare() {
+ eapply "${FILESDIR}"/${PN}-10.x-qt5.patch
+ eapply "${FILESDIR}"/${PN}-10.8-compiler-flags.patch
+ eapply "${FILESDIR}"/${PN}-10.x-qa-compiler-flags.patch
+ eapply_user
+
+ eautoconf
+
+ python_fix_shebang "${S}"/bin/qc.in
+}
+
+src_configure() {
+ # -Werror=strict-aliasing
+ # https://bugs.gentoo.org/924768
+ # Upstream's sole provided contact method is email. I have sent an email
+ # describing the issue with a fairly rapid response saying there will be
+ # a new release "shortly" and that hopefully it will include a fix. -- Eli
+ append-flags -fno-strict-aliasing
+ filter-lto
+
+ econf \
+ --libdir=/usr/$(get_libdir) \
+ $(use_enable debug) \
+ $(use_enable threads multiple-threads)
+
+ if use qt5; then
+ cd "${S}"/src/xqp || die
+ eqmake5 xqp.pro
+ fi
+}
+
+src_compile() {
+ emake OPTIMISATION="${CXXFLAGS}"
+
+ if use qt5; then
+ cd "${S}"/src/xqp || die
+ emake
+ fi
+}
+
+src_install() {
+ sed \
+ -e "s|${S}|/usr/$(get_libdir)/qu-prolog|g" \
+ -i bin/qc bin/qc1.qup bin/qecat bin/qg bin/qp || die
+
+ dobin bin/{qc,qecat,qp,kq}
+
+ use qt5 && dobin src/xqp/xqp
+
+ into /usr/$(get_libdir)/${PN}
+ dobin bin/{qa,qc1.qup,qdeal,qem,qg,ql,qppp}
+
+ insinto /usr/$(get_libdir)/${PN}/bin
+ doins bin/rl_commands
+ doins bin/{qc1.qup,qecat,qg,qp}.qx
+
+ insinto /usr/$(get_libdir)/${PN}/library
+ doins prolog/library/*.qo
+
+ insinto /usr/$(get_libdir)/${PN}/compiler
+ doins prolog/compiler/*.qo
+
+ doman doc/man/man1/*.1
+
+ dodoc README
+
+ if use doc ; then
+ docinto reference-manual
+ dodoc doc/manual/*.html
+ docinto user-guide
+ dodoc doc/user/main.pdf
+ fi
+
+ if use examples ; then
+ docinto examples
+ newdoc examples/README README.examples
+ dodoc examples/*.ql
+ fi
+}
diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest
index 2c89d9ccb140..1eb7833cafc6 100644
--- a/dev-lang/ruby/Manifest
+++ b/dev-lang/ruby/Manifest
@@ -20,6 +20,7 @@ DIST ruby-3.1.5.tar.xz 15293020 BLAKE2B 5d886f45f2a27dbe7682f5afc234d4992ffc5006
DIST ruby-3.1.6.tar.xz 15273916 BLAKE2B feb697b8d01ebde0042e679b814c4c95481c6afa607db46ad1511fb0d1a555d7800725e847e90dd9944ef42575c5205cf711025a165a65b6070743701631929c SHA512 a3159648706d6d11ce9613201141e884b3accc69bf928c756de8a8f2b71d219886e91435d30cf2c30e85af31f87801138e10106344766100f1b80662c7244652
DIST ruby-3.2.3.tar.xz 15163960 BLAKE2B e2cfa215b2cb910bac5f3b58edcdece91b21ffcfb6b4c183eec0c8502c320b78e7a8732c393b6e6a38dc9cfd81e129c00562d9be45f0deb36306ac81f96dcdc1 SHA512 d2a1897c2f4e801a28acb869322abfee76775115016252cecad90639485ed51deda1446cb16edb387f10a2e188602d646ef9b008b57f27bd745071277c535f3b
DIST ruby-3.2.4.tar.xz 15175656 BLAKE2B 9c2300a958b03528d51f0d74a069c8c538ca4009835d55377509a000bcfb43893a8a80d8fda57011e77c72e6283cb259281d5ba7b37444546e49f2a9ad515cf3 SHA512 fb0af37be4b6ad7b98ab9f8a508952238ee68b5828e3926331e4db52e2ebc1e6046f31114069322db0cd3bea7c9b82ace91c8564573ddcfa1f960877b237dbff
+DIST ruby-3.2.5.tar.xz 15189072 BLAKE2B a37c92a0f751e81dcae328b8944c4ecf10f6aee4f4468d6d08bb924c9808c8556c5febb71a825dd62dbcccf56385138e6e306bf3efae3589bdf0512d16d99d1a SHA512 092348b84b513aec62e63ec10b326370d0e3d1fa3126c59c03c84f28e2d7741a4772c461b077ec6a7dac3964a20f434655729e1acd50a3438755d7ad64073305
DIST ruby-3.3.2.tar.xz 16349500 BLAKE2B 2a474df10363555e8f0b9ad73bb854ad34f3d1485b8bdde833c999b20bc2c17282d2097d887d10f454bbd4dfdf08f04bb644a7e41d0b4a0ff0e9eb144339b5e8 SHA512 70dd8eb933956f894c52a8ede42e8ee74ff0e062bd8134a0bfb6bffc83a2848a658b62c8df5530b4dd64087b2d5373909c48917528facb1e6f4e99e79b6ad449
DIST ruby-3.3.4.tar.xz 16366580 BLAKE2B e10b81ad7838e3d443ce0b12b8372faebb001f00a32dc0fa1f5e37c46baae99ea714e7f2a8741f0294255312030e844f32fc5d1c3695545cf8303e85b3255f21 SHA512 b26461a13ff82a08a282f10108028bb2a2e4a28da6182a291062fc54089c6655d79c22cc69d59156f9b11cb10a17fe8c69d489343fbae123a45f03361b95c9eb
EBUILD ruby-3.1.4-r3.ebuild 8353 BLAKE2B 442e4dab4ca961de6b489d7bf4182d5664c9e473f0891479d3842cb09936b5e5b21ace1a730b56824969eda328c38f3b7b25c48124399c8ba3c97a73aff69b77 SHA512 dea295106f0a8a94e44f6c341c57fd19b2d9d212b8db6f7561376aac07a546107809a2eda7f8be38f0fbd0b9f477ce88f5432fdec8004f19cc16691ac0c13dbf
@@ -30,6 +31,8 @@ EBUILD ruby-3.1.6.ebuild 8844 BLAKE2B 35f1b99e2505df7b0deb14e186604e2169cf38812f
EBUILD ruby-3.2.3.ebuild 9534 BLAKE2B 8383353bf02c2abba8dcf67cbdffcc197d085fce1c961c56d0d493ccc840f0970efb105b916a28d590c6f6caff42e654651361f685bce545c969082981cbd25f SHA512 78f8270db8c06b960a84b03b20b31f3aacc455905637e8cf3e040724d1c39b43aac19e296205902cf6c958e5c64ed0843e6854ae9997e612598aea6b3965c6d0
EBUILD ruby-3.2.4-r1.ebuild 9730 BLAKE2B d632c75cd778e7109aef58842b195c24c78c9d7285a23376bcfe5d18cd47183d6d2a311ed1f186c38bde8fa9e3f94253f346b474df253ce1f5ad74a953c4b8b0 SHA512 711e1f7e70144d1d852896a36c1ec3ae461de320a959dcfb340fa0bb9485b4c933b1c608f13ffd5bdf5307ef0d61e4bdc1242d35f3ecf506016855b4e25ad824
EBUILD ruby-3.2.4.ebuild 9580 BLAKE2B bc4d298bb3cb99537e4cea4cd329aa00d73d5adaabf89493c373cf4b5b313feb423591b29c98914a5b24108f5ece81db04630074a05c2b625896783e9cde806b SHA512 19f9ffc2ad5a679917ad2b93a973ea0db71eccfa71341605311a57564d0154d80c45581f6cee7f24218f7e57fba5abf1a2ca44c54cb1833d32dad6daee0cdb50
+EBUILD ruby-3.2.5.ebuild 9687 BLAKE2B 9a2d8d6baf712752940939dd30fbdbbb352e22b6280af67b978c18a0d5f2d4a444e982b057054ef87a87a67d0cf2ef60b7c9cc3331ec22c073692b0f2049affa SHA512 1e9c5ed390df60260e67bb55a4db3e012536f3579396028725a68323cb78dabac393f56283e34c7c56f44925bfe9d96dbc4cc6bc78ec796f783f21297e373c55
EBUILD ruby-3.3.2.ebuild 9269 BLAKE2B 3f9971414512fb66be404c5a7ed5553e8b581b5f19874d7ab733d5d6aad3cca489163764d3bc2aa81a6f5d2981026290e4a197cf4b3712218741b4aede3268ee SHA512 44419e0bac61f0e9215e4c131ede309b08ef3d021c476899c0adadf35d54d661e86beb75a5e80a95dc7915131b748823e9ea5b53af3f8bce6fb7ac11c178690c
-EBUILD ruby-3.3.4.ebuild 9419 BLAKE2B 2c14e01cbb092ee4662b887472ccd89b17f9f1fa244d49b777b80fc31f86c2b647be42d6ed9f76d96c9ca9f5e18efefd851aca438dfbca8a27c0327e1be93e95 SHA512 050c4ed23770373e183a9a1b404e2ac9f2f631e134249ce8614f5002d9795748e4087b0bc9902cbc54ce79b99618773d4bcca7a105b01d3dde5763c828984fa4
+EBUILD ruby-3.3.4-r1.ebuild 9540 BLAKE2B 1ba26b28667aa365da7b9e86f182843e3e69d2ce02f2c8338d7b62e54c26dc59ee4dd841cdd99a1dfe7919cb57aac03bb0989424a45a388e097cfac74271a2ce SHA512 f445bb5a5b05c85fe12ec8054f3847b4a7d42a16b0f868a65dbe1b13b179d9e0259d516613312c89b19b80321429e8ed0a69800eda91f7e552c0269faa23760f
+EBUILD ruby-3.3.4.ebuild 9540 BLAKE2B 1ba26b28667aa365da7b9e86f182843e3e69d2ce02f2c8338d7b62e54c26dc59ee4dd841cdd99a1dfe7919cb57aac03bb0989424a45a388e097cfac74271a2ce SHA512 f445bb5a5b05c85fe12ec8054f3847b4a7d42a16b0f868a65dbe1b13b179d9e0259d516613312c89b19b80321429e8ed0a69800eda91f7e552c0269faa23760f
MISC metadata.xml 504 BLAKE2B ca7743b107a6825dd029e0798cf1b0d048e3ce730382245565692e9242d09553db2c09edd1d09195602d9d96167c8606f3e7ddd5a27e1473eb9e4fbbc9074d1d SHA512 c2cf0a52fe03067cc09edc660d981af2465e4a733e53ad601d0e6377fa61072a60be4ec916cae94023328600e52a29f18621b47e839bddc897fa00db44feb9b1
diff --git a/dev-lang/ruby/ruby-3.2.5.ebuild b/dev-lang/ruby/ruby-3.2.5.ebuild
new file mode 100644
index 000000000000..567f50286b60
--- /dev/null
+++ b/dev-lang/ruby/ruby-3.2.5.ebuild
@@ -0,0 +1,300 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multiprocessing
+
+MY_P="${PN}-$(ver_cut 1-3)"
+S=${WORKDIR}/${MY_P}
+
+SLOT=$(ver_cut 1-2)
+MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
+RUBYVERSION=${SLOT}.0
+
+DESCRIPTION="An object-oriented scripting language"
+HOMEPAGE="https://www.ruby-lang.org/"
+SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
+
+LICENSE="|| ( Ruby-BSD BSD-2 )"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
+
+RDEPEND="
+ berkdb? ( sys-libs/db:= )
+ gdbm? ( sys-libs/gdbm:= )
+ jemalloc? ( dev-libs/jemalloc:= )
+ jit? ( >=virtual/rust-1.58.1 )
+ ssl? (
+ dev-libs/openssl:0=
+ )
+ socks5? ( >=net-proxy/dante-1.1.13 )
+ systemtap? ( dev-debug/systemtap )
+ tk? (
+ dev-lang/tcl:0=[threads]
+ dev-lang/tk:0=[threads]
+ )
+ dev-libs/libyaml
+ dev-libs/libffi:=
+ sys-libs/readline:0=
+ sys-libs/zlib
+ virtual/libcrypt:=
+ >=app-eselect/eselect-ruby-20231008
+"
+
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
+
+BUNDLED_GEMS="
+ >=dev-ruby/debug-1.7.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/irb-1.6.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/matrix-0.4.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/minitest-5.16.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-ftp-0.2.0[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-imap-0.3.4[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-smtp-0.3.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/prime-0.1.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby32(-)]
+ >=dev-ruby/rbs-2.8.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/rexml-3.2.5[ruby_targets_ruby32(-)]
+ >=dev-ruby/rss-0.2.9[ruby_targets_ruby32(-)]
+ >=dev-ruby/test-unit-3.5.7[ruby_targets_ruby32(-)]
+ >=dev-ruby/typeprof-0.21.3[ruby_targets_ruby32(-)]
+"
+
+PDEPEND="
+ ${BUNDLED_GEMS}
+ virtual/rubygems[ruby_targets_ruby32(-)]
+ >=dev-ruby/bundler-2.3.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/json-2.6.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby32(-)]
+ xemacs? ( app-xemacs/ruby-modes )
+"
+
+src_prepare() {
+ eapply "${FILESDIR}"/"${SLOT}"/010*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/011*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/902*.patch
+
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/${SLOT}/901-musl-*.patch
+ fi
+
+ einfo "Unbundling gems..."
+ cd "$S"
+ # Remove bundled gems that we will install via PDEPEND, bug
+ # 539700.
+ rm -fr gems/* || die
+ touch gems/bundled_gems || die
+ # Don't install CLI tools since they will clash with the gem
+ rm -f bin/{racc,racc2y,y2racc} || die
+ sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die
+
+ # Remove tests that are known to fail or require a network connection
+ rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die
+ rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die
+
+ # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
+ rm -rf tool/test/webrick || die
+
+ # Avoid test using the system ruby
+ sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || die
+
+ # Avoid testing against hard-coded blockdev devices that most likely are not available
+ sed -i -e '/def blockdev/a@blockdev = nil' test/ruby/test_file_exhaustive.rb || die
+
+ # Avoid tests that require gem downloads
+ sed -i -e '/^test-syntax-suggest/ s/\$(TEST_RUNNABLE)/no/' common.mk || die
+ sed -i -e '/^check:/ s/\$(TEST_RUNNABLE)-\$(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest//' common.mk || die
+
+ # Avoid test that fails intermittently
+ sed -i -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' test/rubygems/test_gem_commands_exec_command.rb || die
+
+ if use prefix ; then
+ # Fix hardcoded SHELL var in mkmf library
+ sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ # avoid symlink loop on Darwin (?!)
+ sed -i \
+ -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
+ configure.ac || die
+
+ # make ar/libtool hack for Darwin work
+ sed -i \
+ -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
+ configure.ac || die
+
+ # disable using security framework (GCC barfs on those headers)
+ sed -i \
+ -e 's/MAC_OS_X_VERSION_MIN_REQUIRED/_DISABLED_/' \
+ random.c || die
+ fi
+ fi
+
+ eapply_user
+
+ eautoreconf
+}
+
+src_configure() {
+ local modules="win32,win32ole" myconf=
+
+ # Ruby's build system does interesting things with MAKEOPTS and doesn't
+ # handle MAKEOPTS="-Oline" or similar well. Just filter it all out
+ # and use -j/-l parsed out from the original MAKEOPTS, then use that.
+ # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing
+ # is set by the user in MAKEOPTS. See bug #900929 and bug #728424.
+ local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+ unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS
+ export MAKEOPTS="${makeopts_tmp}"
+
+ # Avoid a hardcoded path to mkdir to avoid issues with mixed
+ # usr-merge and normal binary packages, bug #932386.
+ export ac_cv_path_mkdir=mkdir
+
+ # -fomit-frame-pointer makes ruby segfault, see bug #150413.
+ filter-flags -fomit-frame-pointer
+ # In many places aliasing rules are broken; play it safe
+ # as it's risky with newer compilers to leave it as it is.
+ append-flags -fno-strict-aliasing
+
+ # Socks support via dante
+ if use socks5 ; then
+ # Socks support can't be disabled as long as SOCKS_SERVER is
+ # set and socks library is present, so need to unset
+ # SOCKS_SERVER in that case.
+ unset SOCKS_SERVER
+ fi
+
+ # Increase GC_MALLOC_LIMIT if set (default is 8000000)
+ if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
+ append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
+ fi
+
+ # ipv6 hack, bug 168939. Needs --enable-ipv6.
+ use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
+
+ # Determine which modules *not* to build depending in the USE flags.
+ if ! use berkdb ; then
+ modules="${modules},dbm"
+ fi
+ if ! use gdbm ; then
+ modules="${modules},gdbm"
+ fi
+ if ! use ssl ; then
+ modules="${modules},openssl"
+ fi
+ if ! use tk ; then
+ modules="${modules},tk"
+ fi
+
+ # Provide an empty LIBPATHENV because we disable rpath but we do not
+ # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
+ # #564272
+ INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
+ --program-suffix=${MY_SUFFIX} \
+ --with-soname=ruby${MY_SUFFIX} \
+ --with-readline-dir="${EPREFIX}"/usr \
+ --enable-shared \
+ --enable-pthread \
+ --disable-rpath \
+ --without-baseruby \
+ --with-compress-debug-sections=no \
+ --enable-mkmf-verbose \
+ --with-out-ext="${modules}" \
+ $(use_with jemalloc jemalloc) \
+ $(use_enable jit jit-support) \
+ $(use_enable jit yjit) \
+ $(use_enable socks5 socks) \
+ $(use_enable systemtap dtrace) \
+ $(use_enable doc install-doc) \
+ --enable-ipv6 \
+ $(use_enable static-libs static) \
+ $(use_enable static-libs install-static-library) \
+ $(use_with static-libs static-linked-ext) \
+ $(use_enable debug) \
+ ${myconf} \
+ $(use_with valgrind) \
+ --enable-option-checking=no
+
+ # Makefile is broken because it lacks -ldl
+ rm -rf ext/-test-/popen_deadlock || die
+}
+
+src_compile() {
+ local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
+}
+
+src_test() {
+ local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ emake V=1 check
+}
+
+src_install() {
+ # Remove the remaining bundled gems. We do this late in the process
+ # since they are used during the build to e.g. create the
+ # documentation.
+ einfo "Removing default gems before installation"
+ rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
+
+ # Ruby is involved in the install process, we don't want interference here.
+ unset RUBYOPT
+
+ local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
+
+ local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ local -x DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
+ fi
+
+ local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
+ for d in $(find "${S}/ext" -type d) ; do
+ RUBYLIB="${RUBYLIB}:$d"
+ done
+
+ # Create directory for the default gems
+ local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
+ mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
+
+ emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
+
+ # Remove installed rubygems and rdoc copy
+ rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
+ rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
+ rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
+ rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
+
+ if use doc; then
+ emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
+ fi
+
+ if use examples; then
+ dodoc -r sample
+ fi
+
+ dodoc ChangeLog NEWS.md README*
+ dodoc -r doc
+}
+
+pkg_postinst() {
+ if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
+ eselect ruby set ruby${MY_SUFFIX}
+ fi
+
+ elog
+ elog "To switch between available Ruby profiles, execute as root:"
+ elog "\teselect ruby set ruby(30|31|...)"
+ elog
+}
+
+pkg_postrm() {
+ eselect ruby cleanup
+}
diff --git a/dev-lang/ruby/ruby-3.3.4-r1.ebuild b/dev-lang/ruby/ruby-3.3.4-r1.ebuild
new file mode 100644
index 000000000000..e96e95a64f16
--- /dev/null
+++ b/dev-lang/ruby/ruby-3.3.4-r1.ebuild
@@ -0,0 +1,301 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multiprocessing
+
+DESCRIPTION="An object-oriented scripting language"
+HOMEPAGE="https://www.ruby-lang.org/"
+
+MY_P="${PN}-$(ver_cut 1-3)"
+S=${WORKDIR}/${MY_P}
+
+SLOT=$(ver_cut 1-2)
+MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
+RUBYVERSION=${SLOT}.0
+
+SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
+
+LICENSE="|| ( Ruby-BSD BSD-2 )"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
+
+RDEPEND="
+ berkdb? ( sys-libs/db:= )
+ gdbm? ( sys-libs/gdbm:= )
+ jemalloc? ( dev-libs/jemalloc:= )
+ jit? ( >=virtual/rust-1.58.1 )
+ ssl? (
+ dev-libs/openssl:0=
+ )
+ socks5? ( >=net-proxy/dante-1.1.13 )
+ systemtap? ( dev-debug/systemtap )
+ tk? (
+ dev-lang/tcl:0=[threads]
+ dev-lang/tk:0=[threads]
+ )
+ dev-libs/libyaml
+ dev-libs/libffi:=
+ sys-libs/zlib
+ virtual/libcrypt:=
+ >=app-eselect/eselect-ruby-20231226
+"
+
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
+
+BUNDLED_GEMS="
+ >=dev-ruby/debug-1.9.1[ruby_targets_ruby33(-)]
+ >=dev-ruby/irb-1.11.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/matrix-0.4.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/minitest-5.20.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-ftp-0.3.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-imap-0.4.9[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-smtp-0.4.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/prime-0.1.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/racc-1.7.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/rake-13.1.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/rbs-3.4.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/rexml-3.2.8[ruby_targets_ruby33(-)]
+ >=dev-ruby/rss-0.3.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/test-unit-3.6.1[ruby_targets_ruby33(-)]
+ >=dev-ruby/typeprof-0.21.9[ruby_targets_ruby33(-)]
+"
+
+PDEPEND="
+ ${BUNDLED_GEMS}
+ virtual/rubygems[ruby_targets_ruby33(-)]
+ >=dev-ruby/bundler-2.5.11[ruby_targets_ruby33(-)]
+ >=dev-ruby/did_you_mean-1.6.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/json-2.7.1[ruby_targets_ruby33(-)]
+ >=dev-ruby/rdoc-6.6.2[ruby_targets_ruby33(-)]
+ xemacs? ( app-xemacs/ruby-modes )
+"
+
+src_prepare() {
+ eapply "${FILESDIR}"/"${SLOT}"/010*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/902*.patch
+
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/${SLOT}/901-musl-*.patch
+ fi
+
+ einfo "Unbundling gems..."
+ cd "$S"
+ # Remove bundled gems that we will install via PDEPEND, bug
+ # 539700.
+ rm -fr gems/* || die
+ touch gems/bundled_gems || die
+
+ # Avoid the irb default gemspec since we will install the normal gem
+ # instead. This avoids a file collision with dev-ruby/irb.
+ rm lib/irb/irb.gemspec || die
+
+ # Remove tests that are known to fail or require a network connection
+ rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die
+ rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb \
+ spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die
+
+ # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
+ rm -rf tool/test/webrick || die
+
+ # Avoid test using the system ruby
+ sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || die
+
+ # Avoid testing against hard-coded blockdev devices that most likely are not available
+ sed -i -e '/def blockdev/a@blockdev = nil' test/ruby/test_file_exhaustive.rb || die
+
+ # Avoid tests that require gem downloads
+ sed -e '/^\(test-syntax-suggest\|PREPARE_SYNTAX_SUGGEST\)/ s/\$(TEST_RUNNABLE)/no/' \
+ -i common.mk
+
+ # Avoid test that fails intermittently
+ sed -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' \
+ -i test/rubygems/test_gem_commands_exec_command.rb || die
+
+ if use prefix ; then
+ # Fix hardcoded SHELL var in mkmf library
+ sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ # avoid symlink loop on Darwin (?!)
+ sed -i \
+ -e '/LIBRUBY_ALIASES=/s/lib$(RUBY_INSTALL_NAME).$(SOEXT)//' \
+ configure.ac || die
+
+ # make ar/libtool hack for Darwin work
+ sed -i \
+ -e "s/ac_cv_prog_ac_ct_AR='libtool/ac_cv_prog_AR='${CHOST}-libtool/" \
+ configure.ac || die
+
+ # disable using security framework (GCC barfs on those headers)
+ sed -i \
+ -e 's/MAC_OS_X_VERSION_MIN_REQUIRED/_DISABLED_/' \
+ random.c || die
+ fi
+ fi
+
+ eapply_user
+
+ eautoreconf
+}
+
+src_configure() {
+ local modules="win32,win32ole" myconf=
+
+ # Ruby's build system does interesting things with MAKEOPTS and doesn't
+ # handle MAKEOPTS="-Oline" or similar well. Just filter it all out
+ # and use -j/-l parsed out from the original MAKEOPTS, then use that.
+ # Newer Portage sets this option by default in GNUMAKEFLAGS if nothing
+ # is set by the user in MAKEOPTS. See bug #900929 and bug #728424.
+ local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+ unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS
+ export MAKEOPTS="${makeopts_tmp}"
+
+ # Avoid a hardcoded path to mkdir to avoid issues with mixed
+ # usr-merge and normal binary packages, bug #932386.
+ export ac_cv_path_mkdir=mkdir
+
+ # -fomit-frame-pointer makes ruby segfault, see bug #150413.
+ filter-flags -fomit-frame-pointer
+ # In many places aliasing rules are broken; play it safe
+ # as it's risky with newer compilers to leave it as it is.
+ append-flags -fno-strict-aliasing
+
+ # Socks support via dante
+ if use socks5 ; then
+ # Socks support can't be disabled as long as SOCKS_SERVER is
+ # set and socks library is present, so need to unset
+ # SOCKS_SERVER in that case.
+ unset SOCKS_SERVER
+ fi
+
+ # Increase GC_MALLOC_LIMIT if set (default is 8000000)
+ if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
+ append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
+ fi
+
+ # Determine which modules *not* to build depending in the USE flags.
+ if ! use berkdb ; then
+ modules="${modules},dbm"
+ fi
+ if ! use gdbm ; then
+ modules="${modules},gdbm"
+ fi
+ if ! use ssl ; then
+ modules="${modules},openssl"
+ fi
+ if ! use tk ; then
+ modules="${modules},tk"
+ fi
+
+ # Fix co-routine selection for x32, bug 933070
+ [[ ${CHOST} == *gnux32 ]] && myconf="${myconf} --with-coroutine=amd64"
+
+ # Provide an empty LIBPATHENV because we disable rpath but we do not
+ # need LD_LIBRARY_PATH by default since that breaks USE=multitarget
+ # #564272
+ INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
+ --program-suffix=${MY_SUFFIX} \
+ --with-soname=ruby${MY_SUFFIX} \
+ --enable-shared \
+ --enable-pthread \
+ --disable-rpath \
+ --without-baseruby \
+ --with-compress-debug-sections=no \
+ --enable-mkmf-verbose \
+ --with-out-ext="${modules}" \
+ $(use_with jemalloc jemalloc) \
+ $(use_enable jit jit-support) \
+ $(use_enable jit yjit) \
+ $(use_enable socks5 socks) \
+ $(use_enable systemtap dtrace) \
+ $(use_enable doc install-doc) \
+ $(use_enable static-libs static) \
+ $(use_enable static-libs install-static-library) \
+ $(use_with static-libs static-linked-ext) \
+ $(use_enable debug) \
+ ${myconf} \
+ $(use_with valgrind) \
+ --enable-option-checking=no
+
+ # Makefile is broken because it lacks -ldl
+ rm -rf ext/-test-/popen_deadlock || die
+}
+
+src_compile() {
+ local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
+}
+
+src_test() {
+ local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+ emake V=1 check
+}
+
+src_install() {
+ # Remove the remaining bundled gems. We do this late in the process
+ # since they are used during the build to e.g. create the
+ # documentation.
+ einfo "Removing default gems before installation"
+ rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
+
+ # Ruby is involved in the install process, we don't want interference here.
+ unset RUBYOPT
+
+ local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
+
+ local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
+
+ if [[ ${CHOST} == *darwin* ]] ; then
+ local -x DYLD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${DYLD_LIBRARY_PATH+:}${DYLD_LIBRARY_PATH}"
+ fi
+
+ local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
+ for d in $(find "${S}/ext" -type d) ; do
+ RUBYLIB="${RUBYLIB}:$d"
+ done
+
+ # Create directory for the default gems
+ local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
+ mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
+
+ emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
+
+ # Remove installed rubygems and rdoc copy
+ rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
+ rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
+ rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
+ rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
+
+ if use doc; then
+ emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
+ fi
+
+ if use examples; then
+ dodoc -r sample
+ fi
+
+ dodoc ChangeLog NEWS.md README*
+ dodoc -r doc
+}
+
+pkg_postinst() {
+ if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
+ eselect ruby set ruby${MY_SUFFIX}
+ fi
+
+ elog
+ elog "To switch between available Ruby profiles, execute as root:"
+ elog "\teselect ruby set ruby(30|31|...)"
+ elog
+}
+
+pkg_postrm() {
+ eselect ruby cleanup
+}
diff --git a/dev-lang/ruby/ruby-3.3.4.ebuild b/dev-lang/ruby/ruby-3.3.4.ebuild
index 0b4513e79341..e96e95a64f16 100644
--- a/dev-lang/ruby/ruby-3.3.4.ebuild
+++ b/dev-lang/ruby/ruby-3.3.4.ebuild
@@ -194,6 +194,9 @@ src_configure() {
modules="${modules},tk"
fi
+ # Fix co-routine selection for x32, bug 933070
+ [[ ${CHOST} == *gnux32 ]] && myconf="${myconf} --with-coroutine=amd64"
+
# Provide an empty LIBPATHENV because we disable rpath but we do not
# need LD_LIBRARY_PATH by default since that breaks USE=multitarget
# #564272
diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest
index 90af8af8aac4..998f873023e3 100644
--- a/dev-lang/rust-bin/Manifest
+++ b/dev-lang/rust-bin/Manifest
@@ -306,5 +306,5 @@ EBUILD rust-bin-1.75.0.ebuild 7319 BLAKE2B 6d651ee302620a28e8c9312af50eacb4638b5
EBUILD rust-bin-1.76.0.ebuild 7530 BLAKE2B 0674e0f71079e88432ac0ebd00d9c57679659c00e0f46e77b67bbdade84c8960ef1c806626c2be7942dc7a9f52c31fde92e93c00a9a27d463888815ff8b9327d SHA512 3418d6746df6c0f8c84ad8a7f2e68da9e25e8b619eb190577ce240f8b94c02c74c7b5be3f39c12a231e4af989ed9f2a321a8698016c893a249ecb68cab1135f1
EBUILD rust-bin-1.77.1.ebuild 7497 BLAKE2B fb9a25879a8886086486ba5e2010021c01e16ea2c525bf3d36d23e72c7a24eb6f196fd96d3d29231070f5a1db807865e135915224d37eebdffdf485ecc4ca83f SHA512 7ae2fb17a2fcd2d76ae85d1b0420429544a005e2c5ce1cd18a5351353b840d4048d491a316a7a97197198045f4af5f98681b4fa7b5b47df060e0ea6112b3512f
EBUILD rust-bin-1.78.0.ebuild 7611 BLAKE2B 5e56639a97cf4e543193670181aea4413e2a757d1c09d4ead6f70732845446a8dbbfa17c76ae3e5ead91f65574d10cc1e2624beb9990aba26914dfa13be3dd1f SHA512 c86d0ef220d2a2a298303a9c754e43a65855a8dd1a4b2b812b03c474c1ecdbd94a069c03927bc91f30861ad8285ac3f0bd04a47334136e087140ae76f50b113b
-EBUILD rust-bin-1.79.0.ebuild 7611 BLAKE2B 37c479baffce3158d88006ae22810187e63e395b8ecf898e6ea95e2987492f73bcb7ab604ce9b1783354ad3d7c69d677ec27d90a74d71681abb20c16c61ac72e SHA512 bb276e81e11e78c577bd7999b1d73e4d0dbfbf8857aa2e282e9ebfc87ba628b88aa30f0e27993f5601e87d47eafb10549092e2dd3f9b985b5944be9c7324e2a5
+EBUILD rust-bin-1.79.0.ebuild 7604 BLAKE2B 99c532442ff6e40c70a391d777122c32deec8ba8cf45f19d1abdf8e19f75a8776c9741ef54915995e24a646ff94b6e7ed76b2d27ac6631645179109915903d90 SHA512 b64087f5de9753a1476ec0ab72151309e75f4aa847ef0556bff0848a15b473fbb0a535ef1e957d19c92f416ad159d519c97764eb55802fc0c466930002e7e671
MISC metadata.xml 1220 BLAKE2B 5c4d286e569c929913317d15d37de08db51655ec41c1d3b1d84aeb6982b53afd7ebf3f9adbcd4e3c76fc9b82056648b6af1507a5728388fd2d2e8d743e5225db SHA512 72d32987894268a7b3ac8e8606428cf8315fcf29ce1945c9e55527a5c696742f6f2a44dcfe01bf5abb0cad60b5881a59dedecdc07db4ef2df22ef13e3b2732a8
diff --git a/dev-lang/rust-bin/rust-bin-1.79.0.ebuild b/dev-lang/rust-bin/rust-bin-1.79.0.ebuild
index 8411f28b752f..aedec2e6829f 100644
--- a/dev-lang/rust-bin/rust-bin-1.79.0.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.79.0.ebuild
@@ -33,7 +33,7 @@ SRC_URI+=" riscv? (
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
SLOT="stable"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix profiler rust-analyzer rust-src rustfmt"
DEPEND=""
diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest
index 75d90fe73f4a..bdf85736f49a 100644
--- a/dev-lang/rust/Manifest
+++ b/dev-lang/rust/Manifest
@@ -268,5 +268,5 @@ EBUILD rust-1.75.0-r1.ebuild 25288 BLAKE2B a474ca3a0e5e25f826d365b7550c80925baf6
EBUILD rust-1.76.0-r1.ebuild 25330 BLAKE2B 7639eecc2292098ec9f7e59dd6ec61601b46e8fc1d7ee1621929c95347f49ca8b936e2c39a02fddfb9b79fbc9059ed53a8458350e1a3e845b9feb496c06c8e6f SHA512 a25c16d800754151bf03b0af7185f71fa107e6337c85ad01e4680047b11a1599168fe2547da83a06f7adaeec25913bec79ddc9e4a0c2cfbd0cd4afe0b0d30b9e
EBUILD rust-1.77.1.ebuild 25251 BLAKE2B ff042078351f96d059aed3aa1fec39ee6a3d7bccbeac71d82cbc67c162b0ad1391fe82c71409985af66590553b3f879febaeb259c157444f8197250c4490250a SHA512 574c34795bc7622aa24bbab5190b23b1cebcb95a5af9bb315203543a78048ed74e1a74629022492c4a6cefaf2f9ac415104cf1339cff4e7988a2b79b9fe1b1e2
EBUILD rust-1.78.0.ebuild 25413 BLAKE2B df9443e5f9ed4fbd27f022eb64e27d52b3b84641be27abc245fd4a5341b2b7907ae6573fc13023a984ea40bd6ecbc315efe792003a97dd4382e2f0753b1c7f60 SHA512 2510adb7023ff5530bcadd35efe34fb576b48dd98394154ce8e1be110b8a2d88c70518ddc7025f41b9b67d071c6cdc67a840202d54bb7b0f373cf1b7e4e78f6f
-EBUILD rust-1.79.0.ebuild 25487 BLAKE2B ae63f718ec2575670dec0efeb6e24aa56fbb2b7c267ff7229f583b59705f5729789aa2fe13e554e8c39103611bce711aa95aa97e8827ff99d521f6163caff030 SHA512 0eb856613a4da6c1b9d878e79f09ea087e1516187683fb64c8a6f6b752a9837bc8aaf5473196cb99a550cd1e842b3ab07cfdd430330be22a5e7c8aabcfc86096
+EBUILD rust-1.79.0.ebuild 25480 BLAKE2B d2087cce728db5d5383e324476ba5380f95776d0d4742917742d9bd332b643c498f7a30ae32045d44a7aaeba7f235a614add12aa739765e4c308a02027ef02b4 SHA512 04ca9c5dcf088a0398ab05a39eb77119dd495248217fffe7451736cdee3c3ab1a274a54c4b6257384d39678cc87102d3e2ea3f0dcb40cbd657a0e07b7b93eaac
MISC metadata.xml 1945 BLAKE2B cf3ed0b2550564faee94e53e21deb0e905b38cd45c503ba18f55c36f13093fa65c4dac8e544c891c9378b2ce32912cab1a1a0b61a277ff29f5288b672f4a218d SHA512 a28dc5b78e15aaeec5ccf028a053c3df6a12b24bcfb6e8948e2e25b3c04cc8ede5973f1e57c723081355853152baa8c8219e36bb603b714628e71587d2bba45e
diff --git a/dev-lang/rust/rust-1.79.0.ebuild b/dev-lang/rust/rust-1.79.0.ebuild
index 0223902227f8..0c7ace156b58 100644
--- a/dev-lang/rust/rust-1.79.0.ebuild
+++ b/dev-lang/rust/rust-1.79.0.ebuild
@@ -19,7 +19,7 @@ else
SLOT="stable/${ABI_VER}"
MY_P="rustc-${PV}"
SRC="${MY_P}-src.tar.xz"
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
fi
RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
diff --git a/dev-lang/scrapscript/Manifest b/dev-lang/scrapscript/Manifest
new file mode 100644
index 000000000000..afec07895a95
--- /dev/null
+++ b/dev-lang/scrapscript/Manifest
@@ -0,0 +1,4 @@
+DIST scrapscript-0.1.1.tar.gz 29042 BLAKE2B 4e462fae8271c045c3f1d1200d9fd1141528d3c364b0d639055f4b401f01cc60dd88314a9f33ea870facff3c424b8e3c8b62c1d6ec2501fd78538ca5d8c906c7 SHA512 dc507fbe3af4fe74f1b774eaabdb594d8589642fe82bbcf13823a58ed917d4c49d2d4e2afe72673e8642480e88e3c09fb7136c4cfbeb0c783316824851c9a1b9
+EBUILD scrapscript-0.1.1.ebuild 651 BLAKE2B 77887291d3e2cccdac269d569758b233509aa5372e8a03fb3a8f6eefa4d361c077f3225e6cedc3e00e6ee6a604ce82157713b1120fd408fc3bac48c64b3acd3d SHA512 8f73b462902cbd2d5864f5958aaf07eb0cb14cdbc2c593485528794e97199211af4de4d23dec175f55bfe9363f60a4359792a0c2e4b88741bc38cf2b0c82d5d1
+EBUILD scrapscript-9999.ebuild 651 BLAKE2B 77887291d3e2cccdac269d569758b233509aa5372e8a03fb3a8f6eefa4d361c077f3225e6cedc3e00e6ee6a604ce82157713b1120fd408fc3bac48c64b3acd3d SHA512 8f73b462902cbd2d5864f5958aaf07eb0cb14cdbc2c593485528794e97199211af4de4d23dec175f55bfe9363f60a4359792a0c2e4b88741bc38cf2b0c82d5d1
+MISC metadata.xml 971 BLAKE2B 9992961001d28b7be0de8b80a44914db8963388ef55d6a93e27889e39017a93eb9fbc3df36a6ac8b506b95ed764e1aff33f1de3ca82e3f83971b85bec61a9ae1 SHA512 2784ab76df28c9600d4bdf93e9a45124a551147842d531ef8dc4251be93433c7870bce8f4f89e80cef02a2f11efa291f0df0ac64da920e920975cdb95faaa1d7
diff --git a/dev-lang/scrapscript/metadata.xml b/dev-lang/scrapscript/metadata.xml
new file mode 100644
index 000000000000..ff83a4e4ceeb
--- /dev/null
+++ b/dev-lang/scrapscript/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Scrapscript solves the software sharability problem. Modern software
+ breaks at boundaries. APIs diverge, packages crumble, configs ossify,
+ serialization corrupts, git tangles, dependencies break, documentation
+ dies, vulnerabilities surface, etc. To make software safe and sharable,
+ scrapscript combines existing wisdom in new ways: all expressions are
+ content-addressible "scraps", all programs are data, all programs are
+ "platformed".
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/tekknolagi/scrapscript/issues/</bugs-to>
+ <remote-id type="github">tekknolagi/scrapscript</remote-id>
+ <remote-id type="pypi">scrapscript</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/scrapscript/scrapscript-0.1.1.ebuild b/dev-lang/scrapscript/scrapscript-0.1.1.ebuild
new file mode 100644
index 000000000000..2bd71da29ead
--- /dev/null
+++ b/dev-lang/scrapscript/scrapscript-0.1.1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517="poetry"
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit distutils-r1 edo
+
+DESCRIPTION="Functional, content-addressable programming language"
+HOMEPAGE="https://scrapscript.org/
+ https://github.com/tekknolagi/scrapscript/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_BRANCH="trunk"
+ EGIT_REPO_URI="https://github.com/tekknolagi/${PN}.git"
+else
+ inherit pypi
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+python_test() {
+ edo "${EPYTHON}" ./scrapscript.py test
+}
diff --git a/dev-lang/scrapscript/scrapscript-9999.ebuild b/dev-lang/scrapscript/scrapscript-9999.ebuild
new file mode 100644
index 000000000000..2bd71da29ead
--- /dev/null
+++ b/dev-lang/scrapscript/scrapscript-9999.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517="poetry"
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit distutils-r1 edo
+
+DESCRIPTION="Functional, content-addressable programming language"
+HOMEPAGE="https://scrapscript.org/
+ https://github.com/tekknolagi/scrapscript/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_BRANCH="trunk"
+ EGIT_REPO_URI="https://github.com/tekknolagi/${PN}.git"
+else
+ inherit pypi
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+python_test() {
+ edo "${EPYTHON}" ./scrapscript.py test
+}
diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
index 7867bb3d60cc..cc96b4736ab8 100644
--- a/dev-lang/spidermonkey/Manifest
+++ b/dev-lang/spidermonkey/Manifest
@@ -2,19 +2,10 @@ AUX spidermonkey-102-known-test-failures.txt 6918 BLAKE2B 00c40884cdb5f8bc9667ac
AUX spidermonkey-115-known-test-failures.txt 2725 BLAKE2B 181f6e11c0f1997a7af44fa69ad85512ba425ea0505a66339e64c8d91c85eb952c85d5291da95169d2faefb6458d524e4cd18f33911dc68a4c00faebee2ab3ea SHA512 97cefe4eab960bfbfbdbe6903ed49647b5cf45ddd3ad1f65e56b063ce8223a9a9653a89afaa501395358d49c2eb0a58e0f835dd16920823e0aabc71b213ac9da
DIST firefox-102.15.0esr.source.tar.xz 486592324 BLAKE2B b70727fa91d0d270673374bebb4745b87f6194191c1c9415547d772811a4a85f79a97e8985877eb5c9beef43fe15bef574172da35935e7024a947919ec11d883 SHA512 87db6e32fda215253f9b3bd233ef7fa91a64349310064b8482e5c634f34cbe99a2a111d74d2b9f2a99a0b3b510dbf9039ebe4ccfc176c2554d65bc9cfb508bf9
DIST firefox-102esr-patches-13.tar.xz 22212 BLAKE2B 02e9edd071a99abbac02faa11ffce061d5d12d8baa9ce54b51d6bfdbf8160022a1565902d65ca30fe51b5670e509fa921b11a460989933cbb797fcd59d635125 SHA512 8b8b0f3789978447a1293fd9acb5c2db3d7e9f724357a0d762b54f7e34d28f11655997ffeafccfe8001a01dd595848d257f90cb983462c405d434cc794216520
-DIST firefox-115.10.0esr.source.tar.xz 507826764 BLAKE2B 342d5cf4d61b3efe3dde6a6e53f064739d4107690f1d101915ba8cf2214f518aa8c7490903e20179f0874a3bd62871723e877e8f789d9816f3e0d9227d751eb6 SHA512 0626e2c68ce43f24dfc2b9216e2565537ad8781daf4195d53420e1b78d57d0f6360fbe56b0ddbedae3818546c72472c85c1ff2b208c123d32a0543e666f42b65
-DIST firefox-115.11.0esr.source.tar.xz 506015444 BLAKE2B ced11d0665215dbf0aed710015a1e27863ecb8ccbba71ff6f6c57e1789e54c3c7c1940507db86ff2d8eea4d323a9ca7fbc40eaa6eaa7b0ec922ff69ffad64886 SHA512 0f3a87c99fb008088afd509d9259f893fdd44ea6bf6a5e69806fefb8d355415e81b9e8832a392acb9d0c1c50e4add7f1362a4aaadc35e1d9c2e55baf7136aed8
-DIST firefox-115.12.0esr.source.tar.xz 505219784 BLAKE2B 6d2cc80daca9977f73ea0c0fe7e7cac999f2d7a99c324332d69d9438a6d954fe72ffb35e4df4c2a86abcdc94231c4847bb3e64dd612240f8a6d86e63abdb1be2 SHA512 d98475061d870e0f3aa920b7c0b9b0c1cbdb3f4102f760f1d1c5ea3e45e216c673c8d3662501e7e78af4950a003a519e94b57e9b1eda8d615c159cdf62130e89
DIST firefox-115.13.0esr.source.tar.xz 510571488 BLAKE2B e2b00965a92cd11da6c81daa8b6c652dfccc9f0f7d066bc17ae5fa3ac3aaaa021c4489a9f653127f5516e3d77cd7174de328343e22c4edab438e3fcb9a859178 SHA512 799cdf2d0494003a5addd0da703f53deb9c9d6bb6f6c95d40026363382803e2d086039c7798940a1f35f4cba111f2e8e21bde8ac2eac29fd9bd6876dd8d3a85f
-DIST firefox-115.9.1esr.source.tar.xz 508070816 BLAKE2B 5182972f45edfb9ec6b23cc2e869fe86237bd51bd23fd31058d03d9dc98f0ea2dcf57215d61d724e08f98d0e0771b86b5e5ce78ed03c3ac08fac60ed4377f890 SHA512 9ccaede2fcda13a07f98a2110bb8f99c7324601d66bff311f3070a669576a1598fe1d7de2d005d725d1f44dbe3934a9c0fd0b7950f60686047d4ce8d9d812310
-DIST firefox-115esr-patches-09.tar.xz 16660 BLAKE2B 1dcdf62f35013b82dd70bf00c0505394b9277affcd1b1cbde92421778f4fcc146f536a546c2db8d6a70f92d40e4b1c96927fedec54383e6bb80bd9806d9b4461 SHA512 e003d0a2a5304dcdd0851b57ceb11993333326c8221d5d99555cd0c64090d5eda1bdb2a2a52e605f6094a3214ffa2238e43d57ff64eb7d424ff54b8125c16f5c
DIST firefox-115esr-patches-10.tar.xz 17256 BLAKE2B 0f6265d6e12f55e9b5128f2f261ba3785b80563e049d2441fde09dedf419c6086c9d994d2b44d1aab35af64cde375bdc254206da9ef148fc20fa90da0417606d SHA512 a1f0012420593a1c1b38dba1785ee9092e0923f56458c38f003cca4ebaac30a73fe3d1f5806a5795c76b2b8d729f8184372e63681daa450c3bb8e5afbe9e2e4f
DIST spidermonkey-102-patches-05j.tar.xz 4596 BLAKE2B 215b770bbdf17973d7b3fd1df6cee9647459d2b02b0be5bdb289d457e5dbdb06ceac7a3082fc2f5836e991a4ac4486d73330b0276a466b5c528dab226a27829c SHA512 d2b8e32dac87d60a00fd93479dc34d8adab4feec24a38591cebeb4cf271aa2fd964f4dc26e67ebfb127a47bc8f684d50b32b2cff18ed5286701a04a289058185
DIST spidermonkey-115-patches-01.tar.xz 3992 BLAKE2B e97d0cb3edfb885119226f54f22485ed4e8220cd904d3356b87ccc013403f976a042171cf9ca7250bcf3fe3d90996dd80b4104e7d614f95d7bcfcb0e710a8a78 SHA512 cece96f172a09dd0e29f7c2fdbf650cde405b276bc4083956365289f1da4b1d078ccbde760da6553888ddb3c53cf9aded52051db556a2c4ec492fed01dcb03a1
EBUILD spidermonkey-102.15.0.ebuild 15624 BLAKE2B a10e3fb8fcbc0f0016778a3c5bb1caea09b05eef2d059f5bb920158b45e9f15ab1e9bd9da90300457e68a147b334a49a86bd1dd07f036feedfa69d17491e63a5 SHA512 c71d02f78d2196e9afa44e3481fa9f6ef8324799b4a4a460eab531ca3d51e09a1b43a15bd2efbac5d11d03bb410babe6400236220684641c97aaa030ee970fdf
-EBUILD spidermonkey-115.10.0.ebuild 13656 BLAKE2B fe1ae11304f93a2fa425ac207c7a6289fbe3ca9dc48def2a3e8d6bc88319ca1a49412f3e8062370fa9f5b0b18ef89f31d20ce91c61d43e4f4e26447809afc4c0 SHA512 d9ce326d7049f8ae6fb6d3d5a40cf1d52c2e49ded65e91e37f79cb57de4701d4ec962590360175e9d144b3e9d4942db4cb0b3cfaf65c8f6136c90f5d0e190dee
-EBUILD spidermonkey-115.11.0.ebuild 13677 BLAKE2B a7b427b5f698c10bb87ea9554271066094b617e8e584b794ace4de55b3f92fa8f4433f89b44ea651e8d46e21ff07dd39a61b445bc083057cf221622bfaf61149 SHA512 29e048e3c4a27a53ace468f1488dbec63878aea8de9cbef743e795bba9dd27d74f9c6182d5134e7847ccb3ad369fb6e851d1eecd541c546b0ad553464a3bebb9
-EBUILD spidermonkey-115.12.0.ebuild 13677 BLAKE2B a7b427b5f698c10bb87ea9554271066094b617e8e584b794ace4de55b3f92fa8f4433f89b44ea651e8d46e21ff07dd39a61b445bc083057cf221622bfaf61149 SHA512 29e048e3c4a27a53ace468f1488dbec63878aea8de9cbef743e795bba9dd27d74f9c6182d5134e7847ccb3ad369fb6e851d1eecd541c546b0ad553464a3bebb9
-EBUILD spidermonkey-115.13.0.ebuild 13979 BLAKE2B 4a30a086282b79181e51d9a8520050f319619753c18eb9549fe086a6bc6b207577778f777c08182836fceb65cb2d0c0bbd0caa329da97ef7dd727dffe2c7193b SHA512 5fd1097d32c2fdac0e8923bfd8e191117b337f8b04c631fe9f840498f38f54a8bb1ae73a16c0b219454978d922d864b38f4caba424d76d9dc2db78fc205a5f97
-EBUILD spidermonkey-115.9.1.ebuild 12934 BLAKE2B d0be2703825b566522d31850e60320c2f250de4683983bfa1474aeef053282321d83b26007fc36ea6429c48f5a528cb47a81627cdbff23754d61275a38776063 SHA512 aaba4bdafce7062a2b8a8b66c0488c4a6b4da519b1ea91b236fde3e7fe1c352205729331e71aae022083cc9dae2dd8b62e23e5dd35e452e3f919e6469b94f5e0
+EBUILD spidermonkey-115.13.0.ebuild 13974 BLAKE2B 40e43ac67750de9928dd01e5cd5396a7e8a90a4ed284ac76fb4693351167a97ba48c6b717951fd7d8d82d4f1482d4b897e7c81d7b0026bb3a0ac821ba1bb2f2b SHA512 e828e1fad89c36a131a9f94cf738f547b93a69e4251e442209761409c9c3e4b71d075e56544584e629c1ec4289e566f783eccfd1cb8a1e07b516a7b40ea10951
MISC metadata.xml 513 BLAKE2B 58ffd474492f03c16bda95e48511fb6281e03067d2ad77e994f8117345ecece5da9591dccedafe75b037d98e06851a3759caa4b993adc2910dbb76e1c01a7fa3 SHA512 1ee02bff37e2dabbd72b7f719463b12299270c7960b4cf5a92afab17c954c50e6acb826d4a91db4954fb4a7b0f8669988f2cdb5be991df90e3a605c6b35fdbfb
diff --git a/dev-lang/spidermonkey/spidermonkey-115.10.0.ebuild b/dev-lang/spidermonkey/spidermonkey-115.10.0.ebuild
deleted file mode 100644
index 1bebf4fa8cbc..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-115.10.0.ebuild
+++ /dev/null
@@ -1,504 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="8"
-
-# Patch version
-FIREFOX_PATCHSET="firefox-115esr-patches-10.tar.xz"
-SPIDERMONKEY_PATCHSET="spidermonkey-115-patches-01.tar.xz"
-
-LLVM_MAX_SLOT=18
-
-PYTHON_COMPAT=( python3_{10..12} )
-PYTHON_REQ_USE="ncurses,ssl,xml(+)"
-
-WANT_AUTOCONF="2.1"
-
-inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
-
-MY_PN="mozjs"
-MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
-
-MY_MAJOR=$(ver_cut 1)
-
-MOZ_ESR=yes
-
-MOZ_PV=${PV}
-MOZ_PV_SUFFIX=
-if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
- MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
-
- # Convert the ebuild version to the upstream Mozilla version
- MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
- MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
- MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
-fi
-
-if [[ -n ${MOZ_ESR} ]] ; then
- # ESR releases have slightly different version numbers
- MOZ_PV="${MOZ_PV}esr"
-fi
-
-MOZ_PN="firefox"
-MOZ_P="${MOZ_PN}-${MOZ_PV}"
-MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
-MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
-
-MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
-
-if [[ ${PV} == *_rc* ]] ; then
- MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
-fi
-
-PATCH_URIS=(
- https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
- https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
-)
-
-SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
- ${PATCH_URIS[@]}"
-
-DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
-HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
-
-KEYWORDS="amd64 arm arm64 ~loong ~mips ~ppc ppc64 ~riscv ~sparc x86"
-
-SLOT="$(ver_cut 1)"
-LICENSE="MPL-2.0"
-IUSE="clang cpu_flags_arm_neon debug +jit lto test"
-
-#RESTRICT="test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="${PYTHON_DEPS}
- virtual/pkgconfig
- || (
- (
- sys-devel/llvm:18
- clang? (
- sys-devel/lld:18
- sys-devel/clang:18
- <virtual/rust-1.78:0/llvm-18
- )
- )
- (
- sys-devel/llvm:17
- clang? (
- sys-devel/lld:17
- sys-devel/clang:17
- virtual/rust:0/llvm-17
- )
- )
- (
- sys-devel/llvm:16
- clang? (
- sys-devel/lld:16
- sys-devel/clang:16
- virtual/rust:0/llvm-16
- )
- )
- (
- sys-devel/llvm:15
- clang? (
- sys-devel/lld:15
- sys-devel/clang:15
- virtual/rust:0/llvm-15
- )
- )
- )
- !clang? ( <virtual/rust-1.78 )
- !elibc_glibc? (
- || (
- <dev-lang/rust-1.78
- <dev-lang/rust-bin-1.73
- )
- )
- test? (
- $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
- )"
-DEPEND=">=dev-libs/icu-73.1:=
- dev-libs/nspr
- sys-libs/readline:0=
- sys-libs/zlib"
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/firefox-${MY_PV}/js/src"
-
-llvm_check_deps() {
- if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
- einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if use clang ; then
- if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
- einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! tc-ld-is-mold ; then
- if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
- einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
- fi
- fi
-
- einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-python_check_deps() {
- if use test ; then
- python_has_version "dev-python/six[${PYTHON_USEDEP}]"
- fi
-}
-
-# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily
-# placed here until toolchain-funcs.eclass gets an official support for mold linker.
-# Please see:
-# https://github.com/gentoo/gentoo/pull/28366 ||
-# https://github.com/gentoo/gentoo/pull/28355
-tc-ld-is-mold() {
- local out
-
- # Ensure ld output is in English.
- local -x LC_ALL=C
-
- # First check the linker directly.
- out=$($(tc-getLD "$@") --version 2>&1)
- if [[ ${out} == *"mold"* ]] ; then
- return 0
- fi
-
- # Then see if they're selecting mold via compiler flags.
- # Note: We're assuming they're using LDFLAGS to hold the
- # options and not CFLAGS/CXXFLAGS.
- local base="${T}/test-tc-linker"
- cat <<-EOF > "${base}.c"
- int main() { return 0; }
- EOF
- out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1)
- rm -f "${base}"*
- if [[ ${out} == *"mold"* ]] ; then
- return 0
- fi
-
- # No mold here!
- return 1
-}
-
-pkg_pretend() {
- if use test ; then
- CHECKREQS_DISK_BUILD="4000M"
- else
- CHECKREQS_DISK_BUILD="3600M"
- fi
-
- check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- if [[ ${MERGE_TYPE} != binary ]] ; then
- if use test ; then
- CHECKREQS_DISK_BUILD="4000M"
- else
- CHECKREQS_DISK_BUILD="3600M"
- fi
-
- check-reqs_pkg_setup
-
- llvm_pkg_setup
-
- if use clang && use lto && tc-ld-is-lld ; then
- local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
- [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
- [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
-
- local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
- [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
- [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
-
- if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
- eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
- eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
- eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
- eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
- eerror " - Build ${CATEGORY}/${PN} without USE=lto"
- eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
- eerror " llvm/clang/lld/rust chain depending on your @world updates)"
- die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
- fi
- fi
-
- python-any-r1_pkg_setup
-
- # Build system is using /proc/self/oom_score_adj, bug #604394
- addpredict /proc/self/oom_score_adj
-
- if ! mountpoint -q /dev/shm ; then
- # If /dev/shm is not available, configure is known to fail with
- # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
- ewarn "/dev/shm is not mounted -- expect build failures!"
- fi
-
- # Ensure we use C locale when building, bug #746215
- export LC_ALL=C
- fi
-}
-
-src_prepare() {
- pushd ../.. &>/dev/null || die
-
- use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
-
- if ! use ppc64; then
- rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
- fi
-
- # Workaround for bgo #915651,915651,929013 on musl
- if use elibc_glibc ; then
- rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
- fi
-
- eapply "${WORKDIR}"/firefox-patches
- eapply "${WORKDIR}"/spidermonkey-patches
-
- default
-
- # Make cargo respect MAKEOPTS
- export CARGO_BUILD_JOBS="$(makeopts_jobs)"
-
- # Workaround for bgo #915651,915651,929013 on musl
- if ! use elibc_glibc ; then
- if use amd64 ; then
- export RUST_TARGET="x86_64-unknown-linux-musl"
- elif use x86 ; then
- export RUST_TARGET="i686-unknown-linux-musl"
- else
- die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651"
- fi
- fi
-
- # sed-in toolchain prefix
- sed -i \
- -e "s/objdump/${CHOST}-objdump/" \
- python/mozbuild/mozbuild/configure/check_debug_ranges.py \
- || die "sed failed to set toolchain prefix"
-
- # use prefix shell in wrapper linker scripts, bug #789660
- hprefixify "${S}"/../../build/cargo-{,host-}linker
-
- einfo "Removing pre-built binaries ..."
- find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
-
- MOZJS_BUILDDIR="${WORKDIR}/build"
- mkdir "${MOZJS_BUILDDIR}" || die
-
- popd &>/dev/null || die
-}
-
-src_configure() {
- # Show flags set at the beginning
- einfo "Current CFLAGS: ${CFLAGS}"
- einfo "Current CXXFLAGS: ${CXXFLAGS}"
- einfo "Current LDFLAGS: ${LDFLAGS}"
- einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
-
- local have_switched_compiler=
- if use clang; then
- # Force clang
- einfo "Enforcing the use of clang due to USE=clang ..."
-
- local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
- [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
- [[ -z ${version_clang} ]] && die "Failed to read clang version!"
-
- if tc-is-gcc; then
- have_switched_compiler=yes
- fi
- AR=llvm-ar
- CC=${CHOST}-clang-${version_clang}
- CXX=${CHOST}-clang++-${version_clang}
- NM=llvm-nm
- RANLIB=llvm-ranlib
-
- elif ! use clang && ! tc-is-gcc ; then
- # Force gcc
- have_switched_compiler=yes
- einfo "Enforcing the use of gcc due to USE=-clang ..."
- AR=gcc-ar
- CC=${CHOST}-gcc
- CXX=${CHOST}-g++
- NM=gcc-nm
- RANLIB=gcc-ranlib
- fi
-
- if [[ -n "${have_switched_compiler}" ]] ; then
- # Because we switched active compiler we have to ensure
- # that no unsupported flags are set
- strip-unsupported-flags
- fi
-
- # Ensure we use correct toolchain,
- # AS is used in a non-standard way by upstream, #bmo1654031
- export HOST_CC="$(tc-getBUILD_CC)"
- export HOST_CXX="$(tc-getBUILD_CXX)"
- export AS="$(tc-getCC) -c"
- tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
-
- cd "${MOZJS_BUILDDIR}" || die
-
- # ../python/mach/mach/mixin/process.py fails to detect SHELL
- export SHELL="${EPREFIX}/bin/bash"
-
- local -a myeconfargs=(
- --host="${CBUILD:-${CHOST}}"
- --target="${CHOST}"
-
- --disable-ctype
- --disable-jemalloc
- --disable-smoosh
- --disable-strip
-
- --enable-project=js
- --enable-readline
- --enable-release
- --enable-shared-js
-
- --with-intl-api
- --with-system-icu
- --with-system-nspr
- --with-system-zlib
- --with-toolchain-prefix="${CHOST}-"
-
- $(use_enable debug)
- $(use_enable jit)
- $(use_enable test tests)
- )
-
- if use debug; then
- myeconfargs+=( --disable-optimize )
- myeconfargs+=( --enable-debug-symbols )
- myeconfargs+=( --enable-real-time-tracing )
- else
- myeconfargs+=( --enable-optimize )
- myeconfargs+=( --disable-debug-symbols )
- myeconfargs+=( --disable-real-time-tracing )
- fi
-
- if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
- myeconfargs+=( --enable-rust-simd )
- fi
-
- # Modifications to better support ARM, bug 717344
- if use cpu_flags_arm_neon ; then
- myeconfargs+=( --with-fpu=neon )
-
- if ! tc-is-clang ; then
- # thumb options aren't supported when using clang, bug 666966
- myeconfargs+=( --with-thumb=yes )
- myeconfargs+=( --with-thumb-interwork=no )
- fi
- fi
-
- # Tell build system that we want to use LTO
- if use lto ; then
- if use clang ; then
- if tc-ld-is-mold ; then
- myeconfargs+=( --enable-linker=mold )
- else
- myeconfargs+=( --enable-linker=lld )
- fi
- myeconfargs+=( --enable-lto=cross )
-
- else
- myeconfargs+=( --enable-linker=bfd )
- myeconfargs+=( --enable-lto=full )
- fi
- fi
-
- # LTO flag was handled via configure
- filter-lto
-
- # Use system's Python environment
- export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
- export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
-
- # Show flags we will use
- einfo "Build CFLAGS: ${CFLAGS}"
- einfo "Build CXXFLAGS: ${CXXFLAGS}"
- einfo "Build LDFLAGS: ${LDFLAGS}"
- einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
-
- # Forcing system-icu allows us to skip patching bundled ICU for PPC
- # and other minor arches
- ECONF_SOURCE="${S}" \
- econf \
- ${myeconfargs[@]} \
- XARGS="${EPREFIX}/usr/bin/xargs"
-}
-
-src_compile() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-}
-
-src_test() {
- if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
- einfo "Smoke-test successful, continuing with full test suite"
- else
- die "Smoke-test failed: did interpreter initialization fail?"
- fi
-
- cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die
-
- if use x86 ; then
- echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list
- echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
- echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list
- echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list
- fi
-
- ${EPYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js \
- || die
-
- if use jit ; then
- ${EPYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js basic \
- || die
- fi
-}
-
-src_install() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-
- # fix soname links
- pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
- mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
- popd &>/dev/null || die
-
- # remove unneeded files
- rm \
- "${ED}"/usr/bin/js${MY_MAJOR}-config \
- "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
- || die
-
- # fix permissions
- chmod -x \
- "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
- "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
- || die
-}
diff --git a/dev-lang/spidermonkey/spidermonkey-115.11.0.ebuild b/dev-lang/spidermonkey/spidermonkey-115.11.0.ebuild
deleted file mode 100644
index 30f367f6a1f9..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-115.11.0.ebuild
+++ /dev/null
@@ -1,503 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="8"
-
-# Patch version
-FIREFOX_PATCHSET="firefox-115esr-patches-10.tar.xz"
-SPIDERMONKEY_PATCHSET="spidermonkey-115-patches-01.tar.xz"
-
-LLVM_MAX_SLOT=18
-
-PYTHON_COMPAT=( python3_{10..12} )
-PYTHON_REQ_USE="ncurses,ssl,xml(+)"
-
-WANT_AUTOCONF="2.1"
-
-inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
-
-MY_PN="mozjs"
-MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
-
-MY_MAJOR=$(ver_cut 1)
-
-MOZ_ESR=yes
-
-MOZ_PV=${PV}
-MOZ_PV_SUFFIX=
-if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
- MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
-
- # Convert the ebuild version to the upstream Mozilla version
- MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
- MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
- MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
-fi
-
-if [[ -n ${MOZ_ESR} ]] ; then
- # ESR releases have slightly different version numbers
- MOZ_PV="${MOZ_PV}esr"
-fi
-
-MOZ_PN="firefox"
-MOZ_P="${MOZ_PN}-${MOZ_PV}"
-MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
-MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
-
-MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
-
-if [[ ${PV} == *_rc* ]] ; then
- MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
-fi
-
-PATCH_URIS=(
- https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
- https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
-)
-
-SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
- ${PATCH_URIS[@]}"
-
-DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
-HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
-
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-SLOT="$(ver_cut 1)"
-LICENSE="MPL-2.0"
-IUSE="clang cpu_flags_arm_neon debug +jit lto test"
-
-#RESTRICT="test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="${PYTHON_DEPS}
- virtual/pkgconfig
- || (
- (
- sys-devel/llvm:18
- clang? (
- sys-devel/lld:18
- sys-devel/clang:18
- virtual/rust:0/llvm-18
- )
- )
- (
- sys-devel/llvm:17
- clang? (
- sys-devel/lld:17
- sys-devel/clang:17
- virtual/rust:0/llvm-17
- )
- )
- (
- sys-devel/llvm:16
- clang? (
- sys-devel/lld:16
- sys-devel/clang:16
- virtual/rust:0/llvm-16
- )
- )
- (
- sys-devel/llvm:15
- clang? (
- sys-devel/lld:15
- sys-devel/clang:15
- virtual/rust:0/llvm-15
- )
- )
- )
- !clang? ( virtual/rust )
- !elibc_glibc? (
- || (
- dev-lang/rust
- <dev-lang/rust-bin-1.73
- )
- )
- test? (
- $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
- )"
-DEPEND=">=dev-libs/icu-73.1:=
- dev-libs/nspr
- sys-libs/readline:0=
- sys-libs/zlib"
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/firefox-${MY_PV}/js/src"
-
-llvm_check_deps() {
- if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
- einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if use clang ; then
- if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
- einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! tc-ld-is-mold ; then
- if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
- einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
- fi
- fi
-
- einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-python_check_deps() {
- if use test ; then
- python_has_version "dev-python/six[${PYTHON_USEDEP}]"
- fi
-}
-
-# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily
-# placed here until toolchain-funcs.eclass gets an official support for mold linker.
-# Please see:
-# https://github.com/gentoo/gentoo/pull/28366 ||
-# https://github.com/gentoo/gentoo/pull/28355
-tc-ld-is-mold() {
- local out
-
- # Ensure ld output is in English.
- local -x LC_ALL=C
-
- # First check the linker directly.
- out=$($(tc-getLD "$@") --version 2>&1)
- if [[ ${out} == *"mold"* ]] ; then
- return 0
- fi
-
- # Then see if they're selecting mold via compiler flags.
- # Note: We're assuming they're using LDFLAGS to hold the
- # options and not CFLAGS/CXXFLAGS.
- local base="${T}/test-tc-linker"
- cat <<-EOF > "${base}.c"
- int main() { return 0; }
- EOF
- out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1)
- rm -f "${base}"*
- if [[ ${out} == *"mold"* ]] ; then
- return 0
- fi
-
- # No mold here!
- return 1
-}
-
-pkg_pretend() {
- if use test ; then
- CHECKREQS_DISK_BUILD="4000M"
- else
- CHECKREQS_DISK_BUILD="3600M"
- fi
-
- check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- if [[ ${MERGE_TYPE} != binary ]] ; then
- if use test ; then
- CHECKREQS_DISK_BUILD="4000M"
- else
- CHECKREQS_DISK_BUILD="3600M"
- fi
-
- check-reqs_pkg_setup
-
- llvm_pkg_setup
-
- if use clang && use lto && tc-ld-is-lld ; then
- local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
- [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
- [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
-
- local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
- [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
- [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
-
- if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
- eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
- eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
- eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
- eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
- eerror " - Build ${CATEGORY}/${PN} without USE=lto"
- eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
- eerror " llvm/clang/lld/rust chain depending on your @world updates)"
- die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
- fi
- fi
-
- python-any-r1_pkg_setup
-
- # Build system is using /proc/self/oom_score_adj, bug #604394
- addpredict /proc/self/oom_score_adj
-
- if ! mountpoint -q /dev/shm ; then
- # If /dev/shm is not available, configure is known to fail with
- # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
- ewarn "/dev/shm is not mounted -- expect build failures!"
- fi
-
- # Ensure we use C locale when building, bug #746215
- export LC_ALL=C
- fi
-}
-
-src_prepare() {
- pushd ../.. &>/dev/null || die
-
- use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
-
- if ! use ppc64; then
- rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
- fi
-
- # Workaround for bgo #915651,915651,929013 on musl
- if use elibc_glibc ; then
- rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
- fi
-
- eapply "${WORKDIR}"/firefox-patches
- eapply "${WORKDIR}"/spidermonkey-patches
-
- default
-
- # Make cargo respect MAKEOPTS
- export CARGO_BUILD_JOBS="$(makeopts_jobs)"
-
- # Workaround for bgo #915651,915651,929013 on musl
- if ! use elibc_glibc ; then
- if use amd64 ; then
- export RUST_TARGET="x86_64-unknown-linux-musl"
- elif use x86 ; then
- export RUST_TARGET="i686-unknown-linux-musl"
- else
- die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651"
- fi
- fi
-
- # sed-in toolchain prefix
- sed -i \
- -e "s/objdump/${CHOST}-objdump/" \
- python/mozbuild/mozbuild/configure/check_debug_ranges.py \
- || die "sed failed to set toolchain prefix"
-
- # use prefix shell in wrapper linker scripts, bug #789660
- hprefixify "${S}"/../../build/cargo-{,host-}linker
-
- einfo "Removing pre-built binaries ..."
- find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
-
- MOZJS_BUILDDIR="${WORKDIR}/build"
- mkdir "${MOZJS_BUILDDIR}" || die
-
- popd &>/dev/null || die
-}
-
-src_configure() {
- # Show flags set at the beginning
- einfo "Current CFLAGS: ${CFLAGS}"
- einfo "Current CXXFLAGS: ${CXXFLAGS}"
- einfo "Current LDFLAGS: ${LDFLAGS}"
- einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
-
- local have_switched_compiler=
- if use clang; then
- # Force clang
- einfo "Enforcing the use of clang due to USE=clang ..."
-
- local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
- [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
- [[ -z ${version_clang} ]] && die "Failed to read clang version!"
-
- if tc-is-gcc; then
- have_switched_compiler=yes
- fi
- AR=llvm-ar
- CC=${CHOST}-clang-${version_clang}
- CXX=${CHOST}-clang++-${version_clang}
- NM=llvm-nm
- RANLIB=llvm-ranlib
-
- elif ! use clang && ! tc-is-gcc ; then
- # Force gcc
- have_switched_compiler=yes
- einfo "Enforcing the use of gcc due to USE=-clang ..."
- AR=gcc-ar
- CC=${CHOST}-gcc
- CXX=${CHOST}-g++
- NM=gcc-nm
- RANLIB=gcc-ranlib
- fi
-
- if [[ -n "${have_switched_compiler}" ]] ; then
- # Because we switched active compiler we have to ensure
- # that no unsupported flags are set
- strip-unsupported-flags
- fi
-
- # Ensure we use correct toolchain,
- # AS is used in a non-standard way by upstream, #bmo1654031
- export HOST_CC="$(tc-getBUILD_CC)"
- export HOST_CXX="$(tc-getBUILD_CXX)"
- export AS="$(tc-getCC) -c"
- tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
-
- cd "${MOZJS_BUILDDIR}" || die
-
- # ../python/mach/mach/mixin/process.py fails to detect SHELL
- export SHELL="${EPREFIX}/bin/bash"
-
- local -a myeconfargs=(
- --host="${CBUILD:-${CHOST}}"
- --target="${CHOST}"
-
- --disable-ctype
- --disable-jemalloc
- --disable-smoosh
- --disable-strip
-
- --enable-project=js
- --enable-readline
- --enable-release
- --enable-shared-js
-
- --with-intl-api
- --with-system-icu
- --with-system-nspr
- --with-system-zlib
- --with-toolchain-prefix="${CHOST}-"
-
- $(use_enable debug)
- $(use_enable jit)
- $(use_enable test tests)
- )
-
- if use debug; then
- myeconfargs+=( --disable-optimize )
- myeconfargs+=( --enable-debug-symbols )
- myeconfargs+=( --enable-real-time-tracing )
- else
- myeconfargs+=( --enable-optimize )
- myeconfargs+=( --disable-debug-symbols )
- myeconfargs+=( --disable-real-time-tracing )
- fi
-
- # We always end up disabling this at some point due to newer rust versions. bgo#933372
- myeconfargs+=( --disable-rust-simd )
-
- # Modifications to better support ARM, bug 717344
- if use cpu_flags_arm_neon ; then
- myeconfargs+=( --with-fpu=neon )
-
- if ! tc-is-clang ; then
- # thumb options aren't supported when using clang, bug 666966
- myeconfargs+=( --with-thumb=yes )
- myeconfargs+=( --with-thumb-interwork=no )
- fi
- fi
-
- # Tell build system that we want to use LTO
- if use lto ; then
- if use clang ; then
- if tc-ld-is-mold ; then
- myeconfargs+=( --enable-linker=mold )
- else
- myeconfargs+=( --enable-linker=lld )
- fi
- myeconfargs+=( --enable-lto=cross )
-
- else
- myeconfargs+=( --enable-linker=bfd )
- myeconfargs+=( --enable-lto=full )
- fi
- fi
-
- # LTO flag was handled via configure
- filter-lto
-
- # Use system's Python environment
- export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
- export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
-
- # Show flags we will use
- einfo "Build CFLAGS: ${CFLAGS}"
- einfo "Build CXXFLAGS: ${CXXFLAGS}"
- einfo "Build LDFLAGS: ${LDFLAGS}"
- einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
-
- # Forcing system-icu allows us to skip patching bundled ICU for PPC
- # and other minor arches
- ECONF_SOURCE="${S}" \
- econf \
- ${myeconfargs[@]} \
- XARGS="${EPREFIX}/usr/bin/xargs"
-}
-
-src_compile() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-}
-
-src_test() {
- if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
- einfo "Smoke-test successful, continuing with full test suite"
- else
- die "Smoke-test failed: did interpreter initialization fail?"
- fi
-
- cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die
-
- if use x86 ; then
- echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list
- echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
- echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list
- echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list
- fi
-
- ${EPYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js \
- || die
-
- if use jit ; then
- ${EPYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js basic \
- || die
- fi
-}
-
-src_install() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-
- # fix soname links
- pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
- mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
- popd &>/dev/null || die
-
- # remove unneeded files
- rm \
- "${ED}"/usr/bin/js${MY_MAJOR}-config \
- "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
- || die
-
- # fix permissions
- chmod -x \
- "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
- "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
- || die
-}
diff --git a/dev-lang/spidermonkey/spidermonkey-115.12.0.ebuild b/dev-lang/spidermonkey/spidermonkey-115.12.0.ebuild
deleted file mode 100644
index 30f367f6a1f9..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-115.12.0.ebuild
+++ /dev/null
@@ -1,503 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="8"
-
-# Patch version
-FIREFOX_PATCHSET="firefox-115esr-patches-10.tar.xz"
-SPIDERMONKEY_PATCHSET="spidermonkey-115-patches-01.tar.xz"
-
-LLVM_MAX_SLOT=18
-
-PYTHON_COMPAT=( python3_{10..12} )
-PYTHON_REQ_USE="ncurses,ssl,xml(+)"
-
-WANT_AUTOCONF="2.1"
-
-inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
-
-MY_PN="mozjs"
-MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
-
-MY_MAJOR=$(ver_cut 1)
-
-MOZ_ESR=yes
-
-MOZ_PV=${PV}
-MOZ_PV_SUFFIX=
-if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
- MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
-
- # Convert the ebuild version to the upstream Mozilla version
- MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
- MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
- MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
-fi
-
-if [[ -n ${MOZ_ESR} ]] ; then
- # ESR releases have slightly different version numbers
- MOZ_PV="${MOZ_PV}esr"
-fi
-
-MOZ_PN="firefox"
-MOZ_P="${MOZ_PN}-${MOZ_PV}"
-MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
-MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
-
-MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
-
-if [[ ${PV} == *_rc* ]] ; then
- MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
-fi
-
-PATCH_URIS=(
- https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
- https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
-)
-
-SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
- ${PATCH_URIS[@]}"
-
-DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
-HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
-
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-SLOT="$(ver_cut 1)"
-LICENSE="MPL-2.0"
-IUSE="clang cpu_flags_arm_neon debug +jit lto test"
-
-#RESTRICT="test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="${PYTHON_DEPS}
- virtual/pkgconfig
- || (
- (
- sys-devel/llvm:18
- clang? (
- sys-devel/lld:18
- sys-devel/clang:18
- virtual/rust:0/llvm-18
- )
- )
- (
- sys-devel/llvm:17
- clang? (
- sys-devel/lld:17
- sys-devel/clang:17
- virtual/rust:0/llvm-17
- )
- )
- (
- sys-devel/llvm:16
- clang? (
- sys-devel/lld:16
- sys-devel/clang:16
- virtual/rust:0/llvm-16
- )
- )
- (
- sys-devel/llvm:15
- clang? (
- sys-devel/lld:15
- sys-devel/clang:15
- virtual/rust:0/llvm-15
- )
- )
- )
- !clang? ( virtual/rust )
- !elibc_glibc? (
- || (
- dev-lang/rust
- <dev-lang/rust-bin-1.73
- )
- )
- test? (
- $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
- )"
-DEPEND=">=dev-libs/icu-73.1:=
- dev-libs/nspr
- sys-libs/readline:0=
- sys-libs/zlib"
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/firefox-${MY_PV}/js/src"
-
-llvm_check_deps() {
- if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
- einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if use clang ; then
- if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
- einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! tc-ld-is-mold ; then
- if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
- einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
- fi
- fi
-
- einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-python_check_deps() {
- if use test ; then
- python_has_version "dev-python/six[${PYTHON_USEDEP}]"
- fi
-}
-
-# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily
-# placed here until toolchain-funcs.eclass gets an official support for mold linker.
-# Please see:
-# https://github.com/gentoo/gentoo/pull/28366 ||
-# https://github.com/gentoo/gentoo/pull/28355
-tc-ld-is-mold() {
- local out
-
- # Ensure ld output is in English.
- local -x LC_ALL=C
-
- # First check the linker directly.
- out=$($(tc-getLD "$@") --version 2>&1)
- if [[ ${out} == *"mold"* ]] ; then
- return 0
- fi
-
- # Then see if they're selecting mold via compiler flags.
- # Note: We're assuming they're using LDFLAGS to hold the
- # options and not CFLAGS/CXXFLAGS.
- local base="${T}/test-tc-linker"
- cat <<-EOF > "${base}.c"
- int main() { return 0; }
- EOF
- out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1)
- rm -f "${base}"*
- if [[ ${out} == *"mold"* ]] ; then
- return 0
- fi
-
- # No mold here!
- return 1
-}
-
-pkg_pretend() {
- if use test ; then
- CHECKREQS_DISK_BUILD="4000M"
- else
- CHECKREQS_DISK_BUILD="3600M"
- fi
-
- check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- if [[ ${MERGE_TYPE} != binary ]] ; then
- if use test ; then
- CHECKREQS_DISK_BUILD="4000M"
- else
- CHECKREQS_DISK_BUILD="3600M"
- fi
-
- check-reqs_pkg_setup
-
- llvm_pkg_setup
-
- if use clang && use lto && tc-ld-is-lld ; then
- local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
- [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
- [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
-
- local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
- [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
- [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
-
- if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
- eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
- eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
- eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
- eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
- eerror " - Build ${CATEGORY}/${PN} without USE=lto"
- eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
- eerror " llvm/clang/lld/rust chain depending on your @world updates)"
- die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
- fi
- fi
-
- python-any-r1_pkg_setup
-
- # Build system is using /proc/self/oom_score_adj, bug #604394
- addpredict /proc/self/oom_score_adj
-
- if ! mountpoint -q /dev/shm ; then
- # If /dev/shm is not available, configure is known to fail with
- # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
- ewarn "/dev/shm is not mounted -- expect build failures!"
- fi
-
- # Ensure we use C locale when building, bug #746215
- export LC_ALL=C
- fi
-}
-
-src_prepare() {
- pushd ../.. &>/dev/null || die
-
- use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
-
- if ! use ppc64; then
- rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
- fi
-
- # Workaround for bgo #915651,915651,929013 on musl
- if use elibc_glibc ; then
- rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
- fi
-
- eapply "${WORKDIR}"/firefox-patches
- eapply "${WORKDIR}"/spidermonkey-patches
-
- default
-
- # Make cargo respect MAKEOPTS
- export CARGO_BUILD_JOBS="$(makeopts_jobs)"
-
- # Workaround for bgo #915651,915651,929013 on musl
- if ! use elibc_glibc ; then
- if use amd64 ; then
- export RUST_TARGET="x86_64-unknown-linux-musl"
- elif use x86 ; then
- export RUST_TARGET="i686-unknown-linux-musl"
- else
- die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651"
- fi
- fi
-
- # sed-in toolchain prefix
- sed -i \
- -e "s/objdump/${CHOST}-objdump/" \
- python/mozbuild/mozbuild/configure/check_debug_ranges.py \
- || die "sed failed to set toolchain prefix"
-
- # use prefix shell in wrapper linker scripts, bug #789660
- hprefixify "${S}"/../../build/cargo-{,host-}linker
-
- einfo "Removing pre-built binaries ..."
- find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
-
- MOZJS_BUILDDIR="${WORKDIR}/build"
- mkdir "${MOZJS_BUILDDIR}" || die
-
- popd &>/dev/null || die
-}
-
-src_configure() {
- # Show flags set at the beginning
- einfo "Current CFLAGS: ${CFLAGS}"
- einfo "Current CXXFLAGS: ${CXXFLAGS}"
- einfo "Current LDFLAGS: ${LDFLAGS}"
- einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
-
- local have_switched_compiler=
- if use clang; then
- # Force clang
- einfo "Enforcing the use of clang due to USE=clang ..."
-
- local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
- [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
- [[ -z ${version_clang} ]] && die "Failed to read clang version!"
-
- if tc-is-gcc; then
- have_switched_compiler=yes
- fi
- AR=llvm-ar
- CC=${CHOST}-clang-${version_clang}
- CXX=${CHOST}-clang++-${version_clang}
- NM=llvm-nm
- RANLIB=llvm-ranlib
-
- elif ! use clang && ! tc-is-gcc ; then
- # Force gcc
- have_switched_compiler=yes
- einfo "Enforcing the use of gcc due to USE=-clang ..."
- AR=gcc-ar
- CC=${CHOST}-gcc
- CXX=${CHOST}-g++
- NM=gcc-nm
- RANLIB=gcc-ranlib
- fi
-
- if [[ -n "${have_switched_compiler}" ]] ; then
- # Because we switched active compiler we have to ensure
- # that no unsupported flags are set
- strip-unsupported-flags
- fi
-
- # Ensure we use correct toolchain,
- # AS is used in a non-standard way by upstream, #bmo1654031
- export HOST_CC="$(tc-getBUILD_CC)"
- export HOST_CXX="$(tc-getBUILD_CXX)"
- export AS="$(tc-getCC) -c"
- tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
-
- cd "${MOZJS_BUILDDIR}" || die
-
- # ../python/mach/mach/mixin/process.py fails to detect SHELL
- export SHELL="${EPREFIX}/bin/bash"
-
- local -a myeconfargs=(
- --host="${CBUILD:-${CHOST}}"
- --target="${CHOST}"
-
- --disable-ctype
- --disable-jemalloc
- --disable-smoosh
- --disable-strip
-
- --enable-project=js
- --enable-readline
- --enable-release
- --enable-shared-js
-
- --with-intl-api
- --with-system-icu
- --with-system-nspr
- --with-system-zlib
- --with-toolchain-prefix="${CHOST}-"
-
- $(use_enable debug)
- $(use_enable jit)
- $(use_enable test tests)
- )
-
- if use debug; then
- myeconfargs+=( --disable-optimize )
- myeconfargs+=( --enable-debug-symbols )
- myeconfargs+=( --enable-real-time-tracing )
- else
- myeconfargs+=( --enable-optimize )
- myeconfargs+=( --disable-debug-symbols )
- myeconfargs+=( --disable-real-time-tracing )
- fi
-
- # We always end up disabling this at some point due to newer rust versions. bgo#933372
- myeconfargs+=( --disable-rust-simd )
-
- # Modifications to better support ARM, bug 717344
- if use cpu_flags_arm_neon ; then
- myeconfargs+=( --with-fpu=neon )
-
- if ! tc-is-clang ; then
- # thumb options aren't supported when using clang, bug 666966
- myeconfargs+=( --with-thumb=yes )
- myeconfargs+=( --with-thumb-interwork=no )
- fi
- fi
-
- # Tell build system that we want to use LTO
- if use lto ; then
- if use clang ; then
- if tc-ld-is-mold ; then
- myeconfargs+=( --enable-linker=mold )
- else
- myeconfargs+=( --enable-linker=lld )
- fi
- myeconfargs+=( --enable-lto=cross )
-
- else
- myeconfargs+=( --enable-linker=bfd )
- myeconfargs+=( --enable-lto=full )
- fi
- fi
-
- # LTO flag was handled via configure
- filter-lto
-
- # Use system's Python environment
- export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
- export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
-
- # Show flags we will use
- einfo "Build CFLAGS: ${CFLAGS}"
- einfo "Build CXXFLAGS: ${CXXFLAGS}"
- einfo "Build LDFLAGS: ${LDFLAGS}"
- einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
-
- # Forcing system-icu allows us to skip patching bundled ICU for PPC
- # and other minor arches
- ECONF_SOURCE="${S}" \
- econf \
- ${myeconfargs[@]} \
- XARGS="${EPREFIX}/usr/bin/xargs"
-}
-
-src_compile() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-}
-
-src_test() {
- if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
- einfo "Smoke-test successful, continuing with full test suite"
- else
- die "Smoke-test failed: did interpreter initialization fail?"
- fi
-
- cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die
-
- if use x86 ; then
- echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list
- echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
- echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list
- echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list
- fi
-
- ${EPYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js \
- || die
-
- if use jit ; then
- ${EPYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js basic \
- || die
- fi
-}
-
-src_install() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-
- # fix soname links
- pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
- mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
- popd &>/dev/null || die
-
- # remove unneeded files
- rm \
- "${ED}"/usr/bin/js${MY_MAJOR}-config \
- "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
- || die
-
- # fix permissions
- chmod -x \
- "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
- "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
- || die
-}
diff --git a/dev-lang/spidermonkey/spidermonkey-115.13.0.ebuild b/dev-lang/spidermonkey/spidermonkey-115.13.0.ebuild
index 63f797ff1d47..1e0f42523866 100644
--- a/dev-lang/spidermonkey/spidermonkey-115.13.0.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-115.13.0.ebuild
@@ -61,7 +61,7 @@ SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}
DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ~ppc ppc64 ~riscv ~sparc x86"
SLOT="$(ver_cut 1)"
LICENSE="MPL-2.0"
diff --git a/dev-lang/spidermonkey/spidermonkey-115.9.1.ebuild b/dev-lang/spidermonkey/spidermonkey-115.9.1.ebuild
deleted file mode 100644
index 3370f0954753..000000000000
--- a/dev-lang/spidermonkey/spidermonkey-115.9.1.ebuild
+++ /dev/null
@@ -1,474 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="8"
-
-# Patch version
-FIREFOX_PATCHSET="firefox-115esr-patches-09.tar.xz"
-SPIDERMONKEY_PATCHSET="spidermonkey-115-patches-01.tar.xz"
-
-LLVM_MAX_SLOT=17
-
-PYTHON_COMPAT=( python3_{10..11} )
-PYTHON_REQ_USE="ncurses,ssl,xml(+)"
-
-WANT_AUTOCONF="2.1"
-
-inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
-
-MY_PN="mozjs"
-MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
-
-MY_MAJOR=$(ver_cut 1)
-
-MOZ_ESR=yes
-
-MOZ_PV=${PV}
-MOZ_PV_SUFFIX=
-if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
- MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
-
- # Convert the ebuild version to the upstream Mozilla version
- MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
- MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
- MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
-fi
-
-if [[ -n ${MOZ_ESR} ]] ; then
- # ESR releases have slightly different version numbers
- MOZ_PV="${MOZ_PV}esr"
-fi
-
-MOZ_PN="firefox"
-MOZ_P="${MOZ_PN}-${MOZ_PV}"
-MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
-MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
-
-MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
-
-if [[ ${PV} == *_rc* ]] ; then
- MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
-fi
-
-PATCH_URIS=(
- https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
- https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
-)
-
-SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
- ${PATCH_URIS[@]}"
-
-DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
-HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
-
-KEYWORDS="amd64 arm arm64 ~loong ~mips ~ppc ppc64 ~riscv ~sparc x86"
-
-SLOT="$(ver_cut 1)"
-LICENSE="MPL-2.0"
-IUSE="clang cpu_flags_arm_neon debug +jit lto test"
-
-#RESTRICT="test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="${PYTHON_DEPS}
- || (
- (
- sys-devel/llvm:17
- clang? (
- sys-devel/lld:17
- sys-devel/clang:17
- virtual/rust:0/llvm-17
- )
- )
- (
- sys-devel/llvm:16
- clang? (
- sys-devel/lld:16
- sys-devel/clang:16
- virtual/rust:0/llvm-16
- )
- )
- (
- sys-devel/llvm:15
- clang? (
- sys-devel/lld:15
- sys-devel/clang:15
- virtual/rust:0/llvm-15
- )
- )
- )
- !clang? ( virtual/rust )
- virtual/pkgconfig
- test? (
- $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
- )"
-DEPEND=">=dev-libs/icu-73.1:=
- dev-libs/nspr
- sys-libs/readline:0=
- sys-libs/zlib"
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/firefox-${MY_PV}/js/src"
-
-llvm_check_deps() {
- if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
- einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if use clang ; then
- if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
- einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
- einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
-
- if ! tc-ld-is-mold ; then
- if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
- einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
- return 1
- fi
- fi
- fi
-
- einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
-}
-
-python_check_deps() {
- if use test ; then
- python_has_version "dev-python/six[${PYTHON_USEDEP}]"
- fi
-}
-
-# This is a straight copypaste from toolchain-funcs.eclass's 'tc-ld-is-lld', and is temporarily
-# placed here until toolchain-funcs.eclass gets an official support for mold linker.
-# Please see:
-# https://github.com/gentoo/gentoo/pull/28366 ||
-# https://github.com/gentoo/gentoo/pull/28355
-tc-ld-is-mold() {
- local out
-
- # Ensure ld output is in English.
- local -x LC_ALL=C
-
- # First check the linker directly.
- out=$($(tc-getLD "$@") --version 2>&1)
- if [[ ${out} == *"mold"* ]] ; then
- return 0
- fi
-
- # Then see if they're selecting mold via compiler flags.
- # Note: We're assuming they're using LDFLAGS to hold the
- # options and not CFLAGS/CXXFLAGS.
- local base="${T}/test-tc-linker"
- cat <<-EOF > "${base}.c"
- int main() { return 0; }
- EOF
- out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1)
- rm -f "${base}"*
- if [[ ${out} == *"mold"* ]] ; then
- return 0
- fi
-
- # No mold here!
- return 1
-}
-
-pkg_pretend() {
- if use test ; then
- CHECKREQS_DISK_BUILD="4000M"
- else
- CHECKREQS_DISK_BUILD="3600M"
- fi
-
- check-reqs_pkg_pretend
-}
-
-pkg_setup() {
- if [[ ${MERGE_TYPE} != binary ]] ; then
- if use test ; then
- CHECKREQS_DISK_BUILD="4000M"
- else
- CHECKREQS_DISK_BUILD="3600M"
- fi
-
- check-reqs_pkg_setup
-
- llvm_pkg_setup
-
- if use clang && use lto && tc-ld-is-lld ; then
- local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
- [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
- [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
-
- local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
- [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
- [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
-
- if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
- eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
- eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
- eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
- eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
- eerror " - Build ${CATEGORY}/${PN} without USE=lto"
- eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
- eerror " llvm/clang/lld/rust chain depending on your @world updates)"
- die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
- fi
- fi
-
- python-any-r1_pkg_setup
-
- # Build system is using /proc/self/oom_score_adj, bug #604394
- addpredict /proc/self/oom_score_adj
-
- if ! mountpoint -q /dev/shm ; then
- # If /dev/shm is not available, configure is known to fail with
- # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
- ewarn "/dev/shm is not mounted -- expect build failures!"
- fi
-
- # Ensure we use C locale when building, bug #746215
- export LC_ALL=C
- fi
-}
-
-src_prepare() {
- pushd ../.. &>/dev/null || die
-
- use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
-
- if ! use ppc64; then
- rm -v "${WORKDIR}"/firefox-patches/*ppc64*.patch || die
- fi
-
- eapply "${WORKDIR}"/firefox-patches
- eapply "${WORKDIR}"/spidermonkey-patches
-
- default
-
- # Make cargo respect MAKEOPTS
- export CARGO_BUILD_JOBS="$(makeopts_jobs)"
-
- # sed-in toolchain prefix
- sed -i \
- -e "s/objdump/${CHOST}-objdump/" \
- python/mozbuild/mozbuild/configure/check_debug_ranges.py \
- || die "sed failed to set toolchain prefix"
-
- # use prefix shell in wrapper linker scripts, bug #789660
- hprefixify "${S}"/../../build/cargo-{,host-}linker
-
- einfo "Removing pre-built binaries ..."
- find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
-
- MOZJS_BUILDDIR="${WORKDIR}/build"
- mkdir "${MOZJS_BUILDDIR}" || die
-
- popd &>/dev/null || die
-}
-
-src_configure() {
- # Show flags set at the beginning
- einfo "Current CFLAGS: ${CFLAGS}"
- einfo "Current CXXFLAGS: ${CXXFLAGS}"
- einfo "Current LDFLAGS: ${LDFLAGS}"
- einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
-
- local have_switched_compiler=
- if use clang; then
- # Force clang
- einfo "Enforcing the use of clang due to USE=clang ..."
-
- local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
- [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
- [[ -z ${version_clang} ]] && die "Failed to read clang version!"
-
- if tc-is-gcc; then
- have_switched_compiler=yes
- fi
- AR=llvm-ar
- CC=${CHOST}-clang-${version_clang}
- CXX=${CHOST}-clang++-${version_clang}
- NM=llvm-nm
- RANLIB=llvm-ranlib
-
- elif ! use clang && ! tc-is-gcc ; then
- # Force gcc
- have_switched_compiler=yes
- einfo "Enforcing the use of gcc due to USE=-clang ..."
- AR=gcc-ar
- CC=${CHOST}-gcc
- CXX=${CHOST}-g++
- NM=gcc-nm
- RANLIB=gcc-ranlib
- fi
-
- if [[ -n "${have_switched_compiler}" ]] ; then
- # Because we switched active compiler we have to ensure
- # that no unsupported flags are set
- strip-unsupported-flags
- fi
-
- # Ensure we use correct toolchain,
- # AS is used in a non-standard way by upstream, #bmo1654031
- export HOST_CC="$(tc-getBUILD_CC)"
- export HOST_CXX="$(tc-getBUILD_CXX)"
- export AS="$(tc-getCC) -c"
- tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
-
- cd "${MOZJS_BUILDDIR}" || die
-
- # ../python/mach/mach/mixin/process.py fails to detect SHELL
- export SHELL="${EPREFIX}/bin/bash"
-
- local -a myeconfargs=(
- --host="${CBUILD:-${CHOST}}"
- --target="${CHOST}"
-
- --disable-ctype
- --disable-jemalloc
- --disable-smoosh
- --disable-strip
-
- --enable-project=js
- --enable-readline
- --enable-release
- --enable-shared-js
-
- --with-intl-api
- --with-system-icu
- --with-system-nspr
- --with-system-zlib
- --with-toolchain-prefix="${CHOST}-"
-
- $(use_enable debug)
- $(use_enable jit)
- $(use_enable test tests)
- )
-
- if use debug; then
- myeconfargs+=( --disable-optimize )
- myeconfargs+=( --enable-debug-symbols )
- myeconfargs+=( --enable-real-time-tracing )
- else
- myeconfargs+=( --enable-optimize )
- myeconfargs+=( --disable-debug-symbols )
- myeconfargs+=( --disable-real-time-tracing )
- fi
-
- if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
- myeconfargs+=( --enable-rust-simd )
- fi
-
- # Modifications to better support ARM, bug 717344
- if use cpu_flags_arm_neon ; then
- myeconfargs+=( --with-fpu=neon )
-
- if ! tc-is-clang ; then
- # thumb options aren't supported when using clang, bug 666966
- myeconfargs+=( --with-thumb=yes )
- myeconfargs+=( --with-thumb-interwork=no )
- fi
- fi
-
- # Tell build system that we want to use LTO
- if use lto ; then
- if use clang ; then
- if tc-ld-is-mold ; then
- myeconfargs+=( --enable-linker=mold )
- else
- myeconfargs+=( --enable-linker=lld )
- fi
- myeconfargs+=( --enable-lto=cross )
-
- else
- myeconfargs+=( --enable-linker=bfd )
- myeconfargs+=( --enable-lto=full )
- fi
- fi
-
- # LTO flag was handled via configure
- filter-lto
-
- # Use system's Python environment
- export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
- export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
-
- # Show flags we will use
- einfo "Build CFLAGS: ${CFLAGS}"
- einfo "Build CXXFLAGS: ${CXXFLAGS}"
- einfo "Build LDFLAGS: ${LDFLAGS}"
- einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
-
- # Forcing system-icu allows us to skip patching bundled ICU for PPC
- # and other minor arches
- ECONF_SOURCE="${S}" \
- econf \
- ${myeconfargs[@]} \
- XARGS="${EPREFIX}/usr/bin/xargs"
-}
-
-src_compile() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-}
-
-src_test() {
- if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
- einfo "Smoke-test successful, continuing with full test suite"
- else
- die "Smoke-test failed: did interpreter initialization fail?"
- fi
-
- cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die
-
- if use x86 ; then
- echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list
- echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
- echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list
- echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list
- fi
-
- ${EPYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js \
- || die
-
- if use jit ; then
- ${EPYTHON} \
- "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
- --exclude-file="${T}"/known_failures.list \
- "${MOZJS_BUILDDIR}"/js/src/js basic \
- || die
- fi
-}
-
-src_install() {
- cd "${MOZJS_BUILDDIR}" || die
- default
-
- # fix soname links
- pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
- mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
- ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
- popd &>/dev/null || die
-
- # remove unneeded files
- rm \
- "${ED}"/usr/bin/js${MY_MAJOR}-config \
- "${ED}"/usr/$(get_libdir)/libjs_static.ajs \
- || die
-
- # fix permissions
- chmod -x \
- "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
- "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
- || die
-}
diff --git a/dev-lang/typescript/Manifest b/dev-lang/typescript/Manifest
index df7c53b63f5b..15139e0feca0 100644
--- a/dev-lang/typescript/Manifest
+++ b/dev-lang/typescript/Manifest
@@ -1,7 +1,9 @@
DIST typescript-5.4.5.tgz 5825770 BLAKE2B aea24c0924b2a0b0d01face2ce6be4e7fac85c2205cb0ecde492c5301f83d55fd8cd501326bd47f90cd78abf48c7aaf0381b13fc8242f3d2f9235e6051860b2b SHA512 bdc23852946083cd68211505c11d164881cab75d6727b48056560d22ef90a6a7b25cffa0a50272fd9e3e174686c5213832ac23c97bd6fd3ce090b031d80187c1
DIST typescript-5.5.2.tgz 4040998 BLAKE2B 3b1b8ea1c124c24b327111a69eaeaf470364090f3a613c5ead225d9a5502ad2473ea156d203ee73cae9a8ff470d21ddc5e729935a72560c2ffad18edff4b754d SHA512 35c46d3c43ac3c51568e86c912d7e28642c26425d9b7fa2cdf37fc9d3c63547dd1bd34b18eb09a989a5b1311af60e17eb451dcde903ae6aa5dc0f6f38e88617b
DIST typescript-5.5.3.tgz 4041052 BLAKE2B e30ca285fdedfefc8ebac28310dc4d4834efefc9c25d36ca5be43c0ed81e91698b879565c47651402a90b16ba4d30895d00bcee5a752ad538b4d9f2e2327ad49 SHA512 fe1adec84ba3681d30efaccaa3aef5ee5dcbd28fea114b5181dbd406f96486859e39532332e1cd1e4d01441ce2933b860ea3663d06e0e627cc12ab072e221471
+DIST typescript-5.5.4.tgz 4043150 BLAKE2B 6171a4bafcb7d9dff4cd603846980bcfa599c4ee13d585760af572dc410a584f729485bc2aaf5cb5e3721d37b7cf8d4f54eaf9abda86eba04bf54b50ac80db9c SHA512 32dab6f6c28300460feda963460b4f3a94ef39f6f0456952e9d3d1cf08dd13e0b44786eb5ff194ca11d279c6c73052cd04b70920fb7d9e5f721b94d9d70787f9
EBUILD typescript-5.4.5.ebuild 823 BLAKE2B 2d94c5a6377082a5959ff1baff5261c4b705952d6ab950d56be7888ea5ed5039ae63a14ff6a6f05da7eee6308a94a3a4ba94e95edfdc25001700a7fb6e05d0ec SHA512 c736aff6f5bb51960e559f522a2c4b4143cd861fb9bce72eda67003efc0f28bf9e9febcb263b40ee6e29473d311f5d45f827e6327f00f4197c94ecc50c6a292a
EBUILD typescript-5.5.2.ebuild 835 BLAKE2B f249d34a3332cc3134c6ec8e17c6aefcb7283cc336422e22609450dcd3483b5f056e2bc428c56e16432214fbf7b9d121dd2320a5608593082495743ba5aba961 SHA512 997e629a64d5969fdccd0a1f6c28007b566c37a5bdfda5fa51e45235ec3ed32b540f6596e54da1329e93ec4214fa18cb904ebe048839f29f97d50ab9f2747b1f
-EBUILD typescript-5.5.3.ebuild 835 BLAKE2B f249d34a3332cc3134c6ec8e17c6aefcb7283cc336422e22609450dcd3483b5f056e2bc428c56e16432214fbf7b9d121dd2320a5608593082495743ba5aba961 SHA512 997e629a64d5969fdccd0a1f6c28007b566c37a5bdfda5fa51e45235ec3ed32b540f6596e54da1329e93ec4214fa18cb904ebe048839f29f97d50ab9f2747b1f
+EBUILD typescript-5.5.3.ebuild 834 BLAKE2B 13bf8179a7547e7ff3fd95dfca44a4c489abea30d9e434ef9014b4e86d46c0c137bd835c5cd52997397fa062d249fbd59a2a6068c36050180cbff3abcf5faeb0 SHA512 da16160de58078dcf3f16a5a5916a5dc8ce338dbe6c910adf1375acb9bca3ef4937d3acb6787d47ef4070708dce4f221ad34be37b839bcc33945d6ae9ee1fbe1
+EBUILD typescript-5.5.4.ebuild 835 BLAKE2B f249d34a3332cc3134c6ec8e17c6aefcb7283cc336422e22609450dcd3483b5f056e2bc428c56e16432214fbf7b9d121dd2320a5608593082495743ba5aba961 SHA512 997e629a64d5969fdccd0a1f6c28007b566c37a5bdfda5fa51e45235ec3ed32b540f6596e54da1329e93ec4214fa18cb904ebe048839f29f97d50ab9f2747b1f
MISC metadata.xml 733 BLAKE2B 903d85acefa054dd979ac181106cd604c351e4b81e18be7ad0f370501864f6789895244a797ec20041158d8c716907a06fa75c2ba4ea192e798719bbe73b1d45 SHA512 95806f8f442b0246867f0ba0ed70c093dfd772a558ae499be7e22bfe99cb3bc54debc7479ca9b4ac81a54156d3b8745cbb448e412f31ed2d5c43f76cbc642d72
diff --git a/dev-lang/typescript/typescript-5.5.3.ebuild b/dev-lang/typescript/typescript-5.5.3.ebuild
index 242c85963aec..ebdd7db72e65 100644
--- a/dev-lang/typescript/typescript-5.5.3.ebuild
+++ b/dev-lang/typescript/typescript-5.5.3.ebuild
@@ -11,7 +11,7 @@ S="${WORKDIR}/package"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64"
+KEYWORDS="amd64 ~arm64 ~ppc64"
RDEPEND="
net-libs/nodejs
diff --git a/dev-lang/typescript/typescript-5.5.4.ebuild b/dev-lang/typescript/typescript-5.5.4.ebuild
new file mode 100644
index 000000000000..242c85963aec
--- /dev/null
+++ b/dev-lang/typescript/typescript-5.5.4.ebuild
@@ -0,0 +1,43 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Superset of JavaScript with optional static typing, classes and interfaces"
+HOMEPAGE="https://www.typescriptlang.org/
+ https://github.com/microsoft/TypeScript/"
+SRC_URI="https://registry.npmjs.org/${PN}/-/${P}.tgz"
+S="${WORKDIR}/package"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+
+RDEPEND="
+ net-libs/nodejs
+"
+BDEPEND="
+ >=net-libs/nodejs-16[npm]
+"
+
+src_compile() {
+ # Skip, nothing to compile here.
+ :
+}
+
+src_install() {
+ local -a myopts=(
+ --audit false
+ --color false
+ --foreground-scripts
+ --global
+ --offline
+ --omit dev
+ --prefix "${ED}/usr"
+ --progress false
+ --verbose
+ )
+ npm "${myopts[@]}" install "${DISTDIR}/${P}.tgz" || die "npm install failed"
+
+ dodoc *.md *.txt
+}
diff --git a/dev-lang/uasm/Manifest b/dev-lang/uasm/Manifest
index bf75a57aee93..2fcd551c32ad 100644
--- a/dev-lang/uasm/Manifest
+++ b/dev-lang/uasm/Manifest
@@ -1,5 +1,5 @@
AUX build-fix.patch 4867 BLAKE2B 5f2058888b7014bae9fa014307aabcf07d6e802e215c996cc21e6575ae6b557b2a42f381b41b9f64abdaeab29caee9a3dc61b378b183f095b668da9e43010d39 SHA512 e5e22c4f0582a34f2528227cc757507b9348f641da73798f4d6488714edd83686242d4469b35ab706894a11c7765b392a518150106007b32bb4cffdb05cd1b22
AUX makefile-dep-fix.patch 543 BLAKE2B 3cc4a42448983442d1d39743d3757f8f3df80b0507036dce4204c43a199bc11d510ce165adbaa16c6e381813fbf4096dff4121456fcb653acf46a177f605ed86 SHA512 2f885cda5c583e1e5458c3da9f0c2c6755681f8e182d01ae575fb54f1ee37fa73edd768b78c9e013a4e051aed6b1cfc3f944ef34732c85de18075d4febd81931
DIST uasm-2.56.2.tar.gz 1243830 BLAKE2B dcc0948d92cdd5972a6698e721a6ccc6a54926ef94778438cf9a88a6e41ebc652d5230003f689d4278bd1e48959dd04595c602427287a48c551d7b847be665f0 SHA512 1f6c1037909d012f3293985c4e0516f4b61497de23cac6bbb58db735efb512599c0bba5d60d8ce999e6afc57e44484a094bf10f0ee185a51afd826f5541c9337
-EBUILD uasm-2.56.2.ebuild 942 BLAKE2B f07801b07812f64cc3a2e71a112917044e0aa5d140b3715ce27de4f9ce083437f3a75452abefd55e7428dbd764fdc198ddc6f077ad72aa7bf466f2b32f4ef0c9 SHA512 e922a4b948b9061904319af1df87cac5798931bf232d45ed07d69632eb075e70748781a2a7e0bbbbba556306e96f31285423a2e3e3cbb1327914d1effc647cd4
+EBUILD uasm-2.56.2.ebuild 941 BLAKE2B 18ac91415ba558f88e4d92d4c003c6004576002d6e98bc6839ca73ecc554879d8b8d62943ebfff3431fb3f314e7419093357e710982d3b1f86bb4362fb1adc65 SHA512 5a73e7a1c5ebdcf92f891054d615e49a6fb89c21c10293d7b38b49cc5dfdd24b149cdfd355b02b7f6944a45fd6c55b419caad27e4dad535fde34371310966a24
MISC metadata.xml 521 BLAKE2B c50616e7b6f6df5a3af6d3d0c72dd2d4dc4bbaa87eb525a0ec9af8b46ef913e710c97d3db01cacc42549175e6e8d20bbd557c24b789bf820f210b5c22e087d2f SHA512 213adb4bef7d55ec9369e7c09f83413d8b076d68524abb5cf52338a15ad99da534b97797128d5a5ac6d2460a03cf3c2f070baf27cfdb4cf70358f458141a8fd0
diff --git a/dev-lang/uasm/uasm-2.56.2.ebuild b/dev-lang/uasm/uasm-2.56.2.ebuild
index 3d96057ef673..5a0d38620ed2 100644
--- a/dev-lang/uasm/uasm-2.56.2.ebuild
+++ b/dev-lang/uasm/uasm-2.56.2.ebuild
@@ -12,7 +12,7 @@ S="${WORKDIR}/UASM-${PV}"
LICENSE="Watcom-1.0"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
PATCHES=(
"${FILESDIR}/build-fix.patch"
"${FILESDIR}/makefile-dep-fix.patch"
diff --git a/dev-lang/xsb/Manifest b/dev-lang/xsb/Manifest
index 74b208b64e84..eb75f247e006 100644
--- a/dev-lang/xsb/Manifest
+++ b/dev-lang/xsb/Manifest
@@ -1,8 +1,5 @@
AUX 0001-modern-C-fix-for-implicit-int.patch 998 BLAKE2B 4a9212fc68098914ac12593e2007c7444eb6d7b8f9461640ecc50c8c8c30631475c9e0663808df450b168d8156c346807454eb8795b11e43ac7f4abfa08475e0 SHA512 cb857bdd2bd496531c96a30fb2f4b84f894614adcaed7b6b4f809c3e9e256366e06218e0553c7c15af2b718653f2be3d2a45393849392650550c8d61a7b6bf60
DIST XSB-4-0-0.tar.gz 15340635 BLAKE2B 4832185a64c6c5786ae78e111c25cd3a5ffc2f80aec9c0c83f030ead482868c77b0d7abbfdf0d113b56fea395eb7e69ca2970a82ea70004fb78c0bf4de258a9d SHA512 fed1e0db4874db2508e0c1e716be20cbfbc4f7ed4c16e0b220750cfb3dfceb78bbdce0f8564b68c400af1bc2b8f9e3b35014e8849bba1705bddfab824f41e816
-DIST XSB38.tar.gz 13830570 BLAKE2B 60a6ab38435348d09e2d08bc65ca62c06b38495b72f40a6f3f10fe8d23949bfed0c580c9be0c8304d8a88a53b227bb695870b558d67f33a47543de6c1529180f SHA512 457c691450afcf3ed4e2fffc28deaef0949ef4bbf6fd69b504acc6507fbb144f2c6e427a25da2b6346b15b82e803c02d1b6962af698d16c1fcb9a3d56160ea30
-DIST xsb-3.8.0-gentoo-patchset-5.tar.gz 7748 BLAKE2B 291beb7a2bf567708119eb200e06fd0d6ac976b5eaea9646d9b5fe9fe67908e01f48b1e55e36fc98f7fe75ee4b654422bc0f9c565e00ac75fe36cccd0439bc2b SHA512 cd3762545bb0b0c5532607741f5946658cacf062c21913c8261988a2162ab848d860ae5a0d11d7a4b8b36994f7fbc91c6e6b4fa607e8cc6ebed434dbf421dec1
DIST xsb-4.0.0-gentoo-patchset-3.tar.gz 10487 BLAKE2B 37253b8e5bfd36cdf51f231e75215ea31d50f121e3c8b1126adfbc8998622f2a4ebdb976b3c67c13738095fd4b23b35e166a895c4ee038b1cae7ad962684ce86 SHA512 51738e5dd64711f42e5c8d831c955c533dbe900a129cc0e7eb5d393ef13d7b6206e5e9fc0e90b1422adb2d8c00ec870a50164d420a02da23770ba0ad3350b10b
-EBUILD xsb-3.8.0.ebuild 3684 BLAKE2B f3cb8e31a72ba410cbd38ca3da137097bca0fa5bce2799d47b848a12c32dbd4918cbdc440df570833ff377b85c565ff8417d7d244a7421989508df4ae2c837a3 SHA512 bec9a89c10256988a9ab42ebd75ee25fab4acf0eb3cf08614e6644e6dee8c49e3d95c77095fcd31fbd017b3c53a337d30efa418a4129570b8d2c2268704d8250
-EBUILD xsb-4.0.0-r1.ebuild 4520 BLAKE2B a85b4ca2f2912984c0eeb173c578fc69698ef01f66399ccc062b23c55998d5bfa57a96eafed35e9913b52e0768bdfe332e49092964edf34742f5762bb90e38c9 SHA512 9f4ad90c5686f5b4c8a91ecad0a0abc3892d0e3ff8981d99e1aeaa594f8c9b3d5038592d6dc1ed15cab082f414f487240feebd61e1db83fbfa9decacc0a52488
+EBUILD xsb-4.0.0-r1.ebuild 4514 BLAKE2B 1fb92d957672821e9a205fbd6d93c6b9e95f87c1f5cc2ff485cd414a1ca1fc590dbcf262db4d66192bbb262f571b0d5fbdfaa8befb5127d6ebead4e40d24100b SHA512 237b9a1ec204c788eb40a4825f96d91c9859e4747235d214bc7de3c8c7fd9d8ff08b8996800425eaec73295ca64a10f6910399172fe398b249095308b155fb7f
MISC metadata.xml 407 BLAKE2B bf2a1312d435a5b31fcc0536849ded569d7512ec8e2e7471c253586bc866e7ffb915311725efeef8f2c7d227a82ba615a5fa69380454efb654e719177e35a67e SHA512 87aa031c2a64c878f24be293a3e4cdf391b696a7ef96faa4f209fcfeb56db74f29a1e3de7ad845f84eca86d8b81944ecae6e4ea1119699b72bfcf125735a0c03
diff --git a/dev-lang/xsb/xsb-3.8.0.ebuild b/dev-lang/xsb/xsb-3.8.0.ebuild
deleted file mode 100644
index 7ab720531788..000000000000
--- a/dev-lang/xsb/xsb-3.8.0.ebuild
+++ /dev/null
@@ -1,198 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PATCHSET_VER="5"
-
-inherit autotools java-pkg-opt-2
-
-DESCRIPTION="XSB is a logic programming and deductive database system"
-HOMEPAGE="http://xsb.sourceforge.net"
-SRC_URI="http://xsb.sourceforge.net/downloads/XSB38.tar.gz
- https://dev.gentoo.org/~keri/distfiles/xsb/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="curl debug iodbc java mysql odbc pcre threads xml"
-
-RDEPEND="curl? ( net-misc/curl )
- iodbc? ( dev-db/libiodbc )
- java? ( >=virtual/jdk-1.8:* )
- mysql? ( dev-db/mysql-connector-c:0= )
- odbc? ( dev-db/unixODBC )
- pcre? ( dev-libs/libpcre )
- xml? ( dev-libs/libxml2 )"
-
-DEPEND="${RDEPEND}"
-
-S="${WORKDIR}"/XSB
-
-PATCHES=( "${WORKDIR}/${PV}" )
-
-src_prepare() {
- default
- cd "${S}"/build
- eautoconf
-}
-
-src_configure() {
- cd "${S}"/build
-
- econf \
- --prefix=/usr/$(get_libdir) \
- --disable-optimization \
- --disable-ccmpl \
- --without-smodels \
- $(use_with odbc) \
- $(use_with iodbc) \
- $(use_enable threads mt) \
- $(use_enable debug)
-
- if use curl ; then
- cd "${S}"/packages/curl
- econf
- fi
-
- if use mysql ; then
- cd "${S}"/packages/dbdrivers/mysql
- econf
- fi
-
- if use odbc ; then
- cd "${S}"/packages/dbdrivers/odbc
- econf
- fi
-
- if use pcre ; then
- cd "${S}"/packages/pcre
- econf
- fi
-
- if use xml ; then
- cd "${S}"/packages/xpath
- econf
- fi
-}
-
-src_compile() {
- cd "${S}"/build
-
- default
-
- # All XSB Packages are compiled using a single Prolog engine.
- # Consequently they must all be compiled using a single make job.
-
- cd "${S}"/packages
- rm -f *.xwam
- emake -j1
-
- if use curl ; then
- emake -j1 curl
- emake -j1 sgml
- if use xml ; then
- emake -j1 xpath
- fi
- fi
-
- if use mysql ; then
- emake -j1 mysql
- fi
-
- if use odbc ; then
- emake -j1 odbc
- fi
-
- if use pcre ; then
- emake -j1 pcre
- fi
-}
-
-src_install() {
- cd "${S}"/build
- default
-
- local XSB_INSTALL_DIR=/usr/$(get_libdir)/xsb-${PV}
- dosym ${XSB_INSTALL_DIR}/bin/xsb /usr/bin/xsb
-
- cd "${S}"/packages
- local PACKAGES=${XSB_INSTALL_DIR}/packages
- insinto ${PACKAGES}
- doins *.xwam
-
- insinto ${PACKAGES}/chr
- doins chr/*.xwam
-
- insinto ${PACKAGES}/clpqr
- doins clpqr/*.xwam
-
- insinto ${PACKAGES}/gap
- doins gap/*.xwam
-
- insinto ${PACKAGES}/justify
- doins justify/*.xwam
- doins justify/*.H
-
- insinto ${PACKAGES}/regmatch
- doins regmatch/*.xwam
- insinto ${PACKAGES}/regmatch/cc
- doins regmatch/cc/*.H
-
- insinto ${PACKAGES}/slx
- doins slx/*.xwam
-
- insinto ${PACKAGES}/wildmatch
- doins wildmatch/*.xwam
- insinto ${PACKAGES}/wildmatch/cc
- doins wildmatch/cc/*.H
-
- if use curl ; then
- insinto ${PACKAGES}/curl
- doins curl/*.xwam
- insinto ${PACKAGES}/curl/cc
- doins curl/cc/*.H
- insinto ${PACKAGES}/sgml
- doins sgml/*.xwam
- insinto ${PACKAGES}/sgml/cc
- doins sgml/cc/*.H
- insinto ${PACKAGES}/sgml/cc/dtd
- doins sgml/cc/dtd/*
- if use xml ; then
- insinto ${PACKAGES}/xpath
- doins xpath/*xwam
- insinto ${PACKAGES}/xpath/cc
- doins xpath/cc/*.H
- fi
- fi
-
- if use mysql || use odbc ; then
- insinto ${PACKAGES}/dbdrivers
- doins dbdrivers/*.xwam
- doins dbdrivers/*.H
- insinto ${PACKAGES}/dbdrivers/cc
- doins dbdrivers/cc/*.H
- if use mysql ; then
- insinto ${PACKAGES}/dbdrivers/mysql
- doins dbdrivers/mysql/*.xwam
- insinto ${PACKAGES}/dbdrivers/mysql/cc
- doins dbdrivers/mysql/cc/*.H
- fi
- if use odbc ; then
- insinto ${PACKAGES}/dbdrivers/odbc
- doins dbdrivers/odbc/*.xwam
- insinto ${PACKAGES}/dbdrivers/odbc/cc
- doins dbdrivers/odbc/cc/*.H
- fi
- fi
-
- if use pcre ; then
- insinto ${PACKAGES}/pcre
- doins pcre/*.xwam
- insinto ${PACKAGES}/pcre/cc
- doins pcre/cc/*.H
- fi
-
- cd "${S}"
- dodoc FAQ README
-}
diff --git a/dev-lang/xsb/xsb-4.0.0-r1.ebuild b/dev-lang/xsb/xsb-4.0.0-r1.ebuild
index bf99d5d3efb6..7e053d1e83ff 100644
--- a/dev-lang/xsb/xsb-4.0.0-r1.ebuild
+++ b/dev-lang/xsb/xsb-4.0.0-r1.ebuild
@@ -14,7 +14,7 @@ SRC_URI="https://downloads.sourceforge.net/xsb/XSB-$(ver_rs 1-3 -).tar.gz
LICENSE="GPL-2 LGPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64"
IUSE="curl debug iodbc java mariadb mysql odbc pcre threads xml"
RDEPEND="curl? ( net-misc/curl )
diff --git a/dev-lang/yasm/Manifest b/dev-lang/yasm/Manifest
index 0556de791556..b56b512364a6 100644
--- a/dev-lang/yasm/Manifest
+++ b/dev-lang/yasm/Manifest
@@ -1,3 +1,4 @@
+AUX yasm-1.3.0-fix-modern-c.patch 2584 BLAKE2B 5c967ff7bfdd250f78650c1d5b5b92edb573c77ab457441101da1a903359baa761a9fc83a789dc072dc1dcb2e4f7a214df38a7bf5f365eb9d3085d65eed70c93 SHA512 e78d9032e05f9241755af49d0e08a2f6d5eb3843582040f68dc63364c1d90743d8247304d46fee3455daf7a252919f231b3d43f234190bc5175d4e4ee44fefea
DIST yasm-1.3.0.tar.gz 1492156 BLAKE2B e419a4f9912eb244e9503462dbf0c5e5c95bdfa49583ee205dc4708b42710df8dd2056b2e36e04de04474f4af900916cb64c14a623db1346c3e1cb46a8cc34a5 SHA512 572d3b45568b10f58e48f1188c2d6bcbdd16429c8afaccc8c6d37859b45635e106885d679e41d0bee78c23822108c7ae75aa7475eed5ba58057e0a6fe1b68645
-EBUILD yasm-1.3.0-r1.ebuild 1232 BLAKE2B b9768cb8232d4800331c857232254b57fe12d14342193500540389601c15aeb93742174c972eb507fa024b018ac3fbe059fe75c204d5c59bbfa030f3eb326ff8 SHA512 9fa76f7529ac4df147450bbb75a7c255abf96c8a19c4735f6e81faefc9653b05c6c873f269b7214a51d6ca1187d590883a2550b158545c87367a535034efe694
+EBUILD yasm-1.3.0-r2.ebuild 1284 BLAKE2B 69db204feb150494b7de1873114fd9013ec98f8391fe5bf11ff70449f8c29433d8bac0fbd49738619f62cad30bc47b2e241d40f47224ad74dcd229902644d18a SHA512 6cdf3db9d83e383c4c84b4c52ca89ae0abf1d86652244b94b8ce7ab43cf5610078a5112615794e181147166a5d87dd29784a3ad762bbd26328cca7ad431e9844
MISC metadata.xml 393 BLAKE2B c1a2f5a55132dd63f7ba78e4b78600d87f462995e6d692ed3500fbab47b8a95fb16b292956e07279e1a9183e6abd44b38e1448bd6b48a9652d2e8660a02ea136 SHA512 d486d9fa65b102b36665e84436f23c6b1897aca20c1451eaa5e36ad5d00b8020da73583de3948a73af3d860bee243caea15da9904187b3dbf1700ba9ed39136c
diff --git a/dev-lang/yasm/files/yasm-1.3.0-fix-modern-c.patch b/dev-lang/yasm/files/yasm-1.3.0-fix-modern-c.patch
new file mode 100644
index 000000000000..61f1e88634f0
--- /dev/null
+++ b/dev-lang/yasm/files/yasm-1.3.0-fix-modern-c.patch
@@ -0,0 +1,87 @@
+https://github.com/yasm/yasm/commit/f79f5e37f0e4b06d5dc303cc219929d7359dd7df
+From: Biswapriyo Nath <nathbappai@gmail.com>
+Date: Thu, 18 May 2023 03:53:32 +0530
+Subject: [PATCH] Fix function declaration warnings with clang (#226)
+
+This fixes the following compiler warnings with clang
+
+tools/genperf/perfect.c:65:6: warning: a function definition without a prototype
+is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
+
+frontends/yasm/yasm.c:1379:23: warning: a function declaration without a prototype
+is deprecated in all versions of C [-Wstrict-prototypes]
+
+modules/objfmts/elf/elf.c:225:18: warning: a function declaration without a prototype
+is deprecated in all versions of C [-Wstrict-prototypes]
+--- a/frontends/tasm/tasm.c
++++ b/frontends/tasm/tasm.c
+@@ -817,7 +817,7 @@ opt_exe_handler(char *cmd, /*@unused@*/ char *param, int extra)
+ }
+
+ static void
+-apply_preproc_builtins()
++apply_preproc_builtins(void)
+ {
+ char *predef;
+
+@@ -853,7 +853,7 @@ apply_preproc_standard_macros(const yasm_stdmac *stdmacs)
+ }
+
+ static void
+-apply_preproc_saved_options()
++apply_preproc_saved_options(void)
+ {
+ constcharparam *cp, *cpnext;
+
+--- a/frontends/yasm/yasm.c
++++ b/frontends/yasm/yasm.c
+@@ -1376,7 +1376,7 @@ opt_plugin_handler(/*@unused@*/ char *cmd, char *param,
+ #endif
+
+ static void
+-apply_preproc_builtins()
++apply_preproc_builtins(void)
+ {
+ char *predef;
+
+@@ -1409,7 +1409,7 @@ apply_preproc_standard_macros(const yasm_stdmac *stdmacs)
+ }
+
+ static void
+-apply_preproc_saved_options()
++apply_preproc_saved_options(void)
+ {
+ constcharparam *cp, *cpnext;
+
+--- a/modules/objfmts/elf/elf.c
++++ b/modules/objfmts/elf/elf.c
+@@ -222,7 +222,7 @@ elf_strtab_entry_set_str(elf_strtab_entry *entry, const char *str)
+ }
+
+ elf_strtab_head *
+-elf_strtab_create()
++elf_strtab_create(void)
+ {
+ elf_strtab_head *strtab = yasm_xmalloc(sizeof(elf_strtab_head));
+ elf_strtab_entry *entry = yasm_xmalloc(sizeof(elf_strtab_entry));
+@@ -373,7 +373,7 @@ elf_ssym_symtab_entry_print(void *data, FILE *f, int indent_level)
+ }
+
+ elf_symtab_head *
+-elf_symtab_create()
++elf_symtab_create(void)
+ {
+ elf_symtab_head *symtab = yasm_xmalloc(sizeof(elf_symtab_head));
+ elf_symtab_entry *entry = yasm_xmalloc(sizeof(elf_symtab_entry));
+--- a/tools/genperf/perfect.c
++++ b/tools/genperf/perfect.c
+@@ -62,8 +62,7 @@ Find the mapping that will produce a perfect hash
+ */
+
+ /* return the ceiling of the log (base 2) of val */
+-ub4 phash_log2(val)
+-ub4 val;
++ub4 phash_log2(ub4 val)
+ {
+ ub4 i;
+ for (i=0; ((ub4)1<<i) < val; ++i)
diff --git a/dev-lang/yasm/yasm-1.3.0-r1.ebuild b/dev-lang/yasm/yasm-1.3.0-r2.ebuild
index 4d76cccfeeb9..7bbb5163d765 100644
--- a/dev-lang/yasm/yasm-1.3.0-r1.ebuild
+++ b/dev-lang/yasm/yasm-1.3.0-r2.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit toolchain-funcs
@@ -37,6 +37,10 @@ if [[ ${PV} == 9999* ]]; then
"
fi
+PATCHES=(
+ "${FILESDIR}"/${P}-fix-modern-c.patch
+)
+
src_prepare() {
default
diff --git a/dev-lang/zig-bin/Manifest b/dev-lang/zig-bin/Manifest
index f5b7676ec8ed..168e55365e78 100644
--- a/dev-lang/zig-bin/Manifest
+++ b/dev-lang/zig-bin/Manifest
@@ -6,12 +6,16 @@ DIST zig-linux-aarch64-0.11.0.tar.xz 41492432 BLAKE2B fd4e1f242475bfdc94f418817d
DIST zig-linux-aarch64-0.11.0.tar.xz.minisig 326 BLAKE2B 2b9d4aac400789019430fc4a2e28a255cf259730c2f3f6b18129cd2b43465ef513931e827c58bd5170dfe519f602840892e201b9a66ba013384d1e4f18d3ea92 SHA512 0bb645a52704ecad1b98d91659468a0b8a29c3cc4db8fb2c9bb43cee17ba2cb7227222b0ea81e081cc13772ed2bf1a5253a7f3d7204b2a8166451f4384d7963c
DIST zig-linux-aarch64-0.12.0.tar.xz 41849060 BLAKE2B a12a6c946a365b391b323f51c7b25f855dddaed7a768067da0abfb64ca2440a3ba36b6b5987d5129485e506f45e7f90e98ef29f9242aa71b1dc286426fbc8403 SHA512 6fba718ff4cdf58f9a9db9183b9d436eedea3317c7e91dfa495b47f0dc95d2042784d4692cb65907cb9c3c74484b4e15adeeefd0c1ac462064848bdad4d6e4c4
DIST zig-linux-aarch64-0.12.0.tar.xz.minisig 326 BLAKE2B 9cf7cdd6a1029e61c695610a4b77aafd915c23108c7a2315b51a2115b1b9f6e944d72fea84dbcc87f0e2e7eab2180ed095434b834a1a87f1c0424a8800db27c8 SHA512 7d0468fa56f6fcc8960a1dba43be6695fb7231e1de8b07f8d4c8b3d4ec8917e3c0cb19b7539db8e316b993bf5396197ab2d16e357fa5d541c7f88da2d7429038
+DIST zig-linux-aarch64-0.13.0.tar.xz 43090688 BLAKE2B 658376ddd6f74ced4e8d875573e53e236ce65d11bf098db7fc1c6a119b88dc97c45212101e0b3a4cfb7d0f4481d696fbb65b765344f44451d20c5bfb36cfbc14 SHA512 0e36c26da0088aec54939af0cbe5219132d56cb8bb1f298ca50e1a628d3fbdfd401441695013b6d3fd282905bb273ccc160b4f0dbced236aa1408278f532d99a
+DIST zig-linux-aarch64-0.13.0.tar.xz.minisig 326 BLAKE2B 2f4008c036a309bf3efdfa719a7e4cca0c13c0c5a93e6a8c2e9c75cff7ea9a000cc52f695487c1b1199eebece4853b11ca4d3a22935f12b6d07b9f465da01c2e SHA512 a5635610a17f61e8608379bee0e10c8a43a565ddf22394da214e28b6a84fadd6809bdcdb7996ebc2bc2bfa6d1fa4a5e47191f6aa8536450b01cae03871145679
DIST zig-linux-armv7a-0.10.1.tar.xz 50718132 BLAKE2B 76ef431ef8957272b992f6b861913a961d348120106a7f4b77d1f6b2a042dd8904a1ac744ab6b02b78681eef68af4143372e5315cd113d40711bd26fc78e6632 SHA512 4ec3ccd7ac980bfd9fc7a2f6b2301051d3df43b00143914d869389fc44b48916820d996e27cb922dac152228c4b04a0cce51f7b125317de85440a5479fe8ff7d
DIST zig-linux-armv7a-0.10.1.tar.xz.minisig 325 BLAKE2B 675416641adfa9a1cdc6797dd310a7cdd83dda20cf73b5d3dafd616d3686ab72f00d735576c3d6839c9b7a92869ce058dd532beec27e5ec0a7b7d4f94008d592 SHA512 7f7be843ce7718294816f5c8dc349386cd76d9e7ad0a96d74bfe09d7361e864f275593fbd92b44091c5cdd5fcb0d9e8e07683c96585ac932b5f80e7c7356e6cc
DIST zig-linux-armv7a-0.11.0.tar.xz 42240664 BLAKE2B 0d301c1a2fa2ddcddccf37333418ceea06b48539548e533a20c098021fba12c1bfe467d0c8dd3d9207c6d129e4de8c47c436a39f7fd6165a0c6ad5a679ca5f50 SHA512 f4235418b3251d03727ba85a6002f6561f20b095a9fddf92ff126a20f49d17533d15d7e0f570ea734e40a1a76dd1b8a4bca78ad6ab3846aeb5f90dc812586008
DIST zig-linux-armv7a-0.11.0.tar.xz.minisig 325 BLAKE2B 4f8c686969a3f74c91906a1a9b79bef16b8695caf3829b6550d9c3a7b3c92703cad6e5d45e8260fb13b2be1947fe1f0adfc71afcaa6f28b6fd42364a706272dc SHA512 8ae13173ef26d97ff6dfb019f709020d3dd6112dae75ff7e7ba34e53d582f62e37ce2ff16574cfd4a061f0ac16a067eba80639beda1bc319920837321299c9fd
DIST zig-linux-armv7a-0.12.0.tar.xz 42638808 BLAKE2B 58e905a5519729ae8e549be354558d2df72c4d07fafb00c2e78a2b92cf562fe4cabe826992cc0b3165fded1d7e7bffac23af13256aa3cba9497f6561b819e531 SHA512 9cf8afa94afd47a54131e80fad8dc2852cfd2243e33d06eb2ba607cd7de186f7f1245a84efce8556e180fbee6a3c05448b3ab568d93233a16f398b258526867f
DIST zig-linux-armv7a-0.12.0.tar.xz.minisig 325 BLAKE2B 47de3ac2f3abaabae21060a85ffbccb9db1b8df4c67ca02ea9208913c2ec765d6e7b713a8863358cb0a00519397445f269db6c70622fe658bcb7ef34922ba5b0 SHA512 c51884ea6d0849cf97d9e4a206af64a33a66bab5feac610f61ed5239c2122c40a33589fbed5e07d7baefa5e8181dc914a946fb4cfba91480f7581cb56ba358eb
+DIST zig-linux-armv7a-0.13.0.tar.xz 43998916 BLAKE2B 5ab0f39209d900690f28a73bade854aecbd77d6d7bccfdca97d49e5fc40d198023f2f9b1e96eaa9afa6a368c6f35575aeac52422d486a691dd4779ca118836ca SHA512 d93005a14dae40e6de66ad0e3150ac15284c01839ae0a19531a4e2f54a628b9fe3bcb08b6d526b96ba9d79d232c5c0c2b813877359c76b927435085671c57ab6
+DIST zig-linux-armv7a-0.13.0.tar.xz.minisig 325 BLAKE2B 3b1fa76b70cf364f218af9299812ec175d03d0b4bf3d6748737d26fc9ef55b97f24b1ce34c62e16fb44e72b16659d2f41069d59e662ae4a95d461fe1f25132fc SHA512 68c822bf8718cf547d20ef0cff16343ac9a99b27738ac81bd660b8d55f69c4ac5666b0a4766b18acbc391923784a0bddf67c504ffae13b8f6219e59244aa665b
DIST zig-linux-i386-0.10.1.tar.xz 48367388 BLAKE2B 482ec9e42d9036177f41c459faf82c79ba525f35ed14150d97af9110efab3e9894b8c64f92f9257b224893179134e43306c985ad6a04ae6a7d427d14ef4e7a3f SHA512 97345a8f7f15a83e51635ec667e869833a597511a1b004fa4ab19d78ad234e05e8344823e0c623510c7c5dbeef447d13636223e8d339f6d53f2eca053852a8d3
DIST zig-linux-i386-0.10.1.tar.xz.minisig 323 BLAKE2B e25778cf26696ae0450186b6173dc69cfc9eb165903d5c4b1bcb9d01b55646f1af5047e129a1241200b7d7bd041bc9aa85841eee3a9366b7e88a2eccce3dae88 SHA512 52e66eb9a486e853330f125bad2baf63b87e3544ef1cc12cd59889f3c3a8a7ada5363307eb29d797c54202ebc5a3edb87452d6b09f53f099f51f79c053cf8b7d
DIST zig-linux-powerpc-0.11.0.tar.xz 44539972 BLAKE2B b713c23f537c8f47be7aae7bf0609d056dc6817aac207ba39df0a53d1c391f1c64bc05edbb53fb5584c60cd6963f35fa56448440c5065dc21b5cf978fbb0bbb4 SHA512 faabbbae501b56c91fec036c209a6d6aea0c974749a777eb13f273e06fde960c7b2a2b29caf83a43fef740652db313933b3eeb72a9c0445ad412a7f8023da3af
@@ -20,23 +24,32 @@ DIST zig-linux-powerpc64le-0.11.0.tar.xz 44656184 BLAKE2B 597947c4bee73847abf094
DIST zig-linux-powerpc64le-0.11.0.tar.xz.minisig 330 BLAKE2B 4a657d18c184bd37b1d3e3ab50b096b2594e204c5bdfe5f94c5543051823b43c7014e99b8b51718513006b4391b400df67ace22a86111a863373f34c526d0f94 SHA512 093f957cfea8605452d52f402371caa4552e10f612fb71240d34d905f7a86271b767163af15e3969f33fadd5d385164e87d944c48cc96cfdc6de00877b239476
DIST zig-linux-powerpc64le-0.12.0.tar.xz 45216736 BLAKE2B 4da27f58536c311ee5585c3e411ea230459ef5ad3006d381fe75e04c3088735a57eac8fc83856e9182585b5ee27f00026ba393741c55e5b4ed069760c8839d10 SHA512 9c44db49dc5e698bd19ef7341927216d88a813cee03eb5057a9b17b33c4750d6c28aab0befdb4cb2066e7a84befa3e237475a1fdeba672748940e972b27822c0
DIST zig-linux-powerpc64le-0.12.0.tar.xz.minisig 330 BLAKE2B f43ba19e848ad3777d257d03304cd26a8cf317032b85f3841434fe4d9f70099b053d4b97b09e7b9fc13bb7f403c69f7aac41d0f522ba0aca4de70a3db0c83a94 SHA512 3629f18568066a59b8cfa2026b86e291b742739101df2b0914e935aa5c008ee8fd66c1cb11b961a0acba75eb5e56ba002578a94e4ebbd4b21071fe7e7faebeeb
+DIST zig-linux-powerpc64le-0.13.0.tar.xz 46574596 BLAKE2B ac21b1d8317177682e7aab53b3b8f4884ae1c6e52b25d30a8acd9c345c97c49d55a9652eec205fc5c2a510c840c947eb1967fdaa36b3a29fc712ca11702c0b77 SHA512 ef9fce45ffaaef9902ee35010dd7ef372b14d5cc82b6ff653e9b5f91a9da15542f5f2410620c239415d051876091d17be4a4d610ab59a89e02e7609b9ef304b2
+DIST zig-linux-powerpc64le-0.13.0.tar.xz.minisig 330 BLAKE2B 164a5857ad9ffa323fcd27fd2d9cd0c4202d8e1fc1bc968341eadb14157271e10f8f4bc544dcbe738720a99767291d9882b956478bee3b08b1fb28ea57c4d529 SHA512 04f480145c676dc8a4ba369594af41a84f3fa2686e194df88d546fe9f989b03f3f1aee291bcad07a0e7e81495b69a5cf182a1454ab21fd043faa1bb2a68edb68
DIST zig-linux-riscv64-0.10.1.tar.xz 42196008 BLAKE2B a7ae37b1d1db1281b09bbd7e35ecaf390bbe28774bd1a4fa76b4468255be19b07fb514326d48576946f3c4eb04dcef34d6ab14f550407aa33803754fabbd848c SHA512 1a1da96924fa4a16a53721017eadc3363859a4f53671e27b11588200d0302d9065de9ba517ad40940aad98725e617cf853f2e83f732a4e23c33deacb99487ad0
DIST zig-linux-riscv64-0.10.1.tar.xz.minisig 326 BLAKE2B ebe0b448aa59fb1f63ad8a5320207bfb139f7b55af8b4d1d3347580093f0adad31957647b40b296414876c2cc013d6c701ebfe3d95c91240322602bef693ebf8 SHA512 7cb59ebbaeb33be1c743509564478b9d2f513e6142c0b80380be4c70f1b203818330fd3a9322f0dc93cb21121dd4e1bd153225804e467cd13f28f4ff73a4bd2f
DIST zig-linux-riscv64-0.11.0.tar.xz 43532324 BLAKE2B f82a7a32b94a084767fa205bf8b66371bfebd4753f647930a5689d727a2211c9cd37f76a855732356a220a64515f8146c5b450207be59854f08132ccf178d23c SHA512 f2ab35c6a7c3452a5dd825d03fa8b5329786a705dbc04260980fefc64e24f4d61cb22c95c10b9952cbc58bdd8741503aa98ad8ed4a8c0a0e856a0e8ba9eb1ca7
DIST zig-linux-riscv64-0.11.0.tar.xz.minisig 326 BLAKE2B 01a6c8fd20e757fa4f238b676fd6d85c94295929bf0e944b90a307f1579a74840cd100dd28fc56b47ffa77a1fde9b73fed5047a96f55521a671fbf4b2bc9a6ae SHA512 e226ba090392aece2d4d7287e49ad389f11c799d29b528015a180764ee5d64f739011bc0ac649641127feffa017a4f7052ca30107d326e7d50cdb279134faad7
DIST zig-linux-riscv64-0.12.0.tar.xz 43917444 BLAKE2B 1d06f543f8cc8b4ec2d2cfb0f11e3096effc7f458ff2b9e380a22c8213f9898ae28fdbb09da23f83d5d01f65b174a3461a08fe1af142289016e7c230a0aa0f06 SHA512 f02aff638a46a9a491aeb386e71b3c0c1e536893b1f61348599df9a903dabadb7c21ddff810160f00ce505944e3941ec82f4222bed355accf24fb3dd929f3ce9
DIST zig-linux-riscv64-0.12.0.tar.xz.minisig 326 BLAKE2B bc8a550010af06d45a8186b0a47370f6b8dcdeb48f503ebe49caef8e2e075c0034e5184fb65c289cdbd17c23a89d9a4a42b25bc7cbde6f709e990a8f9dc521da SHA512 bab7b063452d73d647a65898ffcb65c65171a798333a28cbbac04af12d21303c5a4e185af04df3286c099d7a7194a5d96f57d8bff977796e56cc6a561dcbd40c
+DIST zig-linux-riscv64-0.13.0.tar.xz 45540956 BLAKE2B 879d9cb16a2912fa770f65b82b898ac8705f8de461745bc92adb43a201dcd86f3697d5464742b4cd1ab252ccab14f619fccf87a197b8ec6f209870ffdf560fad SHA512 7c7867aab96c862b0b1faa8db872e45503a36eed2a234e2e52b86bd0d334a232c1bb966e23079d30a57fde2f4b5d5c8fe215181a380b4e277242f4ec5261a5e9
+DIST zig-linux-riscv64-0.13.0.tar.xz.minisig 326 BLAKE2B c93a653ba1634a445b365d6690f0f54e15fac964b85e24a6f3a2e89750adfd389630aea0483cb8e77254d02fad5137ae428110b384ad8120c01cb9dbea87efe2 SHA512 5687e6d398d0115658c00eee47e0047a0da0f4e8002c96cab9844032b5925f46a139239cac8b5e1464a2ff3460219602cec79aebd5e5599972c7dbda0112c044
DIST zig-linux-x86-0.11.0.tar.xz 49824456 BLAKE2B 4a9b4c9551ffe555d1283c9d5aab6649fc5ea5807b9465d18c10cae622beca23df114ab4f503b9d86e14ce26cbf6ac07df8e60521fbc2c3784c9d25eeabf852d SHA512 aaa2adb128ae0cc8e6f43323b78dc60699b80f56b0e1be7524ac7e9ac71513229c4224d2ef7d63fedb74c513c31d5614fe34cbcfb0cc4bb268952427d082594f
DIST zig-linux-x86-0.11.0.tar.xz.minisig 322 BLAKE2B 6d967e2bce7b0c3b891ab91ce6e777f9ded2f13d736215608e5d2f4458eeb5789c628e0cf0ceb516ae9fe6562484fde9dfff73126f460ceac4284717eef484d3 SHA512 a993dce9d4568709c73742530a3892f2e4e5e8a4302b26b88a0480fbcdb50e3333ac109e9b127b4a07fdf16c5e96ce68fda160a8fe6d16dd4d8159145906e7f1
DIST zig-linux-x86-0.12.0.tar.xz 50498940 BLAKE2B 1d86022cb51ef737d8994c5854cc3bc7051907be33bbc2f52b5d395a9fc1c206ee24d62d1e4323d808b3242888d2179e5e2bc6d913de845ebf64468aff04af4a SHA512 2a2c462553a79635f13c6931eb1aae61f3c6ad8190794686711d4a0c33039f3c2e609d96bd7e8e420111d6369dabbe17f5a394d504cf702df5b97e5c15c9943b
DIST zig-linux-x86-0.12.0.tar.xz.minisig 322 BLAKE2B 1cb63844ed396f698419f40cd86eef584f660be00c45f706f3887b1239eefe859572a5325a92620792351707647d2d98d0b5bdaa86200ba2fc78bb0c3c07493a SHA512 b1b8ae28c26ebee7323ab1c6638270e1f138bbf557a26fa931cdc877ef203e77f7f80f8f1d83a4da7f6786be5257f64961adbc8dd957571e074d21e520f04cef
+DIST zig-linux-x86-0.13.0.tar.xz 52062336 BLAKE2B 5f05db0719affaf17e3b6a7c5f87304f884736fbfa006ff1020254f8381d9f268b406d7f8d33e8a94a0533d40202a26b3fbfc6ae11bbe1b71319ba5d9d4d2a89 SHA512 f3db718d2a499a88ab9e497fb3995f3fdb0711842513697c609e3b8f2e835676854964dcfb77bc253158f278a9d21d158e2957e3dbaedce8dd0f948f09eaacdf
+DIST zig-linux-x86-0.13.0.tar.xz.minisig 322 BLAKE2B b95347c6899e064c77d1cbdafb18c705c6eb2c642d46965eb3953ae7f4515eee7d0b058fbbc24ce2f63d8e2ab124196170c850103f73cba2e54da03b24d0fe54 SHA512 e10f1598a68064137c669c7622ac06772b33a5fd17ea4fa65bb4ecd8b8c4f34a2a46ee397215bf82a3202cfffced91cd01fa3a52e0bba84829ff94aac3de1947
DIST zig-linux-x86_64-0.10.1.tar.xz 44085596 BLAKE2B d689a469dbbe790593a561dd4df01c506212754c48be7de03773c7e690cbab197af10d639e80148f3343204ddf9ecfe09a88a62fb6ef63a262bcc2dd79fecd34 SHA512 1cf88a492b1a47800e213b8801477f4ffabf269f960d27d1849c5aec805b5db3768c83d4daa4a738532b1b7367e8c6812e3eea47c205ea732d7a6269a47e16dc
DIST zig-linux-x86_64-0.10.1.tar.xz.minisig 325 BLAKE2B 41cf60ae99405ed55449c35e76a3de761e5de75bf07d8500fe64bf2e45b0dc5f63a929ff6bf47233ea0472f167d9e2305d66c48fbe3da66b6f1223d83ed6fa2b SHA512 309fe97b56673e4f111e2408aa1162194d77cd6976cf7ae491d3a035ef0319b8b634c59977dbc18466182b37d4a12f294d8c258d2d793a3aa3eced448f06e30e
DIST zig-linux-x86_64-0.11.0.tar.xz 44961892 BLAKE2B b0780573dbd372c7a9efec32e6860050b15603a80e00e64757a6c09a02757febc14d3df32ff089f418996fb55bf6fb50774393037f86cbecd49f06c250e5bbe3 SHA512 992e49a28edc9bed44c124a887c4700e707c2eef6a6f3adb551c568103242c3a5304af00d95994a511670c2099f476aa5068eef538f6065afe9bc149c88887b9
DIST zig-linux-x86_64-0.11.0.tar.xz.minisig 325 BLAKE2B 0278fff974f16bb871d75cfec796852cfe8102204467c3f9d55579534d3061b3048b295e6dcf1f69da806b6a7782fea8667995f11ad2e9e92070e136a954d6d3 SHA512 919badc20197be66be0d728a9f94f3adee67f262ddb626bcba5051fc01f521ae65ebc3c29ff96fd0c3fcf2ddf59e5f9c8a7a80a18db4f6e743601389e434faa5
DIST zig-linux-x86_64-0.12.0.tar.xz 45480516 BLAKE2B 0529796b90dc1b8020327855c42d62d5eb58567f3f0fac42aa2b6c7c938c79455c8527d5d2fee33cd78a6815b55f8c61c554332ed1043c3ec87f0e20a89179f4 SHA512 f596bb1e5294edefcdfb31799b426714b18ca39dd3e058acade90590bd20598115ca0fae612f69892e2b66abf288964a442ea988bae69473168162ef72fc13ac
DIST zig-linux-x86_64-0.12.0.tar.xz.minisig 325 BLAKE2B 4531c46c2fbdc43ed48c949e632023b20f5cc226f56529aef944770e8fde8d7a37c2332b44d5d5666c02bf36a0f14f187953a084a3e252057d32b9e2782dd687 SHA512 f61e9310cd75938e889a7c9f7c6bb5cfd1dd9d23c60c1033e48e95219c3dd15962c6686c60283997e3e83870f22a24c12e58381cf4e9fece37a0dcb4f62f9874
+DIST zig-linux-x86_64-0.13.0.tar.xz 47082308 BLAKE2B 587565eaac53f0137bdfb4c58e51ee290a9f582c103957bc1d6183e7f53f6ce459c204fd0197c0e36d3de08a48fc68412a7fc84cf9cd77c8be918a9390d492b9 SHA512 97ca9b91c6c025cc1746036239063df45bab6aafbe72a861acd266019a11d154b4710b310224c860c6515f09436ca0ff796546aa45cba5d1dc7b3b669dfcdf36
+DIST zig-linux-x86_64-0.13.0.tar.xz.minisig 325 BLAKE2B 9161b9b36c38c2b388a0850011bcc22119bb7b0333615914780fe63fb741298524be196db07277771b6f3f053079c7f95b5786dbb9059c4a627a9786752ebe4e SHA512 279cf9abb3b86893a3fd4ac124e954d8f01d6823831591cf2c869538bce4b2cbfcdb67279b9875bfe3a865841ca976b9fb7b4c4c63fe2b56937d3023664e81c6
EBUILD zig-bin-0.10.1-r3.ebuild 3703 BLAKE2B 9adb8b312566ede767b4e9d40c8465c8a3c70df1429aff159267c648646825a19c9a0e1a77014aea83a9c6d73fd3277d5bf5b26a14ac774947a637ee8beefd33 SHA512 590ddc47d59c22abb5a0767c76c54206fa990526581b45ceee1c9f38225588e2bd2ca8e08ab9dd2e8663fbf3262dd42274b2730d8c7707d9c6034a6b40580e74
EBUILD zig-bin-0.11.0-r1.ebuild 3456 BLAKE2B 7b47cd20499ccd99000428e8cf452b615df7a012138d29353a4f7a3daed0da261c213162df7d20068cdd931f23a34f131eec35b5ef51fee7b6286a10a5e31f24 SHA512 59fd45de7cc6a69e46cb90b88cdd9798f8564555596859b628cb313258f381e7cf0f8a65bff2149dbc18906000e78f1b2dfd503b3787303d92441a668681d486
EBUILD zig-bin-0.12.0.ebuild 3613 BLAKE2B e380aca56602db479aa1c58274081c8910516c27efb68b1fae96a1d8a083b4bc4c0939b70fa4cb70055b611e2d9fa296f162ee8840f5319b8d52c1d76140248f SHA512 eed7d024e2b55976368c23f05cad327918c059c02529e77d8367a58c262bbf9f8eea94c16a520f4c1813f942855884e62dc11a36256fd617251423ccaac27314
+EBUILD zig-bin-0.13.0.ebuild 3624 BLAKE2B 62a9a0412e27c729d89c4850b3290c05da923b9d4824321bfd9438bbad2db74595a1ff056bfcc5c13ceece52ec86a2680ad7319191058471422cc04376cdae25 SHA512 1bc35c6f11b3f5017b7f21adcfd282c1e6a1cfc06b8ea43fa14b3de638623aec9f9920e38ecfbbc9d6aca6cbd8812b8afd2ee755ca26d7a8509a550ddfaa236c
MISC metadata.xml 543 BLAKE2B 7c2e6b94030332dcb621c19d85f0cc390fa3df60f51d5cb15f6fb26c174a234eb7fd2b7284260a14bf8abd87f7c56bba846bc346ec425049dd2d63d04930e8f1 SHA512 c900ae0dac56d9aedab82606fafacbdd4da413eea960c2dcb92881dadfe47a177570378de5cc2902eb45a452421f9e4706fda2f236d825b8377ef2b234767c81
diff --git a/dev-lang/zig-bin/zig-bin-0.13.0.ebuild b/dev-lang/zig-bin/zig-bin-0.13.0.ebuild
new file mode 100644
index 000000000000..ba3a7c7bda35
--- /dev/null
+++ b/dev-lang/zig-bin/zig-bin-0.13.0.ebuild
@@ -0,0 +1,89 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_METHOD=minisig
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/minisig-keys/zig-software-foundation.pub
+inherit verify-sig
+
+DESCRIPTION="A robust, optimal, and maintainable programming language"
+HOMEPAGE="https://ziglang.org/"
+SRC_URI="
+ amd64? ( https://ziglang.org/download/${PV}/zig-linux-x86_64-${PV}.tar.xz )
+ arm? ( https://ziglang.org/download/${PV}/zig-linux-armv7a-${PV}.tar.xz )
+ arm64? ( https://ziglang.org/download/${PV}/zig-linux-aarch64-${PV}.tar.xz )
+ ppc64? ( https://ziglang.org/download/${PV}/zig-linux-powerpc64le-${PV}.tar.xz )
+ riscv? ( https://ziglang.org/download/${PV}/zig-linux-riscv64-${PV}.tar.xz )
+ x86? ( https://ziglang.org/download/${PV}/zig-linux-x86-${PV}.tar.xz )
+ verify-sig? (
+ amd64? ( https://ziglang.org/download/${PV}/zig-linux-x86_64-${PV}.tar.xz.minisig )
+ arm? ( https://ziglang.org/download/${PV}/zig-linux-armv7a-${PV}.tar.xz.minisig )
+ arm64? ( https://ziglang.org/download/${PV}/zig-linux-aarch64-${PV}.tar.xz.minisig )
+ ppc64? ( https://ziglang.org/download/${PV}/zig-linux-powerpc64le-${PV}.tar.xz.minisig )
+ riscv? ( https://ziglang.org/download/${PV}/zig-linux-riscv64-${PV}.tar.xz.minisig )
+ x86? ( https://ziglang.org/download/${PV}/zig-linux-x86-${PV}.tar.xz.minisig )
+ )
+"
+
+# project itself: MIT
+# There are bunch of projects under "lib/" folder that are needed for cross-compilation.
+# Files that are unnecessary for cross-compilation are removed by upstream
+# and therefore their licenses (if any special) are not included.
+# lib/libunwind: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxxabi: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxx: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libc/wasi: || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain
+# lib/libc/musl: MIT BSD-2
+# lib/libc/mingw: ZPL public-domain BSD-2 ISC HPND
+# lib/libc/glibc: BSD HPND ISC inner-net LGPL-2.1+
+LICENSE="MIT Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain BSD-2 ZPL ISC HPND BSD inner-net LGPL-2.1+"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+BDEPEND="verify-sig? ( sec-keys/minisig-keys-zig-software-foundation )"
+IDEPEND="app-eselect/eselect-zig"
+
+DOCS=( "README.md" )
+HTML_DOCS=( "doc/langref.html" )
+
+# Zig provides its standard library and some compiler code in source form "/opt/zig-bin-{PV}/lib/".
+# Here we use this feature to fix programs that use standard library.
+# Note: Zig build system is also part of standard library, so we can fix it too.
+# Don't remove this comment so that other contributors won't be misleaded by "-bin" suffix.
+#PATCHES=()
+
+QA_PREBUILT="opt/zig-bin-${PV}/zig"
+
+src_unpack() {
+ verify-sig_src_unpack
+
+ mv "${WORKDIR}/"* "${S}" || die
+}
+
+src_install() {
+ insinto /opt/
+
+ einstalldocs
+ rm README.md || die
+ rm -r ./doc/ || die
+
+ doins -r "${S}"
+ fperms 0755 /opt/zig-bin-${PV}/zig
+ dosym -r /opt/zig-bin-${PV}/zig /usr/bin/zig-bin-${PV}
+}
+
+pkg_postinst() {
+ eselect zig update ifunset || die
+
+ elog "Starting from 0.12.0, Zig no longer installs"
+ elog "precompiled standard library documentation."
+ elog "Instead, you can call \`zig std\` to compile it on-the-fly."
+ elog "It reflects all edits in standard library automatically."
+ elog "See \`zig std --help\` for more information."
+ elog "More details here: https://ziglang.org/download/0.12.0/release-notes.html#Redesign-How-Autodoc-Works"
+}
+
+pkg_postrm() {
+ eselect zig update ifunset || die
+}
diff --git a/dev-lang/zig/Manifest b/dev-lang/zig/Manifest
index 5acc6e9e7119..80308b3db317 100644
--- a/dev-lang/zig/Manifest
+++ b/dev-lang/zig/Manifest
@@ -1,9 +1,14 @@
AUX zig-0.11.0-first-try-getconf.patch 5378 BLAKE2B a5bdb83e4897a0553431b333b0ee3a1fc1ed2da413c177188f6d4b1756c1f06275a548a53bb5885ef912cbf03de07d5302066078281fdd120a3bcffb1375a4d2 SHA512 20252263c52e791829d7fdf8b59f824a4a91252f771fed0b773d7b288cba93cac5ac8c3ebe3134d87b56658192bc6eb9dfde9f85d2490a596e594034c5ac251f
+AUX zig-0.13.0-test-fmt-no-doc.patch 653 BLAKE2B 92f28d86fde0ce3315b8e7b50dcdf03c1ef8a95964701d3c3c05dc8c16b08f9e327d190e9f9631c2a3a287b8b2945025abbf1b5c75d3bdb3adf719d1a6513703 SHA512 310d356f07505fa44e8425ec32f823eab5e20f9a0144c2e2ecff38e19ac1814d4320430373d4f2fa5ed9cf57000a126089c185fd6336daed8cc7dc0cffc0c023
+AUX zig-0.13.0-test-std-kernel-version.patch 1304 BLAKE2B a266cc8d41df8eabc44cc381fe66e5b548d0e10eb0d0098350ddf596602204a77062b8e4632f58250a40781f7a1d5c7e9905c1387ecf7a0c505e330612944f38 SHA512 a62977e3ba675b60866d7cebdc5ff676825e77dac93029d32af403e567b5ae462d49355407f9dbd33843c8b8393d8f05a39de73a8818daf3424df083e0185da6
DIST zig-0.11.0.tar.xz 15275316 BLAKE2B 603e4995a36d214ba71cf05b719a04732c8927995c8207ab8fdd574dca3410cdc5ccc8f6aa9964807afc04a5cbce1a3910a6cde4cf12e585cdf7684833217eb2 SHA512 c19a8ae6d440a16dd5e77941fc77c036d1f284f1784376625e63b65f30b4acad62f9f4217bc818c401f88c2c33f8722f26fc467c3e23c29a89178c4b1882d1c4
DIST zig-0.11.0.tar.xz.minisig 312 BLAKE2B 8df407f07dde36280c945300fd8b803e6e59c026eb7a3eb56e6d2f4fe1047672e17946a3bbe23ccfe9be07b65331e17690e95fd348353be22f7b6d9b73b3f9ca SHA512 565dd1eacb7dd697e6b1ff54517adc1e4775d2523afaeb4f9a3dd404df871b187862211ecbbcf90b42e3a03853677fc1603e7fc8fc5ba7126a054679faa601ca
DIST zig-0.12.0.tar.xz 17099152 BLAKE2B 2a1248302868156c4ddcb154d075af29886a95a4c29de02ff0981e76a85f5d4109dd5c38f95c2c16f5c942bab7d120ae068c1e122ab8ad421c0213b7e996956c SHA512 0c3d9396fea4905245c7e32ce6bd9b4ff140f061cd8a957929e4c84cf105f5bbcbf2e7c030013ac649edb569e909f65d928b3e8a86f35c9076fb62e996feea14
DIST zig-0.12.0.tar.xz.minisig 312 BLAKE2B 4b3d1ae45d3b6d81054a39255c0892d9376d05da9ff1076bcf740310c9650b0154ddc39f19caee9dae293719d58a63764e43b694b83fe7031c87ab434aa377f5 SHA512 6e14c1e1926beeb249cb88fb2247ff401f679b64785c3ec8a924e33c894174deb77b48286469a863761bce0ca57524f904995eacf544919dda387c140e6e829e
+DIST zig-0.13.0.tar.xz 17220728 BLAKE2B f4bbacc2012950c556bebc28fc322fc6424bf20fe118e8362373336b6460e514028978584087f6e7f25ed8b8e6991610edce625676a1dd80c1975c5f9ef48775 SHA512 6f5f31f4ba71a11d8b16c7a5a613e124095e503fa6b02d2b77e5b177674c739287e81d98d96dc261fed24bc836caf196f71c3fcc7a6518387df86ba9e03df4dd
+DIST zig-0.13.0.tar.xz.minisig 312 BLAKE2B 2d061257c9c75f9c36b01cfb08dcd2040538a125b9ea2cae8617ae5496e685b165933ce8981494419522b7e19b51fc69a651ecaa4a8930753acf2e4ae3d6e00f SHA512 21c6139c06cba6c5e23a3305fed0c0f1b9b32d9140bd686c26365ce0279d5f53cd081894eaba29f0c1ed51b2e831edf7bd4ae6a7eaee5018a252e312e9b65507
EBUILD zig-0.11.0-r1.ebuild 5350 BLAKE2B 9b208dc3b9e7a417fdc18759a9e39f019c1fa55a5d63436871cd775d516ae09ca7a65502f47047a2703169ad4f8460bd286065fd7dda22b4107b0ba84291dd44 SHA512 7ce89fb3ba50a161bf389599fe1d8577681e609a7f26cabca7777604f2dfb03316010152fc4d1cb6f4dc0a6fafe535a999ce6053da2565639eec9b2f5915b616
EBUILD zig-0.12.0.ebuild 5287 BLAKE2B aa58866df1bb6ce5ea313ec8e0f146a70702b1dd4c8b15faebb319b431cd456d7cb47c61ad2be4b3fd738268c3a8bdfeb48f37c00566d03e9404c62fe587e139 SHA512 82a4bc91e35bd0d851de036f0313d9ec12a93382f16bcdeb47c8dabad59708cc0cf75b4c9b68b1e3efd949bcb925d7d67b0df0824b3f413d646a55718832ae14
-EBUILD zig-9999.ebuild 6857 BLAKE2B 8c966cceac1891c8be9645c160565b9d0ca309fa706f86be2bc7fd02d73a4796832c5fcb73b0b141cd6772f5c0713155dcae8aa8cb9e47290df0d9a8bc6cdf9d SHA512 b52566d9350772242dcefcf044e204bb60d3026bc1ca60281712be7611a2f15422b813321a775b90f9e9065145773b364d5f6160202fc01723aca575a351eec4
+EBUILD zig-0.13.0.ebuild 5672 BLAKE2B edec1b86e3b61066e38bef1c772fd95409631b3dfc97a4c7a70d220cfdfa40cf191c15031a389a67ea11e18f9fed3af69524fcf07b9de180ea13a34089643204 SHA512 43765943a412b335cb4c7171476ae72eab4becd8e186d23b8dbc248dc792501c1f39ad3e6c7c50c8d7cc32af0184a69dd9ad5ef19b2563d047605111599a0597
+EBUILD zig-9999.ebuild 6947 BLAKE2B eaed3162a63d4c8774be94dfd1733cda1da5ac43ca22900e3cd96a95362628ae449804f0d6273f05ed25ef4e79ef48306748657522a4f8cf4a20ea39e46ba9cc SHA512 95aa3f2f4d5fda5ceaafa7bf119b441703828356c137b1b343381491e27cd57e7d81e518a8a19db37a1ebe4053b85e216ec41364b655484a8045167041ad49f4
MISC metadata.xml 633 BLAKE2B 46cca8909b0b7d65213dee9c7aa7a2c4b5b529734e3bde4f65320074bc38d68420dfaa28041873c7c2c0f1127aca327e32c103c06ab1b5d5ee0e485cb33bb133 SHA512 1d030ca79a3d49b6f573e7995e6f6ef50a6e33ea7e2755a678625645d5b0587f7877a357ea71905034b7029c8c6315b89ebdb5313102b6638b16c467e2ba1864
diff --git a/dev-lang/zig/files/zig-0.13.0-test-fmt-no-doc.patch b/dev-lang/zig/files/zig-0.13.0-test-fmt-no-doc.patch
new file mode 100644
index 000000000000..7bbda741dc6f
--- /dev/null
+++ b/dev-lang/zig/files/zig-0.13.0-test-fmt-no-doc.patch
@@ -0,0 +1,17 @@
+# Docs contain examples of badly formatted code,
+# so they should be excluded for test-fmt to pass.
+# In the upstream, the "doc" directory
+# was removed from fmt_include_paths in
+# https://github.com/ziglang/zig/commit/cb1d1bdf
+
+--- a/build.zig
++++ b/build.zig
+@@ -428,7 +428,7 @@
+ }
+ const optimization_modes = chosen_opt_modes_buf[0..chosen_mode_index];
+
+- const fmt_include_paths = &.{ "doc", "lib", "src", "test", "tools", "build.zig" };
++ const fmt_include_paths = &.{ "lib", "src", "test", "tools", "build.zig" };
+ const fmt_exclude_paths = &.{"test/cases"};
+ const do_fmt = b.addFmt(.{
+ .paths = fmt_include_paths,
diff --git a/dev-lang/zig/files/zig-0.13.0-test-std-kernel-version.patch b/dev-lang/zig/files/zig-0.13.0-test-std-kernel-version.patch
new file mode 100644
index 000000000000..2d2dc22a375a
--- /dev/null
+++ b/dev-lang/zig/files/zig-0.13.0-test-std-kernel-version.patch
@@ -0,0 +1,28 @@
+# https://github.com/ziglang/zig/pull/20001
+# https://github.com/Jiboo/zig/commit/856fe4af
+
+Author: Jean-Baptiste "Jiboo" Lepesme <lepesme.jb@gmail.com>
+Date: Sun, 19 May 2024 15:02:42 +0200
+
+IoUring: fix an issue in tests where InvalidVersion might get thrown by
+skipKernelLessThan, due to some kernel versions not being SemVer compliant.
+
+diff --git a/lib/std/os/linux/IoUring.zig b/lib/std/os/linux/IoUring.zig
+index 3bf3c077fc3b..b2a4da486907 100644
+--- a/lib/std/os/linux/IoUring.zig
++++ b/lib/std/os/linux/IoUring.zig
+@@ -3883,7 +3883,13 @@ inline fn skipKernelLessThan(required: std.SemanticVersion) !void {
+ }
+
+ const release = mem.sliceTo(&uts.release, 0);
+- var current = try std.SemanticVersion.parse(release);
++ // Strips potential extra, as kernel version might not be semver compliant, example "6.8.9-300.fc40.x86_64"
++ const extra_index = std.mem.indexOfAny(u8, release, "-+");
++ const stripped = release[0..(extra_index orelse release.len)];
++ // Make sure the input don't rely on the extra we just stripped
++ try testing.expect(required.pre == null and required.build == null);
++
++ var current = try std.SemanticVersion.parse(stripped);
+ current.pre = null; // don't check pre field
+ if (required.order(current) == .gt) return error.SkipZigTest;
+ }
diff --git a/dev-lang/zig/zig-0.13.0.ebuild b/dev-lang/zig/zig-0.13.0.ebuild
new file mode 100644
index 000000000000..e55bb8ee700e
--- /dev/null
+++ b/dev-lang/zig/zig-0.13.0.ebuild
@@ -0,0 +1,213 @@
+# Copyright 2019-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_MAX_SLOT=18
+inherit edo check-reqs cmake llvm multiprocessing toolchain-funcs
+
+DESCRIPTION="A robust, optimal, and maintainable programming language"
+HOMEPAGE="https://ziglang.org https://github.com/ziglang/zig"
+
+BDEPEND="test? ( !!<sys-apps/sandbox-2.39 )"
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/ziglang/zig.git"
+ inherit git-r3
+else
+ VERIFY_SIG_METHOD=minisig
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/minisig-keys/zig-software-foundation.pub
+ inherit verify-sig
+
+ SRC_URI="
+ https://ziglang.org/download/${PV}/${P}.tar.xz
+ verify-sig? ( https://ziglang.org/download/${PV}/${P}.tar.xz.minisig )
+ "
+ KEYWORDS="~amd64 ~arm ~arm64"
+
+ BDEPEND+=" verify-sig? ( sec-keys/minisig-keys-zig-software-foundation )"
+fi
+
+# project itself: MIT
+# There are bunch of projects under "lib/" folder that are needed for cross-compilation.
+# Files that are unnecessary for cross-compilation are removed by upstream
+# and therefore their licenses (if any special) are not included.
+# lib/libunwind: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxxabi: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libcxx: Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )
+# lib/libc/wasi: || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain
+# lib/libc/musl: MIT BSD-2
+# lib/libc/mingw: ZPL public-domain BSD-2 ISC HPND
+# lib/libc/glibc: BSD HPND ISC inner-net LGPL-2.1+
+LICENSE="MIT Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT ) || ( Apache-2.0-with-LLVM-exceptions Apache-2.0 MIT BSD-2 ) public-domain BSD-2 ZPL ISC HPND BSD inner-net LGPL-2.1+"
+SLOT="$(ver_cut 1-2)"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+BUILD_DIR="${S}/build"
+
+# Zig requires zstd and zlib compression support in LLVM, if using LLVM backend.
+# (non-LLVM backends don't require these)
+# They are not required "on their own", so please don't add them here.
+# You can check https://github.com/ziglang/zig-bootstrap in future, to see
+# options that are passed to LLVM CMake building (excluding "static" ofc).
+DEPEND="
+ sys-devel/clang:${LLVM_MAX_SLOT}=
+ sys-devel/lld:${LLVM_MAX_SLOT}=
+ sys-devel/llvm:${LLVM_MAX_SLOT}=[zstd]
+"
+
+RDEPEND="
+ ${DEPEND}
+"
+
+IDEPEND="app-eselect/eselect-zig"
+
+# see https://github.com/ziglang/zig/issues/3382
+# For now, Zig Build System doesn't support enviromental CFLAGS/LDFLAGS/etc.
+QA_FLAGS_IGNORED="usr/.*/zig/${PV}/bin/zig"
+
+# Since commit https://github.com/ziglang/zig/commit/e7d28344fa3ee81d6ad7ca5ce1f83d50d8502118
+# Zig uses self-hosted compiler only
+CHECKREQS_MEMORY="4G"
+
+PATCHES=(
+ "${FILESDIR}/${P}-test-fmt-no-doc.patch"
+ "${FILESDIR}/${P}-test-std-kernel-version.patch"
+)
+
+llvm_check_deps() {
+ has_version "sys-devel/clang:${LLVM_SLOT}"
+}
+
+ctarget_to_zigtarget() {
+ # Zig's Target Format: arch-os-abi
+ local CTARGET="${CTARGET:-${CHOST}}"
+
+ local ZIG_ARCH
+ case "${CTARGET%%-*}" in
+ i?86) ZIG_ARCH=x86;;
+ sparcv9) ZIG_ARCH=sparc64;;
+ *) ZIG_ARCH="${CTARGET%%-*}";; # Same as in CHOST
+ esac
+
+ local ZIG_OS
+ case "${CTARGET}" in
+ *linux*) ZIG_OS=linux;;
+ *apple*) ZIG_OS=macos;;
+ esac
+
+ local ZIG_ABI
+ case "${CTARGET##*-}" in
+ gnu) ZIG_ABI=gnu;;
+ solaris*) ZIG_OS=solaris ZIG_ABI=none;;
+ darwin*) ZIG_ABI=none;;
+ *) ZIG_ABI="${CTARGET##*-}";; # Same as in CHOST
+ esac
+
+ echo "${ZIG_ARCH}-${ZIG_OS}-${ZIG_ABI}"
+}
+
+get_zig_mcpu() {
+ local ZIG_DEFAULT_MCPU=native
+ tc-is-cross-compiler && ZIG_DEFAULT_MCPU=baseline
+ echo "${ZIG_MCPU:-${ZIG_DEFAULT_MCPU}}"
+}
+
+get_zig_target() {
+ local ZIG_DEFAULT_TARGET=native
+ tc-is-cross-compiler && ZIG_DEFAULT_TARGET="$(ctarget_to_zigtarget)"
+ echo "${ZIG_TARGET:-${ZIG_DEFAULT_TARGET}}"
+}
+
+pkg_setup() {
+ llvm_pkg_setup
+ check-reqs_pkg_setup
+}
+
+src_configure() {
+ # Useful for debugging and a little bit more deterministic.
+ export ZIG_LOCAL_CACHE_DIR="${T}/zig-local-cache"
+ export ZIG_GLOBAL_CACHE_DIR="${T}/zig-global-cache"
+
+ local mycmakeargs=(
+ -DZIG_SHARED_LLVM=ON
+ -DZIG_TARGET_TRIPLE="$(get_zig_target)"
+ -DZIG_TARGET_MCPU="$(get_zig_mcpu)"
+ -DZIG_USE_LLVM_CONFIG=ON
+ -DCMAKE_PREFIX_PATH="$(get_llvm_prefix ${LLVM_MAX_SLOT})"
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/$(get_libdir)/zig/${PV}"
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+
+ "${BUILD_DIR}/stage3/bin/zig" env || die "Zig compilation failed"
+
+ if use doc; then
+ cd "${BUILD_DIR}" || die
+ edo ./stage3/bin/zig build std-docs --prefix "${S}/docgen/"
+ edo ./stage3/bin/zig build langref --prefix "${S}/docgen/"
+ fi
+}
+
+src_test() {
+ cd "${BUILD_DIR}" || die
+ local ZIG_TEST_ARGS=(
+ -j$(makeopts_jobs)
+ --color on
+ --summary all
+ --verbose
+ -Dstatic-llvm=false
+ -Denable-llvm
+ -Dskip-non-native
+ -Doptimize=Debug
+ -Dtarget="$(get_zig_target)"
+ -Dcpu="$(get_zig_mcpu)"
+ )
+ local ZIG_TEST_STEPS=(
+ test-asm-link
+ test-behavior
+ test-c-abi
+ test-c-import
+ test-cases
+ test-cli
+ test-compare-output
+ test-compiler-rt
+ test-fmt
+ test-link
+ test-run-translated-c
+ test-stack-traces
+ test-standalone
+ test-std
+ test-translate-c
+ test-universal-libc
+ )
+
+ local step
+ for step in "${ZIG_TEST_STEPS[@]}" ; do
+ # to keep the verbosity, don't use edob here
+ ./stage3/bin/zig build ${step} ${ZIG_TEST_ARGS[@]} || die
+ done
+}
+
+src_install() {
+ use doc && local HTML_DOCS=( "docgen/doc/langref.html" "docgen/doc/std" )
+ cmake_src_install
+
+ cd "${ED}/usr/$(get_libdir)/zig/${PV}/" || die
+ mv lib/zig/ lib2/ || die
+ rm -rf lib/ || die
+ mv lib2/ lib/ || die
+ dosym -r "/usr/$(get_libdir)/zig/${PV}/bin/zig" "/usr/bin/zig-${PV}"
+}
+
+pkg_postinst() {
+ eselect zig update ifunset || die
+}
+
+pkg_postrm() {
+ eselect zig update ifunset || die
+}
diff --git a/dev-lang/zig/zig-9999.ebuild b/dev-lang/zig/zig-9999.ebuild
index d278d521c061..f7997e5184e6 100644
--- a/dev-lang/zig/zig-9999.ebuild
+++ b/dev-lang/zig/zig-9999.ebuild
@@ -178,8 +178,8 @@ src_compile() {
if use doc; then
cd "${BUILD_DIR}" || die
- edo ./stage3/bin/zig build std-docs --prefix "${S}/docgen/"
- edo ./stage3/bin/zig build langref --prefix "${S}/docgen/"
+ edo ./stage3/bin/zig build std-docs --zig-lib-dir "${BUILD_DIR}/stage3/lib/zig/" --prefix "${S}/docgen/"
+ edo ./stage3/bin/zig build langref --zig-lib-dir "${BUILD_DIR}/stage3/lib/zig/" --prefix "${S}/docgen/"
fi
}