summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/algol68g/Manifest1
-rw-r--r--dev-lang/algol68g/algol68g-3.5.2.ebuild41
-rw-r--r--dev-lang/boogie/Manifest2
-rw-r--r--dev-lang/boogie/boogie-3.1.4.ebuild4
-rw-r--r--dev-lang/boogie/boogie-3.1.5.ebuild4
-rw-r--r--dev-lang/boogie/boogie-3.1.6.ebuild (renamed from dev-lang/boogie/boogie-3.1.3.ebuild)8
-rw-r--r--dev-lang/clojure/Manifest10
-rw-r--r--dev-lang/clojure/clojure-1.11.2-r1.ebuild2
-rw-r--r--dev-lang/clojure/clojure-1.11.3.ebuild (renamed from dev-lang/clojure/clojure-1.11.1-r1.ebuild)71
-rw-r--r--dev-lang/crystal/Manifest4
-rw-r--r--dev-lang/crystal/crystal-1.12.1.ebuild2
-rw-r--r--dev-lang/crystal/crystal-1.12.2.ebuild (renamed from dev-lang/crystal/crystal-1.11.2.ebuild)2
-rw-r--r--dev-lang/cxprolog/cxprolog-0.98.2.ebuild144
-rw-r--r--dev-lang/dafny/Manifest20
-rw-r--r--dev-lang/dafny/dafny-4.4.0-r1.ebuild592
-rw-r--r--dev-lang/dafny/dafny-4.5.0.ebuild624
-rw-r--r--dev-lang/dafny/dafny-4.6.0.ebuild7
-rw-r--r--dev-lang/dafny/files/dafny-4.4.0-lit-config.patch14
-rw-r--r--dev-lang/dafny/files/dafny-4.4.0-lit-system-boogie.patch11
-rw-r--r--dev-lang/dzaima-bqn/dzaima-bqn-0.2.1.ebuild4
-rw-r--r--dev-lang/dzaima-bqn/dzaima-bqn-9999.ebuild4
-rw-r--r--dev-lang/eisl/Manifest5
-rw-r--r--dev-lang/eisl/eisl-3.90.ebuild (renamed from dev-lang/eisl/eisl-3.70.ebuild)0
-rw-r--r--dev-lang/eisl/eisl-3.95.ebuild (renamed from dev-lang/eisl/eisl-3.72.ebuild)0
-rw-r--r--dev-lang/eisl/eisl-4.00.ebuild52
-rw-r--r--dev-lang/elixir/Manifest3
-rw-r--r--dev-lang/elixir/elixir-1.13.4-r1.ebuild40
-rw-r--r--dev-lang/elixir/elixir-1.14.3-r1.ebuild40
-rw-r--r--dev-lang/elixir/elixir-1.14.5-r1.ebuild40
-rw-r--r--dev-lang/elixir/elixir-1.15.6.ebuild39
-rw-r--r--dev-lang/elixir/elixir-1.16.2.ebuild2
-rw-r--r--dev-lang/elpi/Manifest2
-rw-r--r--dev-lang/elpi/elpi-1.18.2.ebuild (renamed from dev-lang/elpi/elpi-1.17.0.ebuild)2
-rw-r--r--dev-lang/erlang/Manifest13
-rw-r--r--dev-lang/erlang/erlang-25.3.ebuild182
-rw-r--r--dev-lang/erlang/erlang-26.0.ebuild182
-rw-r--r--dev-lang/erlang/erlang-26.1.2.ebuild182
-rw-r--r--dev-lang/erlang/erlang-27.0.ebuild (renamed from dev-lang/erlang/erlang-26.2.ebuild)25
-rw-r--r--dev-lang/erlang/files/erlang-27.0-dont-ignore-LDFLAGS.patch23
-rw-r--r--dev-lang/execline/Manifest2
-rw-r--r--dev-lang/execline/execline-2.9.5.1.ebuild2
-rw-r--r--dev-lang/execline/execline-2.9.6.0.ebuild (renamed from dev-lang/execline/execline-2.9.4.0.ebuild)2
-rw-r--r--dev-lang/fennel/Manifest1
-rw-r--r--dev-lang/fennel/fennel-1.4.0-r2.ebuild56
-rw-r--r--dev-lang/fennel/fennel-1.4.2-r1.ebuild2
-rw-r--r--dev-lang/fuzion/Manifest1
-rw-r--r--dev-lang/fuzion/fuzion-0.088.ebuild80
-rw-r--r--dev-lang/gnat-gpl/Manifest2
-rw-r--r--dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild2
-rw-r--r--dev-lang/go/Manifest9
-rw-r--r--dev-lang/go/go-1.21.11.ebuild (renamed from dev-lang/go/go-1.21.5.ebuild)0
-rw-r--r--dev-lang/go/go-1.21.6.ebuild210
-rw-r--r--dev-lang/go/go-1.21.7.ebuild210
-rw-r--r--dev-lang/go/go-1.21.8.ebuild210
-rw-r--r--dev-lang/go/go-1.21.9.ebuild210
-rw-r--r--dev-lang/go/go-1.22.2.ebuild213
-rw-r--r--dev-lang/go/go-1.22.4.ebuild (renamed from dev-lang/go/go-1.22.1.ebuild)0
-rw-r--r--dev-lang/gprolog/Manifest1
-rw-r--r--dev-lang/gprolog/files/gprolog-1.4.5-check-boot.patch11
-rw-r--r--dev-lang/gprolog/files/gprolog-1.4.5-ldflags.patch40
-rw-r--r--dev-lang/gprolog/files/gprolog-1.4.5-links.patch15
-rw-r--r--dev-lang/gprolog/files/gprolog-1.4.5-llvm-as.patch38
-rw-r--r--dev-lang/gprolog/files/gprolog-1.4.5-nodocs.patch29
-rw-r--r--dev-lang/gprolog/files/gprolog-1.4.5-txt-file.patch10
-rw-r--r--dev-lang/gprolog/gprolog-1.4.5.ebuild85
-rw-r--r--dev-lang/gprolog/gprolog-1.5.0-r1.ebuild2
-rw-r--r--dev-lang/ispc/Manifest1
-rw-r--r--dev-lang/ispc/ispc-1.24.0.ebuild101
-rw-r--r--dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild8
-rw-r--r--dev-lang/jint/Manifest42
-rw-r--r--dev-lang/jint/jint-3.0.0_beta2051.ebuild6
-rw-r--r--dev-lang/jint/jint-3.1.2.ebuild172
-rw-r--r--dev-lang/jsonnet/jsonnet-0.20.0-r1.ebuild2
-rw-r--r--dev-lang/jwasm/files/makefile-dep-fix.patch22
-rw-r--r--dev-lang/jwasm/jwasm-2.13.ebuild7
-rw-r--r--dev-lang/kotlin-bin/Manifest3
-rw-r--r--dev-lang/kotlin-bin/kotlin-bin-1.9.24.ebuild (renamed from dev-lang/kotlin-bin/kotlin-bin-1.9.23.ebuild)0
-rw-r--r--dev-lang/kotlin-bin/kotlin-bin-2.0.0.ebuild59
-rw-r--r--dev-lang/lazarus/Manifest3
-rw-r--r--dev-lang/lazarus/lazarus-3.0-r2.ebuild117
-rw-r--r--dev-lang/lazarus/lazarus-3.4-r1.ebuild119
-rw-r--r--dev-lang/logtalk/Manifest1
-rw-r--r--dev-lang/logtalk/files/logtalk-3.36.0-portage.patch19
-rw-r--r--dev-lang/logtalk/logtalk-3.36.0.ebuild128
-rw-r--r--dev-lang/logtalk/logtalk-3.47.0-r1.ebuild2
-rw-r--r--dev-lang/lua/metadata.xml4
-rw-r--r--dev-lang/luajit/Manifest1
-rw-r--r--dev-lang/luajit/luajit-2.1.1716656478.ebuild62
-rw-r--r--dev-lang/luau/Manifest1
-rw-r--r--dev-lang/luau/luau-0.613.ebuild38
-rw-r--r--dev-lang/luau/luau-0.618.ebuild2
-rw-r--r--dev-lang/mercury-extras/Manifest6
-rw-r--r--dev-lang/mercury-extras/mercury-extras-20.06.1.ebuild307
-rw-r--r--dev-lang/mercury-extras/mercury-extras-20.06.ebuild307
-rw-r--r--dev-lang/mercury-extras/mercury-extras-22.01.ebuild298
-rw-r--r--dev-lang/mercury/Manifest6
-rw-r--r--dev-lang/mercury/mercury-20.06-r1.ebuild207
-rw-r--r--dev-lang/mercury/mercury-20.06.1.ebuild207
-rw-r--r--dev-lang/mercury/mercury-22.01.ebuild201
-rw-r--r--dev-lang/mercury/metadata.xml1
-rw-r--r--dev-lang/moarvm/Manifest2
-rw-r--r--dev-lang/moarvm/moarvm-2024.04.ebuild (renamed from dev-lang/moarvm/moarvm-2023.12.ebuild)0
-rw-r--r--dev-lang/mond/Manifest1
-rw-r--r--dev-lang/mond/mond-0.10.2.ebuild106
-rw-r--r--dev-lang/nim/nim-2.0.4.ebuild2
-rw-r--r--dev-lang/nqp/Manifest2
-rw-r--r--dev-lang/nqp/nqp-2024.04.ebuild (renamed from dev-lang/nqp/nqp-2023.12.ebuild)0
-rw-r--r--dev-lang/ocaml/Manifest2
-rw-r--r--dev-lang/ocaml/ocaml-4.11.2-r2.ebuild4
-rw-r--r--dev-lang/ocaml/ocaml-4.12.1.ebuild4
-rw-r--r--dev-lang/ocaml/ocaml-4.13.1.ebuild4
-rw-r--r--dev-lang/ocaml/ocaml-4.14.1.ebuild4
-rw-r--r--dev-lang/ocaml/ocaml-4.14.2.ebuild4
-rw-r--r--dev-lang/ocaml/ocaml-5.2.0.ebuild (renamed from dev-lang/ocaml/ocaml-4.14.0-r1.ebuild)19
-rw-r--r--dev-lang/oorexx/oorexx-5.0.0.ebuild6
-rw-r--r--dev-lang/perl/Manifest2
-rw-r--r--dev-lang/perl/metadata.xml4
-rw-r--r--dev-lang/perl/perl-5.38.2-r3.ebuild (renamed from dev-lang/perl/perl-5.38.2-r2.ebuild)76
-rw-r--r--dev-lang/perl/perl-5.38.2-r5.ebuild865
-rw-r--r--dev-lang/perl/perl-5.38.2-r6.ebuild865
-rw-r--r--dev-lang/perl/perl-5.40.0.ebuild861
-rw-r--r--dev-lang/php/Manifest4
-rw-r--r--dev-lang/php/php-8.1.28.ebuild2
-rw-r--r--dev-lang/php/php-8.1.29.ebuild782
-rw-r--r--dev-lang/php/php-8.2.18.ebuild6
-rw-r--r--dev-lang/php/php-8.2.20.ebuild869
-rw-r--r--dev-lang/php/php-8.3.8.ebuild (renamed from dev-lang/php/php-8.3.6.ebuild)52
-rw-r--r--dev-lang/python/Manifest24
-rw-r--r--dev-lang/python/metadata.xml4
-rw-r--r--dev-lang/python/python-3.10.14_p1-r1.ebuild542
-rw-r--r--dev-lang/python/python-3.11.9-r1.ebuild (renamed from dev-lang/python/python-3.11.8_p1.ebuild)36
-rw-r--r--dev-lang/python/python-3.12.3-r1.ebuild (renamed from dev-lang/python/python-3.12.2_p1.ebuild)36
-rw-r--r--dev-lang/python/python-3.12.3.ebuild2
-rw-r--r--dev-lang/python/python-3.12.4.ebuild574
-rw-r--r--dev-lang/python/python-3.12.4_p1.ebuild574
-rw-r--r--dev-lang/python/python-3.13.0_beta1_p1.ebuild (renamed from dev-lang/python/python-3.13.0_alpha6.ebuild)22
-rw-r--r--dev-lang/python/python-3.13.0_beta1_p2.ebuild643
-rw-r--r--dev-lang/python/python-3.13.0_beta1_p3.ebuild684
-rw-r--r--dev-lang/python/python-3.13.0_beta2.ebuild684
-rw-r--r--dev-lang/python/python-3.13.0_beta2_p1.ebuild684
-rw-r--r--dev-lang/python/python-3.8.19_p2.ebuild432
-rw-r--r--dev-lang/python/python-3.9.19_p3.ebuild492
-rw-r--r--dev-lang/rakudo/Manifest2
-rw-r--r--dev-lang/rakudo/rakudo-2024.04.ebuild (renamed from dev-lang/rakudo/rakudo-2023.12.ebuild)0
-rw-r--r--dev-lang/regina-rexx/Manifest1
-rw-r--r--dev-lang/regina-rexx/files/regina-rexx-3.9.5-makefile.patch309
-rw-r--r--dev-lang/regina-rexx/files/rxstack-r114
-rw-r--r--dev-lang/regina-rexx/metadata.xml18
-rw-r--r--dev-lang/regina-rexx/regina-rexx-3.9.5.ebuild50
-rw-r--r--dev-lang/ruby/Manifest2
-rw-r--r--dev-lang/ruby/ruby-3.1.6.ebuild284
-rw-r--r--dev-lang/ruby/ruby-3.2.3.ebuild2
-rw-r--r--dev-lang/ruby/ruby-3.3.2.ebuild293
-rw-r--r--dev-lang/rust-bin/Manifest35
-rw-r--r--dev-lang/rust-bin/metadata.xml4
-rw-r--r--dev-lang/rust-bin/rust-bin-1.77.1.ebuild2
-rw-r--r--dev-lang/rust-bin/rust-bin-1.78.0.ebuild248
-rw-r--r--dev-lang/rust/Manifest30
-rw-r--r--dev-lang/rust/files/1.78.0-ignore-broken-and-non-applicable-tests.patch30
-rw-r--r--dev-lang/rust/files/1.78.0-musl-dynamic-linking.patch19
-rw-r--r--dev-lang/rust/metadata.xml4
-rw-r--r--dev-lang/rust/rust-1.77.1.ebuild2
-rw-r--r--dev-lang/rust/rust-1.78.0.ebuild788
-rw-r--r--dev-lang/scala/scala-2.12.10-r2.ebuild (renamed from dev-lang/scala/scala-2.12.10-r1.ebuild)4
-rw-r--r--dev-lang/smlnj/Manifest52
-rw-r--r--dev-lang/smlnj/files/smlnj-110.99.3-shuffle.patch10
-rw-r--r--dev-lang/smlnj/files/smlnj-110.99.4-shuffle.patch36
-rw-r--r--dev-lang/smlnj/smlnj-110.99.4.ebuild4
-rw-r--r--dev-lang/smlnj/smlnj-110.99.5.ebuild (renamed from dev-lang/smlnj/smlnj-110.99.3.ebuild)16
-rw-r--r--dev-lang/spidermonkey/Manifest4
-rw-r--r--dev-lang/spidermonkey/spidermonkey-115.10.0.ebuild2
-rw-r--r--dev-lang/spidermonkey/spidermonkey-115.11.0.ebuild (renamed from dev-lang/spidermonkey/spidermonkey-115.3.1.ebuild)45
-rw-r--r--dev-lang/spidermonkey/spidermonkey-115.12.0.ebuild503
-rw-r--r--dev-lang/starlark-rust/starlark-rust-0.8.0.ebuild335
-rw-r--r--dev-lang/swig/swig-4.2.1.ebuild2
-rw-r--r--dev-lang/typescript/Manifest4
-rw-r--r--dev-lang/typescript/typescript-5.3.3.ebuild39
-rw-r--r--dev-lang/typescript/typescript-5.4.2.ebuild39
-rw-r--r--dev-lang/typescript/typescript-5.4.3.ebuild39
-rw-r--r--dev-lang/typescript/typescript-5.4.4.ebuild39
-rw-r--r--dev-lang/typescript/typescript-5.4.5.ebuild2
-rw-r--r--dev-lang/uasm/files/makefile-dep-fix.patch22
-rw-r--r--dev-lang/uasm/uasm-2.56.2.ebuild1
-rw-r--r--dev-lang/vala/Manifest2
-rw-r--r--dev-lang/vala/vala-0.56.14.ebuild48
-rw-r--r--dev-lang/vala/vala-0.56.15.ebuild48
-rw-r--r--dev-lang/xsb/files/0001-modern-C-fix-for-implicit-int.patch25
-rw-r--r--dev-lang/xsb/xsb-4.0.0-r1.ebuild (renamed from dev-lang/xsb/xsb-4.0.0.ebuild)19
-rw-r--r--dev-lang/zig-bin/Manifest24
-rw-r--r--dev-lang/zig-bin/zig-bin-0.10.1-r3.ebuild20
-rw-r--r--dev-lang/zig-bin/zig-bin-0.11.0-r1.ebuild22
-rw-r--r--dev-lang/zig-bin/zig-bin-0.12.0.ebuild90
-rw-r--r--dev-lang/zig/Manifest3
-rw-r--r--dev-lang/zig/zig-0.11.0-r1.ebuild13
-rw-r--r--dev-lang/zig/zig-0.12.0.ebuild182
-rw-r--r--dev-lang/zig/zig-9999.ebuild15
196 files changed, 14246 insertions, 5887 deletions
diff --git a/dev-lang/algol68g/Manifest b/dev-lang/algol68g/Manifest
index 7fb9b7c3a4cf..4c03fc85c857 100644
--- a/dev-lang/algol68g/Manifest
+++ b/dev-lang/algol68g/Manifest
@@ -1 +1,2 @@
DIST algol68g-3.5.1.tar.gz 661670 BLAKE2B ec0aa47f367af621f3cf8ebad81bd501bac31238b4a918943917fec4d9f66cf57f98f5bd4c4c02d315a8f1ac2fd789aafb6e331289fac417abf9301a2a5d339d SHA512 764038c7db567d5fc130d4c324b74f43d7dbcfd89efb7b12b1a6983314a7e13f17e105fa783fb3397fff3773b69699ca3f5fd3be873229db9bf91582f7bf52f4
+DIST algol68g-3.5.2.tar.gz 664147 BLAKE2B 894d19a01a68613b2d4f3f5aeb10e1a72a87b50ee044c7791880f2e1ac7ef067377e7790009d339941fea3f6c93a13b3d85aac907789fecb5b9044e493d7dcfe SHA512 3bd46d1034cd771086981bc2e2004cca199cf13e8840fb867d66fe8ac63af06bbc8976decd46dea1bec9b64b38bbdb878582c5244fcd893695da19a5f84d924f
diff --git a/dev-lang/algol68g/algol68g-3.5.2.ebuild b/dev-lang/algol68g/algol68g-3.5.2.ebuild
new file mode 100644
index 000000000000..6689c5616025
--- /dev/null
+++ b/dev-lang/algol68g/algol68g-3.5.2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Algol 68 Genie compiler-interpreter"
+HOMEPAGE="https://jmvdveer.home.xs4all.nl/en.algol-68-genie.html"
+SRC_URI="https://jmvdveer.home.xs4all.nl/${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+curl +gsl +mpfr +ncurses plotutils postgres +readline"
+
+RDEPEND="
+ curl? ( net-misc/curl )
+ gsl? ( sci-libs/gsl:= )
+ mpfr? ( dev-libs/mpfr:= )
+ plotutils? ( media-libs/plotutils )
+ postgres? ( dev-db/postgresql:* )
+ readline? ( sys-libs/readline:= )
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+PATCHES=( "${FILESDIR}/${PN}-3.3.21-configure-implicit.patch" )
+
+src_configure() {
+ local -a myconf=(
+ $(use_enable curl)
+ $(use_enable gsl)
+ $(use_enable mpfr)
+ $(use_enable ncurses curses)
+ $(use_enable plotutils)
+ $(use_enable postgres postgresql)
+ $(use_enable readline)
+ $(use_with ncurses)
+ )
+ econf "${myconf[@]}"
+}
diff --git a/dev-lang/boogie/Manifest b/dev-lang/boogie/Manifest
index 19e264916358..3214fc39b191 100644
--- a/dev-lang/boogie/Manifest
+++ b/dev-lang/boogie/Manifest
@@ -1,6 +1,6 @@
-DIST boogie-3.1.3.tar.gz 2038898 BLAKE2B 4a5604d6b00ca81393ccf37c542bfed3f3983453b1fd390fc466e37c7133030f1b453c61f2907bb399fe2891e134dcf3dc86b1ac562cd4ed34b634625320497d SHA512 2ae4bd267ea4636c4f52cb7aae0907db9b8411d6f19d35a9338237ef7820f6cf03ebe9939497fe34a646e8b1f69da0882a5765bcc1224bb8cdfd2a7f999d8862
DIST boogie-3.1.4.tar.gz 2050762 BLAKE2B 01a8faa38a3a7d134d8f5d54f2b8e0a6a2a07b11d46469c8dbd65d80987e3292cd61937437321e6f79ab55895f6dbe5cfdf410d311f314ab7ed69f684a48d98b SHA512 76a9a4cb2ae2ac49db7fdbca049f797c1272b19e1a783541a74cd310b085c8bab5360fee4293d4f1478371ae26368751e2f658965023a4d7a7dc6b9d25489edb
DIST boogie-3.1.5.tar.gz 2051316 BLAKE2B 903c6bc2d9cfbf3cde7aa301f229b87ac5ac8f855f70efaf399a9d7f0a5b7d047417a47f162afccd40e33fcc870f74b5f0c03a0f032686f0f9732f078d756870 SHA512 e248139a4ae06e9f5ad02d1bdc1bec5dec32d6c9a3895438a7da9b220b191784f9a92ec678d142070bf8d250e901bbd8ac55706e822972654966bc15743bd0bd
+DIST boogie-3.1.6.tar.gz 2053303 BLAKE2B bc4c9ee72e605b1c78140f6120d0fe8ffcad663638829b28e8b5c7238d7265c156ad8994f4bb79989aea030b571b261f71b09050d80ab5a94625e47adc29a74d SHA512 31c4ca25bde610354f5ce4aaeab8f885c89f443a2d96671d55b4b38dc5dc30b6060f89100dba68a2bc962d6169618e1ab9f6958b1f12730687fa1e5c47267663
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
diff --git a/dev-lang/boogie/boogie-3.1.4.ebuild b/dev-lang/boogie/boogie-3.1.4.ebuild
index d7ab20c085a9..ea97294fb5f6 100644
--- a/dev-lang/boogie/boogie-3.1.4.ebuild
+++ b/dev-lang/boogie/boogie-3.1.4.ebuild
@@ -210,7 +210,7 @@ else
SRC_URI="https://github.com/boogie-org/${PN}/archive/v${PV}.tar.gz
-> ${P}.tar.gz"
- KEYWORDS="~amd64"
+ KEYWORDS="amd64"
fi
SRC_URI+=" ${NUGET_URIS} "
@@ -292,7 +292,7 @@ src_test() {
--verbose
--workers="$(makeopts_jobs)"
)
- edob lit "${lit_opts[@]}" "${S}/Test"
+ edo lit "${lit_opts[@]}" "${S}/Test"
}
src_install() {
diff --git a/dev-lang/boogie/boogie-3.1.5.ebuild b/dev-lang/boogie/boogie-3.1.5.ebuild
index d7ab20c085a9..ea97294fb5f6 100644
--- a/dev-lang/boogie/boogie-3.1.5.ebuild
+++ b/dev-lang/boogie/boogie-3.1.5.ebuild
@@ -210,7 +210,7 @@ else
SRC_URI="https://github.com/boogie-org/${PN}/archive/v${PV}.tar.gz
-> ${P}.tar.gz"
- KEYWORDS="~amd64"
+ KEYWORDS="amd64"
fi
SRC_URI+=" ${NUGET_URIS} "
@@ -292,7 +292,7 @@ src_test() {
--verbose
--workers="$(makeopts_jobs)"
)
- edob lit "${lit_opts[@]}" "${S}/Test"
+ edo lit "${lit_opts[@]}" "${S}/Test"
}
src_install() {
diff --git a/dev-lang/boogie/boogie-3.1.3.ebuild b/dev-lang/boogie/boogie-3.1.6.ebuild
index a8464716070a..9a7d7f9626f1 100644
--- a/dev-lang/boogie/boogie-3.1.3.ebuild
+++ b/dev-lang/boogie/boogie-3.1.6.ebuild
@@ -210,7 +210,7 @@ else
SRC_URI="https://github.com/boogie-org/${PN}/archive/v${PV}.tar.gz
-> ${P}.tar.gz"
- KEYWORDS="amd64"
+ KEYWORDS="~amd64"
fi
SRC_URI+=" ${NUGET_URIS} "
@@ -260,6 +260,7 @@ src_prepare() {
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
@@ -288,11 +289,12 @@ src_test() {
local -a lit_opts=(
--order=lexical
--time-tests
- --timeout 1800 # Let one test take no mere than half a hour.
+ --timeout 1800 # Let one test take no more than half a hour.
--verbose
--workers="$(makeopts_jobs)"
+ --workers=1
)
- edob lit "${lit_opts[@]}" "${S}/Test"
+ edo lit "${lit_opts[@]}" "${S}/Test"
}
src_install() {
diff --git a/dev-lang/clojure/Manifest b/dev-lang/clojure/Manifest
index 4e4b40e20ed2..f39a3023ee20 100644
--- a/dev-lang/clojure/Manifest
+++ b/dev-lang/clojure/Manifest
@@ -1,17 +1,11 @@
-DIST clojure-1.11.1.tar.gz 705082 BLAKE2B 5f22fcb04cbb2aad8b90ceb93f620cef1a8704768663023db2a817efbe294dc232d60bd077fc748daec512f80f8425c0df5a417a40b279e3d65165948f615bb1 SHA512 b4e05f61e5a68b5dc8215b2158a32af891ee1e855240bc753bd1d5d28b6864f2e1c5ef45ad53a7f5fa5565fc19ff957939b7130ad44b432ad8ea95e459aa26e1
DIST clojure-1.11.2.tar.gz 705898 BLAKE2B 8c7219dc607d968504e17421c01060b803750f9304bf211c7c8cf883c073b14938fe042ca9a05cd9506cda8b8a9442a405913dc754cd5bedc2ed95bec9978691 SHA512 8de77a6b434a147b7252bc9a36bde5552d063ffa8702153483c690caa231265314aa871c5409c92037ade7c5e6d1df1bf32244929cb4886cdd91e4391f249184
-DIST core.specs.alpha-0.2.62.tar.gz 11799 BLAKE2B 2e28043cdd9f3b71a9eabd30ec39ba88ccdb8f9af6b442bcf58d1da6fef73132e9f591865302d9cff43dd6aeca0200768e63993000ffc3c840b5c07bb823f20e SHA512 0707ef3f669d2eaf1595d1e333a9b1e62d97fcbe4cf7ed70c968a4ade3da7e06c281e8e075f953887346288d190bb1dfa7866d9a8d623662e6f844528eb1a45c
+DIST clojure-1.11.3.tar.gz 706113 BLAKE2B eed50639d251406d96e528a14d055ddc59cd7fac18a415d4947e46d93d11e67ec263f697dbc14a9e5482f134f546a55413529ed58a7b064169cb06f45bd5e5d5 SHA512 33d59a5c1b94902198e669ea7c4161c515d6463dd6e5ce7251adf8f5a9da493a5446d91f218e8e90ec8bf0866119f9c28d64361c2ed57265eea62baf39ca1302
DIST core.specs.alpha-0.3.70.tar.gz 12176 BLAKE2B 168b055ee1a518e750791cd010872b6d2f3a655c474f7feab93b0e06bca7cbaf9e029b9c042c2e218129213a5c787b3409c2ddc17f902907c1d38a4d9c22cdfd SHA512 223a8d1a2f1fbb93d9144e2a50fa7d9e5fa79657fcd0c96ece7170c33f23620aeb7645ace84edd3512fe87b88bb3e9422666c66343989bb07a4cd5fadc1216d7
-DIST data.generators-1.0.0.tar.gz 9940 BLAKE2B 981ac8f91ae05aecc7a9e7c85cbd59c5a50785bdc969309465374393234fd0a72d9803931acebbbbf369e812de33f0ac0c2ddc3009f8bb4237debd9e665301f3 SHA512 a8d5881c401b409e7e4192243e62288855b435d5979fd7950fcd3ee5291d16ce4aad913ea1dadf26db8a1297a21cab19e1e1e5d31e26db57a6fa4ed17bcefe0b
DIST data.generators-1.1.0.tar.gz 11781 BLAKE2B cccbacb789f37a705d64c9467dcb0f737110176c92f3af89165688676c225179bdf17ca29126ab3578a54ace9137c991d2f1bf4b3024c7c6aaf9fe2f63f37fb8 SHA512 7b51fd44c9d58de639d036dbce343dd81a271e28db096c64e910ca6c87869fa6ccac9ba87d7313b53304017a335ee45bbd5ab9794bc166ec46b5a8d86b5aa82e
-DIST java.classpath-1.0.0.tar.gz 8955 BLAKE2B 1ab2d077d9f852ee72a1576b71d6aa8764f2fdb04eeed3f7710a7deb65942df8c0b1caff5847e329c191316c7218877b8b136b9dcefdb8f450f383beed5805ba SHA512 552f31f1f27fd80f262bbec4777626951bccef6689f4586fc327c3490669d25591c1a87907b15709dcb8d69f47ce33341d219694877b44481859b79fb38737fa
DIST java.classpath-1.1.0.tar.gz 10881 BLAKE2B 1f3f9a103197990954e97725ffd581945fa27f2b50b44513a94a28bf0c50f0f2fd26a906f30eefbb110942d3ba157af945e009e3d5825a73ffb37aa85679bde6 SHA512 2d3c887a04f4c8a3a1189de719cfe020ff3989bb0c680328ef15311105b2244aa2d6797c017b1d39f6c025a8bf5ea36051d995dcebcae2ea032a5ca8cec12816
-DIST spec.alpha-0.3.218.tar.gz 41399 BLAKE2B e6d20afb42d26096077db5ea0346a3f1bd261f9b0ec71c2bc6f70849352ea38e2eb0d7c6e2124af4342b1b4f25966568d3054fa7447fbb1285eb539beab6a19b SHA512 bf89cb38777cd413804d7211519a62ee8b4dc80b93987cc4ecccb8065fb4c43b876e713c99a966663e6ec0ebd2dc3d35a567d43a38e8f73b80643b2653e3781c
DIST spec.alpha-0.4.233.tar.gz 42433 BLAKE2B be243c2180903ababd23eb6f5f47caa855f730eef5efdc30f1f404ec6c7471e15dc6bbbd1a13a2ea911e82a97dbe8e64631cd4f18e4be09b3c8c5aa76fa59b78 SHA512 085d6833c58f607d222edc832fb78e786946d2d3e0644c990043f0a98c055eff0b56b0e920010253c898e643cbc43c72c222cd8c6a813c5c5cc663cdda337aa1
DIST test.check-1.1.1.tar.gz 85399 BLAKE2B 752f0f0149dd5720dcabdcc65173906b124a85590f6b3cda41d3384a05e5b54c10b4cd399ba26ff466d637ea87e0fd81dc2a4943179818ba3d4fccdee977922d SHA512 e62ac00e302efbf4bb0c70721cd0b4438b2d302855146a052bfde492b0f36506fbd44c10c3e5c88a0eeb9b548eac40247f77d8ac590f758176e1d8f54270e196
-DIST test.generative-1.0.0.tar.gz 140414 BLAKE2B 8895fd2e86fe3ac54c826af10f914e43e3dcb0233e799102c6ec2024fb77fe8a47dfed1753a432ef4353ebbe0f790334f30a0b6d42195e869ecadb21d545578a SHA512 28aeed3dde40b1e02ee41219b698083e5ec7c63df0c779d1db75e07e5000faf0cd1415fe7418e241ebbea6979606db72696fb0090c4204d22ec1aea689b2ac34
DIST test.generative-1.1.0.tar.gz 144819 BLAKE2B b6cbf42b401380e3977ac219ddbc8b26ddcfc285a06ce5f2d68c3a52bb6c36702922975e9c9e2bfd4198ec239f2efd676fdfc8293222b75eb5c417ef1d80681f SHA512 4ef4640be2f630c4ebbe81d7bafec1e6e32619480c09ef59882b182738a998941d442231148d8cd2fb4166454780fd72067e5dda4b64d0ae0b064c91928f5c67
-DIST tools.namespace-1.1.0.tar.gz 36182 BLAKE2B e93ef1151f3c1d4bdbda881712c008c50a4e40e2787c9de2708d918009bcbeaf2db143770fbe8d6d251688b1b1bb50d75a8fca1a684badae1634aa8f23b08c3c SHA512 9cdac4dc90192b621cfadb901bb9b2befb9684a6431e87938b6993b879bac2d9c946cdc0ec29226503b7c2406ef2db9be7d49a2398bcf27520d422b0dbfd0185
DIST tools.namespace-1.5.0.tar.gz 37913 BLAKE2B bae6be788507d200f6e781754b46d5c7c34069b3340006f078a3f0360c0c5d2dea0398d5afe1ea6b49166baa482cc07a7687735474afc84abe644c2b8b53cd9d SHA512 c1f4dba4758ecb39460334e61f989cf92e3e2ca1f6ff03b9e12bc137de088f994d86feec827f40d33034e2f8978e099326aed3b85a21c68a910714b662bf9052
-DIST tools.reader-1.3.4.tar.gz 62300 BLAKE2B f8257166e62963f468987b6c926edfce852cfddc7b641e3af25aeee919f8b03f9e82c91bcd65f6b3110d3b042bb8b2d063468b7707db5965eb044546619ef711 SHA512 329e4afb9aa77231fe2d583ed6ac11089c2f7a9600db02109ad205bfdacb747a8af3af28202e545a4ffd71a77b4a04aab2a35a0e3a12f88085ef705060a15a74
DIST tools.reader-1.4.0.tar.gz 63792 BLAKE2B 7d0af9ff628ca1f1e1001c134e7fd2bb1cc7258321d8d19621936cdbb7e95ea5cb842268a15115b0b6929cbc352f35ea47439657db4d5d6403cf82821f7e0ccf SHA512 55c04e94828c0bf5e854d2b1d0bfd9c27e8411def1b429aa131b5e03614955777d188ad1a43295dffce032e8347e4d9d189b7eca0df3edbb105b4257f4641581
+DIST tools.reader-1.4.2.tar.gz 63868 BLAKE2B 3f4ceab49de2d518ba5854a81af13cb51902b240d2db2be2c8ededd48d6f9db3898eb54fdb41c6b9ce49d9d8eb912b0a7d3683dc1d61b6e238c5b862fad4b4a5 SHA512 bc3510887b7c5c5f84f0969ff2224dc745a54c81c186c50d0436af9e6f8eb4abf6d9c6a7bba4362ba3f8c94cd6bedefdf1a7698a1cd67db4b324fbaffaae5fbf
diff --git a/dev-lang/clojure/clojure-1.11.2-r1.ebuild b/dev-lang/clojure/clojure-1.11.2-r1.ebuild
index a0ea1c284db5..089737c06143 100644
--- a/dev-lang/clojure/clojure-1.11.2-r1.ebuild
+++ b/dev-lang/clojure/clojure-1.11.2-r1.ebuild
@@ -47,7 +47,7 @@ S="${WORKDIR}/${PN}-${P}"
LICENSE="EPL-1.0 Apache-2.0 BSD"
SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~x86 ~x86-linux"
+KEYWORDS="amd64 x86 ~x86-linux"
RESTRICT="!test? ( test )"
RDEPEND="
diff --git a/dev-lang/clojure/clojure-1.11.1-r1.ebuild b/dev-lang/clojure/clojure-1.11.3.ebuild
index d95fe4b42eb9..d29d73b5c0b1 100644
--- a/dev-lang/clojure/clojure-1.11.1-r1.ebuild
+++ b/dev-lang/clojure/clojure-1.11.3.ebuild
@@ -3,33 +3,44 @@
EAPI=8
+SPEC_ALPHA_VER=0.4.233
+CORE_SPECS_ALPHA_VER=0.3.70
+
+TOOLS_NAMESPACE_VER=1.5.0
+JAVA_CLASSPATH_VER=1.1.0
+TOOLS_READER_VER=1.4.2
+TEST_GENERATIVE_VER=1.1.0
+DATA_GENERATORS_VER=1.1.0
+TEST_CHECK_VER=1.1.1
+
JAVA_PKG_IUSE="test"
inherit java-pkg-2 java-ant-2
-SPEC_ALPHA_VER=0.3.218
-CORE_SPECS_ALPHA_VER=0.2.62
-
-TOOLS_NAMESPACE_VER=1.1.0
-JAVA_CLASSPATH_VER=1.0.0
-TOOLS_READER_VER=1.3.4
-TEST_GENERATIVE_VER=1.0.0
-DATA_GENERATORS_VER=1.0.0
-TEST_CHECK_VER=1.1.1
-
DESCRIPTION="General-purpose programming language with an emphasis on functional programming"
-HOMEPAGE="https://clojure.org/"
+HOMEPAGE="https://clojure.org/
+ https://github.com/clojure/clojure/"
SRC_URI="
https://github.com/${PN}/${PN}/archive/${P}.tar.gz
- https://github.com/clojure/spec.alpha/archive/v${SPEC_ALPHA_VER}.tar.gz -> spec.alpha-${SPEC_ALPHA_VER}.tar.gz
- https://github.com/clojure/core.specs.alpha/archive/v${CORE_SPECS_ALPHA_VER}.tar.gz -> core.specs.alpha-${CORE_SPECS_ALPHA_VER}.tar.gz
+
+ https://github.com/clojure/spec.alpha/archive/v${SPEC_ALPHA_VER}.tar.gz
+ -> spec.alpha-${SPEC_ALPHA_VER}.tar.gz
+ https://github.com/clojure/core.specs.alpha/archive/v${CORE_SPECS_ALPHA_VER}.tar.gz
+ -> core.specs.alpha-${CORE_SPECS_ALPHA_VER}.tar.gz
+
test? (
- https://github.com/clojure/tools.namespace/archive/tools.namespace-${TOOLS_NAMESPACE_VER}.tar.gz
- https://github.com/clojure/java.classpath/archive/java.classpath-${JAVA_CLASSPATH_VER}.tar.gz
- https://github.com/clojure/tools.reader/archive/tools.reader-${TOOLS_READER_VER}.tar.gz
- https://github.com/clojure/test.generative/archive/test.generative-${TEST_GENERATIVE_VER}.tar.gz
- https://github.com/clojure/data.generators/archive/data.generators-${DATA_GENERATORS_VER}.tar.gz
- https://github.com/clojure/test.check/archive/v${TEST_CHECK_VER}.tar.gz -> test.check-${TEST_CHECK_VER}.tar.gz
+ https://github.com/clojure/tools.namespace/archive/v${TOOLS_NAMESPACE_VER}.tar.gz
+ -> tools.namespace-${TOOLS_NAMESPACE_VER}.tar.gz
+ https://github.com/clojure/java.classpath/archive/v${JAVA_CLASSPATH_VER}.tar.gz
+ -> java.classpath-${JAVA_CLASSPATH_VER}.tar.gz
+ https://github.com/clojure/tools.reader/archive/v${TOOLS_READER_VER}.tar.gz
+ -> tools.reader-${TOOLS_READER_VER}.tar.gz
+ https://github.com/clojure/test.generative/archive/v${TEST_GENERATIVE_VER}.tar.gz
+ -> test.generative-${TEST_GENERATIVE_VER}.tar.gz
+ https://github.com/clojure/data.generators/archive/v${DATA_GENERATORS_VER}.tar.gz
+ -> data.generators-${DATA_GENERATORS_VER}.tar.gz
+ https://github.com/clojure/test.check/archive/v${TEST_CHECK_VER}.tar.gz
+ -> test.check-${TEST_CHECK_VER}.tar.gz
)
"
S="${WORKDIR}/${PN}-${P}"
@@ -39,10 +50,16 @@ SLOT="0/$(ver_cut 1-2)"
KEYWORDS="amd64 x86 ~x86-linux"
RESTRICT="!test? ( test )"
-RDEPEND=">=virtual/jre-1.8"
-DEPEND=">=virtual/jdk-1.8"
+RDEPEND="
+ >=virtual/jre-1.8:*
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+"
-PATCHES=( "${FILESDIR}"/add-compile-spec-ant-build-target.patch )
+PATCHES=(
+ "${FILESDIR}/add-compile-spec-ant-build-target.patch"
+)
DOCS=( changes.md CONTRIBUTING.md readme.txt )
@@ -64,19 +81,19 @@ src_compile() {
src_test() {
ln -rs \
- ../tools.namespace-tools.namespace-${TOOLS_NAMESPACE_VER}/src/main/clojure/clojure/tools \
+ ../tools.namespace-${TOOLS_NAMESPACE_VER}/src/main/clojure/clojure/tools \
src/clj/clojure/tools || die "Could not create symbolic link for tools-namespace"
mv \
- ../java.classpath-java.classpath-${JAVA_CLASSPATH_VER}/src/main/clojure/clojure/java/* \
+ ../java.classpath-${JAVA_CLASSPATH_VER}/src/main/clojure/clojure/java/* \
src/clj/clojure/java || die "Could not move java-classpath"
mv \
- ../tools.reader-tools.reader-${TOOLS_READER_VER}/src/main/clojure/clojure/tools/* \
+ ../tools.reader-${TOOLS_READER_VER}/src/main/clojure/clojure/tools/* \
src/clj/clojure/tools || die "Could not move tools-reader"
mv \
- ../test.generative-test.generative-${TEST_GENERATIVE_VER}/src/main/clojure/clojure/test/* \
+ ../test.generative-${TEST_GENERATIVE_VER}/src/main/clojure/clojure/test/* \
src/clj/clojure/test || die "Could not move test-generative"
ln -rs \
- ../data.generators-data.generators-${DATA_GENERATORS_VER}/src/main/clojure/clojure/data/ \
+ ../data.generators-${DATA_GENERATORS_VER}/src/main/clojure/clojure/data/ \
src/clj/clojure/data || die "Could not create symbolic link for data-generators"
mv \
../test.check-${TEST_CHECK_VER}/src/main/clojure/clojure/test/* \
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index 890098d53fae..4d0605f5725e 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -1,4 +1,4 @@
-DIST crystal-1.11.2-1-linux-x86_64.tar.gz 46947860 BLAKE2B c3f08d8a399c139f2eb465857142ad6faaf6925459318d5e6b5b5b879974cc63f43c99f8b2d1fa852fe239a81c0341e24c84023b8b8113bc2bfe9e4fe03c8346 SHA512 54cf8e24d5bd87602a65d22dfa0bbe3520b49cedb430d0652066caf2f47d1cea1bafdb852133a886f3c3b324826212dfa82ac15475ef044016b4b8210e20da39
-DIST crystal-1.11.2.tar.gz 3620048 BLAKE2B 3838f43897ba74a3c7f5717ba795f38cfd4265bbcbe11fa5a155d196afae40c60f7b5789c5d97e94eea1a1affb2cbd5c7fa9208e74a0fa7fa932b013e6124923 SHA512 e9b828539359fbae93799654f39b75c0c72764348ae279da326ac4ff4d2fa8e693c01956f5bc7ce1fff1504156049bf2b261c8defbde9cb690e1e84c13c8a296
DIST crystal-1.12.1-1-linux-x86_64.tar.gz 47041074 BLAKE2B 7e5d4a422144902de4b187947d55f9e8069d55f51013e10236fcf79b142ff96fc39973c883f5a633fbd10180553b6c82bdea824bff09d355fa171e4f5e308b68 SHA512 3256dc2340ed7b783bdf7e5f3d5c03cf981655ac2f50921aa53ada13cc72315d5a70515adb1c511f0f6e37c09310a963773b4f57eaeffe34c68e539edaaa7726
DIST crystal-1.12.1.tar.gz 3657963 BLAKE2B 42cf32dca63a2bdd2925b4970e2277cb163ddcdbcbc997b7c72b155024f642d03c5a565e82dfc8a2b1aed0d3f877633beb9d128eb592485c034bfdcbc3f5baab SHA512 bd0c085d44a473b86797fa64ce9a5c66c7d3eda44bdba929faee490b635aef45bdf84b45baaa5dfea8e2b6fd218d1ae7fbdf117d3924b04b284075d4a500e55c
+DIST crystal-1.12.2-1-linux-x86_64.tar.gz 47042270 BLAKE2B 17c29658fba1e32eafc0716f34d96f080b8500ef81d573719a3944873fbd16521ef2e3c0b6f3ea2753f67e96fe6cbf361df03233aa9e3eea19b87850b8d38089 SHA512 33d40b003481f56c1a3dcefb586e45326629455faad0adc6fce60f4fe91b586f01f997665aa535286b6909b5a4e0c05db3577b3eb8b36f6864f80d576ddd1d39
+DIST crystal-1.12.2.tar.gz 3655994 BLAKE2B d5de81445e3e81352ae821cdf91863464f70466674f541e2b9e499610e0d68b4aac3af6e2688870be8b2ccd84c9da78734e0e8f5f8be070192bd7d7342d77853 SHA512 b972015fa17da19bcb649a4e0387e709b4a792c8e9279898e48fb82f8840e92f35492df9cce1ec2487724ee460d3ab9099144f6bd25a091a725578ec3fb0fbd6
diff --git a/dev-lang/crystal/crystal-1.12.1.ebuild b/dev-lang/crystal/crystal-1.12.1.ebuild
index 02631f5f838f..92f5bc42f945 100644
--- a/dev-lang/crystal/crystal-1.12.1.ebuild
+++ b/dev-lang/crystal/crystal-1.12.1.ebuild
@@ -23,7 +23,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
IUSE="doc debug llvm-libunwind"
# Upstream test suite not reliable
diff --git a/dev-lang/crystal/crystal-1.11.2.ebuild b/dev-lang/crystal/crystal-1.12.2.ebuild
index 92f5bc42f945..02631f5f838f 100644
--- a/dev-lang/crystal/crystal-1.11.2.ebuild
+++ b/dev-lang/crystal/crystal-1.12.2.ebuild
@@ -23,7 +23,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64"
+KEYWORDS="~amd64"
IUSE="doc debug llvm-libunwind"
# Upstream test suite not reliable
diff --git a/dev-lang/cxprolog/cxprolog-0.98.2.ebuild b/dev-lang/cxprolog/cxprolog-0.98.2.ebuild
deleted file mode 100644
index aea94ab537f6..000000000000
--- a/dev-lang/cxprolog/cxprolog-0.98.2.ebuild
+++ /dev/null
@@ -1,144 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-WX_GTK_VER="3.0-gtk3"
-VIRTUALX_REQUIRED="manual"
-
-inherit flag-o-matic java-pkg-opt-2 java-ant-2 toolchain-funcs virtualx wxwidgets
-
-DESCRIPTION="A WAM based Prolog system"
-HOMEPAGE="http://ctp.di.fct.unl.pt/~amd/cxprolog"
-SRC_URI="http://ctp.di.fct.unl.pt/~amd/cxprolog/cxunix/${P}.src.tgz"
-
-LICENSE="GPL-3+"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="examples java +readline test wxwidgets"
-RESTRICT="!test? ( test )"
-
-RDEPEND="readline? ( sys-libs/readline:= )
- java? ( >=virtual/jdk-1.8:= )
- wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )"
-
-DEPEND="${RDEPEND}
- test? (
- java? ( ${VIRTUALX_DEPEND} )
- wxwidgets? ( ${VIRTUALX_DEPEND} )
- )"
-
-S="${WORKDIR}"/${P}
-
-src_prepare() {
- eapply "${FILESDIR}"/${P}-portage.patch
- eapply "${FILESDIR}"/${P}-printf-musl.patch
- eapply "${FILESDIR}"/${P}-test-io.patch
- eapply_user
-
- sed -i -e "s|lib/cxprolog|$(get_libdir)/cxprolog|" "${S}"/src/FileSys.c || die
- cp "${FILESDIR}"/build.xml "${S}"/build.xml || die
- cp "${FILESDIR}"/cx_dev_boot.pl "${S}"/cx_dev_boot.pl || die
- rm -f "${S}"/pl/test_file_io_1.txt
-
- use wxwidgets && setup-wxwidgets
-}
-
-src_compile() {
- local CX_EXT_DEFINES
- local CX_EXT_CFLAGS
- local CX_EXT_LDFLAGS
- local CX_EXT_LIBS
-
- if use readline; then
- CX_EXT_DEFINES="$CX_EXT_DEFINES -DUSE_READLINE"
- CX_EXT_LIBS="$CX_EXT_LIBS -lreadline"
- fi
-
- if use java; then
- local java_arch
- use x86 && java_arch=i386
- use amd64 && java_arch=amd64
- local CX_JVM
- for i in jre/lib/${java_arch}/server lib/server; do
- [[ -f ${JAVA_HOME}/${i}/libjvm.so ]] && CX_JVM=${JAVA_HOME}/${i}
- done
- CX_EXT_DEFINES="$CX_EXT_DEFINES -DUSE_JAVA"
- CX_EXT_CFLAGS="$CX_EXT_CFLAGS $(java-pkg_get-jni-cflags)"
- CX_EXT_LDFLAGS="$CX_EXT_LDFLAGS -Wl,-rpath,${CX_JVM}"
- CX_EXT_LIBS="$CX_EXT_LIBS -L${CX_JVM} -ljvm"
- fi
-
- if use wxwidgets; then
- CX_EXT_DEFINES="$CX_EXT_DEFINES -DUSE_WXWIDGETS"
- CX_EXT_CFLAGS="$CX_EXT_CFLAGS $(${WX_CONFIG} --cflags)"
- CX_EXT_LIBS="$CX_EXT_LIBS $(${WX_CONFIG} --libs)"
- fi
-
- emake lib \
- PREFIX=/usr \
- TMP_DIR="${S}/tmp" \
- CC="$(tc-getCC)" \
- CPP="$(tc-getCXX)" \
- LD="$(tc-getLD)" \
- CFLAGS="${CFLAGS}" \
- LDFLAGS="${LDFLAGS}" \
- EXT_DEFINES="${CX_EXT_DEFINES}" \
- EXT_CFLAGS="-Wall ${CX_EXT_CFLAGS}" \
- EXT_LDFLAGS="${CX_EXT_LDFLAGS}" \
- EXT_LIBS="${CX_EXT_LIBS}"
-
- if use java; then
- JAVA_SRC_DIR="${S}/lib/cxprolog/java"
- eant jar
- fi
-}
-
-cxprolog_src_test() {
- cd "${S}"/pl
-
- if use java; then
- local test_javadir="${S}"/pl/$(get_libdir)/cxprolog/java
- mkdir -p "${test_javadir}" || die
- ln -s "${S}"/dist/prolog.jar "${test_javadir}"/prolog.jar || die
- fi
-
- LD_LIBRARY_PATH="${S}" \
- "${S}"/cxprolog_shared \
- --boot "${S}"/cx_dev_boot.pl \
- --script "${S}"/pl/test_all.pl \
- | tee "${S}"/cxprolog_test.log
-}
-
-src_test() {
- if use java || use wxwidgets; then
- virtx cxprolog_src_test
- else
- cxprolog_src_test
- fi
-
- grep -q "ALL THE TESTS PASSED" "${S}"/cxprolog_test.log \
- || die "cxprolog unit tests failed"
-}
-
-src_install() {
- newbin cxprolog_shared cxprolog
- dolib.so libcxprolog.so
-
- insinto /usr/$(get_libdir)/cxprolog
- doins lib/cxprolog/lib.pl
-
- insinto /usr/share/${PN}/pl
- doins pl/*.{pl,txt}
-
- if use java; then
- insinto /usr/$(get_libdir)/cxprolog/java
- doins dist/prolog.jar
- fi
-
- dodoc ChangeLog.txt MANUAL.txt README.txt
-
- if use examples; then
- dodoc -r examples
- fi
-}
diff --git a/dev-lang/dafny/Manifest b/dev-lang/dafny/Manifest
index c408c2033349..133f085036b5 100644
--- a/dev-lang/dafny/Manifest
+++ b/dev-lang/dafny/Manifest
@@ -1,34 +1,20 @@
DIST bignumber.js-9.1.2.tgz 79226 BLAKE2B 3d2ff19d73a6fcfbcc0d03d1e9808796baae639e19973cbe0c26af4b514abc299129b8a7bc3e4e803c61af44b76f4381b1965d8fa331ea43e8a4c8fc7f98d8e7 SHA512 dbf98ac991fd2bce5bcce11f8570c11594c6775093b3ee481e9785428f65ba2046ee1821742f39d4f8f658085be84dd1e9bf6d663fd72a16e0e1fba6f8a7a9ba
-DIST boogie.abstractinterpretation.3.0.9.nupkg 29646 BLAKE2B 20b0e150d3a9a6ed11a24cd9920a97971d515207d86864a9b1cd4d554b2b3c34e27778051a9bf6d8b3178352a6cfbb33c363b2d69958f6503e17e366ca3e1147 SHA512 26b75a409b4bfe5dd4ac982ca2c1b03df2118254a9becaab74f4d44b652746faa0448ab943ee9177f6a0fd105f8ce015a4403b6ff58df12201b542c50618b222
DIST boogie.abstractinterpretation.3.1.3.nupkg 29640 BLAKE2B 6ebadfc92014018649ba1998f878ca8d8cda2df25d8b7f5243becd27bcafbcc166c071769adabdc99098b4fbf4aee8a6de8be9f8da43b3a3e1511dba96bbf2d1 SHA512 b950ceab224aca2a6d9a0202d2f79dc59f5e8f18f710933d843e8eb6dae9badadf6f78e79297f74bbe35a9d9170f2c928174c93a6edfd70e79aa282348b4be58
-DIST boogie.basetypes.3.0.9.nupkg 25717 BLAKE2B c1e549c6d7c675fd3b1acbe1a39fb5854d182b70ebab734350439dfd0cfd2be879b1d2b9c91ad832dae8e6f695fbc41510285bc7573b11fd51a170d4bbc50780 SHA512 d561f66a89af09cc07596bd1079993010a325ab2f22f2cc85408d12fd1286b15b0d7774b2e4037465a3b78aa829205f77b8b0b2efae9b9f3145eca6e82ced4d0
DIST boogie.basetypes.3.1.3.nupkg 25710 BLAKE2B e45663df336757dcc448f2ebe4f150948504047a1d5e4814fba81b0c08d7480aa717a42ebaa1ef9714276093a0d2755780669d0af410dda4806181c513874bf0 SHA512 ce3bbdf67d1332a51dbfffc21f12cde720b6583638dd7b6bc1fb68e5e6a7d1d6f0a191e795728b79adc1f113102996475c0290afb7062bd1122a17c1d6d1605f
-DIST boogie.codecontractsextender.3.0.9.nupkg 17455 BLAKE2B 6a6f060e16942750e52bb72630b306cb591212ddd9960ac9778efe44239300f19b5793bb0cb94cb66e01a16f0337bf77bc6f39d2ce680f5ae94c566e2420331b SHA512 b15d7b0d24d5464189daf797e02b7e6342841de5c7cc3a15c954ee270d805afe0dfc3e5268dba5abbb636e2de2c859bf7a3f442180fd3a7cd2f70ec227fdfc24
DIST boogie.codecontractsextender.3.1.3.nupkg 17458 BLAKE2B 2005168450015740d0afd9415c47674bb55f99b2a717ad03f56e0571be1f5532a9abb0a662b3b3f785dab32914684dc0046854c4286ea9be338aa0dcad0e4618 SHA512 1508e11342e88ef0fe3a6f7dc758924987b6edcc30f62d0a7e43aaba09cc14b26b999eb0d59faa13e26f246e91b9c176f4c983fdeb653892cff655f40b5bd24f
-DIST boogie.concurrency.3.0.9.nupkg 93215 BLAKE2B aa8e969eea49750503249b1f196ed3c4f388fae2a39c46c61c4dcc343feb15b3d98d0b87065afe1f82fa0d8bbeea895b3362bc2ecca26daba0b0316ab8fad648 SHA512 618e4e3c06354b8ff8e6c23341915f1bd92366aa99dd8f9ef217110191f653be2a4d30cb83d004d4a34dcd7244e9f0603179859d1371109f1ae7706046643cbf
DIST boogie.concurrency.3.1.3.nupkg 92168 BLAKE2B 81ff170058924043a10c83aed60ea38951bca7ff35de3d8be29fcf68fea9da2d658ba0abf36f0fa93e4c9f96b0a81f96b550396ca55e3ac204b4e21e49d112bd SHA512 069c34b152ccfa9ab8903b6beda6090fcbfbad243d79dc473c01e30d19a6a5ed15528120180ad271d28b43eb520dae6e221a9256680b7e241a6bb83415988d93
-DIST boogie.core.3.0.9.nupkg 208520 BLAKE2B 180b099ac167eb4cdc2b96ebfecc0e70789d0bcb01fe2842b69520b1757efbc8cf0ca56846dee6ab17d5a88c38920273368803d646a143f4010926de81c420c1 SHA512 eaa0289840caed37aee889a66b60e0389729f2233b568c58de22790fd3eb3e93478b17d58d290c1622ccb7bf788f8a98cb942ed6124c8aa3efe5beb44889fbe0
DIST boogie.core.3.1.3.nupkg 208304 BLAKE2B c3affd650c0c81c61e39e5bba0e3f88684fe43169c59b60aa15ef532747ed624d3b4d2a1ebf1fef6d216bb380b535c62a48cce072bf4a3ff57feea907c48ca8c SHA512 ae611fe91b8189ba55315db75be7fd927d08ae096305d099aa5b51ef692b4c5f4633c7cdcc95f9344791f7e11414e4078a8640127e2442f667594b335338eb1e
-DIST boogie.executionengine.3.0.9.nupkg 83903 BLAKE2B c3b8caf6097ab8f2b81b72593d7802674a8f6069f5601431a709095e0c785dea07c8b7b4033954ee7786e518973c9fe275d59be698918bcb5177bd90e3583525 SHA512 d80374d6df8f663ddef0a2bf004e9f414ca9d79e02861344f5878a1033db17a7d5102f92c4299e16ad5d1cf421a7cec4702dc320a5969a7699bcd2c31e933a1e
DIST boogie.executionengine.3.1.3.nupkg 85951 BLAKE2B 4dc3e7c442d2fc8f79b8f17c5139bf28453205f7fbb22caf35cdff40ff5294e940820e44029669e4f2103ae4dda56ad34b5d3d76dc73327d8925e6c5384859af SHA512 d06372aa80356ee5b07dd6cd30495246a5d900727fd7c6bba52faef25aabc191b5d89f479ba3c936a2a31a0045c8c195e9099d4c87231c14705ff00ac37b8c84
-DIST boogie.graph.3.0.9.nupkg 27933 BLAKE2B 5ba929366367792f0288655c5f304ac6ad88d3a89c84df5082d78939306bd6e3441a1c517a060fd1c32eaa7d25e14a3eccf7c40873d413b68a5c36a109353ba8 SHA512 1b65fbf349c9516a18e2cdb876a343ee037096ee528933edc2565e43c5e79bcb2dcc56b7e095b150f6c70aa55b217789d04e6c4109e369cd2e9d96c465fd76f8
DIST boogie.graph.3.1.3.nupkg 27927 BLAKE2B 66694f02030c943892514881969c05be58d2a9cc4e4ca44a7b6115908a2e04e104350b706b19346e5ea7d659101532ffba2cf0ac919157102c7832185f4cf112 SHA512 f50c932d6ca907f359f698c02cdf857cf21b47ec6671ec917f4ae5a03db5b02cfdf3bc075b4ad840ab31c44db343aac2fe0d623d555f17e3ce2d9cf0f5efe9e3
-DIST boogie.houdini.3.0.9.nupkg 52700 BLAKE2B 686c532de540e11d70be62bf95f6398c21e12ff9386a295b21d58882d105933068524d865b93eba8996bc29f80b05285196a2253493ddcaee13217797b0506ba SHA512 6ea2874623a582529e2e6921ca4c05e76602e6bf11f53323dbb5269e6201b1e1d2ec9bba7641a4918a95fb64f5a488841fab92da8ecc7c3fb033d0e286a4d0a9
DIST boogie.houdini.3.1.3.nupkg 52727 BLAKE2B 4a37e98bc0ab9bc8956e81df2541bf1bcfb50c32258b94818a5c8cafbcc74c76d4cfc5432a2e1ee94db5fc503dddd020123cc4f5f4a47c6b3bc8743b47784a04 SHA512 0f83ea50aa6f453d741cc7ff28a00ab9e9205a90caecaf7ccbd49d5b9217ec3bf9f5e1a7e9cce83314f48f25ee32c682c9509d00ed7bdcee602827f78712ce31
-DIST boogie.model.3.0.9.nupkg 26904 BLAKE2B ebc9e26fe815a7133e87febf8e4bf7af5af4b565e099dc2dfc45515e4e1a4559643d189c1ba5d0d21d230be958e3751306735c533fc99ed95acca740b22887ca SHA512 54a13e45ff1d53eed7cd372997525008c49075783df30a6159958c319c0ae661599bf08ec6bf9ebcdc45c85c97e2ca1d4cb33139db78a5abc50bd018a55c125b
DIST boogie.model.3.1.3.nupkg 26902 BLAKE2B f384227782a32efa4083412a0820343e301337df11bcf4dc4611ce9022a63387b66a350d921dab484230d29f6a33006e1e56ebbd1818e8d5a4b0b34e61912211 SHA512 f6e52696ded95d9be9ec4046917c171cddda7429f63d2a0f188b960950bd9684285ce6eb21d1181b4f582b2d400117bf810a8b5a11a654f43a40c22fef4abbf4
-DIST boogie.provers.smtlib.3.0.9.nupkg 70598 BLAKE2B 49195c7478a7c82fef6e15fb57bea2ddc891f5145fb7e655fc5b84fa4989d209aa0eff6bca8d57da9d08f6df026ee8cfb14d37953267048f5e191ad0520dcd74 SHA512 1c290058568cb170c0774779c8264f5e05700784bf21369852c0b0dd581665e64f9d23f98cd2ee22124b5a2866af56ad59fa56925212eae5b7ba26833d7034f1
DIST boogie.provers.smtlib.3.1.3.nupkg 70581 BLAKE2B ade8aaf77a42dc7aa8ab7a7dcf2eacd00db612b032a7e62d2ddb5f96431e43ac16df282e55fe2cc46b104b721bb1183421b98a22e8823746c6f655c7f7789fc6 SHA512 50368434be8277c5dd84edce72fcb1ba107737cedcac0f6ff7cbad32b44bc749912b576e4c1076a840239cf5f84d93354fc8a5fe649121f5ff339316cd53c1c4
-DIST boogie.vcexpr.3.0.9.nupkg 74092 BLAKE2B 978887817f7d48d26d999b2f0a37adee927506aa6eb2e7a93b78567b8fc67411e1cd56e0ee0876d95473edc0dc5068f69524093f8ffd7b4f109490c815a28b80 SHA512 024e898e35c933e4b1c55547624d5a3c531245ac1a8b9c03a2d5955d702bc1d51cbfcac0aaf214e9f0f3decfafaab02761490b02bc6ec5c385c2a20778c33de2
DIST boogie.vcexpr.3.1.3.nupkg 74142 BLAKE2B d523aecb82111a712fe619a69c159213ee4bef8182b1dd5708ff2b84ecd7690bceed5eaa825f8735c373ae7d3cf5ba4385e552f4a332d68fa5740cf862992bce SHA512 540e15a2830b739921e72165a39633bbc5b0a820463d79d7a2a915d2d902d242d9221e12026b6c8f6796d2309f5bff672dae50ff9d27834f2660fb433ce5809b
-DIST boogie.vcgeneration.3.0.9.nupkg 90650 BLAKE2B 435902e5892351f6aba902d3e3cf89c719c68ccff2075500fab607b6af64dda7837864284a3c44fc3a3ac17201355c1249c5ac2ed4ed61a2f1c3867b1338f18d SHA512 a9bb6155275f6f86ef5be7d26be560c8fd1f6f976da552cb038dd7eb41331ebcfb694f0b6367f73a778550e0545dd695c8a35d568cd0c9bd78fcf30c894cc490
DIST boogie.vcgeneration.3.1.3.nupkg 90517 BLAKE2B d5f0271491a37f7ba806c2a46894c474b0c65d5bc66a659241e9ebffbf63c77a75a3533a615957ced4af1ee0363a34fd2c6803beca59e1fe656a1ba29c5fb309 SHA512 e402de9912b9d788520ef615fd80b8dba2eca9938f8321fb9e3f53bf158baedfd4c69f3aa4eaa3fe8f685d3ed9556982001117014279f9440605bac368b521c5
DIST castle.core.4.4.0.nupkg 916004 BLAKE2B 7404f946c140bc4c22132282a4a12694328bac2f37f3cae06c595076068dbedc808465e352f083450cea3e3869698f91b7a5b2b55c08f29f4a9feba7f15abf74 SHA512 7626c347f82038bc29b0b2ae399937047aead260ed85ff8c107d36adbe901d729be59cd89a5f98ef45da2d1883c8374b6f286c81c044a5a2b69ab4b5dde9ce98
DIST commandlineparser.2.8.0.nupkg 475554 BLAKE2B e55eda3a96441169220e5b081f432d8445d719cbcf8e86527920d44085e6e97934e20aa0266bc5dbdc16ba1a6daa6ece55bc2c63266c9d733ab4992f2fe3e0a1 SHA512 8c276513dfe91e5bc72cfb3b96a0d24411ee3bd2e9832d423f6ade3f3964a011dbb977ca90601750fa133a0a25fe72f66955be7f69a72f5d6b73c7f313094b5f
DIST commandlineparser.2.9.1.nupkg 496069 BLAKE2B e2c4b38841f83d6bc10432b8055af90369f1fe0a10105a58b51b44cd48e5d84cb0b5e4b19f444d8c81b38646a62c7c4d11cbd710e92fea68be3ebea6ab98e3f1 SHA512 4f364e45c9668c7e7cc6a922b488f3fa523033c20d7a432694f0a6af05ce528ea0481d8375e2f4f1032c6990347b4803ce9a0e48068c6fe15ec46fb1254f085d
DIST coverlet.collector.3.2.0.nupkg 2209480 BLAKE2B 175bcfcb9d6e5177d44f2d607f2411cbe77d6009d096bbc84372e33d7be972d3e39ec39d7f2669b4b91f4bcf44f6ddd46bc91541c0cc4843426e2dd1073bf5c2 SHA512 b63d02a5d3233805b42f0b8cc76f40c8d9f5a0117beb6bdb2ab147f5521bb99919b29d51ff91767ce0bfcab92d25fc8fe794133cadc60da3e009ae18d10fc920
-DIST dafny-4.4.0.tar.gz 6241907 BLAKE2B 43f5b6bed5ea0bc6f8de04650b2f97c0092df1df47aba9bf0c6b9210677077427c67cc80364f659305b7d851c178439a1536864dfb7c6396b4ac6517789fc83d SHA512 33789f10b75a1946aab552f11f40296682156bab7cb08cae431f00f6fdb6b12d3211ec2f423a42adb78a3245b19ab8f772dafca4d1448cb30077268680f73534
-DIST dafny-4.5.0.tar.gz 6365137 BLAKE2B 6233107e680e04ecc5a0d730bab4d5f2228ff04f9d83fe33688731c4226ae03b06a2c08447beda025e2e34e7d92bf6fbb57de5b6913e8cde9f61ae255d09722d SHA512 d56ba0a28bb235ad2c4baba526b4de1757a6574b9d04a195e541189ba5c24a82a7ca4d3ebbcc50244b7f35043aa80101210568f20656f21169c4cf42c41abce0
DIST dafny-4.6.0.tar.gz 6373177 BLAKE2B 9348a9b170dd694885efe4682f05abe60240e6f7df7bde7bb53e8955c1c75a332ca6e7d6d6f38eb1aa9a83a9a5dfccea13b7683e99873c1fce12181d47679548 SHA512 abac500a27a811b434d32036ff7d877dd337a0a5917a07a7ac1fceffb1dd5d493bd07b7d518875243674b7919862a25f628fe62052983a8ff8f1450669c49b69
DIST diffplex.1.7.0.nupkg 69699 BLAKE2B 9c7d6eab09e7df1d791183bbfc4cc46b7bea8dd4b5d09fd3e7e3dc1734e6a8973f92a34387e1a2a0e3a4cbf11ffb89f8138844b2b46d2e94010932ed47158911 SHA512 a0f7a30c59889d71eba97db9bda2efbf1b458ca439d129b52ba3eae32626325e73ec13d46018603a81a33cf18a25a5b08a1b2e6a89c7e716faa47eb9db6d6474
DIST humanizer.core.2.2.0.nupkg 104728 BLAKE2B 6c383abbbed9250f2a7eeec4478ead8f23ad53aa62a5b0f22e71fed9157aa6644a9a7518842d637885b7b63a4300754e1a7e9f3f9968725607ad30bf18e27a21 SHA512 e232459f914c8e7fc3f8dee69a85e66beb8c44515d4c83a976ee24084a91f32aae61c6f845ff38edcae02d0bcab44f9ec253277dccf2f4ae7e82235047bc6ade
@@ -101,11 +87,9 @@ DIST microsoft.netcore.targets.1.0.1.nupkg 18189 BLAKE2B d43a064d4c6f836be516470
DIST microsoft.netcore.targets.1.1.0.nupkg 18162 BLAKE2B 419d19e0da934ab4b9db75dd66cc22b83a003f34e93cf7a92feccf4f32d3d695e18b826b1aba13073dd4ec53aa7905a67346921d1055516647ddcde0d79009f1 SHA512 1ef033a68688aab9997ec1c0378acb1638b4afb618e533fcaf749d93389737ba94f4a0a94481becdf701c7e988ae2fe390136a8eae225887ee60db45063490fe
DIST microsoft.netframework.referenceassemblies.1.0.2.nupkg 20957 BLAKE2B e521646690b142a703d943cb0528552a669ceed16fa71e3a04300da1eb58d5428b168628c85b8e963e963cf0041b0a02d7442414248e6f506ff3d7ae452a85cb SHA512 8bf3922b695856059b8eec696a7ace03a7269d71d4c456cbdfb21bd3f6e69f2a9fa25e46acd5c29ad872829a07cc05ec083c3a6ee942bca21afd47ce3bc533e3
DIST microsoft.netframework.referenceassemblies.net452.1.0.2.nupkg 19845441 BLAKE2B c2be1acfd4207984ba33a5ed468fea39299d61d6af99ef9cfc7df16096c0ecfb6133a3c970ffc150f79566710a589c5a387a5d2da8d5ce25f23173cfcfcc7661 SHA512 f4b099aa012c3d117c58dafcaa3edfc273ad7d5acf30c84d213eb15ae101559e7da3f1810285909153e85d73ac58dfedc34e6730c264cb0ae013e19a1213d691
-DIST microsoft.testplatform.extensions.trxlogger.17.0.0.nupkg 361862 BLAKE2B 7315293c1ab965bbcc299a842a2e1f462e4821168f79f3036f7a14a4116f3d73c00f5b645bd1d16fc963f595e65ae11d7658544a6482c0e5926b36528644b259 SHA512 d72f41fbe9d4155b85d0e20e6a476d41ea55e355c61561270f241a1b2ef5b9d8dc9c81ca43d14c550a50bff0a301923e9e84a5035e5b31006a9639ba0221e907
DIST microsoft.testplatform.extensions.trxlogger.17.9.0.nupkg 441869 BLAKE2B a250401ca8d21f51ee8fae91dc3b83b5453280b22f10b77a481e0e27735ae5cd1c7f0f04dcb0b5b0e74192c3e171e8d7fcad1a5f771835a7ce846d0cc7042105 SHA512 9b6c67ded3f150a2daae6f5a6db52d86e0338b3aea60a07dfeec67ca630e3ca9a5a8715c71c5bb0508760b877f5e2bd2f135d7f18f9bab9c81991a2fd44f00a6
DIST microsoft.testplatform.objectmodel.16.11.0.nupkg 2966263 BLAKE2B 5bf6464154b639b478c4000dd64e7570d124a446680583bceafee1cf3eafdc6a7bc10cacc665327a562a28fe0268c5d749dad0ef11376880f76310f1e3cb055c SHA512 105ec3c2d2d476abfa9fec73b25a701d815b743512b575e7ee2373ef7e459f767688be7ecdb555849a8342e07e922ab819dfae637e8b23b36ed918655d9a7471
DIST microsoft.testplatform.objectmodel.16.9.4.nupkg 2224614 BLAKE2B c8b0899000db731c0041f6209e4f85d2bbee5a7ebe3d3addd4405a33e1036bef52098c3fe8146123db262e71868d7bbe541149ef7443c7fc718ca78f916d384b SHA512 a1fc8192007d0d1a852393eadea26b8400df81a50d8a29549f79f726694696b2c361460561a3910f66dc195044b7773addc25642f9c7389b7152489e162f9ad9
-DIST microsoft.testplatform.objectmodel.17.0.0.nupkg 2963393 BLAKE2B 106eddcbc897147fabc6a7c5509e7800ed4af37fcbd7a05771a1fd752e354677d7f8ff4856015b2cb1cd2ad54ed5eba1d0cc62f58962830e0b84d71bb6b049bb SHA512 19ad56cad83f5897c5b93608be9d357c83ddd5f97f2f7751f40fc017236ae2ef3b0517147e4dba2c4395511a9f4f5b262a4f660a25974e7b34f220c275af9c4e
DIST microsoft.testplatform.objectmodel.17.1.0.nupkg 3191688 BLAKE2B 26be3f32f39257044cf0947aaf68b486befeded4901e5344fc7d1df1bba1f8d8e564d310fc946e5d5d4b3462aba1734bb44274f6f471bc27f1a493e2e0480dac SHA512 fb7333c71906dc2a13a3bdb33363e926d0c6066addd1ef43b2b5067a616b754798f32f515cadc58bc2a9c6e157c05e6d36ef79bf602e9da9b37089644933240a
DIST microsoft.testplatform.objectmodel.17.9.0.nupkg 1655717 BLAKE2B 5ae125e4fee8770a6a9f18a8566eeeacbbcac42cfd5eed4e407fd2cc2b1d773e20ad0dea461483fa3525cf113ea97dfbad6763a7afa354cf3d438057310d0140 SHA512 637048c70b190a0269d7e0761d7cbec7da8d306f5770480cb91286c06047d7f4f1666556dfc4494ec090db011b03fb736ca03313479b566019a5a54567e05f37
DIST microsoft.testplatform.testhost.16.11.0.nupkg 7327788 BLAKE2B eab31bacbbf159a128db837076c2057b4a68b912e4dbc1583f5042b0333bbec78e2718ab2db0a6900c41d984a913115573444695d117f270b272141402db55d9 SHA512 17b0956e03edf7660dc31d59d5cd9fb141b3d002149aeed824a2d3381bab2f6a5ccfbcc2fd6c37e960bfd29e33e734db14cd1862799fadc80154f3d8ac3825a5
@@ -180,7 +164,6 @@ DIST runtime.unix.system.net.primitives.4.3.0.nupkg 125060 BLAKE2B 76f760a4fe1f1
DIST runtime.unix.system.net.sockets.4.3.0.nupkg 105673 BLAKE2B 06119cfdac3ce590b2f12f5587c75b6799fa876d7def559a78a1ccf53e34e6e1bf79410bfd676b04f1ab3f34a887eb919078a55cf79dc75faa75fc62094c2cbe SHA512 31b62be088315ead04d89f452a6c49a656b88f0668f7dadb2790511675d48705e01c9df24dbed3a0095157875c208ab6e6b5b6afc82bac13e4d6cdd3026f8424
DIST runtime.unix.system.private.uri.4.3.0.nupkg 75969 BLAKE2B 82611545be3eba44ccfbef1f104e9b5afade845fd3b30c6cb40171368330f9d4bb2ad8752e415aa3b1678ec140c40f8e72cd4cc3731f42ca64016c1a1dce70cf SHA512 203ebe272791d79ab0c40afe9d0543852ee91b9fb4ae5bc15524d97728bc8bc9d7e0cbcf65d1fab8cfb0aa7a4ae37e7938933eef127aa5ea46f60e57b6ad2d91
DIST runtime.unix.system.runtime.extensions.4.3.0.nupkg 54075 BLAKE2B f81d86cc15c63aa0b4a3d03546a07649587af7a0285af0de4123734e719fc023fa4227b7abb18307d4fc060e2952c157ec72b3bb85d49ab8508d8167b1aeedd7 SHA512 54b81784c08e934389c59e6e155af6b1855e4bbc41678b01a702c94e6daba87c6ddfd16fe9e2cb61f3097bfa4950dbc37781454d027ce5ba6c50a393cc91b888
-DIST serilog.2.10.0.nupkg 491974 BLAKE2B 27839d2ca6db6b745a627e9b534954633539bd0126872dffeddfff87ffe140167dc04c62cd801a8183dd210c735c9319c2fe76c5ea5a4c0bb37c87aa82b257ca SHA512 9c19964d1126c2e99f546f1da81764644fe39b153e3d8d725473221a6e0855f356776d2f40a8a5d04ece4e420075d5b987650108a4fc9b32b4f56ad3d0792260
DIST serilog.2.12.0.nupkg 769482 BLAKE2B 178f0796f7a9cd82d60a6d8c1501dd4b5432bdcc9d41061572eb5e0a1e0da924f48c2557dc43e610f9f49da80ba459e2301d43772130b22be5e464764db5e945 SHA512 3546b98340b8399a8ca778b9b82072833ade67b2a016fe261f5a93a3f9afda222a1f432b146dc06edddb68e6bd32bffa4a9aacaae03205c365b43f88044111fd
DIST serilog.extensions.logging.3.0.1.nupkg 21474 BLAKE2B 8a0987a47939ce9901648f0ebeca3a4b29eb15beda0bd0206fc1ff0217132c574314bef35fa6de87ff4686455a5a24497af1393243b033e4ca1720b20917554e SHA512 65e5b01f8493c5ddf8927221a431a3c2bc2454c12de4392d85bd13f1c0d3cece3f73135d2f81242d14456dae7bf0f99ca0711a6006efa8e2359c86e0847e3f6f
DIST serilog.settings.configuration.3.1.0.nupkg 75871 BLAKE2B c32066f2850cd49b4d2a4ca2b1ee50fbd509457073109b60b2a3a15d69e784390de1804dc87db33f90adb829e28bb2590d0787da0f00f2290847489267382d6c SHA512 dcf09d92376a4600f039c63ae11d644af88afd2029309e8f9efc2a9854c2840d34be7a34a067bc596b9c4040bdf72f85dfbcb9e51fa8da3b8f40ee1d65d48198
@@ -199,9 +182,7 @@ DIST system.collections.immutable.1.5.0.nupkg 804405 BLAKE2B f11cab8fc6e1543d09b
DIST system.collections.immutable.1.7.0.nupkg 481313 BLAKE2B 6c10496bce03924feb03a45d7e0b4e523918d1e52f3a40b35e667d6aa9c765732d05bd418600b00bfc6a4e165ba1bc6762ad44f99e3363e10e7c64e457ba213c SHA512 da02822ffd801e236958e9bd28f616eae0db1f7f948b23f50aa20bc0b163bb5ec8e284aef9126880951e9c37d61fe9dae9aae54be5f34a01fe6237c1a5cb81d3
DIST system.collections.immutable.1.7.1.nupkg 595037 BLAKE2B 83f95d1b23960b35915e5418b125810d3087e7dd46fd2702907cac9856290bdb02d3c7e1d0a8fc73fb8cab4bdb4e928b717f6b61e7ff8fb3b508f6de49940597 SHA512 d263cc2c90a537edc49bce334490fd09d888a50f5b793e42e89133ad8db9544f356bd5745a735c4b81b7687bc1b8e4df9c8d64e388c8433361a775591ddedd76
DIST system.collections.immutable.5.0.0.nupkg 623075 BLAKE2B 14724fcb8654455184f8f16f8ac56b7b3c995e632af36e91f307331620b4e9f515a13bc4625d898fbb4b57ff9f017b43cb91ab40b0cebcd7d5eefe32979afa4a SHA512 726f8db7d179714cf0efeb0fc02fcebe7b4755762902e391e77cf78671dd5d5f364c7cf4ce3545b51cc7f37327d12d1500ba19f4b934f0e8bb69a6a347c0bbfd
-DIST system.collections.nongeneric.4.0.1.nupkg 239254 BLAKE2B 0179bcd640e80a53e15f96525ae9dcc67e463936c5e8af88713dc978de525265c7cb33356f56e34003398cf1974fcda377339f41ac0171a83155009d6f988832 SHA512 5c38a3c61b6f4ec205a970773db90fced9319cde2ba3b92876a2d04a0ea63a97d67b088972e7d8215d1580efdf1bd7fbf5c89ceab15faf1b8212d72bbbc573f2
DIST system.collections.nongeneric.4.3.0.nupkg 239265 BLAKE2B cc987578ab9b0c1dfc8925f2c946876f8c8d6f335d8d6a6a0a30848c6c812a24774d059fe28aa83887b45d924705abe88fd96451dba7b2253dc9b99afc7a75e8 SHA512 dc6abfe778b3ea08e99f50b79112a51728e689f353b082234351b9f5b1be4b601a0b6d38a04c2138d05b5bdd83d6f3d91b53ee86ed119225c15e4683c38bf98c
-DIST system.collections.specialized.4.0.1.nupkg 183457 BLAKE2B 4b886d3db9b40b6ba0372deb97ba84918a2523401b09986bd42b84f7b01d088e75467477f549113396c37db8b4f111987c93e5d6cd4e9a2935656b5c5de67abb SHA512 53d2b256394c9dd1d16930c25f21714dd2d23ab0c9f3d3ac3a3a4552b64f679f2342b03d193984d050d506a22c450dfebb5bc6e404930cfff98ac9c19d7c9d08
DIST system.collections.specialized.4.3.0.nupkg 183462 BLAKE2B 9297ea15b3d8880a719e4608622793e8883f68887ed2422b287897ad389b41f5301c69707434868c3db88ba3b8819c4cc22b7f5cbb09d2729b0f5e121ddb6921 SHA512 c7a257cbda812d6c0c44b29d8bb5cc4f5cf2d3cb81574eb1dc94a7efde980ac26c5ffadb7cc3521fe7b19437766a046c83cbf2e7ea59a36435c288add8142b57
DIST system.commandline.2.0.0-beta4.22272.1.nupkg 616636 BLAKE2B 5252560598c4cd67348520cea086c37b4151b984a61238de1984838975340247b16050113422b1765931bdfc1dee38e226789b6427e56ab7c3a36bf07d0bcc20 SHA512 979a7e66ba29e17bc5bec42e926ed15362e23ae403e498c955e09dffc4d3baa14777a06f95e25d591fc9757a0eaa18deb9e4662a1ca1663fa300f509a4a0383c
DIST system.componentmodel.4.3.0.nupkg 95320 BLAKE2B 8c03f003539d1c0920c4d1a2d0b57a19f93c9c1d7f2e0004035b758b56915da1ba0207d1506cc0cf8af71bb2e58408fb824674941230a0465249752b1dc0df93 SHA512 7c638ac92a132e1553a089c6a711ffb7431b22fecca322ce748d6684ae2baaf161bab2f71704750bd15ec6fda11e795f2ab8491ac769b89341bde77aa9212d59
@@ -230,7 +211,6 @@ DIST system.dynamic.runtime.4.3.0.nupkg 548103 BLAKE2B 42ac34ffe9b9b6fe69c984aa2
DIST system.globalization.4.0.11.nupkg 589139 BLAKE2B a4ee2d6848c249b34a67192dfd32f78d842f4b12f8be137804966d00b2e15dd8b2f9ecc6427f9074c35802d9bc13674c912c80ba405e610324772f9b640dea46 SHA512 66bc21667f5f839bc711eda3b0463863d70e0ad86770fd5410e0123006d6f031755cf7220187fb7cefed69b3f4a9eab8f0868cae765cb1425c8bf60427f395e6
DIST system.globalization.4.3.0.nupkg 589136 BLAKE2B 7b07f9b68f0744ddcfa3f0db6190c1a0696c2f89f8c5e92922ac20fc4155e22d97e7191bf7866c9b58acec056bff08531b0adacccaec7d4301e1d4b149fa511f SHA512 823d2ba308cb073b40a3146ecccd0d9fd7b1615ac3fbefb16f73d873e411fd81c3bdc87df206d3dc7e2f14c9cd53aafca684a3570c25471280aada8de805ece2
DIST system.globalization.calendars.4.3.0.nupkg 177689 BLAKE2B b70b5d9e545835e5a3fe4c703b2bd7c857968ba1fcae5299c9c41d550338914f2ad9d168948018fa7da7271d62a3b9d2ad1e696d334ee7d3fdaefd25395aa64c SHA512 e97190231402b393774b925efc02a2bfa41d1d117a17fb87da6e399f5234546962767e9cd8f39970efa408e4f453cd1e6751a2a61e366bc97406e1b0b8a4be86
-DIST system.globalization.extensions.4.0.1.nupkg 142766 BLAKE2B 28344f900c32045cf4f6d168e02dd1df501fee3a5d0ede8ee35034e96cea6655ecb0f0d722eaeed78c500535b0795e7cd0f067e286cf65ca083fc4c37477efd5 SHA512 415ab44aa3e46b59ad1d314ceda11f9dc78f85adede3daece96c83c98448e2a0cad7e79045edeeeaca8618115c38517364b00cdd9a0a7228e7da1ebc342b0116
DIST system.globalization.extensions.4.3.0.nupkg 142949 BLAKE2B 4eb77d4ce5af01136145ea867e9d6cc81181b36a178ff487905dd7d7c6a4986c518675af68eac0e854347503e11513056173a93e6803683f3fddee7677b88e05 SHA512 a4d360003f95e0c31edf39c0b91e1c73850a60ac5d0032b17db888a3c7d7134cef9acd97219d14174ad213b7c044f49b364cc5720073ebfcb6e1bf6e4ec24ce5
DIST system.io.4.1.0.nupkg 703645 BLAKE2B b0df16bf1368571d6755f88cc8fcce330d1dd5b478a009363e87f463e12eed7722d4bcd66a1e70de63d1b31ae2793b80c735e19a63e80ad4bc4c45f107e94ce6 SHA512 e01b432f3d715f3c88d5d7f3e7cc1ceee78caf99407a11c3306f9103aee78963f818417f14eec52f0096fa247900a31e53bd3226e06f0c0f93870db0b2b78331
DIST system.io.4.3.0.nupkg 703652 BLAKE2B b5b2627ace4cc49f35a0caf5c064c4c8262ff0fe3df79bb1bd3529b3e306c8b1e77ea9e5948de343ee786a50e12be822ca89b5ea3f16347b9c0bce6bd8071127 SHA512 bfca5a21e3e1986b9765b13dc6fbcd6f8b89e4c1383855d1d7ef256bf1bf2f51889769db5365859dd7606fbf6454add4daeb3bab56994ffb98fd1d03fe8bc1e6
diff --git a/dev-lang/dafny/dafny-4.4.0-r1.ebuild b/dev-lang/dafny/dafny-4.4.0-r1.ebuild
deleted file mode 100644
index 2fd7b19b0f00..000000000000
--- a/dev-lang/dafny/dafny-4.4.0-r1.ebuild
+++ /dev/null
@@ -1,592 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..12} )
-
-DOTNET_PKG_COMPAT=6.0
-NUGETS="
-boogie.abstractinterpretation@3.0.9
-boogie.basetypes@3.0.9
-boogie.codecontractsextender@3.0.9
-boogie.concurrency@3.0.9
-boogie.core@3.0.9
-boogie.executionengine@3.0.9
-boogie.graph@3.0.9
-boogie.houdini@3.0.9
-boogie.model@3.0.9
-boogie.provers.smtlib@3.0.9
-boogie.vcexpr@3.0.9
-boogie.vcgeneration@3.0.9
-castle.core@4.4.0
-commandlineparser@2.8.0
-commandlineparser@2.9.1
-coverlet.collector@3.2.0
-diffplex@1.7.0
-humanizer.core@2.2.0
-jetbrains.annotations@2021.1.0
-mediatr@8.1.0
-microsoft.bcl.asyncinterfaces@1.1.1
-microsoft.bcl.asyncinterfaces@5.0.0
-microsoft.bcl.asyncinterfaces@6.0.0
-microsoft.build.framework@17.0.0
-microsoft.build.locator@1.4.1
-microsoft.build.tasks.core@17.0.0
-microsoft.build.utilities.core@17.0.0
-microsoft.build@17.0.0
-microsoft.codeanalysis.analyzers@3.0.0
-microsoft.codeanalysis.analyzers@3.3.2
-microsoft.codeanalysis.common@3.7.0
-microsoft.codeanalysis.common@4.0.1
-microsoft.codeanalysis.csharp.workspaces@4.0.1
-microsoft.codeanalysis.csharp@3.7.0
-microsoft.codeanalysis.csharp@4.0.1
-microsoft.codeanalysis.visualbasic.workspaces@4.0.1
-microsoft.codeanalysis.visualbasic@4.0.1
-microsoft.codeanalysis.workspaces.common@4.0.1
-microsoft.codeanalysis.workspaces.msbuild@4.0.1
-microsoft.codeanalysis@4.0.1
-microsoft.codecoverage@16.11.0
-microsoft.codecoverage@16.9.4
-microsoft.codecoverage@17.1.0
-microsoft.csharp@4.0.1
-microsoft.dotnet.platformabstractions@2.0.4
-microsoft.extensions.configuration.abstractions@2.0.0
-microsoft.extensions.configuration.abstractions@5.0.0
-microsoft.extensions.configuration.binder@2.0.0
-microsoft.extensions.configuration.binder@5.0.0
-microsoft.extensions.configuration.commandline@5.0.0
-microsoft.extensions.configuration.fileextensions@5.0.0
-microsoft.extensions.configuration.json@5.0.0
-microsoft.extensions.configuration@2.0.0
-microsoft.extensions.configuration@5.0.0
-microsoft.extensions.dependencyinjection.abstractions@2.0.0
-microsoft.extensions.dependencyinjection.abstractions@5.0.0
-microsoft.extensions.dependencyinjection@2.0.0
-microsoft.extensions.dependencyinjection@5.0.0
-microsoft.extensions.dependencymodel@2.0.4
-microsoft.extensions.fileproviders.abstractions@5.0.0
-microsoft.extensions.fileproviders.physical@5.0.0
-microsoft.extensions.filesystemglobbing@5.0.0
-microsoft.extensions.logging.abstractions@2.0.0
-microsoft.extensions.logging.abstractions@5.0.0
-microsoft.extensions.logging.configuration@5.0.0
-microsoft.extensions.logging.console@5.0.0
-microsoft.extensions.logging@2.0.0
-microsoft.extensions.logging@5.0.0
-microsoft.extensions.options.configurationextensions@2.0.0
-microsoft.extensions.options.configurationextensions@5.0.0
-microsoft.extensions.options@2.0.0
-microsoft.extensions.options@5.0.0
-microsoft.extensions.primitives@2.0.0
-microsoft.extensions.primitives@5.0.0
-microsoft.net.stringtools@1.0.0
-microsoft.net.test.sdk@16.11.0
-microsoft.net.test.sdk@16.9.4
-microsoft.net.test.sdk@17.1.0
-microsoft.netcore.platforms@1.0.1
-microsoft.netcore.platforms@1.1.0
-microsoft.netcore.platforms@2.1.2
-microsoft.netcore.platforms@3.0.0
-microsoft.netcore.platforms@3.1.0
-microsoft.netcore.targets@1.0.1
-microsoft.netcore.targets@1.1.0
-microsoft.netframework.referenceassemblies.net452@1.0.2
-microsoft.netframework.referenceassemblies@1.0.2
-microsoft.testplatform.extensions.trxlogger@17.0.0
-microsoft.testplatform.objectmodel@16.11.0
-microsoft.testplatform.objectmodel@16.9.4
-microsoft.testplatform.objectmodel@17.0.0
-microsoft.testplatform.objectmodel@17.1.0
-microsoft.testplatform.testhost@16.11.0
-microsoft.testplatform.testhost@16.9.4
-microsoft.testplatform.testhost@17.1.0
-microsoft.visualstudio.threading.analyzers@16.7.56
-microsoft.visualstudio.threading@16.7.56
-microsoft.visualstudio.validation@15.5.31
-microsoft.win32.primitives@4.3.0
-microsoft.win32.registry@4.3.0
-microsoft.win32.registry@4.6.0
-microsoft.win32.systemevents@4.7.0
-microsoft.win32.systemevents@6.0.0
-moq@4.16.1
-nerdbank.streams@2.6.81
-netstandard.library@1.6.1
-netstandard.library@2.0.3
-newtonsoft.json@11.0.2
-newtonsoft.json@13.0.1
-newtonsoft.json@9.0.1
-nuget.frameworks@5.0.0
-nuget.frameworks@5.11.0
-omnisharp.extensions.jsonrpc.generators@0.19.5
-omnisharp.extensions.jsonrpc.testing@0.19.5
-omnisharp.extensions.jsonrpc@0.19.5
-omnisharp.extensions.languageclient@0.19.5
-omnisharp.extensions.languageprotocol.testing@0.19.5
-omnisharp.extensions.languageprotocol@0.19.5
-omnisharp.extensions.languageserver.shared@0.19.5
-omnisharp.extensions.languageserver@0.19.5
-rangetree@3.0.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.3.0
-runtime.native.system.net.http@4.3.0
-runtime.native.system.security.cryptography.apple@4.3.0
-runtime.native.system.security.cryptography.openssl@4.3.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.apple@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
-serilog.extensions.logging@3.0.1
-serilog.settings.configuration@3.1.0
-serilog.sinks.debug@2.0.0
-serilog.sinks.file@5.0.0
-serilog.sinks.inmemory@0.11.0
-serilog@2.10.0
-serilog@2.12.0
-system.appcontext@4.1.0
-system.appcontext@4.3.0
-system.buffers@4.3.0
-system.buffers@4.4.0
-system.codedom@4.4.0
-system.collections.concurrent@4.3.0
-system.collections.immutable@1.5.0
-system.collections.immutable@1.7.0
-system.collections.immutable@1.7.1
-system.collections.immutable@5.0.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.commandline@2.0.0-beta4.22272.1
-system.componentmodel.primitives@4.3.0
-system.componentmodel.typeconverter@4.3.0
-system.componentmodel@4.3.0
-system.composition.attributedmodel@1.0.31
-system.composition.convention@1.0.31
-system.composition.hosting@1.0.31
-system.composition.runtime@1.0.31
-system.composition.typedparts@1.0.31
-system.composition@1.0.31
-system.configuration.configurationmanager@4.7.0
-system.configuration.configurationmanager@6.0.0
-system.console@4.3.0
-system.diagnostics.debug@4.0.11
-system.diagnostics.debug@4.3.0
-system.diagnostics.diagnosticsource@4.3.0
-system.diagnostics.tools@4.0.1
-system.diagnostics.tools@4.3.0
-system.diagnostics.tracesource@4.3.0
-system.diagnostics.tracing@4.3.0
-system.drawing.common@4.7.0
-system.drawing.common@6.0.0
-system.dynamic.runtime@4.0.11
-system.dynamic.runtime@4.3.0
-system.globalization.calendars@4.3.0
-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.3.0
-system.io.compression@4.3.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.pipelines@4.7.3
-system.io.pipelines@5.0.1
-system.io@4.1.0
-system.io@4.3.0
-system.linq.async@6.0.1
-system.linq.expressions@4.1.0
-system.linq.expressions@4.3.0
-system.linq@4.1.0
-system.linq@4.3.0
-system.memory@4.5.3
-system.memory@4.5.4
-system.net.http@4.3.0
-system.net.nameresolution@4.3.0
-system.net.primitives@4.3.0
-system.net.sockets@4.3.0
-system.net.websockets@4.3.0
-system.numerics.vectors@4.4.0
-system.objectmodel@4.0.12
-system.objectmodel@4.3.0
-system.private.uri@4.3.0
-system.reactive@4.4.1
-system.reflection.emit.ilgeneration@4.0.1
-system.reflection.emit.ilgeneration@4.3.0
-system.reflection.emit.lightweight@4.0.1
-system.reflection.emit.lightweight@4.3.0
-system.reflection.emit@4.0.1
-system.reflection.emit@4.3.0
-system.reflection.extensions@4.0.1
-system.reflection.extensions@4.3.0
-system.reflection.metadata@1.6.0
-system.reflection.metadata@5.0.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.extensions@4.6.0
-system.resources.resourcemanager@4.0.1
-system.resources.resourcemanager@4.3.0
-system.runtime.caching@6.0.0
-system.runtime.compilerservices.unsafe@4.4.0
-system.runtime.compilerservices.unsafe@4.5.2
-system.runtime.compilerservices.unsafe@4.7.0
-system.runtime.compilerservices.unsafe@4.7.1
-system.runtime.compilerservices.unsafe@5.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.numerics@4.3.0
-system.runtime.serialization.primitives@4.1.1
-system.runtime@4.1.0
-system.runtime@4.3.0
-system.security.accesscontrol@4.6.0
-system.security.accesscontrol@4.7.0
-system.security.accesscontrol@6.0.0
-system.security.claims@4.3.0
-system.security.cryptography.algorithms@4.3.0
-system.security.cryptography.cng@4.3.0
-system.security.cryptography.cng@4.7.0
-system.security.cryptography.csp@4.3.0
-system.security.cryptography.encoding@4.3.0
-system.security.cryptography.openssl@4.3.0
-system.security.cryptography.pkcs@4.7.0
-system.security.cryptography.primitives@4.3.0
-system.security.cryptography.protecteddata@4.7.0
-system.security.cryptography.protecteddata@6.0.0
-system.security.cryptography.x509certificates@4.3.0
-system.security.cryptography.xml@4.7.0
-system.security.permissions@4.7.0
-system.security.permissions@6.0.0
-system.security.principal.windows@4.3.0
-system.security.principal.windows@4.6.0
-system.security.principal.windows@4.7.0
-system.security.principal@4.3.0
-system.text.encoding.codepages@4.0.1
-system.text.encoding.codepages@4.5.1
-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.json@4.7.0
-system.text.json@5.0.2
-system.text.regularexpressions@4.1.0
-system.text.regularexpressions@4.3.0
-system.threading.channels@4.7.1
-system.threading.tasks.dataflow@4.9.0
-system.threading.tasks.extensions@4.0.0
-system.threading.tasks.extensions@4.3.0
-system.threading.tasks.extensions@4.5.3
-system.threading.tasks.extensions@4.5.4
-system.threading.tasks@4.0.11
-system.threading.tasks@4.3.0
-system.threading.threadpool@4.3.0
-system.threading.timer@4.3.0
-system.threading@4.0.11
-system.threading@4.3.0
-system.windows.extensions@4.7.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.xdocument@4.3.0
-system.xml.xmldocument@4.3.0
-tomlyn@0.16.2
-validation@2.4.18
-xunit.abstractions@2.0.2
-xunit.abstractions@2.0.3
-xunit.analyzers@0.10.0
-xunit.analyzers@1.0.0
-xunit.assert@2.4.1
-xunit.assert@2.4.2
-xunit.assertmessages@2.4.0
-xunit.core@2.4.1
-xunit.core@2.4.2
-xunit.extensibility.core@2.4.0
-xunit.extensibility.core@2.4.1
-xunit.extensibility.core@2.4.2
-xunit.extensibility.execution@2.4.0
-xunit.extensibility.execution@2.4.1
-xunit.extensibility.execution@2.4.2
-xunit.runner.visualstudio@2.4.3
-xunit.runner.visualstudio@2.5.1
-xunit.skippablefact@1.4.8
-xunit@2.4.1
-xunit@2.4.2
-"
-
-inherit check-reqs dotnet-pkg edo java-pkg-2 multiprocessing python-any-r1
-
-DESCRIPTION="Dafny is a verification-aware programming language"
-HOMEPAGE="https://dafny.org/
- https://github.com/dafny-lang/dafny/"
-
-if [[ "${PV}" == *9999* ]] ; then
- inherit git-r3
-
- EGIT_REPO_URI="https://github.com/dafny-lang/${PN}.git"
-else
- SRC_URI="https://github.com/dafny-lang/${PN}/archive/v${PV}.tar.gz
- -> ${P}.tar.gz"
-
- KEYWORDS="amd64"
-fi
-
-SRC_URI+="
- ${NUGET_URIS}
- test? ( https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz )
-"
-
-LICENSE="MIT"
-SLOT="0"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- !dev-lang/dafny-bin
- >=virtual/jre-1.8:*
- sci-mathematics/z3
-"
-DEPEND="
- >=virtual/jdk-1.8:*
-"
-BDEPEND="
- ${RDEPEND}
- dev-dotnet/coco
- test? (
- ${PYTHON_DEPS}
- dev-lang/boogie
- dev-lang/go
- dev-python/OutputCheck
- dev-python/lit
- net-libs/nodejs[npm]
- )
-"
-
-CHECKREQS_DISK_BUILD="2G"
-DOTNET_PKG_PROJECTS=(
- "${S}/Source/Dafny/Dafny.csproj"
- "${S}/Source/TestDafny/TestDafny.csproj"
-)
-
-PATCHES=(
- "${FILESDIR}/${PN}-3.12.0-DafnyCore-csproj.patch"
- "${FILESDIR}/${PN}-3.12.0-DafnyRuntime-csproj.patch"
- "${FILESDIR}/${PN}-4.4.0-lit-config.patch"
- "${FILESDIR}/${PN}-4.4.0-lit-system-boogie.patch"
-)
-
-DOCS=(
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- NOTICES.txt
- README.md
- RELEASE_NOTES.md
- docs/DafnyCheatsheet.pdf
- docs/DafnyRef/out/DafnyRef.pdf
-)
-
-TEST_S="${S}/Source/IntegrationTests/TestFiles/LitTests/LitTest"
-
-pkg_setup() {
- # Clean the environment.
- unset NPM_CONFIG_USERCONFIG
-
- if [[ -n "${_JAVA_OPTIONS}" ]] ; then
- ewarn "Cleaning _JAVA_OPTIONS because when set compile and test may fail"
-
- unset _JAVA_OPTIONS
- fi
-
- check-reqs_pkg_setup
- dotnet-pkg_pkg_setup
- java-pkg-2_pkg_setup
-
- # We need to set up Python only for running test tools (called via lit).
- if use test ; then
- python-any-r1_pkg_setup
- fi
-}
-
-src_unpack() {
- dotnet-pkg_src_unpack
-
- if [[ -n "${EGIT_REPO_URI}" ]] ; then
- git-r3_src_unpack
- fi
-}
-
-src_prepare() {
- # Using "for-each-compiler" will fail because of Cargo requiring network access.
- while read -r test_file ; do
- if grep "// RUN: %testDafnyForEachCompiler" "${test_file}" >/dev/null ; then
- rm "${test_file}" || die
- fi
- done < <(find "${TEST_S}" -type f -name "*.dfy")
-
- # Remove bad tests (recursive).
- local -a bad_tests=(
- # Following tests fail:
- VSComp2010/Problem2-Invert.dfy
- auditor/TestAuditor.dfy
- benchmarks/sequence-race/SequenceRace.dfy
- dafny0/Fuel.legacy.dfy
- dafny0/JavaUseRuntimeLib.dfy
- dafny0/Stdin.dfy
- dafny4/Lucas-up.legacy.dfy
- git-issues/git-issue-2026.dfy
- git-issues/git-issue-2299.dfy
- git-issues/git-issue-2301.dfy
- separate-verification/assumptions.dfy
- server/counterexample_none.transcript
- wishlist/exists-b-exists-not-b.dfy
-
- # Following tests are very slow:
- VSI-Benchmarks/b4.dfy
- comp/CompileWithArguments.dfy
- comp/MainMethod.dfy
- comp/compile3/JustRun.dfy
- concurrency/07-CounterThreadOwnership.dfy
- concurrency/09-CounterNoStateMachine.dfy
- concurrency/10-SequenceInvariant.dfy
- concurrency/12-MutexLifetime-short.dfy
- dafny1/SchorrWaite.dfy
- dafny2/SnapshotableTrees.dfy
- dafny4/git-issue250.dfy
- git-issues/git-issue-Main4.dfy
- git-issues/git-issue-MainE.dfy
- unicodechars/comp/CompileWithArguments.dfy
- )
- local bad_test
- for bad_test in "${bad_tests[@]}" ; do
- rm "${TEST_S}/${bad_test}" || die "failed to remove test ${bad_test}"
- done
-
- dotnet-pkg_src_prepare
-
- # Update lit's "lit.site.cfg" file.
- local dotnet_exec="${DOTNET_PKG_EXECUTABLE} exec ${DOTNET_PKG_OUTPUT}"
- local lit_config="${TEST_S}/lit.site.cfg"
-
- sed "/^defaultDafnyExecutable/s|=.*|= '${dotnet_exec}/Dafny.dll '|" \
- -i "${lit_config}" || die "failed to update ${lit_config}"
- sed "/^dafnyExecutable/s|=.*|= '${dotnet_exec}/Dafny.dll '|" \
- -i "${lit_config}" || die "failed to update ${lit_config}"
- sed "/^testDafnyExecutableCompiler/s|=.*|= '${dotnet_exec}/TestDafny.dll for-each-compiler '|" \
- -i "${lit_config}" || die "failed to update ${lit_config}"
- sed "/^testDafnyExecutableResolver/s|=.*|= '${dotnet_exec}/TestDafny.dll for-each-resolver '|" \
- -i "${lit_config}" || die "failed to update ${lit_config}"
- sed "/^defaultServerExecutable/s|=.*|= '${dotnet_exec}/DafnyServer.dll'|" \
- -i "${lit_config}" || die "failed to update ${lit_config}"
- sed "/^serverExecutable/s|=.*|= '${dotnet_exec}/DafnyServer.dll'|" \
- -i "${lit_config}" || die "failed to update ${lit_config}"
-}
-
-src_compile () {
- einfo "Building DafnyRuntimeJava JAR."
- local dafny_runtime_java="${S}/Source/DafnyRuntime/DafnyRuntimeJava"
- mkdir -p "${dafny_runtime_java}/build/libs/" || die
- pushd "${dafny_runtime_java}/build" || die
-
- ejavac -d ./ $(find "${dafny_runtime_java}/src/main" -type f -name "*.java")
- edo jar cvf "DafnyRuntime-${PV}.jar" dafny/*
-
- cp "DafnyRuntime-${PV}.jar" "${dafny_runtime_java}/build/libs/" || die
- popd || die
-
- # Build main dotnet package.
- dotnet-pkg_src_compile
-}
-
-src_test() {
- # The test "dafny0/DafnyLibClient.dfy" expects to use "DafnyRuntime.dll"
- # from the "Binaries" directory.
- ln -s "${DOTNET_PKG_OUTPUT}/DafnyRuntime.dll" "${S}/Binaries/" || die
-
- einfo "Installing bignumber.js package required for tests using NodeJS."
- local -a npm_opts=(
- --audit false
- --color false
- --foreground-scripts
- --offline
- --progress false
- --verbose
- )
- edob npm "${npm_opts[@]}" install "${DISTDIR}/bignumber.js-9.1.2.tgz"
-
- einfo "Starting tests using the lit test tool."
- local -a lit_opts=(
- --order=lexical
- --time-tests
- --verbose
- --workers="$(makeopts_jobs)"
- )
- edob lit "${lit_opts[@]}" "${TEST_S}"
-}
-
-src_install() {
- dotnet-pkg-base_install
-
- local -a dafny_exes=(
- Dafny
- DafnyDriver
- DafnyLanguageServer
- DafnyServer
- TestDafny
- )
- local dafny_exe
- for dafny_exe in "${dafny_exes[@]}" ; do
- dotnet-pkg-base_dolauncher "/usr/share/${P}/${dafny_exe}" "${dafny_exe}"
- done
-
- dosym -r /usr/bin/Dafny /usr/bin/dafny
- dosym -r /usr/bin/DafnyServer /usr/bin/dafny-server
-
- einstalldocs
-}
diff --git a/dev-lang/dafny/dafny-4.5.0.ebuild b/dev-lang/dafny/dafny-4.5.0.ebuild
deleted file mode 100644
index 601423b0fbfa..000000000000
--- a/dev-lang/dafny/dafny-4.5.0.ebuild
+++ /dev/null
@@ -1,624 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..12} )
-
-DOTNET_PKG_COMPAT=6.0
-NUGETS="
-boogie.abstractinterpretation@3.1.3
-boogie.basetypes@3.1.3
-boogie.codecontractsextender@3.1.3
-boogie.concurrency@3.1.3
-boogie.core@3.1.3
-boogie.executionengine@3.1.3
-boogie.graph@3.1.3
-boogie.houdini@3.1.3
-boogie.model@3.1.3
-boogie.provers.smtlib@3.1.3
-boogie.vcexpr@3.1.3
-boogie.vcgeneration@3.1.3
-castle.core@4.4.0
-commandlineparser@2.8.0
-commandlineparser@2.9.1
-coverlet.collector@3.2.0
-diffplex@1.7.0
-humanizer.core@2.2.0
-jetbrains.annotations@2021.1.0
-mediatr@8.1.0
-microsoft.bcl.asyncinterfaces@1.1.1
-microsoft.bcl.asyncinterfaces@5.0.0
-microsoft.bcl.asyncinterfaces@6.0.0
-microsoft.build.framework@17.0.0
-microsoft.build.locator@1.4.1
-microsoft.build.tasks.core@17.0.0
-microsoft.build.utilities.core@17.0.0
-microsoft.build@17.0.0
-microsoft.codeanalysis.analyzers@3.0.0
-microsoft.codeanalysis.analyzers@3.3.2
-microsoft.codeanalysis.common@3.7.0
-microsoft.codeanalysis.common@4.0.1
-microsoft.codeanalysis.csharp.workspaces@4.0.1
-microsoft.codeanalysis.csharp@3.7.0
-microsoft.codeanalysis.csharp@4.0.1
-microsoft.codeanalysis.visualbasic.workspaces@4.0.1
-microsoft.codeanalysis.visualbasic@4.0.1
-microsoft.codeanalysis.workspaces.common@4.0.1
-microsoft.codeanalysis.workspaces.msbuild@4.0.1
-microsoft.codeanalysis@4.0.1
-microsoft.codecoverage@16.11.0
-microsoft.codecoverage@16.9.4
-microsoft.codecoverage@17.1.0
-microsoft.csharp@4.0.1
-microsoft.dotnet.platformabstractions@2.0.4
-microsoft.extensions.configuration.abstractions@2.0.0
-microsoft.extensions.configuration.abstractions@5.0.0
-microsoft.extensions.configuration.binder@2.0.0
-microsoft.extensions.configuration.binder@5.0.0
-microsoft.extensions.configuration.commandline@5.0.0
-microsoft.extensions.configuration.fileextensions@5.0.0
-microsoft.extensions.configuration.json@5.0.0
-microsoft.extensions.configuration@2.0.0
-microsoft.extensions.configuration@5.0.0
-microsoft.extensions.dependencyinjection.abstractions@2.0.0
-microsoft.extensions.dependencyinjection.abstractions@5.0.0
-microsoft.extensions.dependencyinjection@2.0.0
-microsoft.extensions.dependencyinjection@5.0.0
-microsoft.extensions.dependencymodel@2.0.4
-microsoft.extensions.fileproviders.abstractions@5.0.0
-microsoft.extensions.fileproviders.physical@5.0.0
-microsoft.extensions.filesystemglobbing@5.0.0
-microsoft.extensions.logging.abstractions@2.0.0
-microsoft.extensions.logging.abstractions@5.0.0
-microsoft.extensions.logging.configuration@5.0.0
-microsoft.extensions.logging.console@5.0.0
-microsoft.extensions.logging@2.0.0
-microsoft.extensions.logging@5.0.0
-microsoft.extensions.options.configurationextensions@2.0.0
-microsoft.extensions.options.configurationextensions@5.0.0
-microsoft.extensions.options@2.0.0
-microsoft.extensions.options@5.0.0
-microsoft.extensions.primitives@2.0.0
-microsoft.extensions.primitives@5.0.0
-microsoft.net.stringtools@1.0.0
-microsoft.net.test.sdk@16.11.0
-microsoft.net.test.sdk@16.9.4
-microsoft.net.test.sdk@17.1.0
-microsoft.netcore.platforms@1.0.1
-microsoft.netcore.platforms@1.1.0
-microsoft.netcore.platforms@2.1.2
-microsoft.netcore.platforms@3.0.0
-microsoft.netcore.platforms@3.1.0
-microsoft.netcore.targets@1.0.1
-microsoft.netcore.targets@1.1.0
-microsoft.netframework.referenceassemblies.net452@1.0.2
-microsoft.netframework.referenceassemblies@1.0.2
-microsoft.testplatform.extensions.trxlogger@17.9.0
-microsoft.testplatform.objectmodel@16.11.0
-microsoft.testplatform.objectmodel@16.9.4
-microsoft.testplatform.objectmodel@17.1.0
-microsoft.testplatform.objectmodel@17.9.0
-microsoft.testplatform.testhost@16.11.0
-microsoft.testplatform.testhost@16.9.4
-microsoft.testplatform.testhost@17.1.0
-microsoft.testplatform.testhost@17.9.0
-microsoft.visualstudio.threading.analyzers@16.7.56
-microsoft.visualstudio.threading@16.7.56
-microsoft.visualstudio.validation@15.5.31
-microsoft.win32.primitives@4.3.0
-microsoft.win32.registry@4.3.0
-microsoft.win32.registry@4.6.0
-microsoft.win32.systemevents@4.7.0
-microsoft.win32.systemevents@6.0.0
-moq@4.16.1
-nerdbank.streams@2.6.81
-netstandard.library@1.6.1
-netstandard.library@2.0.3
-newtonsoft.json@11.0.2
-newtonsoft.json@13.0.1
-newtonsoft.json@9.0.1
-nuget.frameworks@5.0.0
-nuget.frameworks@5.11.0
-omnisharp.extensions.jsonrpc.generators@0.19.5
-omnisharp.extensions.jsonrpc.testing@0.19.5
-omnisharp.extensions.jsonrpc@0.19.5
-omnisharp.extensions.languageclient@0.19.5
-omnisharp.extensions.languageprotocol.testing@0.19.5
-omnisharp.extensions.languageprotocol@0.19.5
-omnisharp.extensions.languageserver.shared@0.19.5
-omnisharp.extensions.languageserver@0.19.5
-rangetree@3.0.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.3.0
-runtime.native.system.net.http@4.3.0
-runtime.native.system.security.cryptography.apple@4.3.0
-runtime.native.system.security.cryptography.openssl@4.3.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.apple@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
-serilog.extensions.logging@3.0.1
-serilog.settings.configuration@3.1.0
-serilog.sinks.debug@2.0.0
-serilog.sinks.file@5.0.0
-serilog.sinks.inmemory@0.11.0
-serilog@2.12.0
-system.appcontext@4.1.0
-system.appcontext@4.3.0
-system.buffers@4.3.0
-system.buffers@4.4.0
-system.codedom@4.4.0
-system.collections.concurrent@4.3.0
-system.collections.immutable@1.5.0
-system.collections.immutable@1.7.0
-system.collections.immutable@1.7.1
-system.collections.immutable@5.0.0
-system.collections.nongeneric@4.3.0
-system.collections.specialized@4.3.0
-system.collections@4.0.11
-system.collections@4.3.0
-system.commandline@2.0.0-beta4.22272.1
-system.componentmodel.primitives@4.3.0
-system.componentmodel.typeconverter@4.3.0
-system.componentmodel@4.3.0
-system.composition.attributedmodel@1.0.31
-system.composition.convention@1.0.31
-system.composition.hosting@1.0.31
-system.composition.runtime@1.0.31
-system.composition.typedparts@1.0.31
-system.composition@1.0.31
-system.configuration.configurationmanager@4.7.0
-system.configuration.configurationmanager@6.0.0
-system.console@4.3.0
-system.diagnostics.debug@4.0.11
-system.diagnostics.debug@4.3.0
-system.diagnostics.diagnosticsource@4.3.0
-system.diagnostics.tools@4.0.1
-system.diagnostics.tools@4.3.0
-system.diagnostics.tracesource@4.3.0
-system.diagnostics.tracing@4.3.0
-system.drawing.common@4.7.0
-system.drawing.common@6.0.0
-system.dynamic.runtime@4.0.11
-system.dynamic.runtime@4.3.0
-system.globalization.calendars@4.3.0
-system.globalization.extensions@4.3.0
-system.globalization@4.0.11
-system.globalization@4.3.0
-system.io.compression.zipfile@4.3.0
-system.io.compression@4.3.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.pipelines@4.7.3
-system.io.pipelines@5.0.1
-system.io@4.1.0
-system.io@4.3.0
-system.linq.async@6.0.1
-system.linq.expressions@4.1.0
-system.linq.expressions@4.3.0
-system.linq@4.1.0
-system.linq@4.3.0
-system.memory@4.5.3
-system.memory@4.5.4
-system.net.http@4.3.0
-system.net.nameresolution@4.3.0
-system.net.primitives@4.3.0
-system.net.sockets@4.3.0
-system.net.websockets@4.3.0
-system.numerics.vectors@4.4.0
-system.objectmodel@4.0.12
-system.objectmodel@4.3.0
-system.private.uri@4.3.0
-system.reactive@4.4.1
-system.reflection.emit.ilgeneration@4.0.1
-system.reflection.emit.ilgeneration@4.3.0
-system.reflection.emit.lightweight@4.0.1
-system.reflection.emit.lightweight@4.3.0
-system.reflection.emit@4.0.1
-system.reflection.emit@4.3.0
-system.reflection.extensions@4.0.1
-system.reflection.extensions@4.3.0
-system.reflection.metadata@1.6.0
-system.reflection.metadata@5.0.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.extensions@4.6.0
-system.resources.resourcemanager@4.0.1
-system.resources.resourcemanager@4.3.0
-system.runtime.caching@6.0.0
-system.runtime.compilerservices.unsafe@4.4.0
-system.runtime.compilerservices.unsafe@4.5.2
-system.runtime.compilerservices.unsafe@4.7.0
-system.runtime.compilerservices.unsafe@4.7.1
-system.runtime.compilerservices.unsafe@5.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.numerics@4.3.0
-system.runtime.serialization.primitives@4.1.1
-system.runtime@4.1.0
-system.runtime@4.3.0
-system.security.accesscontrol@4.6.0
-system.security.accesscontrol@4.7.0
-system.security.accesscontrol@6.0.0
-system.security.claims@4.3.0
-system.security.cryptography.algorithms@4.3.0
-system.security.cryptography.cng@4.3.0
-system.security.cryptography.cng@4.7.0
-system.security.cryptography.csp@4.3.0
-system.security.cryptography.encoding@4.3.0
-system.security.cryptography.openssl@4.3.0
-system.security.cryptography.pkcs@4.7.0
-system.security.cryptography.primitives@4.3.0
-system.security.cryptography.protecteddata@4.7.0
-system.security.cryptography.protecteddata@6.0.0
-system.security.cryptography.x509certificates@4.3.0
-system.security.cryptography.xml@4.7.0
-system.security.permissions@4.7.0
-system.security.permissions@6.0.0
-system.security.principal.windows@4.3.0
-system.security.principal.windows@4.6.0
-system.security.principal.windows@4.7.0
-system.security.principal@4.3.0
-system.text.encoding.codepages@4.0.1
-system.text.encoding.codepages@4.5.1
-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.json@4.7.0
-system.text.json@5.0.2
-system.text.regularexpressions@4.1.0
-system.text.regularexpressions@4.3.0
-system.threading.channels@4.7.1
-system.threading.tasks.dataflow@4.9.0
-system.threading.tasks.extensions@4.0.0
-system.threading.tasks.extensions@4.3.0
-system.threading.tasks.extensions@4.5.3
-system.threading.tasks.extensions@4.5.4
-system.threading.tasks@4.0.11
-system.threading.tasks@4.3.0
-system.threading.threadpool@4.3.0
-system.threading.timer@4.3.0
-system.threading@4.0.11
-system.threading@4.3.0
-system.windows.extensions@4.7.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.xdocument@4.3.0
-system.xml.xmldocument@4.3.0
-tomlyn@0.16.2
-validation@2.4.18
-xunit.abstractions@2.0.2
-xunit.abstractions@2.0.3
-xunit.analyzers@0.10.0
-xunit.analyzers@1.0.0
-xunit.assert@2.4.1
-xunit.assert@2.4.2
-xunit.assertmessages@2.4.0
-xunit.core@2.4.1
-xunit.core@2.4.2
-xunit.extensibility.core@2.4.0
-xunit.extensibility.core@2.4.1
-xunit.extensibility.core@2.4.2
-xunit.extensibility.execution@2.4.0
-xunit.extensibility.execution@2.4.1
-xunit.extensibility.execution@2.4.2
-xunit.runner.visualstudio@2.4.3
-xunit.runner.visualstudio@2.5.1
-xunit.skippablefact@1.4.8
-xunit@2.4.1
-xunit@2.4.2
-"
-
-inherit check-reqs dotnet-pkg edo java-pkg-2 multiprocessing python-any-r1 optfeature
-
-DESCRIPTION="Dafny is a verification-aware programming language"
-HOMEPAGE="https://dafny.org/
- https://github.com/dafny-lang/dafny/"
-
-if [[ "${PV}" == *9999* ]] ; then
- inherit git-r3
-
- EGIT_REPO_URI="https://github.com/dafny-lang/${PN}.git"
-else
- SRC_URI="https://github.com/dafny-lang/${PN}/archive/v${PV}.tar.gz
- -> ${P}.tar.gz"
-
- KEYWORDS="~amd64"
-fi
-
-SRC_URI+="
- ${NUGET_URIS}
- test? ( https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz )
-"
-
-LICENSE="MIT"
-SLOT="0"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- !dev-lang/dafny-bin
- >=virtual/jre-1.8:*
- sci-mathematics/z3
-"
-DEPEND="
- >=virtual/jdk-1.8:*
-"
-BDEPEND="
- ${RDEPEND}
- dev-dotnet/coco
- test? (
- ${PYTHON_DEPS}
- dev-go/go-tools
- dev-lang/boogie
- dev-lang/go
- dev-python/OutputCheck
- dev-python/lit
- dev-python/psutil
- net-libs/nodejs[npm]
- )
-"
-
-CHECKREQS_DISK_BUILD="2G"
-DOTNET_PKG_PROJECTS=(
- "${S}/Source/Dafny/Dafny.csproj"
-)
-
-PATCHES=(
- "${FILESDIR}/${PN}-3.12.0-DafnyCore-csproj.patch"
- "${FILESDIR}/${PN}-3.12.0-DafnyRuntime-csproj.patch"
- "${FILESDIR}/${PN}-4.5.0-lit-config.patch"
-)
-
-DOCS=(
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- NOTICES.txt
- README.md
- RELEASE_NOTES.md
- docs/DafnyCheatsheet.pdf
- docs/DafnyRef/out/DafnyRef.pdf
-)
-
-TEST_S="${S}/Source/IntegrationTests/TestFiles/LitTests/LitTest"
-
-pkg_setup() {
- # Clean the environment.
- unset NPM_CONFIG_USERCONFIG
-
- if [[ -n "${_JAVA_OPTIONS}" ]] ; then
- ewarn "Cleaning _JAVA_OPTIONS because when set compile and test may fail"
-
- unset _JAVA_OPTIONS
- fi
-
- check-reqs_pkg_setup
- dotnet-pkg_pkg_setup
- java-pkg-2_pkg_setup
-
- # We need to set up Python only for running test tools (called via lit).
- if use test ; then
- python-any-r1_pkg_setup
- fi
-}
-
-src_unpack() {
- dotnet-pkg_src_unpack
-
- if [[ -n "${EGIT_REPO_URI}" ]] ; then
- git-r3_src_unpack
- fi
-}
-
-src_prepare() {
- # Using "for-each-compiler" will fail because of Cargo requiring network access.
- while read -r test_file ; do
- if grep "// RUN: %testDafnyForEachCompiler" "${test_file}" >/dev/null ; then
- rm "${test_file}" || die "failed to remove test ${bad_test}"
- fi
- done < <(find "${TEST_S}" -type f -name "*.dfy")
-
- # Remove bad tests (recursive).
- local -a bad_tests=(
- # Following tests fail:
- VSComp2010/Problem2-Invert.dfy
- auditor/TestAuditor.dfy
- benchmarks/sequence-race/SequenceRace.dfy
- comp/CoverageReport.dfy
- concurrency/06-ThreadOwnership.dfy
- dafny0/Fuel.legacy.dfy
- dafny0/Stdin.dfy
- dafny1/MoreInduction.dfy
- dafny4/Lucas-up.legacy.dfy
- dafny4/Primes.dfy
- examples/Simple_compiler/Compiler.dfy
- git-issues/git-issue-2026.dfy
- git-issues/git-issue-2299.dfy
- git-issues/git-issue-2301.dfy
- git-issues/git-issue-505.dfy
- metatests/InconsistentCompilerBehavior.dfy
- metatests/TestBeyondVerifierExpect.dfy
- separate-verification/assumptions.dfy
- server/counterexample_none.transcript
- triggers/emptyTrigger.dfy
- unicodechars/DafnyTests/RunAllTestsOption.dfy
- vstte2012/Combinators.dfy
- wishlist/exists-b-exists-not-b.dfy
-
- # Following tests are very slow:
- DafnyTests/RunAllTests/RunAllTestsOption.dfy
- VSI-Benchmarks/b4.dfy
- blogposts/TestGenerationNoInliningEnumerativeDefinitions.dfy
- comp/BranchCoverage.dfy
- comp/CompileWithArguments.dfy
- comp/Extern.dfy
- comp/MainMethod.dfy
- comp/Print.dfy
- comp/SequenceConcatOptimization.dfy
- comp/compile1quiet/CompileRunQuietly.dfy
- comp/compile1verbose/CompileAndThenRun.dfy
- comp/compile3/JustRun.dfy
- comp/manualcompile/ManualCompile.dfy
- comp/replaceables/complex/user.dfy
- concurrency/07-CounterThreadOwnership.dfy
- concurrency/08-CounterNoTermination.dfy
- concurrency/09-CounterNoStateMachine.dfy
- concurrency/10-SequenceInvariant.dfy
- concurrency/12-MutexLifetime-short.dfy
- dafny0/RlimitMultiplier.dfy
- dafny1/SchorrWaite.dfy
- dafny2/SnapshotableTrees.dfy
- dafny4/git-issue250.dfy
- git-issues/git-issue-Main4.dfy
- git-issues/git-issue-MainE.dfy
- unicodechars/comp/CompileWithArguments.dfy
- )
- local bad_test
- for bad_test in "${bad_tests[@]}" ; do
- if [[ -f "${TEST_S}/${bad_test}" ]] ; then
- rm "${TEST_S}/${bad_test}" || die "failed to remove test ${bad_test}"
- else
- ewarn "Test file ${bad_test} does not exist"
- fi
- done
-
- dotnet-pkg_src_prepare
-
- # Update lit's "lit.site.cfg" file.
- local dotnet_exec="${DOTNET_PKG_EXECUTABLE} exec ${DOTNET_PKG_OUTPUT}"
- local lit_config="${TEST_S}/lit.site.cfg"
-
- sed -i "${lit_config}" \
- -e "/^defaultDafnyExecutable/s|=.*|= '${dotnet_exec}/Dafny.dll '|" \
- -e "/^dafnyExecutable/s|=.*|= '${dotnet_exec}/Dafny.dll '|" \
- -e "/^defaultServerExecutable/s|=.*|= '${dotnet_exec}/DafnyServer.dll'|" \
- -e "/^serverExecutable/s|=.*|= '${dotnet_exec}/DafnyServer.dll'|" \
- -e "s|dotnet run |${DOTNET_PKG_EXECUTABLE} run |g" \
- || die "failed to update ${lit_config}"
-}
-
-src_compile () {
- einfo "Building DafnyRuntimeJava JAR."
- local dafny_runtime_java="${S}/Source/DafnyRuntime/DafnyRuntimeJava"
- mkdir -p "${dafny_runtime_java}/build/libs/" || die
- pushd "${dafny_runtime_java}/build" || die
-
- ejavac -d ./ $(find "${dafny_runtime_java}/src/main" -type f -name "*.java")
- edo jar cvf "DafnyRuntime-${PV}.jar" dafny/*
-
- cp "DafnyRuntime-${PV}.jar" "${dafny_runtime_java}/build/libs/" || die
- popd || die
-
- # Build main dotnet package.
- dotnet-pkg_src_compile
-
- if use test ; then
- # Build "TestDafny" without saving artifacts.
- edotnet build \
- --configuration Debug \
- --no-self-contained \
- -maxCpuCount:$(makeopts_jobs) \
- "${S}/Source/TestDafny/TestDafny.csproj"
- fi
-}
-
-src_test() {
- # Dafny GOLang transpiler tests need "goimports" from "/usr/lib/go/bin".
- local -x PATH="${EPREFIX}/usr/lib/go/bin:${PATH}"
-
- einfo "Installing bignumber.js package required for tests using NodeJS."
- local -a npm_opts=(
- --audit false
- --color false
- --foreground-scripts
- --offline
- --progress false
- --verbose
- )
- edob npm "${npm_opts[@]}" install "${DISTDIR}/bignumber.js-9.1.2.tgz"
-
- einfo "Starting tests using the lit test tool."
- local -a lit_opts=(
- --order=lexical
- --time-tests
- --timeout 1800 # Let one test take no mere than half a hour.
- --verbose
- --workers="$(makeopts_jobs)"
- )
- edob lit "${lit_opts[@]}" "${TEST_S}"
-}
-
-src_install() {
- dotnet-pkg-base_install
-
- local -a dafny_exes=(
- Dafny
- DafnyDriver
- DafnyLanguageServer
- DafnyServer
- TestDafny
- )
- local dafny_exe
- for dafny_exe in "${dafny_exes[@]}" ; do
- dotnet-pkg-base_dolauncher "/usr/share/${P}/${dafny_exe}" "${dafny_exe}"
- done
-
- dosym -r /usr/bin/Dafny /usr/bin/dafny
- dosym -r /usr/bin/DafnyServer /usr/bin/dafny-server
-
- einstalldocs
-}
-
-pkg_postinst() {
- optfeature "Dafny GO language backend" dev-go/go-tools
- optfeature "Dafny Rust language backend" virtual/rust
-}
diff --git a/dev-lang/dafny/dafny-4.6.0.ebuild b/dev-lang/dafny/dafny-4.6.0.ebuild
index ca5c0f6861e7..0ca08b0d4f0f 100644
--- a/dev-lang/dafny/dafny-4.6.0.ebuild
+++ b/dev-lang/dafny/dafny-4.6.0.ebuild
@@ -372,7 +372,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+="
@@ -473,6 +473,9 @@ src_prepare() {
VSComp2010/Problem2-Invert.dfy
auditor/TestAuditor.dfy
benchmarks/sequence-race/SequenceRace.dfy
+ c++/extern.dfy
+ c++/functions.dfy
+ c++/tuple.dfy
cli/runArgument.dfy
comp/CoverageReport.dfy
concurrency/06-ThreadOwnership.dfy
@@ -597,7 +600,7 @@ src_test() {
--verbose
--workers="$(makeopts_jobs)"
)
- edob lit "${lit_opts[@]}" "${TEST_S}"
+ edo lit "${lit_opts[@]}" "${TEST_S}"
}
src_install() {
diff --git a/dev-lang/dafny/files/dafny-4.4.0-lit-config.patch b/dev-lang/dafny/files/dafny-4.4.0-lit-config.patch
deleted file mode 100644
index 31e6619c0c44..000000000000
--- a/dev-lang/dafny/files/dafny-4.4.0-lit-config.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/Source/IntegrationTests/TestFiles/LitTests/LitTest/lit.site.cfg
-+++ b/Source/IntegrationTests/TestFiles/LitTests/LitTest/lit.site.cfg
-@@ -215,9 +215,9 @@ def find(name, rooot):
- return name
- return ""
-
-+import shutil
- solverPath = \
-- find("z3-4.12.1", binaryDir) or \
-- find("cvc4", binaryDir)
-+ shutil.which("z3")
-
- if not solverPath:
- lit_config.fatal('Could not find solver')
diff --git a/dev-lang/dafny/files/dafny-4.4.0-lit-system-boogie.patch b/dev-lang/dafny/files/dafny-4.4.0-lit-system-boogie.patch
deleted file mode 100644
index b661ccf96af6..000000000000
--- a/dev-lang/dafny/files/dafny-4.4.0-lit-system-boogie.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Source/IntegrationTests/TestFiles/LitTests/LitTest/lit.site.cfg
-+++ b/Source/IntegrationTests/TestFiles/LitTests/LitTest/lit.site.cfg
-@@ -107,7 +107,7 @@ testDafnyExecutable = 'dotnet-bin-6.0 exec /var/tmp/portage/dev-lang/dafny-4.2.0
- defaultServerExecutable = 'dotnet-bin-6.0 exec /var/tmp/portage/dev-lang/dafny-4.2.0/work/dafny-4.2.0_net6.0_Release/DafnyServer.dll'
- serverExecutable = 'dotnet-bin-6.0 exec /var/tmp/portage/dev-lang/dafny-4.2.0/work/dafny-4.2.0_net6.0_Release/DafnyServer.dll'
-
--boogieExecutable = 'dotnet tool run boogie'
-+boogieExecutable = 'boogie'
-
- config.suffixes.append('.transcript')
-
diff --git a/dev-lang/dzaima-bqn/dzaima-bqn-0.2.1.ebuild b/dev-lang/dzaima-bqn/dzaima-bqn-0.2.1.ebuild
index de1b210a761b..6ea55f8362e1 100644
--- a/dev-lang/dzaima-bqn/dzaima-bqn-0.2.1.ebuild
+++ b/dev-lang/dzaima-bqn/dzaima-bqn-0.2.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -46,7 +46,7 @@ src_compile() {
}
src_test() {
- edob java -jar "${BUILD_JAR}" -f "${S}"/test/test
+ edo java -jar "${BUILD_JAR}" -f "${S}"/test/test
}
src_install() {
diff --git a/dev-lang/dzaima-bqn/dzaima-bqn-9999.ebuild b/dev-lang/dzaima-bqn/dzaima-bqn-9999.ebuild
index 9c7b4bd92031..1f962b56b85c 100644
--- a/dev-lang/dzaima-bqn/dzaima-bqn-9999.ebuild
+++ b/dev-lang/dzaima-bqn/dzaima-bqn-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -46,7 +46,7 @@ src_compile() {
}
src_test() {
- edob java -jar "${BUILD_JAR}" -f "${S}"/test/test
+ edo java -jar "${BUILD_JAR}" -f "${S}"/test/test
}
src_install() {
diff --git a/dev-lang/eisl/Manifest b/dev-lang/eisl/Manifest
index d3b1f982cb5e..7fe8bf7792d3 100644
--- a/dev-lang/eisl/Manifest
+++ b/dev-lang/eisl/Manifest
@@ -1,2 +1,3 @@
-DIST eisl-3.70.tar.gz 2431916 BLAKE2B 113ff28ecc9312647a07602b03968d90760397b97262ba36e43caa7b4197808b23410387c222b77ab162aab31a988d6af30e37295f5fb6cb1c84b359355877f6 SHA512 a830ff39eb165fec4367e54d7d2a90e1a53405b151a89e455ae8ed8eee681aab3761ae0a71ae15a9e4f029c2c0ec7a31f4e9c03f2be385784c2c6100c2de63c4
-DIST eisl-3.72.tar.gz 2430755 BLAKE2B e64f249ada16fb291e3aeb29e2a3366936fe458f2ae1e1915b7577f1d212c577438debaf73ad2daae59af52c3b8a72253160b4cc84bd0f338c57dcb164b4a235 SHA512 bc73008732505e5b610dd4797302c4e37730bfbf17d46643c616f7aaa5bbd63a3f0909be3f047c1134302fb017827c2883ce7ec5e2bf9d96ee06bc77557c596d
+DIST eisl-3.90.tar.gz 2435398 BLAKE2B 168c96312783542d2011fc190bd471d9ed9f7f384cc38a5e05617b873623a44641e0fad155c1970b30edd333d03b77ad228798c7f340a63e26d64f79ad7f8cce SHA512 1295d77c25779258882541f4d2a3cd75eb31dbcd89c03144028bfc86453f69c90f822deaca5a20bd45c6361bb0ba74f544c344cd92e6bca6ce8983c36c1860d6
+DIST eisl-3.95.tar.gz 2438216 BLAKE2B 927af9a8b0469fcda16501a6fffba60eebc708dcfaba1b076b0ffe80396c285fc1fbb427694548418f76102451f7e37506686bf8d025decd04245e105fa618f7 SHA512 50e4159bbbc3c72fe985db3b2d77be63f2e8197027e97ac5af0e9316e5f817497bfc0a9f7cf0b0624bb8baf2cf28b5b94556ad77edcdee2e8e8a6d63a74e02a2
+DIST eisl-4.00.tar.gz 2299966 BLAKE2B fe2d4e486d459866870b0baa23d2eb32890e1661460116508bd18aa401ec71cb68395bf857c98ba749005dcfd0985ab628274800a32e749abf27a767a2ce8615 SHA512 0b4d225f6068a9ff05c6483663b68ae920a1f63e30b47e7350243a70902ae7f5818cf4713fdd45c223e858a4e435d5e93f0944965af1db3f8d9d48f0e2db8239
diff --git a/dev-lang/eisl/eisl-3.70.ebuild b/dev-lang/eisl/eisl-3.90.ebuild
index 1e6288f65690..1e6288f65690 100644
--- a/dev-lang/eisl/eisl-3.70.ebuild
+++ b/dev-lang/eisl/eisl-3.90.ebuild
diff --git a/dev-lang/eisl/eisl-3.72.ebuild b/dev-lang/eisl/eisl-3.95.ebuild
index 0ef48728bee1..0ef48728bee1 100644
--- a/dev-lang/eisl/eisl-3.72.ebuild
+++ b/dev-lang/eisl/eisl-3.95.ebuild
diff --git a/dev-lang/eisl/eisl-4.00.ebuild b/dev-lang/eisl/eisl-4.00.ebuild
new file mode 100644
index 000000000000..0ef48728bee1
--- /dev/null
+++ b/dev-lang/eisl/eisl-4.00.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Interpreter and compiler compatible with the ISLisp standard"
+HOMEPAGE="https://github.com/sasagawa888/eisl/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/sasagawa888/${PN}.git"
+else
+ SRC_URI="https://github.com/sasagawa888/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="BSD-2"
+SLOT="0"
+RESTRICT="test" # Tests run cppcheck (and fail)
+
+DOCS=( README{,-ja}.md documents )
+
+RDEPEND="
+ sys-libs/ncurses:=
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+PATCHES=( "${FILESDIR}/${PN}-3.60-Makefile.patch" )
+
+src_compile() {
+ emake CC="$(tc-getCC)" clean edlis eisl
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe edlis eisl
+
+ # Compilation of ISLisp files on installation fails.
+ # Do not compile them and mimic "make install".
+ insinto "/usr/share/${PN}"
+ doins -r library
+ doins fast.h ffi.h
+
+ einstalldocs
+}
diff --git a/dev-lang/elixir/Manifest b/dev-lang/elixir/Manifest
index 13f61765aa5e..8171ea81074e 100644
--- a/dev-lang/elixir/Manifest
+++ b/dev-lang/elixir/Manifest
@@ -1,6 +1,3 @@
-DIST elixir-1.13.4.tar.gz 2912984 BLAKE2B 3849e7be7d1ba54ac3f96690f158b60a3b7da720e85a6c2ef38b078da795c1debaff319133eae6d5e77a7159f452b2ee6a7ad9ebbf7339391e4ee9ae8838d848 SHA512 cd3a28cd227bf60f09500563b7ad4700b2688e0361f975268d5fa81b530aee80ed4f8640335bf08a8c544a2f5d79dbf96c97f281bd3bf4582466a73a9d2edbec
-DIST elixir-1.14.3.tar.gz 3086297 BLAKE2B b162ea35a762bc1e151c7844237f3167c97da9aae44bca9fe022d09cde6f6909103b383e67b2133b68e76c061c4ed05cdd081070bdbb48be85bbc0ed067fadfd SHA512 eec1e161364f823e26d79596d18b0ff7e6ade1c2c1f6f9ca84eb34d20fd90f434bbd29ef74cd41096e8f25e71d9cd1da0ec6f0a4f24c485124f9525b1ae2c4e0
DIST elixir-1.14.5.tar.gz 3076366 BLAKE2B cf1487c269b4f09c5a7771339782ddc5f6dc2d5f31bd098486824e1f50040462a55a6135e76a7d635461b8d61ce8ab45be2d1da86d60ecf0bc3c86c98b86531d SHA512 589482fb080eb9f71319b7927312ee255dab0376a8fb781533bc97b6a75dd71ec43cd022bb2eff12eca205cdeaf9a6d629f754c555c17cd6222e05912ff3d960
-DIST elixir-1.15.6.tar.gz 3150339 BLAKE2B c42571f0482add17d7b03c55ca0721569c5c54026b89d49c6d868410d817b348c1d82f615ecc084f7f8fe87633b3050e0f87c78184eb201fca1ceae939a605c7 SHA512 f41ada8b54faa8b070ad26b3cf05dd40fd66f952c1945c869d925f14f036f245341d0857815f58ba69acb7a519c06a5c2c166d41a6f637f1d0027d35b828e960
DIST elixir-1.15.7.tar.gz 3151775 BLAKE2B 62dc5e390f7b704fdab2be91b36faabc62aed097ec1a077476fee0e50717cfe527322d8eaf2afd90035bf1b4fb48803112ef4c7fded20f133b64cea3bee43c6d SHA512 a46f0569cbff342f15a04776f8d57cf2554867546004adabd9b9dff36c184ec56a78f2df2fc6c0855e65c11277662f694f5e6a8c6e1716cf4e22d8fdd5e1d4ae
DIST elixir-1.16.2.tar.gz 3357093 BLAKE2B 61ba738542d33e827f7352b7f0a27aa76fc06f037d35c56efd96be1c26e28be90b6f2998cd2cac0090e5da771f6c45ad12d68644e36a214de36c9e26d4ac9686 SHA512 1e90adcd5d0512d4b394276e431f3987fc61a3f6191cd5c1d0f7fdd82baba99747aa553a3583e0813ffb5a48a32ce02a24e27b641f86a61e421722a802a850c1
diff --git a/dev-lang/elixir/elixir-1.13.4-r1.ebuild b/dev-lang/elixir/elixir-1.13.4-r1.ebuild
deleted file mode 100644
index 1fb0c382166f..000000000000
--- a/dev-lang/elixir/elixir-1.13.4-r1.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2023 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#compatibility-between-elixir-and-erlang-otp
-DEPEND="
- >=dev-lang/erlang-22:0=[ssl]
- <dev-lang/erlang-26
-"
-# '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
- "${FILESDIR}"/${PN}-1.14.1-make44-parallel-build.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/elixir/elixir-1.14.3-r1.ebuild b/dev-lang/elixir/elixir-1.14.3-r1.ebuild
deleted file mode 100644
index 13dd40642c9d..000000000000
--- a/dev-lang/elixir/elixir-1.14.3-r1.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2023 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#compatibility-between-elixir-and-erlang-otp
-DEPEND="
- >=dev-lang/erlang-23:0=[ssl]
- <dev-lang/erlang-26
-"
-# '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
- "${FILESDIR}"/${PN}-1.14.1-make44-parallel-build.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/elixir/elixir-1.14.5-r1.ebuild b/dev-lang/elixir/elixir-1.14.5-r1.ebuild
deleted file mode 100644
index 359bc83d8d81..000000000000
--- a/dev-lang/elixir/elixir-1.14.5-r1.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# 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#compatibility-between-elixir-and-erlang-otp
-DEPEND="
- >=dev-lang/erlang-23:0=[ssl]
- <dev-lang/erlang-26.1
-"
-# '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
- "${FILESDIR}"/${PN}-1.14.1-make44-parallel-build.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/elixir/elixir-1.15.6.ebuild b/dev-lang/elixir/elixir-1.15.6.ebuild
deleted file mode 100644
index cfbe9e746fd9..000000000000
--- a/dev-lang/elixir/elixir-1.15.6.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# 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#compatibility-between-elixir-and-erlang-otp
-DEPEND="
- >=dev-lang/erlang-24:0=[ssl]
- <dev-lang/erlang-26.1
-"
-# '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/elixir/elixir-1.16.2.ebuild b/dev-lang/elixir/elixir-1.16.2.ebuild
index 429d175339cf..caa41ed09e6a 100644
--- a/dev-lang/elixir/elixir-1.16.2.ebuild
+++ b/dev-lang/elixir/elixir-1.16.2.ebuild
@@ -9,7 +9,7 @@ SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar
LICENSE="Apache-2.0 ErlPL-1.1"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ia64 ppc ~riscv ~sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/elpi/Manifest b/dev-lang/elpi/Manifest
index 6022c7d0f219..ba9daec0c496 100644
--- a/dev-lang/elpi/Manifest
+++ b/dev-lang/elpi/Manifest
@@ -1,2 +1,2 @@
-DIST elpi-1.17.0.tar.gz 2607106 BLAKE2B 7e6a2f1305ec69f93f7519bb8ced9e2b3d38106cf71a1506941f0c50e3af4959838fe01a092ddaad49f41de59aac34ff45c972099f1797d86ec2b446475c9391 SHA512 6539593bd4a4ff516f023601d4dbe10cf4c99d2fd99e5b6ed89da0a8d63f8c79fac0c667b11ca77e0ae618ec036c27a7adcefbd19fc26e6d11672b90f412654b
DIST elpi-1.17.4.tar.gz 2609080 BLAKE2B 5280f0eed17b80abb1ce68613beb57bd9aba900c821b71d5f184f98c0042b69fa016426f35e531a106ae6597bbb11237b56bd38dcf08ed56cbca624f2afbdbe6 SHA512 0a4a85c967d4016c3cf4b6613e561b45b935aef3cec68fd4e3764cd7f64420cf41ce0562804b1647fef9ed2d564da737fabd9a3e42e2b9e70071be6f64a3a611
+DIST elpi-1.18.2.tar.gz 2630264 BLAKE2B 9921cfb71755f46f29ec8934c5f3e3ea7d57807854c2402660ffebaeb6ce8f64416ceda4e2eaefa91d5b46cf7d9e8caeaadd75b0eddc5c35b234a228dfdf9bcb SHA512 096865d2b777d36ab8c0a63613f268491cb5b4e3a1c8a2adc11b63a3d39d04be5ddc198f0379090da8e3e0b6e7997bad6453d4b48f9f2e5d7d7d4f852af45a41
diff --git a/dev-lang/elpi/elpi-1.17.0.ebuild b/dev-lang/elpi/elpi-1.18.2.ebuild
index 184849b51e67..7721a9d3b009 100644
--- a/dev-lang/elpi/elpi-1.17.0.ebuild
+++ b/dev-lang/elpi/elpi-1.18.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest
index 46bf6c6b7422..184d277e7135 100644
--- a/dev-lang/erlang/Manifest
+++ b/dev-lang/erlang/Manifest
@@ -1,15 +1,8 @@
-DIST erlang-25.3.tar.gz 60060354 BLAKE2B c18beb1aa00f88ac303ce2488da6973cd63b4cb3c611d9ee93bdb8a522fa068bfab2307448d085e40c7c6e1b300a1d2b72f0626e8fd236c84617ff031afcb569 SHA512 cf104918917e33db250b48aaad3c098899739358035d764ea2ee1fc9ba7937504190752163ce8430bdbfc576ce2c2533d4f50fc8f0994ff155e3df188a8db99e
-DIST erlang-26.0.tar.gz 61355457 BLAKE2B 4f5abc04b794d2b2b9e27e20be9197a7c81113607a5ca2605c189212eef70db55eee5120eca36426a2c16237f576751605cdc943c7c2f070d68c6cca6585c46b SHA512 732e259f2018102b62a5d8076953a6a78d3e1f1714edde2c306fe863e5377b9a7f87052e03e92df93eea270a608b29ab4e22d5841d1314f9a532dac4aeff5436
-DIST erlang-26.1.2.tar.gz 63932020 BLAKE2B 56c862270398b458106056ea0e86a167b40d769c5b2fd84c39a0ed0c074c00d301145a98ef6e5f4b755d1124005da382ade6d4f0648823cf0e7d662a9b6bdcf2 SHA512 6907bba4ee726582b6344995c73223f725ea628897b34fc807a2a0306536bb15ce55c7fd4da1cb596dc59c9695b3bb6bba59618ca2a7a9a999e183f671656710
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-26.2.tar.gz 64008902 BLAKE2B 145ade4a05a8c92f9ba848774e927fc0a186aba834b2d4850cbe92f7604aac6136b16e3e6208658220c8c07b906be06263dfc7173f588165bb7bd5b98fe8a162 SHA512 647f38e7a1d2a0e49aee982d9f6461a83df01d6248756eea3cc926c60dd03e82d881534e3ce3374e233a3ab7b0fad7c775a54d0079f4d5b13de8d8a97c7de642
-DIST erlang_doc_html_25.3.tar.gz 37134864 BLAKE2B 86af9f6eacccbdc8e66e1407a29bc70620052f5968f4378df751f89795f98898a057c2e187553e5b938b5a9cc55a223fedb9bc2936cb3ade5f444e05a810f7d0 SHA512 d469f6088a20a840687ceed66b3d4ef3bf9446a00ea490f6bb14e5ec8a0b642ac0ff14243010e45483e9d4d33742525916d05ec93e171fe9f5e0dfbac3733837
-DIST erlang_doc_html_26.0.tar.gz 37434137 BLAKE2B 0a1bd0f4966d90cc5aaa8852b280204d81271af0449a019399dfcbeab4b2427a91fa57e1dafe24c55ee1a7abf5f52c019ca7454f7c2ca8dbe604d60ef437a4e0 SHA512 c11cf064808bee3a9e8334ee597daadfff397bd700622c80affa8df127a53de3cb5685c3338fa6d28b5c7a5c171379e0289f557dc3fc6ab0459ada757219ce3e
-DIST erlang_doc_html_26.1.tar.gz 37562532 BLAKE2B 235841cd644deb5c4d47adf7aa49cdb9be5dcb17154d91b8716ab8dcd8b74ca8f805348879c7ebb45a4b31dfabab772aa9f0d5dd5eb4e573a4a687ed0a93cec2 SHA512 160f208c81cbd8c615d233ad913a2e1ddfac4f3a3368f9b33ddb5202b5bf839116cddce2dbe1c5d7ba38d30083a0b33fe3a4fe5121452057d898be1a4e8950f9
+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_man_25.3.tar.gz 1719335 BLAKE2B d3d91e5920648ddb5b8375c969586b904d743f1d60acbefddd98577bd11b82246a2f149fdaa8ff1d16e8efc9f3793ce1dbc61efc9bc28c68f50919460d1e8e24 SHA512 9f2e6c4e4a39dd41deb6a2d7b7a04dd374f110bf776c8d08f3139265a8fa00e7c9420e2d2c406231a8d2748bdc65ca7e40ef1d4b9bfe6b06f52a24881ee8747d
-DIST erlang_doc_man_26.0.tar.gz 1742307 BLAKE2B cd52b6e148fd45a1a1b427fa9dccdb7127082f0cfc23a850c519a9dc9e6cc7e0fca3894433d44dcad27e2a8123626b09d86b7f581e503d977f0977ef62a574d8 SHA512 9e3fc06667e633fd1c90f57d86159cbbdbb6105719e3c1ab6733e5190aa48b8c8fbf735172e5763b6893e89a56ec13c0afcdf6c6505de739312b37ff246ed113
-DIST erlang_doc_man_26.1.tar.gz 1745691 BLAKE2B b06532551ab9d02c08a664eeeeae495d706969eed5151a013eb64da962e73d871c6e8a17506bdd854a3ac86caa756f78be0fdcfc76c00be89b8e4564ab881457 SHA512 2129c7c7f60f456dd0322d4fbbf3fc0398f8cdb982bb9450a99d7f45573f685fddd36a0440c4d51b89c0e4f19dc2145d1285b9fcf847c7c8bc3d95b2393c20b9
+DIST erlang_doc_html_27.0.tar.gz 29506649 BLAKE2B bae1425e3b43608c59975c7936e3e250ae9606acce34a7168c2ef1aba60a2956858e3a5cb4412f8ff937c93821110eae5f0d71b9378cce86d9ad9810f70510dc SHA512 a86497709bb0571b261f520f3e875d51628bc741affa8aded941fd9f66a7a6c821dbf415554cd7be6f91ebedd0d6ca7e6dde2f072bbffdf307bc127f17423536
DIST erlang_doc_man_26.2.tar.gz 1746046 BLAKE2B 20f3c5203313bc40595f9a0996c1a31c76d9b1da1ba90fd99b8946b23425c13ce11d27fb9b042911a39297c5bceeff098b44082a007cb2373cac253321f4435c SHA512 bdde6687b449391af5144de54e6d4edbaa75065e9f9cf1ec3878a034968785c2b35eb95331cad329fae6656461f1bc9475b68d1ee05af48166aa9c1083f841a0
+DIST erlang_doc_man_27.0.tar.gz 1764909 BLAKE2B b55614bc3c795813eb2d73dc990f740efc8408a3639d98569adb9718ee140eb04ac2289ca3cd764d2610ac2138dfd6173b50bcae58b3971b51f4819cc33420e3 SHA512 f37fca2943f1c607da5d9cddfa3949b0f43e2cff1049eb9dea60a9833a607a0d1ff8bd835204d0dce20865c326dd4da149a6047a084e95ad9719e84817fd8f46
diff --git a/dev-lang/erlang/erlang-25.3.ebuild b/dev-lang/erlang/erlang-25.3.ebuild
deleted file mode 100644
index 554952363897..000000000000
--- a/dev-lang/erlang/erlang-25.3.ebuild
+++ /dev/null
@@ -1,182 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-WX_GTK_VER="3.0-gtk3"
-
-inherit autotools elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets
-
-# NOTE: If you need symlinks for binaries please tell maintainers or
-# open up a bug to let it be created.
-
-UPSTREAM_V="$(ver_cut 1-2)"
-
-DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
-HOMEPAGE="https://www.erlang.org/"
-SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
- https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
- doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
-
-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 emacs java +kpoll odbc sctp ssl systemd tk wxwidgets"
-
-RDEPEND="
- acct-group/epmd
- acct-user/epmd
- sys-libs/ncurses:0
- sys-libs/zlib
- emacs? ( >=app-editors/emacs-23.1:* )
- 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? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
-"
-DEPEND="${RDEPEND}
- dev-lang/perl
-"
-
-S="${WORKDIR}/otp-OTP-${PV}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
- "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch
- "${FILESDIR}"/${PN}-25.1.2-c99.patch # Bug #882887
-)
-
-SITEFILE=50"${PN}"-gentoo.el
-
-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_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
-
- if use doc ; then
- emake docs DOC_TARGETS=chunks
- fi
-
- if use emacs ; then
- pushd lib/tools/emacs &>/dev/null || die
- elisp-compile *.el
- popd &>/dev/null || die
- fi
-}
-
-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
-
- 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_
-
- if use emacs ; then
- elisp-install erlang lib/tools/emacs/*.{el,elc}
- sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
- "${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
- elisp-site-file-install "${T}/${SITEFILE}"
- fi
-
- 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"
-}
-
-pkg_postinst() {
- use emacs && elisp-site-regen
-}
-
-pkg_postrm() {
- use emacs && elisp-site-regen
-}
diff --git a/dev-lang/erlang/erlang-26.0.ebuild b/dev-lang/erlang/erlang-26.0.ebuild
deleted file mode 100644
index 69fd2d8496d2..000000000000
--- a/dev-lang/erlang/erlang-26.0.ebuild
+++ /dev/null
@@ -1,182 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-WX_GTK_VER="3.0-gtk3"
-
-inherit autotools elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets
-
-# NOTE: If you need symlinks for binaries please tell maintainers or
-# open up a bug to let it be created.
-
-UPSTREAM_V="$(ver_cut 1-2)"
-
-DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
-HOMEPAGE="https://www.erlang.org/"
-SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
- https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
- doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
-
-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 emacs java +kpoll odbc sctp ssl systemd tk wxwidgets"
-
-RDEPEND="
- acct-group/epmd
- acct-user/epmd
- sys-libs/ncurses:0
- sys-libs/zlib
- emacs? ( >=app-editors/emacs-23.1:* )
- 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? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
-"
-DEPEND="${RDEPEND}
- dev-lang/perl
-"
-
-S="${WORKDIR}/otp-OTP-${PV}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
- "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch
- "${FILESDIR}"/${PN}-25.1.2-c99.patch # Bug #882887
-)
-
-SITEFILE=50"${PN}"-gentoo.el
-
-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_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
-
- if use doc ; then
- emake docs DOC_TARGETS=chunks
- fi
-
- if use emacs ; then
- pushd lib/tools/emacs &>/dev/null || die
- elisp-compile *.el
- popd &>/dev/null || die
- fi
-}
-
-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
-
- 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_
-
- if use emacs ; then
- elisp-install erlang lib/tools/emacs/*.{el,elc}
- sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
- "${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
- elisp-site-file-install "${T}/${SITEFILE}"
- fi
-
- 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"
-}
-
-pkg_postinst() {
- use emacs && elisp-site-regen
-}
-
-pkg_postrm() {
- use emacs && elisp-site-regen
-}
diff --git a/dev-lang/erlang/erlang-26.1.2.ebuild b/dev-lang/erlang/erlang-26.1.2.ebuild
deleted file mode 100644
index 1f48b8bb0ef4..000000000000
--- a/dev-lang/erlang/erlang-26.1.2.ebuild
+++ /dev/null
@@ -1,182 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-WX_GTK_VER="3.2-gtk3"
-
-inherit autotools elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets
-
-# NOTE: If you need symlinks for binaries please tell maintainers or
-# open up a bug to let it be created.
-
-UPSTREAM_V="$(ver_cut 1-2)"
-
-DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
-HOMEPAGE="https://www.erlang.org/"
-SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
- https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
- doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
-
-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 emacs java +kpoll odbc sctp ssl systemd tk wxwidgets"
-
-RDEPEND="
- acct-group/epmd
- acct-user/epmd
- sys-libs/ncurses:0
- sys-libs/zlib
- emacs? ( >=app-editors/emacs-23.1:* )
- 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? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
-"
-DEPEND="${RDEPEND}
- dev-lang/perl
-"
-
-S="${WORKDIR}/otp-OTP-${PV}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
- "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch
- "${FILESDIR}"/${PN}-25.1.2-c99.patch # Bug #882887
-)
-
-SITEFILE=50"${PN}"-gentoo.el
-
-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_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
-
- if use doc ; then
- emake docs DOC_TARGETS=chunks
- fi
-
- if use emacs ; then
- pushd lib/tools/emacs &>/dev/null || die
- elisp-compile *.el
- popd &>/dev/null || die
- fi
-}
-
-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
-
- 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_
-
- if use emacs ; then
- elisp-install erlang lib/tools/emacs/*.{el,elc}
- sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
- "${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
- elisp-site-file-install "${T}/${SITEFILE}"
- fi
-
- 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"
-}
-
-pkg_postinst() {
- use emacs && elisp-site-regen
-}
-
-pkg_postrm() {
- use emacs && elisp-site-regen
-}
diff --git a/dev-lang/erlang/erlang-26.2.ebuild b/dev-lang/erlang/erlang-27.0.ebuild
index 981ad712372f..4cd14be66aa9 100644
--- a/dev-lang/erlang/erlang-26.2.ebuild
+++ b/dev-lang/erlang/erlang-27.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -9,10 +9,13 @@ inherit autotools elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-fun
UPSTREAM_V="$(ver_cut 1-2)"
DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
-HOMEPAGE="https://www.erlang.org/"
+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/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
- doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.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
@@ -36,22 +39,27 @@ RDEPEND="
wxwidgets? (
dev-libs/glib:2
x11-libs/wxGTK:${WX_GTK_VER}[X,opengl]
+ virtual/glu
)
"
DEPEND="${RDEPEND}
dev-lang/perl
"
-S="${WORKDIR}/otp-OTP-${PV}"
-
PATCHES=(
- "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
+ "${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
@@ -149,6 +157,9 @@ src_install() {
## 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
diff --git a/dev-lang/erlang/files/erlang-27.0-dont-ignore-LDFLAGS.patch b/dev-lang/erlang/files/erlang-27.0-dont-ignore-LDFLAGS.patch
new file mode 100644
index 000000000000..caa582d1773e
--- /dev/null
+++ b/dev-lang/erlang/files/erlang-27.0-dont-ignore-LDFLAGS.patch
@@ -0,0 +1,23 @@
+--- a/lib/megaco/src/flex/Makefile.in
++++ b/lib/megaco/src/flex/Makefile.in
+@@ -47,7 +47,7 @@
+ CC = @DED_CC@
+ CFLAGS_MT = $(CFLAGS) @DED_THR_DEFS@
+ LD = @DED_LD@
+-LDFLAGS = @DED_LDFLAGS@
++LDFLAGS += @DED_LDFLAGS@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ PERL = @PERL@
+--- a/lib/odbc/c_src/Makefile.in
++++ b/lib/odbc/c_src/Makefile.in
+@@ -82,7 +82,7 @@
+ CC = @CC@
+ CFLAGS = $(TYPEFLAGS) @CFLAGS@ @THR_DEFS@ @DEFS@
+ EI_LDFLAGS = -L$(EI_ROOT)/obj$(TYPEMARKER)/$(TARGET) $(EI_LIB)
+ LD = @LD@
+-LDFLAGS = $(EI_LDFLAGS) $(ODBC_LIB)
++LDFLAGS += $(EI_LDFLAGS) $(ODBC_LIB)
+ LIBS = @LIBS@ @THR_LIBS@
+ INCLUDES = -I. $(ODBC_INCLUDE) $(EI_INCLUDE)
+ TARGET_FLAGS = @TARGET_FLAGS@
diff --git a/dev-lang/execline/Manifest b/dev-lang/execline/Manifest
index a7f9a70f696d..bf54495faacb 100644
--- a/dev-lang/execline/Manifest
+++ b/dev-lang/execline/Manifest
@@ -1,2 +1,2 @@
-DIST execline-2.9.4.0.tar.gz 110097 BLAKE2B a59af5d1cff360ab6c2c41f3156d762e2928b22d7cab8a3b499935ded102e5b9e4efc2a0849875cf6a44cdca0e9b1f13a41443c0343ca3d7a068e4d749774701 SHA512 11d96863d2f90abc371656e17bac9fd83f1303337444db5a1f24e8a02cab654a3b5e9081af130d5cbca5a4f6ea5cf5f6c2affa66e2b4a9eb39c20410efeb8795
DIST execline-2.9.5.1.tar.gz 110874 BLAKE2B bef3cb560f00c01c96065429220017315edc8378403c73e4a0edba67ee248f76ca849cd8a107756251db9844d3ac650259b33db2f93abc1c7aa4f68995b5b624 SHA512 11bfd825b0b72cba118eff9ecb97672d0c015e0bd50c7c8f83e101ee41c323b3a3c82e42fed75b6bc65ab6edb85a8bbeef8900b594cf651825b6313a5123c88f
+DIST execline-2.9.6.0.tar.gz 111660 BLAKE2B 42baed36228b1e6a370d6d4c18829be7f517812ce9e3838e5b102d0fe58ac48ecd84f17caef89e9a07b3b149ed9b38b3b00f7eef810c231995c8e5ecbf07a770 SHA512 1c5233b0f17b4c92ab2e9e8700b47c8429ad97962bcb7c83190d0b3251b26584e591d77418eca77e8112cdecd24eec50aaca7da1dbb506120931bbda39f2b7cb
diff --git a/dev-lang/execline/execline-2.9.5.1.ebuild b/dev-lang/execline/execline-2.9.5.1.ebuild
index cb8dadc3aff3..25e4a9c495bd 100644
--- a/dev-lang/execline/execline-2.9.5.1.ebuild
+++ b/dev-lang/execline/execline-2.9.5.1.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz"
LICENSE="ISC"
SLOT="0/$(ver_cut 1-2).4"
-KEYWORDS="~alpha ~amd64 ~arm ~mips ~riscv ~x86"
+KEYWORDS="~alpha amd64 arm ~mips ~ppc ~ppc64 ~riscv x86"
RDEPEND=">=dev-libs/skalibs-2.14.0.0:="
DEPEND="${RDEPEND}"
diff --git a/dev-lang/execline/execline-2.9.4.0.ebuild b/dev-lang/execline/execline-2.9.6.0.ebuild
index da959d63bdca..6eff46cb134a 100644
--- a/dev-lang/execline/execline-2.9.4.0.ebuild
+++ b/dev-lang/execline/execline-2.9.6.0.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz"
LICENSE="ISC"
SLOT="0/$(ver_cut 1-2).4"
-KEYWORDS="~alpha amd64 arm ~mips ~riscv x86"
+KEYWORDS="~alpha ~amd64 ~arm ~mips ~ppc ~ppc64 ~riscv ~x86"
RDEPEND=">=dev-libs/skalibs-2.14.0.0:="
DEPEND="${RDEPEND}"
diff --git a/dev-lang/fennel/Manifest b/dev-lang/fennel/Manifest
index 18fdb5f8393e..2969695a6497 100644
--- a/dev-lang/fennel/Manifest
+++ b/dev-lang/fennel/Manifest
@@ -1,2 +1 @@
-DIST fennel-1.4.0.tar.gz 299561 BLAKE2B a94bb15c04b69154dbea1bc562347cef0b9ddd9ec3c3994bf5999593ef89422338f54dfb0bbd6c8e6f487eeb6d1178cc916ed8a92ec7755c43108ff58d3a842e SHA512 0c92496db478eb5445d95057433b54a945c38a40541c6891c1d887a296ce3c89468c688702249488b34192ce1783b4891e292b9b1702a0620e51cc103602694a
DIST fennel-1.4.2.tar.gz 301195 BLAKE2B f5a124725b4d2573275f179090b0400ed07dcc50d6ae661dd588887b8774a2cb48ab9f720dfb7bc7049d1e353f430e75da48e9a08b716cc1a80e4e09bf269bc7 SHA512 13b6020314d010566c7521b85065a446e09f8a0cfec9b9cb4bc2e23fe59369d105538bcb8a3a7cd865c399742d98a1742da932f8bde993c1136422f803069071
diff --git a/dev-lang/fennel/fennel-1.4.0-r2.ebuild b/dev-lang/fennel/fennel-1.4.0-r2.ebuild
deleted file mode 100644
index 68ee8a548f2b..000000000000
--- a/dev-lang/fennel/fennel-1.4.0-r2.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Fails to build with with "lua5-1".
-LUA_COMPAT=( lua5-{3,4} luajit )
-
-inherit lua-single
-
-DESCRIPTION="Lisp-like language that compiles to Lua"
-HOMEPAGE="https://fennel-lang.org/
- https://sr.ht/~technomancy/fennel/"
-
-if [[ "${PV}" == *9999* ]] ; then
- inherit git-r3
-
- EGIT_REPO_URI="https://git.sr.ht/~technomancy/${PN}"
-else
- SRC_URI="https://git.sr.ht/~technomancy/${PN}/archive/${PV}.tar.gz
- -> ${P}.tar.gz"
-
- KEYWORDS="amd64 ~arm ~arm64 ~ppc ~x86"
-fi
-
-LICENSE="MIT"
-SLOT="0/${PV}"
-REQUIRED_USE="${LUA_REQUIRED_USE}"
-
-RDEPEND="
- ${LUA_DEPS}
-"
-BDEPEND="
- ${RDEPEND}
-"
-
-src_prepare() {
- default
-
- # Turn off failing tests. bug https://bugs.gentoo.org/906351
- sed -e 's|"failures",||' -e 's|"repl",||' -i test/init.lua || die
-
- # Remove bad tests, bug #923281
- rm test/macro.fnl || die
- sed -i test/init.lua -e 's|"test.macro",||' || die
-}
-
-src_test() {
- emake test
-}
-
-src_install() {
- emake LUA_LIB_DIR="${ED}/$(lua_get_lmod_dir)" PREFIX="${ED}/usr" install
-
- dodoc *.md
-}
diff --git a/dev-lang/fennel/fennel-1.4.2-r1.ebuild b/dev-lang/fennel/fennel-1.4.2-r1.ebuild
index 71f067aa7941..68ee8a548f2b 100644
--- a/dev-lang/fennel/fennel-1.4.2-r1.ebuild
+++ b/dev-lang/fennel/fennel-1.4.2-r1.ebuild
@@ -20,7 +20,7 @@ else
SRC_URI="https://git.sr.ht/~technomancy/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
+ KEYWORDS="amd64 ~arm ~arm64 ~ppc ~x86"
fi
LICENSE="MIT"
diff --git a/dev-lang/fuzion/Manifest b/dev-lang/fuzion/Manifest
index d51c967dd45e..9be9a00de6dc 100644
--- a/dev-lang/fuzion/Manifest
+++ b/dev-lang/fuzion/Manifest
@@ -1 +1,2 @@
DIST fuzion-0.086.tar.gz 994894 BLAKE2B e698ea7b8de215c55e84e0f55f405156d5c386c1001c7b29e0c7c49e7a7e7babf7cb64cf30726a24aa7b6ccdc0eaf01cc543867361e2554f258d76be1fc08b97 SHA512 6d2df12d1dced9c5a61bb183767fc205ddbc0d04db8cae3f5e3eabd9ab60f18b3c2b3fa8f57702dc792882b1a6f79da1cfcb7801d84ecc2cff1844a4bc226f67
+DIST fuzion-0.088.tar.gz 1123270 BLAKE2B 3d68c136a862c02955b4a15e6cfe4d41a63a106c47289f7fdfe0af2b0119ebe26cbd9c6920c8b5311c756264bdd33d46f4b1108869427f83d55a350c2ab52e6f SHA512 b0fb1ea4175912684b4759ec58a91bc25d963fa2fa6234116fa91a63d757d9af5da9e20a3fdcc340fe956c01026d4b74c7a12dac40a0b7826d74c567b4e3383a
diff --git a/dev-lang/fuzion/fuzion-0.088.ebuild b/dev-lang/fuzion/fuzion-0.088.ebuild
new file mode 100644
index 000000000000..c40f20b0f208
--- /dev/null
+++ b/dev-lang/fuzion/fuzion-0.088.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit java-pkg-2
+
+DESCRIPTION="A language with a focus on simplicity, safety and correctness"
+HOMEPAGE="https://fuzion-lang.dev/
+ https://github.com/tokiwa-software/fuzion/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/tokiwa-software/${PN}.git"
+else
+ SRC_URI="https://github.com/tokiwa-software/${PN}/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=virtual/jre-21:*
+ dev-libs/boehm-gc
+"
+DEPEND="
+ virtual/jdk:21
+"
+BDEPEND="
+ test? (
+ sys-devel/clang:*
+ )
+"
+
+DOCS=( README.md release_notes.md )
+
+src_prepare() {
+ java-pkg-2_src_prepare
+
+ rm -fr tests/sockets || die
+}
+
+src_compile() {
+ emake -j1
+}
+
+src_test() {
+ emake -j1 run_tests_parallel
+}
+
+src_install() {
+ # Remove unnecessary files from build directory. bug #893450
+ local toremove
+ local toremove_path
+ for toremove in tests run_tests.{failures,results} ; do
+ toremove_path="${S}/build/${toremove}"
+
+ if [[ -e "${toremove_path}" ]] ; then
+ rm -r "${toremove_path}" || die "failed to remove ${toremove_path}"
+ fi
+ done
+
+ insinto "/usr/share/${PN}"
+ doins -r build/.
+ insopts -m755
+ doins -r build/bin
+
+ local exe
+ for exe in fz fzjava ; do
+ dosym -r "/usr/share/${PN}/bin/${exe}" "/usr/bin/${exe}"
+ done
+
+ einstalldocs
+}
diff --git a/dev-lang/gnat-gpl/Manifest b/dev-lang/gnat-gpl/Manifest
index c07a09c90981..76a2910ce921 100644
--- a/dev-lang/gnat-gpl/Manifest
+++ b/dev-lang/gnat-gpl/Manifest
@@ -1,7 +1,7 @@
DIST gcc-10-2021-20210519-19A74-src.tar.gz 109157702 BLAKE2B 8ec307e4fde35c8726bc7b9702717329695bad928d5222a7bb691cce47500de31a60bcfcbb925129a57cb81d3d7ea92e60599aa7383d5358e63cc087b0482550 SHA512 2e2cc0ec9a3a82816a5d399d2db261c356e106b82a44efd54a1ac882b96549ab8de79c69858127c4397de6e9e9463ce6fb9994fc2e426e7d3d2f98d5efa2edb6
DIST gcc-10.3.0-patches-4.tar.xz 18460 BLAKE2B 7c4b91c3beebc5fd91c0fdbeec6512c141bd78759a02aa7fff32dd30025ef41db1d57280e50db575f46cc0061a480ced9259410e9875b1dc0048886df469c4c9 SHA512 3befbcdec84e583966aad37d1a08c1863f39eb877296c5991348db9d37cc8359197f23cb3b8fa1b0f4d01497dfd2ebaa393e1a459267c19a0976fb535e463ec8
DIST gcc-interface-10-2021-20210519-19A75-src.tar.gz 359085 BLAKE2B 75f941a7635f2880cc0192acb49d8e7f567baca7530fb981be14dc6cb1bf46fda0e3c043c8703cdbeeb242b548894e0bc6787adfff0f27198354d150e6e36386 SHA512 0251a93d20c59cc4705963438880fe265e2e0bb94a35b7ddaaf03e9efae60e044e585a2204d0773a46f17b3b774e4d0c73adf852f5d06ba17373d26ed580ca8d
+DIST gcc-validate-failures-a447cd6dee206facb66720bdacf0c765a8b09f33.py 27537 BLAKE2B 96c7474de0bc50ab890a91551412398c979396c43aa237a4b6d8baa98ce7fda2cc9f5a755a03fd9d055d885ee2fb40ba29644a0649c24398361ce75a20fae634 SHA512 409434953351cf1f2287f1e4a4fbde5b28a27add35ddd284080acec71b33cb4ec5e1c07f41a79fac060bd6f1eedd198812495141923e410ded907429fe515f83
DIST gnat-2021-20210519-19A70-src.tar.gz 8765762 BLAKE2B ef48f54c6109566e37bfa5dee9262305d0529b3dfd333ee28bc4e66f4709a0673f673d742bc04deb15dc145404f7618d350dbdf3f2a7ab37c861e57d011946fa SHA512 3cb79be024fdd9b738d99ffc8e224d32bb382b5da2d02b97b2061a5ea58456f33d4564c92e224af2713ce15fd5481edd715e5b9a52abc74fdc142f27e103c201
DIST gnat-gpl-2014-x86-linux-bin.tar.gz 233049287 BLAKE2B 2e8bab113f6a319533ec12fdf71c481f72aee227c22bd0cc42a53bd727b323caba1e7b6298053db8b4d3016236b31649b0b255f4ebcbb81a08a69f29f78f13fc SHA512 ac7f53fb4bd71b0e8fbd62abc45de76f7f8f2f405b80e9b60b4b65a6cef6ee98e3b06848e4b752af3c8268237e5a0529cf6145ebc5b33cd6e5cf4928d85f5be2
DIST gnat-gpl-2014-x86_64-linux-bin.tar.gz 236253400 BLAKE2B c1db70db9442ba24688b8e323d5a02e2e9707ba1f02835ea551038d0a09aafede93a224091e5186f2f2a9d0f96144027af2184ee05ca1c19cc997a6cf3902df7 SHA512 5e40a251baac3d0ace78352956ca21a7d294d902d344a9ed7a8d376e900468c283721ebfb773adfedbf4d623ace02536505c0147815a0c1908933ad611ea085e
-DIST gnat-gpl-validate-failures-7bbfb01a32b73842f8908de028703510a0e12057.py 27533 BLAKE2B 58917750d247d3a9e7078c62fd4412027a7d02d06c659a9c0743697529754218257c00dc6e10dff467e78b4e019225c39b1627b48a5298d13481a7072748a15f SHA512 b74d6358538d1b076f3d5b6632ea405b99627d5b5621b6f5101cb3453be13ba41e11d590039535b0c74b1624b69885a7093600d5395cc60bc63cea15ae7472b3
diff --git a/dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild
index de1fe0daf352..547c25989494 100644
--- a/dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild
+++ b/dev-lang/gnat-gpl/gnat-gpl-2021-r5.ebuild
@@ -7,7 +7,7 @@ PATCH_GCC_VER=10.3.0
PATCH_VER="4"
TOOLCHAIN_GCC_PV=10.3.1
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..12} )
REL=10
MYP=gcc-${REL}-${PV}-20210519-19A74-src
diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest
index 0fa970ad5053..e119454afc2e 100644
--- a/dev-lang/go/Manifest
+++ b/dev-lang/go/Manifest
@@ -1,7 +1,2 @@
-DIST go1.21.5.src.tar.gz 26986890 BLAKE2B a57550a3f586060d8efa93b6c8d9bf3f87d791ebf66767c9a3344983111aa14ed88c71fe44aabe79b64dcdad85426de647eaf5845d9a5cac082b42969f9a27cb SHA512 c064b7cb3c47d8fb99fc181a3cddf327a4b7a8c6af39a8ac568e9d74cd44903141680903ca48673bb02a7a159cce4f32a94f3b37fc65a9549d3518ad7c731fa3
-DIST go1.21.6.src.tar.gz 27058459 BLAKE2B 04909d067f8dc1c1bb45d9d0a87f9d0fedb69b42a4eb89ddb24d19df7c0f77c86c6283b579f3b3f9caa3ffba6ab5f325a71552e37b38ba4082e878bd0bc942a3 SHA512 8472c1c6c3fae9fecfb512a16f18ed531c04c087429a75086b9999069330c1b1e4a01a30c6561b5092169144cbc0d787ec2f5f4a50dfc4f79e74398f16423cfd
-DIST go1.21.7.src.tar.gz 26991014 BLAKE2B 7002b8a6662594f9dc44f215f8c76c2d17057a117c6d8b24929b5fa015a7222a1fe56d3091fcabb74f993c22000c3239645b12b94303751053be83336120cfa0 SHA512 5cadc458265deea2650fbbc5b0652e19e858fa7a7b929ea717e82ee4be2af45214a9dfc5b8b799003e83b92aa80141962a472d1d4f0653e97e99df5b68c88e5d
-DIST go1.21.8.src.tar.gz 26992984 BLAKE2B bebcd1a0b5e6d844d272fbd351709344a41856d16ebedad5ab58ac905695dcdd8ca29936a0534a895de7d0bffabed395a6169f1671bcca01e449e960405a4b0b SHA512 dde764ee12fbf58a603d31c20ea239805ffec359a90b0aad7575cc857e241393c2adc47d2f00136db5dff2cbe11b90e8d009d67f9329d363e75a0720067123b0
-DIST go1.21.9.src.tar.gz 26993426 BLAKE2B 08eb5a78e1d4933de63105a886e0b0d9d8582edbd18b2a40f7655628a3d5627102abf8d25b3190751109273962b731d16c25bdc58b370b6a39faa6e5c3ef3736 SHA512 e1cf7e458d41f8b343c34b7d35dc4a1696bacbad2ad64abac36dbbeaf1e0a1b71cdb32cebb1686c6e5c90bf0ad3474714d09acea010d6c074730c59d71e79f4e
-DIST go1.22.1.src.tar.gz 27548577 BLAKE2B 589c2e8677d6787d2ffe68b81722da8aa5d668a7ce09faac9433514729a33e7150a72a35ab313cf3559958069e8ede2a106ba77476d7c6027a5d082bb1f80a52 SHA512 627530c3fa2ea872478e1df8ee20db2ddc3c94581fff4e66bda21ca45a643e9915f97115401f79667cd7e856ccca1b40a842f4c0b509a472c75696e3bdb3a908
-DIST go1.22.2.src.tar.gz 27551470 BLAKE2B f8994f7868f14b68d5b57a251ff4b79f26cd2dbee69e93887165a37dbdb74a0004998c2666e0bb1673a0f0efcbe58b10e2437f6ce06340fad004628e3a9cca1c SHA512 f2491d2b5d4ef2dd86ca7820503a2534cd1860822049dc01a6cb40b556a0812cfc4196fa83173765816060253ac949f4165b0fb4b2bed5d45e30d03bb69e434d
+DIST go1.21.11.src.tar.gz 26994914 BLAKE2B 73f0a5c133844c287cc7aa32e9b8d8735956e0e88b0100b644c22a2748ab28b5bedcba3575e9f34be50ac67a0ccf8ef04100e8076176d175d9cdd111c13a8f6e SHA512 dffcef964a4fbe08cd965bcffad6138fab164f14936a83988ced86924f794c1f107c122d1aeb674eacb0a1a498a31bdf83ea8f87b352494fa69f6e38931d2120
+DIST go1.22.4.src.tar.gz 27555503 BLAKE2B 00a6a3430e38fe5b63df3d453bd58ff51f3cff7814f3e05520725ef2093d1f2547c214f6e58c9bbd078334b51be2407dfe5b68eac5b7eeaa2a33bd3c3a13f3f4 SHA512 4855ba7e277b2eb79eb52e3ad2a52f18b3a4cd3adc20b7a17d29fabae74141265bf31399307b8d3f35110031d11ad7f583016aa903f3e36eeb6d1f64cfc8a5ad
diff --git a/dev-lang/go/go-1.21.5.ebuild b/dev-lang/go/go-1.21.11.ebuild
index 7588d8461f60..7588d8461f60 100644
--- a/dev-lang/go/go-1.21.5.ebuild
+++ b/dev-lang/go/go-1.21.11.ebuild
diff --git a/dev-lang/go/go-1.21.6.ebuild b/dev-lang/go/go-1.21.6.ebuild
deleted file mode 100644
index 98b8a72a4f95..000000000000
--- a/dev-lang/go/go-1.21.6.ebuild
+++ /dev/null
@@ -1,210 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-
-# See "Bootstrap" in release notes
-GO_BOOTSTRAP_MIN=1.17.13
-MY_PV=${PV/_/}
-
-inherit toolchain-funcs
-
-case ${PV} in
-*9999*)
- EGIT_REPO_URI="https://github.com/golang/go.git"
- inherit git-r3
- ;;
-*)
- SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
- S="${WORKDIR}"/go
- case ${PV} in
- *_beta*|*_rc*) ;;
- *)
- KEYWORDS="-* amd64 arm ~arm64 ~loong ~mips ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
- ;;
- esac
-esac
-
-DESCRIPTION="A concurrent garbage collected and typesafe programming language"
-HOMEPAGE="https://go.dev"
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-IUSE="abi_mips_o32 abi_mips_n64 cpu_flags_x86_sse2"
-
-RDEPEND="
-arm? ( sys-devel/binutils[gold] )
-arm64? ( sys-devel/binutils[gold] )"
-BDEPEND="|| (
- >=dev-lang/go-${GO_BOOTSTRAP_MIN}
- >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )"
-
-# the *.syso files have writable/executable stacks
-QA_EXECSTACK='*.syso'
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
-QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
-
-# This package triggers "unrecognized elf file(s)" notices on riscv.
-# https://bugs.gentoo.org/794046
-QA_PREBUILT='.*'
-
-# Do not strip this package. Stripping is unsupported upstream and may
-# fail.
-RESTRICT+=" strip"
-
-DOCS=(
- CONTRIBUTING.md
- PATENTS
- README.md
- SECURITY.md
-)
-
-go_arch() {
- # By chance most portage arch names match Go
- local tc_arch=$(tc-arch $@)
- case "${tc_arch}" in
- x86) echo 386;;
- x64-*) echo amd64;;
- loong) echo loong64;;
- mips) if use abi_mips_o32; then
- [[ $(tc-endian $@) = big ]] && echo mips || echo mipsle
- elif use abi_mips_n64; then
- [[ $(tc-endian $@) = big ]] && echo mips64 || echo mips64le
- fi ;;
- ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
- riscv) echo riscv64 ;;
- s390) echo s390x ;;
- *) echo "${tc_arch}";;
- esac
-}
-
-go_arm() {
- case "${1:-${CHOST}}" in
- armv5*) echo 5;;
- armv6*) echo 6;;
- armv7*) echo 7;;
- *)
- die "unknown GOARM for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_os() {
- case "${1:-${CHOST}}" in
- *-linux*) echo linux;;
- *-darwin*) echo darwin;;
- *-freebsd*) echo freebsd;;
- *-netbsd*) echo netbsd;;
- *-openbsd*) echo openbsd;;
- *-solaris*) echo solaris;;
- *-cygwin*|*-interix*|*-winnt*)
- echo windows
- ;;
- *)
- die "unknown GOOS for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_tuple() {
- echo "$(go_os $@)_$(go_arch $@)"
-}
-
-go_cross_compile() {
- [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
-}
-
-PATCHES=(
- "${FILESDIR}"/go-never-download-newer-toolchains.patch
-)
-
-src_compile() {
- if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
- elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
- else
- eerror "Go cannot be built without go or go-bootstrap installed"
- die "Should not be here, please report a bug"
- fi
-
- export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="${PWD}"
- export GOBIN="${GOROOT}/bin"
-
- # Go's build script does not use BUILD/HOST/TARGET consistently. :(
- export GOHOSTARCH=$(go_arch ${CBUILD})
- export GOHOSTOS=$(go_os ${CBUILD})
- export CC=$(tc-getBUILD_CC)
-
- export GOARCH=$(go_arch)
- export GOOS=$(go_os)
- export CC_FOR_TARGET=$(tc-getCC)
- export CXX_FOR_TARGET=$(tc-getCXX)
- use arm && export GOARM=$(go_arm)
- use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat')
-
- cd src
- bash -x ./make.bash || die "build failed"
-}
-
-src_test() {
- go_cross_compile && return 0
-
- cd src
-
- # https://github.com/golang/go/issues/42005
- rm cmd/link/internal/ld/fallocate_test.go || die
-
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild -k || die "tests failed"
-}
-
-src_install() {
- dodir /usr/lib/go
- # The use of cp is deliberate in order to retain permissions
- cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
- einstalldocs
-
- insinto /usr/lib/go
- doins go.env VERSION
-
- # testdata directories are not needed on the installed system
- rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
-
- local bin_path
- if go_cross_compile; then
- bin_path="bin/$(go_tuple)"
- else
- bin_path=bin
- fi
- local f x
- for x in ${bin_path}/*; do
- f=${x##*/}
- dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
- done
-
- # install the @golang-rebuild set for Portage
- insinto /usr/share/portage/config/sets
- newins "${FILESDIR}"/go-sets.conf go.conf
-}
-
-pkg_postinst() {
- [[ -z ${REPLACING_VERSIONS} ]] && return
- elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
- elog "all packages compiled with previous versions of ${CATEGORY}/${PN}"
- elog "due to the static linking nature of go."
- elog "If this is not done, the packages compiled with the older"
- elog "version of the compiler will not be updated until they are"
- elog "updated individually, which could mean they will have"
- elog "vulnerabilities."
- elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
- elog "See https://bugs.gentoo.org/752153 for more info"
-}
diff --git a/dev-lang/go/go-1.21.7.ebuild b/dev-lang/go/go-1.21.7.ebuild
deleted file mode 100644
index 7588d8461f60..000000000000
--- a/dev-lang/go/go-1.21.7.ebuild
+++ /dev/null
@@ -1,210 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-
-# See "Bootstrap" in release notes
-GO_BOOTSTRAP_MIN=1.17.13
-MY_PV=${PV/_/}
-
-inherit toolchain-funcs
-
-case ${PV} in
-*9999*)
- EGIT_REPO_URI="https://github.com/golang/go.git"
- inherit git-r3
- ;;
-*)
- SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
- S="${WORKDIR}"/go
- case ${PV} in
- *_beta*|*_rc*) ;;
- *)
- KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
- ;;
- esac
-esac
-
-DESCRIPTION="A concurrent garbage collected and typesafe programming language"
-HOMEPAGE="https://go.dev"
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-IUSE="abi_mips_o32 abi_mips_n64 cpu_flags_x86_sse2"
-
-RDEPEND="
-arm? ( sys-devel/binutils[gold] )
-arm64? ( sys-devel/binutils[gold] )"
-BDEPEND="|| (
- >=dev-lang/go-${GO_BOOTSTRAP_MIN}
- >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )"
-
-# the *.syso files have writable/executable stacks
-QA_EXECSTACK='*.syso'
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
-QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
-
-# This package triggers "unrecognized elf file(s)" notices on riscv.
-# https://bugs.gentoo.org/794046
-QA_PREBUILT='.*'
-
-# Do not strip this package. Stripping is unsupported upstream and may
-# fail.
-RESTRICT+=" strip"
-
-DOCS=(
- CONTRIBUTING.md
- PATENTS
- README.md
- SECURITY.md
-)
-
-go_arch() {
- # By chance most portage arch names match Go
- local tc_arch=$(tc-arch $@)
- case "${tc_arch}" in
- x86) echo 386;;
- x64-*) echo amd64;;
- loong) echo loong64;;
- mips) if use abi_mips_o32; then
- [[ $(tc-endian $@) = big ]] && echo mips || echo mipsle
- elif use abi_mips_n64; then
- [[ $(tc-endian $@) = big ]] && echo mips64 || echo mips64le
- fi ;;
- ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
- riscv) echo riscv64 ;;
- s390) echo s390x ;;
- *) echo "${tc_arch}";;
- esac
-}
-
-go_arm() {
- case "${1:-${CHOST}}" in
- armv5*) echo 5;;
- armv6*) echo 6;;
- armv7*) echo 7;;
- *)
- die "unknown GOARM for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_os() {
- case "${1:-${CHOST}}" in
- *-linux*) echo linux;;
- *-darwin*) echo darwin;;
- *-freebsd*) echo freebsd;;
- *-netbsd*) echo netbsd;;
- *-openbsd*) echo openbsd;;
- *-solaris*) echo solaris;;
- *-cygwin*|*-interix*|*-winnt*)
- echo windows
- ;;
- *)
- die "unknown GOOS for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_tuple() {
- echo "$(go_os $@)_$(go_arch $@)"
-}
-
-go_cross_compile() {
- [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
-}
-
-PATCHES=(
- "${FILESDIR}"/go-never-download-newer-toolchains.patch
-)
-
-src_compile() {
- if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
- elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
- else
- eerror "Go cannot be built without go or go-bootstrap installed"
- die "Should not be here, please report a bug"
- fi
-
- export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="${PWD}"
- export GOBIN="${GOROOT}/bin"
-
- # Go's build script does not use BUILD/HOST/TARGET consistently. :(
- export GOHOSTARCH=$(go_arch ${CBUILD})
- export GOHOSTOS=$(go_os ${CBUILD})
- export CC=$(tc-getBUILD_CC)
-
- export GOARCH=$(go_arch)
- export GOOS=$(go_os)
- export CC_FOR_TARGET=$(tc-getCC)
- export CXX_FOR_TARGET=$(tc-getCXX)
- use arm && export GOARM=$(go_arm)
- use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat')
-
- cd src
- bash -x ./make.bash || die "build failed"
-}
-
-src_test() {
- go_cross_compile && return 0
-
- cd src
-
- # https://github.com/golang/go/issues/42005
- rm cmd/link/internal/ld/fallocate_test.go || die
-
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild -k || die "tests failed"
-}
-
-src_install() {
- dodir /usr/lib/go
- # The use of cp is deliberate in order to retain permissions
- cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
- einstalldocs
-
- insinto /usr/lib/go
- doins go.env VERSION
-
- # testdata directories are not needed on the installed system
- rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
-
- local bin_path
- if go_cross_compile; then
- bin_path="bin/$(go_tuple)"
- else
- bin_path=bin
- fi
- local f x
- for x in ${bin_path}/*; do
- f=${x##*/}
- dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
- done
-
- # install the @golang-rebuild set for Portage
- insinto /usr/share/portage/config/sets
- newins "${FILESDIR}"/go-sets.conf go.conf
-}
-
-pkg_postinst() {
- [[ -z ${REPLACING_VERSIONS} ]] && return
- elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
- elog "all packages compiled with previous versions of ${CATEGORY}/${PN}"
- elog "due to the static linking nature of go."
- elog "If this is not done, the packages compiled with the older"
- elog "version of the compiler will not be updated until they are"
- elog "updated individually, which could mean they will have"
- elog "vulnerabilities."
- elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
- elog "See https://bugs.gentoo.org/752153 for more info"
-}
diff --git a/dev-lang/go/go-1.21.8.ebuild b/dev-lang/go/go-1.21.8.ebuild
deleted file mode 100644
index 7588d8461f60..000000000000
--- a/dev-lang/go/go-1.21.8.ebuild
+++ /dev/null
@@ -1,210 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-
-# See "Bootstrap" in release notes
-GO_BOOTSTRAP_MIN=1.17.13
-MY_PV=${PV/_/}
-
-inherit toolchain-funcs
-
-case ${PV} in
-*9999*)
- EGIT_REPO_URI="https://github.com/golang/go.git"
- inherit git-r3
- ;;
-*)
- SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
- S="${WORKDIR}"/go
- case ${PV} in
- *_beta*|*_rc*) ;;
- *)
- KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
- ;;
- esac
-esac
-
-DESCRIPTION="A concurrent garbage collected and typesafe programming language"
-HOMEPAGE="https://go.dev"
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-IUSE="abi_mips_o32 abi_mips_n64 cpu_flags_x86_sse2"
-
-RDEPEND="
-arm? ( sys-devel/binutils[gold] )
-arm64? ( sys-devel/binutils[gold] )"
-BDEPEND="|| (
- >=dev-lang/go-${GO_BOOTSTRAP_MIN}
- >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )"
-
-# the *.syso files have writable/executable stacks
-QA_EXECSTACK='*.syso'
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
-QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
-
-# This package triggers "unrecognized elf file(s)" notices on riscv.
-# https://bugs.gentoo.org/794046
-QA_PREBUILT='.*'
-
-# Do not strip this package. Stripping is unsupported upstream and may
-# fail.
-RESTRICT+=" strip"
-
-DOCS=(
- CONTRIBUTING.md
- PATENTS
- README.md
- SECURITY.md
-)
-
-go_arch() {
- # By chance most portage arch names match Go
- local tc_arch=$(tc-arch $@)
- case "${tc_arch}" in
- x86) echo 386;;
- x64-*) echo amd64;;
- loong) echo loong64;;
- mips) if use abi_mips_o32; then
- [[ $(tc-endian $@) = big ]] && echo mips || echo mipsle
- elif use abi_mips_n64; then
- [[ $(tc-endian $@) = big ]] && echo mips64 || echo mips64le
- fi ;;
- ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
- riscv) echo riscv64 ;;
- s390) echo s390x ;;
- *) echo "${tc_arch}";;
- esac
-}
-
-go_arm() {
- case "${1:-${CHOST}}" in
- armv5*) echo 5;;
- armv6*) echo 6;;
- armv7*) echo 7;;
- *)
- die "unknown GOARM for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_os() {
- case "${1:-${CHOST}}" in
- *-linux*) echo linux;;
- *-darwin*) echo darwin;;
- *-freebsd*) echo freebsd;;
- *-netbsd*) echo netbsd;;
- *-openbsd*) echo openbsd;;
- *-solaris*) echo solaris;;
- *-cygwin*|*-interix*|*-winnt*)
- echo windows
- ;;
- *)
- die "unknown GOOS for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_tuple() {
- echo "$(go_os $@)_$(go_arch $@)"
-}
-
-go_cross_compile() {
- [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
-}
-
-PATCHES=(
- "${FILESDIR}"/go-never-download-newer-toolchains.patch
-)
-
-src_compile() {
- if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
- elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
- else
- eerror "Go cannot be built without go or go-bootstrap installed"
- die "Should not be here, please report a bug"
- fi
-
- export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="${PWD}"
- export GOBIN="${GOROOT}/bin"
-
- # Go's build script does not use BUILD/HOST/TARGET consistently. :(
- export GOHOSTARCH=$(go_arch ${CBUILD})
- export GOHOSTOS=$(go_os ${CBUILD})
- export CC=$(tc-getBUILD_CC)
-
- export GOARCH=$(go_arch)
- export GOOS=$(go_os)
- export CC_FOR_TARGET=$(tc-getCC)
- export CXX_FOR_TARGET=$(tc-getCXX)
- use arm && export GOARM=$(go_arm)
- use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat')
-
- cd src
- bash -x ./make.bash || die "build failed"
-}
-
-src_test() {
- go_cross_compile && return 0
-
- cd src
-
- # https://github.com/golang/go/issues/42005
- rm cmd/link/internal/ld/fallocate_test.go || die
-
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild -k || die "tests failed"
-}
-
-src_install() {
- dodir /usr/lib/go
- # The use of cp is deliberate in order to retain permissions
- cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
- einstalldocs
-
- insinto /usr/lib/go
- doins go.env VERSION
-
- # testdata directories are not needed on the installed system
- rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
-
- local bin_path
- if go_cross_compile; then
- bin_path="bin/$(go_tuple)"
- else
- bin_path=bin
- fi
- local f x
- for x in ${bin_path}/*; do
- f=${x##*/}
- dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
- done
-
- # install the @golang-rebuild set for Portage
- insinto /usr/share/portage/config/sets
- newins "${FILESDIR}"/go-sets.conf go.conf
-}
-
-pkg_postinst() {
- [[ -z ${REPLACING_VERSIONS} ]] && return
- elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
- elog "all packages compiled with previous versions of ${CATEGORY}/${PN}"
- elog "due to the static linking nature of go."
- elog "If this is not done, the packages compiled with the older"
- elog "version of the compiler will not be updated until they are"
- elog "updated individually, which could mean they will have"
- elog "vulnerabilities."
- elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
- elog "See https://bugs.gentoo.org/752153 for more info"
-}
diff --git a/dev-lang/go/go-1.21.9.ebuild b/dev-lang/go/go-1.21.9.ebuild
deleted file mode 100644
index 7588d8461f60..000000000000
--- a/dev-lang/go/go-1.21.9.ebuild
+++ /dev/null
@@ -1,210 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-
-# See "Bootstrap" in release notes
-GO_BOOTSTRAP_MIN=1.17.13
-MY_PV=${PV/_/}
-
-inherit toolchain-funcs
-
-case ${PV} in
-*9999*)
- EGIT_REPO_URI="https://github.com/golang/go.git"
- inherit git-r3
- ;;
-*)
- SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
- S="${WORKDIR}"/go
- case ${PV} in
- *_beta*|*_rc*) ;;
- *)
- KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
- ;;
- esac
-esac
-
-DESCRIPTION="A concurrent garbage collected and typesafe programming language"
-HOMEPAGE="https://go.dev"
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-IUSE="abi_mips_o32 abi_mips_n64 cpu_flags_x86_sse2"
-
-RDEPEND="
-arm? ( sys-devel/binutils[gold] )
-arm64? ( sys-devel/binutils[gold] )"
-BDEPEND="|| (
- >=dev-lang/go-${GO_BOOTSTRAP_MIN}
- >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )"
-
-# the *.syso files have writable/executable stacks
-QA_EXECSTACK='*.syso'
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
-QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
-
-# This package triggers "unrecognized elf file(s)" notices on riscv.
-# https://bugs.gentoo.org/794046
-QA_PREBUILT='.*'
-
-# Do not strip this package. Stripping is unsupported upstream and may
-# fail.
-RESTRICT+=" strip"
-
-DOCS=(
- CONTRIBUTING.md
- PATENTS
- README.md
- SECURITY.md
-)
-
-go_arch() {
- # By chance most portage arch names match Go
- local tc_arch=$(tc-arch $@)
- case "${tc_arch}" in
- x86) echo 386;;
- x64-*) echo amd64;;
- loong) echo loong64;;
- mips) if use abi_mips_o32; then
- [[ $(tc-endian $@) = big ]] && echo mips || echo mipsle
- elif use abi_mips_n64; then
- [[ $(tc-endian $@) = big ]] && echo mips64 || echo mips64le
- fi ;;
- ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
- riscv) echo riscv64 ;;
- s390) echo s390x ;;
- *) echo "${tc_arch}";;
- esac
-}
-
-go_arm() {
- case "${1:-${CHOST}}" in
- armv5*) echo 5;;
- armv6*) echo 6;;
- armv7*) echo 7;;
- *)
- die "unknown GOARM for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_os() {
- case "${1:-${CHOST}}" in
- *-linux*) echo linux;;
- *-darwin*) echo darwin;;
- *-freebsd*) echo freebsd;;
- *-netbsd*) echo netbsd;;
- *-openbsd*) echo openbsd;;
- *-solaris*) echo solaris;;
- *-cygwin*|*-interix*|*-winnt*)
- echo windows
- ;;
- *)
- die "unknown GOOS for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_tuple() {
- echo "$(go_os $@)_$(go_arch $@)"
-}
-
-go_cross_compile() {
- [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
-}
-
-PATCHES=(
- "${FILESDIR}"/go-never-download-newer-toolchains.patch
-)
-
-src_compile() {
- if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
- elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
- else
- eerror "Go cannot be built without go or go-bootstrap installed"
- die "Should not be here, please report a bug"
- fi
-
- export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="${PWD}"
- export GOBIN="${GOROOT}/bin"
-
- # Go's build script does not use BUILD/HOST/TARGET consistently. :(
- export GOHOSTARCH=$(go_arch ${CBUILD})
- export GOHOSTOS=$(go_os ${CBUILD})
- export CC=$(tc-getBUILD_CC)
-
- export GOARCH=$(go_arch)
- export GOOS=$(go_os)
- export CC_FOR_TARGET=$(tc-getCC)
- export CXX_FOR_TARGET=$(tc-getCXX)
- use arm && export GOARM=$(go_arm)
- use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat')
-
- cd src
- bash -x ./make.bash || die "build failed"
-}
-
-src_test() {
- go_cross_compile && return 0
-
- cd src
-
- # https://github.com/golang/go/issues/42005
- rm cmd/link/internal/ld/fallocate_test.go || die
-
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild -k || die "tests failed"
-}
-
-src_install() {
- dodir /usr/lib/go
- # The use of cp is deliberate in order to retain permissions
- cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
- einstalldocs
-
- insinto /usr/lib/go
- doins go.env VERSION
-
- # testdata directories are not needed on the installed system
- rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
-
- local bin_path
- if go_cross_compile; then
- bin_path="bin/$(go_tuple)"
- else
- bin_path=bin
- fi
- local f x
- for x in ${bin_path}/*; do
- f=${x##*/}
- dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
- done
-
- # install the @golang-rebuild set for Portage
- insinto /usr/share/portage/config/sets
- newins "${FILESDIR}"/go-sets.conf go.conf
-}
-
-pkg_postinst() {
- [[ -z ${REPLACING_VERSIONS} ]] && return
- elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
- elog "all packages compiled with previous versions of ${CATEGORY}/${PN}"
- elog "due to the static linking nature of go."
- elog "If this is not done, the packages compiled with the older"
- elog "version of the compiler will not be updated until they are"
- elog "updated individually, which could mean they will have"
- elog "vulnerabilities."
- elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
- elog "See https://bugs.gentoo.org/752153 for more info"
-}
diff --git a/dev-lang/go/go-1.22.2.ebuild b/dev-lang/go/go-1.22.2.ebuild
deleted file mode 100644
index 38f5a0419240..000000000000
--- a/dev-lang/go/go-1.22.2.ebuild
+++ /dev/null
@@ -1,213 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-export CBUILD=${CBUILD:-${CHOST}}
-export CTARGET=${CTARGET:-${CHOST}}
-
-# See "Bootstrap" in release notes
-GO_BOOTSTRAP_MIN=1.20.14
-MY_PV=${PV/_/}
-
-inherit toolchain-funcs
-
-case ${PV} in
-*9999*)
- EGIT_REPO_URI="https://github.com/golang/go.git"
- inherit git-r3
- ;;
-*)
- SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
- S="${WORKDIR}"/go
- case ${PV} in
- *_beta*|*_rc*) ;;
- *)
- KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
- ;;
- esac
-esac
-
-DESCRIPTION="A concurrent garbage collected and typesafe programming language"
-HOMEPAGE="https://go.dev"
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-IUSE="abi_mips_o32 abi_mips_n64 cpu_flags_x86_sse2"
-
-RDEPEND="
-arm? ( sys-devel/binutils[gold] )
-arm64? ( sys-devel/binutils[gold] )"
-BDEPEND="|| (
- >=dev-lang/go-${GO_BOOTSTRAP_MIN}
- >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )"
-
-# the *.syso files have writable/executable stacks
-QA_EXECSTACK='*.syso'
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
-QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
-
-# This package triggers "unrecognized elf file(s)" notices on riscv.
-# https://bugs.gentoo.org/794046
-QA_PREBUILT='.*'
-
-# Do not strip this package. Stripping is unsupported upstream and may
-# fail.
-RESTRICT=" strip"
-
-DOCS=(
- CONTRIBUTING.md
- PATENTS
- README.md
- SECURITY.md
-)
-
-go_arch() {
- # By chance most portage arch names match Go
- local tc_arch=$(tc-arch $@)
- case "${tc_arch}" in
- x86) echo 386;;
- x64-*) echo amd64;;
- loong) echo loong64;;
- mips) if use abi_mips_o32; then
- [[ $(tc-endian $@) = big ]] && echo mips || echo mipsle
- elif use abi_mips_n64; then
- [[ $(tc-endian $@) = big ]] && echo mips64 || echo mips64le
- fi ;;
- ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
- riscv) echo riscv64 ;;
- s390) echo s390x ;;
- *) echo "${tc_arch}";;
- esac
-}
-
-go_arm() {
- case "${1:-${CHOST}}" in
- armv5*) echo 5;;
- armv6*) echo 6;;
- armv7*) echo 7;;
- *)
- die "unknown GOARM for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_os() {
- case "${1:-${CHOST}}" in
- *-linux*) echo linux;;
- *-darwin*) echo darwin;;
- *-freebsd*) echo freebsd;;
- *-netbsd*) echo netbsd;;
- *-openbsd*) echo openbsd;;
- *-solaris*) echo solaris;;
- *-cygwin*|*-interix*|*-winnt*)
- echo windows
- ;;
- *)
- die "unknown GOOS for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_tuple() {
- echo "$(go_os $@)_$(go_arch $@)"
-}
-
-go_cross_compile() {
- [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
-}
-
-PATCHES=(
- "${FILESDIR}"/go-never-download-newer-toolchains.patch
-)
-
-src_compile() {
- if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
- elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
- else
- eerror "Go cannot be built without go or go-bootstrap installed"
- die "Should not be here, please report a bug"
- fi
-
- export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="${PWD}"
- export GOBIN="${GOROOT}/bin"
-
- # Go's build script does not use BUILD/HOST/TARGET consistently. :(
- export GOHOSTARCH=$(go_arch ${CBUILD})
- export GOHOSTOS=$(go_os ${CBUILD})
- export CC=$(tc-getBUILD_CC)
-
- export GOARCH=$(go_arch)
- export GOOS=$(go_os)
- export CC_FOR_TARGET=$(tc-getCC)
- export CXX_FOR_TARGET=$(tc-getCXX)
- use arm && export GOARM=$(go_arm)
- use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat')
-
- cd src
- bash -x ./make.bash || die "build failed"
-}
-
-src_test() {
- go_cross_compile && return 0
-
- cd src
-
- # https://github.com/golang/go/issues/42005
- rm cmd/link/internal/ld/fallocate_test.go || die
-
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild -k || die "tests failed"
- cd ..
- rm -fr pkg/*_race || die
- rm -fr pkg/obj/go-build || die
-}
-
-src_install() {
- dodir /usr/lib/go
- # The use of cp is deliberate in order to retain permissions
- cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
- einstalldocs
-
- insinto /usr/lib/go
- doins go.env VERSION*
-
- # testdata directories are not needed on the installed system
- rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
-
- local bin_path
- if go_cross_compile; then
- bin_path="bin/$(go_tuple)"
- else
- bin_path=bin
- fi
- local f x
- for x in ${bin_path}/*; do
- f=${x##*/}
- dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
- done
-
- # install the @golang-rebuild set for Portage
- insinto /usr/share/portage/config/sets
- newins "${FILESDIR}"/go-sets.conf go.conf
-}
-
-pkg_postinst() {
- [[ -z ${REPLACING_VERSIONS} ]] && return
- elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
- elog "all packages compiled with previous versions of ${CATEGORY}/${PN}"
- elog "due to the static linking nature of go."
- elog "If this is not done, the packages compiled with the older"
- elog "version of the compiler will not be updated until they are"
- elog "updated individually, which could mean they will have"
- elog "vulnerabilities."
- elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
- elog "See https://bugs.gentoo.org/752153 for more info"
-}
diff --git a/dev-lang/go/go-1.22.1.ebuild b/dev-lang/go/go-1.22.4.ebuild
index 38f5a0419240..38f5a0419240 100644
--- a/dev-lang/go/go-1.22.1.ebuild
+++ b/dev-lang/go/go-1.22.4.ebuild
diff --git a/dev-lang/gprolog/Manifest b/dev-lang/gprolog/Manifest
index c39f0b3c5d47..a1f25fe789db 100644
--- a/dev-lang/gprolog/Manifest
+++ b/dev-lang/gprolog/Manifest
@@ -1,2 +1 @@
-DIST gprolog-1.4.5.tar.gz 3587361 BLAKE2B c0c73ce249d7c26b914a3f831c6ac93aeb884bded6c5ebbe51223f0685de0be2e746533aade1633a953b93e88a30796fa52ecd5e609d05bc051363cbf34e0477 SHA512 425103bc9e5bdbdb4ae331f5be0cf49524fbdb4f5e2809fb973360de9e7ad9935c1b28f3603e0be696a647153d9f0d3dacdc87251098ac99faf7d0b3c652fc60
DIST gprolog-1.5.0.tar.gz 3813899 BLAKE2B e1d82393f122f37b1e139732c1b954b8a407feac4973b56c2e39dcf907424acca67bd10ea0e833ebbd6764a47b075911a29e05b51c37d3751a5d5fc751a08789 SHA512 7ef1a3555ffa58d3fb0db2b55ffc1d00868021f0f9f3d63dd1f43b5b833e6e00ecc74abfc0573828a3d53f20c134dffaf7fe79ab21b3e16dccfca8c73b5dfb8d
diff --git a/dev-lang/gprolog/files/gprolog-1.4.5-check-boot.patch b/dev-lang/gprolog/files/gprolog-1.4.5-check-boot.patch
deleted file mode 100644
index a2b9638872fb..000000000000
--- a/dev-lang/gprolog/files/gprolog-1.4.5-check-boot.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- gprolog-1.4.5.orig/src/Pl2Wam/check_boot 2012-12-07 03:09:23.000000000 +0100
-+++ gprolog-1.4.5/src/Pl2Wam/check_boot 2018-09-01 12:56:38.385276112 +0200
-@@ -13,7 +13,7 @@
-
- rm_make() {
- rm -f $*
-- make >/tmp/make.log 2>&1 || (echo /tmp/make.log ; exit 1)
-+ make >make.log 2>&1 || (echo make.log ; exit 1)
- }
-
-
diff --git a/dev-lang/gprolog/files/gprolog-1.4.5-ldflags.patch b/dev-lang/gprolog/files/gprolog-1.4.5-ldflags.patch
deleted file mode 100644
index 05bdb8e366a4..000000000000
--- a/dev-lang/gprolog/files/gprolog-1.4.5-ldflags.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff -urN gprolog-1.4.5.orig/src/Ma2Asm/Makefile.in gprolog-1.4.5/src/Ma2Asm/Makefile.in
---- gprolog-1.4.5.orig/src/Ma2Asm/Makefile.in 2015-01-13 19:00:19.000000000 +0100
-+++ gprolog-1.4.5/src/Ma2Asm/Makefile.in 2018-07-22 11:20:29.622236171 +0200
-@@ -19,7 +19,7 @@
-
- ma2asm@EXE_SUFFIX@: ma2asm@OBJ_SUFFIX@ ma_parser@OBJ_SUFFIX@ \
- ma2asm_inst@OBJ_SUFFIX@ ma2asm_inst.c
-- $(CC) $(CFLAGS) @CC_EXE_NAME_OPT@ma2asm@EXE_SUFFIX@ ma2asm@OBJ_SUFFIX@ ma2asm_inst@OBJ_SUFFIX@ ma_parser@OBJ_SUFFIX@
-+ $(CC) $(LDFLAGS) @CC_EXE_NAME_OPT@ma2asm@EXE_SUFFIX@ ma2asm@OBJ_SUFFIX@ ma2asm_inst@OBJ_SUFFIX@ ma_parser@OBJ_SUFFIX@
-
-
- clean:
-diff -urN gprolog-1.4.5.orig/src/TopComp/Makefile.in gprolog-1.4.5/src/TopComp/Makefile.in
---- gprolog-1.4.5.orig/src/TopComp/Makefile.in 2018-07-14 10:19:12.000000000 +0200
-+++ gprolog-1.4.5/src/TopComp/Makefile.in 2018-07-22 11:20:29.622236171 +0200
-@@ -23,10 +23,10 @@
-
- $(GPLC)@EXE_SUFFIX@: top_comp.c copying.c ../EnginePl/wam_regs.h \
- ../EnginePl/gp_config.h ../EnginePl/machine1.c decode_hexa.c copying.c prolog_path.c
-- $(CC) $(CFLAGS) @CC_EXE_NAME_OPT@$(GPLC)@EXE_SUFFIX@ top_comp.c $(LDLIBS)
-+ $(CC) $(LDFLAGS) $(CFLAGS) @CC_EXE_NAME_OPT@$(GPLC)@EXE_SUFFIX@ top_comp.c $(LDLIBS)
-
- $(HEXGPLC)@EXE_SUFFIX@: hexfilter.c decode_hexa.c
-- $(CC) $(CFLAGS) @CC_EXE_NAME_OPT@$(HEXGPLC)@EXE_SUFFIX@ hexfilter.c
-+ $(CC) $(LDFLAGS) $(CFLAGS) @CC_EXE_NAME_OPT@$(HEXGPLC)@EXE_SUFFIX@ hexfilter.c
-
-
-
-diff -urN gprolog-1.4.5.orig/src/Wam2Ma/Makefile.in gprolog-1.4.5/src/Wam2Ma/Makefile.in
---- gprolog-1.4.5.orig/src/Wam2Ma/Makefile.in 2015-01-05 11:11:29.000000000 +0100
-+++ gprolog-1.4.5/src/Wam2Ma/Makefile.in 2018-07-22 11:20:29.622236171 +0200
-@@ -12,7 +12,7 @@
- $(CC) $(CFLAGS) -c wam2ma.c
-
- wam2ma@EXE_SUFFIX@: wam2ma@OBJ_SUFFIX@ wam_parser@OBJ_SUFFIX@
-- $(CC) $(CFLAGS) @CC_EXE_NAME_OPT@wam2ma@EXE_SUFFIX@ wam2ma@OBJ_SUFFIX@ wam_parser@OBJ_SUFFIX@
-+ $(CC) $(LDFLAGS) @CC_EXE_NAME_OPT@wam2ma@EXE_SUFFIX@ wam2ma@OBJ_SUFFIX@ wam_parser@OBJ_SUFFIX@
-
-
- clean:
diff --git a/dev-lang/gprolog/files/gprolog-1.4.5-links.patch b/dev-lang/gprolog/files/gprolog-1.4.5-links.patch
deleted file mode 100644
index 573e27910bd0..000000000000
--- a/dev-lang/gprolog/files/gprolog-1.4.5-links.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- gprolog-1.4.5.orig/src/Makefile.in 2018-07-14 10:19:12.000000000 +0200
-+++ gprolog-1.4.5/src/Makefile.in 2018-07-22 11:41:15.762184054 +0200
-@@ -81,10 +81,10 @@
-
- # --- Links --- #
-
--install-links: uninstall-links
-+install-links:
- if test $(LINKS_DIR) != none; then \
- ./mkinstalldirs $(LINKS_DIR); \
-- (cd $(LINKS_DIR) ; $(LN_S) $(INSTALL_DIR)/bin/* .); \
-+ (cd $(LINKS_DIR); for i in $(BIN_FILES); do $(LN_S) -r $(INSTALL_DIR)/bin/$$i .; done); \
- fi
-
- uninstall-links:
diff --git a/dev-lang/gprolog/files/gprolog-1.4.5-llvm-as.patch b/dev-lang/gprolog/files/gprolog-1.4.5-llvm-as.patch
deleted file mode 100644
index 6adc8feb2720..000000000000
--- a/dev-lang/gprolog/files/gprolog-1.4.5-llvm-as.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- gprolog-1.4.5.orig/src/configure.in 2018-07-14 08:19:12.000000000 -0000
-+++ gprolog-1.4.5/src/configure.in 2021-06-27 10:13:31.004977355 -0000
-@@ -334,15 +334,26 @@
- dnl we use AS0 instead of AS else AC_CHECK_TOOL does not work
- dnl (instead of testing a prefix like x86_64-w64-mingw32- it will
- dnl think the user wants to override the test)
-- AS0=as
-- case "$host" in
-- sparc64*bsd*) ASFLAGS='-Av9a -64 -K PIC';;
-- i*86*darwin1*) ASFLAGS='-arch i686';;
-- i*86*linux*) ASFLAGS='--32';;
-- x86_64*solaris*) AS0=gas; ASFLAGS='--64';;
-- x86_64*darwin*) ASFLAGS='-arch x86_64';;
-- x86_64*linux*) ASFLAGS='--64';;
-- *) if test "$with_gas" = yes; then AS0=gas; fi;;
-+ case "$CC" in
-+ *cc)
-+ AS0=as
-+ case "$host" in
-+ sparc64*bsd*) ASFLAGS='-Av9a -64 -K PIC';;
-+ i*86*darwin1*) ASFLAGS='-arch i686';;
-+ i*86*linux*) ASFLAGS='--32';;
-+ x86_64*solaris*) AS0=gas; ASFLAGS='--64';;
-+ x86_64*darwin*) ASFLAGS='-arch x86_64';;
-+ x86_64*linux*) ASFLAGS='--64';;
-+ *) if test "$with_gas" = yes; then AS0=gas; fi;;
-+ esac
-+ ;;
-+ *clang)
-+ AS0=$CC
-+ ASFLAGS='-c'
-+ ;;
-+ *)
-+ AC_MSG_ERROR([unsupported compiler $CC])
-+ ;;
- esac
- AC_CHECK_TOOL([AS],[$AS0])
- AC_PROG_RANLIB
diff --git a/dev-lang/gprolog/files/gprolog-1.4.5-nodocs.patch b/dev-lang/gprolog/files/gprolog-1.4.5-nodocs.patch
deleted file mode 100644
index c5c517b1887a..000000000000
--- a/dev-lang/gprolog/files/gprolog-1.4.5-nodocs.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- gprolog-1.4.5.orig/src/Makefile.in 2018-07-14 10:19:12.000000000 +0200
-+++ gprolog-1.4.5/src/Makefile.in 2018-07-22 11:59:54.877137249 +0200
-@@ -97,7 +97,7 @@
- # --- Documentation --- #
-
- install-doc:
-- if test $(DOC_DIR) != none; then \
-+ if test $(DOC_DIR) != $(DESTDIR)none; then \
- ./mkinstalldirs $(DOC_DIR); \
- (F=`cd ../doc; echo $(DOC_FILES)`; \
- for i in $$F; do $(INSTALL_DATA) ../doc/$$i $(DOC_DIR); done); \
-@@ -113,7 +113,7 @@
- # --- HTML --- #
-
- install-html:
-- if test $(HTML_DIR) != none; then \
-+ if test $(HTML_DIR) != $(DESTDIR)none; then \
- ./mkinstalldirs $(HTML_DIR); \
- (F=`cd ../doc/html_node; echo $(HTML_FILES)`; \
- for i in $$F; do $(INSTALL_DATA) ../doc/html_node/$$i $(HTML_DIR); done); \
-@@ -129,7 +129,7 @@
- # --- Examples --- #
-
- install-examples:
-- if test $(EXAMPLES_DIR) != none; then \
-+ if test $(EXAMPLES_DIR) != $(DESTDIR)none; then \
- ./mkinstalldirs $(EXAMPLES_DIR)/ExamplesPl; \
- (F=`cd ../examples/ExamplesPl; echo $(EXPL_FILES)`; \
- for i in $$F; do $(INSTALL_DATA) ../examples/ExamplesPl/$$i $(EXAMPLES_DIR)/ExamplesPl; done); \
diff --git a/dev-lang/gprolog/files/gprolog-1.4.5-txt-file.patch b/dev-lang/gprolog/files/gprolog-1.4.5-txt-file.patch
deleted file mode 100644
index e385e948129b..000000000000
--- a/dev-lang/gprolog/files/gprolog-1.4.5-txt-file.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- gprolog-1.4.5.orig/src/Makefile.in 2018-07-14 10:19:12.000000000 +0200
-+++ gprolog-1.4.5/src/Makefile.in 2018-07-22 11:56:09.247146686 +0200
-@@ -60,7 +60,6 @@
- install-system:
- ./mkinstalldirs $(INSTALL_DIR) $(INSTALL_DIR)/bin \
- $(INSTALL_DIR)/include $(INSTALL_DIR)/lib
-- for i in $(TXT_FILES); do $(INSTALL_DATA) ../$$i $(INSTALL_DIR); done
- for i in $(BIN_FILES); do $(INSTALL_PROGRAM) */$$i $(INSTALL_DIR)/bin; done
- for i in $(OBJ_FILES); do $(INSTALL_DATA) */$$i $(INSTALL_DIR)/lib; done
- for i in $(LIB_FILES); do $(INSTALL_DATA) */$$i $(INSTALL_DIR)/lib; done
diff --git a/dev-lang/gprolog/gprolog-1.4.5.ebuild b/dev-lang/gprolog/gprolog-1.4.5.ebuild
deleted file mode 100644
index 355d3940417f..000000000000
--- a/dev-lang/gprolog/gprolog-1.4.5.ebuild
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools flag-o-matic toolchain-funcs
-
-DESCRIPTION="A native Prolog compiler with constraint solving over finite domains (FD)"
-HOMEPAGE="http://www.gprolog.org/"
-SRC_URI="http://www.gprolog.org/${P}.tar.gz"
-S="${WORKDIR}"/${P}
-
-LICENSE="|| ( GPL-2+ LGPL-3+ )"
-SLOT="0"
-KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
-IUSE="debug doc examples"
-
-PATCHES=(
- "${FILESDIR}"/${P}-ldflags.patch
- "${FILESDIR}"/${P}-links.patch
- "${FILESDIR}"/${P}-nodocs.patch
- "${FILESDIR}"/${P}-txt-file.patch
- "${FILESDIR}"/${P}-check-boot.patch
- "${FILESDIR}"/${P}-llvm-as.patch
-)
-
-src_prepare() {
- default
-
- cd "${S}"/src
- eautoconf
-}
-
-src_configure() {
- CFLAGS_MACHINE="`get-flag -march` `get-flag -mcpu` `get-flag -mtune`"
-
- # Work around -fno-common (GCC 10 default), bug #71202
- append-flags -fcommon
-
- append-flags -fno-strict-aliasing
- use debug && append-flags -DDEBUG
-
- if tc-enables-pie; then
- # gplc generates its own native ASM; disable PIE
- append-ldflags -no-pie
- fi
-
- if tc-is-gcc && ! use x86; then
- gprolog_use_regs=yes
- else
- gprolog_use_regs=no
- fi
-
- cd "${S}"/src || die
- econf \
- CFLAGS_MACHINE="${CFLAGS_MACHINE}" \
- --with-c-flags="${CFLAGS}" \
- --with-install-dir="${EPREFIX}"/usr/$(get_libdir)/${P} \
- --with-links-dir="${EPREFIX}"/usr/bin \
- --enable-regs=${gprolog_use_regs} \
- $(use_with doc doc-dir "${EPREFIX}"/usr/share/doc/${PF}) \
- $(use_with doc html-dir "${EPREFIX}"/usr/share/doc/${PF}/html) \
- $(use_with examples examples-dir "${EPREFIX}"/usr/share/doc/${PF}/examples)
-}
-
-src_compile() {
- cd "${S}"/src || die
-
- # gprolog is compiled using gplc which cannot be run in parallel
- emake -j1
-}
-
-src_test() {
- cd "${S}"/src || die
-
- emake -j1 check
-}
-
-src_install() {
- cd "${S}"/src || die
- emake DESTDIR="${D}" install
-
- cd "${S}" || die
- dodoc ChangeLog NEWS PROBLEMS README
-}
diff --git a/dev-lang/gprolog/gprolog-1.5.0-r1.ebuild b/dev-lang/gprolog/gprolog-1.5.0-r1.ebuild
index 29233aa9547b..9762d540b63f 100644
--- a/dev-lang/gprolog/gprolog-1.5.0-r1.ebuild
+++ b/dev-lang/gprolog/gprolog-1.5.0-r1.ebuild
@@ -12,7 +12,7 @@ S="${WORKDIR}"/${P}
LICENSE="|| ( GPL-2+ LGPL-3+ )"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="debug doc examples"
PATCHES=(
diff --git a/dev-lang/ispc/Manifest b/dev-lang/ispc/Manifest
index a843a6c1018c..da208529ebcf 100644
--- a/dev-lang/ispc/Manifest
+++ b/dev-lang/ispc/Manifest
@@ -1 +1,2 @@
DIST ispc-1.23.0.gh.tar.gz 19624959 BLAKE2B 08cf817bdd4cd76121dd6c9586ef5f3f9296e7a3b509c51db6413fb62aee0b462ae8baa9fd9497b20c67d4df90149eba16a48b61dd8793c5b64c95a21b13e5d8 SHA512 34cd2572cdaf38f7911ffe52dfb7346f1607de1f81635bdf94e365dee810b30ddeb090eee4a592d9331bb051498172bfd868cd8de9c38bed388d7207a30ac0d8
+DIST ispc-1.24.0.gh.tar.gz 19674211 BLAKE2B 246a079f03fa17f1ab4d80c55b992e92f44d5395e3f1feadee90c773771496ead4de0671b3869c70d5a93038d7c0ccaf9ed3ad5b5e40eb156d605a73150b15d9 SHA512 ad9feab1b5986471a52c775c1220ae46904ae952b33a14299f525eb03e004c6e1395dd171ddedee833892d57ad195ffddb234b26a2df42138fb1b2364b62803e
diff --git a/dev-lang/ispc/ispc-1.24.0.ebuild b/dev-lang/ispc/ispc-1.24.0.ebuild
new file mode 100644
index 000000000000..0040707fe672
--- /dev/null
+++ b/dev-lang/ispc/ispc-1.24.0.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( {17..18} )
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit cmake llvm-r1 multiprocessing python-any-r1 toolchain-funcs
+
+DESCRIPTION="Intel SPMD Program Compiler"
+HOMEPAGE="
+ https://ispc.github.io/
+ https://github.com/ispc/ispc/
+"
+SRC_URI="
+ https://github.com/ispc/ispc/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD BSD-2 UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+IUSE="examples gpu openmp test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ ')
+ sys-libs/ncurses:=
+ gpu? ( dev-libs/level-zero:= )
+ !openmp? ( dev-cpp/tbb:= )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ app-alternatives/yacc
+ app-alternatives/lex
+ ${PYTHON_DEPS}
+"
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ llvm-r1_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ if use amd64; then
+ # On amd64 systems, build system enables x86/i686 build too.
+ # This ebuild doesn't even have multilib support, nor need it.
+ # https://bugs.gentoo.org/730062
+ einfo "Removing auto-x86 build on amd64"
+ sed -i -e 's:set(target_arch "i686"):return():' cmake/GenerateBuiltins.cmake || die
+ fi
+
+ # do not require bundled gtest
+ mkdir -p ispcrt/tests/vendor/google/googletest || die
+ cat > ispcrt/tests/vendor/google/googletest/CMakeLists.txt <<-EOF || die
+ find_package(GTest)
+ EOF
+ # remove hacks that break unbundling
+ sed -i -e '/gmock/d' -e '/install/,$d' ispcrt/tests/CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DARM_ENABLED=$(usex arm)
+ -DCMAKE_SKIP_RPATH=ON
+ -DISPC_INCLUDE_EXAMPLES=OFF
+ -DISPC_INCLUDE_TESTS=$(usex test)
+ -DISPC_INCLUDE_UTILS=OFF
+ -DISPCRT_BUILD_GPU=$(usex gpu)
+ -DISPCRT_BUILD_TASK_MODEL=$(usex openmp OpenMP TBB)
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ # Inject path to prevent using system ispc
+ local -x PATH="${BUILD_DIR}/bin:${PATH}"
+ "${EPYTHON}" ./run_tests.py "-j$(makeopts_jobs)" -v ||
+ die "Testing failed under ${EPYTHON}"
+}
+
+src_install() {
+ cmake_src_install
+
+ if use examples; then
+ docompress -x /usr/share/doc/${PF}/examples
+ dodoc -r examples
+ fi
+}
diff --git a/dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild b/dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild
index 60be1af801e9..c87480e20a8c 100644
--- a/dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild
+++ b/dev-lang/jerryscript/jerryscript-2.4.0-r4.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2021-2023 Gentoo Authors
+# Copyright 2021-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 cmake python-single-r1
DESCRIPTION="Ultra-lightweight JavaScript engine for the Internet of Things"
@@ -17,7 +17,7 @@ IUSE="debugger"
RDEPEND="debugger? ( ${PYTHON_DEPS} )"
BDEPEND="${RDEPEND}"
REQUIRED_USE="debugger? ( ${PYTHON_REQUIRED_USE} )"
-RESTRICT+=" test"
+RESTRICT="test"
PATCHES=(
"${FILESDIR}/jerryscript-2.4.0-python3-r4.patch"
diff --git a/dev-lang/jint/Manifest b/dev-lang/jint/Manifest
index c38c475808a1..0d1497c224e5 100644
--- a/dev-lang/jint/Manifest
+++ b/dev-lang/jint/Manifest
@@ -1,20 +1,30 @@
+DIST benchmarkdotnet.0.13.12.nupkg 1396093 BLAKE2B 225ef4c00f6a7f00c1a70de9c1a2dc1c7b4e1222a63581da7e12460e0a7adb0365ee2cc95d4da7aa104a0589dee902a8d727c92228f6ccb4ebed36cefd671d59 SHA512 f8bcef1b876c80c2e0fdde0dfcc131c216772721ed95c71001d0399566ed8036334a729bf230902547aa3206d96affba2de0a3060a27e573f9fa9e12a653f299
DIST benchmarkdotnet.0.13.7.nupkg 919221 BLAKE2B 0625b92961628fc5a7a88590ff9f92ab4e1bcb88698cec16185c85a151a2bd72a57f576f8ba974c75e8be4cfddd69500808d8c3f8344805ea900a15a59a8249f SHA512 0879981c458b2d5457655eef4ad7361c854d7e4cd06030b980742e62d9ac636f55ecc0acb0a0520b882caf206d445de48acd35e1ac2d031006a9f33be6f51020
+DIST benchmarkdotnet.annotations.0.13.12.nupkg 77356 BLAKE2B c3f99334e9fcdc1d428edc02fbd3d2e3fc9bb06a288666b68bb2b8d6fd51ee553d5056d52356859fe6ad77c20e0920c299dec2e0a7dafb5f38ca2642bceef03a SHA512 e02fb5a992b4aa3d4bdd20bb821756db8ad5be7cd09c44137c2cc978ac0824eabf3b0d2562a8bbec9b1a147470ed78641ab1a6e8e729a09ef5b8ab1d49395a06
DIST benchmarkdotnet.annotations.0.13.7.nupkg 63642 BLAKE2B 9c39a1f13a1a5e17002fe60bc28f08799732a3cabecdff5db68afd6b70aeed33d4d8684174723804d4fa35364cb8d2a54d27b7c584508050da5e97b4a73cc60d SHA512 ef619cd5efd7912c57598f230d231a201481e6b4476192590c5a8caaa019707e1006885095a8129f12b6f749ca119489fae93b05b70abe294d6b4b02196013d6
DIST commandlineparser.2.9.1.nupkg 496069 BLAKE2B e2c4b38841f83d6bc10432b8055af90369f1fe0a10105a58b51b44cd48e5d84cb0b5e4b19f444d8c81b38646a62c7c4d11cbd710e92fea68be3ebea6ab98e3f1 SHA512 4f364e45c9668c7e7cc6a922b488f3fa523033c20d7a432694f0a6af05ce528ea0481d8375e2f4f1032c6990347b4803ce9a0e48068c6fe15ec46fb1254f085d
DIST esprima.3.0.0-rc-04.nupkg 552214 BLAKE2B 5f84bac650ec596a6cf487493a15516c80969dec250cb199b581b9b271883ecd93abef2224390a76a578ae59469672e6458f7ba154723db71cbc6736f991605a SHA512 68753b24275f6161fabbb124332b456431f077e3c69c1bf99d4247693bdaa183d874baca0b2f624acf4b68ec3c4af4790370add6a88785dd5e49574b5f1c9a4f
+DIST esprima.3.0.5.nupkg 509058 BLAKE2B a15db682d07f7261a85a27a3da82ab752b7a373c0e6d3a2781424d9d6212fe0b749969746e509330f2b6c73ea4b648e5012ea62a06242d2ea22a088b6a901ed3 SHA512 751f282833feb4667937e3b88b69904047b914a20ff551f7cf7dcb936f88646bb9f898f033dcf326d0663ea72b513329827473b697f139bc4a45b42f98be1dee
+DIST fluentassertions.6.12.0.nupkg 2451840 BLAKE2B b2a35a7dd0f1176573ea32c906a3b91c92d23d0f53183fe00762720d769c1bcfc90d91054f14f45c5baff45b25db4d0f6461230930dcb438b1920660bf4aa166 SHA512 b99ecd0c8ac555ee086a59248a7b41767559ebd753a4d337d2252bdb138d48399ae88c368927dc1382c162a2d8fbf027a33e326c6c662dfb7e0d015ef8a42fc0
DIST flurl.http.signed.3.2.4.nupkg 217681 BLAKE2B 0d972554abd9c00155ca5bc560703cd7a1b5c6c753e5b00283d0a94821cba5877b7fc524b1dd74ea6c5e9168bc9427d577498c3f04badf87e75ed0dc9ef600cd SHA512 c7d3c751afc589588fc0d468c618c7491b675adf848e323d4fc1e164f59fda93fc47c3a9f1f7bab7f2bbf56102c8c973b8e649bb4ad98e92e73bc9d07be1bad2
DIST flurl.signed.3.0.6.nupkg 86054 BLAKE2B 8b5a83d1b628645cd109be4eff33c6b4eb1037845ab856cfb718133a8554b547f1a999a10ba90fe21a4c952bcec8624e2fb111f4f9e17d82c3eb8a5f06513fb9 SHA512 4e33455ec4eb700bedf55148bcd1ebcee14ced96d7123b9b2747365391b67c7c01216272ad0ea14d7c07b82ee9c65490b270eb05116090ca6ee3a5f446be42d7
DIST gee.external.capstone.2.3.0.nupkg 8145352 BLAKE2B 1e1cfa75c9d8fcff0e905e7d8d5fdd3415daec907f97ee4eb810630d1df26397a5a2a80cdb1fa5fee6268599bc49dd8ee41366867aa16ca689c97db78b4be135 SHA512 9079d5705d591c3b819127b2e0b763dacabb212314e9f96b2f632f62b45a9f3e1c208f136df91a4834dd1838a38ac2fd2161ce8b545fe70f8078b66fc66c4aa8
DIST githubactionstestlogger.2.3.3.nupkg 143114 BLAKE2B 8c20b4cf084ee9465aea6b9c1c1d56758c7bb011ba2d3a9c73310d911880f669fc735abc24443480df321980689c8a3553dba8da08e085857bd3e5b4b5cc62de SHA512 9a40885220cab4f47ec232143658fb5d2844bf6dbb8b861239a0858c5de0c16fef8c27b657d23b12545ae53eb8375bba7fbe5300e5c98e749f820b8ee7409641
DIST iced.1.17.0.nupkg 2106811 BLAKE2B c7042f76781d7a536a8169c861fdbd36d8761e0e89faccf1251506bc6304ad5719da9c62a1f07a43952c1bc1baab2e5ece7e78304b0cdb9eaf3f72d899622661 SHA512 6404bf5518b3d7a7c74478edd56c2c2f194ccadd1cfde3ae7c13c332e442779b817b99744aae19dd4c6400a205055eee7dfc16b43a2f97d0f5200a9bc6c97549
DIST jint-3.0.0_beta2051.tar.gz 2018962 BLAKE2B d03830151ba0076d6b07edb65d56bb6575531e98a71988791ee8e88ce00b7bb9c7fc2c9de9486b3969830cb656d613d6aaabf2da0e500f7fa8b59ba8a0d80453 SHA512 3faddd5f20062177d464a97db67a028af17dedb4867bb1948a1f8b1fdfd6c1b82a5fda60f5e3a9a0ca2e256687a3fc882acc5e7b3113688f292190be580e39e9
+DIST jint-3.1.2.tar.gz 2084105 BLAKE2B cb2baff3a9f3458f1a5856de8f7859361f727200a8c1341cc421a52f9e2f0cbad559f46d40dc3eb05b87c71ca515d64e02b055fac41bb75460e5062f6ee1231c SHA512 25ea826035ab76bc9d25fd293bad8d17113aa5a2354cf3ecfc8156be64818f09ac201287ab7c9bb138fa01027cbc1a4495d9af473dda3623415d86167278ffe0
DIST jurassic.3.2.6.nupkg 301414 BLAKE2B 453fe2cded3b1cd3a0e144965dfe85e63b53301872894271fc6e0ad1cff1d7d2b38c319cf2950d326cc5dadb9d3d624e6461bbb7db23f7dc6276617ea9e104f0 SHA512 ee83621cd7e739eb601b1b28e068121451f4be8255c23914ea6a011adea6402c945d3821ed514ccc68629e08311586d6bcce9cc9d8423913a109376e4bc8a572
+DIST jurassic.3.2.7.nupkg 310835 BLAKE2B 689d8f915e634d2798f5e14776106cb5d5b857e4ecc302c3aa49d0c2c74e81a3ec3afd6b801c1c385e1126926b4a33be1e06c7080c2601587cbcab62b6570383 SHA512 22f3fffd90c65238ddc8bf801b95c18b055dbfa7a3b96bdb1706a8ab94e7b415d5d9701bef3a994dd3bd7a7e9d68e3fbfa27e2b7f7c30458a7a477e2fd596b28
+DIST meziantou.analyzer.2.0.141.nupkg 3376139 BLAKE2B 99ff35b7c396ad7af0ffc148ad6a713ea08b800c82a725f6b213b9d1a3dd979d1b93b3f424e6f34d1d8a0be6121003a9f1a27de2762e37e585a5543f2b2d1037 SHA512 682e7b09e59403f9c943aa95457e8bd41237ba70d1466f99fac648174bd14e3dd994cac0b65676123a48d0a898f7498d9f86a7feebd8eaad63af75d50515a4fc
DIST microsoft.bcl.asyncinterfaces.1.1.0.nupkg 92985 BLAKE2B 3de4d3c85a43d9c81b24419919e82a590615de75dadfc5bc156777938c1ee30ba9602719614223be3a4aedfd589bf4f02e78b576f80926bb29d8e0a742c692d6 SHA512 4277ce265233e5ebf15370e7d42cf8574c1fce715a892eadbeba136136dbc36ba4d78b4090e55217293f8421f2eb84bcfdc9343de42a2d5e06b8ff5b00d0723d
+DIST microsoft.bcl.timeprovider.8.0.0.nupkg 105522 BLAKE2B 58ce1b97f6340ff18499e1e96030ca62bd0e70a0269251d4d7b5ba46c041c3aef343faebe61cde8260c1187976cd2d2c4f7e0e618765b719d9c616f1e4dc3b1f SHA512 cd3ef95abb779e57649e24830d2e004d08f534abc0742aff7fb691b72998fe92269c0d6a95c70da2b8349e18b69c6bb7fcb95bd031c4954e568d23822723ba5a
DIST microsoft.build.tasks.git.1.1.1.nupkg 479497 BLAKE2B 053ad5b3b88194d12e9e784c8a91d33deb8a2abc48cf3179990fdd2f576168b19a757b3a3915309fb040a1441bd5102bca333383d757f828c029846e3feef88f SHA512 1961b5ba2ce215f6cd0943948e66462b7388b612708c58a5e03ab1e041ac77f1582f9ed9134136fce0d5345d1d46a1537ff728f542e6dd4ea2c11eac9d3f8d46
+DIST microsoft.build.tasks.git.8.0.0.nupkg 463717 BLAKE2B 0c98d762063932ddd139aa0e0c5d09bd83d8c67230f734c71add92c22b8e4692008dec50753eb0965cfe9d88d1b0b33e03d99b70a9ddf5a2714c94ccf0d2ea58 SHA512 0e4eecd441c4fb05e17aaae4d63a75e43779e8def8eaddd95c4171f690b7dfe622e06e765dc74ebd21ad28427e271d14ad0bb2af2e29bf13724e819f618dd188
DIST microsoft.codeanalysis.analyzers.3.3.3.nupkg 1111022 BLAKE2B 8704bf2c8a57bdca4ad3d5a2531ff47b0b44d2461ce3c8eec4b58f5cb38f9371fe5aaeb8026a3abbf6299fe30b3f059c892ee6dd239a03eb8b36462f132a2b4b SHA512 0d4896db8aff9d731c5b1c8f73a4b37460c3f08080fbeac0ecf169abf5bdff9c9a994778f453816b888e939d9d0d615245c91a2e4ba31f85d2ea8de222767104
DIST microsoft.codeanalysis.common.4.1.0.nupkg 4561936 BLAKE2B a3f1d1e9d8e10cd2b6ecb87f1dfbeff158bf488a63e56ff78c7c96107ad65b17e3f2296da21a1dba183b8dbe0d9fc3b2b5778e8a14481866c2b8aa5a63b2d937 SHA512 006f100f9f2b1ce676ba8ffec6eee5019ceba0ecd0fdc109fe92584a0697ebad58e75ba3c96ade6298487588c5d66aa24ae6195118f48bb9f16e27e42c3dd299
DIST microsoft.codeanalysis.csharp.4.1.0.nupkg 10405400 BLAKE2B c287af3ff6dce7c3aacae3d7295236dbde32852683c5f0c74bf14cf8499de219eaf2131ff6943cb2876ff99c77913986ed89b6dcc1ff6b27324900bfc0f1bb5b SHA512 fcf8a01dcb5097390d4d75405de3f637356ba9acb4bd208ac2bf28e01c14feed09a1d2b84c801a59df6b94cf0e386fba2865729b1c339bc29381e1ef1f06d8ea
DIST microsoft.codecoverage.17.7.2.nupkg 9116095 BLAKE2B 2646e030cff43543d271b79eeca75b8b3d62dec1eb2b32b4f7984720b0d124684b9d3002f5167f4d8cc95b4c9cd81206940dafd952e9b74264f6607a5a576af2 SHA512 791aaef8ade199e2f88302544d81db8c04074b455ea35e33d941d2d3e6f60f14397725290283baaef3afe6fa591173debbb66c5afe5d193da622d669a6365da1
+DIST microsoft.codecoverage.17.8.0.nupkg 9139132 BLAKE2B b9a9e71595742023f43a50e159ae6c0ec61858b0f786a394eb24438a28708a4583e7cb1914ca5e0a717738452aa01c816258eb032736fd3ee404ffb1994d2988 SHA512 bbfb44e01038c77dc33c175478c5f1107bda23536cfc212c14060385c5e41145411550462f6665924883788fbf66477d2f517acb28c51fad53c0f895ceec288c
DIST microsoft.diagnostics.netcore.client.0.2.251802.nupkg 146459 BLAKE2B 5f3c1b217602aac357b529e8d48943c2aaf90973ccb86b577748d3eb11899e9a43f5370c3be77531d15550792f5f966fc694c72d8e3abe83fea1a0d6fcd11f9b SHA512 553336be495e4d899318256fdf085e7800e6cd01a50ba561a3fb879d12f75bd42d58383bdb7b0e679d6f9ba7414b9b5b9d07ded6150a57651e16d1e95cd804a4
DIST microsoft.diagnostics.runtime.2.2.332302.nupkg 747281 BLAKE2B bb3335a3490ecfd1b4ee5c6d83e136c0a0411b599fdbc5a63f18fe8740f63c6d4e313c6c8346bc890ab95ed007c6ac31513b0351e90766a241f56397abc06cfc SHA512 7b682033f65f6ae06f8c63d6d607551861e1f36045cd670f8b39e28786958c5e7da10426f9ce13762a9a88edb8aa2e730c0a7d04455a61e3e014327ab06dde18
DIST microsoft.diagnostics.tracing.traceevent.3.0.2.nupkg 7528517 BLAKE2B 911f3cb4337c3eb9f9d3fe414691b4a3b1df3bf3ea1294c3053ee82cbf820d76e2d9afc8f7eeef295b1e34dece1757206b8aed102ddc89146757953e9878e1b6 SHA512 31fe5d47f445629e350a27b981f2eb97a9a9842746f8beaec553eb5832b8cb8362ada825d73cdafc02736a92836a16a1f21fe6b375f918241d553a9ae47d8ce0
@@ -29,34 +39,46 @@ DIST microsoft.extensions.logging.2.1.1.nupkg 42526 BLAKE2B b4c303cc0f0a277e58a3
DIST microsoft.extensions.logging.abstractions.2.1.1.nupkg 51616 BLAKE2B 9ad56ee27a9e669866ba2eb312df5ca8a8f28470a352dca45a4aefbb8a8edcd6db592a63459e2be295c5cb16ac574907b7792a90f8e180c42d2e12217cfe4cbb SHA512 7eb031114a70af9f9fe82d84935cadedeb3bd9a9c60e00c914d741cf0d52b9f854cb82abbf294b2494e46603b14deca2c4b5e2cb39591df990e7f79b3a327091
DIST microsoft.extensions.options.2.1.1.nupkg 47762 BLAKE2B 130745fed8c4d5b47ef496744045ec3183ea8ab199a2516009d0ae563aa2683758ae6c10d1ccfe8b2b9dc9d5f881d2553b9d90c0918dd6fdd82c135010bf5ba7 SHA512 55c72f83c97892406b5c00da965b84198373f475d23188a52a849a2dd69600deb48029b2488072cf987857cd8627afb353065c3a8c81ae38a7af4baf4f897ee5
DIST microsoft.extensions.primitives.2.1.1.nupkg 46663 BLAKE2B 50c71f1af3f8019a42f2ab930e1e9c3e8992c532fe27320e98b6ca794473c067c538f8ad7db0f7dce4bf52e3b49b0037106a98bd6ec01303cdc4c9911abbdfb1 SHA512 4c24e6b4cdedd5e7928bebd95c82ea4fdbcd068a0e7ae07d54284445f78ff973e2ec108957af1e0f51090c2fcba579006fedd92b615df27a3b53790797aa3391
+DIST microsoft.extensions.timeprovider.testing.8.0.0.nupkg 95170 BLAKE2B 9db60f292e82b93f5f395daeee5d49db2ca6f0183abb10d55f934d92eb7434a16283a2367338d679e9b13453f3cb8270e053f244605ffc5ca1e3c33af7313821 SHA512 672e79cf74500636c491f2a5e8c4e61c62a5b3a312341d541b7598289fb92910863fc13b410ed5ea67985cba98d0aec2ff97165b41a73c5884525f6005a0c3db
DIST microsoft.net.test.sdk.17.7.2.nupkg 39430 BLAKE2B c7d00e93daf1cb4180104c2111b3a286819ef8d692b90d8157877794087357aeffb34640bbf9bcd5e04cf25512db4fa2f41d24cbfdb01e17a1db6e3f23b1973d SHA512 e0ebd2dff0bc55e5aac59b300ea0558aa5110d08caeedf513c441ef98ffffd6d92e8e5a9ca1a1ec7e1fc2e661efc57b1f74d5bb8068b5120cb49e4c11998180c
+DIST microsoft.net.test.sdk.17.8.0.nupkg 37824 BLAKE2B 3ef98fbed1b0fb6e6734939601744c4047ea701681fc7eb5cd13ed33d3a317379aad946d931410492b9efed3543bd50213bb1def3fc465d812ff3ddab0f940cb SHA512 f211f2610137cd114621bd6c8418e52a64149af37c176a79f418892fadb6d5dba31ea4622a95c67e50b32a92fb1b1d5d7fb980502c5c9570dcc4c3258c6787e9
DIST microsoft.netcore.platforms.1.1.0.nupkg 17960 BLAKE2B 6a9fa22d75f5a1c65746dd71a63c3d4e37c393e99c23007c10f5ecce248a04863bf26e7562c7751177a6985eaac266c29cc6a5443a4a853e773f88994ad2a3fd SHA512 6bf892c274596fe2c7164e3d8503b24e187f64d0b7bec6d9b05eb95f04086fceb7a85ea6b2685d42dc465c52f6f0e6f636c0b3fddac48f6f0125dfd83e92d106
DIST microsoft.netcore.platforms.1.1.1.nupkg 31072 BLAKE2B 095f6e8b48a99353061a021ac9a07ec161e28602338d7fa3624891696e9b91642034f968d9e1b77c74ced46628cad45f47cc24189dc12479d1bee92c93eb4cec SHA512 9835090f578b5c8ce6527582cd69663506460e9fdc5464fc2b287331c24d9369e57dd1543a865a8bd89d4fcfc569c26bf0dbfcce102675fdfd1479b9a9652819
DIST microsoft.netcore.platforms.2.1.2.nupkg 31064 BLAKE2B 6b28f015a1c3c2dbad93fac315a896c4ad116befd618f28b89d451b92f2ab642e414bdd372f46858daa52e72978ad6e4862b6a431d121e331296b0f6a08a1c02 SHA512 ec9eef7881fb32eeb37389655a733b611813bfdf84c3e2569240e3d0aedc11ef30b8503a1d1b7a493b70bb1da0faa8e90d7798796b0ad14437b8881189360722
DIST microsoft.netcore.platforms.5.0.0.nupkg 39826 BLAKE2B a122f0d2afb77455c005740fe5096c055f72eb658b0d1f10e6a17f9d07c3bf91ad0010ff472ee1d05b84bfbb75c9de3c46d2a2d33fdcaa245d64d6c3a956f233 SHA512 8493fe11648c7ecc20b6530490d30fd63744961345c0501a7a10b11046661da09b783ddceb8b3208ae52a72a8a94cafdce8dc1bd6073c32081e30d0e7407f174
DIST microsoft.netcore.targets.1.1.0.nupkg 18162 BLAKE2B 419d19e0da934ab4b9db75dd66cc22b83a003f34e93cf7a92feccf4f32d3d695e18b826b1aba13073dd4ec53aa7905a67346921d1055516647ddcde0d79009f1 SHA512 1ef033a68688aab9997ec1c0378acb1638b4afb618e533fcaf749d93389737ba94f4a0a94481becdf701c7e988ae2fe390136a8eae225887ee60db45063490fe
DIST microsoft.netcore.targets.1.1.3.nupkg 31152 BLAKE2B 80a656508fda7db32065d89f8eeb319db79869a00cb22d7a8c9c2204711f057f076e905050717302d4f900b8881c7d2a15bfc040fa285dca984c138cce311d3a SHA512 a71c2af20d8f61188417929756399914c353aac8361abd69baffe9475b2a01db802870066da0ae27afb2737a4026c782950503dbd4b651bae6ee7fd90fbf1d52
+DIST microsoft.netframework.referenceassemblies.1.0.3.nupkg 20961 BLAKE2B 8632244fc71708fbb2a56331c8642a12782baeebda676b1b8d3ada50788e0725a7572cf0ed1c296c4cad3fb8bdd669871c90f963b9c8da6eff796fd30ba768e2 SHA512 e3b8317b290696a380a32abdd9e75e71ddae68049769beb895024c34089f41262aeddf53e30984330b1293f013e34d854a83223ae1e2afe417186795da8dc148
+DIST microsoft.netframework.referenceassemblies.net462.1.0.3.nupkg 19902484 BLAKE2B f4380ca1d96ecfd7a05ba260d69d240bd656e07ed57f38f5c774246ee256ebff1a489a198afdc55a6359e54af8d3f211dfab4302a3d3a8c4800c0e191f4dae51 SHA512 1cc9f441098f61c26c56e29eb7d580f0841b070799bdced44bcf0ddfd8ad491a9c9ffd57393fca6a8d508a2ca4c54fafc7c93bff38a6d7571598ab6e9e3bb830
DIST microsoft.sourcelink.common.1.1.1.nupkg 271934 BLAKE2B 6678fa357eba30a58cd1b457bfe8423a2c0e1359c9088cab364707c0061a7e11035094a00a75528a290b1c9415062ce47a17600bd010f769b3d7e2501456e911 SHA512 bf2241eeeb82876f7612d525064aa90f9bb56610260d44a2fc5b75b63b45a652444c25451f7daacbe97cb2c5a6e72180805f894054f7176cc290d147a2753ef4
+DIST microsoft.sourcelink.common.8.0.0.nupkg 318281 BLAKE2B d53a9f305dd9ad5b6455d3d3146313e9344a9e4e59680644a239d06cfec03f8dbce6577f01113e0ff36fa3911ac6d6d31ee390e34ceb1a613c202950d79cc0ea SHA512 e1c18c1a5a3c83c1215aff7348d6ca4731161f59ef2aaf286910ba7ff3984ca131b04e2f6bd3ae765367039e7489d30eaa298b06616cf9e013d86f5aefb4023d
DIST microsoft.sourcelink.github.1.1.1.nupkg 285433 BLAKE2B 986ee1aa2bd39c577c0ffc71e27d5ed5128dc5b2df9dcdc29f0b62cae31de120253cea0afeb583ab1a3fc5e5b50766a608f2f8ec749224436a031092fb14b553 SHA512 54c7ff8d0cafd654a115d5755710ec89534399a605949ffd43778290796022092679a43e1a129250ff9a03e61417c43dc2fc1362a9019dee88a7e048c1be953c
+DIST microsoft.sourcelink.github.8.0.0.nupkg 330089 BLAKE2B 5c9683ce4b55e6fad9b335495c993dfa656747b15a049f8df9cc7839c91618a157aeea1d5e3f14cf6d4b20a06c91aa37172cca6d12102b060aaf147ced103fba SHA512 1a46485ed34d76994c0eb761600400519edcbff97181f1bff2a2666d432bd912527e82a267c8a9c13497417c6dc4c503fe63672eea20c21fdfa857716e26db9b
DIST microsoft.testplatform.objectmodel.17.7.1.nupkg 1496394 BLAKE2B 2957d63fd29b5adc5753730bedc6531128a36f6738a8951cb7e328d9e2fd9a637dba20974fab33822723b510a6063b782cbea699308bce968caf172991b6cfde SHA512 6230d4db57b4b94e53dbece850ccd8e6d7b5d68a0fe06cf73dd16108f07e0b566ae721b4eeaaaa5b36415d9405bda14b922731d6d50638ea6a8c97a0322305e4
DIST microsoft.testplatform.objectmodel.17.7.2.nupkg 1494924 BLAKE2B ed237ca748d969242f48044bf33eacb8e03a8fcbc78cc36d45233e92b82d150425258c0805631d3d58ae0a1eb66f0dd678007470ec3ef49ab53431885b336a4f SHA512 821050a26c80e5328f6cc5f4b1720e43b293365a956a76f6d9555d047423d416ebde0bc7c62183ca4be4d17beb74c0ff39f37744019fa939b9f0b4b94341bbcb
+DIST microsoft.testplatform.objectmodel.17.8.0.nupkg 1492114 BLAKE2B 32a3a7f4e4cb9af1d330fcb2588ee9602414760eb4f2bda49888372b3ed64e8c47347dbdeda11259134e37b717ad5c23b06ffeda9a1a1772e1afe299429e828d SHA512 17119c472fd87ff721677f92a801693eab53a1897582150c26a60429c99eb1764628e7ba895b40e3b10b9edc00f803b18316a6fdc906ffe54dbd2d04ac63db33
DIST microsoft.testplatform.testhost.17.7.2.nupkg 2808650 BLAKE2B 7f091133b02f319e1d8bee440cd7ce4ec4fc8382a81bc30c62d5c4769bdeb32534d776db64acd146defa34a1b4322fb04025604342795564546c7ed7ee48f317 SHA512 cf2885c5a91aedec09bcc4f15662096340d7b37351db368de98b0569b35e8238ce6dd86c60706fb021f37ecbc3e4b35b405e44b18b4e1adb8cf404076345c3f7
+DIST microsoft.testplatform.testhost.17.8.0.nupkg 2806274 BLAKE2B dff54d1c59a6873793bbe2d6fc9ed75c2d610a8dc41f4f9349228b690db3beb7845660c7d90a5d2588443c13aff4d97b6e0a1df58e88a398b3631a344609060c SHA512 39fb1549fd23fc2c7b4f5525043fc1152b8c62cc813a88c9701f33a666041c6690dadd455899d247fef5e6df372d17f081d6098839086007b2c10618e187ac7a
DIST microsoft.win32.primitives.4.3.0.nupkg 63333 BLAKE2B 132ec29940d4b716110980c4f9a06ba15183d29de638379d09998124605165e51652b2727e3892b57dbc7cacfdc71f9e1b59c9dd5463a524657351f5385d896d SHA512 366f07a79d72f6d61c2b7c43eaa938dd68dfb6b83599d1f6e02089b136fa82bec74b6d54d6e03e08a3c612d51c5596e3535cbc2b29f39b97a827b3e7c79826f0
DIST microsoft.win32.registry.5.0.0.nupkg 354731 BLAKE2B 3e98fbda73990aa8d4a8fe584d317ae59804c3ac40fb42194e332826b5be57ab78e563111dd3278a8099b9cd890d4e37f1bb74e6ec4a443edf7c783ea0cceb0b SHA512 471e66567ce59cc86475aece7815d05261264ce114e0c1688ba2551dd51494901fa72dd7a8f74f8e8f0f3dba74af8595f177552f3c06abb4bfce76692197076e
DIST mongodb.bson.signed.2.19.0.nupkg 831922 BLAKE2B a9e22e5e7dd6c7d3185b6e318650bdc27c9a480cc7c434209ec0f38a4a8201b348c7a0a887d421ec99d2166e3a28ed36887a9da0a6b4270d8eaad226bc2d4223 SHA512 9276b30ec8bf27be56794dd1ea1cfebc7c40781f6aee03eb56236cd4cbd45b5a8e4e4710c236371843bbf8a309c01eb1efbef9ece89869f30e614262b4e46fa9
DIST netstandard.library.1.6.1.nupkg 17360 BLAKE2B 02badd3473451f83997f0b66d05f1541c741e65b9127b8b27ab391260df7939f235eb6648b11c7c11cc5400489ddf1cd26820b7bdf6fd9f1d8f0dfdfeef96acc SHA512 0972dc2dbb4925e896f62bce2e59d4e48639320ee38ad3016dcd485fbd6936a0ed08073ad5eef2a612dff05dfc390f3930fff9e79d87a06070eeb8128277cbd0
DIST netstandard.library.2.0.0.nupkg 3143842 BLAKE2B 7e3fc865e7893fb531b21e2ca791b788af01481316e49a79c4676050c2b8ad413fd8a4ef9890557582ec8b9741c8aa01b080b8d2caa16e02bfff2a7b38777989 SHA512 e3d64072b9cd9f9e86209c06a22688ecda7070427c9a35327d2a9560824c0e1381ccf7bc1d21d2ef8b301761f4bfc7f38fba712df7188d2f4fe4f748aac4d0c7
DIST netstandard.library.2.0.3.nupkg 3146139 BLAKE2B 311e5367398f76c74e78930bc2cd39e450a86bd8626311ded8d58bd84c94a8a84db3c11b2bc10f3eeba20a9d081fe7827981f702ad746b49ae3108c949ba1022 SHA512 e78f0cea69c14895b1b089644077dbce8631a626055d96522f4d29e061d8bfc3e48aa1419e74faf265b998612c03f721f5f0cef4690f824150a5689764dee601
+DIST newtonsoft.json.12.0.2.nupkg 2521025 BLAKE2B 2d6a40a97fedde8a83cef9d4ea9f5635efc83f4f7f6a8d38633e1d2011c9e9a1120979db181396c894f38c4fe0515b86781407fa607bd402dbad80f41d6cfd51 SHA512 9adc1e0573d6869d42310013b414fb65f319adb6414ca7e31b0cfa63be4dc068f1fc6ced0da5277f0f062bd299d93e1f0c8a8a2720e373d471970e7e1b615c54
DIST newtonsoft.json.13.0.1.nupkg 2065787 BLAKE2B 000c38ce26a2a00bb25a9c1d6fb069ada521ff089bb624a5c1255b25767c10616cc51821524e7bc3d8b45eb8f8ee54c97454db1db9ae5e5c78eb6300a99f979d SHA512 83731b662eaf05379a23f8446ef47bbc111349dd4358b7bd8b51383fe9cf637e2fe62f78cea52a0d7bdd582dc6fbbb5837d4a7b1d53dcf37a0ae7473e21ee7b1
DIST newtonsoft.json.13.0.3.nupkg 2441966 BLAKE2B 0c83cd81b9eb647fd9106c5b8b7af4ff6b35eae4fa24712f16cef1db070857b072b9e40a52ed006a82125c860dc48b89ac54224baa24bfdedfa573183e19d169 SHA512 99b252bc77d1c5f5f7b51fd4ea7d5653e9961d7b3061cf9207f8643a9c7cc9965eebc84d6467f2989bb4723b1a244915cc232a78f894e8b748ca882a7c89fb92
DIST nil.js.2.5.1665.nupkg 1338937 BLAKE2B 7dd38082e8b83620880a39efb6be28ecfac42f4e2f9e40d5cf3354a802a4dd5c9f190ef7ab30cde9be89cdaf9a23de38199e8f162066751b2d01f5d28bd11879 SHA512 0d938e4b7d701a2fcd560cd0b6e7584b1d90a1069185f5f8183b77877d983a6d0738e2380f9cbfc549eee1ea15c74147ed09db71cc34a6061deef0e1b04c7eb2
+DIST nil.js.2.5.1677.nupkg 1347465 BLAKE2B a3dfc5ac2341e579375b825efe2f76ef55b78dde10b08eedd4e8e0a3bb6df6baaed421f3acf659345df2f32474cfc2709d6b338f089131707f81ec84732d6c19 SHA512 d65f7eb1f70d1969da4f53cbb5326e7b9f1b0128ed60fc346f2a8aabc0f9afe5578f53c1193b5e0a244af2233f07a194d66317ccfde892b1a2c312472c91c78e
DIST nodatime.3.1.9.nupkg 836198 BLAKE2B 95680514aa414cb7917bee62db8de458b8e78a8190fb57e31e9c088bcc493d42767598f5fa2159e06428931af328e374159f8c8d7bc71ff7c8965effbcb1e2de SHA512 6e40853153a9f43a31fce0532d012af326482d303edd1583a32f56c2ca6354abbcaef57c3c090ade7aa7fbba27ca76d5e5e76931616695a78a4c463b8cc888d4
DIST nuget.frameworks.6.5.0.nupkg 131644 BLAKE2B d8fbfaeb2ec4c269ecad319478b64da5ad9e44d9d82fab8b42400a15ea7d31627bcdb9f1af0f18b15dd8455ac4e92df1b25bc47808f465cd2e972ffa40333f1c SHA512 3f97626af018fa9b03f06751054be2c4e8dbd0d5329de21662b36f3336849838bf5af7d3721643faa6ea90935f836cf502661573953176cff33d4d829d953d56
DIST nullable.1.3.1.nupkg 174895 BLAKE2B e64bd184b940fed76c9cd7d149a9d8d1121dee993b0d27b74bbe39ac83133ef7c691bf7a48d15877b25ba25d268950d561063dbf1f87a01dafd31f768ebaadb8 SHA512 0e5b8353fbc83d130ff38959f85f73faa0778960e112d8e98aeb29a17120e58cfe2e2e770cb5e9bcedec61d01c3f145dbf42f0e061824b8caa610cdfa00b54eb
DIST nunit.3.13.3.nupkg 1307336 BLAKE2B 45475c312fe17bdc60d5999f29a81f64fd19bb125bced63a73eee9bf4f158920adc4bd2d97164954af624c5bd480a99d2f3da56797127acecac1e6d753754b12 SHA512 09dfca502d636c3123adf93331732db354e9e280935d1bbd7923d710f5b29adf82d41efc763e2ce8781dde01d81bbb21af168d897d5820a53c15a0f9bcf11f20
+DIST nunit.4.0.1.nupkg 723573 BLAKE2B 56e92e384b92126fc1fd6889794ab0cc30707c1718c5bcd9fa62b14243a2014c3b6a628b29ea347e9fce906ff440d3b28ed857f58ba579d719e02d71075ea239 SHA512 674603ee7c4024dd83b8ba4a7180ab653404a9acaa691e58cfbf9ea58669950581d9cef51012f80d13dff43442bb648269fac0822c53400c02009fc17fcc1561
DIST nunit3testadapter.4.5.0.nupkg 504560 BLAKE2B 8fb18358909ef9b5828b2b6c2a5bb1c234b2041cef7d57f22319a287bb187621c6e8e40e33b7e1e23f17b9e5ff01a2cc41f932d54e7affc935edf275f0d397d6 SHA512 be32fd672c3ab18bc948f7a6d9c41f79bdabc1fd8d2b6ad9106c14499b35a613ebf05a720959aae4507c2cc10adab45e79f48aa731c6506c716d300193d69154
DIST perfolizer.0.2.1.nupkg 51987 BLAKE2B 2e01e7673ae420136e6194d89c406fca31af85b7f90b460a53ebbe0fef82c38ba3be3821d9e1a7b9b2bf5d117bb9f2f4f91767796bffb51ac14e5cb9f472d873 SHA512 9db50cdcf13a85737c275a0aa3dc4a98b97e7d23e7aca1c9b27df28e454b0d4587315bd62f7181dc03e0257a83d79c7af2e90733eafda70afe5a956c92c20a9a
DIST polysharp.1.13.2.nupkg 73874 BLAKE2B 7ef9479a0d689d2c1d7c84a7afadce32eff5ac88faa89b83d9721df550f7013923c7fa04e010196107af7b05c60bef23254c56da549f758a6699e41f2c3347d2 SHA512 530f122877d122db505da399b7ff6550a595835d08ce49c71995fcf4ae2e0e6836e73264d950e423c7c7b13151005c83841288998525374ca5b732afd8196d58
+DIST polysharp.1.14.1.nupkg 77244 BLAKE2B 463ab5f1a4849b7cac8935211d3ebe0443492a227c33e5a799aa630925676dc64752a5d748402042f953c749786d997c6238f60a1f2a3538b6b68db9c9481775 SHA512 10e80f0e498d6697c70e8e34ee5b1ea13b76518457cee204acfe4c8c0f5b6c971a544ca66f323cc8136576d337daececcc981da5b2647cee44b6bc8c3fe65a30
DIST runtime.any.system.collections.4.3.0.nupkg 107990 BLAKE2B 802e2ae919a4834150d825ac086d8f47e2185e31b60b45f3dbe5f63b1d714953d9faaa7d8fe4cc25a1ea8495c4f8fd925bb198eea0b67e594a8558238b18196c SHA512 9f8833176c139b71a58694ae401c5aec209a63227be07c7ab559bef772082bd1f6cc38ba2949cb1c8e5c5514ad9f4ff51859838dc2f28191f8bb7ae611a50239
DIST runtime.any.system.diagnostics.tools.4.3.0.nupkg 43707 BLAKE2B 33d1c57eb4e50c06488da02ab2bb1b8dba9948026053e662986af05b74045c014e76815edbb588f10d6a904de22e4c50177f31f3fac36d159b9af361a4cb2b62 SHA512 bd257401e179d4b836a4a2f7236a0e303ae997d2453c946bf272036620a0b14e85e5f42c229332930a954655ab4cae359d191a3e3d9746df09535a651367764c
DIST runtime.any.system.diagnostics.tracing.4.3.0.nupkg 49844 BLAKE2B e35998e1369bacc9fa90f74825e021c62b9c671ac9b7cfad4e9b455656bd40e968f348ba8943ed670c74c22bddb1c94ccf5058885233607e3c73a5c7d2a56688 SHA512 0b480d21e23c38965222be7fa1e1a0c7e444cebdf400d1db8d3ac609f893b82d78c5d8b271da61808b7b179dd6466a0090bd807fc2d35020f93a00f0213bb436
@@ -99,13 +121,16 @@ DIST runtime.unix.system.net.sockets.4.3.0.nupkg 105673 BLAKE2B 06119cfdac3ce590
DIST runtime.unix.system.private.uri.4.3.0.nupkg 75969 BLAKE2B 82611545be3eba44ccfbef1f104e9b5afade845fd3b30c6cb40171368330f9d4bb2ad8752e415aa3b1678ec140c40f8e72cd4cc3731f42ca64016c1a1dce70cf SHA512 203ebe272791d79ab0c40afe9d0543852ee91b9fb4ae5bc15524d97728bc8bc9d7e0cbcf65d1fab8cfb0aa7a4ae37e7938933eef127aa5ea46f60e57b6ad2d91
DIST runtime.unix.system.runtime.extensions.4.3.0.nupkg 54075 BLAKE2B f81d86cc15c63aa0b4a3d03546a07649587af7a0285af0de4123734e719fc023fa4227b7abb18307d4fc060e2952c157ec72b3bb85d49ab8508d8167b1aeedd7 SHA512 54b81784c08e934389c59e6e155af6b1855e4bbc41678b01a702c94e6daba87c6ddfd16fe9e2cb61f3097bfa4950dbc37781454d027ce5ba6c50a393cc91b888
DIST sharpziplib.1.4.0.nupkg 726743 BLAKE2B fe43fa0039f474d60804dce1af24e9100fd9b0256c15fa51e5c4e04cb2601100fb2dce2aee9080e4bd63907718bea601d2a81acdaa67d91092110ec555722341 SHA512 799a95729a1e177f2274d8356f5ab75f6a848bdfdb9a5cc3eec31779d86984c1af6d20759902fc745ed3c83e3c702a18e93f08be19409fc35da54da4d4477db4
+DIST sharpziplib.1.4.2.nupkg 741182 BLAKE2B 3d22a281cf9afed622be8a4134f0ce143df11a94c6950bd14d35cf5a39700c4a1bb706c718561b06f8698ae804254bb1d38552a5f1bcce316d85a9394ee359f3 SHA512 4e080196e9b20427d1b5abe23943d647c365611247cf571d3cf2575808be7294b9957050aed57fa34326ef8965bbb314e03944693216502d0eb990253dfc94f4
DIST system.appcontext.4.3.0.nupkg 147030 BLAKE2B fafd6d050e77a265cf41c6d00a3ab3d8db47f2258e10a6cb556031ab183a01a508a986bb495b68c5e8610c05b92b2f3c7b0718f68f508111fd262291684f84c3 SHA512 0d6ea63006304708feae2cc0590d2cdd99327b682210822bb2803ac842fdf4d8d57170d7947c006eec4b5687c942768478a7ec109745472f3946d230732483e8
DIST system.buffers.4.3.0.nupkg 35171 BLAKE2B 3b274a048ce14845ca957019b3670db00338972f6e11279e47f59ca6b4326aaecab1d11317694ed98e8a27f3de7ef6f90de94d4711ab224f805388d468728392 SHA512 3dcbf66f6edf7e9bb4f698cddcf81b9d059811d84e05c7ac618b2640efed642f089b0ef84c927c5f58feffe43bb96a6bcf4fec422529b82998b18d70e4648cbe
DIST system.buffers.4.5.1.nupkg 93737 BLAKE2B e846885f9ace79f30bf7698a96ff3277a45fc2988a48cddba1862e23650ce55b06dcc6c1bcc29e08cf5380c9700dfcc15964f7263aeb11c737306d27963b34da SHA512 80da6158e55b9bcf7e0b5e6379b9cf45a632914f037b53c5bf5609576e3cd7821f7861956b73d74470d2d0c2e56dd235a5ef4ca6ffe7e192b820dc2d023aaff2
DIST system.codedom.5.0.0.nupkg 281008 BLAKE2B ba44d0ee1856cde7487caef684e007ba48be61d4e061b0d3e1a524127823bce1e54e3d4a539f66964edbc93efdf9f5be8a46cbff7ee0868dc64333a2aa72e248 SHA512 150a20dd314a4cf96ac538a48e67b529a8453d17164646bcce9dc04a46d923e12eebea9583746ad66d0f400705118383992ac9cf7ba31563b886180913527438
DIST system.collections.4.3.0.nupkg 810001 BLAKE2B 0079d5834bb3857c002cc686313646895b47be1079e10cf365ce9e67c05f14c2e70e782b122b07a7cd9d5090b57334d0cb2336503cf5059cdbafeb3ef3cc8220 SHA512 ca7b952d30da1487ca4e43aa522817b5ee26e7e10537062810112fc67a7512766c39d402f394bb0426d1108bbcf9bbb64e9ce1f5af736ef215a51a35e55f051b
DIST system.collections.concurrent.4.3.0.nupkg 502676 BLAKE2B 0d98ffad345254596133bad8a487bb91bd235f2a757573c3ab7999184fac6685b4ec33316bee9b4a4e588ba96aa745a681077cb2e2d2b0a7f5cc113aa75efc2c SHA512 35c1aa3e636216fe5dc2ebeb504293e69ad6355d26e22453af060af94d8279faa93bdcfe127aecb0b316c7e7d9185bcac72e994984efdb7f2d8515f1f55cf682
+DIST system.collections.immutable.1.5.0.nupkg 804405 BLAKE2B f11cab8fc6e1543d09bb65aec905d8a7b56318fc1f6e4ba723fc5ef393340fe3e29cb8f5d3e788d31b61a80661367371af90065432a63b3a954c39b68b8ecf16 SHA512 4f95c64257078443bbe50c77f061825033dd9389ffef2ad1993832e32733cc957c6a53c76b13d4e794c10b6505ae4438d9bbb7e2c64f7cad1d53e9d665438424
DIST system.collections.immutable.5.0.0.nupkg 623075 BLAKE2B 14724fcb8654455184f8f16f8ac56b7b3c995e632af36e91f307331620b4e9f515a13bc4625d898fbb4b57ff9f017b43cb91ab40b0cebcd7d5eefe32979afa4a SHA512 726f8db7d179714cf0efeb0fc02fcebe7b4755762902e391e77cf78671dd5d5f364c7cf4ce3545b51cc7f37327d12d1500ba19f4b934f0e8bb69a6a347c0bbfd
+DIST system.configuration.configurationmanager.4.4.0.nupkg 341985 BLAKE2B 94c73192226761051208f23f1d40c7a3afdc97026e565c7ef0889883196667c3337fffb8a41367d806eeb368c59ead06460447a0982f8b1a36a366a360554e1a SHA512 44b601dd83a6773f5d137ccc841146bf7185ef8ba91a31f49c5d06f6514544b34bb0210c2298ae42c306bf6a84d2a769d4976179534ef11211a5429da2488afa
DIST system.console.4.3.0.nupkg 102397 BLAKE2B c21bc97bbcda781257473768239f775a16fcc399e933df35a5f5c00f75c5088462ea01ecec2d711a803581d5499c8cb15518e790d6c9e74b15a36c3a1f237d19 SHA512 a08a684a583c9b3278ce32be1007dae495f9d87254666392f794ef1203079f333cd7d388c28944ffa36fb49f0c8bb21f42c70f6e1d7c1c03920df6d0d1130c82
DIST system.diagnostics.debug.4.3.0.nupkg 149774 BLAKE2B bdb6d5ee3b8ca4f28b241b098281b7d2957d0996f9345aa086a54b1a981822962e5cc319687849ee52445db47b439b6cd4e99a4c71595f6227f78160aa31724b SHA512 6c58fe1e3618e7f87684c1cea7efc7d3b19bd7df8d2535f9e27b62c52f441f11b67b21225d6bcd62f409e02c2a16231c4db19be33b8fab5b9b0a5c8660ddab24
DIST system.diagnostics.diagnosticsource.4.3.0.nupkg 120125 BLAKE2B 33f203d8ffc39e0c38599eee625053beae160a0aebe6fbfaaafdc85b570c7b82e3aae281092014e90d10fad7083f37afbb546ad5a0c74a94843ae9b1e9fe85f1 SHA512 8f54df5ff382b6650e2e10d1043863a24bf49ff0714e779e837cd7073e46fb2635bcfcdcf99d7c4a9d95f35ebffd86ab0ca068305f4b245072e08303b917b34d
@@ -125,6 +150,7 @@ DIST system.management.5.0.0.nupkg 265788 BLAKE2B 9080ac288d0b9591b0799f54b56bec
DIST system.memory.4.5.1.nupkg 195808 BLAKE2B 15be57951bb2031a33315090878122d12add7d3eaabf2f3e7965dbd9d859df6030e36b87f70f1c7435e6404a908039c26d3baead8e4dfb064f5ac023c141f5dd SHA512 a289e72d03d90060f6d6ab4d306e04b5599b60e2279368d5eccfa0d74f01e8e1ce6faed939a5a703f2bc3f9a10eae2bdc312b30758845d20a140e8b6b1c28ea8
DIST system.memory.4.5.3.nupkg 154054 BLAKE2B 0f75d5365d96b42949e53ae9498affce97ba074d6f404d30bec043e5def8cc39af05ccedffc7e9b13af4200336a9737cf44c85aa2d58069a64b1dc80537a6eac SHA512 70fce15a52cc76aacbae05c8e89e2e398d1d32903f63f640a7dd4a3e5747f2c7a887d4bfd22f2a2e40274906cf91648dfd169734fb7c74eb9b4f72614084e1db
DIST system.memory.4.5.4.nupkg 205467 BLAKE2B c5b66e68917fc14d5b94aef9aef53087756c59473a2580448f20233e559b3ac9d691b2c063d129083593a1b610252acb01016ef078ed21b390615bf5a6e04dc0 SHA512 8ece5491eb0fe332bc190f40cf76b3beee0c5f996325034861be221fdb0ff02fd59e4f7020b3c4a1f29a457f76ff76c4c95d46d38555e4f48c7a3bf172d87966
+DIST system.memory.4.5.5.nupkg 208978 BLAKE2B 487049b1ffd622868d4aa84cc14f13127641c56937826c11d83851b7032ea248ccf8555f48aca93acc4891ac99ce2178ede50bf13ccbd70ba6004226fb583275 SHA512 e8c8e536c97b94ac3443c940b30dad43cf6e97dc7a8c3d989371048fe74e168606384f5e0143bdc0d86f7783bf9fdee8417964cb3a8a5d752713e90b125172dc
DIST system.net.http.4.3.0.nupkg 1371903 BLAKE2B c0b56398662d8f149eba439ce16ec254bd5a64cee0faf251af07d89ec130953d8865d537b52b432ee19df9ed7405318119d301743bf84f98179c1cd7e6615731 SHA512 e8105ce8151aee95852fb29423f73cc1bd7c2286d36474ed7102a4b31248e45f434434a176d3af0442738398c96c5753965ee0444fb9c97525abbd9c88b13e41
DIST system.net.nameresolution.4.3.0.nupkg 177639 BLAKE2B c3d666f33577682ba43292ccca908cbd81971ab53eaeb904438a378997903e80d5d3789b3c76db6c50f0411fb17b227db973bc09eadfc0f98ebed88ac0209057 SHA512 40d39e131fe7a392e58e9f58b516b5db88383de91c05b771f5e509acf46cc874271e90623d327ab039003ab8f2714144694390261278de324e1aee228a828ab4
DIST system.net.primitives.4.3.0.nupkg 769347 BLAKE2B 070d9aaecf9c4ec485850954c425d6d6af23fdb8a50fe40c305657654fcaf58d366f29f62bca6ae32c8604dfd7f5217f822ebe03c68446d4fbc4ee7e44b07852 SHA512 9f7fdece330a81f3312ea7c804927852413bee2c929f3066b736993803df47cc0692fbca236c222bf19dc8f59b42f54f2a4c00da9a4d624e458da5874d127ce6
@@ -165,6 +191,7 @@ DIST system.security.cryptography.csp.4.3.0.nupkg 117553 BLAKE2B 93f32c719f999c5
DIST system.security.cryptography.encoding.4.3.0.nupkg 144382 BLAKE2B 9f8e6a4ce5fe2a4de2be0c827e914a02a257011b508e97e289b9de4657b598fdbba4e64dcf23a29af6e4910af41e62f3b3f0d6a2156ab691e2e00ad76c6499ef SHA512 5c26add23e63542f37506f5fa1f72e8980f03743d529cd8e583d1054b8d8a579fb773fa035a00d9073db84db6be4f47cac340d1ebc6d23dd761dbdbd600075e0
DIST system.security.cryptography.openssl.4.3.0.nupkg 71949 BLAKE2B ec1654bbd09e1244d260d1ddbefcbdeed207816a2719f3bb0f055a7a140d466f186667b1f202e0d1a3eda97f247d2c1776ad6f38f50de58960da5f0dfd2a2d08 SHA512 64530a19489730f873f8c68e6b245135ea260c02d68591880261768358d0145795132ba5ee877741822ff05dcd0c61edca27696ef99e8f9302a21cadf3b1329f
DIST system.security.cryptography.primitives.4.3.0.nupkg 81382 BLAKE2B 55bcbe3143e85d24f47c72ec5e1f0ad38a1f931932b3a8a03dc00028668fc085d070dfcded55654e09328a745b208b9f15928aaff1087d8906bad41d7cfb23e0 SHA512 5ad8273f998ebb9cca2f7bd03143d3f6d57b5d560657b26d6f4e78d038010fb30c379a23a27c08730f15c9b66f4ba565a06984ec246dfc79acf1a741b0dd4347
+DIST system.security.cryptography.protecteddata.4.4.0.nupkg 185701 BLAKE2B 8133633dc020cba0b552b7e1e498cda3b4f8578132e83a9fe38bb6f79a5b5ceaa76089440de2f6c7a948e160e9aebed1fca467cd02a9ca09b5e5cdcbf5c8f1c7 SHA512 5b011ec6f05dfb5ef27d8edf712f9f04697e1c00c47c226e29e0c9a814fb0fa8fabcac18bdf2f21aeab6cbf326aca3910ba99b630b61ee48e29ced663e14cbde
DIST system.security.cryptography.x509certificates.4.3.0.nupkg 706727 BLAKE2B 67c777394c982267c08dba232dd75aba6e924784d14388f7f8e347293c8f3a67ef9490a078b3f56f649a1ab352a4c924630f384850e3d5f1510dceae45fd0af1 SHA512 318d86ab5528e2b444ec3e4b9824c1be82bb93db513eab34b238e486f886c4d74310ed82c2110401fe5cd790e4d97f4a023a0b2d5c2e29952d3fd02e42734d00
DIST system.security.principal.4.3.0.nupkg 94590 BLAKE2B c6fc5d6944a44b3ab125af5d59493aada6e8c73857311b8118adf197b9db3bf77fc8de9f320dcc0d55c6e529106b36307e14baab75766296bf804289de800a26 SHA512 db8a1ed0d189637d9ef83147550ce5da890cf6ec189a7d006ba9de86ab55679e7f025e18bdaed2dc137ddf82a7e6a0131fb4d54d4264831862b1d7c5ee62837e
DIST system.security.principal.windows.4.3.0.nupkg 220931 BLAKE2B dcf84627ab57c5e72e0f1828b48c6e9bfa2ea2ead7b9c02bff03b9819f4057cb9d4a8821cfd0a98a381f2d7a2471df04041567de970f9d60557923e6e09317aa SHA512 66c1d5a9d649b964e1653fa2cd41d8f80515b7cd727fcd7f0890552070da1099ecd1032560f259a108e0d1d6a6da23fa07bc5c922f426a91f33b667f7c004019
@@ -173,7 +200,9 @@ DIST system.text.encoding.4.3.0.nupkg 327281 BLAKE2B e153609b257919932499a013337
DIST system.text.encoding.codepages.4.5.1.nupkg 4234891 BLAKE2B d06be022d76a5793999248baa82db37adc262da2e74531d75f5f5e1a6c29b0ca702694b19c3254ab2e955f5b70959ff22f35d43593a2072af6ba5b7952155dc2 SHA512 12edddc9452a0c592eb24aeb2b9e152d60b8d44540349368e6fce3a239c6029847f8557adcd260df3b39c744ef45a6034d9db2fbce9e20e2b8dc78363578b0ef
DIST system.text.encoding.extensions.4.3.0.nupkg 244195 BLAKE2B 9dc2fbf672e07c5302bbb8435e8c09bc91febb96f22b85b57b09b2046fca224c786f8710b634559de2722f3dbece7b30e6a3c6a78e98e77f955d550e440beb60 SHA512 e648c5dc781e35cf00c5cc8e7e42e815b963cf8fb788e8a817f9b53e318b2b42e2f7a556e9c3c64bf2f6a2fd4615f26ab4f0d4eb713a0151e71e0af3fe9c3eed
DIST system.text.encodings.web.6.0.0.nupkg 235525 BLAKE2B 1a9c6233292c8d9186c92fea63b918a3a97ec23588f06a3170d0f085359acf77eea7b10867ee81602837818f25968f7cd91e193f83a081fbe6ae4467ec92d32f SHA512 0f26afeeaa709ea1f05ef87058408dd9df640c869d7398b2c9c270268ddf21a9208cd7d2bfa1f7fbd8a5ceab735dd22d470a3689627c9c4fadc0ea5fe76237fa
+DIST system.text.encodings.web.8.0.0.nupkg 374440 BLAKE2B 97211e710df3dcd17932f168e254806d7c8692ac01d667a2e89a5ddc956b24fba8467fbc2d451057757b5c502442d2c91bcaf0f867da7e95456b2aa18136b354 SHA512 ba0822c38c3b658aba9495642d269e882b827e3be4ad2dc1426d8a97d3cbc5a2277c5f80847d0cb9381078af01523328c4992caa058146d5d8ee6b8a08609c32
DIST system.text.json.6.0.5.nupkg 1267769 BLAKE2B 21b51f64953a1788610460a2d367b22e23e6be5a6644deab0e3b7b1643b6fe766de87b03d94a17eee6d63821f6f6039ef09a57c7533f8369be3ab539082ecda0 SHA512 365a854b3a6187af14888fca10573f84c73c9066fec84a25cae233949dcf51ada2efe716ea3d315f8f7cb438ff153ae03ef8ee69e8f24ec3f50971133014e3c0
+DIST system.text.json.8.0.3.nupkg 1980649 BLAKE2B 33ae24de89869995df21d89f156222d55cf7b369644d54dddbb62bca75674c6ace6dd1af97e7e39722d9c1e4c2800bd71a91f14b42c6b64a300a260ce2e2ec1f SHA512 b5f39d6e82b35046ea48fae5db39695e3bf65a7ad02bf68bfe44487a8f69b6400d1862cbe48a1967ec83601a85f1aff1e6d1f2f65cbabf9139f24fcbd8e0a0a8
DIST system.text.regularexpressions.4.3.0.nupkg 530523 BLAKE2B fc77aa0a92658cfac1b3fc00b87fabbec1be5c79776b0b2680775615b273a5a49ff8d5000f97415b85fc0283ff95569ba9a5a72917828455646053033088b49b SHA512 80353c148df30d9a2c03ee10a624d91b64d7ccc3218cb966344cfa70657f0b59c867fed2ab94057f64ab281ad9318353f25c23375c00e1376b6589ae0a70aad3
DIST system.threading.4.3.0.nupkg 708088 BLAKE2B 004d01762fad35a4607522d974a0cdc3d0049c82fe704f2f86fb98ee81059ebb56d13c290fcd273d1067a1a7c7f17bf3259d4d7e802c1d09a95e3c5fa29ef3f3 SHA512 97a2751bdce69faaf9c54f834a9fd5c60c7a786faa52f420769828dbc9b5804c1f3721ba1ea945ea1d844835d909810f9e782c9a44d0faaecccb230c4cd95a88
DIST system.threading.tasks.4.3.0.nupkg 840017 BLAKE2B 1cf4a8cc833da0a38304757db3808df5c217518c817d5807bf6f35393725a31223129fd1c4c964a36a60c65b686d24fc25d1777fa12ee622bddbb0f7c1772bec SHA512 7d488ff82cb20a3b3cef6380f2dae5ea9f7baa66bf75ad711aade1e3301b25993ccf2694e33c847ea5b9bdb90ff34c46fcd8a6ba7d6f95605ba0c124ed7c5d13
@@ -184,16 +213,29 @@ DIST system.threading.timer.4.3.0.nupkg 77054 BLAKE2B be1665b86776f2f7e780de889e
DIST system.xml.readerwriter.4.3.0.nupkg 1388897 BLAKE2B ae51b8fe4492dec1e4e3584d05b0f477fd4e75e79dddb46d8077ae5311245d6fc6213d0655025f25db56f1370cb0e88bd60a83dc937bb53db1db0262390281f2 SHA512 991101497fbd39e43fc306ca280a465318868afa8db1f34bb87c266fe61f0c81a0ec34a797b236ee823bd60d1149b7592def96fe044abb511858efffe890c2e6
DIST system.xml.xdocument.4.3.0.nupkg 591350 BLAKE2B 86f910cef36c056f4a9ea9dc26eea6e01070467d27ac80fb8a0af5e1a572ad5d2169e4f1297cd362fddc9e0309458dbd413fca85ef8e56f97781c218e594604a SHA512 c2d9236a696daf23a29b530b9aa510fb813041685a1bb9a95845a51e61d870a0615e988b150f5be0d0896ef94b123e97f96c8a43ee815cf5b9897593986b1113
DIST test262harness.0.0.22.nupkg 43594 BLAKE2B f658cb27db0c2cd7ebd92bb97a1712f5aeae2df2d79c221f2529a0f4a31d4540043496bbc837d5ce0ae58ab3f48239cb2452920c1765acff3c35af1eb3933c37 SHA512 cab584d04e3a18ad5d4475ddd492cda5c230f2f9c5a5f64884bbb11a3dbf6d0e0116f5d1a4cf0f63f32b3eea36a7a89cb01bb171eeacd88b845c7335b69cd87d
+DIST test262harness.1.0.0.nupkg 66453 BLAKE2B 4370a447bc63dba86b4bf7c79f20b37884032b0d1d452f3828527476a9e5990aa92bfd5975d33863e4cbf8650c1a936464dfb5dbd27d16cacf9664258f4b1fee SHA512 7ede1beceabf2783bf4ac98175db244fa51fbb05f32ae216b2b14bfeb688f1653610d083ea235774eb7d184b6a774b3dfabfffd9d76d2b890c8bef31a46dd9c7
DIST xunit.2.5.0.nupkg 29632 BLAKE2B 4b7c3fbde40ae346aeed839a398fe58954dfd026d6542933736445a21ddd741af9d6024fe92f799a6e9718dbdc983f1ea470d3888913916150bcfc6a19ee4c51 SHA512 84cd3219a8898930efc7f9d776047d395fc025061ecc9b72717eb1a08c142e507dd64c754e50452f364e578444b2a0a8c5cf3a6c45a7fd58a4a5abd29f29ff07
+DIST xunit.2.7.0.nupkg 29108 BLAKE2B 4948774bc4767c0460377401663c04315f7c21b1f0fa4f8ea6868ed9df9c9f8c5e9dcb696c9bbe9041d45365ef6bc68a879345cfc20de7f061c0bb35c7ef287a SHA512 d8132256336293124cd4e716c98efdad23b1ba1f52468cb2c6708d800cb558998ad347c051d1a6ecdfd66d8e1fb72c61580384ba3e493b93b1f57f5fde9de13f
DIST xunit.abstractions.2.0.3.nupkg 75155 BLAKE2B 8cfecf557dbe20e0e14b1d8b413acd7516b6538cb543a12708910311fa76b7dcd9d060c7be70a05b0af5ef3b8bd5f819104025afe9796e240c28fcae1c7460c1 SHA512 3ca26b8b97f4a8440f16f818e82651f571bc2513a5592742fd960b9240d0b880fef84827fb25a307e61fe7b019f14e864653fbcf7dee0d0e3faf90593deaf624
+DIST xunit.analyzers.1.11.0.nupkg 839348 BLAKE2B 487c4abd885047221899ff03046cd71810fce46b7d1a2189d2aeebb7ca246fb662ad41defed87b9e1a9d546dd5c3ebba697213f4dce61e09a6c69d8470b5bde0 SHA512 74472b0b1ac0ed34d25325e4fe64a7d0c313f779274a47e1f41f748aeb4215eb8de39f2c4bbbced99e3759d46fe4549b16b303575d6a8a7740859376e9610a50
DIST xunit.analyzers.1.2.0.nupkg 153837 BLAKE2B 0d1013d81f721b59b7ffc42962d2383f35118ecd150021acbc5a8dd417f1ebf96c68f1746287339f138f8b1583e307b88aa74ec3a9c3dc3b59f09cf16029c3e7 SHA512 c2490d8478e801b89ad1767ce5ca8f12c00a99148859dec325ac03824dd1898667f5d436bd43cea94756e3ced01c6bda7c6b840473f35f07ad1d1035caaeb84b
DIST xunit.assert.2.5.0.nupkg 109990 BLAKE2B a883c328bbd537d8c15dcc8f4b486317d82e3a9c0db02e9cdb70b6de47c49962a413ecd2d5d76f8921f48ce3243c3da7496d1fde197f370a20a134e4a05bc3ed SHA512 e4445d673fadf1dbbf6a168c5e7f62591b310df21859d8d85185f3e91cbe08f48b16454a448c72c10224685f58cba8a5d66a07a1d05f97116ff04db363336e40
+DIST xunit.assert.2.7.0.nupkg 227952 BLAKE2B f9334377dbaa9ea191b04345db0ca00609200de52a8bc811c28965305f805ddce0d170830712062b723f748999fbc17fde51290f141da4a5112dee0ef23d1383 SHA512 2dc24034aceccb62efc5f5771784295c24c613334ab749f1e451bd306d00e2e29422d019a89cb0e4557feaf6584d14a1ac2e918ffc316cb9a75bbed6a3daea06
DIST xunit.core.2.5.0.nupkg 31557 BLAKE2B 2f819b3e956115273eaad6ad1d0b103baf847253451b8230e5ba71f992fc79fffaa6ff78dff3cc341fb93735ecc006874914435dac3a43175a73d508e85e3e73 SHA512 fad634e80cfafd7067512e048905c955063cc8e5f9ba7c618ead0c5bc922fc32c601fdb5a584ec20ab8d2187b5b3dc6c328ef163f146d9b5cacce81c3145de93
+DIST xunit.core.2.7.0.nupkg 31001 BLAKE2B 0ae2525bd874f32bc19c701e79c490b67821d3d380ac3eb5c03eb3086cf83a83e037eeb3a723433dc06728cafe3e1130557ee3fa2926b53b98e0335565194429 SHA512 50f66f392c3be25f798806ff698a3b9a1f2b1640b3884a0c3fa39ddf31aa9a5949ba1585416af9c8a718b852c9b3bd9282419bf213701dd235c261f494de0335
DIST xunit.extensibility.core.2.5.0.nupkg 283074 BLAKE2B 6274c1f3e18cc092cbb7fb1d687748dd7efdf128d005e5342a0dbb7223a3d90e2bd04b1c2fcb9d36777e76d6decf3ea877ef5cd88b7cbc7a2ce40b4e7c8ef9bd SHA512 8d14f28a2fe8520d073bbed4384e494aa2a1833c77e1baf75715ac1b2e82cd736b66fb6f4572858fcacbe3c7cb2e773843e9957331f20d86a3f05d1ead357500
+DIST xunit.extensibility.core.2.7.0.nupkg 285689 BLAKE2B c4c46b0d0084109ad120577466b776357a22e01859eae45b71576e0169bb3da5c629c73fb8e11efd64fe1f9b9bc4e7746f6d346e594645e850b2813ea11928b3 SHA512 c6ab3a396e950d86e2c649e3d9e0feaf80533a346674bcc6961676ca599801de0ab2f79ac510706bc6a6cf16c744ac0ec52c9c08cf2b8cc95f8c12833bf85d72
DIST xunit.extensibility.execution.2.5.0.nupkg 360329 BLAKE2B 9338daedc7936ee441402a3c01e4f6dd7903074a560a0d91498d7be831a4f578386bfaab8dbe18616897f52e0114d90db732c8f2997242c7fecaa87aca35ea8f SHA512 54cb5d69a2d0a0952c89613720ccc0bffdc7163834a0f46d7fa574a5f2cbb4774e44eb7dce4c2c6f659470bee48a8a679746b38e983f14cabcd229a7ec8a31e0
+DIST xunit.extensibility.execution.2.7.0.nupkg 365887 BLAKE2B b7d517bddf45fda83067f6c4c274730e83d9ead7ff4a082370abf44f2e46ad4b23941a1f892f03a2222bb9780e7d63609326bb533603db16b34399c9f17c3c64 SHA512 d30afc1769a126cfeea130790406906173a36ddcafadf9e473e6388dd760b321f22ddd311251fb332a63ff31897f319a6519da9bd1bf7016939a3b2fe5912e4f
DIST xunit.runner.visualstudio.2.5.0.nupkg 570004 BLAKE2B 6da331945900877f1bf0d622d0da3a399c4fbf3c000b3231da76d002279f18f1f3b470b3182e9ab4da73c64b658a990d6ea7e5ec3d267856cf5f4ce7af37e523 SHA512 f7d40d5eed1adc68f8514fd975467b1a1dbe7744f9bc0b0d65cfa17451283c229215c7d8975cc809cdd94ffbf2b9ed9d6d713defc5e7cfd3667a1f2470d3fa9c
+DIST xunit.runner.visualstudio.2.5.7.nupkg 578349 BLAKE2B 741a8d4cdb121ab95c8dbd6e55c21cf66d2946085c9bce5cdfd8782c8dbe8c6eedeefd6fa75c30762a1d4a4764ef84527bd74e103cb1792b1c0c0d912473514e SHA512 a95f2024cec05039702f85d830046a15f74ac0da52ee9150e2c207d4207847ebe8e3dec0e1a3d1e6ad0355b3e7013cfb04bea13fa165cfb4baf28c9265937fa7
DIST yamldotnet.12.0.1.nupkg 730415 BLAKE2B aacb8b75b5d9bac3e83de1ace0ece4639b19d68a5e6a885a144bec9e5f39668de1506e2037e05818cf70f9fbbfa9d3e770af95f8d22cb88440f93bbb1350fe83 SHA512 faa1d304c743631dbdec325535ddd74ba1159b9c6eccf98fcdd6b1113085b9b77ba73ac6eaa82d46caf9512c869bdb3e2788dff4615776d9e5169618d3dbcdfb
+DIST yamldotnet.15.1.1.nupkg 863188 BLAKE2B f5c0b7269fdbb58d3494cbfe328766ad01476e096f5a867d560a9952bc54c2cd615f00c50565fe3282bd5cfc2a04299c485068510f18e5b26ca0f40587067b7b SHA512 d47bb98b3dd556a656f5d9ff349e16a16431bf87ab54ab6b9098acf012fac003a2431544cedb2e158b5b250c1c2204e11929515ffc1b8d41860aec1ba0ea2caa
DIST yantrajs.core.1.2.179.nupkg 1636982 BLAKE2B 225f3796212e13c33c64e1d5dfd3b5fb203d9f1fc3135daac09dc36b91182788397b66d1073a9e19f55316e83e02d7a440db7c34e0cd178c882829aa04029df5 SHA512 9eeab63180bd4dad7f0e15db6b63889cbc52a6f24d1ef83e882fce4319a323cea4b8f7e71bcf2d6a65cc7a5074676ce0942e91c48903c741e0f9e7d76f455e81
+DIST yantrajs.core.1.2.206.nupkg 1664658 BLAKE2B 4528181725eabc4b07a5b5d44169080c85b73ac8db8c26bbb3f93f8406b8c32bcc343d4524e5711503b82163f1613486358c5785fa5f4c62cb13d907cd44f85f SHA512 0c0027b9b27fef0dd9c8056f3d0d0d4abbd3e6f4359b29272ed5374a7b59d0a238302b93932771cf0259c192ee529d6057aa123e569643eeff9926cce37cee98
DIST yantrajs.expressioncompiler.1.2.179.nupkg 208237 BLAKE2B 87eae924d2c671c1f194b6057536d4fd6fa247c8e9cfc9d70c4cb2ed8b252f472998e0396a913648c41a5a48ac860c9071036149cbb8158988f35f66bc034bf6 SHA512 c32aad55ee58b253db2e0e845d3cdb3765349e5fa9da55e82d2e86489ccf0bcaf92b5271c42a003c52bec8abf15cd35466ea5254198b51ade7a7dedfbe4e3661
+DIST yantrajs.expressioncompiler.1.2.206.nupkg 208208 BLAKE2B 22e2d341994f10c0c6f042c1b77c0b9cf25cfc0c556b946809ecc11fdc4f8814e01328c18b83cc14b740ab5ae5a3ba2bae0ae2d95875f10b707bc3a6685cd4ea SHA512 d97d00000084f0cf2f95927ce1d47711a37fb316e06e32d12d4a93cbd7edbe19a49816e00f0ba63a607d1fef7571873cccef049eb468ec2ce57ec50dd6cf37e9
DIST zio.0.15.0.nupkg 402398 BLAKE2B 80f4fdf6a96a526f32f967b8505c62840819177f16ee0aa51e8a05c74f36f630b59c1ca9b4a8b1a5b3075a3d1393928bf1ebe4f74901586d237928b64373d96b SHA512 6c5badfdb48510667bb4eeb53fb5e17afc19946f80de1ceb30bf65abc0e11b7682ae39e69e65a9d3e235a3e2420814169bc4f4767cfee3c57b4859ee1ec78502
+DIST zio.0.17.0.nupkg 335432 BLAKE2B 286e7a38be2ca5803db0af388eb445ed2ab54d4c4f37cce7caac26e7b3b09cad61148b0ab5efa512209892e402ae32f126094769e92ee7ed97838400826aa0b6 SHA512 00affccbc9039255bb5af795019d25d0c0a18145ffae486d52f517006613f377887ddffe98735baf7734ce4197a2256a6571f8c26a2ee43d780402983ed30b8e
DIST zstring.2.4.4.nupkg 136907 BLAKE2B 651ce26395f16eaeff89faa54156e19dc6110821f1e303b8850e8c66fd7b1cd88843959f82f4a12c3b50a39f2b8b6aa264dc5036c74f82f8411a02ed5cca603c SHA512 6ce8bcdab38bc33aee80f3924fc8b34e83f761b835802d9aeb53ddf23f6299115c9f8c7e28212e40b16439bbb975485c97f84005f44708f00b55a3e0afe83418
+DIST zstring.2.5.1.nupkg 308844 BLAKE2B 9f7c504edffcd29cbe8b0e9146d2f63d6c1974a96de7fe4b929011bde99b1d02cb97c4c55a9a84fe7c560146994b792eb3eed5883cb046928522c1cc05664707 SHA512 3e2a6a5ef52291936053ee5ecb4ed009ce6783b44f2ee0eb5ba13a15d404c112658576242a77503f58ae95b95903fa5e396731f3c1463163fe446889376538c8
diff --git a/dev-lang/jint/jint-3.0.0_beta2051.ebuild b/dev-lang/jint/jint-3.0.0_beta2051.ebuild
index 1fabcbaa39f5..d33b73141326 100644
--- a/dev-lang/jint/jint-3.0.0_beta2051.ebuild
+++ b/dev-lang/jint/jint-3.0.0_beta2051.ebuild
@@ -228,7 +228,6 @@ SRC_URI+=" ${NUGET_URIS} "
LICENSE="BSD-2"
SLOT="0"
-RESTRICT="test" # Tests fail.
CHECKREQS_DISK_BUILD="2G"
DOTNET_PKG_RESTORE_EXTRA_ARGS=(
@@ -238,6 +237,11 @@ DOTNET_PKG_RESTORE_EXTRA_ARGS=(
DOTNET_PKG_BUILD_EXTRA_ARGS=( "${DOTNET_PKG_RESTORE_EXTRA_ARGS[@]}" )
DOTNET_PKG_TEST_EXTRA_ARGS=( "${DOTNET_PKG_RESTORE_EXTRA_ARGS[@]}" )
DOTNET_PKG_PROJECTS=( Jint.Repl/Jint.Repl.csproj )
+DOTNET_PKG_BAD_PROJECTS=(
+ Jint.Benchmark/Jint.Benchmark.csproj
+ Jint.Tests.Test262/Jint.Tests.Test262.csproj
+ Jint.Tests/Jint.Tests.csproj
+)
pkg_setup() {
check-reqs_pkg_setup
diff --git a/dev-lang/jint/jint-3.1.2.ebuild b/dev-lang/jint/jint-3.1.2.ebuild
new file mode 100644
index 000000000000..50ce529b01fc
--- /dev/null
+++ b/dev-lang/jint/jint-3.1.2.ebuild
@@ -0,0 +1,172 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DOTNET_PKG_COMPAT=8.0
+NUGETS="
+benchmarkdotnet.annotations@0.13.12
+benchmarkdotnet@0.13.12
+commandlineparser@2.9.1
+esprima@3.0.5
+fluentassertions@6.12.0
+flurl.http.signed@3.2.4
+flurl.signed@3.0.6
+gee.external.capstone@2.3.0
+githubactionstestlogger@2.3.3
+iced@1.17.0
+jurassic@3.2.7
+meziantou.analyzer@2.0.141
+microsoft.bcl.asyncinterfaces@1.1.0
+microsoft.bcl.timeprovider@8.0.0
+microsoft.build.tasks.git@8.0.0
+microsoft.codeanalysis.analyzers@3.3.3
+microsoft.codeanalysis.common@4.1.0
+microsoft.codeanalysis.csharp@4.1.0
+microsoft.codecoverage@17.8.0
+microsoft.diagnostics.netcore.client@0.2.251802
+microsoft.diagnostics.runtime@2.2.332302
+microsoft.diagnostics.tracing.traceevent@3.0.2
+microsoft.dotnet.platformabstractions@3.1.6
+microsoft.extensions.configuration.abstractions@2.1.1
+microsoft.extensions.configuration.binder@2.1.1
+microsoft.extensions.configuration@2.1.1
+microsoft.extensions.dependencyinjection.abstractions@2.1.1
+microsoft.extensions.dependencyinjection.abstractions@7.0.0
+microsoft.extensions.dependencyinjection@7.0.0
+microsoft.extensions.logging.abstractions@2.1.1
+microsoft.extensions.logging@2.1.1
+microsoft.extensions.options@2.1.1
+microsoft.extensions.primitives@2.1.1
+microsoft.extensions.timeprovider.testing@8.0.0
+microsoft.net.test.sdk@17.8.0
+microsoft.netcore.platforms@1.1.0
+microsoft.netcore.platforms@1.1.1
+microsoft.netcore.platforms@2.1.2
+microsoft.netcore.platforms@5.0.0
+microsoft.netcore.targets@1.1.0
+microsoft.netcore.targets@1.1.3
+microsoft.netframework.referenceassemblies.net462@1.0.3
+microsoft.netframework.referenceassemblies@1.0.3
+microsoft.sourcelink.common@8.0.0
+microsoft.sourcelink.github@8.0.0
+microsoft.testplatform.objectmodel@17.7.1
+microsoft.testplatform.objectmodel@17.8.0
+microsoft.testplatform.testhost@17.8.0
+microsoft.win32.registry@5.0.0
+mongodb.bson.signed@2.19.0
+netstandard.library@2.0.3
+newtonsoft.json@12.0.2
+newtonsoft.json@13.0.1
+nil.js@2.5.1677
+nodatime@3.1.9
+nuget.frameworks@6.5.0
+nunit3testadapter@4.5.0
+nunit@4.0.1
+perfolizer@0.2.1
+polysharp@1.14.1
+runtime.any.system.io@4.3.0
+runtime.any.system.reflection.primitives@4.3.0
+runtime.any.system.reflection@4.3.0
+runtime.any.system.runtime@4.3.0
+runtime.any.system.text.encoding@4.3.0
+runtime.any.system.threading.tasks@4.3.0
+runtime.native.system@4.3.0
+runtime.unix.system.private.uri@4.3.0
+sharpziplib@1.4.2
+system.buffers@4.5.1
+system.codedom@5.0.0
+system.collections.immutable@1.5.0
+system.collections.immutable@5.0.0
+system.configuration.configurationmanager@4.4.0
+system.io@4.3.0
+system.management@5.0.0
+system.memory@4.5.1
+system.memory@4.5.3
+system.memory@4.5.4
+system.memory@4.5.5
+system.numerics.vectors@4.4.0
+system.numerics.vectors@4.5.0
+system.private.uri@4.3.0
+system.reflection.emit.ilgeneration@4.3.0
+system.reflection.emit.lightweight@4.3.0
+system.reflection.emit.lightweight@4.7.0
+system.reflection.emit@4.7.0
+system.reflection.metadata@1.6.0
+system.reflection.metadata@5.0.0
+system.reflection.primitives@4.3.0
+system.reflection@4.3.0
+system.runtime.compilerservices.unsafe@4.5.2
+system.runtime.compilerservices.unsafe@4.5.3
+system.runtime.compilerservices.unsafe@4.7.1
+system.runtime.compilerservices.unsafe@5.0.0
+system.runtime.compilerservices.unsafe@6.0.0
+system.runtime@4.3.0
+system.runtime@4.3.1
+system.security.accesscontrol@5.0.0
+system.security.cryptography.protecteddata@4.4.0
+system.security.principal.windows@5.0.0
+system.text.encoding.codepages@4.5.1
+system.text.encoding@4.3.0
+system.text.encodings.web@6.0.0
+system.text.encodings.web@8.0.0
+system.text.json@6.0.5
+system.text.json@8.0.3
+system.threading.tasks.extensions@4.5.4
+system.threading.tasks@4.3.0
+test262harness@1.0.0
+xunit.abstractions@2.0.3
+xunit.analyzers@1.11.0
+xunit.assert@2.7.0
+xunit.core@2.7.0
+xunit.extensibility.core@2.7.0
+xunit.extensibility.execution@2.7.0
+xunit.runner.visualstudio@2.5.7
+xunit@2.7.0
+yamldotnet@15.1.1
+yantrajs.core@1.2.206
+yantrajs.expressioncompiler@1.2.206
+zio@0.17.0
+zstring@2.5.1
+"
+
+inherit check-reqs dotnet-pkg
+
+DESCRIPTION="Javascript Interpreter for .NET"
+HOMEPAGE="https://github.com/sebastienros/jint/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/sebastienros/${PN}.git"
+else
+ SRC_URI="https://github.com/sebastienros/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+
+ KEYWORDS="~amd64"
+fi
+
+SRC_URI+=" ${NUGET_URIS} "
+
+LICENSE="Apache-2.0 BSD-2 BSD MIT"
+SLOT="0"
+
+CHECKREQS_DISK_BUILD="2G"
+DOTNET_PKG_PROJECTS=( Jint.Repl/Jint.Repl.csproj )
+DOTNET_PKG_BAD_PROJECTS=(
+ Jint.Benchmark/Jint.Benchmark.csproj
+ Jint.Tests.Test262/Jint.Tests.Test262.csproj
+ Jint.Tests/Jint.Tests.csproj
+)
+
+pkg_setup() {
+ check-reqs_pkg_setup
+ dotnet-pkg_pkg_setup
+}
+
+src_install() {
+ dotnet-pkg-base_install
+ dotnet-pkg-base_dolauncher "/usr/share/${P}/Jint.Repl" "${PN}"
+
+ einstalldocs
+}
diff --git a/dev-lang/jsonnet/jsonnet-0.20.0-r1.ebuild b/dev-lang/jsonnet/jsonnet-0.20.0-r1.ebuild
index cc1f61faa103..d3e555a11be7 100644
--- a/dev-lang/jsonnet/jsonnet-0.20.0-r1.ebuild
+++ b/dev-lang/jsonnet/jsonnet-0.20.0-r1.ebuild
@@ -16,7 +16,7 @@ SRC_URI="https://github.com/google/jsonnet/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ppc64 ~riscv x86"
IUSE="custom-optimization doc examples python test"
RDEPEND="
diff --git a/dev-lang/jwasm/files/makefile-dep-fix.patch b/dev-lang/jwasm/files/makefile-dep-fix.patch
new file mode 100644
index 000000000000..1b97a7c5aca4
--- /dev/null
+++ b/dev-lang/jwasm/files/makefile-dep-fix.patch
@@ -0,0 +1,22 @@
+Bug: https://bugs.gentoo.org/881519
+
+diff --git a/GccUnix.mak b/GccUnix.mak
+index 3f53d5b..8eb434e 100644
+--- a/GccUnix.mak
++++ b/GccUnix.mak
+@@ -31,13 +31,13 @@ include gccmod.inc
+
+ #.c.o:
+ # $(CC) -c $(inc_dirs) $(c_flags) -o $(OUTD)/$*.o $<
+-$(OUTD)/%.o: %.c
++$(OUTD)/%.o: %.c | $(OUTD)
+ $(CC) -c $(inc_dirs) $(c_flags) -o $(OUTD)/$*.o $<
+
+ all: $(OUTD) $(OUTD)/$(TARGET1)
+
+ $(OUTD):
+- mkdir $(OUTD)
++ mkdir -p $(OUTD)
+
+ $(OUTD)/$(TARGET1) : $(OUTD)/main.o $(proj_obj)
+ ifeq ($(DEBUG),0)
diff --git a/dev-lang/jwasm/jwasm-2.13.ebuild b/dev-lang/jwasm/jwasm-2.13.ebuild
index ecb666549892..0242aa2b604c 100644
--- a/dev-lang/jwasm/jwasm-2.13.ebuild
+++ b/dev-lang/jwasm/jwasm-2.13.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -19,7 +19,10 @@ BDEPEND=""
S="${WORKDIR}/JWasm-${PV}"
-PATCHES=("${FILESDIR}"/${PN}-2.11-types-test.patch)
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.11-types-test.patch
+ "${FILESDIR}/makefile-dep-fix.patch"
+)
src_prepare() {
default
diff --git a/dev-lang/kotlin-bin/Manifest b/dev-lang/kotlin-bin/Manifest
index 26b3955650c9..20a2ca137866 100644
--- a/dev-lang/kotlin-bin/Manifest
+++ b/dev-lang/kotlin-bin/Manifest
@@ -1 +1,2 @@
-DIST kotlin-compiler-1.9.23.zip 91045770 BLAKE2B f15bf111b0de8527312ae3ffced8fd80812a8ea949f4157d21085966ec7f9c19facf116cc70915d41aca2fb4b3c3d1d9d3cebe23c5312728f295204528c82f2d SHA512 6baea5f968b8cd21a89fd80302a26761b775d2631d5a434775eecf1c4bbc1e07b657f389da4c4d2cd10e3687908e0417d12b94ed822b029a7126ae1988dba445
+DIST kotlin-compiler-1.9.24.zip 91056044 BLAKE2B b872635e83b334cf4b8ee6f2aad5f4d1cf44594848c02a027fd3f7adcffb6d05232e66658ed8e6e234c2ea0996728338f6fdd46628ccfeddeeb5f3b330307340 SHA512 cc6f3cd141faed849f0c8b11b4473f30211d242001292eecc1a0927151034afd892840289457cef6fc8a201dacf157fdb5782cf0a96d27bfa2b3693fac118a84
+DIST kotlin-compiler-2.0.0.zip 83767523 BLAKE2B 4627ec2ccf0751baee141a980f14bace98a96b4f826b72f001dc2e27afe1fa60b3967e533e775f7dd81a5e682670cd38c02378884a2d543caca050aee519e765 SHA512 ca723146188a60a995089d4b06bb23c83bfb2dbaabbbad632921601babbccddf4e3f0519692018480b7a0a7a1d0ce3002dcb6f4a445dc2dfa2a2b8f4e39364c7
diff --git a/dev-lang/kotlin-bin/kotlin-bin-1.9.23.ebuild b/dev-lang/kotlin-bin/kotlin-bin-1.9.24.ebuild
index 7e3629cfadfc..7e3629cfadfc 100644
--- a/dev-lang/kotlin-bin/kotlin-bin-1.9.23.ebuild
+++ b/dev-lang/kotlin-bin/kotlin-bin-1.9.24.ebuild
diff --git a/dev-lang/kotlin-bin/kotlin-bin-2.0.0.ebuild b/dev-lang/kotlin-bin/kotlin-bin-2.0.0.ebuild
new file mode 100644
index 000000000000..7e3629cfadfc
--- /dev/null
+++ b/dev-lang/kotlin-bin/kotlin-bin-2.0.0.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit java-pkg-2 wrapper
+
+DESCRIPTION="Statically typed language that targets the JVM and JavaScript"
+HOMEPAGE="https://kotlinlang.org/
+ https://github.com/JetBrains/kotlin/"
+SRC_URI="https://github.com/JetBrains/kotlin/releases/download/v${PV}/kotlin-compiler-${PV}.zip"
+S="${WORKDIR}/kotlinc"
+
+LICENSE="Apache-2.0 BSD MIT NPL-1.1"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=virtual/jre-1.8:*
+"
+DEPEND="
+ >=virtual/jdk-1.8:*
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+src_prepare() {
+ default
+
+ rm bin/*.bat || die
+}
+
+src_compile() {
+ :
+}
+
+src_install() {
+ java-pkg_dojar lib/*
+
+ # Follow the Java eclass JAR installation path.
+ local app_home="/usr/share/${PN}"
+
+ exeinto "${app_home}/bin"
+ doexe bin/*
+
+ local -a exes=(
+ kapt
+ kotlin
+ kotlinc
+ kotlinc-js
+ kotlinc-jvm
+ kotlin-dce-js
+ )
+ local exe
+ for exe in "${exes[@]}" ; do
+ make_wrapper "${exe}" "${app_home}/bin/${exe}"
+ done
+}
diff --git a/dev-lang/lazarus/Manifest b/dev-lang/lazarus/Manifest
index 6814ab378a15..ff5cf5671243 100644
--- a/dev-lang/lazarus/Manifest
+++ b/dev-lang/lazarus/Manifest
@@ -2,3 +2,6 @@ DIST lazarus-2.0.12.tar.gz 69560778 BLAKE2B ff6c9414483b0d50dbbb30c8fbf626c81d9c
DIST lazarus-2.2.0-0.tar.gz 76777421 BLAKE2B 29a7ed3285e3fbb6f72fe932d72d71edfd6903a8a5eb24f9534a12a4d1ccf5e40c61ce3cc1cbd8eef6dd7700f6e29fb640e35510b23a1ca1b02f7df0a4a738cc SHA512 4ebd8b4b7c6dfea491a30b1253e604646109d208c237e59be2fd9f6be3fb1e29443dd4e482076d77100678d0e4085b998398fca0532aa6122b59db7157af0ce4
DIST lazarus-2.2.4-0.tar.gz 77272959 BLAKE2B 2d7b2872a7399eb1a3a7d9fb20fed209900603ae433db75ac2c4244edf5e5981314ed3d8e39143ff30764e7ccbf1286edace9c38505df1cd28b44250bdd07224 SHA512 1a2fbc8451f1954df1d0071c586662ebc3cd0e9a7db5d910e0af86a3095252a5796d4c7abcf3861ad723af26974ac416c5bf919cd77ad5f406295ad7cdf47eb1
DIST lazarus-2.2.4-makefile.patch.bz2 3650 BLAKE2B 4a86e0dee7759183e3311cfa9f250995dbf2bb39d1de4c0fbc0191767b5f16029285ab92c76466d261708a88ed600929e777798560161e9942a64e44f956ff89 SHA512 560ffd3d43b75a804dfdb756323cecc7f2039215ab176ca0149cfee11dfe31d7943ad4aa212e9194c2bd2acbd0835e635501ef157888daf3715be7f760b3d51b
+DIST lazarus-3.0-0.tar.gz 87513233 BLAKE2B 26e8492194541453230832591445b97827e65b61531078cb4bd1c9f549bcd0aa531fef036f701de885e96f9e56476b0dd1c9465e2388ea43080ba418acbd097e SHA512 85cb3548fab017f2fd97f5fb141d59a0d0ec1412a161f98fea726ad5d6ed32ee2eb6ef6573e058d4df7dfcc067256e842acf994b73c9a50ebfb064657db33881
+DIST lazarus-3.0-makefile.patch.xz 3968 BLAKE2B f61d535cab6b1b04be5805fe2a321bd644b3f47092d9d76ca624e33fbfce6bd89dba7bf00adebbbe5635b898567a8b62bfd0e44142f1dc3d8640b5276014888a SHA512 c91bee56a41f31ff8b5cfb4a7149cf0856e8c7b47fe502ba9828854ba4589ab19ddfecba182e5fc89cf8b7d71bda01d67a534ecab3f09437a0d7064c2b0f1fe8
+DIST lazarus-3.4-0.tar.gz 87535234 BLAKE2B f7da0b4edacf1e93b53bcdc4093e8c6ef3487985a5054db4368a56237ac8e39dbb088dea5e0146923554cf498ef969f86f6480235cc725f7c8d0f4e3fc9345de SHA512 ab4096345d72028e89da4a284479bbe5d4ed89a6bd0463f62b7d04a23c0491dc3f7934c75b4a4a916f81db8c0b252bf382e5ab41a16ef42efc1c08efcce68aef
diff --git a/dev-lang/lazarus/lazarus-3.0-r2.ebuild b/dev-lang/lazarus/lazarus-3.0-r2.ebuild
new file mode 100644
index 000000000000..464571a70783
--- /dev/null
+++ b/dev-lang/lazarus/lazarus-3.0-r2.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop
+
+# See https://wiki.freepascal.org/Lazarus_3.0_fixes_branch for notes and
+# changes in FPCVER. It *does* change between minor versions of lazarus.
+FPCVER="3.2.2"
+
+DESCRIPTION="feature rich visual programming environment emulating Delphi"
+HOMEPAGE="https://www.lazarus-ide.org/"
+SRC_URI="https://downloads.sourceforge.net/lazarus/${P}-0.tar.gz"
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-3.0-makefile.patch.xz"
+S="${WORKDIR}/${PN}"
+
+LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
+SLOT="0/3.0" # Note: Slotting Lazarus needs slotting fpc, see DEPEND.
+KEYWORDS="~amd64 ~x86"
+IUSE="+gui gtk2 gtk qt5 qt6 extras"
+REQUIRED_USE="gui? ( ^^ ( gtk2 gtk qt5 qt6 ) ) extras? ( gui )"
+
+# Pascal ignores CFLAGS and does its own stripping. Nothing else can be done about it.
+QA_FLAGS_IGNORED="
+/usr/share/lazarus/startlazarus \
+/usr/share/lazarus/lazarus \
+/usr/share/lazarus/tools/lazres \
+/usr/share/lazarus/tools/lrstolfm \
+/usr/share/lazarus/tools/updatepofiles \
+/usr/share/lazarus/tools/svn2revisioninc \
+/usr/share/lazarus/lazbuild \
+/usr/share/lazarus/components/chmhelp/lhelp/lhelp"
+
+QA_PRESTRIPPED=${QA_FLAGS_IGNORED}
+
+DEPEND="
+ >=dev-lang/fpc-${FPCVER}[source]
+ >=sys-devel/binutils-2.19.1-r1:=
+ gui? (
+ gtk2? ( x11-libs/gtk+:2 )
+ gtk? ( x11-libs/gtk+:3 )
+ qt5? ( dev-libs/libqt5pas:0/3.0 )
+ qt6? ( dev-libs/libqt6pas:0/3.0 )
+ )
+"
+BDEPEND="net-misc/rsync"
+RDEPEND="${DEPEND}"
+
+RESTRICT="strip" #269221
+
+PATCHES=(
+ "${WORKDIR}"/${PN}-3.0-makefile.patch
+)
+
+src_prepare() {
+ default
+ # Use default configuration (minus stripping) unless specifically requested otherwise
+ if ! test ${PPC_CONFIG_PATH+set} ; then
+ local FPCVER=$(fpc -iV)
+ export PPC_CONFIG_PATH="${WORKDIR}"
+ sed -e 's/^FPBIN=/#&/' /usr/lib/fpc/${FPCVER}/samplecfg |
+ sh -s /usr/lib/fpc/${FPCVER} "${PPC_CONFIG_PATH}" || die
+ fi
+}
+
+src_compile() {
+ # bug #732758
+ if ( use gui ) ; then
+ if ( use gtk2 ) ; then
+ export LCL_PLATFORM=gtk2
+ elif ( use gtk ) ; then
+ export LCL_PLATFORM=gtk3
+ elif ( use qt5 ) ; then
+ export LCL_PLATFORM=qt5
+ else
+ export LCL_PLATFORM=qt6
+ fi
+ else
+ export LCL_PLATFORM=nogui
+ fi
+ if ( use gui ) ; then
+ emake all $(usex extras "bigide lhelp" "") -j1 || die "make failed!"
+ else
+ emake lazbuild -j1 || die "make failed!"
+ fi
+}
+
+src_install() {
+ diropts -m0755
+ dodir /usr/share
+ # Using rsync to avoid unnecessary copies and cleaning...
+ # Note: *.o and *.ppu are needed
+ rsync -a \
+ --exclude="CVS" --exclude=".cvsignore" \
+ --exclude="*.ppw" --exclude="*.ppl" \
+ --exclude="*.ow" --exclude="*.a"\
+ --exclude="*.rst" --exclude=".#*" \
+ --exclude="*.~*" --exclude="*.bak" \
+ --exclude="*.orig" --exclude="*.rej" \
+ --exclude=".xvpics" --exclude="*.compiled" \
+ --exclude="killme*" --exclude=".gdb_hist*" \
+ --exclude="debian" --exclude="COPYING*" \
+ --exclude="*.app" \
+ "${S}" "${ED}"/usr/share \
+ || die "Unable to copy files!"
+
+ if ( use gui ) ; then
+ dosym ../share/lazarus/startlazarus /usr/bin/startlazarus
+ dosym ../share/lazarus/startlazarus /usr/bin/lazarus
+ fi
+ dosym ../share/lazarus/lazbuild /usr/bin/lazbuild
+ use extras && dosym ../share/lazarus/components/chmhelp/lhelp/lhelp /usr/bin/lhelp
+ dosym ../lazarus/images/ide_icon48x48.png /usr/share/pixmaps/lazarus.png
+
+ use gui && make_desktop_entry startlazarus "Lazarus IDE" "lazarus"
+}
diff --git a/dev-lang/lazarus/lazarus-3.4-r1.ebuild b/dev-lang/lazarus/lazarus-3.4-r1.ebuild
new file mode 100644
index 000000000000..8e8dc7986393
--- /dev/null
+++ b/dev-lang/lazarus/lazarus-3.4-r1.ebuild
@@ -0,0 +1,119 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop
+
+# See https://wiki.freepascal.org/Lazarus_3.0_fixes_branch for notes and
+# changes in FPCVER. It *does* change between minor versions of lazarus.
+FPCVER="3.2.2"
+
+DESCRIPTION="feature rich visual programming environment emulating Delphi"
+HOMEPAGE="https://www.lazarus-ide.org/"
+SRC_URI="https://downloads.sourceforge.net/lazarus/${P}-0.tar.gz"
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-3.0-makefile.patch.xz"
+S="${WORKDIR}/${PN}"
+
+LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
+SLOT="0/3.0" # Note: Slotting Lazarus needs slotting fpc, see DEPEND.
+KEYWORDS="~amd64 ~x86"
+IUSE="+gui gtk2 gtk qt5 qt6 extras"
+# TODO: Drop REQUIRED_USE per QA policy for USE=gui
+REQUIRED_USE="gui? ( ^^ ( gtk2 gtk qt5 qt6 ) ) extras? ( gui )"
+
+# Pascal ignores CFLAGS and does its own stripping. Nothing else can be done about it.
+QA_FLAGS_IGNORED="
+ usr/share/lazarus/startlazarus
+ usr/share/lazarus/lazarus
+ usr/share/lazarus/tools/lazres
+ usr/share/lazarus/tools/lrstolfm
+ usr/share/lazarus/tools/updatepofiles
+ usr/share/lazarus/tools/svn2revisioninc
+ usr/share/lazarus/lazbuild
+ usr/share/lazarus/components/chmhelp/lhelp/lhelp
+"
+QA_PRESTRIPPED="${QA_FLAGS_IGNORED}"
+
+DEPEND="
+ >=dev-lang/fpc-${FPCVER}[source]
+ >=sys-devel/binutils-2.19.1-r1:=
+ gui? (
+ gtk2? ( x11-libs/gtk+:2 )
+ gtk? ( x11-libs/gtk+:3 )
+ qt5? ( dev-libs/libqt5pas:0/3.0 )
+ qt6? ( dev-libs/libqt6pas:0/3.0 )
+ )
+"
+BDEPEND="net-misc/rsync"
+RDEPEND="${DEPEND}"
+
+RESTRICT="strip" #269221
+
+PATCHES=(
+ "${WORKDIR}"/${PN}-3.0-makefile.patch
+)
+
+src_prepare() {
+ default
+ # Use default configuration (minus stripping) unless specifically requested otherwise
+ if ! test ${PPC_CONFIG_PATH+set} ; then
+ local FPCVER=$(fpc -iV)
+ export PPC_CONFIG_PATH="${WORKDIR}"
+ sed -e 's/^FPBIN=/#&/' /usr/lib/fpc/${FPCVER}/samplecfg |
+ sh -s /usr/lib/fpc/${FPCVER} "${PPC_CONFIG_PATH}" || die
+ fi
+}
+
+src_compile() {
+ # bug #732758
+ if use gui ; then
+ if use gtk2 ; then
+ export LCL_PLATFORM=gtk2
+ elif use gtk ; then
+ export LCL_PLATFORM=gtk3
+ elif use qt5 ; then
+ export LCL_PLATFORM=qt5
+ else
+ export LCL_PLATFORM=qt6
+ fi
+ else
+ export LCL_PLATFORM=nogui
+ fi
+
+ if use gui ; then
+ emake -j1 all $(usev extras "bigide lhelp")
+ else
+ emake -j1 lazbuild
+ fi
+}
+
+src_install() {
+ diropts -m0755
+ dodir /usr/share
+ # Using rsync to avoid unnecessary copies and cleaning...
+ # Note: *.o and *.ppu are needed
+ rsync -a \
+ --exclude="CVS" --exclude=".cvsignore" \
+ --exclude="*.ppw" --exclude="*.ppl" \
+ --exclude="*.ow" --exclude="*.a"\
+ --exclude="*.rst" --exclude=".#*" \
+ --exclude="*.~*" --exclude="*.bak" \
+ --exclude="*.orig" --exclude="*.rej" \
+ --exclude=".xvpics" --exclude="*.compiled" \
+ --exclude="killme*" --exclude=".gdb_hist*" \
+ --exclude="debian" --exclude="COPYING*" \
+ --exclude="*.app" \
+ "${S}" "${ED}"/usr/share \
+ || die "Unable to copy files!"
+
+ if ( use gui ) ; then
+ dosym ../share/lazarus/startlazarus /usr/bin/startlazarus
+ dosym ../share/lazarus/startlazarus /usr/bin/lazarus
+ fi
+ dosym ../share/lazarus/lazbuild /usr/bin/lazbuild
+ use extras && dosym ../share/lazarus/components/chmhelp/lhelp/lhelp /usr/bin/lhelp
+ dosym ../lazarus/images/ide_icon48x48.png /usr/share/pixmaps/lazarus.png
+
+ use gui && make_desktop_entry startlazarus "Lazarus IDE" "lazarus"
+}
diff --git a/dev-lang/logtalk/Manifest b/dev-lang/logtalk/Manifest
index ef03f23e10e3..8b5074252e36 100644
--- a/dev-lang/logtalk/Manifest
+++ b/dev-lang/logtalk/Manifest
@@ -1,2 +1 @@
-DIST logtalk-3.36.0.tar.bz2 18373894 BLAKE2B 3f4917dea47b32760edfde0538a260e5405b566520c514ec137766d17ad532f1d3e3a7a6d05b4b643b21933073951ed41bf92161ae49545eb458619444b10210 SHA512 0e93f091cb24aed3b08db05df29484e708e14cf58a673a42df70c899f3bafae30896be118d89dfdf3f3cb7d4ba520a815e46d563dd7418f80912b7067ed7da8e
DIST logtalk-3.47.0.tar.bz2 26219166 BLAKE2B 9492d27ac041562c57ab1f5f111e0f7ad062268e20d8128284d8d5085ec1c3dc63db6efa0f3a4dac34f83f206c3a4b9827d5245191227000ae56cd306da3b699 SHA512 cf07c1dec80131e477cfc9f2bf31bae573cc01222f3fba70452663dbddbddaee68b25da2e4c0abec18e1bda46059c23fca2c012cb59bbdcb4298a8c89e2d93d4
diff --git a/dev-lang/logtalk/files/logtalk-3.36.0-portage.patch b/dev-lang/logtalk/files/logtalk-3.36.0-portage.patch
deleted file mode 100644
index 8e08a9f2ff7b..000000000000
--- a/dev-lang/logtalk/files/logtalk-3.36.0-portage.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- logtalk-3.36.0.orig/scripts/logtalk_user_setup.sh 2018-06-26 15:11:02.000000000 +0200
-+++ logtalk-3.36.0/scripts/logtalk_user_setup.sh 2018-07-22 14:05:50.343406307 +0200
-@@ -131,16 +131,6 @@
- rm -f "$LOGTALKUSER"/tools/lgtdoc/xml/lgt2*
- rm -f "$LOGTALKUSER"/tools/lgtdoc/xml/logtalk.dtd
- rm -f "$LOGTALKUSER"/tools/lgtdoc/xml/logtalk.xsd
--ln -sf "$LOGTALKHOME"/ACKNOWLEDGMENTS.md "$LOGTALKUSER"/ACKNOWLEDGMENTS.md
--ln -sf "$LOGTALKHOME"/BIBLIOGRAPHY.bib "$LOGTALKUSER"/BIBLIOGRAPHY.bib
--ln -sf "$LOGTALKHOME"/CONTRIBUTING.md "$LOGTALKUSER"/CONTRIBUTING.md
--ln -sf "$LOGTALKHOME"/CUSTOMIZE.md "$LOGTALKUSER"/CUSTOMIZE.md
--ln -sf "$LOGTALKHOME"/INSTALL.md "$LOGTALKUSER"/INSTALL.md
--ln -sf "$LOGTALKHOME"/LICENSE.txt "$LOGTALKUSER"/LICENSE.txt
--ln -sf "$LOGTALKHOME"/QUICK_START.md "$LOGTALKUSER"/QUICK_START.md
--ln -sf "$LOGTALKHOME"/README.md "$LOGTALKUSER"/README.md
--ln -sf "$LOGTALKHOME"/RELEASE_NOTES.md "$LOGTALKUSER"/RELEASE_NOTES.md
--ln -sf "$LOGTALKHOME"/UPGRADING.md "$LOGTALKUSER"/UPGRADING.md
- ln -sf "$LOGTALKHOME"/adapters "$LOGTALKUSER"/adapters
- ln -sf "$LOGTALKHOME"/coding "$LOGTALKUSER"/coding
- ln -sf "$LOGTALKHOME"/integration "$LOGTALKUSER"/integration
diff --git a/dev-lang/logtalk/logtalk-3.36.0.ebuild b/dev-lang/logtalk/logtalk-3.36.0.ebuild
deleted file mode 100644
index 51b8770f7e81..000000000000
--- a/dev-lang/logtalk/logtalk-3.36.0.ebuild
+++ /dev/null
@@ -1,128 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit xdg-utils
-
-DESCRIPTION="Open source object-oriented logic programming language"
-HOMEPAGE="https://logtalk.org"
-SRC_URI="https://logtalk.org/files/${P}.tar.bz2"
-LICENSE="Apache-2.0"
-
-SLOT="0"
-KEYWORDS="amd64 ppc x86"
-IUSE="fop xslt"
-
-DEPEND=""
-RDEPEND="${DEPEND}
- xslt? ( dev-libs/libxslt )
- fop? ( dev-java/fop )"
-
-PATCHES=(
- "${FILESDIR}"/${P}-portage.patch
-)
-
-src_install() {
- # Look at scripts/install.sh for upstream installation process.
- # Install logtalk base
- mv scripts/logtalk_user_setup.sh integration/
- mkdir -p "${ED}/usr/share/${P}" || die
- cp -r adapters coding contributions core docs examples integration \
- library manuals paths scratch tests tools VERSION.txt \
- loader-sample.lgt settings-sample.lgt tester-sample.lgt \
- tests-sample.lgt \
- "${ED}/usr/share/${P}" \
- || die "Failed to install files"
-
- # Install mime file, the database will be updated later
- insinto /usr/share/mime/packages
- doins scripts/freedesktop/logtalk.xml
-
- # Install documentation
- dodoc ACKNOWLEDGMENTS.md BIBLIOGRAPHY.bib CONTRIBUTING.md \
- CUSTOMIZE.md INSTALL.md LICENSE.txt QUICK_START.md \
- README.md RELEASE_NOTES.md UPGRADING.md VERSION.txt
-
- rm -f man/man1/logtalk_backend_select.1
- rm -f man/man1/logtalk_version_select.1
- doman man/man1/*.1
-
- # Integration symlinks
- dosym ../share/${P}/integration/logtalk_user_setup.sh \
- /usr/bin/logtalk_user_setup
- dosym ../share/${P}/integration/bplgt.sh \
- /usr/bin/bplgt
- dosym ../share/${P}/integration/cxlgt.sh \
- /usr/bin/cxlgt
- dosym ../share/${P}/integration/eclipselgt.sh \
- /usr/bin/eclipselgt
- dosym ../share/${P}/integration/gplgt.sh \
- /usr/bin/gplgt
- dosym ../share/${P}/integration/jiplgt.sh \
- /usr/bin/jiplgt
- dosym ../share/${P}/integration/lplgt.sh \
- /usr/bin/lplgt
- dosym ../share/${P}/integration/qplgt.sh \
- /usr/bin/qplgt
- dosym ../share/${P}/integration/quintuslgt.sh \
- /usr/bin/quintuslgt
- dosym ../share/${P}/integration/sicstuslgt.sh \
- /usr/bin/sicstuslgt
- dosym ../share/${P}/integration/swilgt.sh \
- /usr/bin/swilgt
- dosym ../share/${P}/integration/xsblgt.sh \
- /usr/bin/xsblgt
- dosym ../share/${P}/integration/xsbmtlgt.sh \
- /usr/bin/xsbmtlgt
- dosym ../share/${P}/integration/yaplgt.sh \
- /usr/bin/yaplgt
-
- dosym ../share/${P}/tools/lgtdoc/xml/lgt2xml.sh \
- /usr/bin/lgt2xml
- use xslt && dosym ../share/${P}/tools/lgtdoc/xml/lgt2html.sh \
- /usr/bin/lgt2html
- use xslt && dosym ../share/${P}/tools/lgtdoc/xml/lgt2txt.sh \
- /usr/bin/lgt2txt
- use xslt && dosym ../share/${P}/tools/lgtdoc/xml/lgt2md.sh \
- /usr/bin/lgt2md
- use fop && dosym ../share/${P}/tools/lgtdoc/xml/lgt2pdf.sh \
- /usr/bin/lgt2pdf
-
- # Install environment files
- echo "LOGTALKHOME=/usr/share/${P}" > 99logtalk
- doenvd 99logtalk
-}
-
-pkg_postinst() {
- xdg_mimeinfo_database_update
- xdg_desktop_database_update
-
- ewarn "The following integration scripts are installed"
- ewarn "for running logtalk with selected Prolog compilers:"
- ewarn "B-Prolog: /usr/bin/bplgt"
- ewarn "CxProlog: /usr/bin/cxlgt"
- ewarn "ECLiPSe: /usr/bin/eclipselgt"
- ewarn "GNU Prolog: /usr/bin/gplgt"
- ewarn "JIProlog: /usr/bin/jiplgt"
- ewarn "Lean Prolog: /usr/bin/lplgt"
- ewarn "Qu-Prolog: /usr/bin/qplgt"
- ewarn "Quintus Prolog: /usr/bin/quintuslgt"
- ewarn "SICStus Prolog: /usr/bin/sicstuslgt"
- ewarn "SWI Prolog: /usr/bin/swilgt"
- ewarn "XSB: /usr/bin/xsblgt"
- ewarn "XSB MT: /usr/bin/xsbmtlgt"
- ewarn "YAP: /usr/bin/yaplgt"
- ewarn ""
-
- ewarn "The environment has been set up to make the above"
- ewarn "integration scripts find files automatically for logtalk."
- ewarn "Please run 'etc-update && source /etc/profile' to update"
- ewarn "the environment now, otherwise it will be updated at next"
- ewarn "login."
-}
-
-pkg_postrm() {
- xdg_mimeinfo_database_update
- xdg_desktop_database_update
-}
diff --git a/dev-lang/logtalk/logtalk-3.47.0-r1.ebuild b/dev-lang/logtalk/logtalk-3.47.0-r1.ebuild
index e65ccc6e0960..9c0ae1682824 100644
--- a/dev-lang/logtalk/logtalk-3.47.0-r1.ebuild
+++ b/dev-lang/logtalk/logtalk-3.47.0-r1.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://logtalk.org/files/${P}.tar.bz2"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
+KEYWORDS="amd64 ppc x86"
IUSE="fop xslt"
RDEPEND="
diff --git a/dev-lang/lua/metadata.xml b/dev-lang/lua/metadata.xml
index 9237282a3ce5..29700972f00e 100644
--- a/dev-lang/lua/metadata.xml
+++ b/dev-lang/lua/metadata.xml
@@ -2,10 +2,6 @@
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <maintainer type="person">
<email>robbat2@gentoo.org</email>
<name>Robin H. Johnson</name>
</maintainer>
diff --git a/dev-lang/luajit/Manifest b/dev-lang/luajit/Manifest
index 9b0d30a48afc..c8ba66d29edc 100644
--- a/dev-lang/luajit/Manifest
+++ b/dev-lang/luajit/Manifest
@@ -1,2 +1,3 @@
DIST luajit-2.1.0_beta3_p20220127.tar.gz 1072282 BLAKE2B e1d4834683b9ec16f0567f5de486262d84af145e3e27724d343c130288e90abff089fd5c7ff1275f9dde3cb5ae4f818f710020bd708c599972a14f1671381c2a SHA512 4c6ae7173bb91dc2d4d425da4afdab2520078e15ae4471c0cb99a255dd7544d6900b333efbbfc8f26ffbc4fcd8f1d2daf65671c59b5cafd6b0d53cb07b49d4ff
DIST luajit-2.1.0_beta3_p20220613.tar.gz 1074088 BLAKE2B dbcfd4efcffb9b659a85af753017da5ca9b95e89a03dfe4e594513f2ad09b08e19a862527d41bd5adf8473afd022a471176ff5412975af47bdd785b9b9cfd43b SHA512 e4fc6ebde9cd9efc5e9936416526a0f581186bf0661eca60a50bcf5048312e02f66dc905308d63abda03380c33aa2e64ceddd87527d59a4488ae7f4aeaf36dfe
+DIST luajit-2.1.1716656478.tar.gz 1081717 BLAKE2B 42807910aa81e705ff39c382e98e479d46d31453fd6fc1857220c7d4cb66d0801e2ffd813ea3c55ab2bcde8e64275d0fec2044514d7b0ef5287714ec8061bf7a SHA512 6b00d37a33f0bafbd953569ef035546a97237a53cfb718d8aecca7e9c7afe5e4706e4a53e40b9afb8720adc8eee044d8d75b8ea6cdc50d2c3f8461d79bb73b26
diff --git a/dev-lang/luajit/luajit-2.1.1716656478.ebuild b/dev-lang/luajit/luajit-2.1.1716656478.ebuild
new file mode 100644
index 000000000000..9d52ad0cb632
--- /dev/null
+++ b/dev-lang/luajit/luajit-2.1.1716656478.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+GIT_COMMIT=93e87998b24021b94de8d1c8db244444c46fb6e9
+
+# Upstream doesn't make releases anymore and instead have a (broken) "rolling
+# git tag" model.
+#
+# https://github.com/LuaJIT/LuaJIT/issues/665#issuecomment-784452583
+# https://www.freelists.org/post/luajit/LuaJIT-uses-rolling-releases
+#
+# Regular snapshots should be made from the v2.1 branch. Get the version with
+# `git show -s --format=%ct`
+
+inherit toolchain-funcs
+
+DESCRIPTION="Just-In-Time Compiler for the Lua programming language"
+HOMEPAGE="https://luajit.org/"
+SRC_URI="https://github.com/LuaJIT/LuaJIT/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/LuaJIT-${GIT_COMMIT}"
+
+LICENSE="MIT"
+# this should probably be pkgmoved to 2.0 for sake of consistency.
+SLOT="2/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 -hppa ~mips ~ppc -riscv -sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="lua52compat static-libs"
+
+_emake() {
+ emake \
+ Q= \
+ PREFIX="${EPREFIX}/usr" \
+ MULTILIB="$(get_libdir)" \
+ DESTDIR="${D}" \
+ CFLAGS="" \
+ LDFLAGS="" \
+ HOST_CC="$(tc-getBUILD_CC)" \
+ HOST_CFLAGS="${BUILD_CPPFLAGS} ${BUILD_CFLAGS}" \
+ HOST_LDFLAGS="${BUILD_LDFLAGS}" \
+ STATIC_CC="$(tc-getCC)" \
+ DYNAMIC_CC="$(tc-getCC) -fPIC" \
+ TARGET_LD="$(tc-getCC)" \
+ TARGET_CFLAGS="${CPPFLAGS} ${CFLAGS}" \
+ TARGET_LDFLAGS="${LDFLAGS}" \
+ TARGET_AR="$(tc-getAR) rcus" \
+ BUILDMODE="$(usex static-libs mixed dynamic)" \
+ TARGET_STRIP="true" \
+ INSTALL_LIB="${ED}/usr/$(get_libdir)" \
+ "$@"
+}
+
+src_compile() {
+ tc-export_build_env
+ _emake XCFLAGS="$(usex lua52compat "-DLUAJIT_ENABLE_LUA52COMPAT" "")"
+}
+
+src_install() {
+ _emake install
+ dosym luajit-"${PV}" /usr/bin/luajit
+
+ HTML_DOCS="doc/." einstalldocs
+}
diff --git a/dev-lang/luau/Manifest b/dev-lang/luau/Manifest
index 630f70500166..1fb27e5d46fc 100644
--- a/dev-lang/luau/Manifest
+++ b/dev-lang/luau/Manifest
@@ -1,2 +1 @@
-DIST luau-0.613.tar.gz 1617826 BLAKE2B d7e9b898fe74d376f963ead6a1d410d1eb6832ca70ebfc7d840e4322b9bf9b8d585f0e2c8f1743f55d4d745a6be49df259489d7c85e96c9a4fdfa602dfadca30 SHA512 c118f35345dd030074a86283ae931f48e8ef18bf2a89efed8e516ce321a720c9b49a2211ff439832e6da994f65b87c7613e061845c0daeb9c93490f2fafc9f8b
DIST luau-0.618.tar.gz 1672989 BLAKE2B ecd166a9562aa103d27e29154687548bce04e45c9810b4aa264fe6eb38e3c2077a9cd4c61f138af62c605580c477b382fd2612616a3638a5a708c3d315011a12 SHA512 9fb6aa39ff2ad92a90afefb77ede472a2fb8a99417a669a1e19774a5550ca79709c034f353b459780f07f406dcac1b83639fb4fcd31215d811df491851fc1a6c
diff --git a/dev-lang/luau/luau-0.613.ebuild b/dev-lang/luau/luau-0.613.ebuild
deleted file mode 100644
index ba40b86df707..000000000000
--- a/dev-lang/luau/luau-0.613.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# 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/luau/luau-0.618.ebuild b/dev-lang/luau/luau-0.618.ebuild
index ff2804b115f7..ba40b86df707 100644
--- a/dev-lang/luau/luau-0.618.ebuild
+++ b/dev-lang/luau/luau-0.618.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/mercury-extras/Manifest b/dev-lang/mercury-extras/Manifest
index 7fd31befe526..1b76bcf84db7 100644
--- a/dev-lang/mercury-extras/Manifest
+++ b/dev-lang/mercury-extras/Manifest
@@ -1,8 +1,2 @@
-DIST mercury-extras-20.06-gentoo-patchset-0.tar.gz 1093 BLAKE2B cd0087a7a878c303a610e0007b352deec2e54b8223af1fbdcdd5e1fec0a7d6b4533895ba4ec01d4f90734349535a4c16c69f4ec60495f5a7888f99e4580e3ce3 SHA512 abd74dee931a01085a75f45d2793109737662345bdc68f4cf25dd874b59726da6a5ec8acd84cc8f0957052eeb9e5a9e3502090a0688fbea817d05c6948728ecb
-DIST mercury-extras-20.06.1-gentoo-patchset-0.tar.gz 617 BLAKE2B e16a3887bd0927911e2062befa38119d0347e01eae08d21dcf185942648ce52a94890c26059d39b096f69d19227c2ed22e2d3ded0cc762ebfd1bcb702810f5ea SHA512 1274c08c7c02f6f5fa5183f42e958a8e469df38d8e693722134a24aa846d4f3a74dafa0dd4f9d11fbca58497ff6d714aa7456dc2fd516d8961bc1ba43f3b3b8c
-DIST mercury-extras-22.01-gentoo-patchset-0.tar.gz 436 BLAKE2B 2c1ff61b87e04777f3d3b66e7a6ae1c8e82e7caec413e2ed51eeb785b5dd8bc1773aa065219ccc58833b1c2aae3d481f531b94a48c215ce7eea2e0762948f946 SHA512 eac4615c951665150c6e6d2cc317d68be8e510aa9be663cadfe04b55d30fe8a0d17fae93a19d1e54556179618262ea4fdb6381e05aca278c4c516bc1f52656bd
DIST mercury-extras-22.01.1-gentoo-patchset-1.tar.gz 824 BLAKE2B 677ab82f668f2e35cccf6eff0fc453fb5483941b5315891b1b02a2afb3216b59c86aa3712cdbc7382aa604ce7d1ac7cd8e32bb25c7643b8a3786bae09e987dbb SHA512 bb6ca63a9d4ceb71f7e2c07540301ca319a0163414b5d005251de4b8d4948fcd551b892e1520be0e95c845c31fd6953f2293f5fe52990af680b5bf9117a22e69
-DIST mercury-srcdist-20.06.1.tar.gz 47796261 BLAKE2B f282c6edb78e9090eb451585c65c9214927b94eaa5fcdf6f674aef6beb62eb65179f998bcc2e56c3c93b73dd1dc94973084eb8363bc05e334384096c9520d478 SHA512 94e901e5d3db39e3342bf2d6a2a74556a7b18b295c7e02669b487a81d41c72e572046ce1133d670ca6c1b8e246dd277439087efe8fb99b979a73555a101aa9a8
-DIST mercury-srcdist-20.06.tar.gz 47768559 BLAKE2B f242aa2ef7da53aa2dfa054e4fee8646434d276f0748b014e33ea52d22f2a8a37e6fecaa20617f4943c4c1e7d8c179ed0603a344fde2dd58da98b2bacadf1a71 SHA512 b76bd22d8eb16242c68b614ff122ed7ee7535efef6c0ceb8cc798fee4c550bc41b6faff2135cea43b24c652b654bb35ae049656585d8e7bf3a1122d07cb1ecf4
DIST mercury-srcdist-22.01.1.tar.gz 48956249 BLAKE2B 0f5a7662327f27c27a4d9e421f71afa58920f6232093452781124817ce5c34d1953a80a08b75e95101a7e2e88159b7d4ead08d25c67a99abcb908a9582af2bab SHA512 5fa49640307233ea0f641488e5ea526385e52833007a31469e083711b63925ca7568d7ad6e09301ddf7816384a080546bc4cf46b1422f974e008917d1aa4f37a
-DIST mercury-srcdist-22.01.tar.gz 48960609 BLAKE2B 4ac45251bc098c1465f4bc418501db152bfcf36a2e04bb9153a44c44ff2dff300545103c29551818e773728c5a61947c019997fcc2cb64900e538d5ef64c1b39 SHA512 35b3b1e9fd85062edea5263b304bfc965382d04353e5548d59211519ee222bb6a8e8c95cb03faa089062e39c90b2d1c4af7ca0d9eabbf3bb44872d461e10ff2d
diff --git a/dev-lang/mercury-extras/mercury-extras-20.06.1.ebuild b/dev-lang/mercury-extras/mercury-extras-20.06.1.ebuild
deleted file mode 100644
index 6069ed489b0f..000000000000
--- a/dev-lang/mercury-extras/mercury-extras-20.06.1.ebuild
+++ /dev/null
@@ -1,307 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib toolchain-funcs vcs-clean
-
-PATCHSET_VER="0"
-MY_P=mercury-srcdist-${PV}
-
-DESCRIPTION="Additional libraries and tools that are not part of the Mercury standard library"
-HOMEPAGE="https://www.mercurylang.org/index.html"
-SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz
- https://dev.gentoo.org/~keri/distfiles/mercury-extras/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-IUSE="cairo examples glut gmp iodbc ncurses odbc opengl ssl tk tommath X xml"
-REQUIRED_USE="?? ( odbc iodbc )"
-
-RDEPEND="
- ~dev-lang/mercury-${PV}
- cairo? ( >=x11-libs/cairo-1.10.0 )
- gmp? ( dev-libs/gmp:0 )
- glut? ( media-libs/freeglut )
- odbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc )
- tommath? ( dev-libs/libtommath )
- ncurses? ( sys-libs/ncurses:= )
- opengl? (
- virtual/opengl
- virtual/glu
- )
- tk? (
- dev-lang/tcl:0
- dev-lang/tk:0
- )
- X? ( x11-libs/libX11 )"
-
-DEPEND="${RDEPEND}"
-
-BDEPEND="virtual/pkgconfig"
-
-S="${WORKDIR}"/${MY_P}/extras
-
-mercury_pkgs() {
- echo "
- align_right/align_right:bin:
- base64/mercury_base64:lib:
- cgi/mercury_www:lib:
- complex_numbers/complex_numbers:lib:
- $(use ncurses && echo \
- curs/curs:lib:ncurses,panel curses/mcurses:lib:ncurses)
- dynamic_linking/dl:lib:
- error/error:bin:
- fixed/fixed:lib:
- $(use gmp && echo gmp_int/gmp_int:lib:)
- $(use tommath && echo mp_int/mp_int:lib:libtommath)
- $(use X && echo graphics/easyx/easyx:lib:x11)
- $(use cairo && echo graphics/mercury_cairo/mercury_cairo:lib:cairo)
- $(use glut && echo graphics/mercury_glut/mercury_glut:lib:freeglut)
- $(use opengl && echo graphics/mercury_opengl/mercury_opengl:lib:gl,glu)
- $(use tk && echo graphics/mercury_tcltk/mercury_tcltk:lib:tk)
- lex/lex:lib:
- lex/regex:lib:
- moose/moose:bin:
- net/net:lib:
- net/echo:bin:
- $(use ssl && echo mopenssl/mopenssl:lib:openssl)
- $(use odbc && echo odbc/odbc:lib:odbc)
- $(use iodbc && echo odbc/odbc:lib:libiodbc)
- posix/posix:lib:
- $(has_version dev-lang/mercury[trail] && echo \
- references/global:lib:)
- show_ops/show_ops:bin:
- solver_types/library/any:lib:
- $(use xml && echo xml/xml:lib:)"
-}
-
-mercury_pkg_setup() {
- mercury_pkg=${1%%:*}
- mercury_pkg_dir=${mercury_pkg%/*}
- mercury_pkg_name=${mercury_pkg##*/}
-
- mercury_pkg_atts=${1#*:}
- mercury_pkg_type=${mercury_pkg_atts%%:*}
- mercury_pkg_deps=${mercury_pkg_atts#*:}
-
- cd "${S}"/${mercury_pkg_dir} || die
-
- echo ">> Preparing Mercury package: ${mercury_pkg}"
-
- echo "MCFLAGS += --libgrades-exclude java" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- echo "MCFLAGS += --libgrades-exclude erlang" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- echo "MCFLAGS += --libgrades-exclude csharp" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
-
- if test -n "$mercury_pkg_deps"; then
- echo "EXTRA_CFLAGS += $($(tc-getPKG_CONFIG) --cflags ${mercury_pkg_deps/,/ })" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- echo "EXTRA_LDFLAGS += $($(tc-getPKG_CONFIG) --libs ${mercury_pkg_deps/,/ })" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- fi
-
- if test ${mercury_pkg_name} = dl; then
- echo "EXTRA_LDFLAGS += -ldl" >> "${S}"/${mercury_pkg_dir}/Mercury.options
- elif test ${mercury_pkg_name} = gmp_int; then
- echo "EXTRA_LDFLAGS += -lgmp" >> "${S}"/${mercury_pkg_dir}/Mercury.options
- elif test ${mercury_pkg_name} = mercury_tcltk; then
- echo "EXTRA_CFLAGS += -DUSE_INTERP_RESULT" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- elif test ${mercury_pkg_name} = odbc && use odbc; then
- echo "EXTRA_CFLAGS += -DMODBC_UNIX -DMODBC_MYSQL" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- elif test ${mercury_pkg_name} = odbc && use iodbc; then
- echo "EXTRA_CFLAGS += -DMODBC_IODBC -DMODBC_MYSQL" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- fi
-}
-
-mercury_pkg_compile() {
- mercury_pkg=${1%%:*}
- mercury_pkg_dir=${mercury_pkg%/*}
- mercury_pkg_name=${mercury_pkg##*/}
-
- mercury_pkg_atts=${1#*:}
- mercury_pkg_type=${mercury_pkg_atts%:*}
-
- cd "${S}"/${mercury_pkg_dir} || die
-
- echo ">> Compiling Mercury package: ${mercury_pkg}"
-
- if test "${mercury_pkg_type}" = "bin"; then
- mercury_mmc_target=${mercury_pkg_name}
- else
- mercury_mmc_target=lib${mercury_pkg_name}
- fi
-
- mmc -f *.m || die "mmc -f .m failed"
-
- mmc \
- --make \
- --verbose-commands \
- --no-strip \
- --cflags "${CFLAGS}" \
- --ld-flags "${LDFLAGS}" \
- --ld-libflags "${LDFLAGS}" \
- ${mercury_mmc_target} || die "mmc ${mercury_mmc_target} failed"
-}
-
-mercury_pkg_install() {
- mercury_pkg=${1%%:*}
- mercury_pkg_dir=${mercury_pkg%/*}
- mercury_pkg_name=${mercury_pkg##*/}
-
- mercury_pkg_atts=${1#*:}
- mercury_pkg_type=${mercury_pkg_atts%:*}
-
- cd "${S}"/${mercury_pkg_dir} || die
-
- echo ">> Installing Mercury package: ${mercury_pkg}"
-
- if test "${mercury_pkg_type}" = "bin"; then
- into /usr/$(get_libdir)/mercury/extras
- dobin ${mercury_pkg_name}
- else
- mmc \
- --make \
- --verbose-commands \
- --no-strip \
- --cflags "${CFLAGS}" \
- --ld-flags "${LDFLAGS}" \
- --ld-libflags "${LDFLAGS}" \
- --install-prefix "${D}/usr/$(get_libdir)/mercury/extras" \
- lib${mercury_pkg_name}.install || die "mmc lib${mercury_pkg_name}.install failed"
- fi
-}
-
-src_prepare() {
- cd "${WORKDIR}"/${MY_P}
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- eapply "${WORKDIR}"/${PV}
- fi
- eapply_user
-
- cd "${S}"
- for mercury_pkg in $(mercury_pkgs); do
- mercury_pkg_setup ${mercury_pkg}
- done
-
- cp "${S}"/net/*.m "${S}"/mopenssl/ || die
-}
-
-src_compile() {
- for mercury_pkg in $(mercury_pkgs); do
- mercury_pkg_compile ${mercury_pkg}
- done
-}
-
-src_install() {
- for mercury_pkg in $(mercury_pkgs); do
- mercury_pkg_install ${mercury_pkg}
- done
-
- cd "${S}"
- dodoc README
-
- if use examples; then
- docinto samples/cgi
- dodoc cgi/form_test.m
-
- docinto samples/complex_numbers
- dodoc complex_numbers/samples/*.m
-
- if use ncurses; then
- docinto samples/curs
- dodoc curs/samples/*.m
-
- docinto samples/curses
- dodoc curses/sample/*.m
- fi
-
- docinto samples/dynamic_linking
- dodoc dynamic_linking/{hello,dl_test}.m
-
- docinto samples/gator
- dodoc -r gator/*
-
- if use gmp; then
- docinto samples/gmp_int
- dodoc gmp_int/gmp_int_test.m
- fi
-
- if use tommath; then
- docinto samples/mp_int
- dodoc mp_int/mp_int_test.m
- fi
-
- if use X; then
- docinto samples/graphics
- dodoc graphics/easyx/samples/*.m
- fi
-
- if use glut && use opengl; then
- docinto samples/graphics
- dodoc graphics/samples/gears/*.m
- dodoc graphics/samples/maze/*.m
- fi
-
- if use tk; then
- docinto samples/graphics
- dodoc graphics/samples/calc/*.m
- fi
-
- if use opengl && use tk; then
- docinto samples/graphics
- dodoc graphics/samples/pent/*.m
- fi
-
- docinto samples/lex
- dodoc lex/samples/*.m
-
- docinto samples/log4m
- dodoc log4m/*.m
-
- docinto samples/monte
- dodoc monte/*.m
-
- docinto samples/moose
- dodoc moose/samples/*
-
- docinto samples/net
- dodoc net/test_lookups.m
-
- if use odbc || use iodbc; then
- docinto samples/odbc
- dodoc odbc/odbc_test.m
- fi
-
- docinto samples/posix
- dodoc posix/samples/*.m
-
- docinto samples/random
- dodoc random/*.m
-
- if has_version dev-lang/mercury[trail]; then
- docinto samples/references
- dodoc references/samples/*.m
-
- docinto samples/trail
- dodoc trail/*.m
- fi
-
- if use xml; then
- docinto samples/xml
- dodoc xml/tryit.m
- dodoc xml/samples/*
- dodoc xml_stylesheets/*.xsl
- fi
-
- ecvs_clean
- fi
-}
diff --git a/dev-lang/mercury-extras/mercury-extras-20.06.ebuild b/dev-lang/mercury-extras/mercury-extras-20.06.ebuild
deleted file mode 100644
index 29d3f055a119..000000000000
--- a/dev-lang/mercury-extras/mercury-extras-20.06.ebuild
+++ /dev/null
@@ -1,307 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib toolchain-funcs vcs-clean
-
-PATCHSET_VER="0"
-MY_P=mercury-srcdist-${PV}
-
-DESCRIPTION="Additional libraries and tools that are not part of the Mercury standard library"
-HOMEPAGE="https://www.mercurylang.org/index.html"
-SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz
- https://dev.gentoo.org/~keri/distfiles/mercury-extras/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-IUSE="cairo examples glut gmp iodbc ncurses odbc opengl ssl tk tommath X xml"
-REQUIRED_USE="?? ( odbc iodbc )"
-
-RDEPEND="
- ~dev-lang/mercury-${PV}
- cairo? ( >=x11-libs/cairo-1.10.0 )
- gmp? ( dev-libs/gmp:0 )
- glut? ( media-libs/freeglut )
- odbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc )
- tommath? ( dev-libs/libtommath )
- ncurses? ( sys-libs/ncurses:= )
- opengl? (
- virtual/opengl
- virtual/glu
- )
- tk? (
- dev-lang/tcl:0
- dev-lang/tk:0
- )
- X? ( x11-libs/libX11 )"
-
-DEPEND="${RDEPEND}"
-
-BDEPEND="virtual/pkgconfig"
-
-S="${WORKDIR}"/${MY_P}/extras
-
-mercury_pkgs() {
- echo "
- align_right/align_right:bin:
- base64/mercury_base64:lib:
- cgi/mercury_www:lib:
- complex_numbers/complex_numbers:lib:
- $(use ncurses && echo \
- curs/curs:lib:ncurses,panel curses/mcurses:lib:ncurses)
- dynamic_linking/dl:lib:
- error/error:bin:
- fixed/fixed:lib:
- $(use gmp && echo gmp_int/gmp_int:lib:)
- $(use tommath && echo mp_int/mp_int:lib:libtommath)
- $(use X && echo graphics/easyx/easyx:lib:x11)
- $(use cairo && echo graphics/mercury_cairo/mercury_cairo:lib:cairo)
- $(use glut && echo graphics/mercury_glut/mercury_glut:lib:freeglut)
- $(use opengl && echo graphics/mercury_opengl/mercury_opengl:lib:gl,glu)
- $(use tk && echo graphics/mercury_tcltk/mercury_tcltk:lib:tk)
- lex/lex:lib:
- lex/regex:lib:
- moose/moose:bin:
- net/net:lib:
- net/echo:bin:
- $(use ssl && echo mopenssl/mopenssl:lib:openssl)
- $(use odbc && echo odbc/odbc:lib:odbc)
- $(use iodbc && echo odbc/odbc:lib:libiodbc)
- posix/posix:lib:
- $(has_version dev-lang/mercury[trail] && echo \
- references/global:lib:)
- show_ops/show_ops:bin:
- solver_types/library/any:lib:
- $(use xml && echo xml/xml:lib:)"
-}
-
-mercury_pkg_setup() {
- mercury_pkg=${1%%:*}
- mercury_pkg_dir=${mercury_pkg%/*}
- mercury_pkg_name=${mercury_pkg##*/}
-
- mercury_pkg_atts=${1#*:}
- mercury_pkg_type=${mercury_pkg_atts%%:*}
- mercury_pkg_deps=${mercury_pkg_atts#*:}
-
- cd "${S}"/${mercury_pkg_dir} || die
-
- echo ">> Preparing Mercury package: ${mercury_pkg}"
-
- echo "MCFLAGS += --libgrades-exclude java" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- echo "MCFLAGS += --libgrades-exclude erlang" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- echo "MCFLAGS += --libgrades-exclude csharp" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
-
- if test -n "$mercury_pkg_deps"; then
- echo "EXTRA_CFLAGS += $($(tc-getPKG_CONFIG) --cflags ${mercury_pkg_deps/,/ })" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- echo "EXTRA_LDFLAGS += $($(tc-getPKG_CONFIG) --libs ${mercury_pkg_deps/,/ })" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- fi
-
- if test ${mercury_pkg_name} = dl; then
- echo "EXTRA_LDFLAGS += -ldl" >> "${S}"/${mercury_pkg_dir}/Mercury.options
- elif test ${mercury_pkg_name} = gmp_int; then
- echo "EXTRA_LDFLAGS += -lgmp" >> "${S}"/${mercury_pkg_dir}/Mercury.options
- elif test ${mercury_pkg_name} = mercury_tcltk; then
- echo "EXTRA_CFLAGS += -DUSE_INTERP_RESULT" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- elif test ${mercury_pkg_name} = odbc && use odbc; then
- echo "EXTRA_CFLAGS += -DMODBC_UNIX -DMODBC_MYSQL" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- elif test ${mercury_pkg_name} = odbc && use iodbc; then
- echo "EXTRA_CFLAGS += -DMODBC_IODBC -DMODBC_MYSQL" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- fi
-}
-
-mercury_pkg_compile() {
- mercury_pkg=${1%%:*}
- mercury_pkg_dir=${mercury_pkg%/*}
- mercury_pkg_name=${mercury_pkg##*/}
-
- mercury_pkg_atts=${1#*:}
- mercury_pkg_type=${mercury_pkg_atts%:*}
-
- cd "${S}"/${mercury_pkg_dir} || die
-
- echo ">> Compiling Mercury package: ${mercury_pkg}"
-
- if test "${mercury_pkg_type}" = "bin"; then
- mercury_mmc_target=${mercury_pkg_name}
- else
- mercury_mmc_target=lib${mercury_pkg_name}
- fi
-
- mmc -f *.m || die "mmc -f .m failed"
-
- mmc \
- --make \
- --verbose-commands \
- --no-strip \
- --cflags "${CFLAGS}" \
- --ld-flags "${LDFLAGS}" \
- --ld-libflags "${LDFLAGS}" \
- ${mercury_mmc_target} || die "mmc ${mercury_mmc_target} failed"
-}
-
-mercury_pkg_install() {
- mercury_pkg=${1%%:*}
- mercury_pkg_dir=${mercury_pkg%/*}
- mercury_pkg_name=${mercury_pkg##*/}
-
- mercury_pkg_atts=${1#*:}
- mercury_pkg_type=${mercury_pkg_atts%:*}
-
- cd "${S}"/${mercury_pkg_dir} || die
-
- echo ">> Installing Mercury package: ${mercury_pkg}"
-
- if test "${mercury_pkg_type}" = "bin"; then
- into /usr/$(get_libdir)/mercury/extras
- dobin ${mercury_pkg_name}
- else
- mmc \
- --make \
- --verbose-commands \
- --no-strip \
- --cflags "${CFLAGS}" \
- --ld-flags "${LDFLAGS}" \
- --ld-libflags "${LDFLAGS}" \
- --install-prefix "${D}/usr/$(get_libdir)/mercury/extras" \
- lib${mercury_pkg_name}.install || die "mmc lib${mercury_pkg_name}.install failed"
- fi
-}
-
-src_prepare() {
- cd "${WORKDIR}"/${MY_P}
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- eapply "${WORKDIR}"/${PV}
- fi
- eapply_user
-
- cd "${S}"
- for mercury_pkg in $(mercury_pkgs); do
- mercury_pkg_setup ${mercury_pkg}
- done
-
- cp "${S}"/net/*.m "${S}"/mopenssl/ || die
-}
-
-src_compile() {
- for mercury_pkg in $(mercury_pkgs); do
- mercury_pkg_compile ${mercury_pkg}
- done
-}
-
-src_install() {
- for mercury_pkg in $(mercury_pkgs); do
- mercury_pkg_install ${mercury_pkg}
- done
-
- cd "${S}"
- dodoc README
-
- if use examples; then
- docinto samples/cgi
- dodoc cgi/form_test.m
-
- docinto samples/complex_numbers
- dodoc complex_numbers/samples/*.m
-
- if use ncurses; then
- docinto samples/curs
- dodoc curs/samples/*.m
-
- docinto samples/curses
- dodoc curses/sample/*.m
- fi
-
- docinto samples/dynamic_linking
- dodoc dynamic_linking/{hello,dl_test}.m
-
- docinto samples/gator
- dodoc -r gator/*
-
- if use gmp; then
- docinto samples/gmp_int
- dodoc gmp_int/gmp_int_test.m
- fi
-
- if use tommath; then
- docinto samples/mp_int
- dodoc mp_int/mp_int_test.m
- fi
-
- if use X; then
- docinto samples/graphics
- dodoc graphics/easyx/samples/*.m
- fi
-
- if use glut && use opengl; then
- docinto samples/graphics
- dodoc graphics/samples/gears/*.m
- dodoc graphics/samples/maze/*.m
- fi
-
- if use tk; then
- docinto samples/graphics
- dodoc graphics/samples/calc/*.m
- fi
-
- if use opengl && use tk; then
- docinto samples/graphics
- dodoc graphics/samples/pent/*.m
- fi
-
- docinto samples/lex
- dodoc lex/samples/*.m
-
- docinto samples/log4m
- dodoc log4m/*.m
-
- docinto samples/monte
- dodoc monte/*.m
-
- docinto samples/moose
- dodoc moose/samples/*
-
- docinto samples/net
- dodoc net/test_lookups.m
-
- if use odbc || use iodbc; then
- docinto samples/odbc
- dodoc odbc/odbc_test.m
- fi
-
- docinto samples/posix
- dodoc posix/samples/*.m
-
- docinto samples/random
- dodoc random/*.m
-
- if has_version dev-lang/mercury[trail]; then
- docinto samples/references
- dodoc references/samples/*.m
-
- docinto samples/trail
- dodoc trail/*.m
- fi
-
- if use xml; then
- docinto samples/xml
- dodoc xml/tryit.m
- dodoc xml/samples/*
- dodoc xml_stylesheets/*.xsl
- fi
-
- ecvs_clean
- fi
-}
diff --git a/dev-lang/mercury-extras/mercury-extras-22.01.ebuild b/dev-lang/mercury-extras/mercury-extras-22.01.ebuild
deleted file mode 100644
index c73b6e8a9b8c..000000000000
--- a/dev-lang/mercury-extras/mercury-extras-22.01.ebuild
+++ /dev/null
@@ -1,298 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib vcs-clean
-
-PATCHSET_VER="0"
-MY_P=mercury-srcdist-${PV}
-
-DESCRIPTION="Additional libraries and tools that are not part of the Mercury standard library"
-HOMEPAGE="https://www.mercurylang.org/index.html"
-SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz
- https://dev.gentoo.org/~keri/distfiles/mercury-extras/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-IUSE="cairo examples glut gmp iodbc ncurses odbc opengl ssl tk tommath X xml"
-REQUIRED_USE="?? ( odbc iodbc )"
-
-RDEPEND="
- ~dev-lang/mercury-${PV}
- cairo? ( >=x11-libs/cairo-1.10.0 )
- gmp? ( dev-libs/gmp:0 )
- glut? ( media-libs/freeglut )
- odbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc )
- tommath? ( dev-libs/libtommath )
- ncurses? ( sys-libs/ncurses:= )
- opengl? (
- virtual/opengl
- virtual/glu
- )
- tk? (
- dev-lang/tcl:0
- dev-lang/tk:0
- )
- X? ( x11-libs/libX11 )"
-
-DEPEND="${RDEPEND}"
-
-S="${WORKDIR}"/${MY_P}/extras
-
-mercury_pkgs() {
- echo "
- align_right/align_right:bin:
- base64/mercury_base64:lib:
- cgi/mercury_www:lib:
- complex_numbers/complex_numbers:lib:
- $(use ncurses && echo \
- curs/curs:lib:ncurses,panel curses/mcurses:lib:ncurses)
- dynamic_linking/dl:lib:
- error/error:bin:
- fixed/fixed:lib:
- $(use gmp && echo gmp_int/gmp_int:lib:)
- $(use tommath && echo mp_int/mp_int:lib:libtommath)
- $(use X && echo graphics/easyx/easyx:lib:x11)
- $(use cairo && echo graphics/mercury_cairo/mercury_cairo:lib:cairo)
- $(use glut && echo graphics/mercury_glut/mercury_glut:lib:freeglut)
- $(use opengl && echo graphics/mercury_opengl/mercury_opengl:lib:gl,glu)
- $(use tk && echo graphics/mercury_tcltk/mercury_tcltk:lib:tk)
- lex/lex:lib:
- lex/regex:lib:
- moose/moose:bin:
- net/net:lib:
- net/echo:bin:
- $(use ssl && echo mopenssl/mopenssl:lib:openssl)
- $(use odbc && echo odbc/odbc:lib:odbc)
- $(use iodbc && echo odbc/odbc:lib:libiodbc)
- posix/posix:lib:
- $(has_version dev-lang/mercury[trail] && echo \
- references/global:lib:)
- show_ops/show_ops:bin:
- solver_types/library/any:lib:
- $(use xml && echo xml/xml:lib:)"
-}
-
-mercury_pkg_setup() {
- mercury_pkg=${1%%:*}
- mercury_pkg_dir=${mercury_pkg%/*}
- mercury_pkg_name=${mercury_pkg##*/}
-
- mercury_pkg_atts=${1#*:}
- mercury_pkg_type=${mercury_pkg_atts%%:*}
- mercury_pkg_deps=${mercury_pkg_atts#*:}
-
- cd "${S}"/${mercury_pkg_dir} || die
-
- echo ">> Preparing Mercury package: ${mercury_pkg}"
-
- echo "MCFLAGS += --libgrades-exclude java" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- echo "MCFLAGS += --libgrades-exclude csharp" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
-
- if test -n "$mercury_pkg_deps"; then
- echo "EXTRA_CFLAGS += $(pkg-config --cflags ${mercury_pkg_deps/,/ })" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- echo "EXTRA_LDFLAGS += $(pkg-config --libs ${mercury_pkg_deps/,/ })" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- fi
-
- if test ${mercury_pkg_name} = dl; then
- echo "EXTRA_LDFLAGS += -ldl" >> "${S}"/${mercury_pkg_dir}/Mercury.options
- elif test ${mercury_pkg_name} = gmp_int; then
- echo "EXTRA_LDFLAGS += -lgmp" >> "${S}"/${mercury_pkg_dir}/Mercury.options
- elif test ${mercury_pkg_name} = mercury_tcltk; then
- echo "EXTRA_CFLAGS += -DUSE_INTERP_RESULT" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- elif test ${mercury_pkg_name} = odbc && use odbc; then
- echo "EXTRA_CFLAGS += -DMODBC_UNIX -DMODBC_MYSQL" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- elif test ${mercury_pkg_name} = odbc && use iodbc; then
- echo "EXTRA_CFLAGS += -DMODBC_IODBC -DMODBC_MYSQL" \
- >> "${S}"/${mercury_pkg_dir}/Mercury.options
- fi
-}
-
-mercury_pkg_compile() {
- mercury_pkg=${1%%:*}
- mercury_pkg_dir=${mercury_pkg%/*}
- mercury_pkg_name=${mercury_pkg##*/}
-
- mercury_pkg_atts=${1#*:}
- mercury_pkg_type=${mercury_pkg_atts%:*}
-
- cd "${S}"/${mercury_pkg_dir} || die
-
- echo ">> Compiling Mercury package: ${mercury_pkg}"
-
- if test "${mercury_pkg_type}" = "bin"; then
- mercury_mmc_target=${mercury_pkg_name}
- else
- mercury_mmc_target=lib${mercury_pkg_name}
- fi
-
- mmc -f *.m || die "mmc -f .m failed"
-
- mmc \
- --make \
- --verbose-commands \
- --no-strip \
- --cflags "${CFLAGS}" \
- --ld-flags "${LDFLAGS}" \
- --ld-libflags "${LDFLAGS}" \
- ${mercury_mmc_target} || die "mmc ${mercury_mmc_target} failed"
-}
-
-mercury_pkg_install() {
- mercury_pkg=${1%%:*}
- mercury_pkg_dir=${mercury_pkg%/*}
- mercury_pkg_name=${mercury_pkg##*/}
-
- mercury_pkg_atts=${1#*:}
- mercury_pkg_type=${mercury_pkg_atts%:*}
-
- cd "${S}"/${mercury_pkg_dir} || die
-
- echo ">> Installing Mercury package: ${mercury_pkg}"
-
- if test "${mercury_pkg_type}" = "bin"; then
- into /usr/$(get_libdir)/mercury/extras
- dobin ${mercury_pkg_name}
- else
- mmc \
- --make \
- --verbose-commands \
- --no-strip \
- --cflags "${CFLAGS}" \
- --ld-flags "${LDFLAGS}" \
- --ld-libflags "${LDFLAGS}" \
- --install-prefix "${D}/usr/$(get_libdir)/mercury/extras" \
- lib${mercury_pkg_name}.install || die "mmc lib${mercury_pkg_name}.install failed"
- fi
-}
-
-src_prepare() {
- cd "${WORKDIR}"/${MY_P}
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- eapply "${WORKDIR}"/${PV}
- fi
- eapply_user
-
- cd "${S}"
- for mercury_pkg in $(mercury_pkgs); do
- mercury_pkg_setup ${mercury_pkg}
- done
-
- cp "${S}"/net/*.m "${S}"/mopenssl/ || die
-}
-
-src_compile() {
- for mercury_pkg in $(mercury_pkgs); do
- mercury_pkg_compile ${mercury_pkg}
- done
-}
-
-src_install() {
- for mercury_pkg in $(mercury_pkgs); do
- mercury_pkg_install ${mercury_pkg}
- done
-
- cd "${S}"
- dodoc README.md
-
- if use examples; then
- docinto samples/cgi
- dodoc cgi/form_test.m
-
- docinto samples/complex_numbers
- dodoc complex_numbers/samples/*.m
-
- if use ncurses; then
- docinto samples/curs
- dodoc curs/samples/*.m
-
- docinto samples/curses
- dodoc curses/sample/*.m
- fi
-
- docinto samples/dynamic_linking
- dodoc dynamic_linking/{hello,dl_test}.m
-
- docinto samples/gator
- dodoc -r gator/*
-
- if use gmp; then
- docinto samples/gmp_int
- dodoc gmp_int/gmp_int_test.m
- fi
-
- if use tommath; then
- docinto samples/mp_int
- dodoc mp_int/mp_int_test.m
- fi
-
- if use X; then
- docinto samples/graphics
- dodoc graphics/easyx/samples/*.m
- fi
-
- if use glut && use opengl; then
- docinto samples/graphics
- dodoc graphics/samples/gears/*.m
- dodoc graphics/samples/maze/*.m
- fi
-
- if use tk; then
- docinto samples/graphics
- dodoc graphics/samples/calc/*.m
- fi
-
- docinto samples/lex
- dodoc lex/samples/*.m
-
- docinto samples/log4m
- dodoc log4m/*.m
-
- docinto samples/monte
- dodoc monte/*.m
-
- docinto samples/moose
- dodoc moose/samples/*
-
- docinto samples/net
- dodoc net/test_lookups.m
-
- if use odbc || use iodbc; then
- docinto samples/odbc
- dodoc odbc/odbc_test.m
- fi
-
- docinto samples/posix
- dodoc posix/samples/*.m
-
- docinto samples/random
- dodoc random/*.m
-
- if has_version dev-lang/mercury[trail]; then
- docinto samples/references
- dodoc references/samples/*.m
-
- docinto samples/trail
- dodoc trail/*.m
- fi
-
- if use xml; then
- docinto samples/xml
- dodoc xml/tryit.m
- dodoc xml/samples/*
- dodoc xml_stylesheets/*.xsl
- fi
-
- ecvs_clean
- fi
-}
diff --git a/dev-lang/mercury/Manifest b/dev-lang/mercury/Manifest
index 98779fca5b66..0d34064a0b84 100644
--- a/dev-lang/mercury/Manifest
+++ b/dev-lang/mercury/Manifest
@@ -1,8 +1,2 @@
-DIST mercury-20.06-gentoo-patchset-3.tar.gz 5265 BLAKE2B 0539611691cfb714937bca8dc967246ce32c515b7133391d81333284e6ceffe29b929c042ee0000752bd9980c2d2332de20d7c5dc4e1a6077a6421056d975808 SHA512 54595a71db4d7684071c6496c3e92fe8c9de0a29832cc85901046f2627bd453cf0760b9857e73a91e87edfddc80d384627dc5c2cb7f3bc12ea5737eb5afa4f3b
-DIST mercury-20.06.1-gentoo-patchset-0.tar.gz 4426 BLAKE2B df6f1a3b52b1f57f502621abba175a55342ae88ecbbe8e37d22b89a7514e0dea14299c87fb1dd47866c5fc89bbb2746a92de8dcf037c1a9d5d2ba4e2e9b8c828 SHA512 c26c209a2fc2380793373785c7a8290ea336c38fe1c243df5c71791e2d1f8b6f8d4a9452a9139181aeb0422cd538c5e6ffe40332ea5b2635cab3324dc4dc320b
-DIST mercury-22.01-gentoo-patchset-0.tar.gz 4147 BLAKE2B d59f58cb8870ee3ba636f62c1df7ab54d45d23e92626e1a18717e2ef7511c8a14a63c7d9bbfbeb8ec78841f6a05311f2431c5488df9996dae1ab71ce39c99a55 SHA512 a38d524e900b1771a12921618f785436ebca6029d94c9bd7a3115682b900d688d4cab3e3167a7b110f2fc4f5e9d09c1f24dffe9e39222efd20bb17782829b4a8
DIST mercury-22.01.1-gentoo-patchset-2.tar.gz 4975 BLAKE2B 73dfe5688f7f2c44ee236e3b9fd38811afecc7f8f4dd8f0694c2c3f27ce20a74aade3678bb3a16f7bcfc1fc8b07e518a5954802e410a3f566c00df7898800675 SHA512 16319d2e78af5cb73f67555c1498b277e8c6435cfe4e62fc87817cf06f04deadfad6f8264a5270100aaf6985866b879e9b7c69d3c1839c25d36ca2506bbabd72
-DIST mercury-srcdist-20.06.1.tar.gz 47796261 BLAKE2B f282c6edb78e9090eb451585c65c9214927b94eaa5fcdf6f674aef6beb62eb65179f998bcc2e56c3c93b73dd1dc94973084eb8363bc05e334384096c9520d478 SHA512 94e901e5d3db39e3342bf2d6a2a74556a7b18b295c7e02669b487a81d41c72e572046ce1133d670ca6c1b8e246dd277439087efe8fb99b979a73555a101aa9a8
-DIST mercury-srcdist-20.06.tar.gz 47768559 BLAKE2B f242aa2ef7da53aa2dfa054e4fee8646434d276f0748b014e33ea52d22f2a8a37e6fecaa20617f4943c4c1e7d8c179ed0603a344fde2dd58da98b2bacadf1a71 SHA512 b76bd22d8eb16242c68b614ff122ed7ee7535efef6c0ceb8cc798fee4c550bc41b6faff2135cea43b24c652b654bb35ae049656585d8e7bf3a1122d07cb1ecf4
DIST mercury-srcdist-22.01.1.tar.gz 48956249 BLAKE2B 0f5a7662327f27c27a4d9e421f71afa58920f6232093452781124817ce5c34d1953a80a08b75e95101a7e2e88159b7d4ead08d25c67a99abcb908a9582af2bab SHA512 5fa49640307233ea0f641488e5ea526385e52833007a31469e083711b63925ca7568d7ad6e09301ddf7816384a080546bc4cf46b1422f974e008917d1aa4f37a
-DIST mercury-srcdist-22.01.tar.gz 48960609 BLAKE2B 4ac45251bc098c1465f4bc418501db152bfcf36a2e04bb9153a44c44ff2dff300545103c29551818e773728c5a61947c019997fcc2cb64900e538d5ef64c1b39 SHA512 35b3b1e9fd85062edea5263b304bfc965382d04353e5548d59211519ee222bb6a8e8c95cb03faa089062e39c90b2d1c4af7ca0d9eabbf3bb44872d461e10ff2d
diff --git a/dev-lang/mercury/mercury-20.06-r1.ebuild b/dev-lang/mercury/mercury-20.06-r1.ebuild
deleted file mode 100644
index d2f14d41fd07..000000000000
--- a/dev-lang/mercury/mercury-20.06-r1.ebuild
+++ /dev/null
@@ -1,207 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools elisp-common flag-o-matic java-pkg-opt-2 multilib vcs-clean xdg-utils
-
-PATCHSET_VER="3"
-MY_P=${PN}-srcdist-${PV}
-
-DESCRIPTION="Mercury is a modern general-purpose logic/functional programming language"
-HOMEPAGE="https://www.mercurylang.org/index.html"
-SRC_URI="https://dl.mercurylang.org/release-20.06/${MY_P}.tar.gz
- https://dev.gentoo.org/~keri/distfiles/mercury/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-IUSE="debug doc emacs erlang examples java mono profile readline threads trail"
-
-DEPEND="net-libs/libnsl:0=
- readline? ( sys-libs/readline:= )
- erlang? ( dev-lang/erlang )
- java? ( >=virtual/jdk-1.8:* )
- mono? ( dev-lang/mono )
- doc? ( sys-apps/texinfo )"
-
-RDEPEND="${DEPEND}
- emacs? ( >=app-editors/emacs-23.1:* )"
-
-S="${WORKDIR}"/${MY_P}
-
-SITEFILE=50${PN}-gentoo.el
-
-src_prepare() {
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- eapply "${WORKDIR}"/${PV}
- fi
- eapply_user
-
- AT_M4DIR=m4 eautoreconf
-
- xdg_environment_reset
-}
-
-src_configure() {
- strip-flags
-
- local myconf
- myconf="--libdir=/usr/$(get_libdir) \
- $(use_enable mono csharp-grade) \
- $(use_enable erlang erlang-grade) \
- $(use_enable java java-grade) \
- $(use_enable debug debug-grades) \
- $(use_enable profile prof-grades) \
- $(use_enable threads par-grades) \
- $(use_enable trail trail-grades) \
- $(use_with readline)"
-
- econf ${myconf}
-}
-
-src_compile() {
- # Prepare mmake flags
- echo "EXTRA_CFLAGS = ${CFLAGS}" >> Mmake.params
- echo "EXTRA_LDFLAGS = ${LDFLAGS}" >> Mmake.params
- echo "EXTRA_LD_LIBFLAGS = ${LDFLAGS}" >> Mmake.params
- echo "EXTRA_MLFLAGS = --no-strip" >> Mmake.params
-
- if use trail; then
- echo "CFLAGS-int = -O0" >> Mmake.params
- echo "CFLAGS-uint = -O0" >> Mmake.params
- fi
-
- echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libgc.so" >> boehm_gc/Mmake.boehm_gc.params
- echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_rt.so" >> runtime/Mmake.runtime.params
- echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_std.so" >> library/Mmake.library.params
-
- # Build Mercury using bootstrap grade
- emake \
- PARALLEL="'${MAKEOPTS}'" \
- TEXI2DVI="" PDFTEX=""
-
- # We can now patch .m Mercury compiler files since we
- # have just built mercury_compiler.
- if [[ -d "${WORKDIR}"/${PV}-mmc ]] ; then
- eapply "${WORKDIR}"/${PV}-mmc
- fi
-
- # Rebuild Mercury compiler using the just built mercury_compiler
- emake \
- PARALLEL="'${MAKEOPTS}'" \
- MERCURY_COMPILER="${S}"/compiler/mercury_compile \
- TEXI2DVI="" PDFTEX=""
-
- # The default Mercury grade may not be the same as the bootstrap
- # grade. Since src_test() is run before src_install() we compile
- # the default grade now
- emake \
- PARALLEL="'${MAKEOPTS}'" \
- MERCURY_COMPILER="${S}"/compiler/mercury_compile \
- TEXI2DVI="" PDFTEX="" \
- default_grade
-}
-
-src_test() {
- TEST_GRADE=$(scripts/ml --print-grade)
- if [ -d "${S}"/install_grade_dir.${TEST_GRADE} ] ; then
- TWS="${S}"/install_grade_dir.${TEST_GRADE}
- cp runtime/mer_rt.init "${TWS}"/runtime/
- cp mdbcomp/mer_mdbcomp.init "${TWS}"/mdbcomp/
- cp browser/mer_browser.init "${TWS}"/browser/
- else
- TWS="${S}"
- fi
-
- cd "${S}"/tests || die
- sed -e "s:@WORKSPACE@:${TWS}:" \
- < WS_FLAGS.ws \
- > WS_FLAGS \
- || die "sed WORKSPACE failed"
- sed -e "s:@WORKSPACE@:${TWS}:" \
- < .mgnuc_copts.ws \
- > .mgnuc_copts \
- || die "sed WORKSPACE failed"
- find . -mindepth 1 -type d -exec cp .mgnuc_opts {} \;
- find . -mindepth 1 -type d -exec cp .mgnuc_copts {} \;
-
- # Mercury tests must be run in C locale since Mercury output is
- # compared to hard-coded warnings/errors
- LC_ALL="C" \
- PATH="${TWS}"/scripts:"${TWS}"/util:"${S}"/slice:"${PATH}" \
- TERM="" \
- WORKSPACE="${TWS}" \
- WORKSPACE_FLAGS=yes \
- MERCURY_COMPILER="${TWS}"/compiler/mercury_compile \
- MMAKE_DIR="${TWS}"/scripts \
- MERCURY_SUPPRESS_STACK_TRACE=yes \
- GRADE=${TEST_GRADE} \
- mmake || die "mmake test failed"
-}
-
-src_install() {
- emake \
- PARALLEL="'${MAKEOPTS}'" \
- MERCURY_COMPILER="${S}"/compiler/mercury_compile \
- TEXI2DVI="" PDFTEX="" \
- DESTDIR="${D}" \
- INSTALL_ELISP_DIR="${D}/${SITELISP}"/${PN} \
- install
-
- if use java; then
- keepdir /usr/$(get_libdir)/mercury/modules/java
- fi
-
- if use mono; then
- keepdir /usr/$(get_libdir)/mercury/modules/csharp
- fi
-
- if use emacs; then
- elisp-site-file-install "${FILESDIR}/${SITEFILE}" \
- || die "elisp-site-file-install failed"
- fi
-
- dodoc \
- BUGS HISTORY LIMITATIONS NEWS README README.Linux \
- README.Linux-Alpha README.Linux-m68k README.Linux-PPC \
- RELEASE_NOTES VERSION || die
-
- if use erlang; then
- dodoc README.Erlang
- fi
-
- if use java; then
- dodoc README.Java
- fi
-
- if use mono; then
- dodoc README.CSharp
- fi
-
- if use examples; then
- docinto samples
- dodoc samples/{*.m,README,Mmakefile}
- dodoc -r samples/c_interface \
- samples/diff \
- samples/muz \
- samples/rot13 \
- samples/solutions \
- samples/solver_types
-
- if use java; then
- dodoc -r samples/java_interface
- fi
-
- ecvs_clean "${D}"/usr/share/doc/${PF}/samples
- fi
-}
-
-pkg_postinst() {
- use emacs && elisp-site-regen
-}
-
-pkg_postrm() {
- use emacs && elisp-site-regen
-}
diff --git a/dev-lang/mercury/mercury-20.06.1.ebuild b/dev-lang/mercury/mercury-20.06.1.ebuild
deleted file mode 100644
index ece3d848fee3..000000000000
--- a/dev-lang/mercury/mercury-20.06.1.ebuild
+++ /dev/null
@@ -1,207 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools elisp-common flag-o-matic java-pkg-opt-2 multilib vcs-clean xdg-utils
-
-PATCHSET_VER="0"
-MY_P=${PN}-srcdist-${PV}
-
-DESCRIPTION="Mercury is a modern general-purpose logic/functional programming language"
-HOMEPAGE="https://www.mercurylang.org/index.html"
-SRC_URI="https://dl.mercurylang.org/release-20.06/${MY_P}.tar.gz
- https://dev.gentoo.org/~keri/distfiles/mercury/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-IUSE="debug doc emacs erlang examples java mono profile readline threads trail"
-
-DEPEND="net-libs/libnsl:0=
- readline? ( sys-libs/readline:= )
- erlang? ( dev-lang/erlang )
- java? ( >=virtual/jdk-1.8:* )
- mono? ( dev-lang/mono )
- doc? ( sys-apps/texinfo )"
-
-RDEPEND="${DEPEND}
- emacs? ( >=app-editors/emacs-23.1:* )"
-
-S="${WORKDIR}"/${MY_P}
-
-SITEFILE=50${PN}-gentoo.el
-
-src_prepare() {
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- eapply "${WORKDIR}"/${PV}
- fi
- eapply_user
-
- AT_M4DIR=m4 eautoreconf
-
- xdg_environment_reset
-}
-
-src_configure() {
- strip-flags
-
- local myconf
- myconf="--libdir=/usr/$(get_libdir) \
- $(use_enable mono csharp-grade) \
- $(use_enable erlang erlang-grade) \
- $(use_enable java java-grade) \
- $(use_enable debug debug-grades) \
- $(use_enable profile prof-grades) \
- $(use_enable threads par-grades) \
- $(use_enable trail trail-grades) \
- $(use_with readline)"
-
- econf ${myconf}
-}
-
-src_compile() {
- # Prepare mmake flags
- echo "EXTRA_CFLAGS = ${CFLAGS} -Wno-error" >> Mmake.params
- echo "EXTRA_LDFLAGS = ${LDFLAGS}" >> Mmake.params
- echo "EXTRA_LD_LIBFLAGS = ${LDFLAGS}" >> Mmake.params
- echo "EXTRA_MLFLAGS = --no-strip" >> Mmake.params
-
- if use trail; then
- echo "CFLAGS-int = -O0" >> Mmake.params
- echo "CFLAGS-uint = -O0" >> Mmake.params
- fi
-
- echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libgc.so" >> boehm_gc/Mmake.boehm_gc.params
- echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_rt.so" >> runtime/Mmake.runtime.params
- echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_std.so" >> library/Mmake.library.params
-
- # Build Mercury using bootstrap grade
- emake \
- PARALLEL="'${MAKEOPTS}'" \
- TEXI2DVI="" PDFTEX=""
-
- # We can now patch .m Mercury compiler files since we
- # have just built mercury_compiler.
- if [[ -d "${WORKDIR}"/${PV}-mmc ]] ; then
- eapply "${WORKDIR}"/${PV}-mmc
- fi
-
- # Rebuild Mercury compiler using the just built mercury_compiler
- emake \
- PARALLEL="'${MAKEOPTS}'" \
- MERCURY_COMPILER="${S}"/compiler/mercury_compile \
- TEXI2DVI="" PDFTEX=""
-
- # The default Mercury grade may not be the same as the bootstrap
- # grade. Since src_test() is run before src_install() we compile
- # the default grade now
- emake \
- PARALLEL="'${MAKEOPTS}'" \
- MERCURY_COMPILER="${S}"/compiler/mercury_compile \
- TEXI2DVI="" PDFTEX="" \
- default_grade
-}
-
-src_test() {
- TEST_GRADE=$(scripts/ml --print-grade)
- if [ -d "${S}"/install_grade_dir.${TEST_GRADE} ] ; then
- TWS="${S}"/install_grade_dir.${TEST_GRADE}
- cp runtime/mer_rt.init "${TWS}"/runtime/
- cp mdbcomp/mer_mdbcomp.init "${TWS}"/mdbcomp/
- cp browser/mer_browser.init "${TWS}"/browser/
- else
- TWS="${S}"
- fi
-
- cd "${S}"/tests || die
- sed -e "s:@WORKSPACE@:${TWS}:" \
- < WS_FLAGS.ws \
- > WS_FLAGS \
- || die "sed WORKSPACE failed"
- sed -e "s:@WORKSPACE@:${TWS}:" \
- < .mgnuc_copts.ws \
- > .mgnuc_copts \
- || die "sed WORKSPACE failed"
- find . -mindepth 1 -type d -exec cp .mgnuc_opts {} \;
- find . -mindepth 1 -type d -exec cp .mgnuc_copts {} \;
-
- # Mercury tests must be run in C locale since Mercury output is
- # compared to hard-coded warnings/errors
- LC_ALL="C" \
- PATH="${TWS}"/scripts:"${TWS}"/util:"${S}"/slice:"${PATH}" \
- TERM="" \
- WORKSPACE="${TWS}" \
- WORKSPACE_FLAGS=yes \
- MERCURY_COMPILER="${TWS}"/compiler/mercury_compile \
- MMAKE_DIR="${TWS}"/scripts \
- MERCURY_SUPPRESS_STACK_TRACE=yes \
- GRADE=${TEST_GRADE} \
- mmake || die "mmake test failed"
-}
-
-src_install() {
- emake \
- PARALLEL="'${MAKEOPTS}'" \
- MERCURY_COMPILER="${S}"/compiler/mercury_compile \
- TEXI2DVI="" PDFTEX="" \
- DESTDIR="${D}" \
- INSTALL_ELISP_DIR="${D}/${SITELISP}"/${PN} \
- install
-
- if use java; then
- keepdir /usr/$(get_libdir)/mercury/modules/java
- fi
-
- if use mono; then
- keepdir /usr/$(get_libdir)/mercury/modules/csharp
- fi
-
- if use emacs; then
- elisp-site-file-install "${FILESDIR}/${SITEFILE}" \
- || die "elisp-site-file-install failed"
- fi
-
- dodoc \
- BUGS HISTORY LIMITATIONS NEWS README README.Linux \
- README.Linux-Alpha README.Linux-m68k README.Linux-PPC \
- RELEASE_NOTES VERSION || die
-
- if use erlang; then
- dodoc README.Erlang
- fi
-
- if use java; then
- dodoc README.Java
- fi
-
- if use mono; then
- dodoc README.CSharp
- fi
-
- if use examples; then
- docinto samples
- dodoc samples/{*.m,README,Mmakefile}
- dodoc -r samples/c_interface \
- samples/diff \
- samples/muz \
- samples/rot13 \
- samples/solutions \
- samples/solver_types
-
- if use java; then
- dodoc -r samples/java_interface
- fi
-
- ecvs_clean "${D}"/usr/share/doc/${PF}/samples
- fi
-}
-
-pkg_postinst() {
- use emacs && elisp-site-regen
-}
-
-pkg_postrm() {
- use emacs && elisp-site-regen
-}
diff --git a/dev-lang/mercury/mercury-22.01.ebuild b/dev-lang/mercury/mercury-22.01.ebuild
deleted file mode 100644
index 3524e6009a37..000000000000
--- a/dev-lang/mercury/mercury-22.01.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools elisp-common flag-o-matic java-pkg-opt-2 multilib vcs-clean xdg-utils
-
-PATCHSET_VER="0"
-MY_P=${PN}-srcdist-${PV}
-
-DESCRIPTION="Mercury is a modern general-purpose logic/functional programming language"
-HOMEPAGE="https://www.mercurylang.org/index.html"
-SRC_URI="https://dl.mercurylang.org/release/${MY_P}.tar.gz
- https://dev.gentoo.org/~keri/distfiles/mercury/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-IUSE="debug doc emacs examples java mono profile readline threads trail"
-
-DEPEND="net-libs/libnsl:0=
- readline? ( sys-libs/readline:= )
- java? ( >=virtual/jdk-1.8:* )
- mono? ( dev-lang/mono )
- doc? ( sys-apps/texinfo )"
-
-RDEPEND="${DEPEND}
- emacs? ( >=app-editors/emacs-23.1:* )"
-
-S="${WORKDIR}"/${MY_P}
-
-SITEFILE=50${PN}-gentoo.el
-
-src_prepare() {
- if [[ -d "${WORKDIR}"/${PV} ]] ; then
- eapply "${WORKDIR}"/${PV}
- fi
- eapply_user
-
- AT_M4DIR=m4 eautoreconf
-
- xdg_environment_reset
-}
-
-src_configure() {
- strip-flags
-
- local myconf
- myconf="--libdir=/usr/$(get_libdir) \
- $(use_enable mono csharp-grade) \
- $(use_enable java java-grade) \
- $(use_enable debug debug-grades) \
- $(use_enable profile prof-grades) \
- $(use_enable threads par-grades) \
- $(use_enable trail trail-grades) \
- $(use_with readline)"
-
- econf ${myconf}
-}
-
-src_compile() {
- # Prepare mmake flags
- echo "EXTRA_CFLAGS = ${CFLAGS} -Wno-error" >> Mmake.params
- echo "EXTRA_LDFLAGS = ${LDFLAGS}" >> Mmake.params
- echo "EXTRA_LD_LIBFLAGS = ${LDFLAGS}" >> Mmake.params
- echo "EXTRA_MLFLAGS = --no-strip" >> Mmake.params
-
- if use trail; then
- echo "CFLAGS-int = -O0" >> Mmake.params
- echo "CFLAGS-uint = -O0" >> Mmake.params
- fi
-
- echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libgc.so" >> boehm_gc/Mmake.boehm_gc.params
- echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_rt.so" >> runtime/Mmake.runtime.params
- echo "EXTRA_LD_LIBFLAGS += -Wl,-soname=libmer_std.so" >> library/Mmake.library.params
-
- # Build Mercury using bootstrap grade
- emake \
- PARALLEL="'${MAKEOPTS}'" \
- TEXI2DVI="" PDFTEX=""
-
- # We can now patch .m Mercury compiler files since we
- # have just built mercury_compiler.
- if [[ -d "${WORKDIR}"/${PV}-mmc ]] ; then
- eapply "${WORKDIR}"/${PV}-mmc
- fi
-
- # Rebuild Mercury compiler using the just built mercury_compiler
- emake \
- PARALLEL="'${MAKEOPTS}'" \
- MERCURY_COMPILER="${S}"/compiler/mercury_compile \
- TEXI2DVI="" PDFTEX=""
-
- # The default Mercury grade may not be the same as the bootstrap
- # grade. Since src_test() is run before src_install() we compile
- # the default grade now
- emake \
- PARALLEL="'${MAKEOPTS}'" \
- MERCURY_COMPILER="${S}"/compiler/mercury_compile \
- TEXI2DVI="" PDFTEX="" \
- default_grade
-}
-
-src_test() {
- TEST_GRADE=$(scripts/ml --print-grade)
- if [ -d "${S}"/install_grade_dir.${TEST_GRADE} ] ; then
- TWS="${S}"/install_grade_dir.${TEST_GRADE}
- cp runtime/mer_rt.init "${TWS}"/runtime/
- cp mdbcomp/mer_mdbcomp.init "${TWS}"/mdbcomp/
- cp browser/mer_browser.init "${TWS}"/browser/
- else
- TWS="${S}"
- fi
-
- cd "${S}"/tests || die
- sed -e "s:@WORKSPACE@:${TWS}:" \
- < WS_FLAGS.ws \
- > WS_FLAGS \
- || die "sed WORKSPACE failed"
- sed -e "s:@WORKSPACE@:${TWS}:" \
- < .mgnuc_copts.ws \
- > .mgnuc_copts \
- || die "sed WORKSPACE failed"
- find . -mindepth 1 -type d -exec cp .mgnuc_opts {} \;
- find . -mindepth 1 -type d -exec cp .mgnuc_copts {} \;
-
- # Mercury tests must be run in C locale since Mercury output is
- # compared to hard-coded warnings/errors
- LC_ALL="C" \
- PATH="${TWS}"/scripts:"${TWS}"/util:"${S}"/slice:"${PATH}" \
- TERM="" \
- WORKSPACE="${TWS}" \
- WORKSPACE_FLAGS=yes \
- MERCURY_COMPILER="${TWS}"/compiler/mercury_compile \
- MMAKE_DIR="${TWS}"/scripts \
- MERCURY_SUPPRESS_STACK_TRACE=yes \
- GRADE=${TEST_GRADE} \
- mmake || die "mmake test failed"
-}
-
-src_install() {
- emake \
- PARALLEL="'${MAKEOPTS}'" \
- MERCURY_COMPILER="${S}"/compiler/mercury_compile \
- TEXI2DVI="" PDFTEX="" \
- DESTDIR="${D}" \
- INSTALL_ELISP_DIR="${D}/${SITELISP}"/${PN} \
- install
-
- if use java; then
- keepdir /usr/$(get_libdir)/mercury/modules/java
- fi
-
- if use mono; then
- keepdir /usr/$(get_libdir)/mercury/modules/csharp
- fi
-
- if use emacs; then
- elisp-site-file-install "${FILESDIR}/${SITEFILE}" \
- || die "elisp-site-file-install failed"
- fi
-
- dodoc \
- BUGS HISTORY LIMITATIONS.md NEWS README README.md \
- README.Linux README.Linux-m68k README.Linux-PPC \
- RELEASE_NOTES VERSION || die
-
- if use java; then
- dodoc README.Java
- fi
-
- if use mono; then
- dodoc README.CSharp
- fi
-
- if use examples; then
- docinto samples
- dodoc samples/{*.m,README,Mmakefile}
- dodoc -r samples/c_interface \
- samples/diff \
- samples/muz \
- samples/rot13 \
- samples/solutions \
- samples/solver_types
-
- if use java; then
- dodoc -r samples/java_interface
- fi
-
- ecvs_clean "${D}"/usr/share/doc/${PF}/samples
- fi
-}
-
-pkg_postinst() {
- use emacs && elisp-site-regen
-}
-
-pkg_postrm() {
- use emacs && elisp-site-regen
-}
diff --git a/dev-lang/mercury/metadata.xml b/dev-lang/mercury/metadata.xml
index 99628dd871a5..5061e4f27e59 100644
--- a/dev-lang/mercury/metadata.xml
+++ b/dev-lang/mercury/metadata.xml
@@ -3,7 +3,6 @@
<pkgmetadata>
<!-- maintainer-needed -->
<use>
- <flag name="erlang">Support Mercury Erlang grade</flag>
<flag name="trail">Support Mercury trail grades</flag>
</use>
</pkgmetadata>
diff --git a/dev-lang/moarvm/Manifest b/dev-lang/moarvm/Manifest
index 8b357c20c45e..35d1166fe9c8 100644
--- a/dev-lang/moarvm/Manifest
+++ b/dev-lang/moarvm/Manifest
@@ -1,2 +1,2 @@
-DIST MoarVM-2023.12.tar.gz 14942980 BLAKE2B f42caa33cadf2b878c1d0de0994c32d18b81b6e56c684a7ccee54c6abc3ff6abaa4f1e5420f2320aca185d29b2fbf02ec81abaf3eb5e334a5c903c3475d55db7 SHA512 9e756e8248cd8fd02efc3d14cd5e0a32cfbb7050a96d94d011009aeb9ec1ca5e9646a3c25b8741702b88abf3faf6aae43df43ca719e1ab17478c6d1984720f59
DIST MoarVM-2024.02.tar.gz 14951164 BLAKE2B 9416cea0b454b29c6d5662090428d790ea437bca1814a084a2c1478268c0eb74764205bca892b5e8de820b2201df154b92503e6243eb4a927a822374a5c09f86 SHA512 e629edb3fb365fd4cd988d9c08d46ecaf002156452e22c3a0c716641eeadb5b7f0434de4e2ec3ce9c8dc354280dc419d716382c160d400ba3970decffc996ed8
+DIST MoarVM-2024.04.tar.gz 14953770 BLAKE2B d6ea26bb98a1a6b2c3e6f0184a70c670830eb0872238779e9ce763f8c798bce803db4c5ba488c3f18bf5cf65a8d529fea9268a270458a33fff21ce10c74ee206 SHA512 874b22347fce3018884733ef734db0f09faae89191c2d37d7a15a897f8ce88ed9fbbd69768267492e6d1f019035ad224eef844b75e0fc1634cffd4b059314af1
diff --git a/dev-lang/moarvm/moarvm-2023.12.ebuild b/dev-lang/moarvm/moarvm-2024.04.ebuild
index e437c851b138..e437c851b138 100644
--- a/dev-lang/moarvm/moarvm-2023.12.ebuild
+++ b/dev-lang/moarvm/moarvm-2024.04.ebuild
diff --git a/dev-lang/mond/Manifest b/dev-lang/mond/Manifest
index 8bd336d4409a..4afb58e2c6ca 100644
--- a/dev-lang/mond/Manifest
+++ b/dev-lang/mond/Manifest
@@ -35,6 +35,7 @@ DIST microsoft.sourcelink.github.8.0.0.nupkg 330089 BLAKE2B 5c9683ce4b55e6fad9b3
DIST microsoft.testplatform.objectmodel.17.8.0.nupkg 1492114 BLAKE2B 32a3a7f4e4cb9af1d330fcb2588ee9602414760eb4f2bda49888372b3ed64e8c47347dbdeda11259134e37b717ad5c23b06ffeda9a1a1772e1afe299429e828d SHA512 17119c472fd87ff721677f92a801693eab53a1897582150c26a60429c99eb1764628e7ba895b40e3b10b9edc00f803b18316a6fdc906ffe54dbd2d04ac63db33
DIST microsoft.testplatform.testhost.17.8.0.nupkg 2806274 BLAKE2B dff54d1c59a6873793bbe2d6fc9ed75c2d610a8dc41f4f9349228b690db3beb7845660c7d90a5d2588443c13aff4d97b6e0a1df58e88a398b3631a344609060c SHA512 39fb1549fd23fc2c7b4f5525043fc1152b8c62cc813a88c9701f33a666041c6690dadd455899d247fef5e6df372d17f081d6098839086007b2c10618e187ac7a
DIST mond-0.10.0.tar.gz 612465 BLAKE2B b802d7e97fbaf2fd8a7350d19623fe5e8319e0e36e54d98f01c8f49b2a1900003b4c144420faa5a2bd0718474cc93f7e2912ac4afdfe6461b300ce9f9386a0ec SHA512 2e16b4ed4cfa1009b21631cee1b722cf80ff2a3e7c17f53cd36fbc18bdf683e958b25fb60b701be1a164f69eb1d0689c2cb2ff0bfa2082446d8abfd60b23b1de
+DIST mond-0.10.2.tar.gz 612942 BLAKE2B 70be09334e89234cb2ac889c48c0cb6b04feecace1fad6ab0f93a448b49e289e12e49167b2075cad4404bcca0ec9ab68987d121376383b5a2d35da7910b3327d SHA512 0014fa673c0b213fd360642ec3008635ee6dae560da72c0e656e6c90bc48d1c45e15a2d2ebd34e63f5593fb708adb3b8739ad2ef3fe46d684b0f6546faa116d9
DIST netstandard.library.2.0.0.nupkg 3143842 BLAKE2B 7e3fc865e7893fb531b21e2ca791b788af01481316e49a79c4676050c2b8ad413fd8a4ef9890557582ec8b9741c8aa01b080b8d2caa16e02bfff2a7b38777989 SHA512 e3d64072b9cd9f9e86209c06a22688ecda7070427c9a35327d2a9560824c0e1381ccf7bc1d21d2ef8b301761f4bfc7f38fba712df7188d2f4fe4f748aac4d0c7
DIST netstandard.library.2.0.3.nupkg 3146139 BLAKE2B 311e5367398f76c74e78930bc2cd39e450a86bd8626311ded8d58bd84c94a8a84db3c11b2bc10f3eeba20a9d081fe7827981f702ad746b49ae3108c949ba1022 SHA512 e78f0cea69c14895b1b089644077dbce8631a626055d96522f4d29e061d8bfc3e48aa1419e74faf265b998612c03f721f5f0cef4690f824150a5689764dee601
DIST newtonsoft.json.13.0.1.nupkg 2065787 BLAKE2B 000c38ce26a2a00bb25a9c1d6fb069ada521ff089bb624a5c1255b25767c10616cc51821524e7bc3d8b45eb8f8ee54c97454db1db9ae5e5c78eb6300a99f979d SHA512 83731b662eaf05379a23f8446ef47bbc111349dd4358b7bd8b51383fe9cf637e2fe62f78cea52a0d7bdd582dc6fbbb5837d4a7b1d53dcf37a0ae7473e21ee7b1
diff --git a/dev-lang/mond/mond-0.10.2.ebuild b/dev-lang/mond/mond-0.10.2.ebuild
new file mode 100644
index 000000000000..339abf525b27
--- /dev/null
+++ b/dev-lang/mond/mond-0.10.2.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DOTNET_PKG_COMPAT=8.0
+NUGETS="
+fleck@1.2.0
+microsoft.aspnetcore.authorization@8.0.0
+microsoft.aspnetcore.components.analyzers@8.0.0
+microsoft.aspnetcore.components.forms@8.0.0
+microsoft.aspnetcore.components.web@8.0.0
+microsoft.aspnetcore.components.webassembly.devserver@8.0.0
+microsoft.aspnetcore.components.webassembly@8.0.0
+microsoft.aspnetcore.components@8.0.0
+microsoft.aspnetcore.metadata@8.0.0
+microsoft.build.tasks.git@8.0.0
+microsoft.codeanalysis.analyzers@3.3.4
+microsoft.codeanalysis.common@4.8.0
+microsoft.codeanalysis.csharp@4.8.0
+microsoft.codecoverage@17.8.0
+microsoft.extensions.configuration.abstractions@8.0.0
+microsoft.extensions.configuration.binder@8.0.0
+microsoft.extensions.configuration.fileextensions@8.0.0
+microsoft.extensions.configuration.json@8.0.0
+microsoft.extensions.configuration@8.0.0
+microsoft.extensions.dependencyinjection.abstractions@8.0.0
+microsoft.extensions.dependencyinjection@8.0.0
+microsoft.extensions.fileproviders.abstractions@8.0.0
+microsoft.extensions.fileproviders.physical@8.0.0
+microsoft.extensions.filesystemglobbing@8.0.0
+microsoft.extensions.logging.abstractions@8.0.0
+microsoft.extensions.logging@8.0.0
+microsoft.extensions.options@8.0.0
+microsoft.extensions.primitives@8.0.0
+microsoft.jsinterop.webassembly@8.0.0
+microsoft.jsinterop@8.0.0
+microsoft.net.test.sdk@17.8.0
+microsoft.netcore.platforms@1.1.0
+microsoft.sourcelink.common@8.0.0
+microsoft.sourcelink.github@8.0.0
+microsoft.testplatform.objectmodel@17.8.0
+microsoft.testplatform.testhost@17.8.0
+netstandard.library@2.0.0
+netstandard.library@2.0.3
+newtonsoft.json@13.0.1
+nuget.frameworks@6.5.0
+nunit3testadapter@4.5.0
+nunit@3.14.0
+system.buffers@4.5.1
+system.collections.immutable@7.0.0
+system.io.pipelines@8.0.0
+system.memory@4.5.5
+system.numerics.vectors@4.4.0
+system.reflection.metadata@1.6.0
+system.reflection.metadata@7.0.0
+system.runtime.compilerservices.unsafe@6.0.0
+system.text.encoding.codepages@7.0.0
+system.text.encodings.web@8.0.0
+system.text.json@8.0.0
+system.threading.tasks.extensions@4.5.4
+"
+
+inherit dotnet-pkg
+
+DESCRIPTION="Mond is a scripting language for .NET Core"
+HOMEPAGE="https://mond.rohan.dev/
+ https://github.com/Rohansi/Mond/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/Rohansi/${PN^}.git"
+else
+ SRC_URI="https://github.com/Rohansi/${PN^}/archive/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/${P^}"
+
+ KEYWORDS="~amd64"
+fi
+
+SRC_URI+=" ${NUGET_URIS} "
+
+LICENSE="MIT"
+SLOT="0"
+
+DOTNET_PKG_BAD_PROJECTS=( TryMond/TryMond.csproj )
+DOTNET_PKG_PROJECTS=( Mond.Repl/Mond.Repl.csproj )
+
+DOCS=( README.md Examples )
+
+src_unpack() {
+ dotnet-pkg_src_unpack
+
+ if [[ -n "${EGIT_REPO_URI}" ]] ; then
+ git-r3_src_unpack
+ fi
+}
+
+src_install() {
+ dotnet-pkg-base_install
+ dotnet-pkg-base_dolauncher "/usr/share/${P}/Mond.Repl" "${PN}"
+
+ docompress -x "/usr/share/doc/${PF}/Examples"
+ einstalldocs
+}
diff --git a/dev-lang/nim/nim-2.0.4.ebuild b/dev-lang/nim/nim-2.0.4.ebuild
index d91d6fed17c5..b1eecd7b7cd4 100644
--- a/dev-lang/nim/nim-2.0.4.ebuild
+++ b/dev-lang/nim/nim-2.0.4.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/nqp/Manifest b/dev-lang/nqp/Manifest
index c34aafc73a36..9ca0c13fb3f5 100644
--- a/dev-lang/nqp/Manifest
+++ b/dev-lang/nqp/Manifest
@@ -1,2 +1,2 @@
-DIST nqp-2023.12.tar.gz 6023121 BLAKE2B 2f5f519d05ca68a119e544299418d7b9c5c17f4cd29d63dda80f0ae57a861cbda9ecc8a1fa18807c78cce86c7cce67a107fbaeb83d47bb2ba0bbcd8070413950 SHA512 0f2f8d74e9b99288d3354c39c8faaaf674a570b36c1ce782f9b0944d348909dbdddb9eba2b04f01a8c8bdaba7190cafddc9459f07f16986bcf37ab4729e994a2
DIST nqp-2024.02.tar.gz 6041352 BLAKE2B cdf1863f80d3a2d64fea3d6b783c91ad3fec44866d0b5a1967e0ac682ef3942a3361c4a4f355a11af938846ef47404df4a5d39fe46ebfef121ab2118d1444e64 SHA512 4dd943920900f0b58385b0a1b7dcc732557a0215975868f322860ec204cbc43d081ce292beb4b2bce70863684d3ec1d981fb809c4558755e791dd7cb0208e05b
+DIST nqp-2024.04.tar.gz 9726771 BLAKE2B 5582aed194438bc57b862e6b1f14b8fdf1548c5e0048e69315e411913b049fec6df640b95bbd0df3e5b541554473fe207c81dbd083d477f12194c22d22119be3 SHA512 988518e5db2d7bdee6ed55bb337e640d091f404d6cc2b2687e9b542cc91ea755add415b40e8b3ac9ef501e150d2026867d0f1f1bfa32f1767e01ec30ae050dd0
diff --git a/dev-lang/nqp/nqp-2023.12.ebuild b/dev-lang/nqp/nqp-2024.04.ebuild
index efed9b5e0109..efed9b5e0109 100644
--- a/dev-lang/nqp/nqp-2023.12.ebuild
+++ b/dev-lang/nqp/nqp-2024.04.ebuild
diff --git a/dev-lang/ocaml/Manifest b/dev-lang/ocaml/Manifest
index b24d4629ee2c..b6476e6f2b79 100644
--- a/dev-lang/ocaml/Manifest
+++ b/dev-lang/ocaml/Manifest
@@ -5,6 +5,6 @@ DIST ocaml-4.10.2.tar.gz 4933135 BLAKE2B ec5e92adb23c28a254247182c79ab555fd82603
DIST ocaml-4.11.2.tar.gz 5075323 BLAKE2B bdc503d9a8d0e39dd11060febcd0287657b460e50ed81e55578a3e778af990ca5d4ef9011753eee4e1a144da33eb76c95b1672dc99b76e65a2e107eee472fe06 SHA512 03d8a9f6e130142c121ff2eb3d54f584f1e7c8475f066a5803bb0edd2fa172ca06a56a3ec548b225f5c8b12112d7a68511b1e16f3ade075b5f02610d4247bbb3
DIST ocaml-4.12.1.tar.gz 5181696 BLAKE2B 9d21438e09b1a9680eabb65f5c78d9fe84459592ef7bb797a1933e5383f7b6d5cefffa8cdc184abc102417f5dbc0fca8ef624c9b560f89eaff6537544b5b395f SHA512 e942e5cf5530804690ec45c40936ad2acbb60e11279fc676e0f04181fe1855f84ee5c3cb9c337fc5d01f6ee0e7b2251a6c04f7de56d99c20bb62026dff6c5671
DIST ocaml-4.13.1.tar.gz 5323203 BLAKE2B f1dcb1601ebfa2a37351e3a466a7ca601518c2da403b01aeb182738a54d5887523ab554d747d6591cb09b07b417865e20907f7877117b2d2d069ef6c9edc0fae SHA512 da3434177438c852da53c0fda7bc2519adcda6384d97d45e44137ed0fd384ffb3da61958a7b51296edb3f88f5a5310ca71b6862f6d756aaa4012d1f54e5955f6
-DIST ocaml-4.14.0.tar.gz 5494844 BLAKE2B f2f9142a95722c7fc5fda205ea6b951939f7d285963b8aa14dc157ac10202ef9d00c7590beabdc97ed83548d61e5ef28b60a360f1a492420a54f4e26dfbf89f0 SHA512 3c5e5b9f00bb109dd99b5f7b0078cf8663d4247e548f3e601d6b2a55582e04bb20f6de85005c4cf2f78ae9aaa449f5ca6f2bab2f6ce83eeb3aeb386e3f2fcc32
DIST ocaml-4.14.1.tar.gz 5498436 BLAKE2B 6113283ab0f7ac39ade1f35a02c203a6956f8f4efa4f174daf53483c1d874613195c2705ca02760f0ff4abd9b37c91f8dec59c010ac8ae8731790cdd6f429673 SHA512 6340e145c7d11a1ee9fa1699fc6a8a6785f14ff9c05dca708cf278194642ec9b7c562d744d8b38e5dab74b88fa3a5760035e214f5f8fab8b233a344b035db8fb
DIST ocaml-4.14.2.tar.gz 5505119 BLAKE2B 518c2a69ee32e1c141b574a9800a64efc445381eb2808985b5dbb9d5ec54228aa25042a1c410307c3556488ba12a751980396b0d9a01e60a1ea84ac5b52e6dd6 SHA512 61bfa7961aae02458210f10865a5703f7a50a9be2452379e820cf2dfac2c6037da553c31835145e50a776880bdeb2ec78cd7a3147d65f418e7b3e593534e8a04
+DIST ocaml-5.2.0.tar.gz 6047633 BLAKE2B 5d0a7d48d9ed9fcd2974237a93e30ffee20fc444b5ede296bd35cb3285909f8cf5a489ac1cdc75778ca6d45f8ff40a92939bfcfc42e218aeda0170b1ac0bfd49 SHA512 78115690186c13c1f2480e4812a9fe34cce2c28bf8a89d5c9810bca0391f930cecd9cee2b53daca8a32da1815628b33be68f3948f1ad03fa50b72b14e3ea84f2
diff --git a/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild b/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild
index 489cf0a32fef..d57b85a17ce1 100644
--- a/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild
+++ b/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild
@@ -1,13 +1,13 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit flag-o-matic
+DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
HOMEPAGE="https://ocaml.org/"
SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
-DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
LICENSE="QPL-1.0 LGPL-2"
SLOT="0/$(ver_cut 1-2)"
diff --git a/dev-lang/ocaml/ocaml-4.12.1.ebuild b/dev-lang/ocaml/ocaml-4.12.1.ebuild
index 9294aeacdc06..397ff3c8ab8d 100644
--- a/dev-lang/ocaml/ocaml-4.12.1.ebuild
+++ b/dev-lang/ocaml/ocaml-4.12.1.ebuild
@@ -1,13 +1,13 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit flag-o-matic
+DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
HOMEPAGE="https://ocaml.org/"
SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
-DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
LICENSE="QPL-1.0 LGPL-2"
SLOT="0/$(ver_cut 1-2)"
diff --git a/dev-lang/ocaml/ocaml-4.13.1.ebuild b/dev-lang/ocaml/ocaml-4.13.1.ebuild
index 73ab996ee176..385f7be2f182 100644
--- a/dev-lang/ocaml/ocaml-4.13.1.ebuild
+++ b/dev-lang/ocaml/ocaml-4.13.1.ebuild
@@ -1,13 +1,13 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit flag-o-matic
+DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
HOMEPAGE="https://ocaml.org/"
SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
-DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
LICENSE="QPL-1.0 LGPL-2"
SLOT="0/$(ver_cut 1-2)"
diff --git a/dev-lang/ocaml/ocaml-4.14.1.ebuild b/dev-lang/ocaml/ocaml-4.14.1.ebuild
index fe9b42d885eb..5ed03c0a3f13 100644
--- a/dev-lang/ocaml/ocaml-4.14.1.ebuild
+++ b/dev-lang/ocaml/ocaml-4.14.1.ebuild
@@ -1,13 +1,13 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic
+DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
HOMEPAGE="https://ocaml.org/"
SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
-DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
LICENSE="QPL-1.0 LGPL-2"
SLOT="0/${PV}"
diff --git a/dev-lang/ocaml/ocaml-4.14.2.ebuild b/dev-lang/ocaml/ocaml-4.14.2.ebuild
index f94e0f851126..bb61347421c2 100644
--- a/dev-lang/ocaml/ocaml-4.14.2.ebuild
+++ b/dev-lang/ocaml/ocaml-4.14.2.ebuild
@@ -79,6 +79,10 @@ src_test() {
}
src_install() {
+ # OCaml generates textrels on 32-bit arches
+ if use arm || use ppc || use x86 ; then
+ export QA_TEXTRELS='.*'
+ fi
default
dodir /usr/include
diff --git a/dev-lang/ocaml/ocaml-4.14.0-r1.ebuild b/dev-lang/ocaml/ocaml-5.2.0.ebuild
index 83dfc2f12fc2..dc8655e47ad7 100644
--- a/dev-lang/ocaml/ocaml-4.14.0-r1.ebuild
+++ b/dev-lang/ocaml/ocaml-5.2.0.ebuild
@@ -1,18 +1,18 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic
+DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
HOMEPAGE="https://ocaml.org/"
SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
-DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
LICENSE="QPL-1.0 LGPL-2"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ~ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
-IUSE="emacs flambda latex +ocamlopt xemacs"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="emacs flambda latex +ocamlopt test xemacs"
RDEPEND="sys-libs/binutils-libs:="
BDEPEND="${RDEPEND}
@@ -22,9 +22,7 @@ PDEPEND="emacs? ( app-emacs/ocaml-mode )
QA_FLAGS_IGNORED='/usr/lib.*/ocaml/bigarray.cmxs'
-PATCHES=(
- "${FILESDIR}"/${PN}-4.14.0-clang.patch
-)
+RESTRICT="!test? ( test )"
src_prepare() {
default
@@ -53,6 +51,7 @@ src_configure() {
--libdir="${EPREFIX}/usr/$(get_libdir)/ocaml"
--mandir="${EPREFIX}/usr/share/man"
--prefix="${EPREFIX}/usr"
+ $(use_enable test ocamltest) \
$(use_enable flambda)
)
@@ -83,6 +82,10 @@ src_test() {
}
src_install() {
+ # OCaml generates textrels on 32-bit arches
+ if use arm || use ppc || use x86 ; then
+ export QA_TEXTRELS='.*'
+ fi
default
dodir /usr/include
diff --git a/dev-lang/oorexx/oorexx-5.0.0.ebuild b/dev-lang/oorexx/oorexx-5.0.0.ebuild
index 51c81bc9f4f2..73dac6c302b3 100644
--- a/dev-lang/oorexx/oorexx-5.0.0.ebuild
+++ b/dev-lang/oorexx/oorexx-5.0.0.ebuild
@@ -10,16 +10,16 @@ inherit cmake
DESCRIPTION="Open source implementation of Object Rexx"
HOMEPAGE="https://www.oorexx.org/about.html
https://sourceforge.net/projects/oorexx/"
-SRC_URI="https://sourceforge.net/projects/${PN}/files/${PN}/${PV}/${P}-${APP_REVISION}.tar.gz"
-S="${WORKDIR}/${P}"
+SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/${PV}/${P}-${APP_REVISION}.tar.gz"
LICENSE="CPL-1.0"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64 ~ppc64 ~x86"
RDEPEND="
sys-libs/ncurses:=
virtual/libcrypt:=
+ !dev-lang/regina-rexx
"
DEPEND="
${RDEPEND}
diff --git a/dev-lang/perl/Manifest b/dev-lang/perl/Manifest
index aecb4fde543c..86751b9111c2 100644
--- a/dev-lang/perl/Manifest
+++ b/dev-lang/perl/Manifest
@@ -1,3 +1,5 @@
DIST perl-5.38.0-patches-1.tar.gz 26047 BLAKE2B 809dd5242f9868e54525ae8056598d3252c889afc72ed6f122174f828947223399a5ba4dbc16dd43501f7138205991f8c102cbe0ed94175ae3353040c53a0162 SHA512 c66160e20095555aa21d3be70050dce934d62e55e01dcf0f716129b2faa390923958a48bc448b4fab6f55e5b097eb378f7a6409a92c024fe68c8b34fddcfc5e4
DIST perl-5.38.2.tar.xz 13679524 BLAKE2B 74250e30dde76911902a787134808dae69113c07029cdf09ab4777e7bb4e6c389cdefb9cb08be87e106a4bcd40dacaf188907d7a62c5aca22c1e374741855b39 SHA512 0ca51e447c7a18639627c281a1c7ae6662c773745ea3c86bede46336d5514ecc97ded2c61166e1ac15635581489dc596368907aa3a775b34db225b76d7402d10
+DIST perl-5.40.0-patches-2.tar.xz 17072 BLAKE2B 7cc1085a0a701f72cf1fce2b7f18ac949eb03a9e40716c37082396483045df577ef13bbca58ef06f20868e52e9c78e18fa5b8a3434ceea272ff49832a086a1f5 SHA512 d31a25894e3b34c8e80f439ebd423dd8f28eac056ce42d69376882c1655b1f7289ef22f8aa8d30147eaebbe6693f4d86d1570e153b55d58d7b30e5832e7bea60
+DIST perl-5.40.0.tar.xz 13804184 BLAKE2B cf191c3ccaf6f395c0c7d08c2ad3456c1dd622d4fe78e7fb3a74c741e9a84f1d39a55f5bc6adbea54c9520b1b387e72e957f9a7544ab8f24968d233cd5b959ae SHA512 a2fb1a24c6367b4043f4e929b2d74fc3bad1415e53b791ed1f219f1701064ae21b2bd3164ba95fcf24eaf458bd54433024ccae43725c0bb82a1ec6a98dc7052d
DIST perl-cross-1.5.2.tar.gz 120097 BLAKE2B 8703816363b41ea5fe528b192ed28b169cf0bfc3c61a9332682240bdc02f6ef0208fc0202517ba03e7c177bfbb52783c833aacaf2d16583e0f90bd58805a03ff SHA512 fb16316add0a7458f087295077518402eddaa1c759da6e268742e9ba5439cb3f1db7adcd7ef769c4a613b7518ff9e48849f60b24bd2a6daaaf6e96b59bbf0ac8
diff --git a/dev-lang/perl/metadata.xml b/dev-lang/perl/metadata.xml
index c36cc7ac8780..993685cc10e1 100644
--- a/dev-lang/perl/metadata.xml
+++ b/dev-lang/perl/metadata.xml
@@ -5,10 +5,6 @@
<email>perl@gentoo.org</email>
<name>Gentoo Perl Project</name>
</maintainer>
- <use>
- <flag name="ithreads">Enable Perl threads, has some compatibility problems</flag>
- <flag name="quadmath">Enable 128bit floating point arithmetic via libquadmath</flag>
- </use>
<upstream>
<remote-id type="cpe">cpe:/a:perl:perl</remote-id>
<remote-id type="github">Perl/perl5</remote-id>
diff --git a/dev-lang/perl/perl-5.38.2-r2.ebuild b/dev-lang/perl/perl-5.38.2-r3.ebuild
index 29d9fb34d478..ed241260b8f8 100644
--- a/dev-lang/perl/perl-5.38.2-r2.ebuild
+++ b/dev-lang/perl/perl-5.38.2-r3.ebuild
@@ -39,6 +39,8 @@ MY_PV="${DIST_VERSION%-RC*}"
DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
+HOMEPAGE="https://www.perl.org/"
+
SRC_URI="
mirror://cpan/src/5.0/${MY_P}.tar.xz
mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
@@ -47,16 +49,17 @@ SRC_URI="
https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
"
-HOMEPAGE="https://www.perl.org/"
+S="${WORKDIR}/${MY_P}"
LICENSE="|| ( Artistic GPL-1+ )"
+
SLOT="0/${SUBSLOT}"
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
-IUSE="berkdb debug doc gdbm ithreads minimal quadmath"
+IUSE="berkdb perl_features_debug doc gdbm perl_features_ithreads minimal perl_features_quadmath"
RDEPEND="
berkdb? ( sys-libs/db:= )
@@ -82,8 +85,6 @@ PDEPEND="
# bug 390719, bug 523624
# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
-S="${WORKDIR}/${MY_P}"
-
dual_scripts() {
src_remove_dual perl-core/Archive-Tar 2.400.0 ptar ptardiff ptargrep
src_remove_dual perl-core/CPAN 2.360.0 cpan
@@ -129,17 +130,46 @@ check_rebuild() {
# Reinstall w/ USE Change
elif
- ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
- ( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \
- ( use quadmath && ! has_version dev-lang/perl[quadmath] ) || \
- ( ! use quadmath && has_version dev-lang/perl[quadmath] ) || \
- ( use debug && ! has_version dev-lang/perl[debug] ) || \
- ( ! use debug && has_version dev-lang/perl[debug] ) ; then
+ ( use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_ithreads]' ) ) || \
+ ( ! use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_ithreads]' ) ) || \
+ ( use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_quadmath]' ) ) || \
+ ( ! use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_quadmath]' ) ) || \
+ ( use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[-debug]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_debug]' ) ) || \
+ ( ! use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[debug]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_debug]' ) ) ; then
echo ""
- ewarn "TOGGLED USE-FLAGS WARNING:"
- ewarn "You changed one of the use-flags ithreads, quadmath, or debug."
- ewarn "You must rebuild all perl-modules installed."
+ ewarn "TOGGLED PERL FEATURES WARNING:"
+ ewarn "You changed one of the PERL_FEATURES flags ithreads, quadmath, or debug."
+ ewarn "You must rebuild all perl-modules installed. Mostly this should be done automatically"
+ ewarn "via the flag changes of the packages. If the rebuild fails, use perl-cleaner."
ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
+ ewarn
+ ewarn "NOTE: Previous to perl-5.38.2-r3, these flags were useflags for dev-lang/perl."
+ ewarn "If you just upgraded and do not intend to change anything, carry the same settings over"
+ ewarn "into a global PERL_FEATURES variable set in make.conf. E.g., "
+ ewarn "dev-lang/perl[ithreads,quadmath] becomes PERL_FEATURES=\"ithreads quadmath\""
+ fi
+}
+
+pkg_pretend() {
+ if \
+ ( use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' ) || \
+ ( ! use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[ithreads]' ) || \
+ ( use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' ) || \
+ ( ! use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[quadmath]' ) || \
+ ( use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[-debug]' ) || \
+ ( ! use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[debug]' ) ; \
+ then
+ echo ""
+ ewarn "As of dev-lang/perl-5.38.2-r3, the useflags debug, ithreads, quadmath move into"
+ ewarn "a use-expand variable PERL_FEATURES, which should be set globally in make.conf."
+ ewarn "It appears that you have not set this variable properly yet."
+ ewarn ""
+ ewarn "Giving you a chance to abort and read the corresponding news item now..."
+ for n in 10 9 8 7 6 5 4 3 2 1 ; do
+ echo -n "${n} "
+ sleep 2
+ done;
+ echo "continuing."
fi
}
@@ -151,13 +181,13 @@ pkg_setup() {
esac
myarch="${CHOST%%-*}-${osname}"
- if use debug ; then
+ if use perl_features_debug ; then
myarch+="-debug"
fi
- if use quadmath ; then
+ if use perl_features_quadmath ; then
myarch+="-quadmath"
fi
- if use ithreads ; then
+ if use perl_features_ithreads ; then
mythreading="-multi"
myarch+="-thread"
fi
@@ -577,15 +607,15 @@ src_configure() {
myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
- ewarn "Perl will not be built with berkdb support, use gcc if you needed it..."
+ ewarn "Perl will not be built with berkdb support, use gcc if you need it..."
myconf -Ui_db -Ui_ndbm
fi
- use ithreads && myconf -Dusethreads
+ use perl_features_ithreads && myconf -Dusethreads
- use quadmath && myconf -Dusequadmath
+ use perl_features_quadmath && myconf -Dusequadmath
- if use debug ; then
+ if use perl_features_debug ; then
append-cflags "-g"
myconf -DDEBUGGING
elif [[ ${CFLAGS} == *-g* ]] ; then
@@ -650,7 +680,7 @@ src_configure() {
if use prefix ; then
# Set a hook to check for each detected library whether it actually works.
export libscheck="
- ( echo 'main(){}' > '${T}'/conftest.c &&
+ ( echo 'int main(){}' > '${T}'/conftest.c &&
$(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
) || xxx=/dev/null"
@@ -683,10 +713,10 @@ src_configure() {
myconf \
-Duseshrplib \
-Darchname="${myarch}" \
- -Dcc="$(tc-getCC)" \
-Dar="$(tc-getAR)" \
- -Dnm="$(tc-getNM)" \
+ -Dcc="$(tc-getCC)" \
-Dcpp="$(tc-getCPP)" \
+ -Dnm="$(tc-getNM)" \
-Dranlib="$(tc-getRANLIB)" \
-Accflags="${CFLAGS} -DNO_PERL_RAND_SEED" \
-Doptimize="${CFLAGS}" \
diff --git a/dev-lang/perl/perl-5.38.2-r5.ebuild b/dev-lang/perl/perl-5.38.2-r5.ebuild
new file mode 100644
index 000000000000..37a04465b8e2
--- /dev/null
+++ b/dev-lang/perl/perl-5.38.2-r5.ebuild
@@ -0,0 +1,865 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
+
+PATCH_VER=1
+CROSS_VER=1.5.2
+PATCH_BASE="perl-5.38.0-patches-${PATCH_VER}"
+PATCH_DEV=dilfridge
+
+DIST_AUTHOR=PEVANS
+
+# Greatest first, don't include yourself
+# Devel point-releases are not ABI-intercompatible, but stable point releases are
+# BIN_OLDVERSEN contains only C-ABI-intercompatible versions
+PERL_BIN_OLDVERSEN=""
+
+if [[ "${PV##*.}" == "9999" ]]; then
+ DIST_VERSION=5.30.0
+else
+ DIST_VERSION="${PV/_rc/-RC}"
+fi
+SHORT_PV="${DIST_VERSION%.*}"
+
+# Even numbered major versions are ABI intercompatible
+# Odd numbered major versions are not
+if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
+ SUBSLOT="${DIST_VERSION%-RC*}"
+else
+ SUBSLOT="${DIST_VERSION%.*}"
+fi
+
+# Used only in tar paths
+MY_P="perl-${DIST_VERSION}"
+# Used in library paths
+MY_PV="${DIST_VERSION%-RC*}"
+
+DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
+
+HOMEPAGE="https://www.perl.org/"
+
+SRC_URI="
+ mirror://cpan/src/5.0/${MY_P}.tar.xz
+ mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
+ https://github.com/gentoo-perl/perl-patchset/archive/refs/tags/${PATCH_BASE}.tar.gz
+ https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.gz
+ https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
+"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="|| ( Artistic GPL-1+ )"
+
+SLOT="0/${SUBSLOT}"
+
+if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+fi
+
+IUSE="berkdb perl_features_debug doc gdbm perl_features_ithreads minimal perl_features_quadmath"
+
+RDEPEND="
+ berkdb? ( sys-libs/db:= )
+ gdbm? ( >=sys-libs/gdbm-1.8.3:= )
+ app-arch/bzip2
+ >=sys-libs/zlib-1.2.12
+ virtual/libcrypt:=
+"
+DEPEND="${RDEPEND}"
+BDEPEND="${RDEPEND}"
+PDEPEND="
+ !minimal? (
+ >=virtual/perl-CPAN-2.290.0
+ >=virtual/perl-Encode-3.120.0
+ >=virtual/perl-File-Temp-0.230.400-r2
+ >=virtual/perl-Data-Dumper-2.154.0
+ >=virtual/perl-Math-BigInt-1.999.842
+ virtual/perl-Test-Harness
+ )
+"
+IDEPEND="app-admin/perl-cleaner"
+# bug 390719, bug 523624
+# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
+
+dual_scripts() {
+ src_remove_dual perl-core/Archive-Tar 2.400.0 ptar ptardiff ptargrep
+ src_remove_dual perl-core/CPAN 2.360.0 cpan
+ src_remove_dual perl-core/Digest-SHA 6.40.0 shasum
+ src_remove_dual perl-core/Encode 3.190.0 enc2xs piconv
+ src_remove_dual perl-core/ExtUtils-MakeMaker 7.700.0 instmodsh
+ src_remove_dual perl-core/ExtUtils-ParseXS 3.510.0 xsubpp
+ src_remove_dual perl-core/IO-Compress 2.204.0 zipdetails
+ src_remove_dual perl-core/JSON-PP 4.160.0 json_pp
+ src_remove_dual perl-core/Module-CoreList 5.202.311.290 corelist
+ src_remove_dual perl-core/Pod-Checker 1.750.0 podchecker
+ src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
+ src_remove_dual perl-core/Pod-Usage 2.30.0 pod2usage
+ src_remove_dual perl-core/Test-Harness 3.440.0 prove
+ src_remove_dual perl-core/podlators 5.10.0 pod2man pod2text
+ src_remove_dual_man perl-core/podlators 5.10.0 /usr/share/man/man1/perlpodstyle.1
+}
+
+check_rebuild() {
+ # Fresh install
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ return 0;
+ # Major Upgrade
+ # doesn't matter if there's multiple copies, it still needs a rebuild
+ # if the string is anything other than "5.CURRENTMAJOR"
+ elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then
+ echo ""
+ ewarn "UPDATE THE PERL MODULES:"
+ ewarn "After updating dev-lang/perl the installed Perl modules"
+ ewarn "have to be re-installed. In most cases, this is done automatically"
+ ewarn "by the package manager, but subsequent steps are still recommended"
+ ewarn "to ensure system consistency."
+ ewarn
+ ewarn "You should start with a depclean to remove any unused perl dependencies"
+ ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
+ ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
+ ewarn "Recommended: emerge --depclean -va"
+ ewarn
+ ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
+ ewarn "remaining rebuilds portage may have missed."
+ ewarn "Use: perl-cleaner --all"
+ return 0;
+
+ # Reinstall w/ USE Change
+ elif
+ ( use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_ithreads]' ) ) || \
+ ( ! use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_ithreads]' ) ) || \
+ ( use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_quadmath]' ) ) || \
+ ( ! use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_quadmath]' ) ) || \
+ ( use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[-debug]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_debug]' ) ) || \
+ ( ! use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[debug]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_debug]' ) ) ; then
+ echo ""
+ ewarn "TOGGLED PERL FEATURES WARNING:"
+ ewarn "You changed one of the PERL_FEATURES flags ithreads, quadmath, or debug."
+ ewarn "You must rebuild all perl-modules installed. Mostly this should be done automatically"
+ ewarn "via the flag changes of the packages. If the rebuild fails, use perl-cleaner."
+ ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
+ ewarn
+ ewarn "NOTE: Previous to perl-5.38.2-r3, these flags were useflags for dev-lang/perl."
+ ewarn "If you just upgraded and do not intend to change anything, carry the same settings over"
+ ewarn "into a global PERL_FEATURES variable set in make.conf. E.g., "
+ ewarn "dev-lang/perl[ithreads,quadmath] becomes PERL_FEATURES=\"ithreads quadmath\""
+ fi
+}
+
+pkg_pretend() {
+ if \
+ ( use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' ) || \
+ ( ! use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[ithreads]' ) || \
+ ( use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' ) || \
+ ( ! use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[quadmath]' ) || \
+ ( use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[-debug]' ) || \
+ ( ! use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[debug]' ) ; \
+ then
+ echo ""
+ ewarn "As of dev-lang/perl-5.38.2-r3, the useflags debug, ithreads, quadmath move into"
+ ewarn "a use-expand variable PERL_FEATURES, which should be set globally in make.conf."
+ ewarn "It appears that you have not set this variable properly yet."
+ ewarn ""
+ ewarn "Giving you a chance to abort and read the corresponding news item now..."
+ for n in 10 9 8 7 6 5 4 3 2 1 ; do
+ echo -n "${n} "
+ sleep 2
+ done;
+ echo "continuing."
+ fi
+}
+
+pkg_setup() {
+ case ${CHOST} in
+ *-darwin*) osname="darwin" ;;
+ *-solaris*) osname="solaris" ;;
+ *) osname="linux" ;;
+ esac
+
+ myarch="${CHOST%%-*}-${osname}"
+ if use perl_features_debug ; then
+ myarch+="-debug"
+ fi
+ if use perl_features_quadmath ; then
+ myarch+="-quadmath"
+ fi
+ if use perl_features_ithreads ; then
+ mythreading="-multi"
+ myarch+="-thread"
+ fi
+
+ PRIV_BASE="/usr/$(get_libdir)/perl5"
+ SITE_BASE="/usr/local/$(get_libdir)/perl5"
+ VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
+
+ LIBPERL="libperl$(get_libname ${MY_PV} )"
+
+ PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
+ ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+ SITE_LIB="${SITE_BASE}/${SUBSLOT}"
+ SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+ VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
+ VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+
+ dual_scripts
+}
+
+src_remove_dual_file() {
+ local i pkg ver
+ pkg="$1"
+ ver="$2"
+ shift 2
+ case "${EBUILD_PHASE:-none}" in
+ postinst|postrm)
+ for i in "$@" ; do
+ alternatives_auto_makesym "${i}" "${i}-[0-9]*"
+ done
+ ;;
+ setup)
+ for i in "$@" ; do
+ if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
+ has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
+ break
+ fi
+ done
+ ;;
+ install)
+ for i in "$@" ; do
+ if ! [[ -f "${ED}"${i} ]] ; then
+ ewarn "${i} does not exist!"
+ continue
+ fi
+ mv "${ED}"${i}{,-${ver}-${P}} || die
+ done
+ ;;
+ esac
+}
+
+src_remove_dual_man() {
+ local i pkg ver ff
+ pkg="$1"
+ ver="$2"
+ shift 2
+ case "${EBUILD_PHASE:-none}" in
+ postinst|postrm)
+ for i in "$@" ; do
+ ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
+ ff=${ff##*${i#${i%.[0-9]}}}
+ alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
+ done
+ ;;
+ install)
+ for i in "$@" ; do
+ if ! [[ -f "${ED}"${i} ]] ; then
+ ewarn "${i} does not exist!"
+ continue
+ fi
+ mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
+ done
+ ;;
+ esac
+}
+
+src_remove_dual() {
+ local i pkg ver
+ pkg="$1"
+ ver="$2"
+ shift 2
+ for i in "$@" ; do
+ src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
+ src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
+ done
+}
+
+src_prepare_perlcross() {
+ cp -a ../perl-cross-${CROSS_VER}/* . || die
+
+ # bug 794463, needs further analysis what is exactly wrong here
+ eapply "${FILESDIR}/perl-5.34.0-crossfit.patch"
+
+ # bug 604072
+ MAKEOPTS+=" -j1"
+ export MAKEOPTS
+}
+
+src_prepare_dynamic() {
+ ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
+ ln -s ${LIBPERL} libperl$(get_libname ) || die
+}
+
+# Copy a patch into the patch series
+# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug']
+# - description is optional, but recommended
+# - all arguments after descriptions are bug URLs
+add_patch() {
+ local patchdir="${WORKDIR}/patches"
+ local infodir="${WORKDIR}/patch-info"
+ local src_name dest_name desc
+ src_name="$1"
+ dest_name="$2"
+ desc="$3"
+ shift; shift; shift;
+ einfo "Adding ${dest_name} to patch bundle"
+ cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}"
+ if [[ -n "${desc}" ]]; then
+ printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc"
+ fi
+ if [[ $# -gt 0 ]]; then
+ # Note: when $@ is more than one element, this emits a
+ # line for each element
+ printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
+ fi
+}
+
+# Remove a patch using a glob expr
+# eg:
+# rm_patch *-darwin-Use-CC*
+#
+rm_patch() {
+ local patchdir="${WORKDIR}/patches"
+ local expr="$1"
+ local patch="$( cd "${patchdir}"; echo $expr )"
+ einfo "Removing $patch ($expr) from patch bundle"
+ if [[ -e "${patchdir}/${patch}" ]]; then
+ rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )"
+ else
+ ewarn "No ${expr} found in ${patchdir} to remove"
+ fi
+}
+
+# Yes, this is a reasonable amount of code for something seemingly simple
+# but this is far easier to debug when things go wrong, and things went wrong
+# multiple times while I was getting the exact number of slashes right, which
+# requires circumnavigating both bash and sed escape mechanisms.
+c_escape_string() {
+ local slash dquote
+ slash='\'
+ dquote='"'
+ re_slash="${slash}${slash}"
+ re_dquote="${slash}${dquote}"
+
+ # Convert \ to \\,
+ # " to \"
+ echo "$1" |\
+ sed "s|${re_slash}|${re_slash}${re_slash}|g" |\
+ sed "s|${re_dquote}|${re_slash}${re_dquote}|g"
+}
+c_escape_file() {
+ c_escape_string "$(cat "$1")"
+}
+
+apply_patchdir() {
+ local patchdir="${WORKDIR}/patches"
+ local infodir="${WORKDIR}/patch-info"
+ local patchoutput="patchlevel-gentoo.h"
+
+ # Inject Patch-Level info into description for patchlevel.h patch
+ # to show in -V
+ local patch_expr="*List-packaged-patches*"
+ local patch="$( cd "${patchdir}"; echo $patch_expr )";
+ einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )"
+
+ if [[ -e "${patchdir}/${patch}" ]]; then
+ printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\
+ >"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc"
+ else
+ eerror "No $patch_expr found in ${patchdir}"
+ fi
+
+ # Compute patch list to apply
+ # different name other than PATCHES to stop default
+ # reapplying it
+ # Single depth is currently only supported, as artifacts can reside
+ # from the old layout being multiple-directories, as well as it grossly
+ # simplifying the patchlevel_gentoo.h generation.
+ local PERL_PATCHES=($(
+ find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\
+ grep -E '[.](diff|patch)$' |\
+ sort -n
+ ))
+
+ for patch in "${PERL_PATCHES[@]}"; do
+ eapply "${WORKDIR}"/patches/${patch}
+ done
+
+ einfo "Generating $patchoutput"
+
+ # This code creates a header file, each iteration
+ # creates one-or-more-lines for each entry found in PERL_PATCHES
+ # and STDOUT is redirected to the .h file
+ for patch in "${PERL_PATCHES[@]}"; do
+ local desc_f="${infodir}/${patch}.desc"
+ local bugs_f="${infodir}/${patch}.bugs"
+
+ printf ',"%s"\n' "${patch}"
+ if [[ ! -e "${desc_f}" ]]; then
+ ewarn "No description provided for ${patch} (expected: ${desc_f} )"
+ else
+ local desc="$(c_escape_file "${desc_f}")"
+ printf ',"- %s"\n' "${desc}"
+ fi
+ if [[ -e "${bugs_f}" ]]; then
+ while read -d $'\n' -r line; do
+ local esc_line="$(c_escape_string "${line}")"
+ printf ',"- Bug: %s"\n' "${esc_line}"
+ done <"${bugs_f}"
+ fi
+ done > "${S}/${patchoutput}"
+ printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST"
+
+}
+
+src_prepare() {
+
+ local patchdir="${WORKDIR}/patches"
+
+ mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die
+ mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die
+
+ # Prepare Patch dir with additional patches / remove unwanted patches
+ # Inject bug/desc entries for perl -V
+ # Old example:
+ # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
+ # "Fix broken miniperl on hppa"\
+ # "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
+ add_patch "${FILESDIR}/${PN}-5.36.0-fix-configure-for-clang.patch" \
+ "100-5.36.0-fix-configure-for-clang.patch" \
+ "Fix clang check in configure" \
+ "https://github.com/Perl/perl5/issues/21099"
+
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ # do NOT mess with nsl, on Solaris this is always necessary,
+ # when -lsocket is used e.g. to get h_errno
+ rm_patch "*-nsl-and-cl*"
+ fi
+
+ apply_patchdir
+
+ tc-is-cross-compiler && src_prepare_perlcross
+
+ tc-is-static-only || src_prepare_dynamic
+
+ if use gdbm; then
+ sed -i "s:INC => .*:INC => \"-I${EROOT}/usr/include/gdbm\":g" \
+ ext/NDBM_File/Makefile.PL || die
+ fi
+
+ # Use errno.h from prefix rather than from host system, bug #645804
+ if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
+ sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
+ fi
+
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ # set a soname, fix linking against just built libperl
+ sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # fix install_name (soname) not to reference $D
+ sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
+
+ # fix environ linkage absence (only a real issue on Darwin9)
+ if [[ ${CHOST##*-darwin} -le 9 ]] ; then
+ sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \
+ Makefile.SH || die
+ fi
+ fi
+
+ default
+}
+
+myconf() {
+ # the myconf array is declared in src_configure
+ myconf=( "${myconf[@]}" "$@" )
+}
+
+# Outputs a list of versions which have been seen in any of the
+# primary perl @INC prefix paths, such as:
+# /usr/lib64/perl5/<NUMBER>
+# /usr/local/lib64/perl5/<NUMBER>
+# /usr/lib64/perl5/vendor_perl/<NUMBER>
+#
+# All values of NUMBER must be like "5.x.y" or like "5.x"
+#
+find_candidate_inc_versions() {
+ local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
+ local dirs=(
+ "${EROOT}${PRIV_BASE}"
+ "${EROOT}${SITE_BASE}"
+ "${EROOT}${VENDOR_BASE}"
+ )
+ for dir in "${dirs[@]}"; do
+ if [[ ! -e "${dir}" ]]; then
+ continue
+ fi
+ # Without access to readdir() on these dirs, find will not be able
+ # to reveal any @INC directories inside them, and will subsequently prune
+ # them from the built perl's @INC support, breaking our compatiblity options
+ # entirely.
+ if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then
+ eerror "Bad permissions on ${dir}, this will probably break things"
+ eerror "Ensure ${dir} is +rx for at least uid=$EUID"
+ eerror "Recommended permission is +rx for all"
+ eerror "> chmod o+rx ${dir}"
+ fi
+ done
+ einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}"
+ find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null
+}
+
+# Sort versions passed versiony-ly, remove self-version if present
+# dedup. Takes each version as an argument
+sanitize_inc_versions() {
+ local vexclude="${SUBSLOT}"
+ einfo "Normalizing/Sorting candidate list: $*"
+ einfo " to remove '${vexclude}'"
+ # Note, general numeric sort has to be used
+ # for the last component, or unique will convert
+ # 5.30.0 + 5.30 into just 5.30
+ printf "%s\n" "$@" |\
+ grep -vxF "${vexclude}" |\
+ sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg
+}
+
+versions_to_inclist() {
+ local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
+
+ for v; do
+ has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ ";
+ echo -n "${v}/ ";
+ done
+}
+
+versions_to_gentoolibdirs() {
+ local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
+ local root
+ local v
+ for v; do
+ for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do
+ local fullpath="${EROOT}${root}/${v}"
+ if [[ -e "${fullpath}" ]]; then
+ has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}";
+ printf "%s:" "${fullpath}"
+ fi
+ done
+ done
+}
+
+src_configure() {
+ declare -a myconf
+
+ export LC_ALL="C"
+ [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
+
+ # Perl has problems compiling with -Os in your flags with glibc
+ replace-flags "-Os" "-O2"
+
+ # xlocale.h is going away in glibc-2.26, so it's counterproductive
+ # if we use it and include it in CORE/perl.h ... Perl builds just
+ # fine with glibc and locale.h only.
+ # However, the darwin prefix people have no locale.h ...
+ use elibc_glibc && myconf -Ui_xlocale
+
+ # Perl relies on -fwrapv semantics
+ filter-flags -ftrapv
+
+ # This flag makes compiling crash in interesting ways
+ filter-flags "-malign-double"
+
+ # On musl we dont want to use largefile *64 types, since 1) normal
+ # types are 64bit / largefile anyway and 2) the *64 types are going
+ # away in 1.2.4... bug #911233
+ use elibc_musl && myconf -Ud_off64_t
+
+ use sparc && myconf -Ud_longdbl
+
+ # This urgently needs debugging - on m68k, miniperl crashes during
+ # build otherwise..
+ use m68k && append-ldflags -Wl,-z,norelro
+
+ export BUILD_BZIP2=0
+ export BZIP2_INCLUDE=${EROOT}/usr/include
+ export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
+
+ export BUILD_ZLIB=False
+ export ZLIB_INCLUDE=${EROOT}/usr/include
+ export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
+
+ # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
+ myndbm='U'
+ mygdbm='U'
+ mydb='U'
+ if use gdbm ; then
+ mygdbm='D'
+ if use berkdb ; then
+ myndbm='D'
+ fi
+ fi
+ if use berkdb ; then
+ mydb='D'
+ has_version '=sys-libs/db-1*' && myndbm='D'
+ fi
+
+ myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
+
+ if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
+ ewarn "Perl will not be built with berkdb support, use gcc if you need it..."
+ myconf -Ui_db -Ui_ndbm
+ fi
+
+ use perl_features_ithreads && myconf -Dusethreads
+
+ use perl_features_quadmath && myconf -Dusequadmath
+
+ if use perl_features_debug ; then
+ append-cflags "-g"
+ myconf -DDEBUGGING
+ elif [[ ${CFLAGS} == *-g* ]] ; then
+ myconf -DDEBUGGING=-g
+ else
+ myconf -DDEBUGGING=none
+ fi
+
+ # modifying 'optimize' prevents cross configure script from appending required flags
+ if tc-is-cross-compiler; then
+ append-cflags "-fwrapv"
+
+ # Needed for the CHOST build too (bug #932385)
+ export CFLAGS="${CFLAGS} -D_GNU_SOURCE"
+
+ # bug #913171
+ export HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE"
+ fi
+
+ # bug #877659, bug #821577
+ append-cflags -fno-strict-aliasing
+
+ # Autodiscover all old version directories, some of them will even be newer
+ # if you downgrade
+ if [[ -z ${PERL_OLDVERSEN} ]]; then
+ PERL_OLDVERSEN="$( find_candidate_inc_versions )"
+ fi
+
+ # Fixup versions, removing self match, fixing order and dupes
+ PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )"
+
+ # Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
+ if [[ -n "${PERL_OLDVERSEN// }" ]]; then
+ local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )"
+ einfo "This version of perl may partially support modules previously"
+ einfo "installed in any of the following paths:"
+ for incpath in ${inclist}; do
+ [[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}"
+ [[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}"
+ [[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}"
+ done
+ einfo "This is a temporary measure and you should aim to cleanup these paths"
+ einfo "via world updates and perl-cleaner"
+ # myconf -Dinc_version_list="${inclist}"
+ myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )"
+ fi
+
+ [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
+
+ # Make sure we can do the final link #523730, need to set deployment
+ # target to override hardcoded 10.3 which breaks on modern OSX
+ [[ ${CHOST} == *-darwin* ]] && \
+ myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
+
+ # Older macOS with non-Apple GCC chokes on inline in system headers
+ # using c89 mode as injected by cflags.SH, in addition, we override
+ # cflags, so we loose PERL_DARWIN which enables compat code that
+ # apparently on more recent macOS releases is no longer necessary
+ [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
+ append-cflags -Dinline=__inline__ -DPERL_DARWIN
+
+ # Prefix: the host system needs not to follow Gentoo multilib stuff, and in
+ # Prefix itself we don't do multilib either, so make sure perl can find
+ # something compatible.
+ if use prefix ; then
+ # Set a hook to check for each detected library whether it actually works.
+ export libscheck="
+ ( echo 'int main(){}' > '${T}'/conftest.c &&
+ $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
+ ) || xxx=/dev/null"
+
+ # Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
+ local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
+ myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
+ elif [[ $(get_libdir) != "lib" ]] ; then
+ # We need to use " and not ', as the written config.sh use ' ...
+ myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
+ fi
+
+ # don't try building ODBM, bug #354453
+ disabled_extensions="ODBM_File"
+
+ if ! use gdbm ; then
+ # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
+ disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
+ fi
+
+ myconf -Dnoextensions="${disabled_extensions}"
+
+ [[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
+
+ [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
+ # allow fiddling via EXTRA_ECONF, bug 558070
+ eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
+
+ myconf \
+ -Duseshrplib \
+ -Darchname="${myarch}" \
+ -Dar="$(tc-getAR)" \
+ -Dcc="$(tc-getCC)" \
+ -Dcpp="$(tc-getCPP)" \
+ -Dld="$(tc-getCC)" \
+ -Dnm="$(tc-getNM)" \
+ -Dranlib="$(tc-getRANLIB)" \
+ -Accflags="${CFLAGS} -DNO_PERL_RAND_SEED" \
+ -Doptimize="${CFLAGS}" \
+ -Dldflags="${LDFLAGS}" \
+ -Dprefix="${EPREFIX}"'/usr' \
+ -Dsiteprefix="${EPREFIX}"'/usr/local' \
+ -Dvendorprefix="${EPREFIX}"'/usr' \
+ -Dscriptdir="${EPREFIX}"'/usr/bin' \
+ -Dprivlib="${EPREFIX}${PRIV_LIB}" \
+ -Darchlib="${EPREFIX}${ARCH_LIB}" \
+ -Dsitelib="${EPREFIX}${SITE_LIB}" \
+ -Dsitearch="${EPREFIX}${SITE_ARCH}" \
+ -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
+ -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
+ -Dman1dir="${EPREFIX}"/usr/share/man/man1 \
+ -Dman3dir="${EPREFIX}"/usr/share/man/man3 \
+ -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
+ -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
+ -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
+ -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
+ -Dman1ext='1' \
+ -Dman3ext='3pm' \
+ -Dlibperl="${LIBPERL}" \
+ -Dlocincpth="${EPREFIX}"'/usr/include ' \
+ -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
+ -Duselargefiles \
+ -Dd_semctl_semun \
+ -Dcf_by='Gentoo' \
+ -Dmyhostname='localhost' \
+ -Dperladmin='root@localhost' \
+ -Ud_csh \
+ -Dsh="${EPREFIX}"/bin/sh \
+ -Dtargetsh="${EPREFIX}"/bin/sh \
+ -Uusenm \
+ "${EXTRA_ECONF[@]}"
+
+ if tc-is-cross-compiler; then
+ ./configure \
+ --target="${CHOST}" \
+ --build="${CBUILD}" \
+ -Dinstallprefix='' \
+ -Dinstallusrbinperl='undef' \
+ -Dusevendorprefix='define' \
+ "${myconf[@]}" \
+ || die "Unable to configure"
+ else
+ sh Configure \
+ -des \
+ -Dinstallprefix="${EPREFIX}"'/usr' \
+ -Dinstallusrbinperl='n' \
+ "${myconf[@]}" \
+ || die "Unable to configure"
+ fi
+}
+
+src_test() {
+ export NO_GENTOO_NETWORK_TESTS=1;
+ export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
+ export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
+ if [[ ${EUID} == 0 ]] ; then
+ ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
+ return 0
+ fi
+ TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
+}
+
+src_install() {
+ local i
+ local coredir="${ARCH_LIB}/CORE"
+
+ emake DESTDIR="${D}" install
+
+ rm -f "${ED}/usr/bin/perl${MY_PV}"
+ ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
+
+ if ! tc-is-static-only ; then
+ dolib.so "${ED}"${coredir}/${LIBPERL}
+ rm -f "${ED}"${coredir}/${LIBPERL}
+ ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
+ ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
+
+ ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
+ ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
+ ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
+ fi
+
+ rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
+
+ # This removes ${D} from Config.pm
+ for i in $(find "${D}" -iname "Config.pm" ) ; do
+ einfo "Removing ${D} from ${i}..."
+ sed -i -e "s:${D}::" "${i}" || die "Sed failed"
+ done
+
+ dodoc Changes* README AUTHORS
+
+ if use doc ; then
+ # HTML Documentation
+ # We expect errors, warnings, and such with the following.
+
+ dodir /usr/share/doc/${PF}/html
+ LD_LIBRARY_PATH=. ./perl installhtml \
+ --podroot='.' \
+ --podpath='lib:ext:pod:vms' \
+ --recurse \
+ --htmldir="${ED}/usr/share/doc/${PF}/html"
+ fi
+
+ [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
+
+ dual_scripts
+}
+
+pkg_preinst() {
+ check_rebuild
+}
+
+pkg_postinst() {
+ dual_scripts
+
+ if [[ -z "${ROOT}" ]] ; then
+ local INC DIR file
+ INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
+ einfo "Removing old .ph files"
+ for DIR in ${INC} ; do
+ if [[ -d "${DIR}" ]] ; then
+ for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
+ rm -f "${file}"
+ einfo "<< ${file}"
+ done
+ fi
+ done
+ # Silently remove the now empty dirs
+ for DIR in ${INC} ; do
+ if [[ -d "${DIR}" ]] ; then
+ find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
+ fi
+ done
+
+ fi
+}
+
+pkg_postrm() {
+ dual_scripts
+}
diff --git a/dev-lang/perl/perl-5.38.2-r6.ebuild b/dev-lang/perl/perl-5.38.2-r6.ebuild
new file mode 100644
index 000000000000..51b567eba914
--- /dev/null
+++ b/dev-lang/perl/perl-5.38.2-r6.ebuild
@@ -0,0 +1,865 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
+
+PATCH_VER=1
+CROSS_VER=1.5.2
+PATCH_BASE="perl-5.38.0-patches-${PATCH_VER}"
+PATCH_DEV=dilfridge
+
+DIST_AUTHOR=PEVANS
+
+# Greatest first, don't include yourself
+# Devel point-releases are not ABI-intercompatible, but stable point releases are
+# BIN_OLDVERSEN contains only C-ABI-intercompatible versions
+PERL_BIN_OLDVERSEN=""
+
+if [[ "${PV##*.}" == "9999" ]]; then
+ DIST_VERSION=5.30.0
+else
+ DIST_VERSION="${PV/_rc/-RC}"
+fi
+SHORT_PV="${DIST_VERSION%.*}"
+
+# Even numbered major versions are ABI intercompatible
+# Odd numbered major versions are not
+if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
+ SUBSLOT="${DIST_VERSION%-RC*}"
+else
+ SUBSLOT="${DIST_VERSION%.*}"
+fi
+
+# Used only in tar paths
+MY_P="perl-${DIST_VERSION}"
+# Used in library paths
+MY_PV="${DIST_VERSION%-RC*}"
+
+DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
+
+HOMEPAGE="https://www.perl.org/"
+
+SRC_URI="
+ mirror://cpan/src/5.0/${MY_P}.tar.xz
+ mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
+ https://github.com/gentoo-perl/perl-patchset/archive/refs/tags/${PATCH_BASE}.tar.gz
+ https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.gz
+ https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
+"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="|| ( Artistic GPL-1+ )"
+
+SLOT="0/${SUBSLOT}"
+
+if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+fi
+
+IUSE="berkdb perl_features_debug doc gdbm perl_features_ithreads minimal perl_features_quadmath"
+
+RDEPEND="
+ berkdb? ( sys-libs/db:= )
+ gdbm? ( >=sys-libs/gdbm-1.8.3:= )
+ app-arch/bzip2
+ >=sys-libs/zlib-1.2.12
+ virtual/libcrypt:=
+"
+DEPEND="${RDEPEND}"
+BDEPEND="${RDEPEND}"
+PDEPEND="
+ !minimal? (
+ >=app-admin/perl-cleaner-2.31
+ >=virtual/perl-CPAN-2.290.0
+ >=virtual/perl-Encode-3.120.0
+ >=virtual/perl-File-Temp-0.230.400-r2
+ >=virtual/perl-Data-Dumper-2.154.0
+ >=virtual/perl-Math-BigInt-1.999.842
+ virtual/perl-Test-Harness
+ )
+"
+# bug 390719, bug 523624
+# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
+
+dual_scripts() {
+ src_remove_dual perl-core/Archive-Tar 2.400.0 ptar ptardiff ptargrep
+ src_remove_dual perl-core/CPAN 2.360.0 cpan
+ src_remove_dual perl-core/Digest-SHA 6.40.0 shasum
+ src_remove_dual perl-core/Encode 3.190.0 enc2xs piconv
+ src_remove_dual perl-core/ExtUtils-MakeMaker 7.700.0 instmodsh
+ src_remove_dual perl-core/ExtUtils-ParseXS 3.510.0 xsubpp
+ src_remove_dual perl-core/IO-Compress 2.204.0 zipdetails
+ src_remove_dual perl-core/JSON-PP 4.160.0 json_pp
+ src_remove_dual perl-core/Module-CoreList 5.202.311.290 corelist
+ src_remove_dual perl-core/Pod-Checker 1.750.0 podchecker
+ src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
+ src_remove_dual perl-core/Pod-Usage 2.30.0 pod2usage
+ src_remove_dual perl-core/Test-Harness 3.440.0 prove
+ src_remove_dual perl-core/podlators 5.10.0 pod2man pod2text
+ src_remove_dual_man perl-core/podlators 5.10.0 /usr/share/man/man1/perlpodstyle.1
+}
+
+check_rebuild() {
+ # Fresh install
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ return 0;
+ # Major Upgrade
+ # doesn't matter if there's multiple copies, it still needs a rebuild
+ # if the string is anything other than "5.CURRENTMAJOR"
+ elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then
+ echo ""
+ ewarn "UPDATE THE PERL MODULES:"
+ ewarn "After updating dev-lang/perl the installed Perl modules"
+ ewarn "have to be re-installed. In most cases, this is done automatically"
+ ewarn "by the package manager, but subsequent steps are still recommended"
+ ewarn "to ensure system consistency."
+ ewarn
+ ewarn "You should start with a depclean to remove any unused perl dependencies"
+ ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
+ ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
+ ewarn "Recommended: emerge --depclean -va"
+ ewarn
+ ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
+ ewarn "remaining rebuilds portage may have missed."
+ ewarn "Use: perl-cleaner --all"
+ return 0;
+
+ # Reinstall w/ USE Change
+ elif
+ ( use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_ithreads]' ) ) || \
+ ( ! use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_ithreads]' ) ) || \
+ ( use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_quadmath]' ) ) || \
+ ( ! use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_quadmath]' ) ) || \
+ ( use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[-debug]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_debug]' ) ) || \
+ ( ! use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[debug]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_debug]' ) ) ; then
+ echo ""
+ ewarn "TOGGLED PERL FEATURES WARNING:"
+ ewarn "You changed one of the PERL_FEATURES flags ithreads, quadmath, or debug."
+ ewarn "You must rebuild all perl-modules installed. Mostly this should be done automatically"
+ ewarn "via the flag changes of the packages. If the rebuild fails, use perl-cleaner."
+ ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
+ ewarn
+ ewarn "NOTE: Previous to perl-5.38.2-r3, these flags were useflags for dev-lang/perl."
+ ewarn "If you just upgraded and do not intend to change anything, carry the same settings over"
+ ewarn "into a global PERL_FEATURES variable set in make.conf. E.g., "
+ ewarn "dev-lang/perl[ithreads,quadmath] becomes PERL_FEATURES=\"ithreads quadmath\""
+ fi
+}
+
+pkg_pretend() {
+ if \
+ ( use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' ) || \
+ ( ! use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[ithreads]' ) || \
+ ( use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' ) || \
+ ( ! use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[quadmath]' ) || \
+ ( use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[-debug]' ) || \
+ ( ! use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[debug]' ) ; \
+ then
+ echo ""
+ ewarn "As of dev-lang/perl-5.38.2-r3, the useflags debug, ithreads, quadmath move into"
+ ewarn "a use-expand variable PERL_FEATURES, which should be set globally in make.conf."
+ ewarn "It appears that you have not set this variable properly yet."
+ ewarn ""
+ ewarn "Giving you a chance to abort and read the corresponding news item now..."
+ for n in 10 9 8 7 6 5 4 3 2 1 ; do
+ echo -n "${n} "
+ sleep 2
+ done;
+ echo "continuing."
+ fi
+}
+
+pkg_setup() {
+ case ${CHOST} in
+ *-darwin*) osname="darwin" ;;
+ *-solaris*) osname="solaris" ;;
+ *) osname="linux" ;;
+ esac
+
+ myarch="${CHOST%%-*}-${osname}"
+ if use perl_features_debug ; then
+ myarch+="-debug"
+ fi
+ if use perl_features_quadmath ; then
+ myarch+="-quadmath"
+ fi
+ if use perl_features_ithreads ; then
+ mythreading="-multi"
+ myarch+="-thread"
+ fi
+
+ PRIV_BASE="/usr/$(get_libdir)/perl5"
+ SITE_BASE="/usr/local/$(get_libdir)/perl5"
+ VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
+
+ LIBPERL="libperl$(get_libname ${MY_PV} )"
+
+ PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
+ ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+ SITE_LIB="${SITE_BASE}/${SUBSLOT}"
+ SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+ VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
+ VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+
+ dual_scripts
+}
+
+src_remove_dual_file() {
+ local i pkg ver
+ pkg="$1"
+ ver="$2"
+ shift 2
+ case "${EBUILD_PHASE:-none}" in
+ postinst|postrm)
+ for i in "$@" ; do
+ alternatives_auto_makesym "${i}" "${i}-[0-9]*"
+ done
+ ;;
+ setup)
+ for i in "$@" ; do
+ if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
+ has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
+ break
+ fi
+ done
+ ;;
+ install)
+ for i in "$@" ; do
+ if ! [[ -f "${ED}"${i} ]] ; then
+ ewarn "${i} does not exist!"
+ continue
+ fi
+ mv "${ED}"${i}{,-${ver}-${P}} || die
+ done
+ ;;
+ esac
+}
+
+src_remove_dual_man() {
+ local i pkg ver ff
+ pkg="$1"
+ ver="$2"
+ shift 2
+ case "${EBUILD_PHASE:-none}" in
+ postinst|postrm)
+ for i in "$@" ; do
+ ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
+ ff=${ff##*${i#${i%.[0-9]}}}
+ alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
+ done
+ ;;
+ install)
+ for i in "$@" ; do
+ if ! [[ -f "${ED}"${i} ]] ; then
+ ewarn "${i} does not exist!"
+ continue
+ fi
+ mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
+ done
+ ;;
+ esac
+}
+
+src_remove_dual() {
+ local i pkg ver
+ pkg="$1"
+ ver="$2"
+ shift 2
+ for i in "$@" ; do
+ src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
+ src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
+ done
+}
+
+src_prepare_perlcross() {
+ cp -a ../perl-cross-${CROSS_VER}/* . || die
+
+ # bug 794463, needs further analysis what is exactly wrong here
+ eapply "${FILESDIR}/perl-5.34.0-crossfit.patch"
+
+ # bug 604072
+ MAKEOPTS+=" -j1"
+ export MAKEOPTS
+}
+
+src_prepare_dynamic() {
+ ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
+ ln -s ${LIBPERL} libperl$(get_libname ) || die
+}
+
+# Copy a patch into the patch series
+# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug']
+# - description is optional, but recommended
+# - all arguments after descriptions are bug URLs
+add_patch() {
+ local patchdir="${WORKDIR}/patches"
+ local infodir="${WORKDIR}/patch-info"
+ local src_name dest_name desc
+ src_name="$1"
+ dest_name="$2"
+ desc="$3"
+ shift; shift; shift;
+ einfo "Adding ${dest_name} to patch bundle"
+ cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}"
+ if [[ -n "${desc}" ]]; then
+ printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc"
+ fi
+ if [[ $# -gt 0 ]]; then
+ # Note: when $@ is more than one element, this emits a
+ # line for each element
+ printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
+ fi
+}
+
+# Remove a patch using a glob expr
+# eg:
+# rm_patch *-darwin-Use-CC*
+#
+rm_patch() {
+ local patchdir="${WORKDIR}/patches"
+ local expr="$1"
+ local patch="$( cd "${patchdir}"; echo $expr )"
+ einfo "Removing $patch ($expr) from patch bundle"
+ if [[ -e "${patchdir}/${patch}" ]]; then
+ rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )"
+ else
+ ewarn "No ${expr} found in ${patchdir} to remove"
+ fi
+}
+
+# Yes, this is a reasonable amount of code for something seemingly simple
+# but this is far easier to debug when things go wrong, and things went wrong
+# multiple times while I was getting the exact number of slashes right, which
+# requires circumnavigating both bash and sed escape mechanisms.
+c_escape_string() {
+ local slash dquote
+ slash='\'
+ dquote='"'
+ re_slash="${slash}${slash}"
+ re_dquote="${slash}${dquote}"
+
+ # Convert \ to \\,
+ # " to \"
+ echo "$1" |\
+ sed "s|${re_slash}|${re_slash}${re_slash}|g" |\
+ sed "s|${re_dquote}|${re_slash}${re_dquote}|g"
+}
+c_escape_file() {
+ c_escape_string "$(cat "$1")"
+}
+
+apply_patchdir() {
+ local patchdir="${WORKDIR}/patches"
+ local infodir="${WORKDIR}/patch-info"
+ local patchoutput="patchlevel-gentoo.h"
+
+ # Inject Patch-Level info into description for patchlevel.h patch
+ # to show in -V
+ local patch_expr="*List-packaged-patches*"
+ local patch="$( cd "${patchdir}"; echo $patch_expr )";
+ einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )"
+
+ if [[ -e "${patchdir}/${patch}" ]]; then
+ printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\
+ >"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc"
+ else
+ eerror "No $patch_expr found in ${patchdir}"
+ fi
+
+ # Compute patch list to apply
+ # different name other than PATCHES to stop default
+ # reapplying it
+ # Single depth is currently only supported, as artifacts can reside
+ # from the old layout being multiple-directories, as well as it grossly
+ # simplifying the patchlevel_gentoo.h generation.
+ local PERL_PATCHES=($(
+ find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\
+ grep -E '[.](diff|patch)$' |\
+ sort -n
+ ))
+
+ for patch in "${PERL_PATCHES[@]}"; do
+ eapply "${WORKDIR}"/patches/${patch}
+ done
+
+ einfo "Generating $patchoutput"
+
+ # This code creates a header file, each iteration
+ # creates one-or-more-lines for each entry found in PERL_PATCHES
+ # and STDOUT is redirected to the .h file
+ for patch in "${PERL_PATCHES[@]}"; do
+ local desc_f="${infodir}/${patch}.desc"
+ local bugs_f="${infodir}/${patch}.bugs"
+
+ printf ',"%s"\n' "${patch}"
+ if [[ ! -e "${desc_f}" ]]; then
+ ewarn "No description provided for ${patch} (expected: ${desc_f} )"
+ else
+ local desc="$(c_escape_file "${desc_f}")"
+ printf ',"- %s"\n' "${desc}"
+ fi
+ if [[ -e "${bugs_f}" ]]; then
+ while read -d $'\n' -r line; do
+ local esc_line="$(c_escape_string "${line}")"
+ printf ',"- Bug: %s"\n' "${esc_line}"
+ done <"${bugs_f}"
+ fi
+ done > "${S}/${patchoutput}"
+ printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST"
+
+}
+
+src_prepare() {
+
+ local patchdir="${WORKDIR}/patches"
+
+ mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die
+ mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die
+
+ # Prepare Patch dir with additional patches / remove unwanted patches
+ # Inject bug/desc entries for perl -V
+ # Old example:
+ # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
+ # "Fix broken miniperl on hppa"\
+ # "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
+ add_patch "${FILESDIR}/${PN}-5.36.0-fix-configure-for-clang.patch" \
+ "100-5.36.0-fix-configure-for-clang.patch" \
+ "Fix clang check in configure" \
+ "https://github.com/Perl/perl5/issues/21099"
+
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ # do NOT mess with nsl, on Solaris this is always necessary,
+ # when -lsocket is used e.g. to get h_errno
+ rm_patch "*-nsl-and-cl*"
+ fi
+
+ apply_patchdir
+
+ tc-is-cross-compiler && src_prepare_perlcross
+
+ tc-is-static-only || src_prepare_dynamic
+
+ if use gdbm; then
+ sed -i "s:INC => .*:INC => \"-I${EROOT}/usr/include/gdbm\":g" \
+ ext/NDBM_File/Makefile.PL || die
+ fi
+
+ # Use errno.h from prefix rather than from host system, bug #645804
+ if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
+ sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
+ fi
+
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ # set a soname, fix linking against just built libperl
+ sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # fix install_name (soname) not to reference $D
+ sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
+
+ # fix environ linkage absence (only a real issue on Darwin9)
+ if [[ ${CHOST##*-darwin} -le 9 ]] ; then
+ sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \
+ Makefile.SH || die
+ fi
+ fi
+
+ default
+}
+
+myconf() {
+ # the myconf array is declared in src_configure
+ myconf=( "${myconf[@]}" "$@" )
+}
+
+# Outputs a list of versions which have been seen in any of the
+# primary perl @INC prefix paths, such as:
+# /usr/lib64/perl5/<NUMBER>
+# /usr/local/lib64/perl5/<NUMBER>
+# /usr/lib64/perl5/vendor_perl/<NUMBER>
+#
+# All values of NUMBER must be like "5.x.y" or like "5.x"
+#
+find_candidate_inc_versions() {
+ local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
+ local dirs=(
+ "${EROOT}${PRIV_BASE}"
+ "${EROOT}${SITE_BASE}"
+ "${EROOT}${VENDOR_BASE}"
+ )
+ for dir in "${dirs[@]}"; do
+ if [[ ! -e "${dir}" ]]; then
+ continue
+ fi
+ # Without access to readdir() on these dirs, find will not be able
+ # to reveal any @INC directories inside them, and will subsequently prune
+ # them from the built perl's @INC support, breaking our compatiblity options
+ # entirely.
+ if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then
+ eerror "Bad permissions on ${dir}, this will probably break things"
+ eerror "Ensure ${dir} is +rx for at least uid=$EUID"
+ eerror "Recommended permission is +rx for all"
+ eerror "> chmod o+rx ${dir}"
+ fi
+ done
+ einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}"
+ find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null
+}
+
+# Sort versions passed versiony-ly, remove self-version if present
+# dedup. Takes each version as an argument
+sanitize_inc_versions() {
+ local vexclude="${SUBSLOT}"
+ einfo "Normalizing/Sorting candidate list: $*"
+ einfo " to remove '${vexclude}'"
+ # Note, general numeric sort has to be used
+ # for the last component, or unique will convert
+ # 5.30.0 + 5.30 into just 5.30
+ printf "%s\n" "$@" |\
+ grep -vxF "${vexclude}" |\
+ sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg
+}
+
+versions_to_inclist() {
+ local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
+
+ for v; do
+ has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ ";
+ echo -n "${v}/ ";
+ done
+}
+
+versions_to_gentoolibdirs() {
+ local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
+ local root
+ local v
+ for v; do
+ for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do
+ local fullpath="${EROOT}${root}/${v}"
+ if [[ -e "${fullpath}" ]]; then
+ has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}";
+ printf "%s:" "${fullpath}"
+ fi
+ done
+ done
+}
+
+src_configure() {
+ declare -a myconf
+
+ export LC_ALL="C"
+ [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
+
+ # Perl has problems compiling with -Os in your flags with glibc
+ replace-flags "-Os" "-O2"
+
+ # xlocale.h is going away in glibc-2.26, so it's counterproductive
+ # if we use it and include it in CORE/perl.h ... Perl builds just
+ # fine with glibc and locale.h only.
+ # However, the darwin prefix people have no locale.h ...
+ use elibc_glibc && myconf -Ui_xlocale
+
+ # Perl relies on -fwrapv semantics
+ filter-flags -ftrapv
+
+ # This flag makes compiling crash in interesting ways
+ filter-flags "-malign-double"
+
+ # On musl we dont want to use largefile *64 types, since 1) normal
+ # types are 64bit / largefile anyway and 2) the *64 types are going
+ # away in 1.2.4... bug #911233
+ use elibc_musl && myconf -Ud_off64_t
+
+ use sparc && myconf -Ud_longdbl
+
+ # This urgently needs debugging - on m68k, miniperl crashes during
+ # build otherwise..
+ use m68k && append-ldflags -Wl,-z,norelro
+
+ export BUILD_BZIP2=0
+ export BZIP2_INCLUDE=${EROOT}/usr/include
+ export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
+
+ export BUILD_ZLIB=False
+ export ZLIB_INCLUDE=${EROOT}/usr/include
+ export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
+
+ # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
+ myndbm='U'
+ mygdbm='U'
+ mydb='U'
+ if use gdbm ; then
+ mygdbm='D'
+ if use berkdb ; then
+ myndbm='D'
+ fi
+ fi
+ if use berkdb ; then
+ mydb='D'
+ has_version '=sys-libs/db-1*' && myndbm='D'
+ fi
+
+ myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
+
+ if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
+ ewarn "Perl will not be built with berkdb support, use gcc if you need it..."
+ myconf -Ui_db -Ui_ndbm
+ fi
+
+ use perl_features_ithreads && myconf -Dusethreads
+
+ use perl_features_quadmath && myconf -Dusequadmath
+
+ if use perl_features_debug ; then
+ append-cflags "-g"
+ myconf -DDEBUGGING
+ elif [[ ${CFLAGS} == *-g* ]] ; then
+ myconf -DDEBUGGING=-g
+ else
+ myconf -DDEBUGGING=none
+ fi
+
+ # modifying 'optimize' prevents cross configure script from appending required flags
+ if tc-is-cross-compiler; then
+ append-cflags "-fwrapv"
+
+ # Needed for the CHOST build too (bug #932385)
+ export CFLAGS="${CFLAGS} -D_GNU_SOURCE"
+
+ # bug #913171
+ export HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE"
+ fi
+
+ # bug #877659, bug #821577
+ append-cflags -fno-strict-aliasing
+
+ # Autodiscover all old version directories, some of them will even be newer
+ # if you downgrade
+ if [[ -z ${PERL_OLDVERSEN} ]]; then
+ PERL_OLDVERSEN="$( find_candidate_inc_versions )"
+ fi
+
+ # Fixup versions, removing self match, fixing order and dupes
+ PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )"
+
+ # Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
+ if [[ -n "${PERL_OLDVERSEN// }" ]]; then
+ local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )"
+ einfo "This version of perl may partially support modules previously"
+ einfo "installed in any of the following paths:"
+ for incpath in ${inclist}; do
+ [[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}"
+ [[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}"
+ [[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}"
+ done
+ einfo "This is a temporary measure and you should aim to cleanup these paths"
+ einfo "via world updates and perl-cleaner"
+ # myconf -Dinc_version_list="${inclist}"
+ myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )"
+ fi
+
+ [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
+
+ # Make sure we can do the final link #523730, need to set deployment
+ # target to override hardcoded 10.3 which breaks on modern OSX
+ [[ ${CHOST} == *-darwin* ]] && \
+ myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
+
+ # Older macOS with non-Apple GCC chokes on inline in system headers
+ # using c89 mode as injected by cflags.SH, in addition, we override
+ # cflags, so we loose PERL_DARWIN which enables compat code that
+ # apparently on more recent macOS releases is no longer necessary
+ [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
+ append-cflags -Dinline=__inline__ -DPERL_DARWIN
+
+ # Prefix: the host system needs not to follow Gentoo multilib stuff, and in
+ # Prefix itself we don't do multilib either, so make sure perl can find
+ # something compatible.
+ if use prefix ; then
+ # Set a hook to check for each detected library whether it actually works.
+ export libscheck="
+ ( echo 'int main(){}' > '${T}'/conftest.c &&
+ $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
+ ) || xxx=/dev/null"
+
+ # Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
+ local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
+ myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
+ elif [[ $(get_libdir) != "lib" ]] ; then
+ # We need to use " and not ', as the written config.sh use ' ...
+ myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
+ fi
+
+ # don't try building ODBM, bug #354453
+ disabled_extensions="ODBM_File"
+
+ if ! use gdbm ; then
+ # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
+ disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
+ fi
+
+ myconf -Dnoextensions="${disabled_extensions}"
+
+ [[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
+
+ [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
+ # allow fiddling via EXTRA_ECONF, bug 558070
+ eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
+
+ myconf \
+ -Duseshrplib \
+ -Darchname="${myarch}" \
+ -Dar="$(tc-getAR)" \
+ -Dcc="$(tc-getCC)" \
+ -Dcpp="$(tc-getCPP)" \
+ -Dld="$(tc-getCC)" \
+ -Dnm="$(tc-getNM)" \
+ -Dranlib="$(tc-getRANLIB)" \
+ -Accflags="${CFLAGS} -DNO_PERL_RAND_SEED" \
+ -Doptimize="${CFLAGS}" \
+ -Dldflags="${LDFLAGS}" \
+ -Dprefix="${EPREFIX}"'/usr' \
+ -Dsiteprefix="${EPREFIX}"'/usr/local' \
+ -Dvendorprefix="${EPREFIX}"'/usr' \
+ -Dscriptdir="${EPREFIX}"'/usr/bin' \
+ -Dprivlib="${EPREFIX}${PRIV_LIB}" \
+ -Darchlib="${EPREFIX}${ARCH_LIB}" \
+ -Dsitelib="${EPREFIX}${SITE_LIB}" \
+ -Dsitearch="${EPREFIX}${SITE_ARCH}" \
+ -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
+ -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
+ -Dman1dir="${EPREFIX}"/usr/share/man/man1 \
+ -Dman3dir="${EPREFIX}"/usr/share/man/man3 \
+ -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
+ -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
+ -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
+ -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
+ -Dman1ext='1' \
+ -Dman3ext='3pm' \
+ -Dlibperl="${LIBPERL}" \
+ -Dlocincpth="${EPREFIX}"'/usr/include ' \
+ -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
+ -Duselargefiles \
+ -Dd_semctl_semun \
+ -Dcf_by='Gentoo' \
+ -Dmyhostname='localhost' \
+ -Dperladmin='root@localhost' \
+ -Ud_csh \
+ -Dsh="${EPREFIX}"/bin/sh \
+ -Dtargetsh="${EPREFIX}"/bin/sh \
+ -Uusenm \
+ "${EXTRA_ECONF[@]}"
+
+ if tc-is-cross-compiler; then
+ ./configure \
+ --target="${CHOST}" \
+ --build="${CBUILD}" \
+ -Dinstallprefix='' \
+ -Dinstallusrbinperl='undef' \
+ -Dusevendorprefix='define' \
+ "${myconf[@]}" \
+ || die "Unable to configure"
+ else
+ sh Configure \
+ -des \
+ -Dinstallprefix="${EPREFIX}"'/usr' \
+ -Dinstallusrbinperl='n' \
+ "${myconf[@]}" \
+ || die "Unable to configure"
+ fi
+}
+
+src_test() {
+ export NO_GENTOO_NETWORK_TESTS=1;
+ export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
+ export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
+ if [[ ${EUID} == 0 ]] ; then
+ ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
+ return 0
+ fi
+ TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
+}
+
+src_install() {
+ local i
+ local coredir="${ARCH_LIB}/CORE"
+
+ emake DESTDIR="${D}" install
+
+ rm -f "${ED}/usr/bin/perl${MY_PV}"
+ ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
+
+ if ! tc-is-static-only ; then
+ dolib.so "${ED}"${coredir}/${LIBPERL}
+ rm -f "${ED}"${coredir}/${LIBPERL}
+ ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
+ ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
+
+ ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
+ ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
+ ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
+ fi
+
+ rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
+
+ # This removes ${D} from Config.pm
+ for i in $(find "${D}" -iname "Config.pm" ) ; do
+ einfo "Removing ${D} from ${i}..."
+ sed -i -e "s:${D}::" "${i}" || die "Sed failed"
+ done
+
+ dodoc Changes* README AUTHORS
+
+ if use doc ; then
+ # HTML Documentation
+ # We expect errors, warnings, and such with the following.
+
+ dodir /usr/share/doc/${PF}/html
+ LD_LIBRARY_PATH=. ./perl installhtml \
+ --podroot='.' \
+ --podpath='lib:ext:pod:vms' \
+ --recurse \
+ --htmldir="${ED}/usr/share/doc/${PF}/html"
+ fi
+
+ [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
+
+ dual_scripts
+}
+
+pkg_preinst() {
+ check_rebuild
+}
+
+pkg_postinst() {
+ dual_scripts
+
+ if [[ -z "${ROOT}" ]] ; then
+ local INC DIR file
+ INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
+ einfo "Removing old .ph files"
+ for DIR in ${INC} ; do
+ if [[ -d "${DIR}" ]] ; then
+ for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
+ rm -f "${file}"
+ einfo "<< ${file}"
+ done
+ fi
+ done
+ # Silently remove the now empty dirs
+ for DIR in ${INC} ; do
+ if [[ -d "${DIR}" ]] ; then
+ find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
+ fi
+ done
+
+ fi
+}
+
+pkg_postrm() {
+ dual_scripts
+}
diff --git a/dev-lang/perl/perl-5.40.0.ebuild b/dev-lang/perl/perl-5.40.0.ebuild
new file mode 100644
index 000000000000..ebcb1e7114af
--- /dev/null
+++ b/dev-lang/perl/perl-5.40.0.ebuild
@@ -0,0 +1,861 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
+
+PATCH_VER=2
+CROSS_VER=1.5.2
+PATCH_BASE="perl-5.40.0-patches-${PATCH_VER}"
+PATCH_DEV=dilfridge
+
+DIST_AUTHOR=HAARG
+
+# Greatest first, don't include yourself
+# Devel point-releases are not ABI-intercompatible, but stable point releases are
+# BIN_OLDVERSEN contains only C-ABI-intercompatible versions
+PERL_BIN_OLDVERSEN=""
+
+if [[ "${PV##*.}" == "9999" ]]; then
+ DIST_VERSION=5.40.0
+else
+ DIST_VERSION="${PV/_rc/-RC}"
+fi
+SHORT_PV="${DIST_VERSION%.*}"
+
+# Even numbered major versions are ABI intercompatible
+# Odd numbered major versions are not
+if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
+ SUBSLOT="${DIST_VERSION%-RC*}"
+else
+ SUBSLOT="${DIST_VERSION%.*}"
+fi
+
+# Used only in tar paths
+MY_P="perl-${DIST_VERSION}"
+# Used in library paths
+MY_PV="${DIST_VERSION%-RC*}"
+
+DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
+
+HOMEPAGE="https://www.perl.org/"
+
+SRC_URI="
+ mirror://cpan/src/5.0/${MY_P}.tar.xz
+ mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
+ https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
+"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="|| ( Artistic GPL-1+ )"
+
+SLOT="0/${SUBSLOT}"
+
+if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+fi
+
+IUSE="berkdb perl_features_debug doc gdbm perl_features_ithreads minimal perl_features_quadmath"
+
+RDEPEND="
+ berkdb? ( sys-libs/db:= )
+ gdbm? ( >=sys-libs/gdbm-1.8.3:= )
+ app-arch/bzip2
+ >=sys-libs/zlib-1.2.12
+ virtual/libcrypt:=
+"
+DEPEND="${RDEPEND}"
+BDEPEND="${RDEPEND}"
+PDEPEND="
+ !minimal? (
+ >=app-admin/perl-cleaner-2.31
+ >=virtual/perl-CPAN-2.290.0
+ >=virtual/perl-Encode-3.120.0
+ >=virtual/perl-File-Temp-0.230.400-r2
+ >=virtual/perl-Data-Dumper-2.154.0
+ >=virtual/perl-Math-BigInt-1.999.842
+ virtual/perl-Test-Harness
+ )
+"
+
+# bug 390719, bug 523624
+# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
+
+dual_scripts() {
+ src_remove_dual perl-core/Archive-Tar 3.20.10_rc ptar ptardiff ptargrep
+ src_remove_dual perl-core/CPAN 2.360.0 cpan
+ src_remove_dual perl-core/Digest-SHA 6.40.0 shasum
+ src_remove_dual perl-core/Encode 3.210.0 enc2xs piconv
+ src_remove_dual perl-core/ExtUtils-MakeMaker 7.700.0 instmodsh
+ src_remove_dual perl-core/ExtUtils-ParseXS 3.510.0 xsubpp
+ src_remove_dual perl-core/IO-Compress 2.212.0 zipdetails
+ src_remove_dual perl-core/JSON-PP 4.160.0 json_pp
+ src_remove_dual perl-core/Module-CoreList 5.202.406.90 corelist
+ src_remove_dual perl-core/Pod-Checker 1.770.0 podchecker
+ src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
+ src_remove_dual perl-core/Pod-Usage 2.30.0 pod2usage
+ src_remove_dual perl-core/Test-Harness 3.480.0 prove
+ src_remove_dual perl-core/podlators 5.10.200_rc pod2man pod2text
+ src_remove_dual_man perl-core/podlators 5.10.200_rc /usr/share/man/man1/perlpodstyle.1
+}
+
+check_rebuild() {
+ # Fresh install
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ return 0;
+ # Major Upgrade
+ # doesn't matter if there's multiple copies, it still needs a rebuild
+ # if the string is anything other than "5.CURRENTMAJOR"
+ elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then
+ echo ""
+ ewarn "UPDATE THE PERL MODULES:"
+ ewarn "After updating dev-lang/perl the installed Perl modules"
+ ewarn "have to be re-installed. In most cases, this is done automatically"
+ ewarn "by the package manager, but subsequent steps are still recommended"
+ ewarn "to ensure system consistency."
+ ewarn
+ ewarn "You should start with a depclean to remove any unused perl dependencies"
+ ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
+ ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
+ ewarn "Recommended: emerge --depclean -va"
+ ewarn
+ ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
+ ewarn "remaining rebuilds portage may have missed."
+ ewarn "Use: perl-cleaner --all"
+ return 0;
+
+ # Reinstall w/ USE Change
+ elif
+ ( use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_ithreads]' ) ) || \
+ ( ! use perl_features_ithreads && ( has_version '<dev-lang/perl-5.38.2-r3[ithreads]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_ithreads]' ) ) || \
+ ( use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_quadmath]' ) ) || \
+ ( ! use perl_features_quadmath && ( has_version '<dev-lang/perl-5.38.2-r3[quadmath]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_quadmath]' ) ) || \
+ ( use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[-debug]' || has_version '>=dev-lang/perl-5.38.2-r3[-perl_features_debug]' ) ) || \
+ ( ! use perl_features_debug && ( has_version '<dev-lang/perl-5.38.2-r3[debug]' || has_version '>=dev-lang/perl-5.38.2-r3[perl_features_debug]' ) ) ; then
+ echo ""
+ ewarn "TOGGLED PERL FEATURES WARNING:"
+ ewarn "You changed one of the PERL_FEATURES flags ithreads, quadmath, or debug."
+ ewarn "You must rebuild all perl-modules installed. Mostly this should be done automatically"
+ ewarn "via the flag changes of the packages. If the rebuild fails, use perl-cleaner."
+ ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
+ ewarn
+ ewarn "NOTE: Previous to perl-5.38.2-r3, these flags were useflags for dev-lang/perl."
+ ewarn "If you just upgraded and do not intend to change anything, carry the same settings over"
+ ewarn "into a global PERL_FEATURES variable set in make.conf. E.g., "
+ ewarn "dev-lang/perl[ithreads,quadmath] becomes PERL_FEATURES=\"ithreads quadmath\""
+ fi
+}
+
+pkg_pretend() {
+ if \
+ ( use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[-ithreads]' ) || \
+ ( ! use perl_features_ithreads && has_version '<dev-lang/perl-5.38.2-r3[ithreads]' ) || \
+ ( use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[-quadmath]' ) || \
+ ( ! use perl_features_quadmath && has_version '<dev-lang/perl-5.38.2-r3[quadmath]' ) || \
+ ( use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[-debug]' ) || \
+ ( ! use perl_features_debug && has_version '<dev-lang/perl-5.38.2-r3[debug]' ) ; \
+ then
+ echo ""
+ ewarn "As of dev-lang/perl-5.38.2-r3, the useflags debug, ithreads, quadmath move into"
+ ewarn "a use-expand variable PERL_FEATURES, which should be set globally in make.conf."
+ ewarn "It appears that you have not set this variable properly yet."
+ ewarn ""
+ ewarn "Giving you a chance to abort and read the corresponding news item now..."
+ for n in 10 9 8 7 6 5 4 3 2 1 ; do
+ echo -n "${n} "
+ sleep 2
+ done;
+ echo "continuing."
+ fi
+}
+
+pkg_setup() {
+ case ${CHOST} in
+ *-darwin*) osname="darwin" ;;
+ *-solaris*) osname="solaris" ;;
+ *) osname="linux" ;;
+ esac
+
+ myarch="${CHOST%%-*}-${osname}"
+ if use perl_features_debug ; then
+ myarch+="-debug"
+ fi
+ if use perl_features_quadmath ; then
+ myarch+="-quadmath"
+ fi
+ if use perl_features_ithreads ; then
+ mythreading="-multi"
+ myarch+="-thread"
+ fi
+
+ PRIV_BASE="/usr/$(get_libdir)/perl5"
+ SITE_BASE="/usr/local/$(get_libdir)/perl5"
+ VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
+
+ LIBPERL="libperl$(get_libname ${MY_PV} )"
+
+ PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
+ ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+ SITE_LIB="${SITE_BASE}/${SUBSLOT}"
+ SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+ VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
+ VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+
+ dual_scripts
+}
+
+src_remove_dual_file() {
+ local i pkg ver
+ pkg="$1"
+ ver="$2"
+ shift 2
+ case "${EBUILD_PHASE:-none}" in
+ postinst|postrm)
+ for i in "$@" ; do
+ alternatives_auto_makesym "${i}" "${i}-[0-9]*"
+ done
+ ;;
+ setup)
+ for i in "$@" ; do
+ if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
+ has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
+ break
+ fi
+ done
+ ;;
+ install)
+ for i in "$@" ; do
+ if ! [[ -f "${ED}"${i} ]] ; then
+ ewarn "${i} does not exist!"
+ continue
+ fi
+ mv "${ED}"${i}{,-${ver}-${P}} || die
+ done
+ ;;
+ esac
+}
+
+src_remove_dual_man() {
+ local i pkg ver ff
+ pkg="$1"
+ ver="$2"
+ shift 2
+ case "${EBUILD_PHASE:-none}" in
+ postinst|postrm)
+ for i in "$@" ; do
+ ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
+ ff=${ff##*${i#${i%.[0-9]}}}
+ alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
+ done
+ ;;
+ install)
+ for i in "$@" ; do
+ if ! [[ -f "${ED}"${i} ]] ; then
+ ewarn "${i} does not exist!"
+ continue
+ fi
+ mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
+ done
+ ;;
+ esac
+}
+
+src_remove_dual() {
+ local i pkg ver
+ pkg="$1"
+ ver="$2"
+ shift 2
+ for i in "$@" ; do
+ src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
+ src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
+ done
+}
+
+src_prepare_perlcross() {
+ cp -a ../perl-cross-${CROSS_VER}/* . || die
+
+ # bug 794463, needs further analysis what is exactly wrong here
+ eapply "${FILESDIR}/perl-5.34.0-crossfit.patch"
+
+ # bug 604072
+ MAKEOPTS+=" -j1"
+ export MAKEOPTS
+}
+
+src_prepare_dynamic() {
+ ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
+ ln -s ${LIBPERL} libperl$(get_libname ) || die
+}
+
+# Copy a patch into the patch series
+# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug']
+# - description is optional, but recommended
+# - all arguments after descriptions are bug URLs
+add_patch() {
+ local patchdir="${WORKDIR}/patches"
+ local infodir="${WORKDIR}/patch-info"
+ local src_name dest_name desc
+ src_name="$1"
+ dest_name="$2"
+ desc="$3"
+ shift; shift; shift;
+ einfo "Adding ${dest_name} to patch bundle"
+ cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}"
+ if [[ -n "${desc}" ]]; then
+ printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc"
+ fi
+ if [[ $# -gt 0 ]]; then
+ # Note: when $@ is more than one element, this emits a
+ # line for each element
+ printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
+ fi
+}
+
+# Remove a patch using a glob expr
+# eg:
+# rm_patch *-darwin-Use-CC*
+#
+rm_patch() {
+ local patchdir="${WORKDIR}/patches"
+ local expr="$1"
+ local patch="$( cd "${patchdir}"; echo $expr )"
+ einfo "Removing $patch ($expr) from patch bundle"
+ if [[ -e "${patchdir}/${patch}" ]]; then
+ rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )"
+ else
+ ewarn "No ${expr} found in ${patchdir} to remove"
+ fi
+}
+
+# Yes, this is a reasonable amount of code for something seemingly simple
+# but this is far easier to debug when things go wrong, and things went wrong
+# multiple times while I was getting the exact number of slashes right, which
+# requires circumnavigating both bash and sed escape mechanisms.
+c_escape_string() {
+ local slash dquote
+ slash='\'
+ dquote='"'
+ re_slash="${slash}${slash}"
+ re_dquote="${slash}${dquote}"
+
+ # Convert \ to \\,
+ # " to \"
+ echo "$1" |\
+ sed "s|${re_slash}|${re_slash}${re_slash}|g" |\
+ sed "s|${re_dquote}|${re_slash}${re_dquote}|g"
+}
+c_escape_file() {
+ c_escape_string "$(cat "$1")"
+}
+
+apply_patchdir() {
+ local patchdir="${WORKDIR}/patches"
+ local infodir="${WORKDIR}/patch-info"
+ local patchoutput="patchlevel-gentoo.h"
+
+ # Inject Patch-Level info into description for patchlevel.h patch
+ # to show in -V
+ local patch_expr="*List-packaged-patches*"
+ local patch="$( cd "${patchdir}"; echo $patch_expr )";
+ einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )"
+
+ if [[ -e "${patchdir}/${patch}" ]]; then
+ printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\
+ >"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc"
+ else
+ eerror "No $patch_expr found in ${patchdir}"
+ fi
+
+ # Compute patch list to apply
+ # different name other than PATCHES to stop default
+ # reapplying it
+ # Single depth is currently only supported, as artifacts can reside
+ # from the old layout being multiple-directories, as well as it grossly
+ # simplifying the patchlevel_gentoo.h generation.
+ local PERL_PATCHES=($(
+ find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\
+ grep -E '[.](diff|patch)$' |\
+ sort -n
+ ))
+
+ for patch in "${PERL_PATCHES[@]}"; do
+ eapply "${WORKDIR}"/patches/${patch}
+ done
+
+ einfo "Generating $patchoutput"
+
+ # This code creates a header file, each iteration
+ # creates one-or-more-lines for each entry found in PERL_PATCHES
+ # and STDOUT is redirected to the .h file
+ for patch in "${PERL_PATCHES[@]}"; do
+ local desc_f="${infodir}/${patch}.desc"
+ local bugs_f="${infodir}/${patch}.bugs"
+
+ printf ',"%s"\n' "${patch}"
+ if [[ ! -e "${desc_f}" ]]; then
+ ewarn "No description provided for ${patch} (expected: ${desc_f} )"
+ else
+ local desc="$(c_escape_file "${desc_f}")"
+ printf ',"- %s"\n' "${desc}"
+ fi
+ if [[ -e "${bugs_f}" ]]; then
+ while read -d $'\n' -r line; do
+ local esc_line="$(c_escape_string "${line}")"
+ printf ',"- Bug: %s"\n' "${esc_line}"
+ done <"${bugs_f}"
+ fi
+ done > "${S}/${patchoutput}"
+ printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST"
+
+}
+
+src_prepare() {
+
+ local patchdir="${WORKDIR}/patches"
+
+ # mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die
+ # mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die
+
+ # Prepare Patch dir with additional patches / remove unwanted patches
+ # Inject bug/desc entries for perl -V
+ # Old example:
+ # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
+ # "Fix broken miniperl on hppa"\
+ # "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
+
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ # do NOT mess with nsl, on Solaris this is always necessary,
+ # when -lsocket is used e.g. to get h_errno
+ rm_patch "*-nsl-and-cl*"
+ fi
+
+ apply_patchdir
+
+ tc-is-cross-compiler && src_prepare_perlcross
+
+ tc-is-static-only || src_prepare_dynamic
+
+ if use gdbm; then
+ sed -i "s:INC => .*:INC => \"-I${EROOT}/usr/include/gdbm\":g" \
+ ext/NDBM_File/Makefile.PL || die
+ fi
+
+ # Use errno.h from prefix rather than from host system, bug #645804
+ if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
+ sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
+ fi
+
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ # set a soname, fix linking against just built libperl
+ sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # fix install_name (soname) not to reference $D
+ sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
+
+ # fix environ linkage absence (only a real issue on Darwin9)
+ if [[ ${CHOST##*-darwin} -le 9 ]] ; then
+ sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \
+ Makefile.SH || die
+ fi
+ fi
+
+ default
+}
+
+myconf() {
+ # the myconf array is declared in src_configure
+ myconf=( "${myconf[@]}" "$@" )
+}
+
+# Outputs a list of versions which have been seen in any of the
+# primary perl @INC prefix paths, such as:
+# /usr/lib64/perl5/<NUMBER>
+# /usr/local/lib64/perl5/<NUMBER>
+# /usr/lib64/perl5/vendor_perl/<NUMBER>
+#
+# All values of NUMBER must be like "5.x.y" or like "5.x"
+#
+find_candidate_inc_versions() {
+ local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
+ local dirs=(
+ "${EROOT}${PRIV_BASE}"
+ "${EROOT}${SITE_BASE}"
+ "${EROOT}${VENDOR_BASE}"
+ )
+ for dir in "${dirs[@]}"; do
+ if [[ ! -e "${dir}" ]]; then
+ continue
+ fi
+ # Without access to readdir() on these dirs, find will not be able
+ # to reveal any @INC directories inside them, and will subsequently prune
+ # them from the built perl's @INC support, breaking our compatiblity options
+ # entirely.
+ if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then
+ eerror "Bad permissions on ${dir}, this will probably break things"
+ eerror "Ensure ${dir} is +rx for at least uid=$EUID"
+ eerror "Recommended permission is +rx for all"
+ eerror "> chmod o+rx ${dir}"
+ fi
+ done
+ einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}"
+ find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null
+}
+
+# Sort versions passed versiony-ly, remove self-version if present
+# dedup. Takes each version as an argument
+sanitize_inc_versions() {
+ local vexclude="${SUBSLOT}"
+ einfo "Normalizing/Sorting candidate list: $*"
+ einfo " to remove '${vexclude}'"
+ # Note, general numeric sort has to be used
+ # for the last component, or unique will convert
+ # 5.30.0 + 5.30 into just 5.30
+ printf "%s\n" "$@" |\
+ grep -vxF "${vexclude}" |\
+ sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg
+}
+
+versions_to_inclist() {
+ local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
+
+ for v; do
+ has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ ";
+ echo -n "${v}/ ";
+ done
+}
+
+versions_to_gentoolibdirs() {
+ local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
+ local root
+ local v
+ for v; do
+ for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do
+ local fullpath="${EROOT}${root}/${v}"
+ if [[ -e "${fullpath}" ]]; then
+ has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}";
+ printf "%s:" "${fullpath}"
+ fi
+ done
+ done
+}
+
+src_configure() {
+ declare -a myconf
+
+ export LC_ALL="C"
+ [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
+
+ # Perl has problems compiling with -Os in your flags with glibc
+ replace-flags "-Os" "-O2"
+
+ # xlocale.h is going away in glibc-2.26, so it's counterproductive
+ # if we use it and include it in CORE/perl.h ... Perl builds just
+ # fine with glibc and locale.h only.
+ # However, the darwin prefix people have no locale.h ...
+ use elibc_glibc && myconf -Ui_xlocale
+
+ # Perl relies on -fwrapv semantics
+ filter-flags -ftrapv
+
+ # This flag makes compiling crash in interesting ways
+ filter-flags "-malign-double"
+
+ # On musl we dont want to use largefile *64 types, since 1) normal
+ # types are 64bit / largefile anyway and 2) the *64 types are going
+ # away in 1.2.4... bug #911233
+ use elibc_musl && myconf -Ud_off64_t
+
+ use sparc && myconf -Ud_longdbl
+
+ # This urgently needs debugging - on m68k, miniperl crashes during
+ # build otherwise..
+ use m68k && append-ldflags -Wl,-z,norelro
+
+ export BUILD_BZIP2=0
+ export BZIP2_INCLUDE=${EROOT}/usr/include
+ export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
+
+ export BUILD_ZLIB=False
+ export ZLIB_INCLUDE=${EROOT}/usr/include
+ export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
+
+ # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
+ myndbm='U'
+ mygdbm='U'
+ mydb='U'
+ if use gdbm ; then
+ mygdbm='D'
+ if use berkdb ; then
+ myndbm='D'
+ fi
+ fi
+ if use berkdb ; then
+ mydb='D'
+ has_version '=sys-libs/db-1*' && myndbm='D'
+ fi
+
+ myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
+
+ if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
+ ewarn "Perl will not be built with berkdb support, use gcc if you need it..."
+ myconf -Ui_db -Ui_ndbm
+ fi
+
+ use perl_features_ithreads && myconf -Dusethreads
+
+ use perl_features_quadmath && myconf -Dusequadmath
+
+ if use perl_features_debug ; then
+ append-cflags "-g"
+ myconf -DDEBUGGING
+ elif [[ ${CFLAGS} == *-g* ]] ; then
+ myconf -DDEBUGGING=-g
+ else
+ myconf -DDEBUGGING=none
+ fi
+
+ # modifying 'optimize' prevents cross configure script from appending required flags
+ if tc-is-cross-compiler; then
+ append-cflags "-fwrapv"
+
+ # Needed for the CHOST build too (bug #932385)
+ export CFLAGS="${CFLAGS} -D_GNU_SOURCE"
+
+ # bug #913171
+ export HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE"
+ fi
+
+ # bug #877659, bug #821577
+ append-cflags -fno-strict-aliasing
+
+ # Autodiscover all old version directories, some of them will even be newer
+ # if you downgrade
+ if [[ -z ${PERL_OLDVERSEN} ]]; then
+ PERL_OLDVERSEN="$( find_candidate_inc_versions )"
+ fi
+
+ # Fixup versions, removing self match, fixing order and dupes
+ PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )"
+
+ # Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
+ if [[ -n "${PERL_OLDVERSEN// }" ]]; then
+ local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )"
+ einfo "This version of perl may partially support modules previously"
+ einfo "installed in any of the following paths:"
+ for incpath in ${inclist}; do
+ [[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}"
+ [[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}"
+ [[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}"
+ done
+ einfo "This is a temporary measure and you should aim to cleanup these paths"
+ einfo "via world updates and perl-cleaner"
+ # myconf -Dinc_version_list="${inclist}"
+ myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )"
+ fi
+
+ [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
+
+ # Make sure we can do the final link #523730, need to set deployment
+ # target to override hardcoded 10.3 which breaks on modern OSX
+ [[ ${CHOST} == *-darwin* ]] && \
+ myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
+
+ # Older macOS with non-Apple GCC chokes on inline in system headers
+ # using c89 mode as injected by cflags.SH, in addition, we override
+ # cflags, so we loose PERL_DARWIN which enables compat code that
+ # apparently on more recent macOS releases is no longer necessary
+ [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
+ append-cflags -Dinline=__inline__ -DPERL_DARWIN
+
+ # Prefix: the host system needs not to follow Gentoo multilib stuff, and in
+ # Prefix itself we don't do multilib either, so make sure perl can find
+ # something compatible.
+ if use prefix ; then
+ # Set a hook to check for each detected library whether it actually works.
+ export libscheck="
+ ( echo 'int main(){}' > '${T}'/conftest.c &&
+ $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
+ ) || xxx=/dev/null"
+
+ # Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
+ local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
+ myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
+ elif [[ $(get_libdir) != "lib" ]] ; then
+ # We need to use " and not ', as the written config.sh use ' ...
+ myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
+ fi
+
+ # don't try building ODBM, bug #354453
+ disabled_extensions="ODBM_File"
+
+ if ! use gdbm ; then
+ # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
+ disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
+ fi
+
+ myconf -Dnoextensions="${disabled_extensions}"
+
+ [[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
+
+ [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
+ # allow fiddling via EXTRA_ECONF, bug 558070
+ eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
+
+ myconf \
+ -Duseshrplib \
+ -Darchname="${myarch}" \
+ -Dar="$(tc-getAR)" \
+ -Dcc="$(tc-getCC)" \
+ -Dcpp="$(tc-getCPP)" \
+ -Dld="$(tc-getCC)" \
+ -Dnm="$(tc-getNM)" \
+ -Dranlib="$(tc-getRANLIB)" \
+ -Accflags="${CFLAGS} -DNO_PERL_RAND_SEED" \
+ -Doptimize="${CFLAGS}" \
+ -Dldflags="${LDFLAGS}" \
+ -Dprefix="${EPREFIX}"'/usr' \
+ -Dsiteprefix="${EPREFIX}"'/usr/local' \
+ -Dvendorprefix="${EPREFIX}"'/usr' \
+ -Dscriptdir="${EPREFIX}"'/usr/bin' \
+ -Dprivlib="${EPREFIX}${PRIV_LIB}" \
+ -Darchlib="${EPREFIX}${ARCH_LIB}" \
+ -Dsitelib="${EPREFIX}${SITE_LIB}" \
+ -Dsitearch="${EPREFIX}${SITE_ARCH}" \
+ -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
+ -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
+ -Dman1dir="${EPREFIX}"/usr/share/man/man1 \
+ -Dman3dir="${EPREFIX}"/usr/share/man/man3 \
+ -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
+ -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
+ -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
+ -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
+ -Dman1ext='1' \
+ -Dman3ext='3pm' \
+ -Dlibperl="${LIBPERL}" \
+ -Dlocincpth="${EPREFIX}"'/usr/include ' \
+ -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
+ -Duselargefiles \
+ -Dd_semctl_semun \
+ -Dcf_by='Gentoo' \
+ -Dmyhostname='localhost' \
+ -Dperladmin='root@localhost' \
+ -Ud_csh \
+ -Dsh="${EPREFIX}"/bin/sh \
+ -Dtargetsh="${EPREFIX}"/bin/sh \
+ -Uusenm \
+ "${EXTRA_ECONF[@]}"
+
+ if tc-is-cross-compiler; then
+ ./configure \
+ --target="${CHOST}" \
+ --build="${CBUILD}" \
+ -Dinstallprefix='' \
+ -Dinstallusrbinperl='undef' \
+ -Dusevendorprefix='define' \
+ "${myconf[@]}" \
+ || die "Unable to configure"
+ else
+ sh Configure \
+ -des \
+ -Dinstallprefix="${EPREFIX}"'/usr' \
+ -Dinstallusrbinperl='n' \
+ "${myconf[@]}" \
+ || die "Unable to configure"
+ fi
+}
+
+src_test() {
+ export NO_GENTOO_NETWORK_TESTS=1;
+ export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
+ export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
+ if [[ ${EUID} == 0 ]] ; then
+ ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
+ return 0
+ fi
+ TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
+}
+
+src_install() {
+ local i
+ local coredir="${ARCH_LIB}/CORE"
+
+ emake DESTDIR="${D}" install
+
+ rm -f "${ED}/usr/bin/perl${MY_PV}"
+ ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
+
+ if ! tc-is-static-only ; then
+ dolib.so "${ED}"${coredir}/${LIBPERL}
+ rm -f "${ED}"${coredir}/${LIBPERL}
+ ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
+ ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
+
+ ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
+ ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
+ ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
+ fi
+
+ rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
+
+ # This removes ${D} from Config.pm
+ for i in $(find "${D}" -iname "Config.pm" ) ; do
+ einfo "Removing ${D} from ${i}..."
+ sed -i -e "s:${D}::" "${i}" || die "Sed failed"
+ done
+
+ dodoc Changes* README AUTHORS
+
+ if use doc ; then
+ # HTML Documentation
+ # We expect errors, warnings, and such with the following.
+
+ dodir /usr/share/doc/${PF}/html
+ LD_LIBRARY_PATH=. ./perl installhtml \
+ --podroot='.' \
+ --podpath='lib:ext:pod:vms' \
+ --recurse \
+ --htmldir="${ED}/usr/share/doc/${PF}/html"
+ fi
+
+ [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
+
+ dual_scripts
+}
+
+pkg_preinst() {
+ check_rebuild
+}
+
+pkg_postinst() {
+ dual_scripts
+
+ if [[ -z "${ROOT}" ]] ; then
+ local INC DIR file
+ INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
+ einfo "Removing old .ph files"
+ for DIR in ${INC} ; do
+ if [[ -d "${DIR}" ]] ; then
+ for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
+ rm -f "${file}"
+ einfo "<< ${file}"
+ done
+ fi
+ done
+ # Silently remove the now empty dirs
+ for DIR in ${INC} ; do
+ if [[ -d "${DIR}" ]] ; then
+ find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
+ fi
+ done
+
+ fi
+}
+
+pkg_postrm() {
+ dual_scripts
+}
diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest
index 29a8ddbafa8c..d558144544a8 100644
--- a/dev-lang/php/Manifest
+++ b/dev-lang/php/Manifest
@@ -1,5 +1,7 @@
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.3.6.tar.xz 12468116 BLAKE2B 33d318058123544cbfd95ca65bd75b1eda64757f07af1d0c49eeb98c1ea5f803f1a27f5fe32c983ecdf6f789cef8afc564b384b8537b0a11525cf3ec38373e04 SHA512 fa0b6734e34af90b67bdb991726faa02f7ddd7f31adf73d0b96762452a652690ef5fbae2f6cb941fbd41533b1d6870a78192433e78d5a16a8b5f55b3a5fdf44a
+DIST php-8.2.20.tar.xz 12097568 BLAKE2B 1e38e48ea9c28abfe2c3bd860bc5d959fbe327669c007f2e2a665ae14f5a045f6ad8a0a972f32618f88ea1ff3636c2692504478b5b094b48404d6c4a214f863b SHA512 c659ed4809b6507aa428b483c85c7322815ac9d7d8e4bfe575513a5e69c5a680b8d089fd98a19f83d3a00df3de61468809f21408455913aa24d519776e44abc5
+DIST php-8.3.8.tar.xz 12480896 BLAKE2B 477129fcd766f2235e3d776c923ba51b76539f074245e8041a861db09ebbc648658b2756e6a23051a75a512fdc6e5c129633d1471213dec6f7e24d4da0d317e8 SHA512 1a2840f0b5dcbea6dfcc3894cb9e38d103bf4110c1b956438199deee0b60e5ae63cce34be25ca6f03ac8d26581a852657f8800f92fefe38345e20443b646bb3e
diff --git a/dev-lang/php/php-8.1.28.ebuild b/dev-lang/php/php-8.1.28.ebuild
index 406551a46114..4fb765cbc0a9 100644
--- a/dev-lang/php/php-8.1.28.ebuild
+++ b/dev-lang/php/php-8.1.28.ebuild
@@ -20,7 +20,7 @@ LICENSE="PHP-3.01
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"
+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"
diff --git a/dev-lang/php/php-8.1.29.ebuild b/dev-lang/php/php-8.1.29.ebuild
new file mode 100644
index 000000000000..40dff326628c
--- /dev/null
+++ b/dev-lang/php/php-8.1.29.ebuild
@@ -0,0 +1,782 @@
+# 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.18.ebuild b/dev-lang/php/php-8.2.18.ebuild
index 5b90e1767bb8..a7ece279280a 100644
--- a/dev-lang/php/php-8.2.18.ebuild
+++ b/dev-lang/php/php-8.2.18.ebuild
@@ -20,7 +20,7 @@ LICENSE="PHP-3.01
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"
+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"
@@ -328,6 +328,10 @@ src_prepare() {
# 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() {
diff --git a/dev-lang/php/php-8.2.20.ebuild b/dev-lang/php/php-8.2.20.ebuild
new file mode 100644
index 000000000000..b41df824151a
--- /dev/null
+++ b/dev-lang/php/php-8.2.20.ebuild
@@ -0,0 +1,869 @@
+# 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"
+)
+
+# 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
+
+ # The expected warnings aren't triggered in this test because we
+ # define session.save_path on the CLI:
+ #
+ # https://github.com/php/php-src/issues/14368
+ #
+ rm ext/session/tests/gh13856.phpt || die
+}
+
+src_configure() {
+ addpredict /usr/share/snmp/mibs/.index #nowarn
+ addpredict /var/lib/net-snmp/mib_indexes #nowarn
+
+ # https://bugs.gentoo.org/866683, https://bugs.gentoo.org/913527
+ filter-lto
+
+ PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
+
+ # Don't allow ./configure to detect and use an existing version
+ # of PHP; this can lead to all sorts of weird unpredictability
+ # as in bug 900210.
+ export ac_cv_prog_PHP=""
+
+ # The php-fpm config file wants localstatedir to be ${EPREFIX}/var
+ # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
+ local our_conf=(
+ --prefix="${PHP_DESTDIR}"
+ --mandir="${PHP_DESTDIR}/man"
+ --infodir="${PHP_DESTDIR}/info"
+ --libdir="${PHP_DESTDIR}/lib"
+ --with-libdir="$(get_libdir)"
+ --localstatedir="${EPREFIX}/var"
+ --without-pear
+ --without-valgrind
+ --with-external-libcrypt
+ $(use_enable threads zts)
+ )
+
+ # The slotted man/info pages will be missed by the default list of
+ # docompress paths.
+ docompress "${PHP_DESTDIR}/man" "${PHP_DESTDIR}/info"
+
+ our_conf+=(
+ $(use_with apparmor fpm-apparmor)
+ $(use_with argon2 password-argon2 "${EPREFIX}/usr")
+ $(use_with avif)
+ $(use_enable bcmath)
+ $(use_with bzip2 bz2 "${EPREFIX}/usr")
+ $(use_enable calendar)
+ $(use_enable ctype)
+ $(use_with curl)
+ $(use_enable xml dom)
+ $(use_with enchant)
+ $(use_enable exif)
+ $(use_with ffi)
+ $(use_enable fileinfo)
+ $(use_enable filter)
+ $(use_enable ftp)
+ $(use_with nls gettext "${EPREFIX}/usr")
+ $(use_with gmp gmp "${EPREFIX}/usr")
+ $(use_with mhash mhash "${EPREFIX}/usr")
+ $(use_with iconv iconv \
+ $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr"))
+ $(use_enable intl)
+ $(use_enable ipv6)
+ $(use_with kerberos)
+ $(use_with xml libxml)
+ $(use_enable unicode mbstring)
+ $(use_with ssl openssl)
+ $(use_enable pcntl)
+ $(use_enable phar)
+ $(use_enable pdo)
+ $(use_enable opcache)
+ $(use_with postgres pgsql "${EPREFIX}/usr")
+ $(use_enable posix)
+ $(use_with selinux fpm-selinux)
+ $(use_with spell pspell "${EPREFIX}/usr")
+ $(use_enable simplexml)
+ $(use_enable sharedmem shmop)
+ $(use_with snmp snmp "${EPREFIX}/usr")
+ $(use_enable soap)
+ $(use_enable sockets)
+ $(use_with sodium)
+ $(use_with sqlite sqlite3)
+ $(use_enable sysvipc sysvmsg)
+ $(use_enable sysvipc sysvsem)
+ $(use_enable sysvipc sysvshm)
+ $(use_with tidy tidy "${EPREFIX}/usr")
+ $(use_enable tokenizer)
+ $(use_enable xml)
+ $(use_enable xmlreader)
+ $(use_enable xmlwriter)
+ $(use_with xslt xsl)
+ $(use_with zip)
+ $(use_with zlib zlib "${EPREFIX}/usr")
+ $(use_enable debug)
+ $(use_with valgrind)
+ )
+
+ # DBA support
+ if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
+ || use qdbm || use lmdb || use tokyocabinet ; then
+ our_conf+=( "--enable-dba" )
+ fi
+
+ # DBA drivers support
+ our_conf+=(
+ $(use_with cdb)
+ $(use_with berkdb db4 "${EPREFIX}/usr")
+ $(use_enable flatfile)
+ $(use_with gdbm gdbm "${EPREFIX}/usr")
+ $(use_enable inifile)
+ $(use_with qdbm qdbm "${EPREFIX}/usr")
+ $(use_with tokyocabinet tcadb "${EPREFIX}/usr")
+ $(use_with lmdb lmdb "${EPREFIX}/usr")
+ )
+
+ # Support for the GD graphics library
+ our_conf+=(
+ $(use_with truetype freetype)
+ $(use_enable cjk gd-jis-conv)
+ $(use_with gd jpeg)
+ $(use_with xpm)
+ $(use_with webp)
+ )
+ # enable gd last, so configure can pick up the previous settings
+ our_conf+=( $(use_enable gd) )
+
+ # IMAP support
+ if use imap ; then
+ our_conf+=(
+ $(use_with imap imap "${EPREFIX}/usr")
+ $(use_with ssl imap-ssl "${EPREFIX}/usr")
+ )
+ fi
+
+ # LDAP support
+ if use ldap ; then
+ our_conf+=(
+ $(use_with ldap ldap "${EPREFIX}/usr")
+ $(use_with ldap-sasl)
+ )
+ fi
+
+ # MySQL support
+ our_conf+=( $(use_with mysqli) )
+
+ local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
+ if use mysql || use mysqli ; then
+ our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
+ fi
+
+ # ODBC support
+ if use odbc && use iodbc ; then
+ our_conf+=(
+ --without-unixODBC
+ --with-iodbc
+ $(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr")
+ )
+ elif use odbc ; then
+ our_conf+=(
+ --with-unixODBC="${EPREFIX}/usr"
+ --without-iodbc
+ $(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr")
+ )
+ else
+ our_conf+=(
+ --without-unixODBC
+ --without-iodbc
+ --without-pdo-odbc
+ )
+ fi
+
+ # Oracle support
+ our_conf+=( $(use_with oci8-instant-client oci8) )
+
+ # PDO support
+ if use pdo ; then
+ our_conf+=(
+ $(use_with mssql pdo-dblib "${EPREFIX}/usr")
+ $(use_with mysql pdo-mysql "mysqlnd")
+ $(use_with postgres pdo-pgsql)
+ $(use_with sqlite pdo-sqlite)
+ $(use_with firebird pdo-firebird "${EPREFIX}/usr")
+ $(use_with oci8-instant-client pdo-oci)
+ )
+ fi
+
+ # readline/libedit support
+ our_conf+=(
+ $(use_with readline readline "${EPREFIX}/usr")
+ $(use_with libedit)
+ )
+
+ # Session support
+ if use session ; then
+ our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") )
+ else
+ our_conf+=( $(use_enable session) )
+ fi
+
+ # Use pic for shared modules such as apache2's mod_php
+ our_conf+=( --with-pic )
+
+ # we use the system copy of pcre
+ # --with-external-pcre affects ext/pcre
+ our_conf+=(
+ --with-external-pcre
+ $(use_with jit pcre-jit)
+ )
+
+ # Catch CFLAGS problems
+ # Fixes bug #14067.
+ # Changed order to run it in reverse for bug #32022 and #12021.
+ replace-cpu-flags "k6*" "i586"
+
+ # Cache the ./configure test results between SAPIs.
+ our_conf+=( --cache-file="${T}/config.cache" )
+
+ # Support user-passed configuration parameters
+ our_conf+=( ${EXTRA_ECONF:-} )
+
+ # Support the Apache2 extras, they must be set globally for all
+ # SAPIs to work correctly, especially for external PHP extensions
+
+ # Create separate build trees for each enabled SAPI. The upstream
+ # build system doesn't do this, but we have to do it to use a
+ # different php.ini for each SAPI (see --with-config-file-path and
+ # --with-config-file-scan-dir below). The path winds up define'd
+ # in main/build-defs.h which is included in main/php.h which is
+ # included by basically everything; so, avoiding a rebuild after
+ # changing it is not an easy job.
+ local one_sapi
+ local sapi
+ mkdir "${WORKDIR}/sapis-build" || die
+ for one_sapi in $SAPIS ; do
+ use "${one_sapi}" || continue
+ php_set_ini_dir "${one_sapi}"
+
+ # The BUILD_DIR variable is used to determine where to output
+ # the files that autotools creates. This was all originally
+ # based on the autotools-utils eclass.
+ BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
+ cp -a "${S}" "${BUILD_DIR}" || die
+
+ local sapi_conf=(
+ --with-config-file-path="${PHP_INI_DIR}"
+ --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
+ )
+
+ for sapi in $SAPIS ; do
+ case "$sapi" in
+ cli|cgi|embed|fpm|phpdbg)
+ if [[ "${one_sapi}" == "${sapi}" ]] ; then
+ sapi_conf+=( "--enable-${sapi}" )
+ if [[ "fpm" == "${sapi}" ]] ; then
+ sapi_conf+=(
+ $(use_with acl fpm-acl)
+ $(use_with systemd fpm-systemd)
+ )
+ fi
+ else
+ sapi_conf+=( "--disable-${sapi}" )
+ fi
+ ;;
+
+ apache2)
+ if [[ "${one_sapi}" == "${sapi}" ]] ; then
+ sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
+ else
+ sapi_conf+=( --without-apxs2 )
+ fi
+ ;;
+ esac
+ done
+
+ # Construct the $myeconfargs array by concatenating $our_conf
+ # (the common args) and $sapi_conf (the SAPI-specific args).
+ local myeconfargs=( "${our_conf[@]}" )
+ myeconfargs+=( "${sapi_conf[@]}" )
+
+ pushd "${BUILD_DIR}" > /dev/null || die
+ einfo "Running econf in ${BUILD_DIR}"
+ econf "${myeconfargs[@]}"
+ popd > /dev/null || die
+ done
+}
+
+src_compile() {
+ # snmp seems to run during src_compile, too (bug #324739)
+ addpredict /usr/share/snmp/mibs/.index #nowarn
+ addpredict /var/lib/net-snmp/mib_indexes #nowarn
+
+ if use oci8-instant-client && use kerberos && use imap && use phar; then
+ # A conspiracy takes place when the first three of these flags
+ # are set together, causing the newly-built "php" to open
+ # /dev/urandom with mode rw when it starts. That's not actually
+ # a problem... unless you also have USE=phar, which runs that
+ # "php" to build some phar thingy in src_compile(). Later in
+ # src_test(), portage (at least) sets "addpredict /" so the
+ # problem does not repeat.
+ addpredict /dev/urandom #nowarn
+ fi
+
+ local sapi
+ for sapi in ${SAPIS} ; do
+ use "${sapi}" && emake -C "${WORKDIR}/sapis-build/${sapi}"
+ done
+}
+
+src_install() {
+ # see bug #324739 for what happens when we don't have that
+ addpredict /usr/share/snmp/mibs/.index #nowarn
+
+ # grab the first SAPI that got built and install common files from there
+ local first_sapi="", sapi=""
+ for sapi in $SAPIS ; do
+ if use $sapi ; then
+ first_sapi=$sapi
+ break
+ fi
+ done
+
+ # Makefile forgets to create this before trying to write to it...
+ dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
+
+ # Install php environment (without any sapis)
+ cd "${WORKDIR}/sapis-build/$first_sapi" || die
+ emake INSTALL_ROOT="${D}" \
+ install-build install-headers install-programs
+
+ local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
+
+ # Create the directory where we'll put version-specific php scripts
+ keepdir "/usr/share/php${PHP_MV}"
+
+ local file=""
+ local sapi_list=""
+
+ for sapi in ${SAPIS}; do
+ if use "${sapi}" ; then
+ einfo "Installing SAPI: ${sapi}"
+ cd "${WORKDIR}/sapis-build/${sapi}" || die
+
+ if [[ "${sapi}" == "apache2" ]] ; then
+ # We're specifically not using emake install-sapi as libtool
+ # may cause unnecessary relink failures (see bug #351266)
+ insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
+ newins ".libs/libphp$(get_libname)" \
+ "libphp${PHP_MV}$(get_libname)"
+ keepdir "/usr/$(get_libdir)/apache2/modules"
+ else
+ # needed each time, php_install_ini would reset it
+ local dest="${PHP_DESTDIR#${EPREFIX}}"
+ into "${dest}"
+ case "$sapi" in
+ cli)
+ source="sapi/cli/php"
+ # Install the "phar" archive utility.
+ if use phar ; then
+ emake INSTALL_ROOT="${D}" install-pharcmd
+ dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}"
+ fi
+ ;;
+ cgi)
+ source="sapi/cgi/php-cgi"
+ ;;
+ fpm)
+ source="sapi/fpm/php-fpm"
+ ;;
+ embed)
+ source="libs/libphp$(get_libname)"
+ ;;
+ phpdbg)
+ source="sapi/phpdbg/phpdbg"
+ ;;
+ *)
+ die "unhandled sapi in src_install"
+ ;;
+ esac
+
+ if [[ "${source}" == *"$(get_libname)" ]]; then
+ dolib.so "${source}"
+ else
+ dobin "${source}"
+ local name="$(basename ${source})"
+ dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}"
+ fi
+ fi
+
+ php_install_ini "${sapi}"
+
+ # construct correct SAPI string for php-config
+ # thanks to ferringb for the bash voodoo
+ if [[ "${sapi}" == "apache2" ]]; then
+ sapi_list="${sapi_list:+${sapi_list} }apache2handler"
+ else
+ sapi_list="${sapi_list:+${sapi_list} }${sapi}"
+ fi
+ fi
+ done
+
+ # Installing opcache module
+ if use opcache ; then
+ into "${PHP_DESTDIR#${EPREFIX}}"
+ dolib.so "modules/opcache$(get_libname)"
+ fi
+
+ # Install env.d files
+ newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
+ sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
+ sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
+
+ # set php-config variable correctly (bug #278439)
+ sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
+ "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
+
+ if use fpm ; then
+ if use systemd; then
+ systemd_newunit "${FILESDIR}/php-fpm_at.service" \
+ "php-fpm@${SLOT}.service"
+ else
+ systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
+ "php-fpm@${SLOT}.service"
+ fi
+ fi
+}
+
+src_test() {
+ export TEST_PHP_EXECUTABLE="${WORKDIR}/sapis-build/cli/sapi/cli/php"
+
+ # Sometimes when the sub-php launches a sub-sub-php, it uses these.
+ # Without an "-n" in all instances, the *live* php.ini can be loaded,
+ # pulling in *live* zend extensions. And those can be incompatible
+ # with the thing we just built.
+ export TEST_PHP_EXTRA_ARGS="-n"
+
+ if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
+ export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
+ fi
+
+ if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
+ export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
+ fi
+
+ # The sendmail override prevents ext/imap/tests/bug77020.phpt from
+ # actually trying to send mail, and will be fixed upstream soon:
+ #
+ # https://github.com/php/php-src/issues/11629
+ #
+ # The IO capture tests need to be disabled because they fail when
+ # std{in,out,err} are redirected (as they are within portage).
+ #
+ # One -n applies to the top-level "php", while the other applies
+ # to any sub-php that get invoked by the test runner.
+ SKIP_IO_CAPTURE_TESTS=1 SKIP_PERF_SENSITIVE=1 REPORT_EXIT_STATUS=1 \
+ "${TEST_PHP_EXECUTABLE}" -n \
+ "${WORKDIR}/sapis-build/cli/run-tests.php" --offline -n -q \
+ -d "session.save_path=${T}" \
+ -d "sendmail_path=echo >/dev/null" \
+ || die "tests failed"
+}
+
+pkg_postinst() {
+ # Output some general info to the user
+ if use apache2 ; then
+ elog
+ elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
+ elog "your apache2 command. OpenRC users can append that string to"
+ elog "APACHE2_OPTS in /etc/conf.d/apache2."
+ elog
+ elog "The apache module configuration file 70_mod_php.conf is"
+ elog "provided (and maintained) by eselect-php."
+ elog
+ fi
+
+ # Create the symlinks for php
+ local m
+ for m in ${SAPIS}; do
+ [[ ${m} == 'embed' ]] && continue;
+ if use $m ; then
+ local ci=$(eselect php show $m)
+ if [[ -z $ci ]]; then
+ eselect php set $m php${SLOT} || die
+ einfo "Switched ${m} to use php:${SLOT}"
+ einfo
+ elif [[ $ci != "php${SLOT}" ]] ; then
+ elog "To switch $m to use php:${SLOT}, run"
+ elog " eselect php set $m php${SLOT}"
+ elog
+ fi
+ fi
+ done
+
+ # Remove dead symlinks for SAPIs that were just disabled. For
+ # example, if the user has the cgi SAPI enabled, then he has an
+ # eselect-php symlink for it. If he later reinstalls PHP with
+ # USE="-cgi", that symlink will break. This call to eselect is
+ # supposed to remove that dead link per bug 572436.
+ eselect php cleanup || die
+
+ if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
+ elog "To build extensions for this version of PHP, you will need to"
+ elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
+ elog
+ fi
+
+ # Warn about the removal of PHP_INI_VERSION if the user has it set.
+ if [[ -n "${PHP_INI_VERSION}" ]]; then
+ ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
+ ewarn 'remove it from your configuration at your convenience. See'
+ ewarn
+ ewarn ' https://bugs.gentoo.org/611214'
+ ewarn
+ ewarn 'for more information.'
+ fi
+
+ elog "For details on how version slotting works, please see"
+ elog "the wiki:"
+ elog
+ elog " https://wiki.gentoo.org/wiki/PHP"
+ elog
+}
+
+pkg_postrm() {
+ # This serves two purposes. First, if we have just removed the last
+ # installed version of PHP, then this will remove any dead symlinks
+ # belonging to eselect-php. Second, if a user upgrades slots from
+ # (say) 5.6 to 7.0 and depcleans the old slot, then this will update
+ # his existing symlinks to point to the new 7.0 installation. The
+ # latter is bug 432962.
+ #
+ # Note: the eselect-php package may not be installed at this point,
+ # so we can't die() if this command fails.
+ eselect php cleanup
+}
diff --git a/dev-lang/php/php-8.3.6.ebuild b/dev-lang/php/php-8.3.8.ebuild
index 7242d6432c71..607ae090b3e6 100644
--- a/dev-lang/php/php-8.3.6.ebuild
+++ b/dev-lang/php/php-8.3.8.ebuild
@@ -5,7 +5,7 @@ EAPI=8
WANT_AUTOMAKE="none"
-inherit flag-o-matic multilib systemd autotools
+inherit flag-o-matic multilib systemd
DESCRIPTION="The PHP language runtime engine"
HOMEPAGE="https://www.php.net/"
@@ -118,7 +118,7 @@ COMMON_DEPEND="
unicode? ( dev-libs/oniguruma:= )
valgrind? ( dev-debug/valgrind )
webp? ( media-libs/libwebp:0= )
- xml? ( dev-libs/libxml2 )
+ xml? ( >=dev-libs/libxml2-2.12.5 )
xpm? ( x11-libs/libXpm )
xslt? ( dev-libs/libxslt )
zip? ( dev-libs/libzip:= )
@@ -144,11 +144,6 @@ BDEPEND="virtual/pkgconfig"
PHP_MV="$(ver_cut 1)"
-PATCHES=(
- "${FILESDIR}/php-iodbc-header-location.patch"
- "${FILESDIR}/fix-musl-llvm.patch"
-)
-
# ARM/Windows functions (bug 923335)
QA_CONFIG_IMPL_DECL_SKIP=(
__crc32d
@@ -229,12 +224,6 @@ src_prepare() {
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
-
# fails in a network sandbox,
#
# https://github.com/php/php-src/issues/11662
@@ -259,21 +248,18 @@ src_prepare() {
sapi/cli/tests/bug78323.phpt \
|| die
- # https://github.com/php/php-src/issues/12801
- rm ext/pcre/tests/gh11374.phpt || die
-
- # A new test failure appearing in 8.3.2, mentioned on the PR
- # where it was likely introduced:
- #
- # https://github.com/php/php-src/pull/13017
- #
- rm ext/dom/tests/DOMNode_isEqualNode.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
+
+ # The expected warnings aren't triggered in this test because we
+ # define session.save_path on the CLI:
+ #
+ # https://github.com/php/php-src/issues/14368
+ #
+ rm ext/session/tests/gh13856.phpt || die
}
src_configure() {
@@ -422,10 +408,22 @@ src_configure() {
# ODBC support
if use odbc && use iodbc ; then
+ # Obtain the correct -l and -I flags for the actual build from
+ # pkg-config. We use the "generic" library type to avoid the
+ # (wrong) hard-coded include dir for iodbc.
+ #
+ # We set the pdo_odbc_def_incdir variable because the
+ # ./configure script checks for the headers using "test -f" and
+ # ignores your CFLAGS... and pdo_odbc_def_libdir prevents the
+ # build system from appending a nonsense -L flag.
+ local iodbc_ldflags=$(pkg-config --libs libiodbc)
+ local iodbc_cflags=$(pkg-config --cflags libiodbc)
our_conf+=(
+ pdo_odbc_def_libdir="${EPREFIX}/usr/$(get_libdir)"
+ pdo_odbc_def_incdir="${EPREFIX}/usr/include/iodbc"
--without-unixODBC
--with-iodbc
- $(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr")
+ $(use_with pdo pdo-odbc "generic,,iodbc,${iodbc_ldlags},${iodbc_cflags}")
)
elif use odbc ; then
our_conf+=(
@@ -691,11 +689,6 @@ src_test() {
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).
#
@@ -705,7 +698,6 @@ src_test() {
"${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"
}
diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest
index 3a7dcc26b119..4f5ffd9126dd 100644
--- a/dev-lang/python/Manifest
+++ b/dev-lang/python/Manifest
@@ -2,26 +2,32 @@ DIST Python-2.7.18.tar.xz 12854736 BLAKE2B 060a621c91dd8e3d321aec99d44c17aa67381
DIST Python-2.7.18.tar.xz.asc 833 BLAKE2B 1d98770e46171971fb99994508d238c01d2755281d2f94353314014d9e83e0ec5f0b3e3950ea1fdf5fce9ba6b8f55312355845c2a3fc4291c27ee56fe6215448 SHA512 c2a5f5a52f47dec52460ad3275758d4e5de6e7075c3def4353c988d74d563a39b42cae2d5eb24e2a23a6247cef69100f91620b11a49c2359fbf99b203c9cbda8
DIST Python-3.10.14.tar.xz 19600188 BLAKE2B a9e65fff590d56848f55f2d93d8a1c631bb8135617112997fbaea9fc45db1d5e2ce39f00cb29c9428542e523fdf48064bdb9aea144acb7aa7cfe71990b8e949e SHA512 adee638aeca898743da4b8245c0fa1e9b94b516f22e716e60c99038f0bb3dcbf726317aa86656404be1719b5a7c58eb09533720ebc0badbb04bd9a534dd48fef
DIST Python-3.10.14.tar.xz.asc 833 BLAKE2B a8ff46628d72540d0cbfbca91742e0901d7679229d873c3c92fd06d3b45a057daa5b70eb5f026db89d498cb84c10b8c477e79b012582c9fa2bf9d514637c2de7 SHA512 821046b8eb559c3ef800f26739c995e7a71469a1e765ee7d516690236e16d2637ada7b2f9535b8c0dceaacf243e7b059f6f106b4a25faae365aa2099d1ff538c
-DIST Python-3.11.8.tar.xz 20041256 BLAKE2B 361253743c58facd01063922523c39fafe647a4204e04db79f36f0c3c180c2f1e95e8ea6662e85a8da06bdbd84d32bb7df9ac0febf361122df5b207ade562740 SHA512 434e727fa370def348838fd84acb69b4d309cfb03f61bf5069150164e9ca005637ac01dfbf997f445607d4e28d02c8bed0858b36589240ccadaa4c14c19f2320
-DIST Python-3.11.8.tar.xz.asc 833 BLAKE2B c82907808de345b263cd1869589004a29e94f225c338a6da3035130728bda137727898743f30d64cc4b819a28cd035fa70123cc45cbf8719b66f9d3ef14452e2 SHA512 aebec01f84e96a76f6c5949004df2bb51c817bac3fc8d925ee26ded1ff2d80bec1b579dd0fc129004bc9cd81cbdcdcdf7c1f0471c3d26b70bd6dac11b97187e0
DIST Python-3.11.9.tar.xz 20175816 BLAKE2B 4e7cd2c42ee39b5ef9624ebd1798320957e948cb4f23f17fd1530814c60126dbf988846928d4d7d4b9d2174029ab8d4dbaf19e6203da237da4c3212ddebd5803 SHA512 2b0a1d936b4ef8376f9655797aece8ffdff75031ad7bfa840f330cac2aed189aecc80c163edc12ea772851d7a011f3fc1960470a73d9d4290cf3ab8ad6ed7e6a
DIST Python-3.11.9.tar.xz.asc 833 BLAKE2B fa29f632bae0bee7db946038ee3529bc3bfbe1b2e755b21394f67a3c80911ce8079aaab43a16d88e614a8bfc01fb5105ce3f61c59a5ca44470b0f59787c707b3 SHA512 b18b50e7168b2ca5376a1fa75e50e8baae2026d4f11d4cf613d758f3f17df4610fe4653fb2ac0c5c4ec0f6e630dc6490ad1ff32a2fd0ebd60f9f3bd136207ffc
-DIST Python-3.12.2.tar.xz 20591308 BLAKE2B 419186d220d4ae5ca31466771158c8b56f5298b93e81a29993f36711e08b0384e002d891280ca29099ae826919ba99c2d056d468d9d3049a984d58e01d4972c0 SHA512 2ccfae7b9f95d8e15ea85d3f66eea5f6a8fdcaffc0b405095fecb33efc0df50b831c1215542910ced948b54e6de1f7242b0b8b9afc5f89079451c552430d7d9f
-DIST Python-3.12.2.tar.xz.asc 963 BLAKE2B 45bfa01009f4df19d348a1fda722901cb4f0b76eb63fcf1061c2796949b5b2ef301fd0fdf818cd145e41d45e5785e0cfbfab8d98751765741715ee7d1b27f2f8 SHA512 fb477acb49864a662b1586db79e80fd8ebab85d4e5e14acd3bfb5afc3dbe8d6b9bf97eb518dfb77662e27040d400f451ed7575fe1264a6cc0d9feb06e4f2dc84
DIST Python-3.12.3.tar.xz 20625068 BLAKE2B fc4f57ae50183db4c8cb37d94c37a7e58da5d031e03866841a678b986f01bbb8afdefb38124ba82b0a4988445b647214be43338dea13b0f063d3c2bf81c48c0b SHA512 4a2213b108e7f1f1525baa8348e68b2a2336d925e60d0a59f0225fc470768a2c8031edafc0b8243f94dbae18afda335ee5adf2785328c2218fd64cbb439f13a4
DIST Python-3.12.3.tar.xz.asc 963 BLAKE2B f9668dde210793f8da0e0bb026b8ec3e0b4bc3abc58e72732f8faf356b19ca88a59b9d89b4b10f77b3602d9a967f0f2f44a0f091d698bc28ba9bad8049e5e006 SHA512 c291ec5b5e4f8deba867cc517624dd9a174745f04061ef737e58f3d52b9b30318264aec350e339fe88ccb493809ca1a90a378e86d86b8ec4a4f578b1a5843624
-DIST Python-3.13.0a6.tar.xz 20890000 BLAKE2B 3a08003be366d78c8e3f7d45440bb23a6c9fb1228a31212b1585d1ab1129a6e252e852f8bd300c13d45ccaa0988f6f5de2a067b4a0c9583be10da4c20ceffa74 SHA512 6e999c718cdfede4abc52297aae7160a2864424e8f49a47321fa822d40c331a3d061a0982e355351a0c4bea40e9b1ec3832d76a7f4b6b3986b62fca2757f0ca1
-DIST Python-3.13.0a6.tar.xz.asc 963 BLAKE2B 8f221fbba5f92a0468d2c28418b4d02037a59d4177e3e96f339a67376d0335df9ca23294e63d5ef4ef926bf7deafb2f8a458e740281429b0a648bd087b4e99a4 SHA512 1ec2abe8198a5fbd98490274bed7e84b48fcfc6ff25fcb474455d9f33b62673cfb7cf4939b304684aed005975d166143cb644b9a3e484d25de3dacb869de0131
+DIST Python-3.12.4.tar.xz 20659356 BLAKE2B 4255171ef8ee1777bab829be7bbaf28a9d5073985b3b1309a41694dda5f6b4ad599df4534a1ce83ec65b357d42416cc18722ca94b4227a45ebd90e2c1df90945 SHA512 750132ee6369196096130a924f4ddb78b9a55804133e5d136a70b9280928822974d1aa559d844486df02e89155fb0d8117871e1ac532abc18174309ca4b08369
+DIST Python-3.12.4.tar.xz.asc 963 BLAKE2B d4f62dca1de5f4e4b2581fc49ca55b1d87abe7c4ceb2c9087efe4b92d9e9b3bdd25949bbf82fd771b4b60bc3690be982c2f25b810d87592665f0728fbe08be9d SHA512 1102b17f395e0ec5de5368d04a4dceb8cc98dd408b68b53998071cf129eb9a6c259316a416128f1dfa37a739f86e599507502a98430348da2272442ce1b7059e
+DIST Python-3.13.0b1.tar.xz 21054240 BLAKE2B fba108b2971fe188a05340753a48379c9a829ce680f13dc50d95d889ef5ee833b82be157d1b011ba841c149d633e8eb64b07098bf03a2adcf711b3f688465050 SHA512 81cc1d8691bfcc8f8bb232ea15c18039d0df036f5cbc1667fec3b6c34cdf198bed97418ec775c037778c250b7bc4f35bd5fb938dd478cc17fc48c74b8a2b2d19
+DIST Python-3.13.0b1.tar.xz.asc 963 BLAKE2B 1b038d2b73fdbe11a1ada18ceab4a174ae52aab68ae9c3a9952ee60a16ce3e08e54c13e0c47264442415f70bd39a06c2b0f97c3cef31330f51102dad6d4a837b SHA512 c10832b5016ad9a9588b7efd29a35272c1c07b444df116c397fed82d66f30150687d68a6853637094be2fe1d8ed0928a9cd151617c91d9eb9938ba1385bd7143
+DIST Python-3.13.0b2.tar.xz 21089692 BLAKE2B 3cc77e9b7abcd8c9797a40b2a1f5ff6562a1841dd44c4785a57941b1eb4d70d20a3dc5bcf8cbfe3d1b2c7f846d7da7fd89758e113542820945da996d2c6a68af SHA512 3a37c8137958a6ebaf06f5a03b28c7817f359f346d820a9989932b1a716478647e8d1b94c1a08197bcabf68cd90443a08ab9454af9151eace52401d8b60d0c35
+DIST Python-3.13.0b2.tar.xz.asc 963 BLAKE2B 2acab01cd8b2b5072e87f0c697767e9cec6a73cd6afae38f066a3bfa14798d10e01c03e806a1a90d1db3e5d91dea090d9dd37d1884bef3291783e6163e3d8906 SHA512 17091aba45ebd8c8feb3e9c54854e20dcd44fec4a1c08c9c0c4593166c407c4ad2b245a0e0893afc83a43e8b461a557fa1d6691c87a6a5ebc97ea448a9201c87
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.11.8_p1.tar.xz 9604 BLAKE2B 9017104f160f24e0a1818a8b12225c596faee79d646cc73b6edc4ed1e3faca86cfa2fcea09a128224b85330a67dea65f658507e60dcd09b10af0d590a2b05082 SHA512 0f0afa57abfb4282953a1a78e5ad1cc5e17c0a205e96d9c152f9de6537da95671c1d429ac03fd6aa70a457b27a19b0892a1f9b81164468c4085172a58f5e8d9e
DIST python-gentoo-patches-3.11.9.tar.xz 8456 BLAKE2B 4e62837f17c1d056460df417b056a79ad78dbcdd3454761c7cda68ffe6faf8f4d4f04d5539e0ba94332fe19a751f7d5ff2c35ff969a6aa09a2c72d2ce5efbff1 SHA512 a288aa8d1d15e906e0f1762602a2122f9dc91bbd6b72123ac5d00ce55b3af324a4e8280b600fc0fb630e489e57ee1547d7595a4ede7a70e4b26d6686a8414997
-DIST python-gentoo-patches-3.12.2_p1.tar.xz 7208 BLAKE2B 8266f2b6c64ffd509278c0d8756680e6700dcd3ed3ab6d3f0e1be2cc87cb20bc694f9e386b474fa5d115ffecdd5d4807a956a48450e109ef7f449ed6f4a8afce SHA512 5fdb93ffae471b5a9e617c12ca1646b9521867cd260efe6da6350fcf5ba24114cad1dc715f033079ab69ecab7cc62c870e14fe2d2035c2d7f29c05cc0f1297db
DIST python-gentoo-patches-3.12.3.tar.xz 6028 BLAKE2B 7953a48a1d95a6a33bd88060fbcac463a5469371aa0c882c3945f1fea64a63c4d45fca8451f51f4eaeea00a04267ad2e54e4cc720c95e8bb5a3477e00263b80a SHA512 4779bab2b24e59e4a77987ce3e9611d99e87c9c4d016309758c26a65fe2e11ef04d48d5af628c02b1552dc1f31b768f87448f8e19e716b4fe372941e6dacac3f
-DIST python-gentoo-patches-3.13.0a6.tar.xz 5240 BLAKE2B 827a365f60a1acfcbb5ddd568e4938cbd7f98678a12c756774b4307141834d90b890006e68965369663af1c6d594cf44466b9624f5ce3741ade28d80f3289437 SHA512 e45e0aaab022d2cc633576990a6232235067d89fc1270004caf18da898b98767ba7fa811bc8beb3cd8f0f842125cbd3cc3382e3aee13f15b8971d818f4813a30
+DIST python-gentoo-patches-3.12.4.tar.xz 6056 BLAKE2B 8e8caa52f5725aaed08e8442609bec45b11c63d5f29f8fdb302416716bf77ef1bb7fe5e9d14bab12517dabd01dc06172fe11b176326291b19785a8b1d74ee9b9 SHA512 d2fd747f81a3812f5d4a0d281ac336a43961abcf4a4e503564fa3b5d33c0312a6c7148c6f516f5c4c917432c63488615161a847ccb6539a457406b82f1661a24
+DIST python-gentoo-patches-3.12.4_p1.tar.xz 7088 BLAKE2B 450b95539aaf7c8c052ca1bbcab3b1a8f1c33e8007b6c66cc290c33d88cac8bad346e13cf96508834599a59ccb6548e6dd8cbfb1e24d84539f502101b04299d0 SHA512 df874cb1d8d0f5df60fca82daa2a59cbcfeba6be72b021101a753306a09bb19ee268681b3fdb39659be923d868c727bf7aabbe8173cfd48a329c66f4727353c7
+DIST python-gentoo-patches-3.13.0b1_p1.tar.xz 5480 BLAKE2B 830370b56bd662b10dd4423f1e758da79c61d535a18b35496e09d864642873449a13738da8e042b94c58e8e300ac7c003088be69e27467dd024daf54b6a34c22 SHA512 d696c96263ca51f611d508ee644f7254d2607236e829946c35dc6a6977eafa98748fa807b36d40d5e32f278db3493876b2214b4e2bb1ceb4deaa1fbb8fb2c052
+DIST python-gentoo-patches-3.13.0b1_p2.tar.xz 9300 BLAKE2B 63179b01623c6677363c4d1c2f7890e81defd4ca451259b66eff79c92bee68a92a0a33893801fabd8af2e9f07fe1bbd985a494a9ac3fe4662f9db6dc346db418 SHA512 29b29975571abe7dc4269f8b758bf825b431adc7e72bceb42eb801d35bc2eea4f11adea96c8742a0cc273b718b3a632a1051bac1d2d45e40aa419d0f624cf1f6
+DIST python-gentoo-patches-3.13.0b1_p3.tar.xz 11056 BLAKE2B ef932bac59d2316ee8fe638a3d34ce247ff587915546038627674cd4c03179998a58336f8ebae45f1fcc94c8059d61ff6f22693f25ace1462bce275f50bfb48f SHA512 956e3da7376d60d7a593af50fff9842016a3b193180e93ab8298756c9eedfb2aaf8c1287bb75111e6340b5bac20a12dcb00ef51ecf0e12ef9ae5c98202fb071b
+DIST python-gentoo-patches-3.13.0b2.tar.xz 5276 BLAKE2B 047e0362c328ca7545d7b0a86476f95eeecb381b979284a779788c451000e9fe0e1d31461865cd8f818be203b72404f9d810e5baf479a89c6dccc6db7501719a SHA512 43d3ef8e558309d2d93ce6d473eaecfc5359515067a861303b0f085eeb741265d4d071112dcaf55c0d38707c27df35398d3e6310fc1e522debeaaa1e5e8b55b4
+DIST python-gentoo-patches-3.13.0b2_p1.tar.xz 9300 BLAKE2B 1aad8a19a5c237dc0dd67dd3f83116009e1d78f0e3d63780c463e418f22b5f1a4d50035fff8a80ac24b4d5fbcac281fc766fd3e86428d3c3041b5df3f5a518fc SHA512 bc09bdd4bc9716c83d580307af6d30f149894912ad2dbbf02274c88be82f67653aada0a8d16199d85418b1237ecff7c5e41352c759a31b807e7011089ebbbc20
DIST python-gentoo-patches-3.8.19_p1.tar.xz 35008 BLAKE2B 8771e3a2329577659a4ff64987f2500b7dc4f07f78677b823c8f11e7a9e7fc0369cc127e6ad1f1000986937b7811467bd22ba02129a754246658f99b7219a4a7 SHA512 470c125e8df23c1db358c2f7bbf5ac3b28e76fb843364f7fd5aa2fd399ac9b01a2ddfc2c1765f91236c71712941d19f273fb21f960239f79a0263b5b47081d46
+DIST python-gentoo-patches-3.8.19_p2.tar.xz 35524 BLAKE2B a6b81e6ae907b60eea676cb65a9c693e62453dc44616baaadb294c5782a195c20eff6c2869b38ea110fe06e9e511468f4ab0c3d1811b16e0ab2833f9dc09b25b SHA512 9944c330b6062c2ac6e13fcfbc1c8835dfd078f6744cdfbc03ba787ae97c08bdae559cefadafe9dfe9be9c31f8c15ee895599b266d870f73c06a2f4b15c78dc3
DIST python-gentoo-patches-3.9.19_p2.tar.xz 27684 BLAKE2B a69f00548c153da7b13dfeccb332d3d67ecf649fb5ae054590492f3e2fc2c84b78ebaf90bcf9738157c9022778e5bf2a6b4fb6a99e996dcb63859dcf6f84af23 SHA512 552a5f2d89307d4193d76df5a2cf1deb4bd5c8ad9ec81e6768987f1649f6571a318e68b92d8f8ecdba12bfe9c5f1a427a4cc577e6aaebf7748027cc50e412804
+DIST python-gentoo-patches-3.9.19_p3.tar.xz 28240 BLAKE2B 35c70b1f9a590abe9a74795f478ab788cd72c96e9d84f2756685e61324dc4203148e71b00a236bb4af8fb8315e3582ecec255b39749a653e0511d4a9f9fef725 SHA512 6b8f4dab4aa7d4d646ee4091b5cf76bbc8896d4299a3623660a2c5fec06c0cf56c0a50ac87604885cd155141bc85e0e80acdbedb7b34a813901aad021b9b8ab2
diff --git a/dev-lang/python/metadata.xml b/dev-lang/python/metadata.xml
index 22ce986e0676..97c6bd965b9f 100644
--- a/dev-lang/python/metadata.xml
+++ b/dev-lang/python/metadata.xml
@@ -14,6 +14,10 @@
to bootstrap pip and setuptools (if disabled, it will
be only possible to use venv `--without-pip`)
</flag>
+ <flag name="gil">
+ Build with Global Interpreter Lock. Disable to use
+ the experimental freethreading mode.
+ </flag>
<flag name="jit">
Enable experimental Just-In-Time compilation support.
</flag>
diff --git a/dev-lang/python/python-3.10.14_p1-r1.ebuild b/dev-lang/python/python-3.10.14_p1-r1.ebuild
new file mode 100644
index 000000000000..d8dac73ea15a
--- /dev/null
+++ b/dev-lang/python/python-3.10.14_p1-r1.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.8_p1.ebuild b/dev-lang/python/python-3.11.9-r1.ebuild
index 0b7d97cc23bc..8faa8aaa1381 100644
--- a/dev-lang/python/python-3.11.8_p1.ebuild
+++ b/dev-lang/python/python-3.11.9-r1.ebuild
@@ -28,7 +28,7 @@ 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"
+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
@@ -46,6 +46,7 @@ RDEPEND="
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:=
@@ -249,6 +250,22 @@ src_configure() {
-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+=(
@@ -277,6 +294,7 @@ src_configure() {
--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
@@ -411,6 +429,22 @@ src_test() {
)
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!")
diff --git a/dev-lang/python/python-3.12.2_p1.ebuild b/dev-lang/python/python-3.12.3-r1.ebuild
index 7e8fb832f57c..092a62b34918 100644
--- a/dev-lang/python/python-3.12.2_p1.ebuild
+++ b/dev-lang/python/python-3.12.3-r1.ebuild
@@ -28,7 +28,7 @@ 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"
+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
@@ -46,6 +46,7 @@ RDEPEND="
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:=
@@ -249,6 +250,22 @@ src_configure() {
-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+=(
@@ -276,6 +293,7 @@ src_configure() {
--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
@@ -405,6 +423,22 @@ src_test() {
)
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!")
diff --git a/dev-lang/python/python-3.12.3.ebuild b/dev-lang/python/python-3.12.3.ebuild
index 91a780f3741c..7e8fb832f57c 100644
--- a/dev-lang/python/python-3.12.3.ebuild
+++ b/dev-lang/python/python-3.12.3.ebuild
@@ -28,7 +28,7 @@ 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"
+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
diff --git a/dev-lang/python/python-3.12.4.ebuild b/dev-lang/python/python-3.12.4.ebuild
new file mode 100644
index 000000000000..f7e54652dedc
--- /dev/null
+++ b/dev-lang/python/python-3.12.4.ebuild
@@ -0,0 +1,574 @@
+# 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
+}
+
+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_p1.ebuild b/dev-lang/python/python-3.12.4_p1.ebuild
new file mode 100644
index 000000000000..f7e54652dedc
--- /dev/null
+++ b/dev-lang/python/python-3.12.4_p1.ebuild
@@ -0,0 +1,574 @@
+# 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
+}
+
+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.13.0_alpha6.ebuild b/dev-lang/python/python-3.13.0_beta1_p1.ebuild
index ffa0f839d606..2b6b7179aa75 100644
--- a/dev-lang/python/python-3.13.0_alpha6.ebuild
+++ b/dev-lang/python/python-3.13.0_beta1_p1.ebuild
@@ -3,14 +3,14 @@
EAPI="8"
-LLVM_COMPAT=( 16 )
+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/_alpha/a}
+MY_PV=${PV/_beta/b}
MY_P="Python-${MY_PV%_p*}"
PYVER=$(ver_cut 1-2)
PATCHSET="python-gentoo-patches-${MY_PV}"
@@ -31,8 +31,9 @@ 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 jit libedit
+ bluetooth build +debug +ensurepip examples gdbm +gil jit libedit
+ncurses pgo +readline +sqlite +ssl test tk valgrind
"
REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )"
@@ -49,6 +50,7 @@ RDEPEND="
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:=
@@ -115,6 +117,14 @@ 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() {
@@ -144,6 +154,9 @@ src_prepare() {
# 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
}
@@ -234,6 +247,7 @@ src_configure() {
-m test
"-j$(makeopts_jobs)"
--pgo-extended
+ --verbose3
-u-network
# We use a timeout because of how often we've had hang issues
@@ -294,6 +308,7 @@ src_configure() {
--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)")
@@ -403,6 +418,7 @@ src_test() {
local -x LOGNAME=buildbot
local test_opts=(
+ --verbose3
-u-network
-j "$(makeopts_jobs)"
diff --git a/dev-lang/python/python-3.13.0_beta1_p2.ebuild b/dev-lang/python/python-3.13.0_beta1_p2.ebuild
new file mode 100644
index 000000000000..54b95e896355
--- /dev/null
+++ b/dev-lang/python/python-3.13.0_beta1_p2.ebuild
@@ -0,0 +1,643 @@
+# 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/_beta/b}
+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="
+ big-endian 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
+
+ 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
+
+ -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
+
+ # Fails in profiling run, passes in src_test().
+ -x test_capi
+ )
+
+ # Arch-specific skips. See #931888 for a collection of these.
+ case ${ARCH} in
+ hppa)
+ profile_task_flags+=(
+ -x test_descr
+ -x test_exceptions # bug 931908
+ -x test_os
+ )
+ ;;
+ ia64)
+ profile_task_flags+=(
+ -x test_ctypes
+ -x test_external_inspection # partial PGO only (flaky in src_test)
+ -x test_signal # PGO only
+ )
+ ;;
+ mips)
+ profile_task_flags+=(
+ -x test_ctypes # partial PGO only (more fails)
+ -x test_external_inspection # PGO only
+ -x test_statistics
+ )
+ ;;
+ ppc64)
+ if use big-endian; then
+ profile_task_flags+=(
+ -x test_descr
+ -x test_exceptions # PGO only, bug 931908
+ )
+ fi
+ ;;
+ riscv)
+ profile_task_flags+=(
+ -x test_statistics
+ -x test_urllib2
+ )
+ ;;
+ sparc)
+ profile_task_flags+=(
+ -x test_ctypes
+ -x test_descr
+ -x test_exceptions # bug 931908
+ )
+ ;;
+ 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}
+
+ if use pgo ; then
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ addwrite "/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=(
+ --verbose3
+ -u-network
+ -j "$(makeopts_jobs)"
+
+ # fails
+ -x test_concurrent_futures
+ -x test_gdb
+ )
+
+ # Arch-specific skips. See #931888 for a collection of these.
+ case ${ARCH} in
+ ia64)
+ test_opts+=(
+ -x test_ctypes
+ -x test_external_inspection
+ )
+ ;;
+ mips)
+ test_opts+=(
+ -x test_ctypes
+ -x test_external_inspection
+ -x test_statistics
+ )
+ ;;
+ ppc64)
+ if use big-endian; then
+ test_opts+=( -x test_descr )
+ fi
+ ;;
+ riscv)
+ test_opts+=(
+ -x test_urllib2
+ )
+ ;;
+ sparc)
+ test_opts+=(
+ # bug 788022
+ -x test_multiprocessing_fork
+ -x test_multiprocessing_forkserver
+
+ -x test_ctypes
+ -x test_descr
+ -x test_exceptions # bug 931908
+ )
+ ;;
+ esac
+
+ # 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
+ # 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.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.13.0_beta1_p3.ebuild b/dev-lang/python/python-3.13.0_beta1_p3.ebuild
new file mode 100644
index 000000000000..792927c05468
--- /dev/null
+++ b/dev-lang/python/python-3.13.0_beta1_p3.ebuild
@@ -0,0 +1,684 @@
+# 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/_beta/b}
+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
+ )
+
+ # 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
+
+ # 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 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}
+
+ if use pgo ; then
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ addwrite "/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=(
+ --verbose3
+ -u-network
+ -j "$(makeopts_jobs)"
+ "${COMMON_TEST_SKIPS[@]}"
+ )
+
+ # 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
+ # 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.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.13.0_beta2.ebuild b/dev-lang/python/python-3.13.0_beta2.ebuild
new file mode 100644
index 000000000000..792927c05468
--- /dev/null
+++ b/dev-lang/python/python-3.13.0_beta2.ebuild
@@ -0,0 +1,684 @@
+# 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/_beta/b}
+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
+ )
+
+ # 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
+
+ # 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 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}
+
+ if use pgo ; then
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ addwrite "/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=(
+ --verbose3
+ -u-network
+ -j "$(makeopts_jobs)"
+ "${COMMON_TEST_SKIPS[@]}"
+ )
+
+ # 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
+ # 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.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.13.0_beta2_p1.ebuild b/dev-lang/python/python-3.13.0_beta2_p1.ebuild
new file mode 100644
index 000000000000..792927c05468
--- /dev/null
+++ b/dev-lang/python/python-3.13.0_beta2_p1.ebuild
@@ -0,0 +1,684 @@
+# 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/_beta/b}
+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
+ )
+
+ # 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
+
+ # 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 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}
+
+ if use pgo ; then
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ addwrite "/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=(
+ --verbose3
+ -u-network
+ -j "$(makeopts_jobs)"
+ "${COMMON_TEST_SKIPS[@]}"
+ )
+
+ # 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
+ # 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.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.8.19_p2.ebuild b/dev-lang/python/python-3.8.19_p2.ebuild
new file mode 100644
index 000000000000..2a490a407fa3
--- /dev/null
+++ b/dev-lang/python/python-3.8.19_p2.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_p3.ebuild b/dev-lang/python/python-3.9.19_p3.ebuild
new file mode 100644
index 000000000000..603a9680996d
--- /dev/null
+++ b/dev-lang/python/python-3.9.19_p3.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/rakudo/Manifest b/dev-lang/rakudo/Manifest
index c5b710ef7cd2..54c2020b46b3 100644
--- a/dev-lang/rakudo/Manifest
+++ b/dev-lang/rakudo/Manifest
@@ -1,2 +1,2 @@
-DIST rakudo-2023.12.tar.gz 6865345 BLAKE2B 0c2404b25d5316de7ef2bf332411898fc12f154c815434ae2f8202951eba8dfbe23c278bbbaf082dcb5e4782aa0348bec10cad97ffbe2b8d55e64a987d5fe69c SHA512 fa78ea3f5eea9947eae7ab3c130956acade849fbde1b926fefdb34f0a2a74cd0a4a8b62a088a41cf207ef80d06b2e5d42048a1a2071d10d68c3e388c57d5e78e
DIST rakudo-2024.02.tar.gz 6879828 BLAKE2B aa361c9e21c34cc5c737390ab6b1b8828afaa6aafaa604dbde273d68084cd0cebaf9c8bd796a394844f05b7bafc4f5d2db8a80a7bc1be8baab52b7a7f858bfa2 SHA512 b9bfdcbaf7daa80e6dfe1fb96e68482d2b110cca03067ef4e3e12270897ef0d53710d90fda97254c4cc012b3cdc4ec0c5d4a25facc5a0224a7579b96f9cd7aa3
+DIST rakudo-2024.04.tar.gz 6908669 BLAKE2B 681a13e0fcefd8a0187f99a4bd92f72833a74870933497f6cb8de0b2ab3ddf07ee4c492760c53cd623f6d7afd3593194748882400ea94e703363c58fc4ea3d2c SHA512 98b4dd35456df1774a320dbd53ffecc72323d91c260ce1264b2056624e8cdf8a47cfcd89b775411f8bf3fb1f1b4725e2b75c7724c5891a4d366e5ba3f2a11cd4
diff --git a/dev-lang/rakudo/rakudo-2023.12.ebuild b/dev-lang/rakudo/rakudo-2024.04.ebuild
index 2af8fe10b2b6..2af8fe10b2b6 100644
--- a/dev-lang/rakudo/rakudo-2023.12.ebuild
+++ b/dev-lang/rakudo/rakudo-2024.04.ebuild
diff --git a/dev-lang/regina-rexx/Manifest b/dev-lang/regina-rexx/Manifest
new file mode 100644
index 000000000000..3d295cd2b71f
--- /dev/null
+++ b/dev-lang/regina-rexx/Manifest
@@ -0,0 +1 @@
+DIST regina-rexx-3.9.5.tar.gz 2705272 BLAKE2B f26d4c7c582e1dafb97c2280651d07bba67549ccf9f58eb42e88e92ddbbb3184a36e5d3480977adccafdd1d9fdd1ca208950cd2700201600b6fbc0da7ebbd336 SHA512 bff25e5d218441306d021924582c19ed29c652b691e73988a4b53b9de4b51b758b1ee08704685967bd9bea469e93bf57b19875207fd4649d5af3e53dade39dd2
diff --git a/dev-lang/regina-rexx/files/regina-rexx-3.9.5-makefile.patch b/dev-lang/regina-rexx/files/regina-rexx-3.9.5-makefile.patch
new file mode 100644
index 000000000000..36124bedaa7b
--- /dev/null
+++ b/dev-lang/regina-rexx/files/regina-rexx-3.9.5-makefile.patch
@@ -0,0 +1,309 @@
+diff --git a/Makefile.in b/Makefile.in
+index 17e43da..75368f7 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -323,7 +323,7 @@ JUNK = *.o *.so.$(OBJ) $(STATICLIB) execiser$(binarybitprefix)$(EXE) threader$(b
+ #
+ .SUFFIXES:
+
+-all : rexx$(binarybitprefix)$(EXE) $(STATICLIB) execiser$(binarybitprefix)$(EXE) $(SHL_TARGETS) $(THREADSAFE_TARGET) rxstack$(binarybitprefix)$(EXE) rxqueue$(binarybitprefix)$(EXE) $(MTBFILES)
++all : rexx$(binarybitprefix)$(EXE) execiser$(binarybitprefix)$(EXE) $(SHL_TARGETS) $(THREADSAFE_TARGET) rxstack$(binarybitprefix)$(EXE) rxqueue$(binarybitprefix)$(EXE) $(MTBFILES)
+
+ $(srcdir)/rexx.h : $(srcdir)/extern.h $(srcdir)/strengs.h $(srcdir)/defs.h $(srcdir)/regina_t.h $(srcdir)/mt.h
+
+@@ -1053,9 +1053,9 @@ installbase: all
+ $(INSTALL) -m 755 -d $(DESTDIR)$(examplesdir)
+ $(INSTALL) -m 755 -d $(DESTDIR)$(sysconfdir)
+ $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
+- $(INSTALL) -s -m 755 -c ./rexx$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/rexx$(binarybitprefix)$(EXE)
+- $(INSTALL) -s -m 755 -c ./rxqueue$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/rxqueue$(binarybitprefix)$(EXE)
+- $(INSTALL) -s -m 755 -c ./rxstack$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/rxstack$(binarybitprefix)$(EXE)
++ $(INSTALL) -m 755 -c ./rexx$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/rexx$(binarybitprefix)$(EXE)
++ $(INSTALL) -m 755 -c ./rxqueue$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/rxqueue$(binarybitprefix)$(EXE)
++ $(INSTALL) -m 755 -c ./rxstack$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/rxstack$(binarybitprefix)$(EXE)
+ $(INSTALL) -m 644 -c $(srcdir)/rxstack.conf.etc $(DESTDIR)$(sysconfdir)/rxstack.conf
+ $(INSTALL) -m 755 -c ./regina-config $(DESTDIR)$(bindir)/regina-config
+ $(INSTALL) -m 755 -c ./libregina.pc $(DESTDIR)$(libdir)/pkgconfig/libregina.pc
+@@ -1066,11 +1066,6 @@ installbase: all
+ $(INSTALL) -m 644 -c $(srcdir)/regina-config.1 $(DESTDIR)$(mandir)/man1/regina-config.1
+ $(INSTALL) -m 644 -c $(srcdir)/rxstack.1 $(DESTDIR)$(mandir)/man1/rxstack.1
+ $(INSTALL) -m 644 -c $(srcdir)/rxqueue.1 $(DESTDIR)$(mandir)/man1/rxqueue.1
+- gzip -f $(DESTDIR)$(mandir)/man1/regina.1
+- gzip -f $(DESTDIR)$(mandir)/man1/rexx.1
+- gzip -f $(DESTDIR)$(mandir)/man1/regina-config.1
+- gzip -f $(DESTDIR)$(mandir)/man1/rxstack.1
+- gzip -f $(DESTDIR)$(mandir)/man1/rxqueue.1
+ $(INSTALL) -m 644 -c $(srcdir)/rexxsaa.h $(DESTDIR)$(includedir)/rexxsaa.h
+ $(INSTALL) -m 644 -c ./en.mtb $(DESTDIR)$(sharedir)/en.mtb
+ $(INSTALL) -m 644 -c ./pt.mtb $(DESTDIR)$(sharedir)/pt.mtb
+@@ -1092,7 +1087,7 @@ installdoc:
+ $(INSTALL) -m 644 -c ./doc/regutil.pdf $(DESTDIR)/$(PACKAGE)-regutil-$(VERDOTUNQUOTED)-doc.pdf
+
+ installregina:
+- $(INSTALL) -s -m 755 -c ./regina$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/regina$(binarybitprefix)$(EXE)
++ $(INSTALL) -m 755 -c ./regina$(binarybitprefix)$(EXE) $(DESTDIR)$(bindir)/regina$(binarybitprefix)$(EXE)
+ $(INSTALL) -m 755 -c $(srcdir)/demo/dynfunc.rexx $(DESTDIR)$(examplesdir)/dynfunc.rexx
+ $(INSTALL) -m 755 -c $(srcdir)/regutil/regutil.rexx $(DESTDIR)$(examplesdir)/regutil.rexx
+ $(INSTALL) -m 755 -c $(srcdir)/regutil/getline.rexx $(DESTDIR)$(examplesdir)/getline.rexx
+@@ -1100,14 +1095,14 @@ installregina:
+ installlib: installregina
+ $(INSTALL) -m 755 -d $(DESTDIR)$(libdir)
+ $(INSTALL) -m 755 -d $(DESTDIR)$(addonsdir)
+-## $(INSTALL) -s -m 755 -c ./$(SHLPRE)$(SHLFILE)$(SHLPST) $(DESTDIR)$(libdir)/$(SHLPRE)$(SHLFILE)$(SHLPST)
+-## $(INSTALL) -s -m 755 -c ./$(SHLPRE)regutil$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)regutil$(MODPST)
+-## $(INSTALL) -s -m 755 -c ./$(SHLPRE)rxtest1$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest1$(MODPST)
+-## $(INSTALL) -s -m 755 -c ./$(SHLPRE)rxtest2$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest2$(MODPST)
+- $(INSTALL) -s -m 755 -c ./$(SHL_NAME_REGINA) $(DESTDIR)$(libdir)/$(SHL_NAME_REGINA)
+- $(INSTALL) -s -m 755 -c ./$(SHL_NAME_REGUTIL) $(DESTDIR)$(packagedir)/$(SHL_NAME_REGUTIL)
+- $(INSTALL) -s -m 755 -c ./$(SHL_NAME_RXTEST1) $(DESTDIR)$(packagedir)/$(SHL_NAME_RXTEST1)
+- $(INSTALL) -s -m 755 -c ./$(SHL_NAME_RXTEST2) $(DESTDIR)$(packagedir)/$(SHL_NAME_RXTEST2)
++## $(INSTALL) -m 755 -c ./$(SHLPRE)$(SHLFILE)$(SHLPST) $(DESTDIR)$(libdir)/$(SHLPRE)$(SHLFILE)$(SHLPST)
++## $(INSTALL) -m 755 -c ./$(SHLPRE)regutil$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)regutil$(MODPST)
++## $(INSTALL) -m 755 -c ./$(SHLPRE)rxtest1$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest1$(MODPST)
++## $(INSTALL) -m 755 -c ./$(SHLPRE)rxtest2$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest2$(MODPST)
++ $(INSTALL) -m 755 -c ./$(SHL_NAME_REGINA) $(DESTDIR)$(libdir)/$(SHL_NAME_REGINA)
++ $(INSTALL) -m 755 -c ./$(SHL_NAME_REGUTIL) $(DESTDIR)$(packagedir)/$(SHL_NAME_REGUTIL)
++ $(INSTALL) -m 755 -c ./$(SHL_NAME_RXTEST1) $(DESTDIR)$(packagedir)/$(SHL_NAME_RXTEST1)
++ $(INSTALL) -m 755 -c ./$(SHL_NAME_RXTEST2) $(DESTDIR)$(packagedir)/$(SHL_NAME_RXTEST2)
+ # ln -sf $(DESTDIR)$(packagedir)/$(SHL_NAME_REGUTIL) $(DESTDIR)$(addonsdir)
+ # ln -sf $(DESTDIR)$(packagedir)/$(SHL_NAME_RXTEST1) $(DESTDIR)$(addonsdir)
+ # ln -sf $(DESTDIR)$(packagedir)/$(SHL_NAME_RXTEST2) $(DESTDIR)$(addonsdir)
+@@ -1115,22 +1110,22 @@ installlib: installregina
+ -(cd $(DESTDIR)$(addonsdir);$(LN_S) ../$(VERDOTUNQUOTED)/$(SHL_NAME_RXTEST1) .)
+ -(cd $(DESTDIR)$(addonsdir);$(LN_S) ../$(VERDOTUNQUOTED)/$(SHL_NAME_RXTEST2) .)
+
+-# $(INSTALL) -s -m 755 -c ./$(SHL_NAME_REGUTIL) $(DESTDIR)$(addonsdir)/$(SHL_NAME_REGUTIL)
+-# $(INSTALL) -s -m 755 -c ./$(SHL_NAME_RXTEST1) $(DESTDIR)$(addonsdir)/$(SHL_NAME_RXTEST1)
+-# $(INSTALL) -s -m 755 -c ./$(SHL_NAME_RXTEST2) $(DESTDIR)$(addonsdir)/$(SHL_NAME_RXTEST2)
++# $(INSTALL) -m 755 -c ./$(SHL_NAME_REGUTIL) $(DESTDIR)$(addonsdir)/$(SHL_NAME_REGUTIL)
++# $(INSTALL) -m 755 -c ./$(SHL_NAME_RXTEST1) $(DESTDIR)$(addonsdir)/$(SHL_NAME_RXTEST1)
++# $(INSTALL) -m 755 -c ./$(SHL_NAME_RXTEST2) $(DESTDIR)$(addonsdir)/$(SHL_NAME_RXTEST2)
+
+ installabilib: installregina
+ $(INSTALL) -m 755 -d $(DESTDIR)$(libdir)
+ $(INSTALL) -m 755 -d $(DESTDIR)$(addonsdir)
+- -$(INSTALL) -s -m 755 -c ./$(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI) $(DESTDIR)$(libdir)/$(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI)
++ -$(INSTALL) -m 755 -c ./$(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI) $(DESTDIR)$(libdir)/$(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI)
+ -rm -f $(DESTDIR)$(libdir)/$(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI_MAJOR)
+ -(cd $(DESTDIR)$(libdir);$(LN_S) $(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI) $(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI_MAJOR) )
+ -rm -f $(DESTDIR)$(libdir)/$(SHLPRE)$(SHLFILE)$(SHLPST)
+ -(cd $(DESTDIR)$(libdir);$(LN_S) $(SHLPRE)$(SHLFILE)$(SHLPST).$(ABI_MAJOR) $(SHLPRE)$(SHLFILE)$(SHLPST) )
+
+- $(INSTALL) -s -m 755 -c ./$(SHLPRE)regutil$(MODPST) $(DESTDIR)$(packagedir)/$(SHLPRE)regutil$(MODPST)
+- $(INSTALL) -s -m 755 -c ./$(SHLPRE)rxtest1$(MODPST) $(DESTDIR)$(packagedir)/$(SHLPRE)rxtest1$(MODPST)
+- $(INSTALL) -s -m 755 -c ./$(SHLPRE)rxtest2$(MODPST) $(DESTDIR)$(packagedir)/$(SHLPRE)rxtest2$(MODPST)
++ $(INSTALL) -m 755 -c ./$(SHLPRE)regutil$(MODPST) $(DESTDIR)$(packagedir)/$(SHLPRE)regutil$(MODPST)
++ $(INSTALL) -m 755 -c ./$(SHLPRE)rxtest1$(MODPST) $(DESTDIR)$(packagedir)/$(SHLPRE)rxtest1$(MODPST)
++ $(INSTALL) -m 755 -c ./$(SHLPRE)rxtest2$(MODPST) $(DESTDIR)$(packagedir)/$(SHLPRE)rxtest2$(MODPST)
+ # ln -sf $(DESTDIR)$(packagedir)/$(SHLPRE)regutil$(MODPST) $(DESTDIR)$(addonsdir)
+ # ln -sf $(DESTDIR)$(packagedir)/$(SHLPRE)rxtest1$(MODPST) $(DESTDIR)$(addonsdir)
+ # ln -sf $(DESTDIR)$(packagedir)/$(SHLPRE)rxtest2$(MODPST) $(DESTDIR)$(addonsdir)
+@@ -1138,15 +1133,15 @@ installabilib: installregina
+ -(cd $(DESTDIR)$(addonsdir);$(LN_S) ../$(VERDOTUNQUOTED)/$(SHL_NAME_RXTEST1) .)
+ -(cd $(DESTDIR)$(addonsdir);$(LN_S) ../$(VERDOTUNQUOTED)/$(SHL_NAME_RXTEST2) .)
+
+-# $(INSTALL) -s -m 755 -c ./$(SHLPRE)regutil$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)regutil$(MODPST)
+-# $(INSTALL) -s -m 755 -c ./$(SHLPRE)rxtest1$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest1$(MODPST)
+-# $(INSTALL) -s -m 755 -c ./$(SHLPRE)rxtest2$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest2$(MODPST)
++# $(INSTALL) -m 755 -c ./$(SHLPRE)regutil$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)regutil$(MODPST)
++# $(INSTALL) -m 755 -c ./$(SHLPRE)rxtest1$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest1$(MODPST)
++# $(INSTALL) -m 755 -c ./$(SHLPRE)rxtest2$(MODPST) $(DESTDIR)$(addonsdir)/$(SHLPRE)rxtest2$(MODPST)
+
+ installcyglib:
+- $(INSTALL) -s -m 755 -c ./$(SHL_NAME_REGINA) $(DESTDIR)$(bindir)/$(SHL_NAME_REGINA)
+- $(INSTALL) -s -m 755 -c ./$(SHL_NAME_REGUTIL) $(DESTDIR)$(addonsdir)/$(SHL_NAME_REGUTIL)
+- $(INSTALL) -s -m 755 -c ./$(SHL_NAME_RXTEST1) $(DESTDIR)$(addonsdir)/$(SHL_NAME_RXTEST1)
+- $(INSTALL) -s -m 755 -c ./$(SHL_NAME_RXTEST2) $(DESTDIR)$(addonsdir)/$(SHL_NAME_RXTEST2)
++ $(INSTALL) -m 755 -c ./$(SHL_NAME_REGINA) $(DESTDIR)$(bindir)/$(SHL_NAME_REGINA)
++ $(INSTALL) -m 755 -c ./$(SHL_NAME_REGUTIL) $(DESTDIR)$(addonsdir)/$(SHL_NAME_REGUTIL)
++ $(INSTALL) -m 755 -c ./$(SHL_NAME_RXTEST1) $(DESTDIR)$(addonsdir)/$(SHL_NAME_RXTEST1)
++ $(INSTALL) -m 755 -c ./$(SHL_NAME_RXTEST2) $(DESTDIR)$(addonsdir)/$(SHL_NAME_RXTEST2)
+
+ #
+ # Can't strip .dylib on OSX
+diff --git a/common/incdebug.m4 b/common/incdebug.m4
+index 14c106e..86e4135 100644
+--- a/common/incdebug.m4
++++ b/common/incdebug.m4
+@@ -15,67 +15,6 @@ DEBUGGING=""
+ cflags_g="`echo $CFLAGS | grep -c '\-g'`"
+ cflags_O="`echo $CFLAGS | grep -c '\-O'`"
+
+-if test "$with_debug" = yes; then
+- DEBUG="-DDEBUG"
+- DEBUGGING="-g"
+- if test "$cflags_g" = "0"; then
+- CFLAGS="${CFLAGS} -g"
+- fi
+- if test "$cflags_O" != "0"; then
+- CFLAGS="`echo ${CFLAGS} | sed -e s/-O.//`"
+- fi
+-else
+- DEBUG="-DNDEBUG"
+- if test "$cflags_O" = "0"; then
+- CFLAGS="${CFLAGS} -O"
+- fi
+- if test "$cflags_g" = "0"; then
+- CFLAGS="${CFLAGS} -g"
+- fi
+-fi
+-if test "$ac_cv_prog_CC" = "gcc" -o "$ac_cv_prog_CC" = "g++" -o "$ac_cv_prog_CC" = "clang"; then
+- if test "$with_debug" = yes; then
+- CFLAGS="${CFLAGS} -Wall"
+- else
+- CFLAGS="${CFLAGS} -O3 -Wall -fomit-frame-pointer -fno-strict-aliasing -Wno-char-subscripts"
+- fi
+-fi
+-if test "$on_qnx4" = yes; then
+- if test "$ac_cv_prog_CC" = "gcc"; then
+- QNX4_CFLAGS=""
+- else
+- if test "$SIMPLE_CFLAGS" = "yes"; then
+- QNX4_CFLAGS="-O"
+- else
+- QNX4_CFLAGS="-Wc,-r -b -j -Wc,-ei -N4096000 -mf -DNO_REGEX -DQNX -DQNX4 -D__QNX__ -DSTRINGS_ALIGNED -Q"
+- fi
+- fi
+- if test "$with_debug" = yes; then
+- CFLAGS="-g $QNX4_CFLAGS"
+- else
+- CFLAGS="-Otax $QNX4_CFLAGS"
+- fi
+-fi
+-if test "$on_beos" = yes; then
+- if test "$with_debug" = yes; then
+- CFLAGS="${CFLAGS} -Wall"
+- else
+- CFLAGS="${CFLAGS} -O2 -Wall"
+- fi
+- if test "$datadir" = "\${prefix}/share"; then
+- datadir="/boot/home/config/add-ons"
+- fi
+-fi
+-if test "$on_haiku" = yes; then
+- if test "$with_debug" = yes; then
+- CFLAGS="${CFLAGS} -Wall"
+- else
+- CFLAGS="${CFLAGS} -O2 -Wall"
+- fi
+- if test "$datadir" = "\${prefix}/share"; then
+- datadir="/boot/home/config/non-packaged/add-ons"
+- fi
+-fi
+ AC_SUBST(DEBUG)
+ AC_SUBST(DEBUGGING)
+
+diff --git a/common/inclibarch.m4 b/common/inclibarch.m4
+index 57ae6f5..6a0a11d 100644
+--- a/common/inclibarch.m4
++++ b/common/inclibarch.m4
+@@ -25,96 +25,7 @@ AC_ARG_ENABLE(64bit,
+ gcc_64bit="-m64"
+ gcc_32bit="-m32"
+ on_osx="no"
+-osis64bit=no
+-bitflag="32"
+ MACH_ARCH=`$ac_config_guess | cut -f1 -d-`
+-case "$target" in
+- *hp-hpux*)
+- ;;
+- *ibm-aix*)
+- rc=`lsconf -k | grep -c 64-bit`
+- if test $rc -eq 1; then
+- bitflag="64"
+- osis64bit=yes
+- fi
+- #
+- # AIX gcc has its own special bit switches :-(
+- #
+- gcc_64bit="-maix64"
+- gcc_32bit="-maix32"
+- ;;
+- powerpc-ibm-os400)
+- bitflag="64"
+- osis64bit=yes
+- gcc_64bit=""
+- ;;
+- *dec-osf4*)
+- ;;
+- *dec-osf*)
+- ;;
+- *sequent-dynix*)
+- ;;
+- i*86*solaris*)
+- ;;
+- *solaris*)
+- rc=`isainfo -v | grep -c 64-bit`
+- if test $rc -eq 1; then
+- bitflag="64"
+- osis64bit=yes
+- fi
+- ;;
+- sparc*sunos*)
+- ;;
+- *linux* | *kfreebsd*-gnu*)
+- mach="`uname -m`"
+- if test "$mach" = "x86_64" -o "$mach" = "ia86" -o "$mach" = "alpha" -o "$mach" = "ppc64" -o "$mach" = "s390x"; then
+- bitflag="64"
+- osis64bit=yes
+- fi
+-# if test -f "/etc/os-release"; then
+- # get Linux ID...
+-# fi
+- if test -f "/etc/apk/arch"; then
+- # get Alpine Linux architecture for APK
+- MACH_ARCH="`cat /etc/apk/arch`"
+- fi
+- ;;
+- *-freebsd* | *-openbsd*)
+- mach="`uname -m`"
+- if test "$mach" = "amd64"; then
+- bitflag="64"
+- osis64bit=yes
+- fi
+- ;;
+- *nto-qnx*)
+- ;;
+- *qnx*)
+- ;;
+- *beos*)
+- ;;
+- *haiku*)
+- mach="`uname -m`"
+- if test "$mach" = "x86_64"; then
+- bitflag="64"
+- osis64bit=yes
+- fi
+- ;;
+- *cygwin*)
+- mach="`uname -m`"
+- if test "$mach" = "x86_64"; then
+- bitflag="64"
+- osis64bit=yes
+- fi
+- ;;
+- *apple-darwin*)
+- on_osx="yes"
+- osx_64bit=`sysctl hw.cpu64bit_capable | cut -f2 -d' '`
+- if test $osx_64bit -eq 1; then
+- bitflag="64"
+- osis64bit=yes
+- fi
+- ;;
+-esac
+
+ if test "x$bitflag32" = "xyes" -a "x$bitflag64" = "xyes"; then
+ AC_MSG_ERROR(--enable-32bit and --enable-64bit flags cannot both be specified.)
+diff --git a/configure.in b/configure.in
+index bb424b9..12cf5e6 100644
+--- a/configure.in
++++ b/configure.in
+@@ -30,7 +30,7 @@ cp $srcdir/common/config.sub $srcdir
+
+ dnl ---------------------- check for C compiler -----------------
+ dnl Checks for one of the C compilers below - change if yours not there.
+-MH_PROG_CC
++AC_PROG_CC
+
+ AC_CONFIG_HEADER(config.h)
+ AC_ISC_POSIX
diff --git a/dev-lang/regina-rexx/files/rxstack-r1 b/dev-lang/regina-rexx/files/rxstack-r1
new file mode 100644
index 000000000000..668af5ec0a46
--- /dev/null
+++ b/dev-lang/regina-rexx/files/rxstack-r1
@@ -0,0 +1,14 @@
+#!/sbin/openrc-run
+
+start() {
+ ebegin "Starting Regina stack"
+ start-stop-daemon --start --pidfile /var/run/rxstack.pid \
+ --exec /usr/bin/rxstack -- -d
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping Regina stack"
+ start-stop-daemon --stop --exec /usr/bin/rxstack
+ eend $?
+}
diff --git a/dev-lang/regina-rexx/metadata.xml b/dev-lang/regina-rexx/metadata.xml
new file mode 100644
index 000000000000..1d3a12c3cc85
--- /dev/null
+++ b/dev-lang/regina-rexx/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>s390@gentoo.org</email>
+ <name>s390 architecture team</name>
+ </maintainer>
+ <longdescription>
+ Regina is a Rexx interpreter. Rexx is a programming language that was
+ designed to be easy to use for inexperienced programmers yet powerful
+ enough for experienced users. It is also a language ideally suited as a
+ macro language for other applications.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">regina-rexx</remote-id>
+ <bugs-to>https://sourceforge.net/p/regina-rexx/bugs/</bugs-to>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/regina-rexx/regina-rexx-3.9.5.ebuild b/dev-lang/regina-rexx/regina-rexx-3.9.5.ebuild
new file mode 100644
index 000000000000..6783de3c6f87
--- /dev/null
+++ b/dev-lang/regina-rexx/regina-rexx-3.9.5.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs
+
+DESCRIPTION="Portable Rexx interpreter"
+HOMEPAGE="https://regina-rexx.sourceforge.io/"
+SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1 MPL-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+
+RDEPEND="virtual/libcrypt:=
+ !dev-lang/oorexx"
+
+PATCHES=( "${FILESDIR}/${PN}-3.9.5-makefile.patch" )
+
+src_prepare() {
+ default
+ mv configure.{in,ac} || die
+ eautoconf
+}
+
+src_configure() {
+ local bits="$(( "$(tc-get-ptr-size)" * 8))"
+ econf "bitflag=${bits}" "osis${bits}bit=yes" "--enable-${bits}bit"
+}
+
+src_compile() {
+ emake -j1
+}
+
+src_install() {
+ emake -j1 DESTDIR="${D}" install
+ DOCS=( BUGS HACKERS.txt README.Unix README_SAFE TODO )
+ einstalldocs
+
+ newinitd "${FILESDIR}/rxstack-r1" rxstack
+}
+
+pkg_postinst() {
+ elog "You may want to run"
+ elog
+ elog "\trc-update add rxstack default"
+ elog
+ elog "to enable Rexx queues (optional)."
+}
diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest
index ec89cddbf5b8..b690e7d8e06d 100644
--- a/dev-lang/ruby/Manifest
+++ b/dev-lang/ruby/Manifest
@@ -1,6 +1,8 @@
DIST ruby-3.1.4.tar.xz 15316604 BLAKE2B 5d771c267451c05ae192991976957d43d1131e652ac5a90a8dfff9deba97cf6b139d0113f5d2ed44225a545aa79a1c732555de1efc83d1010d097ec35f7e92dd SHA512 a627bb629a10750b8b2081ad451a41faea0fc85d95aa1e267e3d2a0f56a35bb58195d4a8d13bbdbd82f4197a96dae22b1cee1dfc83861ec33a67ece07aef5633
DIST ruby-3.1.5.tar.xz 15293020 BLAKE2B 5d886f45f2a27dbe7682f5afc234d4992ffc5006cfaa98f23c29e1fff0323c277ffec827c71ee75885b4f2cf0bf7baed4ea239ae32283578213821e597bf51da SHA512 a9883f4d074825bb1f54ef3429a9a71341274bd2de1aa8ea32bce19b6b9c1bac5e5dc4c34a92b8e7caa73ba71d7ed7c546a6fec6f1fd3d8986974dce214f6d49
+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.3.0.tar.xz 16345456 BLAKE2B 09ef6fb4b2768118207e7a9ece17c5c62c9f596b1c13ac6199245889fcc5d25f03336831ec3bf1367a460a8a26c4426c32bcd576b0da8bdafc90301032b4d2f0 SHA512 7959c5753bfa0bfc4d6d74060869aabbe9815c1c97930659da11b917ee0803ddbbd80e869e00c48b8694b4ba48709c3b6493fd045568e36e902616c35ababf01
DIST ruby-3.3.1.tar.xz 16350792 BLAKE2B f3591d2420edd8c1d5b365d1442fcc07c014e402478dce01a80b81c16c3c7083bcd3e9e9aa0f8d586cd482f0f18eb64ad813ea31755f5d12b137ce03b1a0fa4c SHA512 c58e9be9b5ab48191fbf7d67e13f0ec42ee71ed338170e0f7b246708e9cfc617ce65098f5ce7ab32d4305e785642d3e44253462104d5b9c4abcb1a4113f48347
+DIST ruby-3.3.2.tar.xz 16349500 BLAKE2B 2a474df10363555e8f0b9ad73bb854ad34f3d1485b8bdde833c999b20bc2c17282d2097d887d10f454bbd4dfdf08f04bb644a7e41d0b4a0ff0e9eb144339b5e8 SHA512 70dd8eb933956f894c52a8ede42e8ee74ff0e062bd8134a0bfb6bffc83a2848a658b62c8df5530b4dd64087b2d5373909c48917528facb1e6f4e99e79b6ad449
diff --git a/dev-lang/ruby/ruby-3.1.6.ebuild b/dev-lang/ruby/ruby-3.1.6.ebuild
new file mode 100644
index 000000000000..a14fd90dfe78
--- /dev/null
+++ b/dev-lang/ruby/ruby-3.1.6.ebuild
@@ -0,0 +1,284 @@
+# 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? ( || ( sys-devel/gcc:* sys-devel/clang:* ) )
+ 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/irb-1.4.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/minitest-5.15.0[ruby_targets_ruby31(-)]
+ >=dev-ruby/power_assert-2.0.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby31(-)]
+ >=dev-ruby/rbs-2.1.0[ruby_targets_ruby31(-)]
+ >=dev-ruby/rexml-3.2.5[ruby_targets_ruby31(-)]
+ >=dev-ruby/rss-0.2.9[ruby_targets_ruby31(-)]
+ >=dev-ruby/test-unit-3.5.3[ruby_targets_ruby31(-)]
+ >=dev-ruby/typeprof-0.12.2[ruby_targets_ruby31(-)]
+"
+
+PDEPEND="
+ ${BUNDLED_GEMS}
+ virtual/rubygems[ruby_targets_ruby31(-)]
+ >=dev-ruby/bundler-2.3.3[ruby_targets_ruby31(-)]
+ >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/json-2.6.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby31(-)]
+ xemacs? ( app-xemacs/ruby-modes )
+"
+
+src_prepare() {
+ eapply "${FILESDIR}"/"${SLOT}"/011*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/902*.patch
+
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/3.1/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
+
+ einfo "Removing bundled libraries..."
+ rm -fr ext/fiddle/libffi-3.2.1 || die
+
+ # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
+ # rm -rf tool/test/webrick || 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 test/resolv/test_addr.rb \
+ spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die
+ sed -i -e '/def test_test/askip "Depends on system setup"' test/ruby/test_file_exhaustive.rb || die
+
+ # MJIT is broken and removed in later ruby versions.
+ rm -f test/ruby/test_jit.rb || die
+
+ # This test calls out to the system ruby which is not being tested
+ # and may not be the same version.
+ sed -e '/test_without_tty/aomit "Calls system ruby"' \
+ -i test/readline/test_readline.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}"
+
+ # -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 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) \
+ $(use_with valgrind) \
+ ${myconf} \
+ --enable-option-checking=no
+
+ # Makefile is broken because it lacks -ldl
+ rm -rf ext/-test-/popen_deadlock || die
+}
+
+src_compile() {
+ emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
+}
+
+src_test() {
+ 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 doc/NEWS* README*
+}
+
+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.2.3.ebuild b/dev-lang/ruby/ruby-3.2.3.ebuild
index 1c19b91c8e3d..1acabf564cb0 100644
--- a/dev-lang/ruby/ruby-3.2.3.ebuild
+++ b/dev-lang/ruby/ruby-3.2.3.ebuild
@@ -17,7 +17,7 @@ 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"
+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="
diff --git a/dev-lang/ruby/ruby-3.3.2.ebuild b/dev-lang/ruby/ruby-3.3.2.ebuild
new file mode 100644
index 000000000000..02b05be1c6ca
--- /dev/null
+++ b/dev-lang/ruby/ruby-3.3.2.ebuild
@@ -0,0 +1,293 @@
+# 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 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.6[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.3[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}"
+
+ # -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
+
+ # 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/rust-bin/Manifest b/dev-lang/rust-bin/Manifest
index fa3d893c7e86..ee7ee74850c5 100644
--- a/dev-lang/rust-bin/Manifest
+++ b/dev-lang/rust-bin/Manifest
@@ -221,6 +221,40 @@ DIST rust-1.77.1-x86_64-unknown-linux-gnu.tar.xz 159040536 BLAKE2B ccfc6a96f1a40
DIST rust-1.77.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1adeaa22c0a80e6b9132fe290272c7713fe03902649fd6a41ccf46fbaa4d6a986540defa7bf34b2b0456bd8eab28a088a30fa23abb82a2cf110d1338aa6a623c SHA512 1d4ad50a386c3f03214439bc8067f2a721c30b9d4aa47a4494f0db32e242293dbf19ae1c5388315eccf377cfa947b2b40084bcba48fbc55a55be673b74074d5d
DIST rust-1.77.1-x86_64-unknown-linux-musl.tar.xz 234990960 BLAKE2B badccc8785af974d02b63998ff7b4f4b9235cb181cfa44ec35ad682a5c741d3621f4306ad874f11ac14301079558c162088da85414f335b67760f22475d67c2c SHA512 addb62f012787b391403bb25297c0b620c6beb431bd8ef3287a547ba7c31b4e3ccb29decddddf8a34ae849433f64334309b574dcd8743bf8da0efa38feda771f
DIST rust-1.77.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B f1e69cba4d762b98e615b6ddee831193ee915b8a797c48395bff7af3abe13a791267f2fb3b1e1b7df06e6e89497606064dc2fa60ec417bcb67ccc4de7cf5900b SHA512 1aa346a14b8a357b7f747a56d2e718fc15ef3a5095ec6dcaf3381b2d57b170e8b0b604d885d54cd39fad4602928612ddb8754010b4e27060123c67a23def4bd3
+DIST rust-1.78.0-aarch64-unknown-linux-gnu.tar.xz 223523772 BLAKE2B 734416f447462f2778b74f12ffdda13374c95cc399e8728afbeb61b06c0db2e522e760a257d2ce26ce8190cb9c8292880bf02da52df04c3cf205841b95825767 SHA512 80adc842a56ac95d472dcd94aab199dbcfb3d3a5e7a8cb32b8334b038c58a66b8d4f3848ab62a3e799d7c35e6a32abb1f2738a784da8cfa3272ea299c528d5cd
+DIST rust-1.78.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b6cf17229559a845cf63a22043b1ecb9d7e142b536d0fdb0b44f36f05fe1238096c48dd61becac58275d60401a4f0ce623fed9593290d1f659d31976bb0c42ab SHA512 d03a380d0481b4ec19cfd8026d262ed19b7f6f4f40287b0e23127460029b30c47336232a488dc8d19d22df98f356cbd62d7d44f4a3e1cabb6f575531be8916f7
+DIST rust-1.78.0-aarch64-unknown-linux-musl.tar.xz 204806408 BLAKE2B 08abcef8a38d2d1e463971613481806e897ad4aa48a6e3306c23cf7b906807c944809ec60647c5a80e80978cf8aa8bb1b8e990d69769f94f44022b0f764cead4 SHA512 4ec03b17e2f016fc5449431c4d81d113c12227e6e11553f9fb4fb61e4ba3ca4216aad776e7e3c1e88ac42b797c07f5daa23cac90c3eaebc6d360602f026f9dac
+DIST rust-1.78.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 1b51cb7337d71930d4d455d7d018a32de858b6627f0ca3cd636420bfdf0d608f550d41985a93b09575e5ac853361c3362a5c0b85366ff19712a4488b79b706c8 SHA512 a9e28326f91009ca248297ba1b099b718f577c030ae3c75daaeb4798cec4e4de585f1652f18ac170228c32e3784d38e328c3821d6735ea1c083bc4d5b80c426f
+DIST rust-1.78.0-arm-unknown-linux-gnueabi.tar.xz 188301776 BLAKE2B e227ecff233f42b9b8dd7b5807de8fbc972107e7099612986b275ba0391c8fc074344db0764d96d00c34a099380354ddc5e7beaad1d5444fc3300481f7504a2e SHA512 624eef628d9ac6e1eaa376677296cda0cecf4ff7efd4763e40735ec69788fcd34b4a4e05c34046e2b57b916285acdfa04f5b122142ed661032e9c0d713e8fd37
+DIST rust-1.78.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 43df87950eb9a8a0d2410c861e08ccb90a28c815d50cffbc310fef063e5b6b8b3246f5dc96ad34343a7107b025e863a87021e6d59e0826386e4864b68e3d693a SHA512 85f8822c493a1499e6404400b4c9ac293266533c49c5b0b4fab470d2acaf93078aff4d0c3cc59b9117ae9dcd4c47291a1197de44b56214146fd06e708479a191
+DIST rust-1.78.0-arm-unknown-linux-gnueabihf.tar.xz 188746984 BLAKE2B 567ba5298d6b5a4734d126e0b9e5df24460f6204b32ecf3892b45a26689bafe7ccf15f4a6a098a6a6ec7c3f15cf80d314e682f2d8c784a60d9847056be1885e1 SHA512 f9b5b48042868e91d73e3466f7529e2bb2b72d2489b2d0ff1fc83ec1b1cb035c88e57d48b0ed7298d5f50db0cf9da2681e9a4862c185a2bd241356632516c93a
+DIST rust-1.78.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 4d4e6f113e18870a654bc175eba1ea8ae0129803503deba03d144be4f434b1b5651288e8e1cfaa51bf603f5bf51a959b584e2932c025c3474575dc282ec14d84 SHA512 6c682f710fc26e94f233ae27dab6be27fc132825c3604789671170c040b689bc1871d9a74436832fd07a0da50654d06f0c2b31dd8dd9787f1563e2085a51c14e
+DIST rust-1.78.0-armv7-unknown-linux-gnueabihf.tar.xz 194117584 BLAKE2B 5a62e628f06ba370b5ca2b11d8c657fe9c0885e4d36b14f49ab0b7759af0317f1c79ae92dbd5685c57de58c4f6c31fbe3f1c8b4e1721c91d67ed45232dbed5a8 SHA512 877c13fc97c5ed0785dd005c34e5d37763cee9b7c0b5c2217246d173d952301b1b6b590c3ca441269ec8d341a0cf5f2eb83db63517385bbecb0cf08167a3948e
+DIST rust-1.78.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B a3ba9914c74373835ea6900f97100f631d0d5133adf6f1f938734be0d58484c72372b933e9c42fa37856efc6ade7650d969b412d66edd854ffff4918e8aecfed SHA512 6df8b791841f7bac8539e2ba9fd8d22d516a5906152861baef8ac3256136ef72f8fdb7cc9f843127311a8eeeb7911d058fb377db52ef4fe9a3cdc21396495ea6
+DIST rust-1.78.0-i686-unknown-linux-gnu.tar.xz 219666344 BLAKE2B 9302eae6c99af5598f9952255ca8bb3f0288a03b385f77b79323e725bbe398e722baf5ed2de7fd74caa452248800948aad33954a82cbdab97d1935785e6d4437 SHA512 15b6ab20665af6ac7df6e9c9078b9565b3f2e0d493c0b58cb06c682d9368917b2dbc509dfd23fac09dfddc9c60c5f89bdd8321dbada77958ca5a6261ec54d203
+DIST rust-1.78.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8c23ee14f8db7c4a776f4b5b986384c9e2c79e6449e019c67b526ec219e92e35be5c46a4a2d8187aee0ab958c7ba5f2e10ae40f4c7cd083cbef59bbfc96b0c13 SHA512 ea13084528d4b8d558309a0d5c392c734140a854d9543beb0c9b3c5bd2fb530ba154c608920ad125683e1e9888228422352c3b1c1fdfa9d70df1bd4728193944
+DIST rust-1.78.0-loongarch64-unknown-linux-gnu.tar.xz 170256096 BLAKE2B 07507d4517a9e421bcaa763cc93956d5c57d458f7b20f97f186f902702675b305e79c89142f5c9774b11e0842a82c8cb63247b71dacf1c362c0588b52dd86d3d SHA512 fc21d32b4ec72a3a5a353cbabb902df2676e3341a1f38ee45654eaf960bc677b0316af0474e5ce9d346d285a6f7f03ebeda7302b49650cd1ff8371c27166fd25
+DIST rust-1.78.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f99580babc5356c579b81fc0a4168dc1a57432d898e8e2422f00f9027477d704421cb217b5d56fa15a6fe9c01cbf8d4a727c6b01eedddbbcfe9d78e3cdfd24b5 SHA512 ab1ac741f6d71517a510a48fff1b903f325a35b83e35b7b73f4751c1f22e6944044d7a46f21e018659d7cf4ab5b430f6a4ff79971712af46a0d7705faf60e506
+DIST rust-1.78.0-mips-unknown-linux-gnu.tar.xz 70122976 BLAKE2B 78cd77109402f9121539db99bb263f37b9e8dbcd7d0fa102bd40437c4c051bb66d426fd223f062bd9715ce19f8b5f49ecc28ce59c0647dd4a29d9bc91fa68269 SHA512 85e8bdbfb750a20ce56756034f5b8a9a063baf38462ee9c47d0f495e09838b3d51db5428f56e4ca29f0d8bf5d8d7aac6508fbbefbc21b144230111683e2623ef
+DIST rust-1.78.0-mips64-unknown-linux-gnuabi64.tar.xz 71942612 BLAKE2B 5735673c7c02f49193d69d02276f7eb1f380f487777a6e8751012ceec1a690dadd88e4b51ef6e393a7bcc066968eb306f4ad1df206bc48e0aab7bea40fc7373e SHA512 1cf95c52279b7ee3a003e2667004494f90d50ef84f57930b6682588c502c9ac1e441e9521d0888e3286cc97628fc0445fb5e5adb8c03ff1da9aca7a10a172d62
+DIST rust-1.78.0-mips64el-unknown-linux-gnuabi64.tar.xz 71921684 BLAKE2B 3aacca634a1749e43ec3d84c5388a16cfc0bef94e27c3221c40b43a296e0a79044af314b1704638f8f8ee9a03cc3f8a3932a252a19c7b91bd43b8b8e4f50dab3 SHA512 1fa047f55f4539fd16110525dbf94b3121e05513f25d81c6e95a30b2f6b099e30292545808a861816c779f060cf7ee9235b11311d1b0005e1c54ed1dc2dbd005
+DIST rust-1.78.0-mipsel-unknown-linux-gnu.tar.xz 71388596 BLAKE2B b0d87f4297f2b1fed10308ceb8809aec9323c2754212481ecf7c080ce993f485612ab5c82625feac644f14499c38780b3d1ea5af7c85f0167c26de5cda461332 SHA512 12a5955673f17243ada754bac4afdadc8ab6d3d6e4fc157328ab0067372d4206ace6ad99c168033cba23481167c24bdc4eafa0de24fd033ff7cf6ba1e16baa21
+DIST rust-1.78.0-powerpc-unknown-linux-gnu.tar.xz 183422544 BLAKE2B a37b4b4c3ba381e0456f46ac7d311ff6b11701026d568653f86d08e5170f9f21177e87efe329ea8fe259a6ab7991f096bb716af2bf3000569c9797db61a41c72 SHA512 eacce0850bbd9dd9a8a94177234d867dcf8d94c7c2e9f4260207b25364abffc8523e2b85e868b9dd9d4bd02ea4be06fb0c5fbcf5621ace2c0e93041a96cf7ad3
+DIST rust-1.78.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ad0201eb1760590381c0e7ee30f612a44157e10a634eb585f253788702653b3658c636c3f8c971a0c96de8944cb4c6960fd555f35dc1ee45fad18c7410ab4b7d SHA512 de5026257f1bd95146cb8057569d643a79ba440aab21efb4ea7df985a527654234c499f16cf75a29eb29cf9d7771893f0d4cfabc3483435ab73ce781aa573ebd
+DIST rust-1.78.0-powerpc64-unknown-linux-gnu.tar.xz 181366112 BLAKE2B c6edeeddc3934e6b93e65776a01c7f19c5e560716490eac2f52b56ba0ff58b974ee2be8e858265c4242d017106880a368244f5565e6f0438258b0cb0bfaa9a0e SHA512 7e0182680d216757d62627b07041d1e36eaae47ed341a548e29d6fe192f5e99a7f933461da025f4341d4c9b816ed3d8d3224bee12e29a0e7fc8bcd9a93c5069c
+DIST rust-1.78.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B eb94775f878935e94b7a678d4588dd586de8ddd47120670326b6b9ed891edb009d637a2c99b0548e8d74d07960a02558f8421e0754d487e93b57bc2bfc19f052 SHA512 490b0ff842eafdf23adf754051c0f4abec2bfda438bc2e3f57cfe5232f1358318c31bcf6a9ea89284f26389f2f1212dc3ad467b14da465d655bbc6974981cd58
+DIST rust-1.78.0-powerpc64le-unknown-linux-gnu.tar.xz 192130524 BLAKE2B ca961dcd50d9071f0bf7b8f354aa0e78b4e3d4c9bd0b6c72f7a712bbe906833aa8982eb87d9065644c65e57e395ab09ed85bd24cf43477071e0c5cd8ed8590e7 SHA512 c890386b3a82ea36aca2f8753b0fc81a956ce3157b89ccd573403ec99b257299f84c976dc7972278371cca1b3945b21a50d276e10b4cd42647a9d26e0ebdd947
+DIST rust-1.78.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2bf8596c462d1231ad884a417c5b676447b8474023b5769343ec5a7788cb42c89b937987226db9bd526b3f4ff0a39648e4ee1136c3733d316e35b8ff7295b6ea SHA512 6bc9965d32420bd86422e4d5fefd82a46a169d5d80d298ccca08fb421858d5bc077f785a52f3404f29f394f2dc471a747fec208931d19358aebadab6d9952e0f
+DIST rust-1.78.0-riscv64gc-unknown-linux-gnu.tar.xz 194762504 BLAKE2B b3a802e4b6efcd6c0c3155258b57483c24731e0564d0077f65706ac46898828c4e4d612996c16b63f9dbd5770ac6ab05cad27a27f1083f431e13aeb68e1e77be SHA512 530e5409755dcef86a9d074a3d387dedb5966689d7f47706e43daa5a9a8c65249f4d2b42916363b14924c11e1a5f5d934e9a1d9b47b1ed7206e85496fee27604
+DIST rust-1.78.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6b8f4a535ae61cf04523254267c2f816e51e459a670b5c2aaa1a28d44092745d7c64baa399583a18cf84e03df2a910409cf99140e3337654a1a051e84d3865a1 SHA512 b226ead3b0dd067eea71d3b5088925f0cfa381aaab6f809e58dff83d00c17da4d99a9d241d49eb66e5db381cd9c63a21c2f5be3ab85658b0bf00b91e970c271a
+DIST rust-1.78.0-riscv64gc-unknown-linux-musl.tar.xz 79587932 BLAKE2B ef34a7416459f50e9d8e6c8dc7f07435eb9bb93b8e07ba2211d539f9955b102c85a591706bc332127e246eeb842d1308a0568147ea3ba10463a6eb27a1fcb075 SHA512 53b28404505217a80369631e8630df21058f4d0eca4e9503f817b7960ddab95245303c571c0ec03208e5f550f239b247354a63b32c07eb6856e78ee70a02661a
+DIST rust-1.78.0-s390x-unknown-linux-gnu.tar.xz 207632244 BLAKE2B dd548d618a050991121afe1d8ec7d9fa5eab19d9fead94440f34627562bda9b5f544cbb03a06cd6e85eec4c8d5279b4237cd14c9754f95795e7a26f0b20036e6 SHA512 f17a472ba144efd41f791854931e1e2eb566f126037a1f234b0b54191941a77d8c340687c4c47e0bd4fbe306079cddb36637e998439845ec82206e4c567979af
+DIST rust-1.78.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5ea16c70fbdcce4cc17c37e9c3b642fc6deae9e2033821d21d3598652b8ed2dbab58cf09dec4e5b2f913cb9fb25820ccf3511af5eb84441e9bee6ba702005def SHA512 8384b20c9f9b6654fd69e90a91aa8572d22b4abbf83ca3b349b7672a5d8db131053ad1b6f8a48881be0060d3db2eaef52075d3a9b15a3c9ef9bb366d592fbcf0
+DIST rust-1.78.0-sparc64-unknown-linux-gnu.tar.xz 61524980 BLAKE2B 382473f85771b60201a27d4a7812b7a76953f800fb780f415cdedc1e183d6142f4e2cca6d0ad7718c80cd7a181652b175e6c2b51f8f0f303db6fe58b59afaa40 SHA512 0049d8262cd426f1f368919f13969f57ea724ceb15f257c71af7d831e607de874344b3be8a38c10f0d87a4fb72b6b69b77459a63f72ae5e1acbb5c601f30eaff
+DIST rust-1.78.0-x86_64-unknown-linux-gnu.tar.xz 163959816 BLAKE2B 1987a6a0ea169d67214bf403cb1e6ada022eed163be6ac72e6e46d1596eba6f282cf87e0581e9ac1b264dee4c59edececc9085b0d16cacabc79f9375da652a24 SHA512 6bb0481804a1de8ee9fde7d4793d45e80f071534f2c3756867d95e99bfc4766de2618b5fd6b1d5e8f4794e54c7056124538fd301c5ec20351f8dada54ef4c20b
+DIST rust-1.78.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1b6b8e54c0eebbde2a803d14db3d75363c306c621845cad89c927a51a5df0ccb5d1406c8806a82d5d611d0a12c6d6c5ed0f113fe802e4b6a8e504e64562e168c SHA512 10072d0684b40a71176f36ad85b7161e1392b3f52c035bfd0c6bbf5889599234a7201d85a13f04de0269ef9d8e0c51d15a4e9a9151b3fa27cf9a6e8663203786
+DIST rust-1.78.0-x86_64-unknown-linux-musl.tar.xz 245914600 BLAKE2B 66cc40b70ca70eebee5c173eefb07758a8a7421cbf421329b3b405bdab1651334a5ff1202b450139c89039a4c3fd6ecf8b78ed218c62e81c983e6bb7353a335c SHA512 21190a0034aab2757cdcbc2e456fdacc972634f25f5c75daa089030a82b407037d3c7d3528c8d126d48d2a6840edf97526007bef41689a86ef1eec8f8c569f08
+DIST rust-1.78.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 2ebc83f961f3bb1681bfd2e3f08b2c394bd8701c68b873eb524a9f9a79f3d3858ae75f76c0e0bc452cbdde9466b1d1b2723d04a8d41f68902355150c86d41042 SHA512 a32e7706ab9483a464e3001aebda8975ced4ef66a64f534d67c0a0e2b508f8db0523cfef4a66bb2b264bad486566c7f684d01ba96055133eccf0e9da4abfa46e
DIST rust-src-1.71.0.tar.xz 2460128 BLAKE2B 3ab6c6cb76a7e18eb0ba085c45f8b1a8bba16e2569962c27187bb415c54d3c5c1032ce4552c52f93bd4ec2512634d8899fd35fbf1a035298a9b621b5af125971 SHA512 fd59a1ced7e950fa14fd7ec9c978043b99e678bda54338f60faaacced36110630385a2bb62af19670ef27db1144810ff60b03dde542273557473b9bb521bcf49
DIST rust-src-1.71.1.tar.xz 2460244 BLAKE2B e3a5b5bfb808310f96e760aab55310c7a790fa551d248c9c5dbb407e0a80653563d8df73a9e0973aa63d3286aad6c755b78098dd8db2dc1a2ed3cadb926b40e1 SHA512 659cc46e1ece2ddbcf5ab748bae48843bd36353cc633b59e4ac062d843af66919e8d5c39ccb72ebdbf94a0e26a8056ade6bd1c8fe9a936469bd405122a8ae35d
DIST rust-src-1.73.0.tar.xz 2512888 BLAKE2B 367b68ec0775f49844408d602164634a0bd526dfe1e469b1c8ba9ae5604cbbff2566eb770b7bfb81b2dae892ed1ae16b7441e438726198610ce181c98540955e SHA512 49f493ffd119a0b8b9f7b7f7e049543787eaf96d9beb272d46f2758a35fd648f6523c2edb28864a33fc66337aa07e80a6464ec806307da441a899be4f71bb554
@@ -228,3 +262,4 @@ DIST rust-src-1.74.1.tar.xz 2544036 BLAKE2B d95431b69f102782f51878ff73ce8802cac6
DIST rust-src-1.75.0.tar.xz 2570256 BLAKE2B 9db7ccff07ffe6991233e9f530321fd6ba48c561dcf1226537afa70c7d045421d8e83c5300b0866ec6fccfaae96dd67b9f204e9e0e12108c0c766d467cd78909 SHA512 e7565cea2f1658a05237a698e38880df2544319b41b6d8b0805db5f1f94fd3bb4f986967d0440fcdfe3a135e33246f3c747665b964f57ff5942f56133af78cdd
DIST rust-src-1.76.0.tar.xz 2590884 BLAKE2B d1a6215dab34d7b10c3177d2b248f997d3a846388f3442567572880aa5c5bc51b56398f5d4dc32727cee7c9dbef494430d6534a76b66c4ae5ac4fed07266644d SHA512 39d2fe58fae8c8c5a6cb3fb1ef2a1c7548c018fef6ccea531659fdfecd68a4aa77125299d2cbe5b58e500337b4d074928318fa9ebce358af500d0ef27260e3ca
DIST rust-src-1.77.1.tar.xz 2618128 BLAKE2B d36f74d3b826a071de8e8a92cfab65348bf1ed7f5fbcabf1994b5e2c99d1fd6d2a936e49aaabb59c44e664a4559cc3c062291cbb381462b9c516fa7ed9d6107d SHA512 a719435636a52b4436afd6dafad7b8112c94b097e2c632fde536155b9977bbffffa8fcb90c6c53675c4d793225917087e5637d36fe250c539e3d7463d90ce28a
+DIST rust-src-1.78.0.tar.xz 2662668 BLAKE2B 131e9616d6f72e87fec6e06735c3ae203fd8b8c2fbe650c23892c3419b057c99d9fd0a6278773addfcb46ac0c9c4eacd905a1122a79d110afa0fb1e4bca8aeca SHA512 ecd1b29ae24ab2978de6b2d6587ebae334cf827cfdc3b1fe3c9dbd068d7e2fc780ac05c50433857ad36e980fc44e2ba0f031e311834355898a9cb7b274b82bfd
diff --git a/dev-lang/rust-bin/metadata.xml b/dev-lang/rust-bin/metadata.xml
index 91f4d5850916..2f9b2fef5b94 100644
--- a/dev-lang/rust-bin/metadata.xml
+++ b/dev-lang/rust-bin/metadata.xml
@@ -9,6 +9,10 @@
<email>navi@vlhl.dev</email>
<name>Anna Figueiredo Gomes</name>
</maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>matoro_gentoo@matoro.tk</email>
+ <name>Matoro Mahri</name>
+ </maintainer>
<maintainer type="project">
<email>rust@gentoo.org</email>
<name>Rust Project</name>
diff --git a/dev-lang/rust-bin/rust-bin-1.77.1.ebuild b/dev-lang/rust-bin/rust-bin-1.77.1.ebuild
index 0890fff91555..3849d0136667 100644
--- a/dev-lang/rust-bin/rust-bin-1.77.1.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.77.1.ebuild
@@ -30,7 +30,7 @@ SRC_URI+=" mips? (
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-bin/rust-bin-1.78.0.ebuild b/dev-lang/rust-bin/rust-bin-1.78.0.ebuild
new file mode 100644
index 000000000000..3b5c48b65017
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.78.0.ebuild
@@ -0,0 +1,248 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
+
+MY_P="rust-${PV}"
+# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
+MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2024-05-02/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~arthurzam/distfiles/${CATEGORY}/${PN}" # omit leading slash
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+ rust-src? ( ${MY_SRC_URI} )
+"
+# Keep this separate to allow easy commenting out if not yet built
+SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+SRC_URI+=" mips? (
+ abi_mips_o32? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+ )
+ abi_mips_n64? (
+ big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+ !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+ )
+)"
+SRC_URI+=" riscv? (
+ elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz )
+)"
+
+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"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix profiler rust-analyzer rust-src rustfmt"
+
+DEPEND=""
+
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ sys-apps/lsb-release
+ sys-devel/gcc:*
+"
+
+BDEPEND="
+ prefix? ( dev-util/patchelf )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+# stripping rust may break it (at least on x86_64)
+# https://github.com/rust-lang/rust/issues/112286
+RESTRICT="strip"
+
+QA_PREBUILT="
+ opt/${P}/bin/.*
+ opt/${P}/lib/.*.so*
+ opt/${P}/libexec/.*
+ opt/${P}/lib/rustlib/.*/bin/.*
+ opt/${P}/lib/rustlib/.*/lib/.*
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
+
+pkg_pretend() {
+ if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
+ die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
+ fi
+}
+
+src_unpack() {
+ # sadly rust-src tarball does not have corresponding .asc file
+ # so do partial verification
+ if use verify-sig; then
+ for f in ${A}; do
+ if [[ -f ${DISTDIR}/${f}.asc ]]; then
+ verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
+ fi
+ done
+ fi
+
+ default_src_unpack
+
+ mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
+}
+
+patchelf_for_bin() {
+ local filetype=$(file -b ${1})
+ if [[ ${filetype} == *ELF*interpreter* ]]; then
+ einfo "${1}'s interpreter changed"
+ patchelf ${1} --set-interpreter ${2} || die
+ elif [[ ${filetype} == *script* ]]; then
+ hprefixify ${1}
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi; then
+
+ # start native abi install
+ pushd "${S}" >/dev/null || die
+ local analysis std
+ analysis="$(grep 'analysis' ./components)"
+ std="$(grep 'std' ./components)"
+ local components="rustc,cargo,${std}"
+ use doc && components="${components},rust-docs"
+ use clippy && components="${components},clippy-preview"
+ use profiler && components="${components},rust-demangler-preview"
+ use rustfmt && components="${components},rustfmt-preview"
+ use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
+ # Rust component 'rust-src' is extracted from separate archive
+ if use rust-src; then
+ einfo "Combining rust and rust-src installers"
+ mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
+ echo rust-src >> ./components || die
+ components="${components},rust-src"
+ fi
+ ./install.sh \
+ --components="${components}" \
+ --disable-verify \
+ --prefix="${ED}/opt/${P}" \
+ --mandir="${ED}/opt/${P}/man" \
+ --disable-ldconfig \
+ || die
+
+ if use prefix; then
+ local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash)
+ ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
+ find "${ED}/opt/${P}/bin" -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ patchelf_for_bin ${filename} ${interpreter} \; || die
+ done
+ eend $?
+ fi
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use profiler && symlinks+=( rust-demangler )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
+ local ver_i="${i}-bin-${PV}"
+ ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die
+ dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
+ dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
+ dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
+ dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
+
+ # make all capital underscored variable
+ local CARGO_TRIPLET="$(rust_abi)"
+ CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+ CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+ cat <<-_EOF_ > "${T}/50${P}"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib"
+ MANPATH="${EPREFIX}/usr/lib/rust/man"
+ $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
+ _EOF_
+ doenvd "${T}/50${P}"
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use profiler; then
+ echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+ popd >/dev/null || die
+ #end native abi install
+
+ else
+ local rust_target
+ rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+ dodir "/opt/${P}/lib/rustlib"
+ cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
+ "${ED}/opt/${P}/lib/rustlib" || die
+ fi
+
+ # BUG: installs x86_64 binary on other arches
+ rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ elog "Rust installs a helper script for calling GDB now,"
+ elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest
index 1d9c9d33d4a6..914386da90c8 100644
--- a/dev-lang/rust/Manifest
+++ b/dev-lang/rust/Manifest
@@ -172,6 +172,34 @@ DIST rust-1.76.0-x86_64-unknown-linux-gnu.tar.xz 159385660 BLAKE2B 0846999358aba
DIST rust-1.76.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 88e6b124812b409372ee05e2872cb4dfacbc638f8e3b4fb0d5fa4ea63f4594333a9788732502f8bd41e34b5cbc404d7ac08e7690d095a6c37c80b0043dd2be88 SHA512 f7ddca81da468d5617f48240b6d3e8d7d09336ac58f515acd3a20f2d315468ba1d53508dd3264a088ffc0141cb3fbcd8d3c17379f9628270d39c7d44f7727291
DIST rust-1.76.0-x86_64-unknown-linux-musl.tar.xz 237333892 BLAKE2B e95b92c68e3c2df49fa0d5d84e35f6575fb80571db290b5969441cc09b6c07dee6b2b887f41a2b1ff1e3c099cda2ce2a4a8c05afbcf9f4dc8acbaed5245b69e4 SHA512 04bbbb9a6891c3bb7a20845010029e6ca979548ff70324c08d3162ebc1fa3a84e8c7e2d453495edd34aba19b7a685f048d5047993103bbf221c88ea36350370c
DIST rust-1.76.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B cd4334fecc17cf03b7333659393004fed4bb895f9b75f93520d1c3e3ee0ce4fcd17d75d748c4a35d31984215c7aec8904ebe3a4ad8bafcd625aef30688a473f7 SHA512 a458372b41c2833bdbd3d6678c35fc23397817b406c409d1ba5e19b4c6246072afff3f938f111382de56f7ff57e660c3eaf3fea0e54871d9af50b52a54f39e41
+DIST rust-1.77.0-aarch64-unknown-linux-gnu.tar.xz 214505028 BLAKE2B 125cad238e23c31373bfa7f02bd09eb35c3fb9425f517d1c74eb34b667fa1cf8a0e36b879ee1ab90c5ab95a8ea499f0a46ece894dc45cdcecc52831c9720b860 SHA512 aa01ef526b8ddc84fc5fd1ef747d94c0a80250606fc9c871a52a6556989b86231ea0706139480b7579f4f817dd17171ad18edd6a6a73c5640aa5a20daec8c9ee
+DIST rust-1.77.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f6af9150b43c206e626b9bbb6d31a18b8d04b99f24ff131668045cfcd80a616302954e74f41397dd5772c761a7f8ce1a14c15f1da509d13d64ffde2684f9c3dd SHA512 cfa3d76d441ced70c9991aadfe144c12d56e6bc908882b84965ce1f13373c73199569b87609fd362a09484a95936151e036088def72061b78ea3c13ab36178fb
+DIST rust-1.77.0-aarch64-unknown-linux-musl.tar.xz 194482084 BLAKE2B b079e5c09c1c528b35451918ed03ec3788d0a8f5de099c3fe3aeaa815dd0a26e3106a2dc0c55462f752949e8ee50913e1cd1bf97235459ae5175847babd27d30 SHA512 6e3fe34512279138b15547e09fac8ccab49fc9a6e5c8faa010067c601aad284522dda67dcd5901bb153fbfa4b06e819be36e9a06b1061c702418b39f8f351fd2
+DIST rust-1.77.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B c4a523203247096500797238f7473b36c39017aaf1c231713cd2d87379f973a7a464e864952b8dc1575ad91ffc210ff2291f88b77db24ca3e5f18ecebdfc23da SHA512 6fc6655a4da63ebe56af5e34569ae74f3c7daec550249269d4499a7f6d116f01e722f29ac95cbd8c0df60c0135db03ae50436650e8c04ef2ea685344e1ad61e2
+DIST rust-1.77.0-arm-unknown-linux-gnueabi.tar.xz 179351340 BLAKE2B 51571532f1a5a70139acc91d17f6aa06537e32c60aedf5448ae73efbc5b028c54b098ba1c1820bd21ebc4b7fc8bfd35b786610074b7e8e86f2b4a561613c16fc SHA512 cd8de4f9f42d5c210334f7c1e110a9abd571ff6cee39d08582cffb89828fdb4d05cd83cb597f89b5fe2ef56571cae7c087cf5751f0a9ea4836b157e076537b5d
+DIST rust-1.77.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B dec3c7d773b61eca698a8efa9138bbd58341b48e391b5898ead2f6739a3e9088820ce8749b0a7016fc2092a7aad3db7bfbd778ee5b56847b6f98a9bf7251af9d SHA512 0a2b1a6eeac880dc3ded3ac28c31413b857bbd0bc68f87d7bb26936b00827d45a72d96d35ed69c6c981f4b9c2ea2d31aef9c82bedb0ab557176246f327f162a5
+DIST rust-1.77.0-arm-unknown-linux-gnueabihf.tar.xz 179479060 BLAKE2B e3a6b29b916a39233e8ae4f6b190479adc19184776f3961373e54d14cd2732ce3561cb08061520c6161c62222b7d2be2027fd826722aef4b128e26c00165ab20 SHA512 695553505af721af3d6d6341230906a707301c41d491118ff3e1c64a9f7e648c6480f8b9c0e786ce3266f2ece266e0805681bc2c23c7bb12ed2a7347b384cba2
+DIST rust-1.77.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 6f456f02b2af2b972dda67a5be9af53576878fe6e434d3385cabb6f6a62728682ed6fa5493dbb8629a861b25b8f722efaaeaeaad5ee20dee55a2567ac6003406 SHA512 a9f97671077b24043aa21b242112e86036ac8acedc719d0e87860a909d734d109db138e5bb7dd8ed2735662bf63ef2310bb8277b280bfa918dbf6c0bf69ee3a1
+DIST rust-1.77.0-armv7-unknown-linux-gnueabihf.tar.xz 181508844 BLAKE2B 78305dd8cb11538c3c5de3883dbae2a7fc08470f940f786fb4e8b5125f57ea119d19cfb11fa55b6ff67fe3c5a03757c10cee6baeae229bbbbcd85f265ebcac85 SHA512 42ac807befa5a56244e892eced3e6771f9bf2cb4cf5df28dc00581916bf655840bf4685c1499fb0a9fbeb40160836f8ec2959526d32b872845f72ce48de93a5f
+DIST rust-1.77.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 39a3ff2c0b7088ccb7c16c87f3abed37cb9d4ca8f48c77f6c2964b28d7a1eec4df09ae5f19fa6a2abd636436f3886b7097edf90d2f7cbf0ba0fa93a2dcf37a28 SHA512 83bde08a5b5f34afec0e4b0ad6c58e7d485a0729743a67e0ca09cf475cae194b549c05e1af0667dcaeb8a6e3807e2b20ffe8e7bf7272187ab9da0093278d61be
+DIST rust-1.77.0-i686-unknown-linux-gnu.tar.xz 209041428 BLAKE2B 83c5329fdb91f14d0083115209359aa1fba0425e9746cd07f76bf820d7b13c339279f39f0c05d1d2e2049c9acad9a48b4d93c97fb26593bf66d95e9434d1a6fa SHA512 8b546847afcc0860e3617df5006633d7c12adfc7f985ad5c0c2b5a83b9f47e9ad3b0c1917a66d313a4bf370d37e959129a807e957f4cda95efe2ce03d5acefbc
+DIST rust-1.77.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f7955963b450f3db22d62bf9cebec16ee2eb2ea32f13b377b240b7d7bdd54da590bbd5d69ae1df02b3dc4f35a35724d41004cc2b23e5f0001b609f086e8028a3 SHA512 927de4072f4d5c461131b1b4f5a1573d96d4da1a2b23060bf375bd5da00fb962e9eab6094f3677f9f8bb7270b54c30a0c5404fc18b2641407b34740583a7402e
+DIST rust-1.77.0-loongarch64-unknown-linux-gnu.tar.xz 161969048 BLAKE2B 0eef0100389715b68def1a491918d0796cc4bb18a481bc8084a96ffb930f7018cea8fdd77e762fd1af18acd81f5fd666f48965e9b72f191588a0c4ed78c975d6 SHA512 8be1eba5615b29d9167e1ad49be301e277f2fc78c6779915dd25b3da395d3933f4ea2c0b4e17d848f580c813c26335285d20ca0c2f966d2248593f04bd8ef1ee
+DIST rust-1.77.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e1463e570c719881b2394b5f92856cbeec33a5fd0dd326c97f6064b52ed1decc0b7d33ac3b3606754264faa67b6aeb718c1d3f8f7982ab6024acceecb9d0985e SHA512 03cc2bfdeec9c80128f7e7a5d5f0874df7eb9a22b5da19f9ca1a685a9c52830de5093b7b72c614839da14b7eb76ad3dbed92c233d6d9cf0dbccb458e1fed174a
+DIST rust-1.77.0-powerpc-unknown-linux-gnu.tar.xz 176187556 BLAKE2B acdb1d1f95591dfb167bd87a2b7390554f96d148f6df01c7a1254d590f79302a233e1561446bb8a7f344e6801506c183221bad431fe40b6e8e1854b920641b41 SHA512 baf226c192c5a6ee44d5c7e32f0d63d48b89fa43db1c9966d04d94bfb7a4bba3dc069719109a9c3cf601f6ef7b3d2c320e75cfded5916f6169f4c19a16665301
+DIST rust-1.77.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e8053f9b897dbdba5b175c56ad9cb9c278e968c65cde4f8ccc4d15f1df9f26a2be3418040cc5a6cfd6984ce9b0b3703b98976944eb6523ba45a0fd45e6fc31c8 SHA512 d0a8b2e18e59e55819d64f5622a7fc7a15ebfe05d0946f23ee42dd6c75307e9c2f20541c5b344a3bd97e9e9d93b54d6a85ffd7c783492b9c46f819f91c68af61
+DIST rust-1.77.0-powerpc64-unknown-linux-gnu.tar.xz 176156772 BLAKE2B b5910f75e945f5ecebb988ef02485e3535e3f8d10f6c7acf3190c6dfe22e0125a637c8c4dcae3b6655ba0ec19f1ffa2f8ccca67d9fa3b2a8a8dc584e52d2eaac SHA512 403f1898930367a59a54c1a254cb991aa23e3bfccf9ed3da9c992877bab3b33806e374dd97cbf9650109dcecdb6b72e5f4c7fa664bf44d5880f8c75d3698f27d
+DIST rust-1.77.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3d96ad842e8e4189c2cceebe885ccdf3aaf986a3e7835cc02165a76d12fa2da1b3cba9bbf1213cd7cc68a95cc612b735e409d8cf23dd1f252c1d0ab72a09d756 SHA512 26b73b5ac0216b994ee887021dcd6c5562aadeddce8b227a064ae40a19bb80de7d1278c9192833e2d2ff227884524f742c49b52ad5b64e576d3f87d86f7be536
+DIST rust-1.77.0-powerpc64le-unknown-linux-gnu.tar.xz 187190912 BLAKE2B b203cf8e70a952e137f17d4dfd77bfa201970fa6a9d936b62cadaf4db1fcaa3e51f6a320351ca0bccd96bf6bd5e38f5f859080e7154f23bb277dde21969f562e SHA512 5a68cba4de547e7060d7be6260f450a328c0505be35f175f65435c83c13520b10b6d5e6aed3c52ae8b61215a4ba47cdc1bf9ceb2f454f3415d5115efbdc05bbc
+DIST rust-1.77.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7ddd306273a444bb238ef3f7eb9dc88c0f2895bce506e7708c56d31c252c91a20258d6d7fd609c76054872f1e983454d35b985b5dac6775a8e423d9fc5c3d3d4 SHA512 3c4df1c5bf1dbcbf127bb3615e307faabf252c40655bde6ec3afe3179e44629155fb3b549bf983ffc942c464462a601c08f66d6bfc93b033c61d3b69005005b4
+DIST rust-1.77.0-riscv64gc-unknown-linux-gnu.tar.xz 182245920 BLAKE2B 7365f2de5a6e5927536f8b03b2f9b1cd9605e515e4323b279f35ff9c940d23d4f7539abd1f9da25086b85e695e111440d0d1990ce933080385c750d61307bd7b SHA512 39a9d98cbbb1c0247e80a6ed3635833f0ae95e24f7e62286b7c76b2f8f4a06715e324872a67693c97eba7715f868db8af3652e809112c9621c30a1885dd1a029
+DIST rust-1.77.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 08128f5df77ea42af1d48a40884e1c7f8f50b8cc16354b9b099694a017d243068c9cfb9a0e096b5147b58eb5e2f9283d0e2be4c607c75f8b110e2cf84eda74d6 SHA512 430fb9105a4bc16edc0b9c4a59d124e2891935f7970efa823461d86945bf163ecb043f72fa11453415642672162978ed4446beb71dad041c9ca48a9ae0440aa1
+DIST rust-1.77.0-s390x-unknown-linux-gnu.tar.xz 198606604 BLAKE2B c102856588697aa08f9c0e3095ef9d0e17df0931a3416ca7b0a0ef4a6182d1ce6367040f8ac19b19f1d0cee6c70b64cf6f653c44684fa137acf5d606db82f23b SHA512 0ba59b16309393945a73615ecf5d10d31d082ea3e21357267fce08c9ddcb64c0ba0da7595747577d400d6549df51d95798ecac43931ebc75f9d57d3107fca11b
+DIST rust-1.77.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2574c4757e0b63c5cfe35a58ab2aa175f024de79abcf36e623ee7b925a528decb7f22df89d16ba20cbc1218a056c1c37b154b33d2dad223604cbd3222017919c SHA512 baabe009b58993fe5f62940c51c0811e9309d5a7f9d33819906241ec38ece45a3420a2ab80d972cb2cb184e965154e50feee85ff4719c3d10851fbc040f6f9a8
+DIST rust-1.77.0-x86_64-unknown-linux-gnu.tar.xz 158351120 BLAKE2B 454e8667ea8899cb915680c0c39e5f7831450604a11a3bc9b7d8a897ef6e723edd382c171f292b5e89a406c823735d86ce96d94d08fda53336f806f83b3fad79 SHA512 462df108a811aa628ebf20cd3ad88dcfedbbe4529929abf86e65cbf02d4157ec56c8b9c424b9b9f6930852ccc972fd9970ceea522eeceb79c6acf5cfb7cf08f5
+DIST rust-1.77.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 627ab5e55ae8095b2dfd1559c798376a5e6efe751f3c7e74540c9dc1ad8d889fe6c4c2190914506829e50f2fd7de022584b9d3bc3c2aab4e8bf3126dc4306c31 SHA512 24ee5edfb675f7598366edd9390d7a6044830c31ba7c9bc729e987a5c9bbc8cc7a6beddaef7cc9b1718d0ef4dc5f6568e0ca1504a23d82328536dd478dc391e6
+DIST rust-1.77.0-x86_64-unknown-linux-musl.tar.xz 235071684 BLAKE2B 556a5c8aff20b1314dfc6c767adc9b4ac1a70a5976b49e4550247082eadb76622dfdab253ec853d38807990d7c9f46503060675187a589da91ae2f093d5be4c5 SHA512 073c8b4c92f3d6444ea4fd599281c262fdac7fd4589aee0a0f0ec8bae2e6a315578b2fb3ac768579946cf4bfd77b0e440bceb0d3523598cbda7fdb2ac59c98e1
+DIST rust-1.77.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B e049d7c7d25af1074420117b8a984ff585c85808e17b60285b4ae288216dc2ff3f6b08707157b5e9a7778abc312525e755b70fe38f1b0a23fbaeaa9a52305be4 SHA512 c9b54e5ee181dd217b36e258cc0e72c9acd17ccd4f99430ac4a473e898cb3a3cc16f79609e7233649bd8126119da1e2a99f6b7cbf8864dbae5b02746468ace06
DIST rustc-1.71.0-src.tar.xz 151962928 BLAKE2B da8d83cd6621947816630ae487efe7d087266c1352949cedbbd441ba7c7f7c7beb13b9470e66e2f3359c37a050d0e44d22481c418532d3ebb339a456ab092648 SHA512 2c93bafdd248563765a285add48ca77c1e4bad4d5431675ae6a5cdee4cfe7a41e6bcc880a489ca1069a307fd9a005f2d5f8e230dfc95b4a69152b4f9ca49ac44
DIST rustc-1.71.0-src.tar.xz.asc 801 BLAKE2B e5ddc4b18a6caeeb63c5aed5b5d15989d086f408787d2e603e50e7b8548dc078683062627280fd2a0393bec01c314eb1cc59f9b0e3146abf07b8365a0b44c640 SHA512 cb1b208c8b2bfccf02c73c4246fb238edb0dd10e292c1ef781920964e54e40add3089d988769982c0ce06b719014685b1c37daa2d08b513d86ad73808f4ce3ac
DIST rustc-1.71.1-src.tar.xz 151983068 BLAKE2B 3dfdbc246feb84a79ae94c2de978c5585ee06cf6b683d2245869b62e28f7c79f89cc589f5431537713bf088236a0b824acefc1b68e418e9eb72e1eea98054e3f SHA512 fd0e5a16bdbeb539184513583089e55f681cb772810df357b6b1464853f7022ac02edab3dd155b2262ed0047e2a25dea3808dd078dcdfce9d399384465009db4
@@ -186,3 +214,5 @@ DIST rustc-1.76.0-src.tar.xz 162267908 BLAKE2B 0cf726841a837d9906d82a6216e65edad
DIST rustc-1.76.0-src.tar.xz.asc 801 BLAKE2B eadb2f54fceb9c1ac60af72407a2957e37e1ba134a696675a1e9dcf23a2958b41d7f5aa1f75156e4843cefc387cdc9c909e364c3bfcabecc6bfbe262d9c6e8af SHA512 d35c010a5a129580746bcec5c0dad1b0bc1b7864a69505c7c0ccfad436fdfbdf33f87518965a09de187d6a70fb8867dc6a20037c648861031a17501577855120
DIST rustc-1.77.1-src.tar.xz 162796048 BLAKE2B 18a9fd095808ba78bf50ec94f7fd4087a1033ec79750aa593bacf64219c77ef90c030d41a7d8bc43f7ec8eb30b316c225024be4aeb517100ff6723487f8bb282 SHA512 e057ae638e4c3e54fdb367d48f4b85458121cee0d0ee1ed72f346940b8acad2f16cd9cc8abc16fcf4a17bf244b3300bb56a7e7be3bd0c23b034692c983b84fe8
DIST rustc-1.77.1-src.tar.xz.asc 801 BLAKE2B 175a551abdb970295d37a0797cf262ac43055a3cb75b23845dbb8696d04b7705b7a2908b82fcbce7cd7dec2e05c382d06622013b9d4aa19fab7f651f7e00bb73 SHA512 eb24976ae97d2980d4c547bcf27d815f4b98b8aa45441a7201a849ee37e0ef15671732c9916d33964b8e802a87ede758daaadf84901bd569527c8b6c48efff23
+DIST rustc-1.78.0-src.tar.xz 159181212 BLAKE2B dedae58e413689de258f852c988a9a91d4cf14c9525f2619ca6155006ddc9b2262c8141ff995e4fc6ecceec383470e50d2fa0952d933db9b3957ce5c5b96f62e SHA512 d2fb9881e28849d871fda71b1b51652be3839b3283f0d32163f258c5c707a9fb7b589da8dc03bca2fefee1abdd2b44a5f17e85d8c6df7bea119d1e8d22371941
+DIST rustc-1.78.0-src.tar.xz.asc 801 BLAKE2B a40b0eab4e9263694e79f21d92652402579f4a0587fa48b4043211bc645d4303f9af7629e9c8361938748163e99fa7cd04108156780f23f9c8600361785e834b SHA512 ef16c9eed79f36576517e9dd77b56aa767ae9dc745f5df1839e24b76084ac791b27926f3d608b41695ae6022aa10cbdd3650cad163f35037c60d3bd0427b3cbd
diff --git a/dev-lang/rust/files/1.78.0-ignore-broken-and-non-applicable-tests.patch b/dev-lang/rust/files/1.78.0-ignore-broken-and-non-applicable-tests.patch
new file mode 100644
index 000000000000..610e5d04ea2b
--- /dev/null
+++ b/dev-lang/rust/files/1.78.0-ignore-broken-and-non-applicable-tests.patch
@@ -0,0 +1,30 @@
+From 1879d1d1a284bf51c752e47db284ce22701ed5d0 Mon Sep 17 00:00:00 2001
+From: Samuel Holland <samuel@sholland.org>
+Date: Sun, 16 Sep 2018 16:38:48 +0000
+Subject: [PATCH 12/15] Ignore broken and non-applicable tests
+
+c-link-to-rust-va-list-fn: unstable feature, broken on aarch64, #56475
+env-funky-keys: can't handle LD_PRELOAD (e.g. sandbox)
+long-linker-command-lines: takes >10 minutes to run (but still passes)
+simd-intrinsic-generic-bitmask.rs: broken on BE, #59356
+sparc-struct-abi: no sparc target
+sysroot-crates-are-unstable: can't run rustc without RPATH
+---
+ test/ui/env-funky-keys.rs | 1 +
+ 6 files changed, 10 insertions(+)
+
+diff --git a/tests/ui/env-funky-keys.rs b/tests/ui/env-funky-keys.rs
+index c5c824ac58d..f3fe047a79c 100644
+--- a/tests/ui/env-funky-keys.rs
++++ b/tests/ui/env-funky-keys.rs
+@@ -1,6 +1,7 @@
+ //@ run-pass
+ //@ Ignore this test on Android, because it segfaults there.
+
++//@ ignore-test
+ //@ ignore-android
+ //@ ignore-windows
+ //@ ignore-cloudabi no execve
+--
+2.24.1
+
diff --git a/dev-lang/rust/files/1.78.0-musl-dynamic-linking.patch b/dev-lang/rust/files/1.78.0-musl-dynamic-linking.patch
new file mode 100644
index 000000000000..25a281ceaaaf
--- /dev/null
+++ b/dev-lang/rust/files/1.78.0-musl-dynamic-linking.patch
@@ -0,0 +1,19 @@
+From e42709c46647dab342b826d30324f3e6e5590e00 Mon Sep 17 00:00:00 2001
+From: Jory Pratt <anarchy@gentoo.org>
+Date: Tue, 2 Aug 2022 18:32:53 -0500
+Subject: [PATCH] Enable dynamic linking by default for musl
+
+Signed-off-by: Jory Pratt <anarchy@gentoo.org>
+--- a/compiler/rustc_target/src/spec/base/linux_musl.rs
++++ b/compiler/rustc_target/src/spec/base/linux_musl.rs
+@@ -10,7 +10,7 @@ pub fn opts() -> TargetOptions {
+ base.link_self_contained = LinkSelfContainedDefault::InferredForMusl;
+
+ // These targets statically link libc by default
+- base.crt_static_default = true;
++ base.crt_static_default = false;
+
+ base
+ }
+--
+2.35.1
diff --git a/dev-lang/rust/metadata.xml b/dev-lang/rust/metadata.xml
index 1cf83c8ea80f..85c7e7cb871e 100644
--- a/dev-lang/rust/metadata.xml
+++ b/dev-lang/rust/metadata.xml
@@ -9,6 +9,10 @@
<email>navi@vlhl.dev</email>
<name>Anna Figueiredo Gomes</name>
</maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>matoro_gentoo@matoro.tk</email>
+ <name>Matoro Mahri</name>
+ </maintainer>
<maintainer type="project">
<email>rust@gentoo.org</email>
<name>Rust Project</name>
diff --git a/dev-lang/rust/rust-1.77.1.ebuild b/dev-lang/rust/rust-1.77.1.ebuild
index 1d8ef8985bb5..7a7bd02afe98 100644
--- a/dev-lang/rust/rust-1.77.1.ebuild
+++ b/dev-lang/rust/rust-1.77.1.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/rust/rust-1.78.0.ebuild b/dev-lang/rust/rust-1.78.0.ebuild
new file mode 100644
index 000000000000..d5761df73c02
--- /dev/null
+++ b/dev-lang/rust/rust-1.78.0.ebuild
@@ -0,0 +1,788 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+
+inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
+ multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
+
+if [[ ${PV} = *beta* ]]; then
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ MY_P="rustc-beta"
+ SLOT="beta/${PV}"
+ SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
+else
+ ABI_VER="$(ver_cut 1-2)"
+ 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"
+fi
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+
+SRC_URI="
+ https://static.rust-lang.org/dist/${SRC}
+ verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
+ !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
+"
+
+# keep in sync with llvm ebuild of the same version as bundled one.
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
+ LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
+ WebAssembly X86 XCore Xtensa )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
+
+IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler profiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
+
+# Please keep the LLVM dependency block separate. Since LLVM is slotted,
+# we need to *really* make sure we're not pulling more than one slot
+# simultaneously.
+
+# How to use it:
+# List all the working slots in LLVM_VALID_SLOTS, newest first.
+LLVM_VALID_SLOTS=( 18 )
+LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
+
+# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
+# (-) usedep needed because we may build with older llvm without that target
+LLVM_DEPEND="|| ( "
+for _s in ${LLVM_VALID_SLOTS[@]}; do
+ LLVM_DEPEND+=" ( "
+ for _x in ${ALL_LLVM_TARGETS[@]}; do
+ LLVM_DEPEND+="
+ ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )
+ wasm? ( sys-devel/lld:${_s} )"
+ done
+ LLVM_DEPEND+=" )"
+done
+unset _s _x
+LLVM_DEPEND+=" )
+ <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
+"
+
+# to bootstrap we need at least exactly previous version, or same.
+# most of the time previous versions fail to bootstrap with newer
+# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
+# but it fails to bootstrap with 1.48.x
+# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
+RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
+RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
+BOOTSTRAP_DEPEND="||
+ (
+ =dev-lang/rust-"${RUST_DEP_PREV}"
+ =dev-lang/rust-bin-"${RUST_DEP_PREV}"
+ =dev-lang/rust-"${RUST_DEP_CURR}"
+ =dev-lang/rust-bin-"${RUST_DEP_CURR}"
+ )
+"
+
+BDEPEND="${PYTHON_DEPS}
+ app-eselect/eselect-rust
+ || (
+ >=sys-devel/gcc-4.7
+ >=sys-devel/clang-3.5
+ )
+ system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
+ !system-llvm? (
+ >=dev-build/cmake-3.13.4
+ app-alternatives/ninja
+ )
+ test? ( dev-debug/gdb )
+ verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+DEPEND="
+ >=app-arch/xz-utils-5.2
+ net-misc/curl:=[http2,ssl]
+ sys-libs/zlib:=
+ dev-libs/openssl:0=
+ system-llvm? (
+ ${LLVM_DEPEND}
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ )
+ !system-llvm? (
+ !llvm-libunwind? (
+ elibc_musl? ( sys-libs/libunwind:= )
+ )
+ )
+"
+
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ sys-apps/lsb-release
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ rust-analyzer? ( rust-src )
+ test? ( ${ALL_LLVM_TARGETS[*]} )
+ wasm? ( llvm_targets_WebAssembly )
+ x86? ( cpu_flags_x86_sse2 )
+"
+
+# we don't use cmake.eclass, but can get a warning
+CMAKE_WARN_UNUSED_CLI=no
+
+QA_FLAGS_IGNORED="
+ usr/lib/${PN}/${PV}/bin/.*
+ usr/lib/${PN}/${PV}/libexec/.*
+ usr/lib/${PN}/${PV}/lib/lib.*.so
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_SONAME="
+ usr/lib/${PN}/${PV}/lib/lib.*.so.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_PRESTRIPPED="
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
+"
+
+# An rmeta file is custom binary format that contains the metadata for the crate.
+# rmeta files do not support linking, since they do not contain compiled object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+S="${WORKDIR}/${MY_P}-src"
+
+# causes double bootstrap
+RESTRICT="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.78.0-musl-dynamic-linking.patch
+ "${FILESDIR}"/1.74.1-cross-compile-libz.patch
+ #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
+ "${FILESDIR}"/1.78.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.67.0-doc-wasm.patch
+)
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+toml_usex() {
+ usex "${1}" true false
+}
+
+bootstrap_rust_version_check() {
+ # never call from pkg_pretend. eselect-rust may be not installed yet.
+ [[ ${MERGE_TYPE} == binary ]] && return
+ local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
+ local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
+ local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
+ rustc_version=${rustc_version[0]#rust-bin-}
+ rustc_version=${rustc_version#rust-}
+
+ [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+ if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
+ eerror "Rust >=${rustc_wanted} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too old"
+ elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
+ eerror "Rust <${rustc_toonew} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too new"
+ else
+ einfo "Using rust ${rustc_version} to build"
+ fi
+}
+
+pre_build_checks() {
+ local M=8192
+ # multiply requirements by 1.3 if we are doing x86-multilib
+ if use amd64; then
+ M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
+ fi
+ M=$(( $(usex clippy 128 0) + ${M} ))
+ M=$(( $(usex miri 128 0) + ${M} ))
+ M=$(( $(usex rustfmt 256 0) + ${M} ))
+ # add 2G if we compile llvm and 256M per llvm_target
+ if ! use system-llvm; then
+ M=$(( 2048 + ${M} ))
+ local ltarget
+ for ltarget in ${ALL_LLVM_TARGETS[@]}; do
+ M=$(( $(usex ${ltarget} 256 0) + ${M} ))
+ done
+ fi
+ M=$(( $(usex wasm 256 0) + ${M} ))
+ M=$(( $(usex debug 2 1) * ${M} ))
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ M=$(( 15 * ${M} / 10 ))
+ fi
+ eshopts_pop
+ M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
+ M=$(( $(usex doc 256 0) + ${M} ))
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+llvm_check_deps() {
+ has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
+}
+
+# Is LLVM being linked against libc++?
+is_libcxx_linked() {
+ local code='#include <ciso646>
+#if defined(_LIBCPP_VERSION)
+ HAVE_LIBCXX
+#endif
+'
+ local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
+ [[ ${out} == *HAVE_LIBCXX* ]]
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+ if tc-is-cross-compiler; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
+ export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
+ export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
+
+ use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
+ use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
+ local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
+ use "llvm_targets_${cross_llvm_target}" || \
+ die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
+ fi
+
+ use system-bootstrap && bootstrap_rust_version_check
+
+ if use system-llvm; then
+ llvm_pkg_setup
+
+ local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ export LLVM_LINK_SHARED=1
+ export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
+ fi
+}
+
+esetup_unwind_hack() {
+ # https://bugs.gentoo.org/870280
+ # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
+ # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
+ # the whole idea is for stage0 to bootstrap with fake libgcc_s.
+ # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
+ local fakelib="${T}/fakelib"
+ mkdir -p "${fakelib}" || die
+ # we need both symlinks, one for cargo runtime, other for linker.
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
+ ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
+ export LD_LIBRARY_PATH="${fakelib}"
+ export RUSTFLAGS+=" -L${fakelib}"
+ # this is a literally magic variable that gets through cargo cache, without it some
+ # crates ignore RUSTFLAGS.
+ # this variable can not contain leading space.
+ export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
+}
+
+src_prepare() {
+ # Clear vendor checksums for crates that we patched to bump libc.
+ # NOTE: refresh this on each bump.
+ #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
+ # terminal_size tracing-tree; do
+ # clear_vendor_checksums "${i}"
+ #done
+
+ if ! use system-bootstrap; then
+ has_version sys-devel/gcc || esetup_unwind_hack
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
+
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ rust_targets+=",\"wasm32-unknown-unknown\""
+ if use system-llvm; then
+ # un-hardcode rust-lld linker for this target
+ # https://bugs.gentoo.org/715348
+ sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ # cargo and rustdoc are mandatory and should always be included
+ local tools='"cargo","rustdoc"'
+ use clippy && tools+=',"clippy"'
+ use miri && tools+=',"miri"'
+ use profiler && tools+=',"rust-demangler"'
+ use rustfmt && tools+=',"rustfmt"'
+ use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
+ use rust-src && tools+=',"src"'
+
+ local rust_stage0_root
+ if use system-bootstrap; then
+ local printsysroot
+ printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
+ rust_stage0_root="${printsysroot}"
+ else
+ rust_stage0_root="${WORKDIR}"/rust-stage0
+ fi
+ # in case of prefix it will be already prefixed, as --print sysroot returns full path
+ [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
+
+ rust_target="$(rust_abi)"
+ rust_build="$(rust_abi "${CBUILD}")"
+ rust_host="$(rust_abi "${CHOST}")"
+
+ local cm_btype="$(usex debug DEBUG RELEASE)"
+ cat <<- _EOF_ > "${S}"/config.toml
+ changelog-seen = 2
+ [llvm]
+ download-ci-llvm = false
+ optimize = $(toml_usex !debug)
+ release-debuginfo = $(toml_usex debug)
+ assertions = $(toml_usex debug)
+ ninja = true
+ targets = "${LLVM_TARGETS// /;}"
+ experimental-targets = ""
+ link-shared = $(toml_usex system-llvm)
+ $(if is_libcxx_linked; then
+ # https://bugs.gentoo.org/732632
+ echo "use-libcxx = true"
+ echo "static-libstdcpp = false"
+ fi)
+ $(case "${rust_target}" in
+ i586-*-linux-*)
+ # https://github.com/rust-lang/rust/issues/93059
+ echo 'cflags = "-fcf-protection=none"'
+ echo 'cxxflags = "-fcf-protection=none"'
+ echo 'ldflags = "-fcf-protection=none"'
+ ;;
+ *)
+ ;;
+ esac)
+ enable-warnings = false
+ [llvm.build-config]
+ CMAKE_VERBOSE_MAKEFILE = "ON"
+ $(if ! tc-is-cross-compiler; then
+ # When cross-compiling, LLVM is compiled twice, once for host and
+ # once for target. Unfortunately, this build configuration applies
+ # to both, which means any flags applicable to one target but not
+ # the other will break. Conditionally disable respecting user
+ # flags when cross-compiling.
+ echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
+ echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
+ echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
+ echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
+ fi)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ build = "${rust_build}"
+ host = ["${rust_host}"]
+ target = [${rust_targets}]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ rustfmt = "${rust_stage0_root}/bin/rustfmt"
+ docs = $(toml_usex doc)
+ compiler-docs = false
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ tools = [${tools}]
+ verbose = 2
+ sanitizers = false
+ profiler = $(toml_usex profiler)
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
+ sysconfdir = "etc"
+ docdir = "share/doc/rust"
+ bindir = "bin"
+ libdir = "lib"
+ mandir = "share/man"
+ [rust]
+ # https://github.com/rust-lang/rust/issues/54872
+ codegen-units-std = 1
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debug-assertions-std = $(toml_usex debug)
+ debuginfo-level = $(usex debug 2 0)
+ debuginfo-level-rustc = $(usex debug 2 0)
+ debuginfo-level-std = $(usex debug 2 0)
+ debuginfo-level-tools = $(usex debug 2 0)
+ debuginfo-level-tests = 0
+ backtrace = true
+ incremental = false
+ $(if ! tc-is-cross-compiler; then
+ echo "default-linker = \"$(tc-getCC)\""
+ fi)
+ parallel-compiler = $(toml_usex parallel-compiler)
+ channel = "$(usex nightly nightly stable)"
+ description = "gentoo"
+ rpath = false
+ verbose-tests = true
+ optimize-tests = $(toml_usex !debug)
+ codegen-tests = true
+ dist-src = false
+ remap-debuginfo = true
+ lld = $(usex system-llvm false $(toml_usex wasm))
+ # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
+ # https://github.com/rust-lang/rust/issues/74976
+ # https://github.com/rust-lang/rust/issues/76526
+ deny-warnings = $(usex wasm $(usex doc false true) true)
+ backtrace-on-ice = true
+ jemalloc = false
+ # See https://github.com/rust-lang/rust/issues/121124
+ lto = "$(usex lto thin off)"
+ [dist]
+ src-tarball = false
+ compression-formats = ["xz"]
+ compression-profile = "balanced"
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ export CFLAGS_${rust_target//-/_}="${arch_cflags}"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ ar = "$(tc-getAR)"
+ cc = "$(tc-getCC)"
+ cxx = "$(tc-getCXX)"
+ linker = "$(tc-getCC)"
+ ranlib = "$(tc-getRANLIB)"
+ llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ _EOF_
+ fi
+ # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ # but we patch it and set to false here as well
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ _EOF_
+ fi
+ done
+ if use wasm; then
+ wasm_target="wasm32-unknown-unknown"
+ export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")"
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.wasm32-unknown-unknown]
+ linker = "$(usex system-llvm lld rust-lld)"
+ # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
+ profiler = false
+ _EOF_
+ fi
+
+ if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
+ # experimental cross support
+ # discussion: https://bugs.gentoo.org/679878
+ # TODO: c*flags, clang, system-llvm, cargo.eclass target support
+ # it would be much better if we could split out stdlib
+ # complilation to separate ebuild and abuse CATEGORY to
+ # just install to /usr/lib/rustlib/<target>
+
+ # extra targets defined as a bash array
+ # spec format: <LLVM target>:<rust-target>:<CTARGET>
+ # best place would be /etc/portage/env/dev-lang/rust
+ # Example:
+ # RUST_CROSS_TARGETS=(
+ # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
+ # )
+ # no extra hand holding is done, no target transformations, all
+ # values are passed as-is with just basic checks, so it's up to user to supply correct values
+ # valid rust targets can be obtained with
+ # rustc --print target-list
+ # matching cross toolchain has to be installed
+ # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
+ # only gcc toolchains installed with crossdev are checked for now.
+
+ # BUG: we can't pass host flags to cross compiler, so just filter for now
+ # BUG: this should be more fine-grained.
+ filter-flags '-mcpu=*' '-march=*' '-mtune=*'
+
+ local cross_target_spec
+ for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
+ # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
+ local cross_llvm_target="${cross_target_spec%%:*}"
+ # extracts toolchain triples, <rust-target>:<CTARGET>
+ local cross_triples="${cross_target_spec#*:}"
+ # extracts first element after before : separator
+ local cross_rust_target="${cross_triples%%:*}"
+ # extracts last element after : separator
+ local cross_toolchain="${cross_triples##*:}"
+ use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
+ command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${cross_rust_target}]
+ ar = "${cross_toolchain}-ar"
+ cc = "${cross_toolchain}-gcc"
+ cxx = "${cross_toolchain}-g++"
+ linker = "${cross_toolchain}-gcc"
+ ranlib = "${cross_toolchain}-ranlib"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ _EOF_
+ fi
+ if [[ "${cross_toolchain}" == *-musl* ]]; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
+ _EOF_
+ fi
+
+ # append cross target to "normal" target list
+ # example 'target = ["powerpc64le-unknown-linux-gnu"]'
+ # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
+
+ rust_targets="${rust_targets},\"${cross_rust_target}\""
+ sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
+
+ ewarn
+ ewarn "Enabled ${cross_rust_target} rust target"
+ ewarn "Using ${cross_toolchain} cross toolchain"
+ ewarn
+ if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
+ ewarn "'sys-devel/binutils[multitarget]' is not installed"
+ ewarn "'strip' will be unable to strip cross libraries"
+ ewarn "cross targets will be installed with full debug information"
+ ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
+ ewarn
+ ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
+ ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
+ ewarn
+ fi
+ done
+ fi # I_KNOW_WHAT_I_AM_DOING_CROSS
+
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="\"${RUSTFLAGS}\""
+ echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
+ echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
+ echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ env | grep "CFLAGS_.*"
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+}
+
+src_test() {
+ # https://rustc-dev-guide.rust-lang.org/tests/intro.html
+
+ # those are basic and codegen tests.
+ local tests=(
+ codegen
+ codegen-units
+ compile-fail
+ incremental
+ mir-opt
+ pretty
+ run-make
+ )
+
+ # fails if llvm is not built with ALL targets.
+ # and known to fail with system llvm sometimes.
+ use system-llvm || tests+=( assembly )
+
+ # fragile/expensive/less important tests
+ # or tests that require extra builds
+ # TODO: instead of skipping, just make some nonfatal.
+ if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
+ tests+=(
+ rustdoc
+ rustdoc-js
+ rustdoc-js-std
+ rustdoc-ui
+ run-make-fulldeps
+ ui
+ ui-fulldeps
+ )
+ fi
+
+ local i failed=()
+ einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
+ for i in "${tests[@]}"; do
+ local t="src/test/${i}"
+ einfo "rust_src_test: running ${t}"
+ if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
+ -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
+ then
+ failed+=( "${t}" )
+ eerror "rust_src_test: ${t} failed"
+ fi
+ done
+
+ if [[ ${#failed[@]} -ne 0 ]]; then
+ eerror "rust_src_test: failure summary: ${failed[@]}"
+ die "aborting due to test failures"
+ fi
+}
+
+src_install() {
+ DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+
+ # bug #689562, #689160
+ rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
+ rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
+ newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use miri && symlinks+=( miri cargo-miri )
+ use profiler && symlinks+=( rust-demangler )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+ use rust-analyzer && symlinks+=( rust-analyzer )
+
+ einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
+ # need to fix eselect-rust to remove this hack.
+ local ver_i="${i}-${PV}"
+ if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
+ einfo "Installing ${i} symlink"
+ ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
+ else
+ ewarn "${i} symlink requested, but source file not found"
+ ewarn "please report this"
+ fi
+ dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
+ dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
+ dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
+ dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
+ dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
+
+ newenvd - "50${P}" <<-_EOF_
+ LDPATH="${EPREFIX}/usr/lib/rust/lib"
+ MANPATH="${EPREFIX}/usr/lib/rust/man"
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/libexec
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use miri; then
+ echo /usr/bin/miri >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
+ fi
+ if use profiler; then
+ echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ if use rust-analyzer; then
+ echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+
+ if use dist; then
+ "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+ insinto "/usr/lib/${PN}/${PV}/dist"
+ doins -r "${S}/build/dist/."
+ fi
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs a helper script for calling GDB and LLDB,"
+ elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-lang/scala/scala-2.12.10-r1.ebuild b/dev-lang/scala/scala-2.12.10-r2.ebuild
index 3ce6719026ac..0568eda4cfce 100644
--- a/dev-lang/scala/scala-2.12.10-r1.ebuild
+++ b/dev-lang/scala/scala-2.12.10-r2.ebuild
@@ -57,10 +57,10 @@ COMMON_DEP=">=dev-java/ant-1.10.14-r3:0
DEPEND="${COMMON_DEP}
!binary? (
- >=dev-java/sbt-${SBTV}:0
+ >=dev-java/sbt-${SBTV}-r1:0
media-gfx/graphviz
)
- <=virtual/jdk-17:*
+ <=virtual/jdk-11:*
app-arch/xz-utils:0"
RDEPEND="${COMMON_DEP}
diff --git a/dev-lang/smlnj/Manifest b/dev-lang/smlnj/Manifest
index cebd0158857e..ad55f5d0c13f 100644
--- a/dev-lang/smlnj/Manifest
+++ b/dev-lang/smlnj/Manifest
@@ -1,29 +1,3 @@
-DIST smlnj-110.99.3-MLRISC.tgz 1457337 BLAKE2B a639a9afcaf1bf3e6521eeaa2dd8cb28f164b4c9b439dcb1370c9189b8ca769fa79f3b6c15aa3ee4db49afd61c321d1a6197ad3a46f7209bd51a431e1249dd49 SHA512 f1f2d7cd1316bd6c4156fc184990ccfee916993283ce0963ff30306089b5c6297d2c4fe55a280f17ae05ad45a764e3bdfcfd1b8ee9a8382a049f323b48692c8a
-DIST smlnj-110.99.3-asdl.tgz 241353 BLAKE2B a9f61116411919c51a56097d59f3501022d3b5d3fbd01660b16c3a5fc629b6b96102b17b1047e29c12c8b739a3ab66ff20a7d0c70d6edd899f26b713b9ac7f94 SHA512 cc703609a192a83766d6e8298912bf427fed66a3d5a20f98c1dcddec63ec234df1d868e418932676a0300bf68b490c5c8e2b8f8106f42bc0d38b93be5dde794d
-DIST smlnj-110.99.3-boot.amd64-unix.tgz 5971321 BLAKE2B c6a7c96344da723dfd88155586b680b6f54e7711335bc88d8f1468d3f989077febe6624596d16d7236e651f17d33b6bdf268e8a99164b46e21780d87c697551b SHA512 8616a06975f285623156637929b202fb1d060718bb990aeeff12e185f36ae0764d7074482eaa446dbf0ed8afd2527bfc38c423cdebfa8ed0346fd43b4d3442e3
-DIST smlnj-110.99.3-boot.ppc-unix.tgz 5839528 BLAKE2B 30da3659d7918126684a6e947200a4080a0366b43a03f20b5f27ec7c94a874ae9102ebf94dcb346e60c10d2155236448f4f59350813e46c3185b08f47e9cde2b SHA512 7a0c8d70c0a65f3cbe5c0d6e2172a037bc5b5314d805fe9686c11290ac30b26d26ad98dcd085092a3c76f2a23cc402857cd38afe4f9b0086f6b8a9cab9c19a53
-DIST smlnj-110.99.3-boot.sparc-unix.tgz 5981512 BLAKE2B 6a86232df38bc0ecf7525d8406f6d4f7fadf4730c20b679d4dc540a92e2cfbe14120bd211a5fc96e9b7bec55f2dcdd2b6fdf5969ff230011992d2ea942b7fec7 SHA512 eb167a171f0b0635619eff7e6c0c2ff5a347f3dbae6c690de334671a3aabc5c6ad0a21e6e3192852f2d86806c3cebb4cd6b769c8cf6e8883bb4ce137af8b1578
-DIST smlnj-110.99.3-boot.x86-unix.tgz 5923052 BLAKE2B 52e9f86e7dabaf51ddb642a135f72c6e59f870152107730f7321f7d1d6c165594bdaaf085795360a9dadccec1cd2595c56b7bf7d84d038254273ab8bd5ec1c03 SHA512 8a6680e910cda9b344192db4978c74f9eb55a872824f9ef9deb7419a43e475277997bba19de8abd8eeffda565f8900aeee31f6a94cb0a0bcdbb067b3ec12457a
-DIST smlnj-110.99.3-ckit.tgz 200785 BLAKE2B 0834239040c7e15b96c8ca8812a0d74f5254bbdca22fdba8da5059ec3a256896fa8840dcc18534b9ba3578cb204fe12665f02337f7e1f46af71f19acc2ee4c45 SHA512 c41835ccc1f0ed4352386a398f6847adfe11bd3926ebaeed6e9c6c9b24ff09ad5c676ac6d98700bb6c2f443b43e733071040452886f7a266b7053cdacc0c7b89
-DIST smlnj-110.99.3-cm.tgz 220282 BLAKE2B 6e4ecfc4d74756b1e69a3f61e25649798c6b74327e4d86ff649e9664f22e092a09b80ff0f6e0b94a5210db97985fabc3803e103b3be1da0f9c2bfccb06064e10 SHA512 5030b99dcfec2abb4be76fc15c7846b602d3fbd14ff78eba087a92b72e43a19584fe667281416ecb48fc3df1e7c9756f36d12a8e6ab66fa3917deaaa383fcf82
-DIST smlnj-110.99.3-cml.tgz 103973 BLAKE2B 4723c4a9f891274bac82168c21d19ec2506fc01f48fd330b179b468f73174c049df78a3948a10fe245f0f84f2f8b433ed0b64fc0340092e30433b247fbbd3773 SHA512 79fc9f7060d484c58171ab9577428ab12abd4376b3074bc87d5db5a080d49073a3950ea3d70baae927a2780a0072e83ce2159381c1d03791bce7ffd5bfcc8331
-DIST smlnj-110.99.3-compiler.tgz 856614 BLAKE2B c98a337003619d5968f416c83422fb1ed92dbb37423630d41e2600d62a8cda1d2eb02ecd681bc79cb71a51881c1f4e6189430a05726d6345585f87a5585bc66a SHA512 4616f1d86417ce542aa3f30159adcbbda5a89fc50248b48e53953d596180444b1af178633ba70b2c47ce9c1351cb718f0aab7bc481f6cd9ef4495b084eef4e28
-DIST smlnj-110.99.3-config.tgz 23167 BLAKE2B 78c6cafc1bc5ac8f6e1fe837c1d1fe8d725eab09713a004a2d89df02c52a2553a2b91a7f540d64b097661b80c1b7bbbbd96f9c2ffdae4e2d3655fd182a7c31aa SHA512 4a2f95cde1314f288f13af499b3af7a97ce799c4653cb8382d2361b46142e57a1943d471b7e841240f7accf7c73bd3a085a6e1d0bf3bbfb0246daf88773f0c38
-DIST smlnj-110.99.3-doc.tgz 2506809 BLAKE2B 3a4d568bd1f36d6268127120fc8aaab105fc777a8e4eae8af9d08254ef5b84a432a188b5b16d32399072a919f177f989abb6229d4126ae5da7fb10bdafecda17 SHA512 a042ab0eed78f0c2b3ece17f9fa0ab30c4327b50270e6f85476fee6676bde98f46288979d605dbd937112451e1014a09acd90f589ba2904eaea5a688caa9118a
-DIST smlnj-110.99.3-eXene.tgz 714453 BLAKE2B 579970eba09897cce2497dc3355a17ef4f8ca3a6f31cfc6a8b910aad3531558c5072c17b5a27fab1922b4a26c0ecf632abd547f2551f0de26e999351879c8c76 SHA512 ba380e7b1c751782015aa3603d54a57901697f13c0eb6c3b1928082224dca16f658cda16b4a3400ff46b3e7a46c1069f59366f35b35e837bcd73c1792515aca4
-DIST smlnj-110.99.3-heap2asm.tgz 1763 BLAKE2B 739ce12c488483b7a74f445f4584f43cd156c2912966bf8ce49ba84ed798c47e45175c47b6033a3be3411285245d4344dc58cfbae6064e2905c36af5fdde4847 SHA512 49eaf8ac9772b62d48cd52c3d395b1f2c40d4ce4f62c90ab875f934f3dae6e20e717d6bc41dc674ffa6f0ec03b437ac0a87478e214ac8d28890077faae8e42f5
-DIST smlnj-110.99.3-ml-burg.tgz 40357 BLAKE2B 3ef88f8ada0110b91db783901e1efefeea835bef94dbfbbb2de08480adaff79c484abcfb196bc473a0c5d517d6120dad56199c548cf52b5ced712090120afe62 SHA512 3b19feaba7d3616b364ccb5cf54e203a5583cfe850b1949bbf1f97182255594b5b8498225b8cfd437fb2066cb9461626358f6d3007646ca2cdfaf3f8fa6fd12c
-DIST smlnj-110.99.3-ml-lex.tgz 28038 BLAKE2B 7891b4c26aa44c945f18cd1300fb7c49455c1d2eef4d7ed425509387edd87abea8e23900fa9777798bd7db976d0f4788c3a97120f13c1778b6d476cca190a747 SHA512 5fc0acb9dcd49b663c2b0f071b1cf0a0619c9aa83ef6736eec330eca74693be3272a1c771928e0b3d0e46fc3058ba69445c8e0bfe6815042d51d5493512c81b3
-DIST smlnj-110.99.3-ml-lpt.tgz 267067 BLAKE2B 3b0a853c92eed28d0d8a4394d1b87761bd093d1e701b289e5de28a351f27e97abb1921a5e5ade6e7dea1faef1dccca4dbcb30aefe4624361b302f14084cf08af SHA512 aa3ae9109d42b42f9f619395807f0f7486f9eee794ef61a43df069ab29fcf028e5efb50831dd5a35519e592a89606be6a51aee9da0078a83e62a37c2f23f54f7
-DIST smlnj-110.99.3-ml-yacc.tgz 101376 BLAKE2B 39f9f50f612c5b263f6146d39262d669d7ee3f65daf7d24a0c950ddea8868f13ac6881860f694cba3ecb6b2f29b4755f1364fac2c08401e537d6c355071ebbde SHA512 0cec5df0cbad8b93e079a70dc5979231443a6563bd61dbeadaf3c82e5a28d61cc6d1ee080c3c003d8ece79fbab6a8a31790e29d10ebd64a644a779103751af89
-DIST smlnj-110.99.3-nlffi.tgz 74810 BLAKE2B 0129c45031c750fcb8b879fa325532170c937ac0dc50e224ff22e1ea7c0822f13794be22ff5bc8c1570ed28b8ff9aa90910cb07b3c18519344bbad17bbf351da SHA512 f35033fcaff75b930f4136d8cf903ee17702856fcb58c3b70bfd5fa69e45d3a37df277d9753e989fb1b1f7f21783758fc167d36f3a4537aa2162a754d652ba84
-DIST smlnj-110.99.3-old-basis.tgz 1363 BLAKE2B 32d3afda93fe372ec8bfc9589101c2e4c2b04259d481b39a3a932d3ff225f9142ecc978dae55081417c6437a5c64e5655c43bb29ccd9dc7d6073ff7b19a94e61 SHA512 1dff1f3e5eafb94c5b235f2cc04af4ab87a927d74eac641bad36e66db39a11078fe9aacc20fadadf9c8d13e4c3f7a211cd64efd7741b0dc45e1b22c013c81329
-DIST smlnj-110.99.3-pgraph.tgz 5367 BLAKE2B f30b054433ccb1394e557fc63dae9d097734fcbadee3bcbcd3cfe7bf2d2f833882ac5d187f846f0895b19eeb75de667b2394295858a6e0d873ff58bf55e3bd83 SHA512 3c9d4f3d42c49cd6950eb42712aafc8a58b253b0fade35b7b4c6a1bfef88b7a5805a07fad1d7e107f31d73912e4f32729b2d001dc5751aa629d0f0b4d1a20401
-DIST smlnj-110.99.3-runtime.tgz 334293 BLAKE2B ce70bd05fc311ed11285aceb4cb78af7f08a18431538a341f768fc04e9aa3b1df1f0f3f86f384622aea59fb3322eb8446176bf3481df6f0efa5d67fd1bf71da1 SHA512 21da06900903a2a460b3a8ea895b3f864df5e8f4606ee9c4303de838678c5ab8df947d2eaca74a0ad057c4ec3b7e20f498cde599d5761db14ce6ce516b4ade41
-DIST smlnj-110.99.3-smlnj-c.tgz 10591 BLAKE2B 1dd6646e64157ee31dbd04a0d7d485012ab31fb1e3855d5bf930e9705298df40d33391363dd927758ae2a931aa7d1f61259c688a437851ebff1b3979f12f6ef7 SHA512 3fb88af71a257229322d88c1bbd30a2081d58ad454f541853d327c785a50b88447db667ac787d6a6a98f449886139b71a4721af65cda18e620889cb3cc0d73de
-DIST smlnj-110.99.3-smlnj-lib.tgz 641512 BLAKE2B 1904fc25ae19f8a62669e8ad81272702df3871b04a8ee82e3526d5cbec15835d17fb9ebc710fa7cad5634a9485b5ae9534cb9015e96fae4c19d8a51bcb57b77e SHA512 e711cee0974a7357c0ecac7e38a8bda1db43da7a5262f5878994aab4df604245ccf70510ed7d1a7ff62cc184399ebe08c4a30fb83a881c95c77ed6179d411151
-DIST smlnj-110.99.3-system.tgz 283393 BLAKE2B 9fbb815ee69269ed962899a8374d5669adde670f1846c2137958fb945bc29ac52ae60a1e7393d6fe5479b037641f53bd938555c483683f4f8532c22a44073224 SHA512 90c84826cbc86ebe43cd8bb4bd8aff6ddae67c05c1d263f0528720ceb6291bdc6ef3d51ea117cea86d5af8412a43f4dc3422eae6c1de4442139e4d366398d3ae
-DIST smlnj-110.99.3-trace-debug-profile.tgz 3890 BLAKE2B 53bc19a0b805bde85527fec711e088e5805420ed969347075f1876ebbc0d13a54a9d5b444da9541fbccdd0e48444ce663806f08ed35095d63d87382dab020f32 SHA512 0fedf4d291823f279caf57695826b61da07cecbc1a10cf259a8faf4352e2631dc3d64f8442bf57c9df0c4a39150f37ab95995c4498b3a6700bd125fd2d8d6c15
DIST smlnj-110.99.4-MLRISC.tgz 1457408 BLAKE2B 6d01d0a994ded4167e7429ac4d7a7184197a76b454c7270de8c0887a1a38fffc13db7c1ec23a2e26c3ee765de590cb9483ff74ef944ff71a6ed45dfab9b4c268 SHA512 8ab2d36b0f46824060c87080ea1d450de869db48a768772d4725ca2a7c807451ee675554d5440517960fe41d5f64ceb3a8368c97f667b2bbd83d03195666d64e
DIST smlnj-110.99.4-asdl.tgz 241360 BLAKE2B 3fb88f1a44487bff643bf6d011c234cb27c31c220c8ea929b57f72ebd50c1df4da15444617e5a7adaa9f814b0aec4bf3995aad9871f9c808b4bb86df7dbd106d SHA512 9926bb97ac12b595907e2a86ffd4b208e2283275fabc3383b9a4942b99ec0daf5beaec2781072b21d1fefa2331ae99fc9a1cdbf6daf247714a495fe86c4bba2a
DIST smlnj-110.99.4-boot.amd64-unix.tgz 5974915 BLAKE2B 81e88ecc65455ce29147130b9b848ba95e64cec184ca3c04020766eeff3bf17b4c8937d105d71748155e71cc5ae1e59a8630b9547123aa554674eba4d8f6b148 SHA512 f3a3baf0c725b590def75d5ba8bc71a46230f26f47cd921ebaf45912954d3ec47abf068c20a2719ce6b5db07b9160d6d75997e0e967073b0585bc415b92c859a
@@ -50,3 +24,29 @@ DIST smlnj-110.99.4-smlnj-c.tgz 10589 BLAKE2B df85102595bfdb492ee1a8967f4fc322b7
DIST smlnj-110.99.4-smlnj-lib.tgz 645485 BLAKE2B a1adc247c82dde766a34026a2cef77b4b89cc80f52b4a949173910d30aae2a8a28dc716691c7248d145791c81c27aae75f9b5a91cdcdd3397f1f944255c50c60 SHA512 ac32ed428de0512534445991ae02755170d61dfaa3d4ae5234b437edb7ed6cf9e72e94bfe8edbfd40e5bc7f7a18a97d90a42f5b4f8cbfac2b66cff1b8b6318fc
DIST smlnj-110.99.4-system.tgz 282951 BLAKE2B 61ecb598b2daeefcd62ff8214579ecf30434368fb3b3d75edc2b701170ed9719b9f1bc8114c440ab3582329e5e965b3d1fc4287be0226707766bfc796db49fcf SHA512 35b5c2c1e27745c4f366d655768cbb5fd08953f58906751d49e6a4b5d19dd13bb0e1003e7dac5990dc121c81fc3ecab242a367ef43a02a2728ff3de9d2f0ad1b
DIST smlnj-110.99.4-trace-debug-profile.tgz 3891 BLAKE2B 81cec5f57efc4345a287b5a0b5d93ee96271c2494feb06df3c4583bf23e6079322e9f93e0092469a233954ab145e7e6d56b821bf8bffb85c8d92338ad0fd7163 SHA512 db8c147d65b6211fdff71171a2b517726502e742c7ae48e4bb326decaaeba8ab5abfefd192cc7381182dc266d26a81d2792635821256c7ed7ff7652e9f6fbd41
+DIST smlnj-110.99.5-MLRISC.tgz 1457434 BLAKE2B 385460ebe010667dc4b22d13b4dce64a766c656ab6182b5b347e4612c5f3e428e3788f8ca3cfb1ba50f04fe86acfa7ce98ea5ee37631b179bf0c3d955548b86f SHA512 d134cd9f6f0ef49cabbbed15b390a1f4102271c5a65376afe96eb93ff196f36a591c6c252a9068b74c78158ebfbbc8e89e298f46d764701d38d4ea9bbaa7f22c
+DIST smlnj-110.99.5-asdl.tgz 241656 BLAKE2B 60900c26da035690a2b41f67ba54edb5952f30e1455c62c7a12d57986b24fb10714955ee26eb5c0e037214190e07ef246e309e9e9527dd9837d184fa0ac9d5ce SHA512 3f829f057b5e33b574a79e6efdb5a0d595a462d6d6f95036d44924e6872898b353a21ae2d650bf42589d4bb444c77fb0d7a50857ca7514fa4d229be3ed305691
+DIST smlnj-110.99.5-boot.amd64-unix.tgz 6000465 BLAKE2B 56d84401739540bde737ef35814ed73ec6381b88b29a93503e242fd60c1bb421cd30d40439cd9e334e8ea70f18e3e25f2150c0a5cc143ec649f54bf65803abe4 SHA512 aa2ea0d615d9e90dedab6b9c915e642bb6ebb4189e1bea0214c47b057208a3a2a7609bdb59126c8331ecd49d3c1717b6db2ab18c2cca362cc5ff92dd51df539e
+DIST smlnj-110.99.5-boot.ppc-unix.tgz 5879832 BLAKE2B 552c04efae3f32b6871c439eb1d5f36deb8bc06d154b3e44c2cf4bfcf264c108ddb6ea4f7be4bbf2165a197c0e2023e2d841255a601ef0eb99363925728921cb SHA512 ca9017bbe6f9ced187ca5a35c62aeb55f64d49cab660b2dc78122c253d91b2a1617d6446db63527e579eb1527c32a3256b3d9a4edfb7b2c7c4f4d7b95b060b28
+DIST smlnj-110.99.5-boot.sparc-unix.tgz 6019691 BLAKE2B 4eca69f41a567f012ae94fef2c158f82380e9e7d4acddffd3e4692aa3c98e08bf321c2acf9f955bd47e069e93c5f0b2c4813396b445259daf0313033a37215fc SHA512 84e0d15d6b351d2deea0385ef46e76b1cc9c813377d7026bdbc65bb4d754d78b1d66d620337a6e2443e16c1586af70e6f26aa622d3f5ff1fe6878b9091528748
+DIST smlnj-110.99.5-boot.x86-unix.tgz 5957165 BLAKE2B 162ffc78cefc46d7953b03d567aede86f80e55222467f3ff54007af1d503052a58ea2df43e20f85c1d17799e10367d7291abf2798505de4daedfdabd48e33369 SHA512 48f5aded7422f2d587e8cfa43161b18c71d4d57219a366a04162d16145ce4ae3ef7f168a65de635e770d510ba326b3a2a171d9a3a9fda9a8b587e057d114c3d3
+DIST smlnj-110.99.5-ckit.tgz 200816 BLAKE2B 19baf874be066c677c88b316659b3350a0343c45faa4a61704e93a1ba940bf2a0be7aa915ef06fc49b8b2be35bdb3ee1e69ce7e2bf75f8f713c24654a9142b4d SHA512 e276c665fe732b33e3bb2d564bcd321e51613ab660da02c808740b8dc362c19ff2eeca7f18c4ebdd618fcccb5c149c1e514ec96fdeb3768045d1a6689256625c
+DIST smlnj-110.99.5-cm.tgz 220329 BLAKE2B 30bc6a5ab4a5009cb63dbb2cc87196d94c5c7c05647607fca5cff8baf06a66b6cd48191d7c2d560ab1b3e802f3a7c0e3374250efdda0b8fc7c0ec66dc1b83148 SHA512 9fc83a637868023fbad0e955a43d36db879538a6515707068b70b50ef957f1602065f2af0603fec47488be1c7e77b1b080ca139bc7d363da30de91938a96f86a
+DIST smlnj-110.99.5-cml.tgz 103975 BLAKE2B 5eb737d7aa39c393f613464fbd655741b17d53953a3cf005bb7b595e0ae166657cdebaf7a2c47c16ea23ea13d2f7a4d9b043e9634cafb001ab1661122c71c429 SHA512 d6e789ebfae42724e70863e2bb5b315675a16254f3ec95d9dc7cc0a3f1738c6ae1333eb027fb0c63053df452d3f9faf31cda0f8ef76fb0984f738e466411a151
+DIST smlnj-110.99.5-compiler.tgz 888050 BLAKE2B 8d7ee627207fd9ed3464efa5cd35db048a08d66858e81092a877b64f0188e4f0397598e2307e338ff9fe4f030293f7e70f22005eca74c132fbd8d151e9eb19ee SHA512 f37ec10a68ce42c60821c1258cae65e93dac0fbfc5cbd9bf37de3dae61b2df065e737faf16504d8eda9e258c4520d3805c7b265457e6f60302975e5142d3c967
+DIST smlnj-110.99.5-config.tgz 23303 BLAKE2B 1f1f70da9d9d45d6ebd0681f281e46604568e0ac039d1e00bebc98dbd814236fd2940a7dfe77f41d7f6bddabef00d1b25e9de1c010d731770ed3f73d30f03ead SHA512 03457ce016c603ed23aaf310dc3c9231b267a1abb6510515c999bbec6cb25b7c3e6ab3e79a223ae835444c10b5635b2d54971ba1987f42dc308dc555b72f460e
+DIST smlnj-110.99.5-doc.tgz 2529773 BLAKE2B d4d3addc5f614b53703445bb735df38031433a731a0d10a9dc9db39e66b8a5ce5355c08805dfde7ee11525746076fa7fbd8e907705a37809dc8feff5284c7e57 SHA512 4c2d90ce6e3dd0a561bb4a355963471fd2c2226825497b6dafd19dcfb53aef34c66eb116beb8f6d51bd911884fb642ab602175f42d54e0906a875ae8619c075b
+DIST smlnj-110.99.5-eXene.tgz 714471 BLAKE2B e66ba11610d4d104b2ae8b53da23782de94a58bcb84ef8df90d049e0448fd9a5e0e014d76c67e4e831059180afed52053582682204320cfdd9fc57c41b6f81d0 SHA512 ba2ab853949c6d1f616326e35b2ec30aae0281bca5697c36fcc308ffdfc44dddfd745dc342be2c2f43e1cd4aa0d8a83508c404d357802b679af45b86a627db6e
+DIST smlnj-110.99.5-heap2asm.tgz 1763 BLAKE2B 23a1dea3f408828eb68b2807a2bac06b3a47ecf0273f8450d6f75aff5b891a96cf13d17b963e65ca04cf1c3eaf553eb7b3ae0c90c110c5898bb9d8f305c331d8 SHA512 522b9c4f078410df135ec3a0f66f4abad0275a8b1dac9544951edb18ef3c12d2db375e3bd9c2fac291c1b276c5a4ae060b392899e30fd02033606278b87790e1
+DIST smlnj-110.99.5-ml-burg.tgz 40293 BLAKE2B a9d02176f7e60bac80704d0284838bfcc24b58a1a5bbb67d86e6a1a1f8c66d9b529356d250331fefd59476fbeffc5ad603a5016a2f1433f5487eafb42c18cd98 SHA512 45e8fe097d23004d5cb97553191271506bf7a6ba8152bf5d961e378c9f503e085288e6d93aeeb486c045bd0c7cefd493eb0a2f263ea3e0ee1b814deabf4db6e3
+DIST smlnj-110.99.5-ml-lex.tgz 28040 BLAKE2B 1920b9edc631634f756efa4d4281684729f518bd90a99917a98c979dfd0fcfd4e53d726f3ca76e2f016d0b927d55e67d18e654ecbac6708f83eecade090d7f1e SHA512 0e9ade2a6703a08ea9231c659acf1acab89c6d911bb73143b967512c7f0f195eda121239635c3dab492bbf90bd95afc2ec333928f1b7d1ba7c2bd794fa55510b
+DIST smlnj-110.99.5-ml-lpt.tgz 267318 BLAKE2B 78c89ad24e3175f55453e5061f33441d974f011e921ed7ac3e968f7fa21137d93e8f106d680a7aaa6695fc7d954645a04026863d8453e662254864e05263b241 SHA512 17d2c79b80311e27a4260797a17564d5334bd91d23da6ba0e5c9b07475d51d9e896d5823ce8134ee6d621779ebc222c558f7d124a546dfcb1effe18b12240119
+DIST smlnj-110.99.5-ml-yacc.tgz 101379 BLAKE2B ebdd8498407e4b9ada7810d631b20acee44eab8029662bbe265477029332ad1937e095b6aa108178ff27a276e292e7d103c6022ab40e0c0b56bd6a12717c53a8 SHA512 984b3f74a35167ac85aa101279dd3ee6188516e27f7cb40b9be175a29419328a76e6f0812a18c97ab0fca4826531cbd0e43af0da41bebc73448e671480b7eb60
+DIST smlnj-110.99.5-nlffi.tgz 74701 BLAKE2B b27391f67f72c093d45f73c80e803b348e5a65f5a22e0a6a546c30fd05e4c49fe746649788a0da760194f9ace7ae66a166c0acf7618111aa9beeb276b933ca88 SHA512 492621b2725772af7af3cc8a0b96cc274083c010df96b9efa44ee5a0bf2965cb68bcd6415f9ba91bc1f3e64041cecf71e6298e5c66a7ea441842fdbef4416d01
+DIST smlnj-110.99.5-old-basis.tgz 1365 BLAKE2B 4b5b97131255976ee32b62a236f7cb0180b680832afe405c7286e1a501da25d2269deb5361135a90d5d0e51dad641ee39f90fa961b1664e49eb33dccf2cb8574 SHA512 1b0622f053ab83cd50516e9a6cbbb2da6b32e177e993a998c9fc1b73cb897411629f542260c38d9f4764e07ab0d5e79821c506a0e7bd9bb02bbb84ebe95e888a
+DIST smlnj-110.99.5-pgraph.tgz 5367 BLAKE2B 77a94c720c06977c7906656b063ca382ec7313d6ca3318d6b839b8305281b36553310df384c07ebd0055639cc7a5d762796e534bec97f9fed33bf8b909ad5e26 SHA512 811f098a67ded93d14e05c0e805ed6d8d508635c919d3ed6b2b844f1180ac44b25d7c81d911aaec85d917e8817f2ceba654585523039f899f0ac6c4f4a71f57a
+DIST smlnj-110.99.5-runtime.tgz 335029 BLAKE2B 5473aa7a40589ecd7de58f799623911fbd3bc02adb76ac28123d215d36bb319ba60899cac913555d55c24156a4ec6fd174d97a63e906e81b3b7fd4dc565d20fb SHA512 9a026b4a4d0c4d840d4e3a5d2db06484974315f7584c78f207eb474b6c4b188ce97cef907ff58280f924113ac0a2e6e38c13ce591631be814b072622315398dd
+DIST smlnj-110.99.5-smlnj-c.tgz 10594 BLAKE2B 42b2e852a2ca16a04a1f406034aff66c83f9d1239eb4991489cce9f786d7bb15e0aae073262509def7dd0ab449c836a87d2a7460cfffdfe51d2b9324022a0bf3 SHA512 fd7ae015f94445ad7017a7849de028820ea02bf7343c0ad4231caedb2da2029a747c4b083dbbd424550a4feccac97b293627332b043f4f7e2f2d494729fae8e5
+DIST smlnj-110.99.5-smlnj-lib.tgz 658010 BLAKE2B d0f03e38116aa14c7d376facb855fd3b56778c601bc0f2bea21e1793d1a3d9a496da602f1f092fa2402eea411fac995f676cb30b1819e9a15832a60eef97a998 SHA512 0c643e3ab3f6ca5f3a483666042c3b7b835e73969ca3d7602359d8229d5291bd5b90fbc1e66a876a697a8d82fab003edebe61c18c0c0a79a7a987f430845c615
+DIST smlnj-110.99.5-system.tgz 295177 BLAKE2B cb6648d514754ea16650170dda240b2f318e326d1c6cb7a185c9f9e1a33ad32c5c71902ceda09be7a99d4610b3367f8ec590817f3b7d331d7c2b9ffa9cf5ae84 SHA512 038c233eae021293dd83cdaeee5e5d0a78259016684e74183a4f6defca4b72992158e1557c1195f8f1be4c4b5e6a6daf5bdc461eed5b1deabc75f51a8e9480c3
+DIST smlnj-110.99.5-trace-debug-profile.tgz 3892 BLAKE2B 48a4130428e48a46b1d33ae2d7d76b2e3dd564d186ae388b127ab5f72aa8a6d4d60eed5b2b03f9055ad2ac963aca09606a84c2f07aad871c83f1c4416081e887 SHA512 ca55979fccaaaf9a6668f459bbecff959b29d5e54e4c69c851fe7b9361b09e830d1133dfa821eece92610f5ed7faa3122c8c47fa2c87f5b9bbd807ec468f5a10
diff --git a/dev-lang/smlnj/files/smlnj-110.99.3-shuffle.patch b/dev-lang/smlnj/files/smlnj-110.99.3-shuffle.patch
deleted file mode 100644
index 8073e36baf41..000000000000
--- a/dev-lang/smlnj/files/smlnj-110.99.3-shuffle.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/base/runtime/c-libs/smlnj-date/makefile 2023-01-23 08:32:22.450319630 +0100
-+++ b/base/runtime/c-libs/smlnj-date/makefile 2023-01-23 08:37:23.920174357 +0100
-@@ -26,6 +26,7 @@
- strftime.o \
- unix-date.o
-
-+$(OBJS) : $(VERSION)
- $(LIBRARY) : $(VERSION) $(OBJS)
- rm -rf $(LIBRARY)
- $(AR) $(ARFLAGS) $(LIBRARY) $(OBJS)
diff --git a/dev-lang/smlnj/files/smlnj-110.99.4-shuffle.patch b/dev-lang/smlnj/files/smlnj-110.99.4-shuffle.patch
new file mode 100644
index 000000000000..9a37a1d859bb
--- /dev/null
+++ b/dev-lang/smlnj/files/smlnj-110.99.4-shuffle.patch
@@ -0,0 +1,36 @@
+--- a/base/runtime/c-libs/posix-io/makefile 2024-06-04 08:38:20.192453601 +0200
++++ b/base/runtime/c-libs/posix-io/makefile 2024-06-04 08:39:09.504903619 +0200
+@@ -37,7 +37,8 @@
+ lseek.o \
+ fsync.o
+
+-$(LIBRARY) : $(VERSION) $(OBJS)
++$(LIBRARY) : $(VERSION)
++ $(MAKE) $(OBJS)
+ rm -rf $(LIBRARY)
+ $(AR) $(ARFLAGS) $(LIBRARY) $(OBJS)
+ $(RANLIB) $(LIBRARY)
+--- a/base/runtime/objs/makefile 2024-06-04 09:26:03.961409055 +0200
++++ b/base/runtime/objs/makefile 2024-06-04 09:27:12.461586788 +0200
+@@ -113,7 +113,8 @@
+ (cd $(MP_DIR); $(MAKE) MAKE="$(MAKE)" clean)
+
+
+-$(RUNTIME): $(VERSION) main.o $(OBJS) $(ALL_LIBS)
++$(RUNTIME): $(VERSION)
++ $(MAKE) main.o $(OBJS) $(ALL_LIBS)
+ $(CC) -o $(RUNTIME) $(CFLAGS) $(LDFLAGS) main.o $(OBJS) $(ALL_LIBS) $(LD_LIBS)
+
+ $(RUNTIME_A): $(VERSION) main.o $(OBJS) $(ALL_LIBS)
+--- a/base/runtime/c-libs/posix-signal/makefile 2024-06-04 09:32:49.906560537 +0200
++++ b/base/runtime/c-libs/posix-signal/makefile 2024-06-04 09:33:12.811305204 +0200
+@@ -21,7 +21,8 @@
+ OBJS = posix-signal-lib.o \
+ osval.o
+
+-$(LIBRARY) : $(VERSION) $(OBJS)
++$(LIBRARY) : $(VERSION)
++ $(MAKE) $(OBJS)
+ rm -rf $(LIBRARY)
+ $(AR) $(ARFLAGS) $(LIBRARY) $(OBJS)
+ $(RANLIB) $(LIBRARY)
diff --git a/dev-lang/smlnj/smlnj-110.99.4.ebuild b/dev-lang/smlnj/smlnj-110.99.4.ebuild
index 8b5e2ab139ba..fd72dd7ca0a9 100644
--- a/dev-lang/smlnj/smlnj-110.99.4.ebuild
+++ b/dev-lang/smlnj/smlnj-110.99.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -81,6 +81,8 @@ src_unpack() {
# Unpack asdl to fix autoconf linker check
unpack "${S}"/asdl.tgz
+
+ eapply "${FILESDIR}"/${P}-shuffle.patch
}
src_prepare() {
diff --git a/dev-lang/smlnj/smlnj-110.99.3.ebuild b/dev-lang/smlnj/smlnj-110.99.5.ebuild
index 35f77904057e..49b93fb2e8fa 100644
--- a/dev-lang/smlnj/smlnj-110.99.3.ebuild
+++ b/dev-lang/smlnj/smlnj-110.99.5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -10,7 +10,7 @@ HOMEPAGE="http://www.smlnj.org"
BASE_URI="http://smlnj.cs.uchicago.edu/dist/working/${PV}"
-FILES="
+SRC_FILES="
doc.tgz
config.tgz
@@ -50,7 +50,7 @@ SRC_URI="
x86? ( ${BASE_URI}/boot.x86-unix.tgz -> ${P}-boot.x86-unix.tgz )
"
-for file in ${FILES} ; do
+for file in ${SRC_FILES} ; do
SRC_URI+=" ${BASE_URI}/${file} -> ${P}-${file} "
done
@@ -62,8 +62,6 @@ SLOT="0"
# sparc support should be there but is untested
KEYWORDS="~amd64 ~ppc ~x86"
-PATCHES=( "${FILESDIR}"/${P}-shuffle.patch )
-
src_unpack() {
mkdir -p "${S}" || die
local file
@@ -114,7 +112,7 @@ src_compile() {
}
src_install() {
- local DIR=/usr/$(get_libdir)/${PN}
+ local DIR="/usr/$(get_libdir)/${PN}"
local i
local file
@@ -125,8 +123,10 @@ src_install() {
-i ${file}
done
- newbin ./config/_heap2exec heap2exec
- exeinto ${DIR}/bin
+ exeinto /usr/bin
+ newexe ./config/_heap2exec heap2exec
+
+ exeinto "${DIR}/bin"
pushd bin || die
for i in {*,.*} ; do
[[ -f ${i} ]] && doexe ${i}
diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
index 554099e6f6e2..b50b0059395a 100644
--- a/dev-lang/spidermonkey/Manifest
+++ b/dev-lang/spidermonkey/Manifest
@@ -1,9 +1,9 @@
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.3.1esr.source.tar.xz 515785920 BLAKE2B ad5ec24361e94d9185eed210f681c50159f5be3e6046d79200b5e2586107f1ed98ebe7935f1e266afadd570fc1aa6a1aec81fe3b7fb86efb48afe82514f26c68 SHA512 65cb6fc46bba03eed742bd67f8e36b63b19f2ad7b85d2f503595704a4e88f554758a1e66ba548c8efe97a76322fb2514db72e6ff4bb2992d1aaa86edc3af85f1
+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.9.1esr.source.tar.xz 508070816 BLAKE2B 5182972f45edfb9ec6b23cc2e869fe86237bd51bd23fd31058d03d9dc98f0ea2dcf57215d61d724e08f98d0e0771b86b5e5ce78ed03c3ac08fac60ed4377f890 SHA512 9ccaede2fcda13a07f98a2110bb8f99c7324601d66bff311f3070a669576a1598fe1d7de2d005d725d1f44dbe3934a9c0fd0b7950f60686047d4ce8d9d812310
-DIST firefox-115esr-patches-06.tar.xz 14944 BLAKE2B e60a8a32f8c5e6d897e8c3e13d291ffab651937505ce258f031e7e75560c9eb89fce4a22c61872d639e6e1d40244e94761baa1660c2d3d02584ad4cc4778946f SHA512 d9ea1a063df287fa651042c90529b1a1b5ebd5a28735c44b5527cc7dd29678c2f8a9204f007db328371ed6af9613ca7215464c00df5e685c3af4296a22139257
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
diff --git a/dev-lang/spidermonkey/spidermonkey-115.10.0.ebuild b/dev-lang/spidermonkey/spidermonkey-115.10.0.ebuild
index ecca50c0ad51..41c724870547 100644
--- a/dev-lang/spidermonkey/spidermonkey-115.10.0.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-115.10.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.3.1.ebuild b/dev-lang/spidermonkey/spidermonkey-115.11.0.ebuild
index 552bc5c63e43..30f367f6a1f9 100644
--- a/dev-lang/spidermonkey/spidermonkey-115.3.1.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-115.11.0.ebuild
@@ -4,12 +4,12 @@
EAPI="8"
# Patch version
-FIREFOX_PATCHSET="firefox-115esr-patches-06.tar.xz"
+FIREFOX_PATCHSET="firefox-115esr-patches-10.tar.xz"
SPIDERMONKEY_PATCHSET="spidermonkey-115-patches-01.tar.xz"
-LLVM_MAX_SLOT=17
+LLVM_MAX_SLOT=18
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,ssl,xml(+)"
WANT_AUTOCONF="2.1"
@@ -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"
@@ -71,8 +71,17 @@ IUSE="clang cpu_flags_arm_neon debug +jit lto 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
@@ -98,7 +107,12 @@ BDEPEND="${PYTHON_DEPS}
)
)
!clang? ( virtual/rust )
- virtual/pkgconfig
+ !elibc_glibc? (
+ || (
+ dev-lang/rust
+ <dev-lang/rust-bin-1.73
+ )
+ )
test? (
$(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
)"
@@ -246,6 +260,11 @@ src_prepare() {
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
@@ -254,6 +273,17 @@ src_prepare() {
# 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/" \
@@ -361,9 +391,8 @@ src_configure() {
myeconfargs+=( --disable-real-time-tracing )
fi
- if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
- myeconfargs+=( --enable-rust-simd )
- 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
diff --git a/dev-lang/spidermonkey/spidermonkey-115.12.0.ebuild b/dev-lang/spidermonkey/spidermonkey-115.12.0.ebuild
new file mode 100644
index 000000000000..30f367f6a1f9
--- /dev/null
+++ b/dev-lang/spidermonkey/spidermonkey-115.12.0.ebuild
@@ -0,0 +1,503 @@
+# 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/starlark-rust/starlark-rust-0.8.0.ebuild b/dev-lang/starlark-rust/starlark-rust-0.8.0.ebuild
index 583c4b1b2c2d..c113e7a06b47 100644
--- a/dev-lang/starlark-rust/starlark-rust-0.8.0.ebuild
+++ b/dev-lang/starlark-rust/starlark-rust-0.8.0.ebuild
@@ -1,185 +1,184 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
CRATES="
- Inflector-0.11.4
- ahash-0.7.6
- aho-corasick-0.7.18
- annotate-snippets-0.9.1
- ansi_term-0.12.1
- anyhow-1.0.57
- argfile-0.1.4
- ascii-canvas-3.0.0
- atty-0.2.14
- autocfg-1.1.0
- beef-0.5.1
- bit-set-0.5.2
- bit-vec-0.6.3
- bitflags-1.3.2
- bumpalo-3.9.1
- cc-1.0.73
- cfg-if-1.0.0
- clap-2.34.0
- clipboard-win-4.4.1
- convert_case-0.4.0
- crossbeam-channel-0.5.4
- crossbeam-utils-0.8.8
- crunchy-0.2.2
- debugserver-types-0.5.0
- derivative-2.2.0
- derive_more-0.99.17
- diff-0.1.12
- dirs-next-2.0.0
- dirs-sys-next-0.1.2
- either-1.6.1
- ena-0.14.0
- endian-type-0.1.2
- erased-serde-0.3.20
- errno-0.2.8
- errno-dragonfly-0.1.2
- error-code-2.3.1
- fancy-regex-0.5.0
- fd-lock-3.0.5
- fixedbitset-0.4.1
- fnv-1.0.7
- form_urlencoded-1.0.1
- gazebo-0.7.0
- gazebo_derive-0.7.0
- gazebo_lint-0.1.1
- getrandom-0.2.6
- hashbrown-0.11.2
- heck-0.3.3
- hermit-abi-0.1.19
- idna-0.2.3
- indenter-0.3.3
- indexmap-1.8.1
- indoc-1.0.6
- io-lifetimes-0.6.1
- itertools-0.9.0
- itertools-0.10.3
- itoa-1.0.1
- lalrpop-0.19.8
- lalrpop-util-0.19.8
- lazy_static-1.4.0
- libc-0.2.125
- linux-raw-sys-0.0.46
- lock_api-0.4.7
- log-0.4.17
- logos-0.12.0
- logos-derive-0.12.0
- lsp-server-0.5.2
- lsp-types-0.89.2
- maplit-1.0.2
- matches-0.1.9
- memchr-2.5.0
- memoffset-0.6.5
- new_debug_unreachable-1.0.4
- nibble_vec-0.1.0
- nix-0.23.1
- num-bigint-0.4.3
- num-integer-0.1.45
- num-traits-0.2.15
- once_cell-1.10.0
- os_str_bytes-6.0.0
- parking_lot-0.12.0
- parking_lot_core-0.9.3
- paste-1.0.7
- percent-encoding-2.1.0
- petgraph-0.6.0
- phf_shared-0.10.0
- pico-args-0.4.2
- ppv-lite86-0.2.16
- precomputed-hash-0.1.1
- proc-macro-error-1.0.4
- proc-macro-error-attr-1.0.4
- proc-macro2-1.0.38
- quote-1.0.18
- radix_trie-0.2.1
- rand-0.8.5
- rand_chacha-0.3.1
- rand_core-0.6.3
- redox_syscall-0.2.13
- redox_users-0.4.3
- regex-1.5.5
- regex-syntax-0.6.25
- rustc_version-0.4.0
- rustix-0.34.6
- rustversion-1.0.6
- rustyline-9.1.2
- ryu-1.0.9
- same-file-1.0.6
- schemafy-0.5.2
- schemafy_core-0.5.2
- schemafy_lib-0.5.2
- scopeguard-1.1.0
- semver-1.0.9
- serde-1.0.137
- serde_derive-1.0.137
- serde_json-1.0.81
- serde_repr-0.1.8
- siphasher-0.3.10
- smallvec-1.8.0
- smawk-0.3.1
- static_assertions-1.1.0
- str-buf-1.0.5
- string_cache-0.8.4
- strsim-0.8.0
- strsim-0.10.0
- structopt-0.3.26
- structopt-derive-0.4.18
- syn-1.0.93
- term-0.7.0
- textwrap-0.11.0
- textwrap-0.14.2
- thiserror-1.0.31
- thiserror-impl-1.0.31
- tiny-keccak-2.0.2
- tinyvec-1.6.0
- tinyvec_macros-0.1.0
- unicode-bidi-0.3.8
- unicode-linebreak-0.1.2
- unicode-normalization-0.1.19
- unicode-segmentation-1.9.0
- unicode-width-0.1.9
- unicode-xid-0.2.3
- url-2.2.2
- utf8-ranges-1.0.5
- utf8parse-0.2.0
- vec_map-0.8.2
- version_check-0.9.4
- walkdir-2.3.2
- wasi-0.10.2+wasi-snapshot-preview1
- winapi-0.3.9
- winapi-i686-pc-windows-gnu-0.4.0
- winapi-util-0.1.5
- winapi-x86_64-pc-windows-gnu-0.4.0
- windows-sys-0.30.0
- windows-sys-0.36.1
- windows_aarch64_msvc-0.30.0
- windows_aarch64_msvc-0.36.1
- windows_i686_gnu-0.30.0
- windows_i686_gnu-0.36.1
- windows_i686_msvc-0.30.0
- windows_i686_msvc-0.36.1
- windows_x86_64_gnu-0.30.0
- windows_x86_64_gnu-0.36.1
- windows_x86_64_msvc-0.30.0
- windows_x86_64_msvc-0.36.1
- yansi-term-0.1.2
+ Inflector@0.11.4
+ ahash@0.7.6
+ aho-corasick@0.7.18
+ annotate-snippets@0.9.1
+ ansi_term@0.12.1
+ anyhow@1.0.57
+ argfile@0.1.4
+ ascii-canvas@3.0.0
+ atty@0.2.14
+ autocfg@1.1.0
+ beef@0.5.1
+ bit-set@0.5.2
+ bit-vec@0.6.3
+ bitflags@1.3.2
+ bumpalo@3.9.1
+ cc@1.0.73
+ cfg-if@1.0.0
+ clap@2.34.0
+ clipboard-win@4.4.1
+ convert_case@0.4.0
+ crossbeam-channel@0.5.4
+ crossbeam-utils@0.8.8
+ crunchy@0.2.2
+ debugserver-types@0.5.0
+ derivative@2.2.0
+ derive_more@0.99.17
+ diff@0.1.12
+ dirs-next@2.0.0
+ dirs-sys-next@0.1.2
+ either@1.6.1
+ ena@0.14.0
+ endian-type@0.1.2
+ erased-serde@0.3.20
+ errno@0.2.8
+ errno-dragonfly@0.1.2
+ error-code@2.3.1
+ fancy-regex@0.5.0
+ fd-lock@3.0.5
+ fixedbitset@0.4.1
+ fnv@1.0.7
+ form_urlencoded@1.0.1
+ gazebo@0.7.0
+ gazebo_derive@0.7.0
+ gazebo_lint@0.1.1
+ getrandom@0.2.6
+ hashbrown@0.11.2
+ heck@0.3.3
+ hermit-abi@0.1.19
+ idna@0.2.3
+ indenter@0.3.3
+ indexmap@1.8.1
+ indoc@1.0.6
+ io-lifetimes@0.6.1
+ itertools@0.9.0
+ itertools@0.10.3
+ itoa@1.0.1
+ lalrpop@0.19.8
+ lalrpop-util@0.19.8
+ lazy_static@1.4.0
+ libc@0.2.125
+ linux-raw-sys@0.0.46
+ lock_api@0.4.7
+ log@0.4.17
+ logos@0.12.0
+ logos-derive@0.12.0
+ lsp-server@0.5.2
+ lsp-types@0.89.2
+ maplit@1.0.2
+ matches@0.1.9
+ memchr@2.5.0
+ memoffset@0.6.5
+ new_debug_unreachable@1.0.4
+ nibble_vec@0.1.0
+ nix@0.23.1
+ num-bigint@0.4.3
+ num-integer@0.1.45
+ num-traits@0.2.15
+ once_cell@1.10.0
+ os_str_bytes@6.0.0
+ parking_lot@0.12.0
+ parking_lot_core@0.9.3
+ paste@1.0.7
+ percent-encoding@2.1.0
+ petgraph@0.6.0
+ phf_shared@0.10.0
+ pico-args@0.4.2
+ ppv-lite86@0.2.16
+ precomputed-hash@0.1.1
+ proc-macro-error@1.0.4
+ proc-macro-error-attr@1.0.4
+ proc-macro2@1.0.38
+ quote@1.0.18
+ radix_trie@0.2.1
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.3
+ redox_syscall@0.2.13
+ redox_users@0.4.3
+ regex@1.5.5
+ regex-syntax@0.6.25
+ rustc_version@0.4.0
+ rustix@0.34.6
+ rustversion@1.0.6
+ rustyline@9.1.2
+ ryu@1.0.9
+ same-file@1.0.6
+ schemafy@0.5.2
+ schemafy_core@0.5.2
+ schemafy_lib@0.5.2
+ scopeguard@1.1.0
+ semver@1.0.9
+ serde@1.0.137
+ serde_derive@1.0.137
+ serde_json@1.0.81
+ serde_repr@0.1.8
+ siphasher@0.3.10
+ smallvec@1.8.0
+ smawk@0.3.1
+ static_assertions@1.1.0
+ str-buf@1.0.5
+ string_cache@0.8.4
+ strsim@0.8.0
+ strsim@0.10.0
+ structopt@0.3.26
+ structopt-derive@0.4.18
+ syn@1.0.93
+ term@0.7.0
+ textwrap@0.11.0
+ textwrap@0.14.2
+ thiserror@1.0.31
+ thiserror-impl@1.0.31
+ tiny-keccak@2.0.2
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.0
+ unicode-bidi@0.3.8
+ unicode-linebreak@0.1.2
+ unicode-normalization@0.1.19
+ unicode-segmentation@1.9.0
+ unicode-width@0.1.9
+ unicode-xid@0.2.3
+ url@2.2.2
+ utf8-ranges@1.0.5
+ utf8parse@0.2.0
+ vec_map@0.8.2
+ version_check@0.9.4
+ walkdir@2.3.2
+ wasi@0.10.2+wasi-snapshot-preview1
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows-sys@0.30.0
+ windows-sys@0.36.1
+ windows_aarch64_msvc@0.30.0
+ windows_aarch64_msvc@0.36.1
+ windows_i686_gnu@0.30.0
+ windows_i686_gnu@0.36.1
+ windows_i686_msvc@0.30.0
+ windows_i686_msvc@0.36.1
+ windows_x86_64_gnu@0.30.0
+ windows_x86_64_gnu@0.36.1
+ windows_x86_64_msvc@0.30.0
+ windows_x86_64_msvc@0.36.1
+ yansi-term@0.1.2
"
inherit cargo
DESCRIPTION="A Rust implementation of the Starlark language"
HOMEPAGE="https://github.com/facebookexperimental/starlark-rust"
-SRC_URI="$(cargo_crate_uris ${CRATES})
+SRC_URI="${CARGO_CRATE_URIS}
https://github.com/facebookexperimental/starlark-rust/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
-IUSE=""
# Nightly rust-1.53.0 required for https://bugs.gentoo.org/796824
BDEPEND="${RUST_DEPEND}
diff --git a/dev-lang/swig/swig-4.2.1.ebuild b/dev-lang/swig/swig-4.2.1.ebuild
index 9768e5632ec5..9455e5922f3b 100644
--- a/dev-lang/swig/swig-4.2.1.ebuild
+++ b/dev-lang/swig/swig-4.2.1.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
LICENSE="GPL-3+ BSD BSD-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="ccache doc pcre test"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/typescript/Manifest b/dev-lang/typescript/Manifest
index c2fbcf27f1df..c5666049d890 100644
--- a/dev-lang/typescript/Manifest
+++ b/dev-lang/typescript/Manifest
@@ -1,5 +1 @@
-DIST typescript-5.3.3.tgz 5761919 BLAKE2B 629d2d97a9d57f63cd693a6d77cc385058778c4e4de6002f5e2646c64d1b8ff80386290435b2c838f647bc76f626e4dfd9613e1237d53fa5e4b98f503fbdf9ea SHA512 a5759cadac4cd2ec404beb4dd001bf045d93caa9873b4d78674ef452c27ea45bd8b914aaf0a1fc0e65a99db5ded2910f0c75d957715c01b2648a3279a0d1275b
-DIST typescript-5.4.2.tgz 5824544 BLAKE2B a22ecc8a17be22da10263746537d5ce0a0af359866773d6d4d081332a82436c734628d0d89134db63f46fae57f62f6e674f420cea2fff902c1be1a25307b03d8 SHA512 fb6fe0d0576cd444653fa26c6a44100d78d975930cfabaa96a61592442a1e24c13227de20e480ab5bcb409e35de404cd678472d5ac75e53331d16d95fa68a2cd
-DIST typescript-5.4.3.tgz 5824407 BLAKE2B c985361a7248f87437bd3df1ce7a66cb6c409b91718fd874f4a51cbff91d7b1bcf91034d1bcfbd3e469e168c4e2571892b28ac74edcdd04fc12c3391925dfb49 SHA512 2ab3dddcf29a08bafbf0c6a5822c099c0db9366f070267703779985186601bfc22cc8a3d11a8a7355408f7fc836afb5515137687793cb9fdc62c7ba10cc8041e
-DIST typescript-5.4.4.tgz 5825725 BLAKE2B 98ebd2f2c3472b7944009f672d647d34540b3cb331fb02d41069df572dc10a0f19c08aee7a12c0536e6d3895502e4a8c11b8ff0c1dcb2d58e0398795f2ce50fe SHA512 74613656ff1ca55bf0dbcbfc1c23eac9bd3c1336c1511c43a6e849bd3aeeb128547c69e11c169f0ec2dd4b5121871c8be8125013ed9c4f77433c0bfe310ea82f
DIST typescript-5.4.5.tgz 5825770 BLAKE2B aea24c0924b2a0b0d01face2ce6be4e7fac85c2205cb0ecde492c5301f83d55fd8cd501326bd47f90cd78abf48c7aaf0381b13fc8242f3d2f9235e6051860b2b SHA512 bdc23852946083cd68211505c11d164881cab75d6727b48056560d22ef90a6a7b25cffa0a50272fd9e3e174686c5213832ac23c97bd6fd3ce090b031d80187c1
diff --git a/dev-lang/typescript/typescript-5.3.3.ebuild b/dev-lang/typescript/typescript-5.3.3.ebuild
deleted file mode 100644
index 761177a3441e..000000000000
--- a/dev-lang/typescript/typescript-5.3.3.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# 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 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/typescript/typescript-5.4.2.ebuild b/dev-lang/typescript/typescript-5.4.2.ebuild
deleted file mode 100644
index 761177a3441e..000000000000
--- a/dev-lang/typescript/typescript-5.4.2.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# 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 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/typescript/typescript-5.4.3.ebuild b/dev-lang/typescript/typescript-5.4.3.ebuild
deleted file mode 100644
index 761177a3441e..000000000000
--- a/dev-lang/typescript/typescript-5.4.3.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# 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 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/typescript/typescript-5.4.4.ebuild b/dev-lang/typescript/typescript-5.4.4.ebuild
deleted file mode 100644
index 2be080b52222..000000000000
--- a/dev-lang/typescript/typescript-5.4.4.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# 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 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/typescript/typescript-5.4.5.ebuild b/dev-lang/typescript/typescript-5.4.5.ebuild
index 2be080b52222..761177a3441e 100644
--- a/dev-lang/typescript/typescript-5.4.5.ebuild
+++ b/dev-lang/typescript/typescript-5.4.5.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"
BDEPEND=">=net-libs/nodejs-16[npm]"
diff --git a/dev-lang/uasm/files/makefile-dep-fix.patch b/dev-lang/uasm/files/makefile-dep-fix.patch
new file mode 100644
index 000000000000..66b5ab3d5293
--- /dev/null
+++ b/dev-lang/uasm/files/makefile-dep-fix.patch
@@ -0,0 +1,22 @@
+Bug: https://bugs.gentoo.org/933867
+
+diff --git a/gccLinux64.mak b/gccLinux64.mak
+index 9d4431a..e4fb10f 100644
+--- a/gccLinux64.mak
++++ b/gccLinux64.mak
+@@ -31,13 +31,13 @@ include gccmod.inc
+
+ #.c.o:
+ # $(CC) -c $(inc_dirs) $(c_flags) -o $(OUTD)/$*.o $<
+-$(OUTD)/%.o: %.c
++$(OUTD)/%.o: %.c | $(OUTD)
+ $(CC) -D __UNIX__ -c $(inc_dirs) $(c_flags) $(CFLAGS) $(CPPFLAGS) -o $(OUTD)/$*.o $<
+
+ all: $(OUTD) $(OUTD)/$(TARGET1)
+
+ $(OUTD):
+- mkdir $(OUTD)
++ mkdir -p $(OUTD)
+
+ $(OUTD)/$(TARGET1) : $(OUTD)/main.o $(proj_obj)
+ ifeq ($(DEBUG),0)
diff --git a/dev-lang/uasm/uasm-2.56.2.ebuild b/dev-lang/uasm/uasm-2.56.2.ebuild
index 8210588c135e..3d96057ef673 100644
--- a/dev-lang/uasm/uasm-2.56.2.ebuild
+++ b/dev-lang/uasm/uasm-2.56.2.ebuild
@@ -15,6 +15,7 @@ SLOT="0"
KEYWORDS="~amd64"
PATCHES=(
"${FILESDIR}/build-fix.patch"
+ "${FILESDIR}/makefile-dep-fix.patch"
)
src_prepare() {
diff --git a/dev-lang/vala/Manifest b/dev-lang/vala/Manifest
index b80ecf9f9c32..647b70e51a11 100644
--- a/dev-lang/vala/Manifest
+++ b/dev-lang/vala/Manifest
@@ -1,4 +1,2 @@
-DIST vala-0.56.14.tar.xz 4003276 BLAKE2B db6ccca635122ff2089cd61fd8335376eed435f15d9bd7c20837829fe5acc8df49a51194e3bc17d0c24567240cf2519348cc2b0a7b177b971dc037ed39e893de SHA512 f13e7916acaba220bf8a0fb8825bf9a125fadcc13011c4e4f426e5d3a5af650543457294bede66dc5e1c742dd9b55f722a65b880e4737a6b480365c9df4c8c8b
-DIST vala-0.56.15.tar.xz 4014128 BLAKE2B bbed2bc84d08c4eab63c628b21b975c5661590b1fe96921fa43760b5bd0ad21aaa55d460997ae0bc9e1fd7268029a1f0f26f6291f0b346b46dea796973aeb49c SHA512 667a84020ce9739e57f4cab1f2e9350ce5266d85dc4943cfa45b3ce44235f275bc709d40d8ebffd89ca8b5f92844c2a9134bd3ca1276fc2c173ec84f842563f1
DIST vala-0.56.16.tar.xz 4013716 BLAKE2B 509809a93c70fd6a153fc188aaa3d85cbcc8d37649711ea32521505eb0bdc3fe824d90c538aaa7a7caa1c4faaea9053693b28ae54bdd6c212539a70300f2c33e SHA512 99f69c3c7a5ed89923b55cf035c6d9a5867577b2ecff92dddf5f21aaad1281786e5fcd775833b0f251417caf857f5fe7efbf134fbded427a7b29fa3acb00203a
DIST vala-0.56.17.tar.xz 4016576 BLAKE2B c4b8d5b7c810893728f82d2cbbf2f0dd70ad17bd4eeb323ab5d31d99f37b5a5508b7d2447f0249f3a925013d7110bb6f145b32c833b990b15f18d9949035293f SHA512 61df98ba6b15d589a1864598a6f69cc3bee9154ba65270fc3a2fb1d0c3a68c32c29b572bcc26d6616d3fa23d53fb41710af3636125507864dd17f47cf27d4723
diff --git a/dev-lang/vala/vala-0.56.14.ebuild b/dev-lang/vala/vala-0.56.14.ebuild
deleted file mode 100644
index b9c3c1b71920..000000000000
--- a/dev-lang/vala/vala-0.56.14.ebuild
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit gnome2
-
-DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala https://gitlab.gnome.org/GNOME/vala"
-
-LICENSE="LGPL-2.1+"
-SLOT="0.56"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x86-linux"
-IUSE="test valadoc"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.48.0:2
- >=dev-libs/vala-common-${PV}
- valadoc? ( >=media-gfx/graphviz-2.16 )
-"
-DEPEND="${RDEPEND}
- test? (
- dev-libs/dbus-glib
- >=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection
- )
-"
-BDEPEND="
- dev-libs/libxslt
- app-alternatives/lex
- virtual/pkgconfig
- app-alternatives/yacc
-"
-
-src_configure() {
- # weasyprint enables generation of PDF from HTML
- gnome2_src_configure \
- --disable-unversioned \
- $(use_enable valadoc) \
- VALAC=: \
- WEASYPRINT=:
-}
-
-src_install() {
- default
- find "${D}" -name "*.la" -delete || die
-}
diff --git a/dev-lang/vala/vala-0.56.15.ebuild b/dev-lang/vala/vala-0.56.15.ebuild
deleted file mode 100644
index ec0273524b5a..000000000000
--- a/dev-lang/vala/vala-0.56.15.ebuild
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit gnome2
-
-DESCRIPTION="Compiler for the GObject type system"
-HOMEPAGE="https://wiki.gnome.org/Projects/Vala https://gitlab.gnome.org/GNOME/vala"
-
-LICENSE="LGPL-2.1+"
-SLOT="0.56"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux"
-IUSE="test valadoc"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.48.0:2
- >=dev-libs/vala-common-${PV}
- valadoc? ( >=media-gfx/graphviz-2.16 )
-"
-DEPEND="${RDEPEND}
- test? (
- dev-libs/dbus-glib
- >=dev-libs/glib-2.26:2
- dev-libs/gobject-introspection
- )
-"
-BDEPEND="
- dev-libs/libxslt
- app-alternatives/lex
- virtual/pkgconfig
- app-alternatives/yacc
-"
-
-src_configure() {
- # weasyprint enables generation of PDF from HTML
- gnome2_src_configure \
- --disable-unversioned \
- $(use_enable valadoc) \
- VALAC=: \
- WEASYPRINT=:
-}
-
-src_install() {
- default
- find "${D}" -name "*.la" -delete || die
-}
diff --git a/dev-lang/xsb/files/0001-modern-C-fix-for-implicit-int.patch b/dev-lang/xsb/files/0001-modern-C-fix-for-implicit-int.patch
new file mode 100644
index 000000000000..d70019db4b5f
--- /dev/null
+++ b/dev-lang/xsb/files/0001-modern-C-fix-for-implicit-int.patch
@@ -0,0 +1,25 @@
+From 3dd24018e4f5c48c382588dd9d8da5b80056a55b Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz93@gmail.com>
+Date: Thu, 14 Mar 2024 20:28:31 -0400
+Subject: [PATCH] modern C fix for implicit-int
+
+---
+ build/configure.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/configure.in b/build/configure.in
+index d51bfeb..6999565 100644
+--- a/build/configure.in
++++ b/build/configure.in
+@@ -1346,7 +1346,7 @@ LDFLAGS="-Wl,-export-dynamic"
+ AC_MSG_CHECKING([whether loader understands -Wl,-export-dynamic])
+ # Ideally we should use AC_LINK_IFELSE instead of the obsolete AC_TRY_LINK
+ #AC_TRY_LINK([],[], __export_dynamic=yes, __export_dynamic=no)
+-AC_LINK_IFELSE([AC_LANG_SOURCE([[main(){return 0;}]])], __export_dynamic=yes, __export_dynamic=no)
++AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(){return 0;}]])], __export_dynamic=yes, __export_dynamic=no)
+ AC_MSG_RESULT($__export_dynamic)
+ LDFLAGS=$TEMP_LDFLAGS
+ ####### End of test for -export-dynamic option of ld
+--
+2.43.2
+
diff --git a/dev-lang/xsb/xsb-4.0.0.ebuild b/dev-lang/xsb/xsb-4.0.0-r1.ebuild
index 6739cc6695c0..bf99d5d3efb6 100644
--- a/dev-lang/xsb/xsb-4.0.0.ebuild
+++ b/dev-lang/xsb/xsb-4.0.0-r1.ebuild
@@ -1,14 +1,14 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
PATCHSET_VER="3"
-inherit autotools java-pkg-opt-2
+inherit autotools flag-o-matic java-pkg-opt-2
DESCRIPTION="XSB is a logic programming and deductive database system"
-HOMEPAGE="http://xsb.sourceforge.net"
+HOMEPAGE="https://xsb.sourceforge.net"
SRC_URI="https://downloads.sourceforge.net/xsb/XSB-$(ver_rs 1-3 -).tar.gz
https://dev.gentoo.org/~keri/distfiles/xsb/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
@@ -30,7 +30,12 @@ DEPEND="${RDEPEND}"
S="${WORKDIR}"/XSB
-PATCHES=( "${WORKDIR}/${PV}" )
+PATCHES=(
+ "${WORKDIR}/${PV}"
+ # https://bugs.gentoo.org/870970
+ # https://sourceforge.net/p/xsb/bugs/265/
+ "${FILESDIR}"/0001-modern-C-fix-for-implicit-int.patch
+)
src_prepare() {
default
@@ -50,6 +55,12 @@ src_prepare() {
}
src_configure() {
+ # -Werror=strict-aliasing, -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855659
+ # https://sourceforge.net/p/xsb/bugs/264/
+ append-flags -fno-strict-aliasing
+ filter-lto
+
cd "${S}"/build
econf \
diff --git a/dev-lang/zig-bin/Manifest b/dev-lang/zig-bin/Manifest
index 7ce5d4b9c74c..8912f192b2e9 100644
--- a/dev-lang/zig-bin/Manifest
+++ b/dev-lang/zig-bin/Manifest
@@ -1,12 +1,36 @@
DIST zig-linux-aarch64-0.10.1.tar.xz 40321280 BLAKE2B 39abefb80d540d52333ec76203893630ac5df2a784684397033e9ac766f67c4512be71513ebb80faac6c5ebaa2a737859b7bc27b82797232cf97d87d91e8492e SHA512 44dd15b1b2d7bc85a4f8e8171ae5c51122be352249273091b499de5a392c72e262585f981908afd1718a41fa7e67b36f1b65c6cacbf8e9f226a687bd85b7edc6
+DIST zig-linux-aarch64-0.10.1.tar.xz.minisig 326 BLAKE2B f20178d19a0a3415af5557787ba5380b6502771b1df858a03812d47f5602c6cf4bb9c1d7f854ea086a45a7c05a4fb0d6df42e05e3c9e383918195bc3843a88a6 SHA512 ffff297e3946b0bc5c8da6377360764f37ad9a088672c0ba32327cac60379bc5dcba37265e3e9c92ae17073bb8f26f67466c9ac9fd6151c72e62b76214432d0f
DIST zig-linux-aarch64-0.11.0.tar.xz 41492432 BLAKE2B fd4e1f242475bfdc94f418817d2f1b256ebdc7e29b94e7629f54c241b7a1df273a2c776ab29dad645af041b5cfb0e7d1b0a922bb04a82553604076d36e957580 SHA512 07a026958cac0f1674496f8a1fd3a3dfcd79274d1a25c87e4123b74a437f332bbea4097320da7f83d67626fb9d6e9fe1d78e917522debb8873f7c40938031e63
+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-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-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
+DIST zig-linux-powerpc-0.11.0.tar.xz.minisig 326 BLAKE2B ddf87eece5a2238a72d672af245de57ec3163d6849b84a72375dd08e12b9f4d068fd1584abfe0d9dbf449b802383e522bef1a4e21217788ca5638b885c1030c0 SHA512 c762e4a2414aee08fa4a7afd26660cf43c81478fa1a154cd7e7ecdcff15aa3d4ab8263fabe271ce9bd5191a1564b38bb7f96ee7afc2317f71d60c0fd527e32f6
DIST zig-linux-powerpc64le-0.11.0.tar.xz 44656184 BLAKE2B 597947c4bee73847abf0941819477bf8a47a4d019a8060e79133e3d01b43325c0acfae7a8d57a4d84e1cd9dfe63b3439fac4e4372d6b538e9992a9364d65ee73 SHA512 fc1dbe9115e2f92f03a6934d32c65d1de4cbe0cf070d6f468632c906966048400a806d8ec8540fde7a1b195a8ae8238fde5ddd94c2d54a0af70d9060d006cf89
+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-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-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_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
diff --git a/dev-lang/zig-bin/zig-bin-0.10.1-r3.ebuild b/dev-lang/zig-bin/zig-bin-0.10.1-r3.ebuild
index b5dcb9e26682..d3bcaa24399a 100644
--- a/dev-lang/zig-bin/zig-bin-0.10.1-r3.ebuild
+++ b/dev-lang/zig-bin/zig-bin-0.10.1-r3.ebuild
@@ -1,8 +1,12 @@
-# Copyright 2022-2023 Gentoo Authors
+# 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="
@@ -10,7 +14,15 @@ SRC_URI="
arm? ( https://ziglang.org/download/${PV}/zig-linux-armv7a-${PV}.tar.xz )
arm64? ( https://ziglang.org/download/${PV}/zig-linux-aarch64-${PV}.tar.xz )
riscv? ( https://ziglang.org/download/${PV}/zig-linux-riscv64-${PV}.tar.xz )
- x86? ( https://ziglang.org/download/${PV}/zig-linux-i386-${PV}.tar.xz )"
+ x86? ( https://ziglang.org/download/${PV}/zig-linux-i386-${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 )
+ riscv? ( https://ziglang.org/download/${PV}/zig-linux-riscv64-${PV}.tar.xz.minisig )
+ x86? ( https://ziglang.org/download/${PV}/zig-linux-i386-${PV}.tar.xz.minisig )
+ )
+"
# project itself: MIT
# There are bunch of projects under "lib/" folder that are needed for cross-compilation.
@@ -28,7 +40,9 @@ SLOT="$(ver_cut 1-2)"
KEYWORDS="-* ~amd64 ~arm ~arm64 ~riscv ~x86"
IUSE="doc"
+BDEPEND="verify-sig? ( sec-keys/minisig-keys-zig-software-foundation )"
IDEPEND="app-eselect/eselect-zig"
+
# Zig provides its standard library in source form "/opt/zig-bin-{PV}/lib/",
# and all other Zig libraries are meant to be consumed in source form,
# because they can use compile-time mechanics (and it is easier for distributions to patch them)
@@ -41,7 +55,7 @@ PATCHES=(
QA_PREBUILT="opt/${P}/zig"
src_unpack() {
- unpack ${A}
+ verify-sig_src_unpack
mv "${WORKDIR}/"* "${S}" || die
}
diff --git a/dev-lang/zig-bin/zig-bin-0.11.0-r1.ebuild b/dev-lang/zig-bin/zig-bin-0.11.0-r1.ebuild
index 92775c190670..eb8f8fb3b0c7 100644
--- a/dev-lang/zig-bin/zig-bin-0.11.0-r1.ebuild
+++ b/dev-lang/zig-bin/zig-bin-0.11.0-r1.ebuild
@@ -1,8 +1,12 @@
-# Copyright 2022-2023 Gentoo Authors
+# 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="
@@ -12,7 +16,17 @@ SRC_URI="
ppc? ( https://ziglang.org/download/${PV}/zig-linux-powerpc-${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 )"
+ 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 )
+ ppc? ( https://ziglang.org/download/${PV}/zig-linux-powerpc-${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.
@@ -30,7 +44,9 @@ SLOT="$(ver_cut 1-2)"
KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
IUSE="doc"
+BDEPEND="verify-sig? ( sec-keys/minisig-keys-zig-software-foundation )"
IDEPEND="app-eselect/eselect-zig"
+
# Zig provides its standard library in source form "/opt/zig-bin-{PV}/lib/",
# and all other Zig libraries are meant to be consumed in source form,
# because they can use compile-time mechanics (and it is easier for distributions to patch them)
@@ -43,7 +59,7 @@ PATCHES=(
QA_PREBUILT="opt/${P}/zig"
src_unpack() {
- unpack ${A}
+ verify-sig_src_unpack
mv "${WORKDIR}/"* "${S}" || die
}
diff --git a/dev-lang/zig-bin/zig-bin-0.12.0.ebuild b/dev-lang/zig-bin/zig-bin-0.12.0.ebuild
new file mode 100644
index 000000000000..4c4e910205e9
--- /dev/null
+++ b/dev-lang/zig-bin/zig-bin-0.12.0.ebuild
@@ -0,0 +1,90 @@
+# 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"
+
+# Zig provides its standard library in source form "/opt/zig-bin-{PV}/lib/",
+# and all other Zig libraries are meant to be consumed in source form,
+# because they can use compile-time mechanics (and it is easier for distributions to patch them)
+# Here we use this feature for fixing programs that use standard library
+# Note: Zig build system is also part of standard library, so we can fix it too
+PATCHES=()
+
+DOCS=( "README.md" )
+HTML_DOCS=( "doc/langref.html" )
+
+QA_PREBUILT="opt/${P}/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/${P}/zig"
+ dosym -r "/opt/${P}/zig" "/usr/bin/zig-bin-${PV}"
+}
+
+pkg_postinst() {
+ eselect zig update ifunset
+
+ 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 technical details here: https://github.com/ziglang/zig/pull/19208"
+}
+
+pkg_postrm() {
+ eselect zig update ifunset
+}
diff --git a/dev-lang/zig/Manifest b/dev-lang/zig/Manifest
index 0041c029d4ff..59c8c3e88aaa 100644
--- a/dev-lang/zig/Manifest
+++ b/dev-lang/zig/Manifest
@@ -1 +1,4 @@
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
diff --git a/dev-lang/zig/zig-0.11.0-r1.ebuild b/dev-lang/zig/zig-0.11.0-r1.ebuild
index 633b6e1c6399..8114e11a4f79 100644
--- a/dev-lang/zig/zig-0.11.0-r1.ebuild
+++ b/dev-lang/zig/zig-0.11.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2019-2023 Gentoo Authors
+# Copyright 2019-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -12,8 +12,17 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/ziglang/zig.git"
inherit git-r3
else
- SRC_URI="https://ziglang.org/download/${PV}/${P}.tar.xz"
+ 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
diff --git a/dev-lang/zig/zig-0.12.0.ebuild b/dev-lang/zig/zig-0.12.0.ebuild
new file mode 100644
index 000000000000..2b89e41832af
--- /dev/null
+++ b/dev-lang/zig/zig-0.12.0.ebuild
@@ -0,0 +1,182 @@
+# Copyright 2019-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_MAX_SLOT=17
+inherit edo cmake llvm check-reqs toolchain-funcs
+
+DESCRIPTION="A robust, optimal, and maintainable programming language"
+HOMEPAGE="https://ziglang.org/"
+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"
+
+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"
+
+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_USE_CCACHE=OFF
+ -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="-Dstatic-llvm=false -Denable-llvm -Dskip-non-native \
+ -Doptimize=ReleaseSafe -Dtarget=$(get_zig_target) -Dcpu=$(get_zig_mcpu)"
+ local ZIG_TEST_STEPS=(
+ test-cases test-fmt test-behavior test-compiler-rt test-universal-libc test-compare-output
+ test-standalone test-c-abi test-link test-stack-traces test-cli test-asm-link test-translate-c
+ test-run-translated-c test-std
+ )
+
+ local step
+ for step in "${ZIG_TEST_STEPS[@]}" ; do
+ edob ./stage3/bin/zig build ${step} ${ZIG_TEST_ARGS}
+ 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
+}
+
+pkg_postrm() {
+ eselect zig update ifunset
+}
diff --git a/dev-lang/zig/zig-9999.ebuild b/dev-lang/zig/zig-9999.ebuild
index d3ce3edd625b..d278d521c061 100644
--- a/dev-lang/zig/zig-9999.ebuild
+++ b/dev-lang/zig/zig-9999.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-LLVM_COMPAT=( 17 )
+LLVM_COMPAT=( 18 )
LLVM_OPTIONAL=1
inherit check-reqs cmake edo llvm-r1 toolchain-funcs
@@ -14,8 +14,17 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/ziglang/zig.git"
inherit git-r3
else
- SRC_URI="https://ziglang.org/download/${PV}/${P}.tar.xz"
+ 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
@@ -129,7 +138,7 @@ src_configure() {
-Dtarget="$(get_zig_target)"
-Dcpu="$(get_zig_mcpu)"
-Doptimize=Debug
- -Dno-autodocs
+ -Dstd-docs=false
-Dno-langref
-Denable-llvm=false
-Dforce-link-libc