summaryrefslogtreecommitdiff
path: root/dev-lang
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-06-15 14:57:03 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-06-15 14:57:03 +0100
commitd18bf1e01b65ee4bf0c804e2843b282d3d4e5d7c (patch)
tree4a95cbc6ffdf13bad6ecbc7f8d5af99631984123 /dev-lang
parente748ba9741f6540f4675c23e3e37b73e822c13a4 (diff)
gentoo resync : 15.06.2021
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/Manifest.gzbin17025 -> 17176 bytes
-rw-r--r--dev-lang/R/Manifest2
-rw-r--r--dev-lang/R/R-4.0.5-r1.ebuild (renamed from dev-lang/R/R-4.0.5.ebuild)2
-rw-r--r--dev-lang/elixir/Manifest2
-rw-r--r--dev-lang/elixir/elixir-1.12.0.ebuild37
-rw-r--r--dev-lang/erlang/Manifest4
-rw-r--r--dev-lang/erlang/erlang-23.3.4.ebuild2
-rw-r--r--dev-lang/erlang/erlang-24.0.2.ebuild158
-rw-r--r--dev-lang/ghc/Manifest8
-rw-r--r--dev-lang/ghc/files/ghc-8.10.4-sphinx-quote.patch27
-rw-r--r--dev-lang/ghc/ghc-8.10.4.ebuild1
-rw-r--r--dev-lang/ghc/ghc-8.10.5.ebuild814
-rw-r--r--dev-lang/go/Manifest4
-rw-r--r--dev-lang/go/go-1.15.13.ebuild189
-rw-r--r--dev-lang/go/go-1.16.5.ebuild189
-rw-r--r--dev-lang/hy/Manifest5
-rw-r--r--dev-lang/hy/files/hy-xfail-macro-test.patch16
-rw-r--r--dev-lang/hy/hy-0.17.0.ebuild45
-rw-r--r--dev-lang/hy/hy-0.20.0.ebuild29
-rw-r--r--dev-lang/ispc/Manifest3
-rw-r--r--dev-lang/ispc/files/ispc-9999-werror.patch13
-rw-r--r--dev-lang/ispc/ispc-9999.ebuild1
-rw-r--r--dev-lang/jerryscript/Manifest4
-rw-r--r--dev-lang/jerryscript/files/jerryscript-2.4.0-python3.patch38
-rw-r--r--dev-lang/jerryscript/jerryscript-2.4.0-r3.ebuild (renamed from dev-lang/jerryscript/jerryscript-2.4.0-r2.ebuild)1
-rw-r--r--dev-lang/lfe/Manifest2
-rw-r--r--dev-lang/lfe/lfe-2.0.ebuild74
-rw-r--r--dev-lang/maude/Manifest3
-rw-r--r--dev-lang/maude/files/maude-2.7-fix-build-with-gcc11.patch60
-rw-r--r--dev-lang/maude/maude-2.7.ebuild3
-rw-r--r--dev-lang/mujs/Manifest2
-rw-r--r--dev-lang/mujs/mujs-1.1.3.ebuild72
-rw-r--r--dev-lang/nim/Manifest2
-rw-r--r--dev-lang/nim/nim-1.4.6.ebuild80
-rw-r--r--dev-lang/ocaml/Manifest12
-rw-r--r--dev-lang/ocaml/files/ocaml-4.05.0-CVE-2018-9838.patch70
-rw-r--r--dev-lang/ocaml/ocaml-4.05.0-r5.ebuild (renamed from dev-lang/ocaml/ocaml-4.05.0-r3.ebuild)2
-rw-r--r--dev-lang/ocaml/ocaml-4.05.0-r6.ebuild143
-rw-r--r--dev-lang/ocaml/ocaml-4.09.0-r1.ebuild (renamed from dev-lang/ocaml/ocaml-4.09.0.ebuild)2
-rw-r--r--dev-lang/ocaml/ocaml-4.10.2-r1.ebuild (renamed from dev-lang/ocaml/ocaml-4.10.2.ebuild)2
-rw-r--r--dev-lang/ocaml/ocaml-4.11.2-r1.ebuild (renamed from dev-lang/ocaml/ocaml-4.11.2.ebuild)2
-rw-r--r--dev-lang/ocaml/ocaml-4.12.0-r1.ebuild93
-rw-r--r--dev-lang/orc/Manifest2
-rw-r--r--dev-lang/orc/orc-0.4.31.ebuild16
-rw-r--r--dev-lang/php/Manifest4
-rw-r--r--dev-lang/php/php-7.4.20.ebuild750
-rw-r--r--dev-lang/php/php-8.0.7.ebuild748
-rw-r--r--dev-lang/python-exec/Manifest4
-rw-r--r--dev-lang/python-exec/python-exec-2.4.7.ebuild58
-rw-r--r--dev-lang/python-exec/python-exec-2.4.8.ebuild72
-rw-r--r--dev-lang/python/Manifest12
-rw-r--r--dev-lang/python/python-2.7.18_p10.ebuild4
-rw-r--r--dev-lang/python/python-2.7.18_p9.ebuild2
-rw-r--r--dev-lang/python/python-3.6.13_p5.ebuild338
-rw-r--r--dev-lang/python/python-3.7.10_p6.ebuild330
-rw-r--r--dev-lang/python/python-3.8.10_p2.ebuild336
-rw-r--r--dev-lang/python/python-3.9.5_p2.ebuild345
-rw-r--r--dev-lang/rust/Manifest2
-rw-r--r--dev-lang/rust/rust-1.52.1.ebuild8
-rw-r--r--dev-lang/scala-bin/Manifest4
-rw-r--r--dev-lang/scala-bin/scala-bin-2.13.1-r1.ebuild (renamed from dev-lang/scala-bin/scala-bin-2.13.1.ebuild)4
-rw-r--r--dev-lang/scala-bin/scala-bin-2.13.6.ebuild77
-rw-r--r--dev-lang/spidermonkey/Manifest3
-rw-r--r--dev-lang/spidermonkey/spidermonkey-78.11.0.ebuild454
-rw-r--r--dev-lang/swi-prolog/Manifest2
-rw-r--r--dev-lang/swi-prolog/swi-prolog-8.3.25.ebuild122
-rw-r--r--dev-lang/typescript/Manifest3
-rw-r--r--dev-lang/typescript/metadata.xml11
-rw-r--r--dev-lang/typescript/typescript-4.3.2.ebuild39
-rw-r--r--dev-lang/vala/Manifest2
-rw-r--r--dev-lang/vala/vala-0.52.4.ebuild52
71 files changed, 5761 insertions, 261 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz
index 86a0b82dea52..87c139cce777 100644
--- a/dev-lang/Manifest.gz
+++ b/dev-lang/Manifest.gz
Binary files differ
diff --git a/dev-lang/R/Manifest b/dev-lang/R/Manifest
index 01b900e5e0ea..2ee1450b6a22 100644
--- a/dev-lang/R/Manifest
+++ b/dev-lang/R/Manifest
@@ -6,5 +6,5 @@ DIST R-4.0.4.tar.gz 33687611 BLAKE2B 40cdfd98fe6c9193deb729d151631c2b0f935accf5e
DIST R-4.0.5.tar.gz 32466444 BLAKE2B 5dbbd289f4fd6347b4109eecaf65b50b5793a83edddd2cb391c20473607f136d91a8e9f4ab9e453f6927d2ca9145762920424e3a1dcea89309afde56efd5d32c SHA512 6ff5b0f9cb6b17f66cde1f5585d1b33659dbae8919d34c2e593f68a0bff4d0425aa9704d99284d103702a9cd42f613311f3a87af6b939b1af65dcec80bf2ca8c
DIST R-78d6830e28ea90a046da79a9b4f70c39594bb6d6.bash_completion 13596 BLAKE2B 53338e4a1c4f68beb69247216e553dbcac47f660fbf032bfebf7a660e32d2cff5b11ed35411c52de7e1fd6e00bbf5b5ea19369a325fa0a38bd93d63dc3288cbd SHA512 9ccd19bb1b0c18a2f13035ccd6809447429e197e298fb4d1df808ef345d723b42f75a1b91c349f6dbb46e4a82e59ef33e11300c495d79b63d670d0c0f2b16a06
EBUILD R-4.0.4.ebuild 7311 BLAKE2B 63fc04096321ca5d5e3c947816ad02bf1b1fee47ea9e4500006ebc356dbf4aa70aca631497988ac33fb5a1e8ab2999a23f6b1d4519206a73993cefb79d2f9884 SHA512 6bcae68392035fcb25cf55e5e0dda41ad746ab5dcd1868477da801d8d7af82b0e3d0b52fa2d82009b43ea892bd9cf2c5b57c62aca4a7ee36a431e6f55b4cdf44
-EBUILD R-4.0.5.ebuild 7315 BLAKE2B 77445afa767b02617d92ad61c3c8af84e9a4eb3715579228129c254341382e08b474dae18b819bfe1b559f0e3a48e09a8bde653a16106047a10237c43ed1bb95 SHA512 3c8bbd24aca4985049f7bb6c13dddf22e0eb454658bbc7bd973920a802a35a7f180ba91792a5ca42f72887181d878647a60556d0d64611bd29eef241a3fab225
+EBUILD R-4.0.5-r1.ebuild 7317 BLAKE2B 315e2839c034b781875038a95915c20b2a7119d67f574031567a193387cd2b00064be5040da1c2f4e702652acc2a58d9e810d5a0c8b6ee43b5d6b3727754c4a1 SHA512 822f867dd53fe9a81208d9371c590191abf08c048601ec5bdc77ff9047d624f83918809d3a61ea3281de69c79165f18782915ae7c13b65384bdeeee7e647b37c
MISC metadata.xml 1140 BLAKE2B 774221eb531b4e80f0650b627b9ce53d9a2daf6342b1f19579d2d046e1c83aa497cc764870406b7ea3cf6cbae899cb6d460af92991d62bc6aea8da026a441822 SHA512 297c7e17998f92fb836b0599ce5221aee1ba1e7b1504edb348a602b695faf381d51f32f6118f5ef4bb353f02e92ffc5b3520b8d317d3e30a68a3cce0254fa6b1
diff --git a/dev-lang/R/R-4.0.5.ebuild b/dev-lang/R/R-4.0.5-r1.ebuild
index 560e83d01f72..0250344292a2 100644
--- a/dev-lang/R/R-4.0.5.ebuild
+++ b/dev-lang/R/R-4.0.5-r1.ebuild
@@ -59,7 +59,7 @@ DEPEND="
RDEPEND="${DEPEND}
sys-libs/zlib:0[minizip]
- java? ( >=virtual/jre-1.5 )"
+ java? ( >=virtual/jre-1.8:* )"
RESTRICT="minimal? ( test )
!test? ( test )"
diff --git a/dev-lang/elixir/Manifest b/dev-lang/elixir/Manifest
index 1d9f4393b788..e617f9f19f50 100644
--- a/dev-lang/elixir/Manifest
+++ b/dev-lang/elixir/Manifest
@@ -3,9 +3,7 @@ AUX elixir-1.10.3-no-Q.patch 355 BLAKE2B 903e5a7149f6e7f7030a533ae437b0e40b97c82
AUX elixir-1.11.2-mksh.patch 2058 BLAKE2B 45e14921fc59f5707ee9bc2aaebea5f090a5995d07e1aa773d3751690230ded1abade17179f643e787ae3b53661c8ad7bafdf295fd1eb21d534c0b38a0083a1b SHA512 a888b73638873a5b7a6c5f2576c81d58e8df854e2ab3ecfbcf547da5aeea4eee0f43798a1c1308bc7f3515af2d28e78740c4016fde0f5e0eea2114dac7d98de6
AUX elixir-1.9.1-disable-network-tests.patch 569 BLAKE2B fda6b9b99f80e81883723280de31933c1740167d41ef4783dc663bad277cf58b8782326abc4a72e0d989c513afb9cdf4494e7d79754b18d62baf75255a74aa45 SHA512 465831a389891680412d51d9209497d5b750ff0a5ff72d45807a7dba6ec7757156ee96048bbc81f46c9c24a5b13cdd5161539fdeb4ffcea655c407e29f6675fc
DIST elixir-1.11.4.tar.gz 2396885 BLAKE2B f63e835991420bce8cacd38a920637aa5656c0372bd09e8c0a357a24bcca9a06350973f1453f482d3854a48712471c55389c3bd530df46a19c20a359376b779d SHA512 5dc940a31a31ae1c1537f874c15e58311cc0b0452f61e923bdfde0a5cfef3d8003eb3e85be320eb0acfb7bc0c0c0dc8ac965dec6727257c244048268fbf38ceb
-DIST elixir-1.12.0.tar.gz 2457567 BLAKE2B 9adc3d54e2200cddaab0323a8e1c8affae6ad0fbee2c48da87249db0f29d31158ef0a74edf95128302183ba3ee714f502df6d30048c49b42c190d1a43e4e8308 SHA512 6ae99c0307d2adaa51cc8b569329592509b1e19bf9f78d4230507c11229da674476c0be65bc9ce5e3b0d78082182755a76abc8beff59af1f84672dd73e5b912f
DIST elixir-1.12.1.tar.gz 2458060 BLAKE2B 512f016cb7f064f2b90a4d2dae4ffaf957422f049322b5fbed1eef155687b1111de89df838c254cf123b904e64f746fc19175372166526c739d8a1d66f9abb0c SHA512 ecea8a95d05e85431c324c7e15fdd08639a52fa6031fb8ec671825debecd892d2258b3914fdd8417728be1a18202d211eeb19869797ad0fd022c6ec91cd05880
EBUILD elixir-1.11.4.ebuild 922 BLAKE2B 718117a8aee4294e70930d45d6b39d6522026c48165b9af54eae4b612458509e456586e8c6a256175ed4e66a6e36293d22d65d69b1fb40ec28efb6ee1b511fbf SHA512 e77cad093155fbcbab5247c18c4c45db407df167c296d9587c19826d303c0e38f431bb4c3ea61537dbfd0c211d4917ce08a38c6f6a2c7fb1c6040c0e279c9b8a
-EBUILD elixir-1.12.0.ebuild 886 BLAKE2B 946c6fb8fc5b2500ff4a58bda868b3ed5beacd1065e49ca410a0fb38c3411482843dce90a4eab87ae8ac96567cd167ffcafcbf960dd059d8411744e3fd125597 SHA512 8256f2f7d0d3e064b99059f5d9b2defb4275bbaf81529e44bd761b28e035e11dfcba21c8f446b9368198d9047980fc955c3c6faa9bd03a9c818ccd2e26dd0c49
EBUILD elixir-1.12.1.ebuild 886 BLAKE2B 946c6fb8fc5b2500ff4a58bda868b3ed5beacd1065e49ca410a0fb38c3411482843dce90a4eab87ae8ac96567cd167ffcafcbf960dd059d8411744e3fd125597 SHA512 8256f2f7d0d3e064b99059f5d9b2defb4275bbaf81529e44bd761b28e035e11dfcba21c8f446b9368198d9047980fc955c3c6faa9bd03a9c818ccd2e26dd0c49
MISC metadata.xml 820 BLAKE2B 7fd55cc9f7450d46060069909506fb74e93234ccd319b5f5b428580fd4f55c59c2ada78770ae744d784838574d87522d3e94f101eba06b5a64ebcb513db4eef3 SHA512 11300d8d6d6cbb73b55d4dfb44d04fc087867bab1fc3fcb0564473d911844d3be148170c03a9247c6a407d8de88442ca6017c00177d93be46b37166d3ba42593
diff --git a/dev-lang/elixir/elixir-1.12.0.ebuild b/dev-lang/elixir/elixir-1.12.0.ebuild
deleted file mode 100644
index e35418c14594..000000000000
--- a/dev-lang/elixir/elixir-1.12.0.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-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 ~sparc ~x86"
-IUSE="test"
-
-RESTRICT="!test? ( test )"
-
-DEPEND="
- >=dev-lang/erlang-22:0=[ssl]
-"
-# 'mix' tool collides with sci-biology/phylip, bug #537514
-RDEPEND="${DEPEND}
- !!sci-biology/phylip
-"
-DEPEND+="
- test? ( dev-vcs/git )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.9.1-disable-network-tests.patch
- "${FILESDIR}"/${PN}-1.10.3-no-Q.patch
- "${FILESDIR}"/${PN}-1.10.3-epmd-daemon.patch
-)
-
-src_install() {
- emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="${EPREFIX}/usr" install
- dodoc README.md CHANGELOG.md CODE_OF_CONDUCT.md
-}
diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest
index df0762240088..89aa353b616c 100644
--- a/dev-lang/erlang/Manifest
+++ b/dev-lang/erlang/Manifest
@@ -9,13 +9,15 @@ AUX erlang-22.0-dont-ignore-LDFLAGS.patch 1174 BLAKE2B 64900c6b934ecbd11238e604f
DIST erlang-23.3.1.tar.gz 56654422 BLAKE2B b1ccd870d4a47f12d1a65b424d6c6b0f59a4654c0779c595fb28fdc2d3e179bb9b12d2473770b239b65665b2f6a3281d239f9fb3d6b86548df3ee69fce8fe5ed SHA512 03d4be9b25a14359e9f8db52d8e7d8edff1e8c53686a189caae15373c7e15d03f05e1138c549b8b41b8e6b7c55ab154cea47356f6fe79f7b72d5fb4ce759c4b0
DIST erlang-23.3.4.tar.gz 56664814 BLAKE2B ef8aa8d5a6fd1efc02a35459d1cb15eecf5f948127266bf782544e1da9a59765aca15070ea92df5558a4de017cc810e3542e2393e9470243fc6d9be13e9f37b6 SHA512 c8c5a9676163058276c703a0db0373508fad0ed9dff0aa9806ce59115ca766ff1d343c5a3917a920b249655fe188b974482ff378e9173c9fe00ea3907e618da5
DIST erlang-24.0.1.tar.gz 58860070 BLAKE2B a52f6f18173f7dcc79cc3f47155fb08854eaef29e52b78e5b78f5239c2f2617c20be3878ba01511d942f0fd0351b44c982fd5ad29ed1da6d8939d05364342238 SHA512 8e6588e69e58395c92a6cd9e63ff4da688e8fe8b1cc6dea3e3bb5b102940854a73a1a6363e8f94c697117a7be0f8b07712cb584af1d9ef9947eb87b09c8559e6
+DIST erlang-24.0.2.tar.gz 58878378 BLAKE2B c2ea65cac39b654d9037ea9fcb47eb6eea96dec2483378f414bc33475e850121c1adaa30ea880070624496be9779539f98c864b0dd6eb92d3c4badaa121353d1 SHA512 d85e3e6a4177ac8c696dd666183f624065a89d35aa7f031cd6a7b105e0d1f9007de8d413880df47daf8f695485d952a81a14a01313b52f66534c1e5bd050093b
DIST erlang-24.0.tar.gz 58258571 BLAKE2B ee71c1f19a1d990977d3764bf4122593a216e4bbbef7e5a8a5c7e22142171ef869b4a5ac01aa1f4495eaf79808cbb677d4163a52917879e2a615f08e20480c7e SHA512 bd3e4dbe640e80dc2173bc9c92178acbd6aee7a486a1eebb7fe8ec70963b8c94bb456af7ac592f434700cd8b1d98ef8351bfc7a76113bbbd0c9a0e20fd68629b
DIST erlang_doc_html_23.3.tar.gz 36224657 BLAKE2B 7e2a3e16f4cfa0f15c01074740e02af7a45b480b4a94e764463717658ab7e5d0281f928c3ec585582b10168645e3e06cfe72cf6a0ba1b88f539b80f2b7ad99be SHA512 8be4aae46839239604b875b39339e7b6b6c677c099b3d749d5f1041c4508c1c3b4aa8136a93df12b1e5cb6333ef907276f5965c9726ed2b9e77a6043c8ef53b1
DIST erlang_doc_html_24.0.tar.gz 39731398 BLAKE2B 8a9fe3acb4cc13691e16c477cf89e8298df1a99bbe6a6c9e59e3c34248ecdc21077835951087b5a5bbb23ddb28f3bd7ab8b058fe64ce56c342b825a6c0ef8948 SHA512 453f8a9cf779a4f43966615433afc3be3aae7a571acf45974947bd720a331ca05949bc310de5f3b33b72d274971103ede56875bbfe757ba17f903510f690d97e
DIST erlang_doc_man_23.3.tar.gz 1456501 BLAKE2B 414bedee0e316d97b26d9d6418b799a9434a22e9980e7d3a83e2478d184d63d1633c0e10d0e180d929a3cacd82b4d703be86cbc8e99996037f6b37ea122f7a8c SHA512 6c661c210ffec4752afe624fa46700a0f62cc6589b74b859ab1dfde77d289e992988ac8744f7b4126d7512cd6d0aab3321f710a6324552b259bd7acd5b54a05e
DIST erlang_doc_man_24.0.tar.gz 1666152 BLAKE2B aaef8165322f39f7410840eafe562ec5038d9c89b4fa99b3b1d5748ba70fe755ba732de403dd916328e1fdcec895e2a347db4fb8c8837b5e41155439c9c54ef6 SHA512 7251f6eeb0534cc8538236a2c4be9d732bf0a05ba6832f9b3859116f9148e469d004331924c7187b07204798afb66067bfd321c8905000c355775927e5841918
EBUILD erlang-23.3.1.ebuild 4499 BLAKE2B 06891eb432ae12d43e860ce0773eb01768ea75ec4f16c365fbe16c22093039e5b18aaa4d3ca558f7a64cada0fc405ac0ba898065b80c778ad9253197302c5145 SHA512 09397c1f46fcf92ef160dee067b9dbf9e0a9125e112f28748180166ddd0394ad34f03e0ddcf32dccff101485927f41c1b1a4376a66bbfd52c8fb2f74bfac27d5
-EBUILD erlang-23.3.4.ebuild 4504 BLAKE2B 16b09bf6af1c223776b5cb2c55c32dbd5eb540cb9ae12496485f64bc1820c4118575a155440764144e10c6d50609db02ae5eb2c691a0bf82b63c0ec1454a4f41 SHA512 f4bf67b5b4bba5734893e67c50e46c7387c192455befea44eabf1ca5aa1f76dd05eeab1dd9eb7c34c230553ce0864493e81e3185fd5d6554a8cc239ecb49f441
+EBUILD erlang-23.3.4.ebuild 4499 BLAKE2B 06891eb432ae12d43e860ce0773eb01768ea75ec4f16c365fbe16c22093039e5b18aaa4d3ca558f7a64cada0fc405ac0ba898065b80c778ad9253197302c5145 SHA512 09397c1f46fcf92ef160dee067b9dbf9e0a9125e112f28748180166ddd0394ad34f03e0ddcf32dccff101485927f41c1b1a4376a66bbfd52c8fb2f74bfac27d5
EBUILD erlang-24.0.1.ebuild 4523 BLAKE2B d17d8fbb7bf14688c4ca9bb041d451cb5cbf37be845ec0e7be165c3a9bc7fe81efd8a0fc7084cd6b5fed930eaad4258be20a56a98e1d19dff6ce9f27ff9d8425 SHA512 d8739eda6d6706da9db5c9bc31048e366c1fc5a4d62d70f732b74b6a26babcd86254678b6ab0572a0b02b1d38fa1bf2205f10d71c670f932d8212b849c567197
+EBUILD erlang-24.0.2.ebuild 4523 BLAKE2B d17d8fbb7bf14688c4ca9bb041d451cb5cbf37be845ec0e7be165c3a9bc7fe81efd8a0fc7084cd6b5fed930eaad4258be20a56a98e1d19dff6ce9f27ff9d8425 SHA512 d8739eda6d6706da9db5c9bc31048e366c1fc5a4d62d70f732b74b6a26babcd86254678b6ab0572a0b02b1d38fa1bf2205f10d71c670f932d8212b849c567197
EBUILD erlang-24.0.ebuild 4523 BLAKE2B d17d8fbb7bf14688c4ca9bb041d451cb5cbf37be845ec0e7be165c3a9bc7fe81efd8a0fc7084cd6b5fed930eaad4258be20a56a98e1d19dff6ce9f27ff9d8425 SHA512 d8739eda6d6706da9db5c9bc31048e366c1fc5a4d62d70f732b74b6a26babcd86254678b6ab0572a0b02b1d38fa1bf2205f10d71c670f932d8212b849c567197
MISC metadata.xml 864 BLAKE2B fb20217a05650be9d9f454a7ffe45aeb7e41ad4f9b1616efa94f5609db4d8de1b5848268e6224c256c2ff86b0d3bad578d6e4f0e43c4e8bf433e7a7e9210ae98 SHA512 c4aae8e974789ce095eeaf7d7517da16351b1ebb60cc98abdeebc41147be4bce084081d4f7a03727f9070434a9e1347c0ebf809a99931bc7177525726cb9c161
diff --git a/dev-lang/erlang/erlang-23.3.4.ebuild b/dev-lang/erlang/erlang-23.3.4.ebuild
index 257dbb6d4a2c..fd509078eb66 100644
--- a/dev-lang/erlang/erlang-23.3.4.ebuild
+++ b/dev-lang/erlang/erlang-23.3.4.ebuild
@@ -22,7 +22,7 @@ LICENSE="Apache-2.0"
# 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 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="doc emacs +hipe java +kpoll odbc sctp ssl systemd tk wxwidgets"
RDEPEND="
diff --git a/dev-lang/erlang/erlang-24.0.2.ebuild b/dev-lang/erlang/erlang-24.0.2.ebuild
new file mode 100644
index 000000000000..01313ebc6b11
--- /dev/null
+++ b/dev-lang/erlang/erlang-24.0.2.ebuild
@@ -0,0 +1,158 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+WX_GTK_VER="3.0-gtk3"
+
+inherit elisp-common 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
+ http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
+ doc? ( http://erlang.org/download/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 ~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
+)
+
+SITEFILE=50"${PN}"-gentoo.el
+
+src_prepare() {
+ default
+
+ tc-export AR CPP CXX LD
+ ./otp_build 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 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
+ # 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-r2 epmd
+ newconfd "${FILESDIR}"/epmd.confd-r2 epmd
+ use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/ghc/Manifest b/dev-lang/ghc/Manifest
index ec022d9c9260..8e5a0eaa2617 100644
--- a/dev-lang/ghc/Manifest
+++ b/dev-lang/ghc/Manifest
@@ -3,6 +3,7 @@ AUX ghc-7.8.3-prim-lm.patch 444 BLAKE2B a930bb9657441a48941debf79711e06223c5680d
AUX ghc-8.0.2-no-relax-everywhere.patch 766 BLAKE2B 76ca925d56a9d2961cd342971ef8fb0165158d707f0089f3726560511e57ee5c08adeaf996595378d1cef3ec7b59ddf1df06d0255bf20da51c5b26e817f4057b SHA512 b729ddc27bbf089324f0b4d7229925226b59c0047cec0c0230e022fb8554389373e309e93a108f0aaa155fd9ff6957a7d41cdd35a90c6ca59b216381ff21483b
AUX ghc-8.10.1-allow-cross-bootstrap.patch 541 BLAKE2B b77b3c9ebb7a33af6f82ec1b9927664e9bfce04450560a8e436ffa87feca50d606824192b7333e3b98d5552622592b6d39d0b184037ce646d6f7ebd205deb348 SHA512 d87a99ac96846e161d8c939079f8314d380be8e1dc62f956e3afcce1339a76447a14002b30bac1c86c807fd8eba23a0648912a3d074248f3513f9aadacd27489
AUX ghc-8.10.3-C99-typo-ac270.patch 348 BLAKE2B 8d23baffa0ae781db4610ee78fea812ebc25450c94e942d8008c591cca78c6072c24b042e7a9dab08ae5213ed4ba931ff932ad4685fc029fc004039494a70c7f SHA512 9e224c6863b5f0f0deb032d4554dd41f2396a8cbc373b860294ba76feaf1abe7594711ac02e9a06356c024df8d6fc6a7a064ca428eaa1e4e6209b3a29d4317fb
+AUX ghc-8.10.4-sphinx-quote.patch 872 BLAKE2B 2459d9b2d7d7d30eb0fdda999ca0da86264bbe324786eecfd4a2eab0eee04cd50e378972901a0f84c31d857321218b455aab452e87386c5b3659d4d619efa196 SHA512 05637a55c6e27fe4a128c1978b86c72b6d848cee609c8fb035f32b2d48a8d6536add73717d1dbb232a2a84d7834c80455e6e67000f58813447f7e555b6868d39
AUX ghc-8.2.1-darwin.patch 910 BLAKE2B 2f1a44dd7ead59301b5dd59c8cab932710655416640f2c8d5273cf07da4a45bf702d840768e2d32822e89f1b07cc9ed3a6110e1847e11468fca5c515e9e26f70 SHA512 0177fda8717d9158a99d96853feb1bf40ff13df8f5c5669c7c48f33accf69d6ddb05876776cda66705e85ee56c5ecff8f81722d8e748b6c2ed6b9bf611e42a2c
AUX ghc-8.2.1_rc1-hp2ps-cross.patch 3865 BLAKE2B d68b1e15c091047d086be780dc0bb5ce2a1b713244ee240ae045052ccac947baf6a5bdea8cad50d0fac2984700069af7dcd320b96ca09af8c7b81021329da41c SHA512 d2ed48701216f5c03567e61c207e32d6218009380941275c690edd8eb0197728e7e3c0edb00d512792dc2041a958de82ceef393e96d3324b690157162e28d29a
AUX ghc-8.2.1_rc1-win32-cross-2-hack.patch 6231 BLAKE2B 8ad4428ebe9a373e08e94e5373ad9578cafdf95b866ced2a4000434d9e5d4298b129e832e13e8e175e8977b9dda9351d01a896e2c320a1a40551d5892b0efc33 SHA512 8617c1346ba7aa2b41ee01feaa47f2ca477353f9b825be48c5d3505a134e0a80b613efc6cb92e7fbd3fe062e77450e197c826151a42c0c77177fc6ef8e65287f
@@ -12,17 +13,22 @@ AUX ghc-8.8.1-revert-CPP.patch 2236 BLAKE2B f793a9e9516f9f484234311372715116dfdd
AUX ghc-bash-completion 6496 BLAKE2B dc94a1979e886026a2fbe04bf7b45718ffa3e025a0e8945262e21a1243bfce6517fa1794f2ba6cd54cc853e93ad5d80472b9019b95762f10b5be83634a479955 SHA512 ede79ccf23555f60f48297d29bd98e3ccfd67d2cf27462153e00beb930398cb497e34ba8316e91df44c577ed11fdbe5606f7c6a2777e35d5e783590e49ccfeb5
DIST ghc-8.10.4-src.tar.xz 19818108 BLAKE2B 069dd8436c373ccf73c20d8b577243792ffdd3a031e869edd612fe1e273126e60803326542695012dbe62e57654ada18af9342bbe1a741b2bebb41cdb0d86035 SHA512 9bb078cb72535a352243b83b671c871392564efd09e478549f27ae58fc6f46e337a0782f5500d26d5704ad96eace22e77bb36031a1fe9b7e175f265b0b9c028b
DIST ghc-8.10.4-testsuite.tar.xz 2236932 BLAKE2B 17d0520ad5c6daa0cc60530279ae7e617e4d79328b9f436abbe75e72f0803d9a997fb9e1ae61425326b070f45794a488d8507957fec9a6ed49eea86d30a1e579 SHA512 1bf129c8d872e3ceff7c19929605adc5d68daab9ded9aa2e5109b0de162089631472c66f04993adf8481291f8128bf804fe64a9d344c81e257f1b962ba5e382c
+DIST ghc-8.10.5-src.tar.xz 19920148 BLAKE2B bd3b702fdac4d1c94366bb233a665c2f5677b795d9041c61cc13d813aa43738d5270c3604731f964393035cef90768d4c6e0e401aa35fec6dab61465782f41dc SHA512 b5f39be0accd5c1cecf1cc326ba3142f561d2ac93e9abf366fe46307d7c0712aac244836e659e1a4d9d0fb98299ea96edc8e8a06f3a81b528b14914b94057ffe
+DIST ghc-8.10.5-testsuite.tar.xz 2270504 BLAKE2B 076afc4565c7ba52814547b09313c44bfc3875fc0b05d1af1d3fa702cec9b6b219d86fd56d26a3df07aaa00b37eeb87c58b509162a231bf4e03a07bcc57e9550 SHA512 adae7ff8005c73fc5ded42035c51b1ad6c476beed54de7ba336437a67e81a75d7af8c1be3817516e877b1b2ff0e771fe667d07b93d3a73de8df26a06ed42f334
DIST ghc-8.8.4-src.tar.xz 19395252 BLAKE2B 6fa898b9552398a724f0452f5cc88ba073264a5645288c73507258959efec40ce5a56a0eaafdabe58f15c5a9210b2c9da5954411dff5c81c52e061569d6a350a SHA512 efd23bd819f7429486696a3a929a040471db7ea8a2d1f1d832e4cf0825b9e1e0c5e6ecad0ab8376f58b74e9c28c1d2f773bd126596d6d853c9e57d57e5ceb090
DIST ghc-8.8.4-testsuite.tar.xz 1965820 BLAKE2B 3b715700561788b8abdc986961d533b91399461d57a1686ededb4ccc36881503cdc3fc126b9a7b204a728c24b9a9ca97320142348644367aca9b47c87a5b3b51 SHA512 79d8fb0ba8de0fb48c938bd54c8c3278f1895d8ce5c700ce8cf6b3fc550073bb757208e85d4f9818400ebecca96f51d9248b8bbdac9eb2995671756164d08c16
DIST ghc-9.0.1-src.tar.xz 20782336 BLAKE2B 53eaf903081d705d641459fbc1e6fa7387a6039f9cd466b4708bda86e81252a84d80878d6eb956ec2e1e5b721a313e68eeb796f8345244ca62f536a7a3f0c6df SHA512 bee7950a5118be8d8cefe0db5070139a5a93ca21c5bc6f8bf453429831f0c44f5e0fb5ee569865d6b8b92749044ee4123be06920928ac7a1ec9cffa9404a3e53
DIST ghc-9.0.1-testsuite.tar.xz 2322432 BLAKE2B 350df763c607dd89ba58ad6e856d815556159a9f088dc0b069de48ae87c1e874a45fad51159e65a3c9a9beed68602eeb2a2728dbce86277bd287455f46f6c53a SHA512 13fbe0f0ab5e2426820d0fb37f0a75e1198ef2a660398508806e8ef094fd23647ca3d386815a2118168d12253d8df3273043678dbb37cf3924c689dd0fd1932e
DIST ghc-bin-8.10.4-i686-pc-linux-gnu.tbz2 123831294 BLAKE2B 1ca4c1b5c34c948011049a73d409c741db89658d10e311cffbe464c631c3733278fc7dede6ad27474832295ded2c26fd4d6419c760505255e29f7cb232a670a4 SHA512 1f87cf63651f7c0e5f7f55d1f4d7d7c48b0a911cc6673a899d4b92190d765b359f9c7d73c329969c1b76f1af102b7e2c18a80382c81d5dade9ac7dd57de4ef65
DIST ghc-bin-8.10.4-x86_64-pc-linux-gnu.tbz2 122558873 BLAKE2B 9f07c7bdc3beccfa629d28b2524ccd2f4688a5c0036a45408f5ace2d530a2a0e42f95b3cda5037ebb365317999e1ae776c6f9d21692867abfe85e33f2892b1be SHA512 68bd70f94961547746a696aa2839e156c95858fda0c7ec5b2ecf802070724ab7102b0aa86bcbf93432170d521cce4af10f46b851b470e5dc49dfa5b07380f46d
+DIST ghc-bin-8.10.5-i686-pc-linux-gnu.tbz2 124356781 BLAKE2B 53c5d259a19f11db83d69f7a2f39090d623b07caf1859eb8bf0385183586f538d8eb3eadb06f56f4b7160fa82043eb0f7b8df1632d55af562b8b1cb21c08b4c3 SHA512 58676b4eaeef9e05f69b7c821e115f3a678487b0de696e702ff6378f7d8f23fafda997b0c19d52a730c22bf8012a99c01783d16d00e356fe12532156d5965fc6
+DIST ghc-bin-8.10.5-x86_64-pc-linux-gnu.tbz2 123186918 BLAKE2B 5049514a7c2c58e7f5c929cfb9e818cdc20280f4fc002350cf0cc19f410eb4d4be4d0b46db88205633fde73151e322f3cabd050a9c07e05ccae168c7e6be8be9 SHA512 3a8ef5f0c259ad86adc6a7a5718db419fb0e38a5d1e0bdcc8676e44d1a0130a4b25658ab23572e4e860307b024409da021e08b038fac64a773437c23519b1d0a
DIST ghc-bin-8.8.4-i686-pc-linux-gnu.tbz2 120336081 BLAKE2B 55dfbb90d5e55c2af5e93c69249828a85cd9171c164b80dfdaf86512972b2c6854c8e4f07426af4ab52a5fb1a85d96a58c2cf003fb02372c55428001cfaea491 SHA512 ad3b83344349976d3253934195b2dc6299648391572b13735943c5ea2239c031c19b0cafd86c16cfb0c061e73bc72e9248f9c1731494a9a15fbe188f02913c12
DIST ghc-bin-8.8.4-x86_64-pc-linux-gnu.tbz2 118897883 BLAKE2B a180b2dd1a3bc222044ece809ad700aee29d0c3e75b57ee9af3ca33c9c0f59dbf36f68202f746d99f80915cb717a9c41fc12db507f1cb469981732703a06b9cc SHA512 9d4be02dbd9704c93ef18feb92ea30bd5d590df31f288bf1b364818424c5019ca9ada26eec88418199f90ae8f4459d0a9352104e3f3186bbdc241891eb1b66c4
DIST ghc-bin-9.0.1-i686-pc-linux-gnu.tbz2 122955511 BLAKE2B b870f46cc78fcc1d715aafe7108951582cfd12495b4e9d804d4b66562c66a6a2b2d9513031aedc8f3630a0cdbb3257943304b05732301a084f89487452f2f2d9 SHA512 aafd4233c40f93b71e6ac1acc8a75e30d49b826e4bce6d9832836966fd5f6c4898963bd4c2f34577f4199c1d9a3f537ac1e7d87eab11e9fb5e849573580ed3fb
DIST ghc-bin-9.0.1-x86_64-pc-linux-gnu.tbz2 121542968 BLAKE2B 837870e68138f8d97dc8b2aae90090cf02416628602ca4ba4417ac92b49155f10028b05ac465665b8872b32372a5cee075616983f2eacdebb0188bd2ce6a93d2 SHA512 0e8c6d2e6f32fac95588f7323a4e02dddfc9ec2476a82b97bf5a106d3810f7e638fda7124c53b5bbc563fce70f4436553c282d8ea2f1f5fdf4fcccfb15a2b079
-EBUILD ghc-8.10.4.ebuild 26084 BLAKE2B a6d1b21fd9563c1b938b1603e52974c5d48c349952b7f1cac400e67a5f0ec14be9970b8f78133cc305cb48e1b742f02dd21075c52f6672956d99823e289070b2 SHA512 04ea85fc82670629675684fd82720e1677b8611ac5c02d94b9031ff28368c4d47c471eb1d71a4c1a7979718cfb749a986742d02f41bcfd3ca85c47c6a7b4d040
+EBUILD ghc-8.10.4.ebuild 26139 BLAKE2B 89fd04e383dce946a9751d47003216f97eaced39a484aae56cdf319fb73624ee0508525f03feda0c8c03b67f8dde2c46f2b8b1dad207eac0c5c8dd7a82427280 SHA512 60c27bd5d2c398bc6964fc33ed75cf69089a72d55a8fae8d94d097d11c4368160cfdfeb52199debb98ba55821089629aadd6951b521c3a033f179a9129b37991
+EBUILD ghc-8.10.5.ebuild 26072 BLAKE2B 07085a0939c55ca628303a43638f07b3f4fe55c34ab2b91ba6339cc65c11551fd376ee08b870bcce5aded2f25ce10243ca0eaa317ed5fa12f33af587e821ecbc SHA512 8fcdedee03bd5a0467d7afc4cdacd78562368bef75906a56f28ae30533d42eb54f069af642f531bb0e48483f85cccb0d41520978595011cc9a251b4878b89fa9
EBUILD ghc-8.8.4.ebuild 26719 BLAKE2B 548af06ceb26ceff32e7b311108078c7a16077d0ad9e54419177930ef45a31d1d1e9fe1bcd827f626e51187b7676bcbdb84340243605884f56582d3a9535b2ed SHA512 5c61720081a5c8cc7d9810fb5cd7554392ba91a71fa0ba6fa9000ab989fe6894c789e08128ca3cb84bdbafa6fae6b45c8464512560afd12554740438609760c3
EBUILD ghc-9.0.1.ebuild 26042 BLAKE2B bd86239c2be8bc5bd3ae1c1b376f456c9317d182fe3c020ec2b7adf220c3037554d1f7d20f355465bd483c0bc9d65db12f574e3c90840cf5f75ef9643652b935 SHA512 3fa72c4a8b7b86110a2f5e72d07912e152147d1f3612a8dc726062e554b3591ab2cc888c1fc781f190db7a83e98a5d8bd2843870f06d051d8be11c8762ac29e5
MISC metadata.xml 877 BLAKE2B 763db2ffce8c241ef55110ca08aa9f7383f14bbe7f96a443b438f027214e04f56f8216b0cd0d871e516a13f07a8a5a52835b0f75ddd3eb9ebd7faccd3a6b03d9 SHA512 516ad3cdb3b26b242668ae2bbf48628c8fb95fdc84ab3dc00afc940c68c2b78a7aa85634c228e9b3427963f0b86263d24ba043d0fd9ae57752e5075392a0322c
diff --git a/dev-lang/ghc/files/ghc-8.10.4-sphinx-quote.patch b/dev-lang/ghc/files/ghc-8.10.4-sphinx-quote.patch
new file mode 100644
index 000000000000..e9517dbea06e
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-8.10.4-sphinx-quote.patch
@@ -0,0 +1,27 @@
+https://bugs.gentoo.org/792558
+
+From 83407ffc7acc00cc025b9f6ed063add9ab9f9bcc Mon Sep 17 00:00:00 2001
+From: Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io>
+Date: Fri, 25 Sep 2020 02:52:19 +0200
+Subject: [PATCH] Various documentation fixes
+
+* Use r'' in conf.py. This fixes a Sphinx warning:
+ WARNING: Support for evaluating Python 2 syntax is deprecated and will be removed in Sphinx 4.0. Convert docs/users_guide/conf.py to Python 3 syntax.
+--- a/docs/users_guide/conf.py
++++ b/docs/users_guide/conf.py
+@@ -100,13 +100,13 @@ htmlhelp_basename = 'GHCUsersGuide'
+ latex_elements = {
+ 'inputenc': '',
+ 'utf8extra': '',
+- 'preamble': '''
++ 'preamble': r'''
+ \usepackage{fontspec}
+ \usepackage{makeidx}
+ \setsansfont{DejaVu Sans}
+ \setromanfont{DejaVu Serif}
+ \setmonofont{DejaVu Sans Mono}
+-\setlength{\\tymin}{45pt}
++\setlength{\tymin}{45pt}
+ ''',
+ }
+
diff --git a/dev-lang/ghc/ghc-8.10.4.ebuild b/dev-lang/ghc/ghc-8.10.4.ebuild
index 3e4cfb0d0db8..af942b11cd06 100644
--- a/dev-lang/ghc/ghc-8.10.4.ebuild
+++ b/dev-lang/ghc/ghc-8.10.4.ebuild
@@ -502,6 +502,7 @@ src_prepare() {
eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch
eapply "${FILESDIR}"/${PN}-8.10.1-allow-cross-bootstrap.patch
eapply "${FILESDIR}"/${PN}-8.10.3-C99-typo-ac270.patch
+ eapply "${FILESDIR}"/${PN}-8.10.4-sphinx-quote.patch
# a bunch of crosscompiler patches
# needs newer version:
diff --git a/dev-lang/ghc/ghc-8.10.5.ebuild b/dev-lang/ghc/ghc-8.10.5.ebuild
new file mode 100644
index 000000000000..5c7215a7e76c
--- /dev/null
+++ b/dev-lang/ghc/ghc-8.10.5.ebuild
@@ -0,0 +1,814 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# to make make a crosscompiler use crossdev and symlink ghc tree into
+# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc'
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} = ${CHOST} ]] ; then
+ if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
+ export CTARGET=${CATEGORY/cross-}
+ fi
+fi
+
+PYTHON_COMPAT=( python3_{7..9} )
+inherit python-any-r1
+inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package
+inherit multilib multiprocessing pax-utils toolchain-funcs prefix
+inherit check-reqs
+DESCRIPTION="The Glasgow Haskell Compiler"
+HOMEPAGE="https://www.haskell.org/ghc/"
+
+# we don't have any binaries yet
+arch_binaries=""
+
+BIN_PV=${PV}
+# sorted!
+#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )"
+#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )"
+#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )"
+arch_binaries="$arch_binaries amd64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )"
+#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )"
+#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )"
+#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )"
+#arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )"
+#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )"
+arch_binaries="$arch_binaries x86? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )"
+
+# various ports:
+#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )"
+
+# 0 - yet
+yet_binary() {
+ case "${ARCH}" in
+ #alpha) return 0 ;;
+ #arm64) return 0 ;;
+ #arm) return 0 ;;
+ amd64) return 0 ;;
+ #ia64) return 0 ;;
+ #ppc) return 0 ;;
+ #ppc64)
+ # use big-endian && return 0
+ # return 0
+ # ;;
+ #sparc) return 0 ;;
+ x86) return 0 ;;
+ *) return 1 ;;
+ esac
+}
+
+GHC_PV=${PV}
+#GHC_PV=8.10.0.20200123 # uncomment only for -alpha, -beta, -rc ebuilds
+GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct
+
+SRC_URI="!binary? (
+ https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-src.tar.xz
+ test? ( https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-testsuite.tar.xz )
+)"
+S="${WORKDIR}"/${GHC_P}
+
+[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )"
+
+BUMP_LIBRARIES=(
+ # "hackage-name hackage-version"
+)
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+KEYWORDS=""
+IUSE="big-endian +doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test"
+IUSE+=" binary"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6.1
+ dev-libs/gmp:0=
+ sys-libs/ncurses:0=[unicode]
+ elfutils? ( dev-libs/elfutils )
+ !ghcmakebinary? ( dev-libs/libffi:= )
+ numa? ( sys-process/numactl )
+"
+
+# This set of dependencies is needed to run
+# prebuilt ghc. We specifically avoid ncurses
+# dependency with:
+# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING
+PREBUILT_BINARY_DEPENDS="
+ !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) )
+"
+# This set of dependencies is needed to install
+# ghc[binary] in system. terminfo package is linked
+# against ncurses.
+PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS}
+ sys-libs/ncurses:0/6
+"
+
+RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )"
+
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ doc? ( app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-python/sphinx
+ >=dev-libs/libxslt-1.1.2 )
+ !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} )
+ test? ( ${PYTHON_DEPS} )
+"
+
+needs_python() {
+ # test driver is written in python
+ use test && return 0
+ return 1
+}
+
+# we build binaries without profiling support
+REQUIRED_USE="
+ ?? ( ghcbootstrap binary )
+ ?? ( profile binary )
+"
+
+# haskell libraries built with cabal in configure mode, #515354
+QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc"
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+is_native() {
+ [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]]
+}
+
+if ! is_crosscompile; then
+ PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )"
+fi
+
+# returns tool prefix for crosscompiler.
+# Example:
+# CTARGET=armv7a-unknown-linux-gnueabi
+# CHOST=x86_64-pc-linux-gnu
+# "armv7a-unknown-linux-gnueabi-"
+# CTARGET=${CHOST}
+# ""
+# Used in tools and library prefix:
+# "${ED}"/usr/bin/$(cross)haddock
+# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
+
+cross() {
+ if is_crosscompile; then
+ echo "${CTARGET}-"
+ else
+ echo ""
+ fi
+}
+
+append-ghc-cflags() {
+ local persistent compile assemble link
+ local flag ghcflag
+
+ for flag in $*; do
+ case ${flag} in
+ persistent) persistent="yes";;
+ compile) compile="yes";;
+ assemble) assemble="yes";;
+ link) link="yes";;
+ *)
+ [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
+ [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
+ [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
+ [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
+ [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" &&
+ [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}"
+ ;;
+ esac
+ done
+}
+
+# $1 - lib name (under libraries/)
+# $2 - lib version
+# example: bump_lib "transformers" "0.4.2.0"
+bump_lib() {
+ local pn=$1 pv=$2
+ local p=${pn}-${pv}
+ local f
+
+ einfo "Bumping ${pn} up to ${pv}"
+
+ for f in ghc.mk GNUmakefile; do
+ mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die
+ done
+ mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die
+ mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die
+}
+
+update_SRC_URI() {
+ local p pn pv
+ for p in "${BUMP_LIBRARIES[@]}"; do
+ set -- $p
+ pn=$1 pv=$2
+
+ SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz"
+ done
+}
+
+update_SRC_URI
+
+bump_libs() {
+ local p pn pv
+ for p in "${BUMP_LIBRARIES[@]}"; do
+ set -- $p
+ pn=$1 pv=$2
+
+ bump_lib "${pn}" "${pv}"
+ done
+}
+
+ghc_setup_cflags() {
+ # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N>
+ if ! is_native; then
+ export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"}
+ export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"}
+ einfo "Crosscompiling mode:"
+ einfo " CHOST: ${CHOST}"
+ einfo " CTARGET: ${CTARGET}"
+ einfo " CFLAGS: ${CFLAGS}"
+ einfo " LDFLAGS: ${LDFLAGS}"
+ einfo " prefix: $(cross)"
+ return
+ fi
+ # We need to be very careful with the CFLAGS we ask ghc to pass through to
+ # gcc. There are plenty of flags which will make gcc produce output that
+ # breaks ghc in various ways. The main ones we want to pass through are
+ # -mcpu / -march flags. These are important for arches like alpha & sparc.
+ # We also use these CFLAGS for building the C parts of ghc, ie the rts.
+ strip-flags
+ strip-unsupported-flags
+
+ # Cmm can't parse line numbers #482086
+ replace-flags -ggdb[3-9] -ggdb2
+
+ GHC_FLAGS=""
+ GHC_PERSISTENT_FLAGS=""
+ for flag in ${CFLAGS}; do
+ case ${flag} in
+
+ # Ignore extra optimisation (ghc passes -O to gcc anyway)
+ # -O2 and above break on too many systems
+ -O*) ;;
+
+ # Arch and ABI flags are what we're really after
+ -m*) append-ghc-cflags compile assemble ${flag};;
+
+ # Sometimes it's handy to see backtrace of RTS
+ # to get an idea what happens there
+ -g*) append-ghc-cflags compile ${flag};;
+
+ # Ignore all other flags, including all -f* flags
+ esac
+ done
+
+ for flag in ${LDFLAGS}; do
+ append-ghc-cflags link ${flag}
+ done
+
+ # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build.
+ # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported
+ # options to gcc.
+ if is_native; then
+ # prevent from failing to build unregisterised ghc:
+ # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html
+ use ppc64 && append-ghc-cflags persistent compile -mminimal-toc
+ fi
+}
+
+# substitutes string $1 to $2 in files $3 $4 ...
+relocate_path() {
+ local from=$1
+ local to=$2
+ shift 2
+ local file=
+ for file in "$@"
+ do
+ sed -i -e "s|$from|$to|g" \
+ "$file" || die "path relocation failed for '$file'"
+ done
+}
+
+# changes hardcoded ghc paths and updates package index
+# $1 - new absolute root path
+relocate_ghc() {
+ local to=$1 ghc_v=${BIN_PV}
+
+ # libdir for prebuilt binary and for current system may mismatch
+ # It does for prefix installation for example: bug #476998
+ local bin_ghc_prefix=${WORKDIR}/usr
+ local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*)
+ local bin_libdir=${bin_libpath#${bin_ghc_prefix}/}
+
+ # backup original script to use it later after relocation
+ local gp_back="${T}/ghc-pkg-${ghc_v}-orig"
+ cp "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" "$gp_back" || die "unable to backup ghc-pkg wrapper"
+
+ if [[ ${bin_libdir} != $(get_libdir) ]]; then
+ einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)"
+ # moving the dir itself is not strictly needed
+ # but then USE=binary would result in installing
+ # in '${bin_libdir}'
+ mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die
+
+ relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \
+ "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
+ "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
+ "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
+ "${WORKDIR}/usr/bin/hsc2hs" \
+ "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
+ "$gp_back" \
+ "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
+ fi
+
+ # Relocate from /usr to ${EPREFIX}/usr
+ relocate_path "/usr" "${to}/usr" \
+ "${WORKDIR}/usr/bin/ghc-${ghc_v}" \
+ "${WORKDIR}/usr/bin/ghci-${ghc_v}" \
+ "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \
+ "${WORKDIR}/usr/bin/haddock-ghc-${ghc_v}" \
+ "${WORKDIR}/usr/bin/hp2ps" \
+ "${WORKDIR}/usr/bin/hpc" \
+ "${WORKDIR}/usr/bin/hsc2hs" \
+ "${WORKDIR}/usr/bin/runghc-${ghc_v}" \
+ "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"*
+
+ # this one we will use to regenerate cache
+ # so it should point to current tree location
+ relocate_path "/usr" "${WORKDIR}/usr" "$gp_back"
+
+ if use prefix; then
+ hprefixify "${bin_libpath}"/${PN}*/settings
+ fi
+
+ # regenerate the binary package cache
+ "$gp_back" recache || die "failed to update cache after relocation"
+ rm "$gp_back"
+}
+
+ghc-check-reqs() {
+ # These are pessimistic values (slightly bigger than worst-case)
+ # Worst case is UNREG USE=profile ia64. See bug #611866 for some
+ # numbers on various arches.
+ CHECKREQS_DISK_BUILD=8G
+ CHECKREQS_DISK_USR=2G
+ # USE=binary roughly takes
+ use binary && CHECKREQS_DISK_BUILD=4G
+
+ "$@"
+}
+
+pkg_pretend() {
+ ghc-check-reqs check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ ghc-check-reqs check-reqs_pkg_setup
+
+ # quiet portage about prebuilt binaries
+ use binary && QA_PREBUILT="*"
+
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use ghcbootstrap; then
+ ewarn "You requested ghc bootstrapping, this is usually only used"
+ ewarn "by Gentoo developers to make binary .tbz2 packages."
+
+ [[ -z $(type -P ghc) ]] && \
+ die "Could not find a ghc to bootstrap with."
+ else
+ if ! yet_binary; then
+ eerror "Please try emerging with USE=ghcbootstrap and report build"
+ eerror "sucess or failure to the haskell team (haskell@gentoo.org)"
+ die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap"
+ fi
+ fi
+
+ if needs_python; then
+ python-any-r1_pkg_setup
+ fi
+}
+
+src_unpack() {
+ # Create the ${S} dir if we're using the binary version
+ use binary && mkdir "${S}"
+
+ # the Solaris and Darwin binaries from ghc (maeder) need to be
+ # unpacked separately, so prevent them from being unpacked
+ local ONLYA=${A}
+ case ${CHOST} in
+ *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;;
+ esac
+ unpack ${ONLYA}
+}
+
+src_prepare() {
+ ghc_setup_cflags
+
+ if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then
+ # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS.
+ # See bug #313635.
+ sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
+ "${WORKDIR}/usr/bin/ghc-${BIN_PV}"
+
+ # allow hardened users use vanilla binary to bootstrap ghc
+ # ghci uses mmap with rwx protection at it implements dynamic
+ # linking on it's own (bug #299709)
+ pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc"
+ fi
+
+ if use binary; then
+ if use prefix; then
+ relocate_ghc "${EPREFIX}"
+ fi
+
+ # Move unpacked files to the expected place
+ mv "${WORKDIR}/usr" "${S}"
+ eapply_user
+ else
+ if ! use ghcbootstrap; then
+ case ${CHOST} in
+ *-darwin* | *-solaris*)
+ # UPDATE ME for ghc-7
+ mkdir "${WORKDIR}"/ghc-bin-installer || die
+ pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die
+ use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2
+ use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2
+ use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2
+ use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2
+ popd > /dev/null
+
+ pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die
+ # fix the binaries so they run, on Solaris we need an
+ # LD_LIBRARY_PATH which has our prefix libdirs, on
+ # Darwin we need to replace the frameworks with our libs
+ # from the prefix fix before installation, because some
+ # of the tools are actually used during configure/make
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}"
+ elif [[ ${CHOST} == *-darwin* ]] ; then
+ local readline_framework=GNUreadline.framework/GNUreadline
+ local gmp_framework=/opt/local/lib/libgmp.10.dylib
+ local ncurses_file=/opt/local/lib/libncurses.5.dylib
+ for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do
+ install_name_tool -change \
+ ${readline_framework} \
+ "${EPREFIX}"/lib/libreadline.dylib \
+ ${binary} || die
+ install_name_tool -change \
+ ${gmp_framework} \
+ "${EPREFIX}"/usr/lib/libgmp.dylib \
+ ${binary} || die
+ install_name_tool -change \
+ ${ncurses_file} \
+ "${EPREFIX}"/usr/lib/libncurses.dylib \
+ ${binary} || die
+ done
+ # we don't do frameworks!
+ sed -i \
+ -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \
+ -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \
+ rts/package.conf.in || die
+ fi
+
+ # it is autoconf, but we really don't want to give it too
+ # many arguments, in fact we do the make in-place anyway
+ ./configure --prefix="${WORKDIR}"/usr || die
+ make install || die
+ popd > /dev/null
+ ;;
+ *)
+ relocate_ghc "${WORKDIR}"
+ ;;
+ esac
+ fi
+
+ sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \
+ "${S}/ghc/ghc.wrapper"
+
+ cd "${S}" # otherwise eapply will break
+
+ eapply "${FILESDIR}"/${PN}-7.0.4-CHOST-prefix.patch
+ eapply "${FILESDIR}"/${PN}-8.2.1-darwin.patch
+ eapply "${FILESDIR}"/${PN}-7.8.3-prim-lm.patch
+ eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch
+ eapply "${FILESDIR}"/${PN}-8.10.1-allow-cross-bootstrap.patch
+ eapply "${FILESDIR}"/${PN}-8.10.4-sphinx-quote.patch
+
+ # a bunch of crosscompiler patches
+ # needs newer version:
+ #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch
+
+ # mingw32 target
+ pushd "${S}/libraries/Win32"
+ eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround
+ popd
+
+ bump_libs
+
+ eapply_user
+ # as we have changed the build system
+ eautoreconf
+ fi
+}
+
+src_configure() {
+ if ! use binary; then
+ # initialize build.mk
+ echo '# Gentoo changes' > mk/build.mk
+
+ # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV}
+ echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
+ echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${P}" >> mk/build.mk
+
+ # We also need to use the GHC_FLAGS flags when building ghc itself
+ echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk
+ echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk
+ echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk
+ # Speed up initial Cabal bootstrap
+ echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk
+
+ # We can't depend on haddock except when bootstrapping when we
+ # must build docs and include them into the binary .tbz2 package
+ # app-text/dblatex is not in portage, can not build PDF or PS
+ echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk
+ echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk
+ echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk
+
+ # this controls presence on 'xhtml' and 'haddock' in final install
+ echo "HADDOCK_DOCS = YES" >> mk/build.mk
+
+ # not used outside of ghc's test
+ if [[ -n ${GHC_BUILD_DPH} ]]; then
+ echo "BUILD_DPH = YES" >> mk/build.mk
+ else
+ echo "BUILD_DPH = NO" >> mk/build.mk
+ fi
+
+ # Any non-native build has to skip as it needs
+ # target haddock binary to be runnabine.
+ if ! is_native; then
+ # disable docs generation as it requires running stage2
+ echo "HADDOCK_DOCS=NO" >> mk/build.mk
+ echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk
+ echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk
+ fi
+
+ if is_crosscompile; then
+ # Install ghc-stage1 crosscompiler instead of
+ # ghc-stage2 cross-built compiler.
+ echo "Stage1Only=YES" >> mk/build.mk
+ fi
+
+ # allows overriding build flavours for libraries:
+ # v - vanilla (static libs)
+ # p - profiled
+ # dyn - shared libraries
+ # example: GHC_LIBRARY_WAYS="v dyn"
+ if [[ -n ${GHC_LIBRARY_WAYS} ]]; then
+ echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk
+ fi
+ echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk
+
+ # Get ghc from the unpacked binary .tbz2
+ # except when bootstrapping we just pick ghc up off the path
+ if ! use ghcbootstrap; then
+ export PATH="${WORKDIR}/usr/bin:${PATH}"
+ fi
+
+ echo "INTEGER_LIBRARY = $(usex gmp integer-gmp integer-simple)" >> mk/build.mk
+
+ # don't strip anything. Very useful when stage2 SIGSEGVs on you
+ echo "STRIP_CMD = :" >> mk/build.mk
+
+ local econf_args=()
+
+ # GHC embeds toolchain it was built by and uses it later.
+ # Don't allow things like ccache or versioned binary slip.
+ # We use stable thing across gcc upgrades.
+ # User can use EXTRA_ECONF=CC=... to override this default.
+ econf_args+=(
+ AR=${CTARGET}-ar
+ CC=${CTARGET}-gcc
+ # these should be inferred by GHC but ghc defaults
+ # to using bundled tools on windows.
+ Windres=${CTARGET}-windres
+ DllWrap=${CTARGET}-dllwrap
+ # we set the linker explicitly below
+ --disable-ld-override
+ )
+ case ${CTARGET} in
+ arm*)
+ # ld.bfd-2.28 does not work for ghc. Force ld.gold
+ # instead. This should be removed once gentoo gets
+ # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177
+ econf_args+=(LD=${CTARGET}-ld.gold)
+ ;;
+ sparc*)
+ # ld.gold-2.28 does not work for ghc. Force ld.bfd
+ # instead. This should be removed once gentoo gets
+ # a fix for missing --no-relax support bug:
+ # https://sourceware.org/ml/binutils/2017-07/msg00183.html
+ econf_args+=(LD=${CTARGET}-ld.bfd)
+ ;;
+ *)
+ econf_args+=(LD=${CTARGET}-ld)
+ esac
+
+ if [[ ${CBUILD} != ${CHOST} ]]; then
+ # GHC bug: ghc claims not to support cross-building.
+ # It does, but does not distinct --host= value
+ # for stage1 and stage2 compiler.
+ econf_args+=(--host=${CBUILD})
+ fi
+
+ if use ghcmakebinary; then
+ # When building booting libary we are trying to
+ # bundle or restrict most of external depends
+ # with unstable ABI:
+ # - embed libffi (default GHC behaviour)
+ # - disable ncurses support for ghci (via haskeline)
+ # https://bugs.gentoo.org/557478
+ # - disable ncurses support for ghc-pkg
+ echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk
+ echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk
+ elif is_native; then
+ # using ${GTARGET}'s libffi is not supported yet:
+ # GHC embeds full path for ffi includes without /usr/${CTARGET} account.
+ econf_args+=(--with-system-libffi)
+ econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@'))
+ fi
+
+ einfo "Final mk/build.mk:"
+ cat mk/build.mk || die
+
+ econf ${econf_args[@]} \
+ --enable-bootstrap-with-devel-snapshot \
+ $(use_enable elfutils dwarf-unwind) \
+ $(use_enable numa)
+
+ if [[ ${PV} == *9999* ]]; then
+ GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')"
+ GHC_P=${PN}-${GHC_PV}
+ fi
+ fi # ! use binary
+}
+
+src_compile() {
+ if ! use binary; then
+ # Stage1Only crosscompiler does not build stage2
+ if ! is_crosscompile; then
+ # 1. build/pax-mark compiler binary first
+ emake ghc/stage2/build/tmp/ghc-stage2
+ # 2. pax-mark (bug #516430)
+ pax-mark -m ghc/stage2/build/tmp/ghc-stage2
+ # 2. build/pax-mark haddock using ghc-stage2
+ if is_native; then
+ # non-native build does not build haddock
+ # due to HADDOCK_DOCS=NO, but it could.
+ emake utils/haddock/dist/build/tmp/haddock
+ pax-mark -m utils/haddock/dist/build/tmp/haddock
+ fi
+ fi
+ # 3. and then all the rest
+ emake all
+ fi # ! use binary
+}
+
+src_test() {
+ # TODO: deal with:
+ # - sandbox (pollutes environment)
+ # - extra packages (to extend testsuite coverage)
+ # bits are taken from 'validate'
+ local make_test_target='test' # can be fulltest
+ # not 'emake' as testsuite uses '$MAKE' without jobserver available
+ make $make_test_target stage=2 THREADS=$(makeopts_jobs)
+}
+
+src_install() {
+ if use binary; then
+ use prefix && mkdir -p "${ED}"
+ mv "${S}/usr" "${ED}"
+ else
+ [[ -f VERSION ]] || emake VERSION
+
+ # -j1 due to a rare race in install script:
+ # make --no-print-directory -f ghc.mk phase=final install
+ # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \
+ # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include"
+ # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \
+ # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404"
+ # /usr/bin/install: cannot create regular file \
+ # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory
+ emake -j1 install DESTDIR="${D}"
+
+ # Skip for cross-targets as they all share target location:
+ # /usr/share/doc/ghc-9999/
+ if ! is_crosscompile; then
+ dodoc "distrib/README" "LICENSE" "VERSION"
+ fi
+
+ # rename ghc-shipped files to avoid collision
+ # of external packages. Motivating example:
+ # user had installed:
+ # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0)
+ # dev-haskell/transformers-0.4.2.0
+ # then user tried to update to
+ # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0)
+ # this will lead to single .conf file collision.
+ local shipped_conf renamed_conf
+ local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
+ for shipped_conf in "${package_confdir}"/*.conf; do
+ # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf'
+ renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf
+ mv "${shipped_conf}" "${renamed_conf}" || die
+ done
+
+ # remove link, but leave 'haddock-${GHC_P}'
+ rm -f "${ED}"/usr/bin/$(cross)haddock
+
+ if ! is_crosscompile; then
+ newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg
+ newbashcomp utils/completion/ghc.bash ghc
+ fi
+ fi
+
+ # path to the package.cache
+ local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d"
+ PKGCACHE="${package_confdir}"/package.cache
+ # copy the package.conf.d, including timestamp, save it so we can help
+ # users that have a broken package.conf.d
+ cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d"
+
+ # copy the package.conf, including timestamp, save it so we later can put it
+ # back before uninstalling, or when upgrading.
+ cp -p "${PKGCACHE}"{,.shipped} \
+ || die "failed to copy package.conf.d/package.cache"
+
+ if is_crosscompile; then
+ # When we build a cross-compiler the layout is the following:
+ # usr/lib/${CTARGET}-ghc-${VER}/ contains target libraries
+ # but
+ # usr/lib/${CTARGET}-ghc-${VER}/bin/ directory
+ # containst host binaries (modulo bugs).
+
+ # Portage's stripping mechanism does not skip stripping
+ # foreign binaries. This frequently causes binaries to be
+ # broken.
+ #
+ # Thus below we disable stripping of target libraries and allow
+ # stripping hosts executables.
+ dostrip -x "/usr/$(get_libdir)/$(cross)${GHC_P}"
+ dostrip "/usr/$(get_libdir)/$(cross)${GHC_P}/bin"
+ fi
+}
+
+pkg_preinst() {
+ # have we got an earlier version of ghc installed?
+ if has_version "<${CATEGORY}/${PF}"; then
+ haskell_updater_warn="1"
+ fi
+}
+
+pkg_postinst() {
+ ghc-reregister
+
+ # path to the package.cache
+ PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
+
+ # give the cache a new timestamp, it must be as recent as
+ # the package.conf.d directory.
+ touch "${PKGCACHE}"
+
+ if [[ "${haskell_updater_warn}" == "1" ]]; then
+ ewarn
+ ewarn "\e[1;31m************************************************************************\e[0m"
+ ewarn
+ ewarn "You have just upgraded from an older version of GHC."
+ ewarn "You may have to run"
+ ewarn " 'haskell-updater'"
+ ewarn "to rebuild all ghc-based Haskell libraries."
+ ewarn
+ ewarn "\e[1;31m************************************************************************\e[0m"
+ ewarn
+ fi
+}
+
+pkg_prerm() {
+ PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache"
+ rm -rf "${PKGCACHE}"
+
+ cp -p "${PKGCACHE}"{.shipped,}
+}
+
+pkg_postrm() {
+ ghc-package_pkg_postrm
+}
diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest
index 2a21618f9699..32ff37a07acb 100644
--- a/dev-lang/go/Manifest
+++ b/dev-lang/go/Manifest
@@ -1,7 +1,11 @@
AUX go-sets.conf 313 BLAKE2B 03e94776e317d34b72bfb8385b8b0dfa6a599a6086e4d0c9214e7b49293768947c21d9afb323ffcc7fd85ba0af72d9cb243dbb571eee9eb81de9400fd5f5e79c SHA512 7d01b98bc8d1b609183682dd942bd4c9fa757a98243c7de3cf6c497c7bc20b8cdbe59dd669ce4bb11f914a0e9b6d100e65cea2dffd99f38be50b18e0ecf66315
DIST go1.15.12.src.tar.gz 23035406 BLAKE2B b5c79bb243b0052e7a3d58538ae734bbb38839654ffc0e1cf266d360c4f35ac1a8b02c999306a0c1bc598d6ec0c9b3326fea278163b49cd7becc820c7a129bd4 SHA512 9fdb0e74c0b4e8e5d8d45cbdb6f1d4be4d40549ef10629350856c3e045a82567a0418e949dfc229df7eea091ababec6b3e4e12b1bd424e14d7b10ef989e5c232
+DIST go1.15.13.src.tar.gz 23039791 BLAKE2B 45a6cd985a27afa8b063dff1e4e4903abf76f03621bb6e4b64b03ef5ba2a9acd3d8b19e131464e6ef57d69bcb513ae81516e4b2a8b020b50503ca162385ed222 SHA512 3f77716c9721afacb27daa175e236bb25cfc93602f1531df18938fad94bf4f59e81b81f53fa977c2ebc9a912942275a1106043133fec166965e72766b1638ba1
DIST go1.16.4.src.tar.gz 20917203 BLAKE2B 4602a20ced74dba86938283a736d5235fe5dfb34ae742c44cdcd7ae2453d4654ea5757d0be76b6687d1d34c1b8c32681c41398d1a04ae72d491ee1d8b296d16d SHA512 e1b64610e22e657d9c65094e679cec50f59ff338c0ef102e54debcced1bc032390122456451fffb2d26d45c6db2f55bb9ef7f56ce479f6f1c2c2e6cc49442d86
+DIST go1.16.5.src.tar.gz 20921372 BLAKE2B a6565deb34b6cb167c41fc3af2e3bbdc8e22333adc9109de67c9e1f4bffb3d2c6e7d289e310f777d69092b3ee7a4dd706e13b0fe9ae5b0a16f270569953039df SHA512 ba90ce1f3faa39519eb5437009c4b710b493e42764a14b0821292a8a17b714fe5985ef20e6e3c340f71cb521ff63d45a23570d38fd752526a1262448c641d544
EBUILD go-1.15.12.ebuild 4574 BLAKE2B 12cc502e407d5ccfc0a4ff3c63c724602e29b3806f8add96e1113f2a76f8444d971e7d1394d4a97b01f9755d743dee2cda4053a89d20d348c454a311277836d5 SHA512 6e4c888f2da630120c644fbc3f330af1c92c0847fb0f5bfb0fd42c888af8b7834c8508263801b34c946ed54e6414e7461411e2713f92f802c293af3624f0ad47
+EBUILD go-1.15.13.ebuild 4574 BLAKE2B 12cc502e407d5ccfc0a4ff3c63c724602e29b3806f8add96e1113f2a76f8444d971e7d1394d4a97b01f9755d743dee2cda4053a89d20d348c454a311277836d5 SHA512 6e4c888f2da630120c644fbc3f330af1c92c0847fb0f5bfb0fd42c888af8b7834c8508263801b34c946ed54e6414e7461411e2713f92f802c293af3624f0ad47
EBUILD go-1.16.4.ebuild 4574 BLAKE2B 12cc502e407d5ccfc0a4ff3c63c724602e29b3806f8add96e1113f2a76f8444d971e7d1394d4a97b01f9755d743dee2cda4053a89d20d348c454a311277836d5 SHA512 6e4c888f2da630120c644fbc3f330af1c92c0847fb0f5bfb0fd42c888af8b7834c8508263801b34c946ed54e6414e7461411e2713f92f802c293af3624f0ad47
+EBUILD go-1.16.5.ebuild 4642 BLAKE2B 2a3ebc1f8b2797ef0ca78e81fd9201ddeb25d3d422170b6f383b853579a633bbd2c5040ec4e3d0bd904ec75aa9be0a43d0d4f243514ae58ff3d9f17f7ee53a57 SHA512 6cc0b8e18db98fbe1faef5185d87e369298b8019d4c7119c6ffb2225b89a2c51c9dd550f77b5e17ef2111dea89091b64ddd78b12e20c49c2c7bcb92fd9a1a36d
EBUILD go-9999.ebuild 4579 BLAKE2B c74b2bdd8db85b106cc7fced8388d1d50a67ccd1cc003ccf984c04a3213191e662a7285cacca758edbaa56149007ca84ae5d869b06a5a3f9cb72239e7ad621e8 SHA512 8cb0132fa8cdbc8a45346013f15c66b0075f3df678c3d623a1d16ed03d6b0a04b6372c14d8fdddde00dfa2eee39661ea17104fd787b6609bb5e8407ee773fcbc
MISC metadata.xml 462 BLAKE2B d9d4280e921286791a55619a7e5557c7041b0de157aa0f8bf6f17cf5041f802df4037270eeb3e8d37263f9fc17939c619a0dd3bce449c5f247279884da10bf67 SHA512 26fa7bfe26f00e8e1766cc0a1052fb8b5352799a33c9eb8f0c4f4523601d3eb5d1da8adc4b731f0d778039788734a9ad483f22e58e4bf1551ec8e9dccbcb87ba
diff --git a/dev-lang/go/go-1.15.13.ebuild b/dev-lang/go/go-1.15.13.ebuild
new file mode 100644
index 000000000000..0d4ac09e8905
--- /dev/null
+++ b/dev-lang/go/go-1.15.13.ebuild
@@ -0,0 +1,189 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+
+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 ppc64 ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+ ;;
+ esac
+esac
+
+DESCRIPTION="A concurrent garbage collected and typesafe programming language"
+HOMEPAGE="https://golang.org"
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+
+BDEPEND="|| (
+ dev-lang/go
+ dev-lang/go-bootstrap )"
+RDEPEND="!<dev-go/go-tools-0_pre20150902"
+
+# 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/.*/.*"
+
+# Do not strip this package. Stripping is unsupported upstream and may
+# fail.
+RESTRICT+=" strip"
+
+DOCS=(
+AUTHORS
+CONTRIBUTING.md
+CONTRIBUTORS
+PATENTS
+README.md
+)
+
+go_arch() {
+ # By chance most portage arch names match Go
+ local portage_arch=$(tc-arch $@)
+ case "${portage_arch}" in
+ x86) echo 386;;
+ x64-*) echo amd64;;
+ ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
+ s390) echo s390x ;;
+ *) echo "${portage_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) ]]
+}
+
+src_compile() {
+ if has_version -b dev-lang/go; then
+ export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
+ elif has_version -b dev-lang/go-bootstrap; 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)
+ if [[ ${ARCH} == arm ]]; then
+ export GOARM=$(go_arm)
+ fi
+
+ cd src
+ bash -x ./make.bash || die "build failed"
+}
+
+src_test() {
+ go_cross_compile && return 0
+
+ cd src
+ PATH="${GOBIN}:${PATH}" \
+ ./run.bash -no-rebuild || die "tests failed"
+ cd ..
+ rm -fr pkg/*_race || die
+ rm -fr pkg/obj/go-build || die
+}
+
+src_install() {
+ # There is a known issue which requires the source tree to be installed [1].
+ # Once this is fixed, we can consider using the doc use flag to control
+ # installing the doc and src directories.
+ # The use of cp is deliberate in order to retain permissions
+ # [1] https://golang.org/issue/2775
+ dodir /usr/lib/go
+ cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
+ einstalldocs
+
+ # 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
+ einfo "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
+ einfo "all packages compiled with previous versions of ${CATEGORY}/${PN}"
+ einfo "due to the static linking nature of go."
+ einfo "If this is not done, the packages compiled with the older"
+ einfo "version of the compiler will not be updated until they are"
+ einfo "updated individually, which could mean they will have"
+ einfo "vulnerabilities."
+ einfo "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
+ einfo "See https://bugs.gentoo.org/752153 for more info"
+}
diff --git a/dev-lang/go/go-1.16.5.ebuild b/dev-lang/go/go-1.16.5.ebuild
new file mode 100644
index 000000000000..ec9ee79ef9d4
--- /dev/null
+++ b/dev-lang/go/go-1.16.5.ebuild
@@ -0,0 +1,189 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+
+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 ppc64 ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+ ;;
+ esac
+esac
+
+DESCRIPTION="A concurrent garbage collected and typesafe programming language"
+HOMEPAGE="https://golang.org"
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+IUSE="cpu_flags_x86_sse2"
+
+BDEPEND="|| (
+ dev-lang/go
+ dev-lang/go-bootstrap )"
+RDEPEND="!<dev-go/go-tools-0_pre20150902"
+
+# 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/.*/.*"
+
+# Do not strip this package. Stripping is unsupported upstream and may
+# fail.
+RESTRICT+=" strip"
+
+DOCS=(
+AUTHORS
+CONTRIBUTING.md
+CONTRIBUTORS
+PATENTS
+README.md
+)
+
+go_arch() {
+ # By chance most portage arch names match Go
+ local portage_arch=$(tc-arch $@)
+ case "${portage_arch}" in
+ x86) echo 386;;
+ x64-*) echo amd64;;
+ ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
+ s390) echo s390x ;;
+ *) echo "${portage_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) ]]
+}
+
+src_compile() {
+ if has_version -b dev-lang/go; then
+ export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
+ elif has_version -b dev-lang/go-bootstrap; 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
+ PATH="${GOBIN}:${PATH}" \
+ ./run.bash -no-rebuild || die "tests failed"
+ cd ..
+ rm -fr pkg/*_race || die
+ rm -fr pkg/obj/go-build || die
+}
+
+src_install() {
+ # There is a known issue which requires the source tree to be installed [1].
+ # Once this is fixed, we can consider using the doc use flag to control
+ # installing the doc and src directories.
+ # The use of cp is deliberate in order to retain permissions
+ # [1] https://golang.org/issue/2775
+ dodir /usr/lib/go
+ cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
+ einstalldocs
+
+ # 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
+ einfo "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
+ einfo "all packages compiled with previous versions of ${CATEGORY}/${PN}"
+ einfo "due to the static linking nature of go."
+ einfo "If this is not done, the packages compiled with the older"
+ einfo "version of the compiler will not be updated until they are"
+ einfo "updated individually, which could mean they will have"
+ einfo "vulnerabilities."
+ einfo "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
+ einfo "See https://bugs.gentoo.org/752153 for more info"
+}
diff --git a/dev-lang/hy/Manifest b/dev-lang/hy/Manifest
index 616d839a0753..0d64d9a1fc24 100644
--- a/dev-lang/hy/Manifest
+++ b/dev-lang/hy/Manifest
@@ -1,6 +1,5 @@
AUX hy-0.15.0-do-not-install-get_version.py.patch 569 BLAKE2B 548cec5bc35f65721b4c8109256e79f2cbf8d2ba6620b66f88618678f73c6117c354622ffdce4936ccbd3574d3f3ce3517eb7f763bf5d770ac652992c81a1cea SHA512 c9ea2ae683ec8391192918cf0173e598732f1d5c1e4cd0814c63b20055c781b8a194694f6ed2585cb4acd43756650a8d9e6d3918956521c24b7c798ee8bdcec1
-DIST hy-0.17.0.tar.gz 438729 BLAKE2B f699198a3181592dc0a1c12ecb85defce5ee592eb3c949635f37af36f39f452b081b18b46a122d515a7246d448c1710eedd8015a14f18dc074c61f0cfccecf8f SHA512 18601bf47df2120f8833a1ae211c416dc90825f31cd50b259adfe0585089a623d0fea13512b2935b093e14d8595c93bc1610939d5f1d664f6acf7ddf7e341542
+AUX hy-xfail-macro-test.patch 713 BLAKE2B 37642d403c2c901af4a24785c44c55c0d2174f09d958450ab5ee650b5e83a29a41126e0af6d6fc35b28f0b67f58b4f277238b04f03ab233d4200a707719540d8 SHA512 f86677eb023d1c40b18152d931f8850fb73ca7f530b7e5193941fe898216ebe9e98e641096c13af0b7a04729acbf2736ffb8486df7ec5d304f47db9bff8e70dd
DIST hy-0.20.0.tar.gz 448041 BLAKE2B b728d5894403bc40e899979153ec7a0a0479a82ab5dd85699d87df150cf9169d199c06897a9573f9087623ae43a594536e56779bb6db463fd6490d944e6743c4 SHA512 ccad5f3704c48136ce77278c0bc470bf0dfbd56d8f81cfab22d90517d915cf22a6e1a976aecbb17fc9a7260fde23f3feff4572b8af80d10ceed767aef301af86
-EBUILD hy-0.17.0.ebuild 1087 BLAKE2B 771c533c1284077352b6c4e1874bdfc896b671098d942a594252d46c703983f8ae0b2d99eddac8ec6d2f8aa814ede26f7b4fe7a8445dcadf3dcdb3b6f65a2d21 SHA512 cb5c017b932c34cd25badd8916e1c0ef2e59c831ec58515a2fd4749004e79d8d93d07f4bc3ba83d6bfe1bfaf5136fe12b75e52c016a9af2f52536135deec507d
-EBUILD hy-0.20.0.ebuild 1107 BLAKE2B 46ab31fa2b2f59c4ea3f6288c54c05c56bfb5568eaeef76a344033a181265656aef3d1d3e6115b03b5a83e0fbad9a16d0f83d599edd85223b43869d51e670faa SHA512 fe6debeb5e19dfc79202fbaa6ecec9861f3ce6a355d8bf2d801847b25c1219885432a9fb598efc98f59cfcfb77cf460c1e846b4bd299b7c8cfabc1d189b65283
+EBUILD hy-0.20.0.ebuild 924 BLAKE2B 7f5733376538f3446462e13519b46f1ea9f636345e3bcb98b784828a3f64c4bea5f563455f4fa8c36e587f8404ca4420102cd84ab55c3ccbf078c462531e8c6f SHA512 ef11902ba8a12e1acccc272163809bded985788439209feb408ba31633a93125df903a7d0fe71b340fd2fd6d7cf98226fd663bc21aaba5da3f0e03481f641ba1
MISC metadata.xml 331 BLAKE2B 1377771edc92d3cd1ea685b43816a4ffd6c84d06245f00414df594d9d1aee498ca2a5ede2d92c2f0607fd26127730a8f7e1e6eadf6fd916325967b282e32f092 SHA512 97afa7992933d5088e939afd4005e188fd2979ccf7fc21561561b14e1eecfee61e867288c21b4a396fc5ca4926fd3d62c9d8c5be217b9392a5208371fa3aa719
diff --git a/dev-lang/hy/files/hy-xfail-macro-test.patch b/dev-lang/hy/files/hy-xfail-macro-test.patch
new file mode 100644
index 000000000000..f9ec09c4abb3
--- /dev/null
+++ b/dev-lang/hy/files/hy-xfail-macro-test.patch
@@ -0,0 +1,16 @@
+diff --git a/tests/native_tests/native_macros.hy b/tests/native_tests/native_macros.hy
+index 28f14a5a..209084f6 100644
+--- a/tests/native_tests/native_macros.hy
++++ b/tests/native_tests/native_macros.hy
+@@ -471,6 +471,11 @@ in expansions."
+ ;; to trust that the .pyc loading convention was followed.
+ (test-requires-and-macros))
+
++;; FIXME: this tests fail while being run by portage with FEATURES=test.
++;; Maybe it's because PYTHONDONTWRITEBYTECODE preserves somehow or something else
++;; related to bytecoede, idk for now.
++(setv test-macro-from-module (pytest.mark.xfail test-macro-from-module))
++
+
+ (defn test-recursive-require-star []
+ "(require [foo [*]]) should pull in macros required by `foo`."
diff --git a/dev-lang/hy/hy-0.17.0.ebuild b/dev-lang/hy/hy-0.17.0.ebuild
deleted file mode 100644
index f5cd25b9c0a6..000000000000
--- a/dev-lang/hy/hy-0.17.0.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-RESTRICT="test" # needs some pointy sticks. Seriously.
-PYTHON_COMPAT=(python3_7)
-
-inherit distutils-r1
-DESCRIPTION="A LISP dialect running in python"
-HOMEPAGE="http://hylang.org/"
-SRC_URI="https://github.com/hylang/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
-LICENSE="MIT"
-SLOT="0"
-
-KEYWORDS="~amd64 ~x86"
-IUSE="test doc"
-
-RDEPEND=">=dev-python/astor-0.7.1[${PYTHON_USEDEP}]
- >=dev-python/clint-0.4[${PYTHON_USEDEP}]
- dev-python/flake8[${PYTHON_USEDEP}]
- >=dev-python/funcparserlib-0.3.6[${PYTHON_USEDEP}]
- >=dev-python/rply-0.7.6[${PYTHON_USEDEP}]
- "
-DEPEND="${RDEPEND}
- doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
- test? (
- dev-python/nose[${PYTHON_USEDEP}]
- dev-python/sphinx[${PYTHON_USEDEP}]
- )"
-
-PATCHES=( "${FILESDIR}"/${PN}-0.15.0-do-not-install-get_version.py.patch )
-
-src_prepare() {
- default
- use doc && HTML_DOCS=( docs/_build/html/. )
-}
-
-python_compile_all() {
- use doc && emake docs
-}
-
-python_test() {
- nosetests -vv || die "Tests failed under ${EPYTHON}"
-}
diff --git a/dev-lang/hy/hy-0.20.0.ebuild b/dev-lang/hy/hy-0.20.0.ebuild
index d89f01291305..c26c538c2154 100644
--- a/dev-lang/hy/hy-0.20.0.ebuild
+++ b/dev-lang/hy/hy-0.20.0.ebuild
@@ -3,33 +3,30 @@
EAPI=7
-RESTRICT="test" # needs some pointy sticks. Seriously.
-PYTHON_COMPAT=(python3_7 python3_8 python3_9)
+PYTHON_COMPAT=( python3_{7..9} )
inherit distutils-r1
+
DESCRIPTION="A LISP dialect running in python"
HOMEPAGE="http://hylang.org/"
SRC_URI="https://github.com/hylang/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
LICENSE="MIT"
SLOT="0"
-
KEYWORDS="~amd64 ~x86"
IUSE="test doc"
RDEPEND=">=dev-python/astor-0.7.1[${PYTHON_USEDEP}]
- >=dev-python/clint-0.4[${PYTHON_USEDEP}]
- dev-python/flake8[${PYTHON_USEDEP}]
+ >=dev-python/colorama-0.4.3[${PYTHON_USEDEP}]
>=dev-python/funcparserlib-0.3.6[${PYTHON_USEDEP}]
- >=dev-python/rply-0.7.6[${PYTHON_USEDEP}]
- "
-DEPEND="${RDEPEND}
- doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
- test? (
- dev-python/nose[${PYTHON_USEDEP}]
- dev-python/sphinx[${PYTHON_USEDEP}]
- )"
+ >=dev-python/rply-0.7.6[${PYTHON_USEDEP}]"
+BDEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
-PATCHES=( "${FILESDIR}"/${PN}-0.15.0-do-not-install-get_version.py.patch )
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.15.0-do-not-install-get_version.py.patch
+ "${FILESDIR}"/${PN}-xfail-macro-test.patch
+)
src_prepare() {
default
@@ -40,6 +37,4 @@ python_compile_all() {
use doc && emake docs
}
-python_test() {
- nosetests -vv || die "Tests failed under ${EPYTHON}"
-}
+distutils_enable_tests pytest
diff --git a/dev-lang/ispc/Manifest b/dev-lang/ispc/Manifest
index 922283801261..70358f4f2270 100644
--- a/dev-lang/ispc/Manifest
+++ b/dev-lang/ispc/Manifest
@@ -2,8 +2,7 @@ AUX ispc-1.13.0-cmake-gentoo-release.patch 507 BLAKE2B e67be17f40dce55895ce307bd
AUX ispc-1.13.0-werror.patch 737 BLAKE2B 13ac7eb6f9db4a7379d5acd1f0fa8f44ddca7290329c1231c1b515b374438f5119d9e129c8b5326cfd084956a4ba005549bd30b67a9f64034e0ade8218b8f50c SHA512 254e0e21db59f2b8768d0953c9b0950bb7d860ea9eab7c4d450b3b006382959ab60eb650df9c1ddd4fda7628d5040f7b4779369cf67a99012d5fc2c4b9ef2f7b
AUX ispc-1.14.0-llvm-10.patch 4695 BLAKE2B 91488c154a2034487c61df07467414ab83f0a15073332dc8261d619a5dab9ad9c0a6708918bce6491d2a88ca83a5ec8b9edf3c90634b8b91233175e1f41f5163 SHA512 0ee052711aacb01dafd182b3bf95f6d88e2124a7d5beb38bb2173acdcb23eb3f04fc0514c0edf6e286091bc2f855ccc192e38c2f1c4e38fb631bb5fd6a9b223f
AUX ispc-9999-llvm.patch 1410 BLAKE2B 77027da9032fa230c72d8608c2a6cd63c33601e17acab0260101c64dbb50a0aa3cc30702c4480ae5d63e95ec3e962e28bdbbd90cd72f4e91d30dc364b82367b6 SHA512 116078d5ab99c849584cc4ece8dc3ebc817221a2377e26083071e206b5e83c4f3ed594f84b86c9659ef86a497bd3cd058ee32138238e12e6aa9dac0f11cf1440
-AUX ispc-9999-werror.patch 913 BLAKE2B cc24257a03c6b1a69c7b4ccddf6df61ca864f6fea614fe5fc479c368a94ae800bee0d621d3fe33b70aca680a85ae0f5140bd789d5c2b83143730b305d6da3296 SHA512 5397abccaeb22aa435c66b192195f991d7a94ab3109ae191ca0e1b2a011485488cfa892aa980a329b17b6f5f432f7613b9057e53e0aa0d0afb4a086bbe7af527
DIST ispc-1.14.1.tar.gz 19454189 BLAKE2B 615698e64ffbd2c82808d6ddd0b5b90f7c52bb8c202a04364d63af26f0e062631f4a8ad01895c1a4f1a8f11e7f91aec381354ddd873d0a4f2908431dcaabe383 SHA512 468e8a44408047ba7b43dc4baf05c2659093b986e131ebe973954ff3b9cf707a4ed22c705b6e01a9abc9a3911669ab31cd191449442c4ac73112a1297da32c5e
EBUILD ispc-1.14.1.ebuild 1753 BLAKE2B 98161585a17a4ce4e13c9eb29b668077a4f23df5505b8d55f509b7df0f73bbde3fc11a897f57574d1b0a80b335604e431897d5a76fd8f064351ad548bdfe8905 SHA512 1184f4ae6e085842ae198a9c4ef6a5965412565622bc9f3cf41ea32dbcee1f6fadde26bacf9fd545ece43deea0086eceb669eb6cb008af0e5b2196cf908f7fbd
-EBUILD ispc-9999.ebuild 1785 BLAKE2B 0c75f33746be19cbdaaa637133664b0dd0093666757645121e62b5844709e6d8c263cf137fdd9d320be5397af32935c765de11271e593569c1863ffb14139633 SHA512 98cd7f154b4ed376c74041a02fd59d66385754fa3f0588c3c5a0ff2ab11dcb5d0dd458a1ec2104b5c99f13da8de8c3417111ff359c7ed4f2e1041ae28c93e0a8
+EBUILD ispc-9999.ebuild 1746 BLAKE2B 94cc483c9760aebcfe4c917d84f1fd13106c69f5202137f8936074dd97a7413feaca7cab980fe0162da86dd71806cc6582fe00580019bf99c59332b5ce62650d SHA512 8233d10a97692e2b46779c8e549537f81725c8a35e3840a8e3a57cc49effb05c5a561b2b55d613a72192b684eab5d0c7d40f8288830fb24c10df7668ccbc36c2
MISC metadata.xml 241 BLAKE2B 26c98e9f68d20d2275e5a9aef2d4c1cf74bd65e331e2e4869297a0a4d2b4dccab2e7709ad9ff844b973a97da0ee6eaae4fe17c6446ca06ed63f46804c8af5a82 SHA512 b9bb777e446879d214fab1adfa4b9dca1d3bd11c4084dfa449fb16d1896da27b85e11b869ed76b7b492814a1899b5fb00dbbeded579a0ed00666d4b204ddee14
diff --git a/dev-lang/ispc/files/ispc-9999-werror.patch b/dev-lang/ispc/files/ispc-9999-werror.patch
deleted file mode 100644
index 0e860a95de26..000000000000
--- a/dev-lang/ispc/files/ispc-9999-werror.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 13e66268..27ff8364 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -352,7 +352,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE
- set_source_files_properties(${FLEX_OUTPUT} PROPERTIES COMPILE_FLAGS "/wd4005 /wd4003")
- set_source_files_properties(${BISON_OUTPUT} PROPERTIES COMPILE_FLAGS "/wd4005 /wd4065")
- else()
-- target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wno-sign-compare -Wno-unused-function -Werror ${LLVM_CPP_FLAGS})
-+ target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wno-sign-compare -Wno-unused-function ${LLVM_CPP_FLAGS})
- # The change implementing -Wno-unused-but-set-variable in clang was reverted, so commenting out for now.
- #if (${LLVM_VERSION_NUMBER} VERSION_GREATER_EQUAL "13.0.0")
- # set_source_files_properties(${BISON_CPP_OUTPUT} PROPERTIES COMPILE_FLAGS "-Wno-unused-but-set-variable")
diff --git a/dev-lang/ispc/ispc-9999.ebuild b/dev-lang/ispc/ispc-9999.ebuild
index 23b20156fd2b..8cc95c5d7497 100644
--- a/dev-lang/ispc/ispc-9999.ebuild
+++ b/dev-lang/ispc/ispc-9999.ebuild
@@ -37,7 +37,6 @@ BDEPEND="
PATCHES=(
"${FILESDIR}/${PN}-1.13.0-cmake-gentoo-release.patch"
"${FILESDIR}/${PN}-9999-llvm.patch"
- "${FILESDIR}/${PN}-9999-werror.patch"
)
CMAKE_BUILD_TYPE="RelWithDebInfo"
diff --git a/dev-lang/jerryscript/Manifest b/dev-lang/jerryscript/Manifest
index e3571d39b121..e4c477bba7d8 100644
--- a/dev-lang/jerryscript/Manifest
+++ b/dev-lang/jerryscript/Manifest
@@ -1,4 +1,4 @@
-AUX jerryscript-2.4.0-python3.patch 5261 BLAKE2B 151fec7f496d2b2b4df90d7e922f9713cfe58a54770ec8c329d189ecf82f11c2061fd755edb5c518d1939ee2f63c476d8fa97149a3e67fdf8bda3e8f897ddd29 SHA512 b3b95a8aa1c238df8494e39c00596a3a63cf64bdef7c0a531ca8f76d7ebaba5884a7aceae293541830b37d2810f22e9c44940aa8beea141ad52c995c1de0a245
+AUX jerryscript-2.4.0-python3.patch 5463 BLAKE2B ad2fdaf83a2be714194c3ee6e6703211792a8a1dbe4bbb13914f37e50c9ade6cbad915236fae3a74eb2bfed22a640c1daf0958570c2e792450dd5d59a2e5eacc SHA512 445dabde9b8c5c48b6ceb3663b234a0a7f26c2f310a4a0673bdb7301409cd6e76dbedc590bbd1a27814021e8917a7ec55487070b39c2508d061c156e408063a7
DIST jerryscript-2.4.0.tar.gz 2802799 BLAKE2B 18a3f71e7d3e2fc43772cb94aa3b0d4d28d72c6cd174eb0195f09283c5da5140ef85e86c6ed7a82e672724563549294c26d870b55c8bd9d0a92251b1002c612a SHA512 e96e6c6a2207ff869474801a1f8bbd3ce453d4076e558736ebf6962ccab08540f57cf932ec43bcd40429e21f1c6453d77874dd0a467d91a15d8357257533c1ea
-EBUILD jerryscript-2.4.0-r2.ebuild 1722 BLAKE2B 2d85fcaf531ce3cd0fcaa0939c67dc7b138c404a4129ac5ac5d6f6e389780b9e0706b12285c02699383c78cdef3103fb5f7186b0e18c27f730871fc5b602c7cc SHA512 38bdc6fd1e00f59c9a7b6f6a7043c42279f467720560a12a3067b449f929cdaec026b7620505795595ab74b74458204c3d1dc0661c206876315367db3cff6d03
+EBUILD jerryscript-2.4.0-r3.ebuild 1740 BLAKE2B 519e56171297f4044fb34a40cc0a17580ff1dcb83cc9bb34e3e50aece4b2457a78daa01dfb84ff839f860257fc02325c981ed7db605195f0405c654ec5b3fa35 SHA512 f19ad96f5260bfa2eb4b69644efcd47b21438d5fcead63ae18b2f96e46de7ec5b963fed5f057024baf4e7e791be2b185d5458bd0f7cadc47666c0ad1329bdbc4
MISC metadata.xml 488 BLAKE2B b302c1a73d8924475d95afb03c0e8547b65c0f90ac058f939ae419844e6120b066f604920c8c5d2cdebc237d51f9dafa71d979766af4e3a911e7a1e2e427f328 SHA512 c925c76d17d1436f5ac177510252961f6f22b6058a7d9692bc1c42dede0bf47fe5647c58faa6aa63d91722276e5b54565c17e17d5d5f5a34a9e6f92d8987bfd3
diff --git a/dev-lang/jerryscript/files/jerryscript-2.4.0-python3.patch b/dev-lang/jerryscript/files/jerryscript-2.4.0-python3.patch
index 7da285c5d3cf..a7046b4b6453 100644
--- a/dev-lang/jerryscript/files/jerryscript-2.4.0-python3.patch
+++ b/dev-lang/jerryscript/files/jerryscript-2.4.0-python3.patch
@@ -16,12 +16,13 @@ JerryScript-DCO-1.0-Signed-off-by: Zac Medico <zmedico@gmail.com>
2 files changed, 31 insertions(+), 9 deletions(-)
diff --git a/jerry-debugger/jerry_client_main.py b/jerry-debugger/jerry_client_main.py
-index e65d0e14..e3176c86 100644
+index e65d0e14..b465955f 100644
--- a/jerry-debugger/jerry_client_main.py
+++ b/jerry-debugger/jerry_client_main.py
-@@ -151,2 +151,12 @@ def arguments_parse():
+@@ -151,2 +151,13 @@ def arguments_parse():
+if sys.version_info.major >= 3:
++ # pylint: disable=invalid-name
+ _ord_orig = ord
+ def _ord_compat(c):
+ if isinstance(c, int):
@@ -32,16 +33,16 @@ index e65d0e14..e3176c86 100644
+
+
class JerryBreakpoint(object):
-@@ -563,2 +573,3 @@ class JerryDebugger(object):
+@@ -563,2 +574,3 @@ class JerryDebugger(object):
def _send_string(self, args, message_type, index=0):
+ args = args.encode("utf8")
-@@ -810,3 +821,3 @@ class JerryDebugger(object):
+@@ -810,3 +822,3 @@ class JerryDebugger(object):
elif buffer_type in [JERRY_DEBUGGER_SCOPE_VARIABLES, JERRY_DEBUGGER_SCOPE_VARIABLES_END]:
- self.scope_vars += "".join(data[1:])
+ self.scope_vars += "".join(data[1:].decode("utf8"))
-@@ -866,5 +877,5 @@ class JerryDebugger(object):
+@@ -866,5 +878,5 @@ class JerryDebugger(object):
def _parse_source(self, data):
- source_code = ""
- source_code_name = ""
@@ -50,7 +51,7 @@ index e65d0e14..e3176c86 100644
+ source_code_name = b""
+ function_name = b""
stack = [{"line": 1,
-@@ -905,7 +916,7 @@ class JerryDebugger(object):
+@@ -905,7 +917,7 @@ class JerryDebugger(object):
- stack.append({"source": source_code,
- "source_name": source_code_name,
@@ -61,24 +62,28 @@ index e65d0e14..e3176c86 100644
- "name": function_name,
+ "name": function_name.decode("utf8"),
"lines": [],
-@@ -939,4 +950,4 @@ class JerryDebugger(object):
+@@ -939,4 +951,4 @@ class JerryDebugger(object):
if not stack:
- func_desc["source"] = source_code
- func_desc["source_name"] = source_code_name
+ func_desc["source"] = source_code.decode("utf8")
+ func_desc["source_name"] = source_code_name.decode("utf8")
-@@ -1153,3 +1164,3 @@ class JerryDebugger(object):
+@@ -1153,4 +1165,4 @@ class JerryDebugger(object):
message = self.current_out + message
- lines = message.split("\n")
+- self.current_out = lines.pop()
+ lines = message.decode("utf8").split("\n")
- self.current_out = lines.pop()
-@@ -1162,3 +1173,3 @@ class JerryDebugger(object):
++ self.current_out = lines.pop().encode("utf8")
+
+@@ -1162,4 +1174,4 @@ class JerryDebugger(object):
message = self.current_log + message
- lines = message.split("\n")
+- self.current_log = lines.pop()
+ lines = message.decode("utf8").split("\n")
- self.current_log = lines.pop()
-@@ -1171,7 +1182,7 @@ class JerryDebugger(object):
++ self.current_log = lines.pop().encode("utf8")
+
+@@ -1171,7 +1183,7 @@ class JerryDebugger(object):
if subtype == JERRY_DEBUGGER_OUTPUT_WARNING:
- return "%swarning: %s%s" % (self.yellow, self.nocolor, message)
+ return "%swarning: %s%s" % (self.yellow, self.nocolor, message.decode("utf8"))
@@ -89,22 +94,23 @@ index e65d0e14..e3176c86 100644
- return "%strace: %s%s" % (self.blue, self.nocolor, message)
+ return "%strace: %s%s" % (self.blue, self.nocolor, message.decode("utf8"))
-@@ -1180,2 +1191,3 @@ class JerryDebugger(object):
+@@ -1180,2 +1192,3 @@ class JerryDebugger(object):
+ message = message.decode("utf8")
if not message.endswith("\n"):
diff --git a/jerry-debugger/jerry_client_websocket.py b/jerry-debugger/jerry_client_websocket.py
-index fe2c761a..07c75e53 100644
+index fe2c761a..9c755966 100644
--- a/jerry-debugger/jerry_client_websocket.py
+++ b/jerry-debugger/jerry_client_websocket.py
@@ -17,2 +17,3 @@
import struct
+import sys
-@@ -22,2 +23,13 @@ WEBSOCKET_FIN_BIT = 0x80
+@@ -22,2 +23,14 @@ WEBSOCKET_FIN_BIT = 0x80
+
+if sys.version_info.major >= 3:
++ # pylint: disable=invalid-name
+ _ord_orig = ord
+ def _ord_compat(c):
+ if isinstance(c, int):
@@ -115,7 +121,7 @@ index fe2c761a..07c75e53 100644
+
+
class WebSocket(object):
-@@ -94,3 +106,3 @@ class WebSocket(object):
+@@ -94,3 +107,3 @@ class WebSocket(object):
WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT,
- WEBSOCKET_FIN_BIT + struct.unpack(byte_order + "B", packed_data[0])[0],
+ WEBSOCKET_FIN_BIT + struct.unpack(byte_order + "B", packed_data[0:1])[0],
diff --git a/dev-lang/jerryscript/jerryscript-2.4.0-r2.ebuild b/dev-lang/jerryscript/jerryscript-2.4.0-r3.ebuild
index 369fd92e37ca..f7f6592c87ba 100644
--- a/dev-lang/jerryscript/jerryscript-2.4.0-r2.ebuild
+++ b/dev-lang/jerryscript/jerryscript-2.4.0-r3.ebuild
@@ -16,6 +16,7 @@ KEYWORDS="~amd64"
IUSE="debugger"
RDEPEND="debugger? ( ${PYTHON_DEPS} )"
BDEPEND="${RDEPEND}"
+RESTRICT+=" test"
PATCHES=(
"${FILESDIR}/jerryscript-2.4.0-python3.patch"
diff --git a/dev-lang/lfe/Manifest b/dev-lang/lfe/Manifest
index e920e2e7821c..66452200ac4e 100644
--- a/dev-lang/lfe/Manifest
+++ b/dev-lang/lfe/Manifest
@@ -1,6 +1,8 @@
AUX 70lfe-gentoo.el 166 BLAKE2B 023b504e013f24662bded660def58f013ca9b34bc9ee73a137df54e48825e71f3a7322652e7cb8fd60e19b2a508180e1933c6f03be163d4a614fecfb6b41d96a SHA512 a15c3db1640229eaa2c1faa44f7765a53fdde29af78f8a9130c3b8893098cbc41a3cb322402ac5b9b0ca8373739b03723acdc3685d83724fafa6afaee0c25891
DIST lfe-1.1.1.zip 386864 BLAKE2B d966e483c0490d7c6e48ae53819a0f1f30ea0edd7dcc6c7c3fe82c79ed0e4013d66dde4e74d4369e72fc46076723612f00ccb8d33d912d46dfdbf8e38940f72b SHA512 8660716a73126615bd0cde161a780cc49ba57718afd820dbe891da5e1d9ec2f52cc1864159dcedba1c674ccfef42b9662ec8e0bbfe82c10798527ae0979b8f8e
DIST lfe-1.3.0_p20210112.zip 447903 BLAKE2B bc63fd7f988abba77e7f4baef906c2fd4370e1aeb2bc04b019d429586cbcb91792ac0f65a3d29a904997d2488a2540411c38e904c0208e2183a8f0f8362f7c36 SHA512 ee178436ca8aea1f1001e5f679a366414229f584cc0e0a38d9749b7cb49d7378a3f8681dcb8c1d5c61e4f498aa31c575a791fe21337b3079a11b623ada363de9
+DIST lfe-2.0.tar.gz 351324 BLAKE2B 811bd310cf917f3e1dc456c9e7c5cd09f5099a2ab20d2bde60e2057eb94ee9125298866b01ef9b483fdaef8572cb487c0a760407c79774e915fdd2c7c129d796 SHA512 b615f28947febe034b1bd155e6c357211ebbdb63aef67645a9681a4a30b799c2019a79ab8f33cd5d3003ad5da83e10af6b3e5c1abe810def92c88812d58c0d04
EBUILD lfe-1.1.1.ebuild 754 BLAKE2B da0fd9924571e0cc62f2ee927eb26373eaec47ae1f5305930f2ba073287c19931de5839845bdba3e07ea7ab22030451425882a2bbc40aac7cfc97d4065d562d4 SHA512 77a131455692ceefb6310ace009525eeac0469f8105b16885e1a7a6bb8af2386104391774d44ce23d2d6ee9aa6635a882a1fe9ceaecc00da4ee312e3061e3741
EBUILD lfe-1.3.0_p20210112.ebuild 1478 BLAKE2B 703a9fcac2af8303587052a4adc18ec9757f3b0cb08ccf744b0d8ae43d94e46dd1ba24eea0c51c3abf1c55c72288ec44e1153daf9aae5883fecbe09733ae7f57 SHA512 4fc4fe399ca2974216c4c79eb248c670e7c29f3a51170c46907ad35d99dc28a3ee5627890ce4eb15d05898e9f07fae7015558ab6be57f4921e314603a7895142
+EBUILD lfe-2.0.ebuild 1395 BLAKE2B a5aaa1651bb6ed497878c72d1defa3d8038007a3094912c8a9225fdea6348d44d8a30939d01625daaab741f530e6fca20465d5b8d5b9973ef909297ff38d35f0 SHA512 7ea89b2be62b645276692ce3762a18c2154a8805d784324b1a151879cacb5734e847c8489fb2141885a9a6e2a50f60d1674494b00623818d959776757448a70b
MISC metadata.xml 588 BLAKE2B 532a17a48cf13dabc83a4ac1fae599cd24b7f661f20673cb1a1f336a0d2c0ab13491948788202adcec54c32a64b8245577501a462f261a1d785c9aeed536ec16 SHA512 c31ace8b52cbe4927e24fd42facf9e67b21b07f1eda7db7df1b8bd5ad0cee1748b72311c0f5b2592a80bb0f069a5943e827f146ba9929d224ec8c04072529153
diff --git a/dev-lang/lfe/lfe-2.0.ebuild b/dev-lang/lfe/lfe-2.0.ebuild
new file mode 100644
index 000000000000..a9f7eefb698e
--- /dev/null
+++ b/dev-lang/lfe/lfe-2.0.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit elisp-common toolchain-funcs
+
+DESCRIPTION="Lisp-flavoured Erlang"
+HOMEPAGE="http://lfe.github.io/"
+SRC_URI="https://github.com/rvirding/lfe/archive/v${PV}.zip -> ${P}.zip"
+
+if [[ "${PV}" == *9999* ]]; then
+ inherit git-r3
+ EGIT_BRANCH="develop"
+ EGIT_REPO_URI="https://github.com/rvirding/${PN}.git"
+else
+ SRC_URI="https://github.com/rvirding/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+RESTRICT="mirror test"
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="doc emacs"
+
+BDEPEND="app-arch/unzip"
+RDEPEND="
+ dev-lang/erlang
+"
+DEPEND="
+ ${RDEPEND}
+ doc? ( app-text/pandoc )
+"
+
+SITEFILE="70${PN}-gentoo.el"
+
+src_prepare() {
+ default
+
+ sed -i "s|cc |$(tc-getCC) ${CFLAGS} |g" ./Makefile \
+ || die "Failed to fix the makefile"
+}
+
+src_compile() {
+ emake compile
+
+ use doc && emake docs
+ use emacs && emake emacs
+}
+
+src_install() {
+ dodir "/usr/$(get_libdir)/erlang/lib/lfe/ebin/"
+ cp -R ./ebin "${D}/usr/$(get_libdir)/erlang/lib/lfe/"
+ dobin ./bin/*
+
+ if use doc; then
+ dodoc ./doc/*.txt
+ doman ./doc/man/*
+ fi
+
+ if use emacs; then
+ elisp-install lfe emacs/* \
+ || die "elisp-install failed"
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-lang/maude/Manifest b/dev-lang/maude/Manifest
index ffdad1733058..afafdba2b81f 100644
--- a/dev-lang/maude/Manifest
+++ b/dev-lang/maude/Manifest
@@ -2,7 +2,8 @@ AUX maude-2.5.0-prll.patch 627 BLAKE2B 7a6b32561207a3f8fb13ad955f386970cfba84e9f
AUX maude-2.6-search-datadir.patch 1124 BLAKE2B 620382dd567eb4bf2c944af83a209cc01b6b571024da0435995ab76c10ee0c1527a68d21ed171696d659092bb2a3cfb0593ceaded7d96351da2c0e067f4d4fcb SHA512 3bdaa49e6312d965c753450c5fec39c1175e6a5a57c570bce56f10d6bf3a56027fc8eb17c3d899aa752d4094eae4bbc7d1eec0022adc656894beef759c151cc5
AUX maude-2.7-AR.patch 206 BLAKE2B a43c072a46543f877afd4d7c809e1a9760fa3011a12eff16dfd68f254f007c3294a187af293643fba866ea105bb8b27fbe65553618571b24735beae0203c2465 SHA512 4cd4931b3dbfca8b3972a130fd710c7b3535e1f2ceb80fd610b7c9afb2ece3dbaec3dec4c6a7c806f6a411b748d7c911b00cc572bd3343bbf953b80028987173
AUX maude-2.7-bison-parse-param.patch 1027 BLAKE2B b8144c07c219987cd09d3555f05868d91c0727d905efd63ffe6cbdd0d9265c91a470db424b9f9719f7b0edb9f186656b6bab61e44cb40166c9d7802bd98ce368 SHA512 553c1e96fd72687025b71d04c476d853e0e2c8bab48f91f98ce1cb515562d27b7bbcb4e20ffb56c2dc3c7ee9cdbfe7c2da1d6d609b4bba34823c0637375f012c
+AUX maude-2.7-fix-build-with-gcc11.patch 2017 BLAKE2B 392125bbe74805b75cdf3b7465525cc73654028b5ced5064436d9107f5bc5e58bdc8a450a4fa97f1142a21d9bb242c8c914e7f7567cfadd38fd2901011c8e5cc SHA512 08b76d9dec638bb129c166695ffc0095bbe3001a337ce19e11a53a87e5ffcf45e750d075a5c91fc10c0a754c8153d1cc9e559066178b88b0e2f63ae40758b2a7
DIST Maude-2.7.tar.gz 1663708 BLAKE2B 5fd87cbd7ef2f86f4a7095334fd996109c72caaed44a894138803b76220325400920654924cb8645ed846b4d997dd2cf827d489ef7c4eef73ee22cb4e6e5a5dc SHA512 eb5225a7ec75df5f79d1e9c0d78c33427c0cf07bea83dae9e559d6d4cfc85fb03985596daf0c9c8794b34859510482f93b855254c1a3c650ee7520a3530a2070
DIST maude-2.6-extras.tar.xz 3157004 BLAKE2B d735366071194eb7fd22c11628672aba38cc8c7f4460e4ec8806e27c2e1416e1a2a5fa93efd01c305bf36e0ce799578688c5ac87b5459e979323df6f60305902 SHA512 0533f0f226057d2668052f360245f296d36129ec242ff0bfa91fada9db5bc347d276d3468c86fbac92f019f3a2f152c7cb4e58a7f1265c1fb5a8b1b496fac5cd
-EBUILD maude-2.7.ebuild 1348 BLAKE2B 6214e6e6788f6fc32338ffc4db885bcd34f82f15a281ab63e075b869e62b1445fa23be192773792adedff8744aa72e223773383408b45e43b49218631e3257b6 SHA512 c35d5b791d2ae2d7407f2cdccf7ea5ef6a02de9d3352a79790ba7fd43322536a9417d3419fe4067612866fa5da216777466af8468d5528d2858fa262afa8b07f
+EBUILD maude-2.7.ebuild 1400 BLAKE2B d77aeef190b5bc69ae81a5f6ff5f086b7cbccbab4e7e08995cdb56a11842c7bf30a8f1a2f610bc60308a8adc280f0c02a0c8620d2623d653a4a608e2f4466ba2 SHA512 c80d9fb1debdce70a7bb56d4a16926f57f7ee7f57ebcb94dea4e64d073c8875cd197052a2c2aa5d283224688b19d3d6ede98e5ee777861a737b0a25a1a355d2a
MISC metadata.xml 708 BLAKE2B 45ec7072bcd0509e34ef2b5d3abd3a67abe84cf91f6dbc9e45fdc3d07bf4bebe520c40440b977e2eabdd06ec1d9fede487c74cc69df57819975cd75f8ca75016 SHA512 da572363e08716b890656c160e415a4e01bd0a0effaaa3a535108295fdbbc67210315b9c0f81e4fd4c9dc8a8b8a3cc454f5d2225be0d666dbc630752ea0e2cc2
diff --git a/dev-lang/maude/files/maude-2.7-fix-build-with-gcc11.patch b/dev-lang/maude/files/maude-2.7-fix-build-with-gcc11.patch
new file mode 100644
index 000000000000..b903d50e22bc
--- /dev/null
+++ b/dev-lang/maude/files/maude-2.7-fix-build-with-gcc11.patch
@@ -0,0 +1,60 @@
+https://bugs.gentoo.org/787851
+
+From 6d448928a88f586195dadd9fae9cb1b19e589d94 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Tue, 15 Jun 2021 03:05:34 +0000
+Subject: [PATCH] Fix build with GCC 11
+diff --git a/src/ObjectSystem/configSymbol.hh b/src/ObjectSystem/configSymbol.hh
+index 90b00d9..d037dab 100644
+--- a/src/ObjectSystem/configSymbol.hh
++++ b/src/ObjectSystem/configSymbol.hh
+@@ -50,7 +50,7 @@ public:
+ private:
+ struct symbolLt
+ {
+- bool operator()(const Symbol* d1, const Symbol* d2)
++ bool operator()(const Symbol* d1, const Symbol* d2) const
+ {
+ return d1->compare(d2) < 0;
+ }
+diff --git a/src/ObjectSystem/objectMap.cc b/src/ObjectSystem/objectMap.cc
+index 0dbcaf0..722aa29 100644
+--- a/src/ObjectSystem/objectMap.cc
++++ b/src/ObjectSystem/objectMap.cc
+@@ -50,7 +50,7 @@ ConfigSymbol::MessageQueue::markReachableNodes() const
+
+ struct ConfigSymbol::dagNodeLt
+ {
+- bool operator()(const DagNode* d1, const DagNode* d2)
++ bool operator()(const DagNode* d1, const DagNode* d2) const
+ {
+ return d1->compare(d2) < 0;
+ }
+diff --git a/src/ObjectSystem/objectSystemRewritingContext.hh b/src/ObjectSystem/objectSystemRewritingContext.hh
+index 33785ec..32f4d94 100644
+--- a/src/ObjectSystem/objectSystemRewritingContext.hh
++++ b/src/ObjectSystem/objectSystemRewritingContext.hh
+@@ -62,7 +62,7 @@ protected:
+ private:
+ struct dagNodeLt
+ {
+- bool operator()(const DagNode* d1, const DagNode* d2)
++ bool operator()(const DagNode* d1, const DagNode* d2) const
+ {
+ return d1->compare(d2) < 0;
+ }
+diff --git a/src/Mixfix/entity.hh b/src/Mixfix/entity.hh
+index eb8ad58..a221de4 100644
+--- a/src/Mixfix/entity.hh
++++ b/src/Mixfix/entity.hh
+@@ -53,7 +53,7 @@ public:
+ private:
+ struct UserLt
+ {
+- bool operator()(const User* user1, const User* user2)
++ bool operator()(const User* user1, const User* user2) const
+ {
+ //
+ // Direct < comparison of unrelated pointers is undefined. But since the casting
+--
+2.32.0
diff --git a/dev-lang/maude/maude-2.7.ebuild b/dev-lang/maude/maude-2.7.ebuild
index 01957fb2a5e5..72d88da7e51b 100644
--- a/dev-lang/maude/maude-2.7.ebuild
+++ b/dev-lang/maude/maude-2.7.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -32,6 +32,7 @@ PATCHES=(
"${FILESDIR}/${PN}-2.6-search-datadir.patch"
"${FILESDIR}/${PN}-2.7-bison-parse-param.patch"
"${FILESDIR}/${PN}-2.7-AR.patch"
+ "${FILESDIR}/${PN}-2.7-fix-build-with-gcc11.patch"
)
src_prepare() {
diff --git a/dev-lang/mujs/Manifest b/dev-lang/mujs/Manifest
index 602037ba8394..344c09e844f0 100644
--- a/dev-lang/mujs/Manifest
+++ b/dev-lang/mujs/Manifest
@@ -2,6 +2,8 @@ AUX mujs-1.1.0-flags.patch 376 BLAKE2B 6bcfc39f97b35ae2230aa33ca99d4338915224a9b
AUX mujs-1.1.1-flags.patch 313 BLAKE2B c0dfb2aa7721fe865b4c04141924da299db48d900a6fab883dc76bf274cd60ca8749febd80e6b106e60cc36c4fcefa76d5414e29ef1ef7c774a7e912088895c0 SHA512 8d189613398203693e35c4313d3b7688c73ec38b426eea93a9cf96a21df11bb651afe0191168ca3c23a69f9d77390ed2829c2bc2204f04cb7621fb9f286a7266
DIST mujs-1.1.0.tar.gz 123450 BLAKE2B e7bc05d35566ff26346e713645e0f417a9acd1a73b5fb5c7f0c35bf940765fba1ab04199f4ed1dd6ce0e3bb2bf1547703335a1c125353da24de72f2b1adfb243 SHA512 10b61453f8483e3e67c95a742aa7868e255816b2ce25c84d8e24c5c737bad1f23ade67531c5c5bb914804be446da33c0cbe8e95a6d5889250dd8520ce56f23a0
DIST mujs-1.1.2.tar.xz 98340 BLAKE2B bbb290786c26fd604082eb123adc78a3b7d9387dafabf70df23bae97d016a3ad16a434fb1ab3a33da85c575cf813491d0a09d956ff351bd7c8d38cac675ec114 SHA512 66641855e6fe732541fb80a99fda4418545183965c6a6ffb4a05101084fd1cc073aca1e51115f37fffb56bc5518cec21a1586d0745c55aec08deb47736e33392
+DIST mujs-1.1.3.tar.xz 98332 BLAKE2B 4dc2c0e657d7dcbbd7f82765556e75e7992cdcaf15c7986bb76c0fb6c244057ba0771a2a59c246eaf7bb9ff080e8af6ade8ef9a95606dc8ebde99f7d73c245c1 SHA512 6a8d0650f1924b5889039ddd8529438226677c63f9317b980492fac4e8380385d5c33fe8a315f26ebd0f7ae94c6c3bc90fdb75a8e4a0df367e6e4e355692e890
EBUILD mujs-1.1.0.ebuild 1365 BLAKE2B 4f940033e75d77ae741f68a915efef418cabc9f15ae3ecf4c388a0d2020cc7fbe8c003327653b3fdee4b8b7f591be929d19c77bf017f03811c037087130c4fb2 SHA512 cb79454936f47f9442ecaae261eeb1ad62635430ce416845cac82e14d24be7e7b86d07c2cccae0a83166f29e2e805d0458ef0ba98bb1d0da7f96bdc8027edfb1
EBUILD mujs-1.1.2.ebuild 1901 BLAKE2B a0ae1459797b184ee970f8ea43a0609bf92e0c20c233a1272f3d44a03ba772e2cfd590430d1e8594243dc8003274060cc24b5230ee629c176bbec0f13f7a4a46 SHA512 d4ed6e3383b2b6cdd0556589c1c5ba7f8db60b42c30f9ba89db107bc8bf5afd119354eabe5e354c37a3f6b1bda53a04d391633323665adda0b0fbd599e5a5048
+EBUILD mujs-1.1.3.ebuild 1908 BLAKE2B a82ab3a14c96be2dc6bab9717a58355ca8668eebb7dcc237d05ab1b599a5a5768028d04ff0eb1bfb45430723ffbba1a1ed434d1441c3816b7420114541860814 SHA512 7dd96efaa1300d34516da9edbf3fd89a885c5f8bd507f711647767283c0ee51300afdd20ada2281ad4a10cc2d52dd9404dc3175dec375e985df199624e6f1471
MISC metadata.xml 547 BLAKE2B fcf818d9a103347b5b47f7b7c77654e84db6aa2a8dd12f169d58522cb47a455f02f0bf66fc85057a2a10916c4a24dcdca87a5f2e12c54d184ea8d5af1db65810 SHA512 e6bac32e74df77c2ded4e9a9e6200ab76e06217b9a236d6bf5f0df23a031eab2519f26e3d402ff106f9506a4dbe3baf66cae5f961f6d016e7c42fe83fc532799
diff --git a/dev-lang/mujs/mujs-1.1.3.ebuild b/dev-lang/mujs/mujs-1.1.3.ebuild
new file mode 100644
index 000000000000..bc0c2a8caca1
--- /dev/null
+++ b/dev-lang/mujs/mujs-1.1.3.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic multilib toolchain-funcs
+
+DESCRIPTION="An embeddable JavaScript interpreter in C"
+HOMEPAGE="https://mujs.com/ https://github.com/ccxvii/mujs"
+SRC_URI="https://mujs.com/downloads/${P}.tar.xz"
+#SRC_URI=" https://github.com/ccxvii/mujs/archive/${PV}.tar.xz -> ${P}.tar.xz"
+
+LICENSE="ISC"
+# subslot matches SONAME
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+
+RDEPEND="sys-libs/readline:0="
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.1.1-flags.patch
+)
+
+src_prepare() {
+ default
+
+ tc-export AR CC
+
+ append-cflags -fPIC
+
+ # library's ABI (and API) changes in ~each release:
+ # diff 'usr/includemujs.h' across releases to validate
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ append-cflags -Wl,-install_name,"${EPREFIX}"/usr/$(get_libdir)/lib${PN}.${PV}.dylib
+ else
+ append-cflags -Wl,-soname=lib${PN}.so.${PV}
+ fi
+}
+
+src_compile() {
+ # We need to use ${PV} for the pkgconfig file
+ # #784461
+ emake \
+ VERSION=${PV} \
+ XCFLAGS="${CFLAGS}" \
+ XCPPFLAGS="${CPPFLAGS}" \
+ prefix=/usr \
+ shell shared
+}
+
+src_install() {
+ local myemakeargs=(
+ DESTDIR="${ED}"
+ VERSION=${PV}
+ libdir="/usr/$(get_libdir)"
+ prefix=/usr
+ )
+
+ emake "${myemakeargs[@]}" install-shared
+
+ # TODO: Tidy up this logic, improve readability
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ mv -v "${ED}"/usr/$(get_libdir)/lib${PN}.so "${ED}"/usr/$(get_libdir)/lib${PN}.${PV}.dylib || die
+ dosym lib${PN}.${PV}.dylib /usr/$(get_libdir)/lib${PN}.dylib
+ dosym lib${PN}.${PV}.dylib /usr/$(get_libdir)/lib${PN}.${PV:0:1}.dylib
+ else
+ mv -v "${ED}"/usr/$(get_libdir)/lib${PN}.so{,.${PV}} || die
+ dosym lib${PN}.so.${PV} /usr/$(get_libdir)/lib${PN}.so
+ dosym lib${PN}.so.${PV} /usr/$(get_libdir)/lib${PN}.so.${PV:0:1}
+ fi
+}
diff --git a/dev-lang/nim/Manifest b/dev-lang/nim/Manifest
index ac03a4444141..8dd02ae74def 100644
--- a/dev-lang/nim/Manifest
+++ b/dev-lang/nim/Manifest
@@ -1,6 +1,4 @@
AUX nim-0.20.0-paths.patch 934 BLAKE2B 6a4e44c5656cde6d5127bf6a6b8db92cdf8aada0892c27d536d0c1030ed7da8dc97138a8941030101918021f2a301fa683169c8a656fefc6fb7d0fcdb24029d4 SHA512 bf8dbc3e3861ec3ea2718092b981e495194ead5b547e69d01d5d842d128dc4b96b0ba3e95c78afd8fd822d594199315a01de370851ed8f594c091231b9a10ee9
-DIST nim-1.4.6.tar.xz 4793544 BLAKE2B 5d015193564c63f16bd812eed19ace6cdeb2c944aa3aad3a41f4f811e8d56bdde02c5b405e7939ab09ad8b29d84ef9212c2df7c9f9148e0c26288157d20f4846 SHA512 6b1971a920c3572f9a1997648a297afc1696b09ac20ca031a4b23eba3b66b9ff93606bff2eeacaa651ed8cf6af2df7d38ec6253a4e66955a3e04c6d88991e013
DIST nim-1.4.8.tar.xz 4786360 BLAKE2B 961b38275c4f9de87ac522c5b47368ce7f5543811a2dfd7b4f3fd79a104bcd0458caaaaab1705f99eb42c64735ca5f71d5018f8a8275a430d883233b28b1d412 SHA512 e6b245271495880f0eea271c46b4f5ce9168a421716a9a22367b6be3c2a9822937aad1f48eb61c151b040ac961728a89c8a6d143c8300057c0d8c1f2d66f3dd3
-EBUILD nim-1.4.6.ebuild 1908 BLAKE2B c7e267e92cda81ae16e1dba7a82baaec77c12b7b7a3a4dccec994d868bef4cf7558562fe3d6f80ec5542f8195dacf0d291fce5d3ac3cabf1172bc887870ccae1 SHA512 70b3b578fc1ca1450fd02d31e865a1d7a2805d9c26c31ceba26076d9eb21100df1357645eee62f68b25f0a434f3bbd07479cbd661ec19b78af6cf253b7dc2438
EBUILD nim-1.4.8.ebuild 1908 BLAKE2B c7e267e92cda81ae16e1dba7a82baaec77c12b7b7a3a4dccec994d868bef4cf7558562fe3d6f80ec5542f8195dacf0d291fce5d3ac3cabf1172bc887870ccae1 SHA512 70b3b578fc1ca1450fd02d31e865a1d7a2805d9c26c31ceba26076d9eb21100df1357645eee62f68b25f0a434f3bbd07479cbd661ec19b78af6cf253b7dc2438
MISC metadata.xml 328 BLAKE2B 9205920d8c9b12118456bd186f2e882b3e6f75b7cc3f766def1e79e2e4f7ac695370409ff1555e379516606568f181f4ba3625322f70e41bfffd21d319b0035f SHA512 bf02bc0a8c25d6e157b7ab1ef87c2eac3241d42bc4cf0632a159dcb5d429051018848be81d0cbce228124660ced8694f5de48d64fe10bc7ff5b536b7e7579e49
diff --git a/dev-lang/nim/nim-1.4.6.ebuild b/dev-lang/nim/nim-1.4.6.ebuild
deleted file mode 100644
index 3c52ea807c23..000000000000
--- a/dev-lang/nim/nim-1.4.6.ebuild
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit bash-completion-r1 multiprocessing toolchain-funcs
-
-DESCRIPTION="compiled, garbage-collected systems programming language"
-HOMEPAGE="https://nim-lang.org/"
-SRC_URI="https://nim-lang.org/download/${P}.tar.xz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
-IUSE="+readline test"
-
-RESTRICT=test # need to sort out depends and numerous failures
-
-RDEPEND="
- readline? ( sys-libs/readline:0= )
-"
-DEPEND="
- ${DEPEND}
- test? ( net-libs/nodejs )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.20.0-paths.patch
-)
-
-_run() {
- echo "$@"
- "$@" || die "'$*' failed"
-}
-
-nim_use_enable() {
- [[ -z $2 ]] && die "usage: nim_use_enable <USE flag> <compiler flag>"
- use $1 && echo "-d:$2"
-}
-
-src_configure() {
- export XDG_CACHE_HOME=${T}/cache #667182
- tc-export CC LD
-
- # Override default CC=gcc.
- echo "gcc.exe = \"$(tc-getCC)\"" >> config/nim.cfg || die
- echo "gcc.linkerexe = \"$(tc-getCC)\"" >> config/nim.cfg || die
- echo "gcc.cpp.exe = \"$(tc-getCXX)\"" >> config/nim.cfg || die
- echo "gcc.cpp.linkerexe = \"$(tc-getCXX)\"" >> config/nim.cfg || die
-}
-
-src_compile() {
-
- _run ./build.sh
-
- _run ./bin/nim --parallelBuild:$(makeopts_jobs) c koch
- _run ./koch boot --parallelBuild:$(makeopts_jobs) -d:release $(nim_use_enable readline useGnuReadline)
- PATH="./bin:$PATH" _run ./koch tools --parallelBuild:$(makeopts_jobs)
-}
-
-src_test() {
- PATH="./bin:$PATH" _run ./koch test --parallelBuild:$(makeopts_jobs)
-}
-
-src_install() {
- PATH="./bin:$PATH" _run ./koch install "${ED}"
- rm -r "${ED}/usr/share/nim/doc" || die "failed to remove 'doc'"
-
- exeinto /usr/bin
-
- local bin_exe
- for bin_exe in bin/*; do
- # './koch install' installs only 'nim' binary
- # but not the rest
- [[ ${bin_exe} == bin/nim ]] && continue
- doexe "${bin_exe}"
- done
-
- newbashcomp tools/nim.bash-completion ${PN}
-}
diff --git a/dev-lang/ocaml/Manifest b/dev-lang/ocaml/Manifest
index 62e83d6f0579..1c05a579b356 100644
--- a/dev-lang/ocaml/Manifest
+++ b/dev-lang/ocaml/Manifest
@@ -1,4 +1,5 @@
AUX ocaml-4.04.2-tinfo.patch 506 BLAKE2B 889c964385442247a70b7205abc497a8d83ac9e3fcedebdb184c9ded8ae81d171656fbe0ade7e431990545c01287f3618e45c3d25e0f77a4e7682e9a21c3f76a SHA512 5bf7e13de2e4a513b5411c3dcaa204aeaff6975b978d68455e059177049c2a1d862b4d1a96f0a986112ea0d347306190c81da6ec4b1150f56a3addc8f3d9b777
+AUX ocaml-4.05.0-CVE-2018-9838.patch 2888 BLAKE2B 75fe491c1b12d9882c7b558efb3384a133c56bea0c85e97a6b46ec5b5f4050da4752228c795d937875645260b98ac9d203b9cdbf583ed36934a29faf4d47ecc3 SHA512 3da218dcea2c08ed97da805a2c1a1bc134a48b4425b4912283e353dde606ae99c95b86b59c6575b42961c9eb6903e09d60968c5a8db72a58510c4e3dcd13a5ef
AUX ocaml-4.05.0-gcc10.patch 1976 BLAKE2B cf1240a815d731e99862740ddf90f6a0ea1d078c9e4e1cef126eff4a7d80afbde73f45d360a26eaa14863cc35d2086d98d130251490959df4c361a51ced0557e SHA512 e55cb651431798294b21ee0ea8818d6c42f88c329b7a1985af9d460f2a5b3057f2ee229e72699f9660168202a0c78dcf89b8bfce2154ca3e141fe8fb5f861773
AUX ocaml-4.09.0-gcc-10.patch 571 BLAKE2B 990107a1d199d350a821596e7655566bb8eb71ee828eb0247bd25111760dd4dd6952a0bea6c29f69f6fa4ef8d02bd47166b5f2c4ced30ed830078b1555ca86eb SHA512 430774f62cea3f4ed06c9a1cbc73c68e3eab0d6fbebb5e62ea12a012cc2b25bb1a776ff08a7d532140bc2e12eae3e1a43605bf5708e1333b23a135b9801de084
AUX ocaml-rebuild.sh 1120 BLAKE2B 6f88a9f2b99fae7f89b884bb08d2c6ad6a0e14d4a8fd06d498037f78c5f6ef040428f9de224b5fe5df4ef64eaed419cda6d8715ea0c0a4c4dad60c5cf75a4147 SHA512 05a3e81e95533135d9895091c21621c73ae82851abd4889d64f035979eb25f8d90b60f469d7ef5e789fd1a4adffd6bbe255e6708c14c24a04f8a423507d19a40
@@ -7,9 +8,12 @@ DIST ocaml-4.05.0.tar.gz 4431750 BLAKE2B c2ab003a13e0a581ebd0e1c96eeb8a9baea9bfe
DIST ocaml-4.09.0.tar.gz 4838748 BLAKE2B 80f29d535c64bf2371b480217723ed20b2b21cfd93ce31366a7b91e7ddffdf68db4e88d085288b7e21efee567a13f42ecff24c3a0115507b006acf844239cefd SHA512 dc0271e591bf929b751705835790949a9d741e12d085c8b207c3689b5838a02ea8de80da8b2605d2e6744f2f541b0d1694ffafff9509e99ce01f3a391f6ef2ae
DIST ocaml-4.10.2.tar.gz 4933135 BLAKE2B ec5e92adb23c28a254247182c79ab555fd82603e02f24799049b8057abf869d18234302408c8ae89b9997a2b210ed6965e45c2c03e4f0cab34262ad3f6ebb528 SHA512 1dd827da07f01e815fd74dd7ee84db0900f24782f8f7fd426e2d71b9fb03c7b8045f22e018120a0446c362315751365d1bd8c1724edef2b182394e76eb0a07b2
DIST ocaml-4.11.2.tar.gz 5075323 BLAKE2B bdc503d9a8d0e39dd11060febcd0287657b460e50ed81e55578a3e778af990ca5d4ef9011753eee4e1a144da33eb76c95b1672dc99b76e65a2e107eee472fe06 SHA512 03d8a9f6e130142c121ff2eb3d54f584f1e7c8475f066a5803bb0edd2fa172ca06a56a3ec548b225f5c8b12112d7a68511b1e16f3ade075b5f02610d4247bbb3
+DIST ocaml-4.12.0.tar.gz 5179734 BLAKE2B 318be7e306157102d7ad22802db381dfa9c675e43325395695c3564e5ffee87d9b55d1152ea1603edb5ef715a28cbde85d835dbf1b5aface2dc415c67192c208 SHA512 951e44cdda613f9c6c5f988434c84249a2d63ba14e21938a9e74c174ebaf9d81a3160d1e5021d57fcd4882732ae6aefc05239ac38116f39ca83d53879d5d4eaf
DIST ocaml-patches-9.tar.bz2 1700 BLAKE2B 4e46b8fb490db28f815414e285f54e251394ea53e1d25c529bbea9f03e426fd19132b1e2c7c2be7d14983fceb4cad073d191b001f6da522fee4226371d4a2eca SHA512 cc19f9104fac69aecc5effa8cb772342e1fb61cdcd38ba0176efe04cf3d710b1c56d5178748f3bd29099af91fa684da432a8ef8d42de76dbd1b6954a255ea6c0
-EBUILD ocaml-4.05.0-r3.ebuild 4032 BLAKE2B e661b119edf65d14fd040274a9cf4d04600eedaf25990a9045898ff95d036510e15e966539ddd6f3a0c7336fe6a24d4c14ae7ca419dec5a1c9536b8b2dcd10c4 SHA512 07285302718df64b0a00678d931c222837b38d92850409e260591f24df1c031714c02d29e7854ae6ce374f843cf10061ec89705bd2a0f772eb04ca88dc7d71e1
-EBUILD ocaml-4.09.0.ebuild 2459 BLAKE2B 41e75a2bcde313c4205e9b5e1dcc704c1aed3fc02bac569b1ae764f6644bb0da02281fb96f4c8e3ad7ebacb5aea94ac328c444e8f228d90cfa1caa50b70b2d4d SHA512 04b7dd810ef40c89c41810725af3cc3702e8645e0b267357d747d9c5de053bbbc553c71e3ce7d1eb758566d9ff61e4eb4d09447e12302fce3fb9dccc01ba17f2
-EBUILD ocaml-4.10.2.ebuild 2417 BLAKE2B d10cc95f1518619bef972b5eb219f45de8d1143c97ff9cd01a9acf74190636ac3316835f7f26523d9388e5be0954c04c4aaea34f2ccf02b4e926fa6abccce842 SHA512 fa701247c912886020d2ff57f03bb94661954ae0f58f95b69f527c2f4efab10bb26fa51d402f7fd236f0932a986424cb72925586e82c41daabbc3cb628cd3541
-EBUILD ocaml-4.11.2.ebuild 2290 BLAKE2B 73ecfc03f0e61821174790f5d360b1cf392517c7c961f0625159c04febb1ffc43c3c6fa4e5705f2d1dbb1cf7e40d84c50782b63411ca2462348c151ae2734df9 SHA512 bcd82adcb04843f597e08efd7d5e904336f47f412d2360c89dd4c1e1802375c60de0fcd77f9edafbe9bdf61be2e65863e84f0cad74d424c52787694e64b21288
+EBUILD ocaml-4.05.0-r5.ebuild 4041 BLAKE2B 25bf09ea13c2775f6ae4524cdefd993d174afdabc32cdced62ce088bc081142679087efdaba6172237276bc4ca22b08ca364e7a0cf2990c6cfa3d56529b74f21 SHA512 3e83e03c64263c5eaac48e8a1e9fc95304e0c1b36726676d0b6a026eddaeab89532898dc54a587c961253f3ee9620e422af2441a659755494a4a23c3728a08b6
+EBUILD ocaml-4.05.0-r6.ebuild 4081 BLAKE2B c02f7a7ab92551db6740dedb3e971da64e1db65cb8fba285edad7c9f9370773592f70a6b1eda403ca8f170953f5e161a35f63d53e95cb21c1271432ff4d7a0f0 SHA512 ad670214e57abd7b8011fc5fb4642932903df4dcc51e39f932396d52dec73a57fb5e7d40088053190e5f2af3e806137208727dd065eb88685ba0d11488b4e101
+EBUILD ocaml-4.09.0-r1.ebuild 2468 BLAKE2B 5fb634c6306f0fd0117af7559f88cb23b969ae7197389280cc7796e1715aca270802ebff28c140b4b887ace8336494ff2656048bcb2e5911ceee58a5e3c9d048 SHA512 77cda9e58a54260e9f2f7736acf21ce32c09cb9d421c3c786c5b63aff8ac71903f90a2b1a0969800e485fcd4f610ace2ecabfee17f9805f60d6076688afe2f8b
+EBUILD ocaml-4.10.2-r1.ebuild 2426 BLAKE2B 05ce3cd3582c4a481b978da45595f20c1da6bda77fcdd28d10578d87e058692d24079f9ae22fa9f546ebf963193860d398986fd4f8c5829acabfcf5f15a2cc31 SHA512 f0db8d2e7c13fb67fa65342c290e6e84c2112ed0a0a12f58ec3fc0e4b94260089dc13e35fc24dd28ed5806389a96d33438668383d1481edae8c32a4b9a405a04
+EBUILD ocaml-4.11.2-r1.ebuild 2299 BLAKE2B 3871154a5ca7aacf906e54c153ba10dfad01f9b3d82525594ee1f63097c3096c56a9a8c46ab0ede781960fb0f5c1d8bb21fc8f2a59d4729447e4a105fd278fc1 SHA512 e0c621b850cbabe115968b369ff371daf3c38e1a9735cfaa7c85debd2f41f1cce0d0ab66acaadb72988f1749f362f2ba5edd91dbc3b4c1ad19204e9ba1015fc4
+EBUILD ocaml-4.12.0-r1.ebuild 2311 BLAKE2B 9d5515be76bf907b8f4014c870afc9cf77c44f06f8d89bd308327b407a37d56d7d04b27ddc6e8387b122f4968b357218633078c42770321b95c17acc9a3f9873 SHA512 9b704e8d1ae4444c3a5920cecaee9c6629055e691ecb26fe780872757dacb3d71b9d8a1386e96ae71fce9fc212d9d2256212d03634ad458222e1747cc8829283
MISC metadata.xml 775 BLAKE2B dfddcb1e262074326ede7fb648bb524404e86a302270b6bc9e502124689077cd54ebafbfca277d516d2763cd18580a09f749f45ca215c34c26c7ae1c56c2e841 SHA512 3551489dac19dddcf6490c74df4c8e2aa370565b207bcdee28a8160caab7394d8d770ed4408ce8db3d3c224b61439f29c4eae84180adf01a468e0ef515980818
diff --git a/dev-lang/ocaml/files/ocaml-4.05.0-CVE-2018-9838.patch b/dev-lang/ocaml/files/ocaml-4.05.0-CVE-2018-9838.patch
new file mode 100644
index 000000000000..cfe3ff636c25
--- /dev/null
+++ b/dev-lang/ocaml/files/ocaml-4.05.0-CVE-2018-9838.patch
@@ -0,0 +1,70 @@
+https://bugs.gentoo.org/755257
+
+Needed for both fixing the CVE + compatibility with Debian for e.g.
+Unison.
+
+From c6ca3afc78b75d7748e4e09e56c6b020418be06e Mon Sep 17 00:00:00 2001
+From: Stephane Glondu <steph@glondu.net>
+Date: Fri, 25 Jan 2019 14:34:23 +0100
+Subject: [PATCH] Fix integer overflows when unmarshaling a bigarray
+
+Malicious or corrupted marshaled data can result in a bigarray
+with impossibly large dimensions that cause overflow when computing
+the in-memory size of the bigarray. Disaster ensues when the data
+is read in a too small memory area. This commit checks for overflows
+when computing the in-memory size of the bigarray.
+
+This patch is based on one by Xavier Leroy and has been modified to
+use caml_ba_multov instead of caml_umul_overflow which is unavailable
+in OCaml 4.05.0.
+
+The original commit hash is 85162eee9d4072fa9c2f498f03cd94e357033eec.
+
+Origin: https://github.com/ocaml/ocaml/pull/1718
+Bug: https://github.com/ocaml/ocaml/issues/7765
+Bug-Debian: https://bugs.debian.org/895472
+Bug-CVE: CVE-2018-9838
+--- a/otherlibs/bigarray/bigarray_stubs.c
++++ b/otherlibs/bigarray/bigarray_stubs.c
+@@ -966,22 +966,34 @@ static void caml_ba_deserialize_longarray(void * dest, intnat num_elts)
+ uintnat caml_ba_deserialize(void * dst)
+ {
+ struct caml_ba_array * b = dst;
+- int i, elt_size;
+- uintnat num_elts;
++ int i;
++ uintnat num_elts, size;
++ int overflow;
+
+ /* Read back header information */
+ b->num_dims = caml_deserialize_uint_4();
++ if (b->num_dims < 0 || b->num_dims > CAML_BA_MAX_NUM_DIMS)
++ caml_deserialize_error("input_value: wrong number of bigarray dimensions");
+ b->flags = caml_deserialize_uint_4() | CAML_BA_MANAGED;
+ b->proxy = NULL;
+ for (i = 0; i < b->num_dims; i++) b->dim[i] = caml_deserialize_uint_4();
+- /* Compute total number of elements */
+- num_elts = caml_ba_num_elts(b);
+- /* Determine element size in bytes */
++ /* Compute total number of elements. Watch out for overflows (MPR#7765). */
++ num_elts = 1;
++ for (i = 0; i < b->num_dims; i++) {
++ overflow = 0;
++ num_elts = caml_ba_multov(num_elts, b->dim[i], &overflow);
++ if (overflow)
++ caml_deserialize_error("input_value: size overflow for bigarray");
++ }
++ /* Determine array size in bytes. Watch out for overflows (MPR#7765). */
+ if ((b->flags & CAML_BA_KIND_MASK) > CAML_BA_CHAR)
+ caml_deserialize_error("input_value: bad bigarray kind");
+- elt_size = caml_ba_element_size[b->flags & CAML_BA_KIND_MASK];
++ overflow = 0;
++ size = caml_ba_multov(num_elts, caml_ba_element_size[b->flags & CAML_BA_KIND_MASK], &overflow);
++ if (overflow)
++ caml_deserialize_error("input_value: size overflow for bigarray");
+ /* Allocate room for data */
+- b->data = malloc(elt_size * num_elts);
++ b->data = malloc(size);
+ if (b->data == NULL)
+ caml_deserialize_error("input_value: out of memory for bigarray");
+ /* Read data */
diff --git a/dev-lang/ocaml/ocaml-4.05.0-r3.ebuild b/dev-lang/ocaml/ocaml-4.05.0-r5.ebuild
index 69094b6cb10a..36adb282101c 100644
--- a/dev-lang/ocaml/ocaml-4.05.0-r3.ebuild
+++ b/dev-lang/ocaml/ocaml-4.05.0-r5.ebuild
@@ -15,7 +15,7 @@ SRC_URI="https://github.com/ocaml/ocaml/archive/${PV/_/+}.tar.gz -> ${MY_P}.tar.
LICENSE="QPL-1.0 LGPL-2"
# Everytime ocaml is updated to a new version, everything ocaml must be rebuilt,
# so here we go with the subslot.
-SLOT="0/${PV}"
+SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
IUSE="emacs flambda latex ncurses +ocamlopt spacetime X xemacs"
diff --git a/dev-lang/ocaml/ocaml-4.05.0-r6.ebuild b/dev-lang/ocaml/ocaml-4.05.0-r6.ebuild
new file mode 100644
index 000000000000..ae3120cad728
--- /dev/null
+++ b/dev-lang/ocaml/ocaml-4.05.0-r6.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic multilib toolchain-funcs
+
+PATCHLEVEL="9"
+MY_P="${P/_/-}"
+DESCRIPTION="Type-inferring functional programming language descended from the ML family"
+HOMEPAGE="https://ocaml.org"
+SRC_URI="https://github.com/ocaml/ocaml/archive/${PV/_/+}.tar.gz -> ${MY_P}.tar.gz
+ mirror://gentoo/${PN}-patches-${PATCHLEVEL}.tar.bz2"
+
+LICENSE="QPL-1.0 LGPL-2"
+# Everytime ocaml is updated to a new version, everything ocaml must be rebuilt,
+# so here we go with the subslot.
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+IUSE="emacs flambda latex ncurses +ocamlopt spacetime X xemacs"
+
+RDEPEND="
+ sys-libs/binutils-libs:=
+ ncurses? ( sys-libs/ncurses:0= )
+ spacetime? ( sys-libs/libunwind:= )
+ X? ( x11-libs/libX11 )
+ !dev-ml/num"
+BDEPEND="${RDEPEND}
+ virtual/pkgconfig"
+PDEPEND="emacs? ( app-emacs/ocaml-mode )
+ xemacs? ( app-xemacs/ocaml )"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.04.2-tinfo.patch #459512
+ "${FILESDIR}"/${P}-gcc10.patch
+ "${FILESDIR}"/${P}-CVE-2018-9838.patch
+)
+
+pkg_setup() {
+ # dev-lang/ocaml creates its own objects but calls gcc for linking, which will
+ # results in relocations if gcc wants to create a PIE executable
+ if gcc-specs-pie ; then
+ append-ldflags -nopie
+ ewarn "Ocaml generates its own native asm, you're using a PIE compiler"
+ ewarn "We have appended -nopie to ocaml build options"
+ ewarn "because linking an executable with pie while the objects are not pic will not work"
+ fi
+}
+
+src_prepare() {
+ EPATCH_SUFFIX="patch" eapply "${WORKDIR}/patches"
+ default
+}
+
+src_configure() {
+ export LC_ALL=C
+ local myconf=""
+
+ # Causes build failures because it builds some programs with -pg,
+ # bug #270920
+ filter-flags -fomit-frame-pointer
+ # Bug #285993
+ filter-mfpmath sse
+
+ # -ggdb3 & co makes it behave weirdly, breaks sexplib
+ replace-flags -ggdb* -ggdb
+
+ # OCaml generates textrels on 32-bit arches
+ # We can't do anything about it, but disabling it means that tests
+ # for OCaml-based packages won't fail on unexpected output
+ # bug #773226
+ if use arm || use ppc || use x86 ; then
+ append-ldflags "-Wl,-z,notext"
+ fi
+
+ # It doesn't compile on alpha without this LDFLAGS
+ use alpha && append-ldflags "-Wl,--no-relax"
+
+ use ncurses || myconf="${myconf} -no-curses"
+ use X || myconf="${myconf} -no-graph"
+ use flambda && myconf="${myconf} -flambda"
+ use spacetime && myconf="${myconf} -spacetime"
+
+ # ocaml uses a home-brewn configure script, preventing it to use econf.
+ RAW_LDFLAGS="$(raw-ldflags)" ./configure \
+ --prefix "${EPREFIX}"/usr \
+ --bindir "${EPREFIX}"/usr/bin \
+ --target-bindir "${EPREFIX}"/usr/bin \
+ --libdir "${EPREFIX}"/usr/$(get_libdir)/ocaml \
+ --mandir "${EPREFIX}"/usr/share/man \
+ -target "${CHOST}" \
+ -host "${CBUILD}" \
+ -cc "$(tc-getCC)" \
+ -as "$(tc-getAS)" \
+ -aspp "$(tc-getCC) -c" \
+ -partialld "$(tc-getLD) -r" \
+ --with-pthread ${myconf} || die "configure failed!"
+
+ # http://caml.inria.fr/mantis/view.php?id=4698
+ export CCLINKFLAGS="${LDFLAGS}"
+}
+
+src_compile() {
+ emake world
+
+ # Native code generation can be disabled now
+ if use ocamlopt ; then
+ # bug #279968
+ emake opt
+ emake -j1 opt.opt
+ fi
+}
+
+src_test() {
+ if use ocamlopt ; then
+ emake -j1 tests
+ else
+ ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests."
+ fi
+}
+
+src_install() {
+ emake BINDIR="${ED}"/usr/bin \
+ LIBDIR="${ED}"/usr/$(get_libdir)/ocaml \
+ MANDIR="${ED}"/usr/share/man \
+ install
+
+ # Symlink the headers to the right place
+ dodir /usr/include
+ # Create symlink for header files
+ dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
+ dodoc Changes README.adoc
+ # Create envd entry for latex input files
+ if use latex ; then
+ echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}/99ocamldoc"
+ doenvd "${T}/99ocamldoc"
+ fi
+ # Install ocaml-rebuild portage set
+ insinto /usr/share/portage/config/sets
+ doins "${FILESDIR}/ocaml.conf"
+}
diff --git a/dev-lang/ocaml/ocaml-4.09.0.ebuild b/dev-lang/ocaml/ocaml-4.09.0-r1.ebuild
index f74988668b87..14dc7a908b0e 100644
--- a/dev-lang/ocaml/ocaml-4.09.0.ebuild
+++ b/dev-lang/ocaml/ocaml-4.09.0-r1.ebuild
@@ -10,7 +10,7 @@ SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
LICENSE="LGPL-2.1"
-SLOT="0/${PV}"
+SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
IUSE="emacs flambda latex +ocamlopt spacetime xemacs"
diff --git a/dev-lang/ocaml/ocaml-4.10.2.ebuild b/dev-lang/ocaml/ocaml-4.10.2-r1.ebuild
index 208d8612d6a9..e1ca18aa9617 100644
--- a/dev-lang/ocaml/ocaml-4.10.2.ebuild
+++ b/dev-lang/ocaml/ocaml-4.10.2-r1.ebuild
@@ -10,7 +10,7 @@ SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
LICENSE="LGPL-2.1"
-SLOT="0/${PV}"
+SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
IUSE="emacs flambda latex +ocamlopt spacetime xemacs"
diff --git a/dev-lang/ocaml/ocaml-4.11.2.ebuild b/dev-lang/ocaml/ocaml-4.11.2-r1.ebuild
index e3298bdfc899..f1ad43dbf997 100644
--- a/dev-lang/ocaml/ocaml-4.11.2.ebuild
+++ b/dev-lang/ocaml/ocaml-4.11.2-r1.ebuild
@@ -10,7 +10,7 @@ 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}"
+SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
IUSE="emacs flambda latex +ocamlopt spacetime xemacs"
diff --git a/dev-lang/ocaml/ocaml-4.12.0-r1.ebuild b/dev-lang/ocaml/ocaml-4.12.0-r1.ebuild
new file mode 100644
index 000000000000..137a6160e458
--- /dev/null
+++ b/dev-lang/ocaml/ocaml-4.12.0-r1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic
+
+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="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+IUSE="emacs flambda latex +ocamlopt xemacs"
+
+RDEPEND="sys-libs/binutils-libs:="
+BDEPEND="${RDEPEND}
+ virtual/pkgconfig"
+PDEPEND="emacs? ( app-emacs/ocaml-mode )
+ xemacs? ( app-xemacs/ocaml )"
+
+src_prepare() {
+ default
+
+ # OCaml generates textrels on 32-bit arches
+ # We can't do anything about it, but disabling it means that tests
+ # for OCaml-based packages won't fail on unexpected output
+ # bug #773226
+ #if use arm || use ppc || use x86 ; then
+ append-ldflags "-Wl,-z,notext"
+ #fi
+
+ # Upstream build ignores LDFLAGS in several places.
+ sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \
+ -e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \
+ -e 's/\(^OC_LDFLAGS=.*\)/\1 $(LDFLAGS)/' \
+ Makefile.config.in || die "LDFLAGS fix failed"
+}
+
+src_configure() {
+ local opt=(
+ --bindir="${EPREFIX}/usr/bin"
+ --libdir="${EPREFIX}/usr/$(get_libdir)/ocaml"
+ --mandir="${EPREFIX}/usr/share/man"
+ --prefix="${EPREFIX}/usr"
+ $(use_enable flambda)
+ )
+
+ econf "${opt[@]}"
+}
+
+src_compile() {
+ env -u P emake world
+
+ if use ocamlopt ; then
+ env -u P emake opt
+ env -u P emake opt.opt
+ fi
+}
+
+src_test() {
+ emake -j
+
+ # OCaml tests only work when run sequentially
+ if use ocamlopt ; then
+ emake -j1 ocamltest.opt
+ else
+ emake -j1 ocamltest
+ #ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests."
+ fi
+
+ emake -j1 tests
+}
+
+src_install() {
+ default
+
+ dodir /usr/include
+ # Create symlink for header files
+ dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
+ dodoc Changes README.adoc
+
+ # Create envd entry for latex input files
+ if use latex ; then
+ echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}/99ocamldoc" || die
+ doenvd "${T}/99ocamldoc"
+ fi
+
+ # Install ocaml-rebuild portage set
+ insinto /usr/share/portage/config/sets
+ doins "${FILESDIR}/ocaml.conf"
+}
diff --git a/dev-lang/orc/Manifest b/dev-lang/orc/Manifest
index bb9a30e86a2e..7f9a4c435bf0 100644
--- a/dev-lang/orc/Manifest
+++ b/dev-lang/orc/Manifest
@@ -1,3 +1,3 @@
DIST orc-0.4.31.tar.xz 177768 BLAKE2B f06fd6be70063ebc82b45c1801a53aab66b5fc8a85c33991602488ec8ed29f2271df20c3780655953cabe33e865530b1218aafa0592261bcc5dccc4a4b3945e7 SHA512 4e97597e70982dbfc239d1ef9a8913b0155e5aaac15d91162d7f73a1095bd944e27fbe6d6194b9f74af07b985a44b1d9dddbe917425e1ad9e8da17ce86495696
-EBUILD orc-0.4.31.ebuild 1301 BLAKE2B 6efe99d869103769d769a8f42e10c7c599f35ce6e0b96575114b37c6abf6449f5ae5377c9c990de6be6ba77b7a3729ac283ebe297df56490a51c4d3fee0a00ac SHA512 e90eede09108e602d42741be742aec31750dfcc0c22ea5c72884952125b054408d261cde40374752f6dd7af6442f611acd52b3347c8315bb15c083160b9c5f07
+EBUILD orc-0.4.31.ebuild 1169 BLAKE2B 9a23a63e0c9d62cd527d512800ff1d2803ca73ed848a6a6513fe916a68e582a0989819cf9a30a467241583729961909efcc59e9ad7b4609110ffa09003eb6bda SHA512 15922e2c975d7b44e0c4058e085825505bae7f5fdda456858d18eb43fb43453055ea7435b50ddc6204b21985364c72758cb77573164d13b2a6f3509aedc8a006
MISC metadata.xml 264 BLAKE2B 43fa83d6a1e0013e0919fe70c75a427860055ab973a521c1c1a8332698aa849f416840fce65b591ac182aff64d6c9f8e8de5a876ddfa7c6f6df9d79fe1c9510c SHA512 734d8601a88b31769f8ae13d8b607bfe07c7478b51e19eec29d1b37558c3cd859703443ba189998bf6fc2e6cb7fd618523d3225806c35bfc0ac1d400017b18bd
diff --git a/dev-lang/orc/orc-0.4.31.ebuild b/dev-lang/orc/orc-0.4.31.ebuild
index f6afe427d1ae..3546de6e720c 100644
--- a/dev-lang/orc/orc-0.4.31.ebuild
+++ b/dev-lang/orc/orc-0.4.31.ebuild
@@ -3,7 +3,7 @@
EAPI=7
-inherit meson multilib-minimal
+inherit meson-multilib
DESCRIPTION="The Oil Runtime Compiler, a just-in-time compiler for array operations"
HOMEPAGE="https://gstreamer.freedesktop.org/"
@@ -32,21 +32,9 @@ multilib_src_configure() {
-Dorc-test=enabled # FIXME: always installs static library, bug 645232
-Dbenchmarks=disabled
-Dexamples=disabled
- $(meson_feature gtk-doc gtk_doc)
+ $(meson_native_use_feature gtk-doc gtk_doc)
$(meson_feature test tests)
-Dtools=enabled # requires orc-test
)
meson_src_configure
}
-
-multilib_src_compile() {
- meson_src_compile
-}
-
-multilib_src_test() {
- meson_src_test
-}
-
-multilib_src_install() {
- meson_src_install
-}
diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest
index 304e4aef3cde..38bfc7860f76 100644
--- a/dev-lang/php/Manifest
+++ b/dev-lang/php/Manifest
@@ -6,8 +6,12 @@ AUX php-iodbc-header-location.patch 481 BLAKE2B 9ea6a5d529dc7a8c78eeee800900372b
AUX php80-firebird-warnings.patch 1949 BLAKE2B ab1b693afe26b6529aab8628f9a614478c388ed23603ad1dd4d17b63154d535a3e4c2db04fe27fb22a3d7e1335e368ffd383ed24647ac53ac05170ec3e1beb75 SHA512 d37815ea529167d4959aef056a3a0be6902ee4cda809a48c24299b05ff6477ee82e8ed8dcf49051b8e74ba5c31e3985454591ea751d4550df3d2e3639ec0d616
DIST php-7.3.28.tar.xz 12139380 BLAKE2B 696c573878866e97fcae5fe3e33e83e75bf706d0eec2a66b2532ec54ce730e3f4b3fa6f0659ebf14193b6b2a6292d624bf478706790aab60b13b5cea0a1299fb SHA512 91f4f23fea6e2c5ea1fa5774075e1b1f7cfcc46064ab0d2f03e4f1b9b6c3dd7fd5a59854ed3fe3a8e2962283045f6a1c3273438b4bc0c68b11f41b9338f44274
DIST php-7.4.19.tar.xz 10341424 BLAKE2B b5f549603a2d108d2d4c16dfb15c2088612e040e9e4756cc7c1403c67e152ad3461d84915e4f542b1e558469ae3143721c6d7ec25ef03c3b4a6142fe972bd775 SHA512 2ac51b9920069ebe8ac68a94f8e9aac2b3d44d69668f340aba95f8303632fe1bfc4c3f2ce398cc7e2c2ea48583d8e04dedfc66f7147c1f4470a55417554d0071
+DIST php-7.4.20.tar.xz 10345912 BLAKE2B 4efb53a30caee049aec11269aa64a4f60d3fc9f7abc3c1ee861cfad94b5533833c4d4d1c8aa740db4161d58e58071e9b077488fd970d4e1e53e17367ed751971 SHA512 40261c5a85341fa7c495db86ef3526d1ae2751c6abb05251819c2b7080050715eb44a19c3f8655d101f4308209487ce16dcf94067b71b084c912470796b217f7
DIST php-8.0.6.tar.xz 10764932 BLAKE2B 9ab23dfcefe2c94a88184fbb3e18267c38fdcabeca0e9ba12a616528895f85790b1238fdb6e0578db2183b6eee26f26d9d7b744b7344495ea20a6e58668136d1 SHA512 4915b9b5024ce1fb7bc3ba7c1a00831841bc970ebb68b6b1e6a00cbec4d8dcbbca3ca043882ffd9c4719a988d08275f77f9cee07ff3d45a71402dfc51bd31e04
+DIST php-8.0.7.tar.xz 10769208 BLAKE2B 6c20cf6c49c56112199bfe4a3154269b1bade7035e07341ec9031ac2a7d0202ecdcaa465baf1f08c76ce09e966f3ca6bf8ce32c111fb710b0e971ca366dfbab8 SHA512 54d0355977a69c3c466054e9e277147874eaab192bc384a199eb98582f9fcccebc685b370dabeb65d2de3bad4d2e4b2490c0164d2ce406af76b0e972ea67bbd0
EBUILD php-7.3.28.ebuild 22673 BLAKE2B 6c64c471608b337f4ebd5d07a9cec58a38afdf3ca5b64d094e4e1a37040dc4f95331c1fb7bf8f3a8c5d3cf2b0f6b215b4b342fecb162c69bc29214cb250553bb SHA512 49b0d559c6999719ca732d9a40c9154806092083b7da2e5a11ab33718b638cb774de3a6af81949c408e99ba18a3720c4145022221921f3a7bd84572ac28c98c0
EBUILD php-7.4.19.ebuild 21382 BLAKE2B 27074fae8c5d1b0727acb1ca1672b0300edb30483ec7fcc4b0102982e8ea6a31f4c5f55013243c2de3e3192864ca466cbe1ac589689204ba976eb85cfae7db87 SHA512 afccdc44f0ddd1c5417c8be6655a947508b82c8cabe57a24174fd03eeb951b730136379c2a0f978b10993fa4b0a7ef6eeb95b398298ed4433db86b4e2d2ba872
+EBUILD php-7.4.20.ebuild 21389 BLAKE2B 8f7211b827110a1d3bda530a52eb31611dcf740d5410c50b895dde38b145a79e5e6092ab9534e9aec602d55695217da7dbb24393e374efb9f47cb452d69d971b SHA512 d1503dc8e0eb357f07a645e1a6704507c29b182dd1f2ff615cb8b53cb98f5f70bbaac230047d33dbbb5f85c8f12a4f69b32ff027b0bebe3c2b2c3c96fbbb24d8
EBUILD php-8.0.6.ebuild 21328 BLAKE2B aa18a9946ac756b200a4b1610ec3cfe8eca05a454458dacb00d8d7138d3933ab73c6c7db9c72bc29b28b470df5eef2d7400354d38b5404281ca33a0f96b36461 SHA512 703e031df5c14982d8278ff824cb1d9f79cb4e33ec9c70de2475232f65dc92c0b4d0400bc60f90902a6a8ad1c769d29a690fa08a3eeac1a99b321ae5bd9e9a0c
+EBUILD php-8.0.7.ebuild 21328 BLAKE2B aa18a9946ac756b200a4b1610ec3cfe8eca05a454458dacb00d8d7138d3933ab73c6c7db9c72bc29b28b470df5eef2d7400354d38b5404281ca33a0f96b36461 SHA512 703e031df5c14982d8278ff824cb1d9f79cb4e33ec9c70de2475232f65dc92c0b4d0400bc60f90902a6a8ad1c769d29a690fa08a3eeac1a99b321ae5bd9e9a0c
MISC metadata.xml 3268 BLAKE2B 4abc96d858186ab5bc6f0797fb3f1cf7f5aaa0b07a4652dcc16aa65e197bd73803f6bac717084c0c9a194e7da5b6632523105205011a0d39221aabc16ade8e2e SHA512 1413edb5293cb93ad8f94376f11b9952ca6369b667ae23baed56d9cbaa68cb9cfa5a80da7dd7184ba84f08d5a4054068da1c10daca81d1730e7b6edebba8b29f
diff --git a/dev-lang/php/php-7.4.20.ebuild b/dev-lang/php/php-7.4.20.ebuild
new file mode 100644
index 000000000000..7b09eb440f4f
--- /dev/null
+++ b/dev-lang/php/php-7.4.20.ebuild
@@ -0,0 +1,750 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+WANT_AUTOMAKE="none"
+
+inherit flag-o-matic systemd autotools
+
+MY_PV=${PV/_rc/RC}
+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 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+# 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 argon2 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 +json 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 xmlrpc 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 )
+ 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 )
+ xmlrpc? ( xml iconv )
+ 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.1[apache2?,fpm?]
+ >=dev-libs/libpcre2-10.30[jit?,unicode]
+ fpm? ( acl? ( sys-apps/acl ) )
+ apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
+ argon2? ( app-crypt/argon2:= )
+ berkdb? ( || ( sys-libs/db:5.3
+ sys-libs/db:5.1
+ sys-libs/db:4.8
+ sys-libs/db:4.7
+ sys-libs/db:4.6
+ sys-libs/db:4.5 ) )
+ bzip2? ( app-arch/bzip2:0= )
+ cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
+ coverage? ( dev-util/lcov )
+ curl? ( >=net-misc/curl-7.10.5 )
+ enchant? ( <app-text/enchant-2.0:0 )
+ ffi? ( >=dev-libs/libffi-3.0.11 )
+ firebird? ( dev-db/firebird )
+ gd? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= )
+ gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
+ gmp? ( dev-libs/gmp:0= )
+ iconv? ( virtual/libiconv )
+ imap? ( >=virtual/imap-c-client-2[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:* )
+ 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:= )
+ spell? ( >=app-text/aspell-0.50 )
+ sqlite? ( >=dev-db/sqlite-3.7.6.3 )
+ ssl? ( >=dev-libs/openssl-1.0.1:0= )
+ tidy? ( || ( app-text/tidy-html5 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.7.6 )
+ xpm? ( x11-libs/libXpm )
+ xslt? ( dev-libs/libxslt )
+ zip? ( >=dev-libs/libzip-1.2.0:= )
+ zlib? ( >=sys-libs/zlib-1.2.0.4:0= )
+"
+
+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
+)
+
+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
+}
+
+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}"
+
+ # 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
+ $(use_enable threads maintainer-zts)
+ )
+
+ our_conf+=(
+ $(use_with argon2 password-argon2 "${EPREFIX}/usr")
+ $(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 || use elibc_FreeBSD || echo "${EPREFIX}/usr"))
+ $(use_enable intl)
+ $(use_enable ipv6)
+ $(use_enable json)
+ $(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 xmlrpc)
+ $(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
+ local mysqllib="mysqlnd"
+ local mysqlilib="mysqlnd"
+
+ our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
+
+ 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 "${mysqllib}")
+ $(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${PHP_MV}$(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${PHP_MV}$(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
+
+ 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.0.7.ebuild b/dev-lang/php/php-8.0.7.ebuild
new file mode 100644
index 000000000000..bf9240b404a9
--- /dev/null
+++ b/dev-lang/php/php-8.0.7.ebuild
@@ -0,0 +1,748 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+WANT_AUTOMAKE="none"
+
+inherit flag-o-matic systemd autotools
+
+MY_PV=${PV/_rc/rc}
+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 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+# 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 argon2 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 )
+ 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]
+ fpm? ( acl? ( sys-apps/acl ) )
+ apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] )
+ argon2? ( app-crypt/argon2:= )
+ berkdb? ( || ( sys-libs/db:5.3
+ sys-libs/db:5.1
+ sys-libs/db:4.8
+ sys-libs/db:4.7
+ sys-libs/db:4.6
+ sys-libs/db:4.5 ) )
+ 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? ( >=virtual/jpeg-0-r3:0 media-libs/libpng:0= )
+ gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
+ gmp? ( dev-libs/gmp:0= )
+ iconv? ( virtual/libiconv )
+ imap? ( >=virtual/imap-c-client-2[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:= )
+ spell? ( >=app-text/aspell-0.50 )
+ sqlite? ( >=dev-db/sqlite-3.7.6.3 )
+ ssl? ( >=dev-libs/openssl-1.0.1:0= )
+ tidy? ( || ( app-text/tidy-html5 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= )
+"
+
+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}/php80-firebird-warnings.patch"
+)
+
+php_install_ini() {
+ local phpsapi="${1}"
+
+ # work out where we are installing the ini file
+ php_set_ini_dir "${phpsapi}"
+
+ # Always install the production INI file, bug 611214.
+ local phpinisrc="php.ini-production-${phpsapi}"
+ cp php.ini-production "${phpinisrc}" || die
+
+ # default to /tmp for save_path, bug #282768
+ sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
+
+ # Set the extension dir
+ sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
+ -i "${phpinisrc}" || die
+
+ # Set the include path to point to where we want to find PEAR packages
+ sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
+
+ insinto "${PHP_INI_DIR#${EPREFIX}}"
+ newins "${phpinisrc}" php.ini
+
+ elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
+ elog
+
+ dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
+ dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
+
+ if use opcache; then
+ elog "Adding opcache to $PHP_EXT_INI_DIR"
+ echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
+ "${D}/${PHP_EXT_INI_DIR}"/opcache.ini
+ dosym "../ext/opcache.ini" \
+ "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
+ fi
+
+ # SAPI-specific handling
+ if [[ "${sapi}" == "fpm" ]] ; then
+ einfo "Installing FPM config files php-fpm.conf and www.conf"
+ insinto "${PHP_INI_DIR#${EPREFIX}}"
+ doins sapi/fpm/php-fpm.conf
+ insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
+ doins sapi/fpm/www.conf
+ fi
+
+ dodoc php.ini-{development,production}
+}
+
+php_set_ini_dir() {
+ PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
+ PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
+ PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
+}
+
+src_prepare() {
+ default
+
+ # In php-7.x, the FPM pool configuration files have been split off
+ # of the main config. By default the pool config files go in
+ # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
+ # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
+ # we'll install the pool configuration file "www.conf" there.
+ php_set_ini_dir fpm
+ sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
+ sapi/fpm/php-fpm.conf.in \
+ || die 'failed to move the include directory in php-fpm.conf'
+
+ # Emulate buildconf to support cross-compilation
+ rm -fr aclocal.m4 autom4te.cache config.cache \
+ configure main/php_config.h.in || die
+ eautoconf --force
+ eautoheader
+}
+
+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}"
+
+ # 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
+ $(use_enable threads zts)
+ )
+
+ our_conf+=(
+ $(use_with argon2 password-argon2 "${EPREFIX}/usr")
+ $(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 || use elibc_FreeBSD || 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
+ local mysqllib="mysqlnd"
+ local mysqlilib="mysqlnd"
+
+ our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
+
+ 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 "${mysqllib}")
+ $(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
+
+ 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/python-exec/Manifest b/dev-lang/python-exec/Manifest
index b8182e999771..530a2aa6b86d 100644
--- a/dev-lang/python-exec/Manifest
+++ b/dev-lang/python-exec/Manifest
@@ -1,3 +1,7 @@
DIST python-exec-2.4.6.tar.bz2 87634 BLAKE2B 7b6de8ad0e0603fafd3284e6e3c5247ad83f145ab4db6728914318ae8e6f5aaa3c0247f4e01238fca11519ef72fb1b11436aea7e2b8c988b8717b3f6a2a43c37 SHA512 e05eaf01b83de196a10933636ab6b1a5489a421592df49b8b58eabd0e732de970f902744cd3a06b5ab530a6d69fe6dfa8f270fbb09b9fe3df4ae04d516828050
+DIST python-exec-2.4.7.tar.bz2 88204 BLAKE2B c370d5f33063bf0dd02d1b5ddad27b320652664ed3bc89cf2d70b94292f3dcd8c4e3bb6bb43ce8d2514a8e0a5a3e95295ff8d0f95371bda136cd51312da747e8 SHA512 6e061fc1ae84e21effb24d35195a7c61430e0e50dc0b0bfbab65f741dde45a92688fd9ac7a0868f7b08ba603a609fb3f03181238f63fdd383b4d604af8406d14
+DIST python-exec-2.4.8.tar.bz2 82671 BLAKE2B ac85f3dd6da3d1c535ad56a25edbbcb1d0e75b91e3567b80f27fd01d32a199a713909a8552dffaacbe96c43bca491f31c3f0c7f1a618fb9144814365686715cf SHA512 d6dabab217dc2f1817e2f4d159102a9467f51b26b91f4ae7fb7e4930d30334f74bd8a5f37cc60d58c6e1e61e89a3b4d2e1bd17413493ba86f38fa71250cf5ac1
EBUILD python-exec-2.4.6-r4.ebuild 1706 BLAKE2B 5a41250c5ea33394a21cf523b48526cc7507441284007e5add7c818246af8637f186878d37bbc826fba987cd07ae1f12701badb478556ebde11d452d28cb88b1 SHA512 3f5935a169181f10b2667b91e35fc42258f9f555ac7e73b5ff08714678f403097901ccfe31a2f1df4f9d37eebf17a3dd3d9961c7a6baf5a0b4739063d21676b0
+EBUILD python-exec-2.4.7.ebuild 1714 BLAKE2B 271d84d7e17f608e30503261c2cb2daad2381a14136ac8465d127f750936d8c33f2e364c2649f47926ebd59230a987c316b2edf1415c15bc6ddbd64703d6942d SHA512 fe43e2d7ba2757c3e1a5e5a7815ba461cd0ea0fd3ee97cc44cb94c54fb80f263245c0545b28647850c26139861f4c00c06e2638171f9a368efcd3d2e6cecdc9a
+EBUILD python-exec-2.4.8.ebuild 2002 BLAKE2B 6f7ddc6314e51d24667b4a8a5926cdb96bb864a98cb55324ca64ace84593aef945beb497a6127a16acb2de52e35a5b80db6146c0ed520460b1f2c168a9af86ee SHA512 9694d4eab6a5a12c7be23cac48c925d453d5f2c13bcc4573adf86b8bdb8a667a984be12182081ca8f0a12fa774fff5bc0f146b2c5bd6ffb7171ae23c81005999
MISC metadata.xml 791 BLAKE2B 5be47111a2bd77ad817b6c4fe9822b3ab0e859ccc13bbccf7439549e0b2f2ff4734896942aa4324f5c35fe2097b8454828df0b7a1e2c855824fcebe60925431d SHA512 a6782b79df1d7b130cb93cd77fa3292bcbc23fd0b35158ce8231904d1593c9e5659a55d00d158c88bb1326b5c375e7aa8591d9b74e9e12f5e1192a42c037a9ad
diff --git a/dev-lang/python-exec/python-exec-2.4.7.ebuild b/dev-lang/python-exec/python-exec-2.4.7.ebuild
new file mode 100644
index 000000000000..414d52b94501
--- /dev/null
+++ b/dev-lang/python-exec/python-exec-2.4.7.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit python-utils-r1
+
+DESCRIPTION="Python script wrapper"
+HOMEPAGE="https://github.com/mgorny/python-exec/"
+SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+# Internal Python project hack. Do not copy it. Ever.
+IUSE="${_PYTHON_ALL_IMPLS[@]/#/python_targets_} +native-symlinks"
+
+RDEPEND="
+ dev-lang/python-exec-conf
+ !<=dev-lang/python-2.7.18-r3:2.7"
+
+src_configure() {
+ local pyimpls=() i EPYTHON
+ for i in "${_PYTHON_ALL_IMPLS[@]}"; do
+ if use "python_targets_${i}"; then
+ _python_export "${i}" EPYTHON
+ pyimpls+=( "${EPYTHON}" )
+ fi
+ done
+
+ local myconf=(
+ --with-fallback-path="${EPREFIX}/usr/local/sbin:${EPREFIX}/usr/local/bin:${EPREFIX}/usr/sbin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/bin"
+ --with-python-impls="${pyimpls[*]}"
+ )
+
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ if use native-symlinks; then
+ local programs=( python python3 )
+ local scripts=( python-config python3-config 2to3 idle pydoc pyvenv )
+
+ local f
+ for f in "${programs[@]}"; do
+ # symlink the C wrapper for python to avoid shebang recursion
+ # bug #568974
+ dosym python-exec2c /usr/bin/"${f}"
+ done
+ for f in "${scripts[@]}"; do
+ # those are python scripts (except for new python-configs)
+ # so symlink them via the python wrapper
+ dosym ../lib/python-exec/python-exec2 /usr/bin/"${f}"
+ done
+ fi
+}
diff --git a/dev-lang/python-exec/python-exec-2.4.8.ebuild b/dev-lang/python-exec/python-exec-2.4.8.ebuild
new file mode 100644
index 000000000000..ba9bc52a3a43
--- /dev/null
+++ b/dev-lang/python-exec/python-exec-2.4.8.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8..10} pypy3 )
+inherit python-any-r1
+
+DESCRIPTION="Python script wrapper"
+HOMEPAGE="https://github.com/mgorny/python-exec/"
+SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+# Internal Python project hack. Do not copy it. Ever.
+IUSE="${_PYTHON_ALL_IMPLS[@]/#/python_targets_} +native-symlinks test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-lang/python-exec-conf
+ !<=dev-lang/python-2.7.18-r3:2.7"
+BDEPEND="
+ test? (
+ $(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]')
+ )"
+
+python_check_deps() {
+ has_version -b "dev-python/pytest[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ local pyimpls=() i EPYTHON
+ for i in "${_PYTHON_ALL_IMPLS[@]}"; do
+ if use "python_targets_${i}"; then
+ _python_export "${i}" EPYTHON
+ pyimpls+=( "${EPYTHON}" )
+ fi
+ done
+
+ local myconf=(
+ --with-fallback-path="${EPREFIX}/usr/local/sbin:${EPREFIX}/usr/local/bin:${EPREFIX}/usr/sbin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/bin"
+ --with-python-impls="${pyimpls[*]}"
+ )
+
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+
+ if use native-symlinks; then
+ local programs=( python python3 )
+ local scripts=( python-config python3-config 2to3 idle pydoc pyvenv )
+
+ local f
+ for f in "${programs[@]}"; do
+ # symlink the C wrapper for python to avoid shebang recursion
+ # bug #568974
+ dosym python-exec2c /usr/bin/"${f}"
+ done
+ for f in "${scripts[@]}"; do
+ # those are python scripts (except for new python-configs)
+ # so symlink them via the python wrapper
+ dosym ../lib/python-exec/python-exec2 /usr/bin/"${f}"
+ done
+ fi
+}
diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest
index 0b2053085b1e..1d6891696b1f 100644
--- a/dev-lang/python/Manifest
+++ b/dev-lang/python/Manifest
@@ -24,26 +24,34 @@ DIST python-gentoo-patches-3.10.0b1.tar.xz 8116 BLAKE2B aba4856d2463e57187680780
DIST python-gentoo-patches-3.10.0b2.tar.xz 8124 BLAKE2B 6b707ef911c0573e6e87792b4ba1d37e5620723c7b22759c78ac20d88414390a7317546c41d867cd9decb6247c004a9df8eb25ab0999db9c7b431b03b64609e9 SHA512 9a95a1f8a6e4461107e9580e6017956ade47be90fbcd94cbb2eb83a871702308058a402c1eafc8e0d54c2a1910b9030edd9f71b051e846b1219e9f7bd11274b6
DIST python-gentoo-patches-3.6.13_p3.tar.xz 17640 BLAKE2B 255e96f61ad8adb7fdf1cc9f11ca99c8368601dfe9bab4c96adf1e77472dfdf365a6ce197ecc72b574849e2a6235063d63558711049e9e7407862871dc0f2f20 SHA512 7b9a39cd65129c495c513e1b8c259a88194b8877b891cedaa5289bedcc44dbcb5e63e3b9922ef085321e7f4db73b5a5090d30725b456491a98d7ef40b85601eb
DIST python-gentoo-patches-3.6.13_p4.tar.xz 17896 BLAKE2B 768ed3860766b212d21718d2f83fe2852dd297aaeaa2d76d93357012513b2aa66e8ff8fc8edf7375ae10ecf0864560e7b4df168f916cba06c67e329612d404f8 SHA512 7ec640280244c7fe8e5c5b3e8c7fd396ec37b920fe1a77d99e85bef20bc335cfc0bf818c58b8f203c15ce343f50d4b8c7ab7591ecfd21380c9cb15d87ed81ca4
+DIST python-gentoo-patches-3.6.13_p5.tar.xz 21940 BLAKE2B f6753f2c4383fbf0de0433040dae812f35bf550c60ac4a042c62afcff158619ebdc47d013dfa62d9b3dd446e8401ad50aaaeb212fb048a884a1c436b73b7afe2 SHA512 260d6abb2c24726fcddbe3ae828e96e315f90b6d486c11868066a25635968214a8c25a89737a9737c32ca110892a28f6b12badbeceb5e4d8d4a2a996b3ce7352
DIST python-gentoo-patches-3.7.10_p3.tar.xz 16804 BLAKE2B 1db238e4b928332d459b5f3c36ecb7f3bc3d3b754fd82e4434c91843ef7574306aef044df9a2644749a17b14ce9fefcd3c3dd44cafaa4ace0b7dc62fb66e73c8 SHA512 61a262a05d1f8e9b08875285db989160362eec66123a15345dd16b8c1f1161aeed31b20df8f69d27ae71902ae2e678328b82e511881d9a5560932619234bbe7d
DIST python-gentoo-patches-3.7.10_p4.tar.xz 17076 BLAKE2B 628d82f5fc24ee68b4d529ab6d2fcaf7361d55a99dccd699a2fd027e86a731e641ff1573c7639d3d513b2030f8e8629adab84c13a9dd1ba5e2a84bdb16e92c44 SHA512 856ff2e3a73d56888bc1a3b2a28e2ca284a2a40ac3df4d060616fee47e95052b535e697d1d77c58ed850da105c7accfe3093a41492e63f6642349f7a6c80a3ea
+DIST python-gentoo-patches-3.7.10_p6.tar.xz 23868 BLAKE2B 3b3786030a461d06a96dbe0987d05c35215bb5e7b0b95e1337a05a311ad6f3c6db68cc7082128c56eea3eff4b98f74d213dde1f48517e07791815b73dcdcd5b8 SHA512 b817a9bc1469675c14555ce50bb004e8c1426465997a72a94859ab10df7c2a036b33b332c9e6b9f49df1addd899a37afd28fe60bf6ce90b4b21f4a28a27aca25
DIST python-gentoo-patches-3.8.10.tar.xz 15180 BLAKE2B 1f8c57c6ed8d49c5ff42ecaaf19f470567db7fc68ed95eb44a89e9e85a542c085708207f02a1e50ebd7e6fc5e876e232ccd47f49e7653d338ec0520b7dac1a3d SHA512 65e3ec0a0fd49c0c6e96eb07c98b93ce5168e430bbfcd1e62185f6df6bd42fb1a5b5752cbe8bde93101510c0cfd37e604dde40549703b1d1c0e37d24cc327472
DIST python-gentoo-patches-3.8.10_p1.tar.xz 15504 BLAKE2B 63bd3e4928853a80a57ff922c42c434990b38a5c1dc639a277b8dcd01dabf1e0ff745750859b2ee47d30f84afd2bece81e4ba72b89a9ec690300de42e2a5f590 SHA512 955f7647bb05572a1f77cc8a8c35b7690ae914b9b22d30da553502ccc018b4134a7b647dd088b8b75c46a6971bf64dd750e47ceb1b3b219dd58260bf7b67860f
+DIST python-gentoo-patches-3.8.10_p2.tar.xz 20288 BLAKE2B 4d9db5c8d5c27673d5a026149e5678c2b4072d6d0326ae015bf4fd5b5065beeff0cd6ee0a061f79ab3258d3d156d555a38cbdca2e5e05b4405038847dcc97c8e SHA512 165a4e3b537538e792a98141a8e4af6b5cde369e6322155731ecb1b55d0e609f06208d88d68dbb1fbe59a5127ae7ac49d76d8fb6505ccf835931b2a802cd85de
DIST python-gentoo-patches-3.8.9_p2.tar.xz 16600 BLAKE2B 895eebdfabfe9cc4a30d87255112033b506511a8def7cecb03e37b0bde350f1c4b53f06a7e8ead53218c29e2cf4866f2ddfc9d30a07e9f5c67e4c7c271c18cba SHA512 5751c4bcdd1f637f9678d3fa3455c701b2dec051e12d5a1fa6468d7745c1387fb0485672e53dc619b4244435897f21702699c64b63ad9a0422ed91edd7fb2491
DIST python-gentoo-patches-3.9.4_p1.tar.xz 14472 BLAKE2B c8bd49c2eb77eb00377e6c6e63a2f6b1108a2c8d4eb45cc943ad2d0a2b4457e00002f90d2597032716af5268f33d24902d4634cf8e98778c1d15bf8dda5d7215 SHA512 9a12c1935be31b1663e4ab6c1f7aca51ba62ef4033600885678ce436ecab688e2df82742125b4885b1cb8da9c68140c5ca4ee1684360ac87d82c6491bce5d0a0
DIST python-gentoo-patches-3.9.5.tar.xz 8820 BLAKE2B 177234776f00c3efa6b76fefc1ef0001225ded1dd8ba916e3dc8498a7e845467bf387ba8a4f82da713a51bff627420a084f6627218863f70e1273cce58ca7252 SHA512 37b7e25a1703184556f12202da9cba1a8e2fb1c059d75195ef2997f55948229f164642a580e33c59f5877fe36d4c62f1735f95df318b36d92c528eb98f42e55f
DIST python-gentoo-patches-3.9.5_p1.tar.xz 9124 BLAKE2B ab2f51c2d10c679022b563efa8b2494499d8d69b7617ec5229c3af546b1a9589e8aa064e9c025e19f658a316fba4134086ac8f357de97042288ee7b8f34ba9c7 SHA512 16da4a4736acd0ceb263766d14781a034a374372c7ab603a966fa364350b28e8c168f2e38c276d8e03cbdc2f3f9dde691fe959ca3db20533b036cc664a3cefe1
-EBUILD python-2.7.18_p10.ebuild 10287 BLAKE2B a39e37ae85598772b3d132e5e63688e2001fb5493ff33a029124b3fee24e2cc09758829d7217820cb629af08e79046357ed0aa893bbb61beda25cca03cb2f3b0 SHA512 9aeb144460c2b25b496ffe6f92807be6063b8c8dd60d4f7d27487abd356f9ea2e1469e38690ef760486db8082505ce3ae469ac2645a0a53c2bf6f02141426272
-EBUILD python-2.7.18_p9.ebuild 10279 BLAKE2B a9cd26c7882ee1be288b98c99cb11b6e34d742449bbefefa0e05f2a6b2d3dff8cf60130272373dccdf894734a77eafdb035c2bfe0cabfff7693d198741cd3967 SHA512 cc67da5aa6f73ff333b3ddd881295f984203eb28d100b1a0817cc2ba1e629983f5e7fd64aa200b34eafa23002e9716b96f4a5456f626add2b01de1db873139fa
+DIST python-gentoo-patches-3.9.5_p2.tar.xz 14728 BLAKE2B b6b0a0c316d99e8282bdbb5e62a90f84880ff89b0b1e236a5bce37fbdd3c3b187f7964873882dbcbc8c9765af107377240e8aac544987452830f0069aff471c0 SHA512 42e4dd48f4b93bd45a70093b447b4862ab286c1b5adc32d22a3e3d08e67db13bfa829bdbcf989fac9b7c8634a4735cfb4a7b16bfc40bdff0c11bc5a768bbeaf8
+EBUILD python-2.7.18_p10.ebuild 10279 BLAKE2B 2c07e531b7b37e7a1a6e9c94150a41cf53f18139b10dd35667bfdc1d5c0db2ddc63ebff894c918dc5440f855379c4642518e3a153a7ab90a17a7e3b3541b7c6a SHA512 b6433d3aa3070ac606be6f5c6997142d6bcf5f2e22d8451be257d0f1658ac9ee61ba389aea564bfaca65c245cda0108f53de6b7d09665e735e13efc122b0f4e2
+EBUILD python-2.7.18_p9.ebuild 10278 BLAKE2B 1831412a47fd78750e3fc1d6bc91c403f70ae1e51500adbc197f671d5057230bee9aac2437ff1fda45923021a3ead7c91cc5fb27967426bc7d45c8dd4162a0d8 SHA512 59eb7b80b2e39da2b2ed47a33b3ddf13975c40ce565f6552c66d7e3bc2bdcd8534065b8f0782d49b5dbb52afd7135af5f0858e963a0bd182723e76445d5495e7
EBUILD python-3.10.0_beta1.ebuild 10045 BLAKE2B 085fb4c2d64576159313076da40f6c7096d6815151d2a3e082a5bae5164d40442996d579e887dc5a39fa52dfb1220b67fc26f840b2f0b1997346fccfdee56009 SHA512 e66d80207f5897b6bcd72f1506ee5418c13eb1cc51a1b3681e653d49d7473f5755edc8096c7d3becb613275f1e40a13b399b9c61dfc85da9b9e209791ea2d230
EBUILD python-3.10.0_beta2.ebuild 10045 BLAKE2B 085fb4c2d64576159313076da40f6c7096d6815151d2a3e082a5bae5164d40442996d579e887dc5a39fa52dfb1220b67fc26f840b2f0b1997346fccfdee56009 SHA512 e66d80207f5897b6bcd72f1506ee5418c13eb1cc51a1b3681e653d49d7473f5755edc8096c7d3becb613275f1e40a13b399b9c61dfc85da9b9e209791ea2d230
EBUILD python-3.6.13_p3.ebuild 9827 BLAKE2B 1b4e38ac6584840625040b89cb888db177a46cd6faec6c236c32f56b890fc6487c826dd9820f05ba9493a792df8f2bab252c7e1c3c86a49fc0e3e1ae00828b43 SHA512 185ca27fa6ba4ed17b89d0e6f21efa5fd44aa40637f3844401e7d6140f82d6d2a815d61210aad50c322de029bae7a46654c90e4ec448bbee6caab25d3a82d711
EBUILD python-3.6.13_p4.ebuild 9835 BLAKE2B fe07cb4e400f4c7b28c33684d2ccd241c083b9a0f9b1d064dbf78bafa9f08bd01e1c1126b0aa3b2c798e5663e74260ab27a167d4e7743b8d1f13f946094b2892 SHA512 817d0ae1677d08c2068debd873148992c652ff58a4718378c43a6ead9fc09964745de6daace955cec603cab46e9b9520bf92738794e581290306f03ab5344b26
+EBUILD python-3.6.13_p5.ebuild 9828 BLAKE2B c63a3f205b4776e4461981a1d1f80b0405bc6c54c13c68da21a22449c9c9164bab7f009b518a57546841b311e3aa39733cbc8f81f2305639f3883b978687ba7d SHA512 8c7f008d773be6dae809ad252230ce85d5cc0c7d77bc2e1c83cecb3cfe6a0942bf3f13435de9ce83c386dbebce85788ab3ded8fdb139ac107444ce81374babe7
EBUILD python-3.7.10_p3.ebuild 9632 BLAKE2B 85597824af2426a591a909d7170410ae405bc06381c63ed1603571230efc9b0b2aa8d06443845efb38535d4844a632771ea483845d0034506b69f65ffb509531 SHA512 a0287b8ffc461e9556770cacdba761448a0f2ecbcac6a383c586fe0577bd3fc7603c06b23a186d2f3c15d156b9635a508660cef8812dd18b34834ca0fca9a8f8
EBUILD python-3.7.10_p4.ebuild 9640 BLAKE2B a38f2c17009ceddd8d5e98da45edaafd8bdf82e1100fb4cff5a45c853f263b592b7e4f51f0b22f62be49b74a1ad4bef001af3a4225a7f39753eeaf1dfca1b6b2 SHA512 077bfe00609cef8943d76306842c2474e12b3dd45c088c67d2ea734cf6bb83e334777a372383c51d5afe9f7ff36f606abba1a9c3eb30e5063891671d67b7d218
+EBUILD python-3.7.10_p6.ebuild 9633 BLAKE2B 28fdff5db136d879422706a9e2f434df315fb8f7db7db0233383ea47ca61e098589f0319f6e264932f1287aad739bc3edf7f112141dc903a18b959a9a9d0f8de SHA512 045a51fcf20768818bdbe41fefcdbe0ddbfd23272734fb0c07aa189c00fd7f7f3fe25d8fc21849f6c892c1e71992a74225066d4b791c9351b3d292a3699e647e
EBUILD python-3.8.10.ebuild 9794 BLAKE2B adea166e768e09b86cfe01fb8629822750261871c1b300e94815967c201ac5b406f1419401e6d0e7872bb7a34e5ca8cfbd0b4dc4ab66855693e74ec540728e4f SHA512 8b2190820a441b4f24ad44cf43c96dc3ac92abc6f02d6bc77dd914d06a95e6ca65c189af73965f9ad9a17c2d37c700fb0cc88b2cc23d6b86806a8661f669406a
EBUILD python-3.8.10_p1.ebuild 9794 BLAKE2B adea166e768e09b86cfe01fb8629822750261871c1b300e94815967c201ac5b406f1419401e6d0e7872bb7a34e5ca8cfbd0b4dc4ab66855693e74ec540728e4f SHA512 8b2190820a441b4f24ad44cf43c96dc3ac92abc6f02d6bc77dd914d06a95e6ca65c189af73965f9ad9a17c2d37c700fb0cc88b2cc23d6b86806a8661f669406a
+EBUILD python-3.8.10_p2.ebuild 9787 BLAKE2B 272af912e45e9ebe62485aacfa1dc1b000d6e5a3619aec28e9fd4b5e89e1b5bf599a68cf0c69085c9040d53582ffc86a982a798153f2b71d5a285a7cf8e8b9e0 SHA512 1f682a342bcd17dd6c059618124ee8373eea7856e23cc87d51e33a543863d38dcf2acbc15ecb85f082d227d7c893d8137901a3ece12fa82cd8d5ed54c3b2e906
EBUILD python-3.8.9_p2.ebuild 9786 BLAKE2B cdb4cc561d0dceced2e987bd268b4aba5491cbdd2b4a232f59822ff6c913acdc688930c24b25dc771ed0cb63c104ca744dd6c0c3c79ddac175206fbe3dcb9493 SHA512 72757c70b3d179fdc91be409fe8eba79e9868f7672ed8686074027c9a76edbdd0ff9ae54b10ae2b51e116904d36d69a4e9a107f2613bfeecedba32da3c8261d7
EBUILD python-3.9.4_p1.ebuild 9925 BLAKE2B 8dfccf4bbb7fe7ee7f81cb7902c3f5db8add7694af475f4d9f80b9e4c87d2032bba1758cf62ccdb62eb56c79fa9bc238f850205d5dc159a172f9f4f4757bd351 SHA512 0402ea45911ba01183a65213b0050c9f976c218f1e938f716ac66178e122379c24714758463d1010fbd78828eb36123f16b4540aec0f75216706bc7dfc3e7014
EBUILD python-3.9.5.ebuild 9933 BLAKE2B 1d492eae570d852efde804615a52f80b650aefa2fe12b64d7cccfe5d950085629d5d8a5251a2452f477233a84b8a9ae0bd5640d59978ee36c1a47048ca6c1b4b SHA512 84c0965e128bc9337373fdf280faf0824b2be0874e2ae1ac75986c0a2eb24bad57c15779487b951708cd56fe0467eec90cda787a3ef788592565fdd1d664f6d8
EBUILD python-3.9.5_p1.ebuild 9933 BLAKE2B 1d492eae570d852efde804615a52f80b650aefa2fe12b64d7cccfe5d950085629d5d8a5251a2452f477233a84b8a9ae0bd5640d59978ee36c1a47048ca6c1b4b SHA512 84c0965e128bc9337373fdf280faf0824b2be0874e2ae1ac75986c0a2eb24bad57c15779487b951708cd56fe0467eec90cda787a3ef788592565fdd1d664f6d8
+EBUILD python-3.9.5_p2.ebuild 9926 BLAKE2B a51cd5bc459984fe1e2b23596a2ed9e062028efad06c51b66fc6799af1508cbd6726433ca35783af6183da5014a9100f1c59e0092a6c64d050842d50fd28a942 SHA512 4e16b65d264fe629f4f884601de3be61e58e9d93da892331c9c952e157de2b78d918a73a35e56a1c7540e46535496a428b3bf2ed2a812c8c879858540a1281fd
MISC metadata.xml 819 BLAKE2B 120c7c65d77488e726c5a0f4aa19469867ea6900e747169fae2f9cf8f14ec2936089d5edfe1935ce610bec26387273e261b1cc4b023680c8c4b229f2141a7223 SHA512 08f45707e5490067a21951b9d37c8ae67064ab67cccc5b8d8c204eab8d4a004fb910627b62989c67b849b89d301618f8f8f7996e99e1ef5bab38a239c49c124d
diff --git a/dev-lang/python/python-2.7.18_p10.ebuild b/dev-lang/python/python-2.7.18_p10.ebuild
index 01e2a9bfd33c..f83dc8a04282 100644
--- a/dev-lang/python/python-2.7.18_p10.ebuild
+++ b/dev-lang/python/python-2.7.18_p10.ebuild
@@ -22,8 +22,8 @@ S="${WORKDIR}/${MY_P}"
LICENSE="PSF-2"
SLOT="${PYVER}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
-IUSE="-berkdb bluetooth build elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl +threads tk +wide-unicode wininst +xml"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~s390 sparc x86"
+IUSE="berkdb bluetooth build elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl +threads tk +wide-unicode wininst +xml"
# 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
diff --git a/dev-lang/python/python-2.7.18_p9.ebuild b/dev-lang/python/python-2.7.18_p9.ebuild
index 59aed167c78c..7a8c21f525e7 100644
--- a/dev-lang/python/python-2.7.18_p9.ebuild
+++ b/dev-lang/python/python-2.7.18_p9.ebuild
@@ -23,7 +23,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="PSF-2"
SLOT="${PYVER}"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86"
-IUSE="-berkdb bluetooth build elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl +threads tk +wide-unicode wininst +xml"
+IUSE="berkdb bluetooth build elibc_uclibc examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl +threads tk +wide-unicode wininst +xml"
# 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
diff --git a/dev-lang/python/python-3.6.13_p5.ebuild b/dev-lang/python/python-3.6.13_p5.ebuild
new file mode 100644
index 000000000000..8fd7d59de944
--- /dev/null
+++ b/dev-lang/python/python-3.6.13_p5.ebuild
@@ -0,0 +1,338 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+WANT_LIBTOOL="none"
+
+inherit autotools flag-o-matic multiprocessing pax-utils \
+ python-utils-r1 toolchain-funcs verify-sig
+
+MY_P="Python-${PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${PV}"
+
+DESCRIPTION="An interpreted, interactive, object-oriented programming language"
+HOMEPAGE="https://www.python.org/"
+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}/${PYVER}m"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~s390 sparc x86"
+IUSE="bluetooth build examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl test +threads tk wininst +xml"
+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/libffi:=
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ virtual/libintl
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ ncurses? ( >=sys-libs/ncurses-5.2:= )
+ readline? ( >=sys-libs/readline-4.1:= )
+ sqlite? ( >=dev-db/sqlite-3.3.8:3= )
+ ssl? ( dev-libs/openssl:= )
+ tk? (
+ >=dev-lang/tcl-8.0:=
+ >=dev-lang/tk-8.0:=
+ dev-tcltk/blt:=
+ dev-tcltk/tix
+ )
+ xml? ( >=dev-libs/expat-2.1:= )"
+# bluetooth requires headers from bluez
+DEPEND="${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ test? ( app-arch/xz-utils[extra-filters(+)] )"
+BDEPEND="
+ virtual/pkgconfig
+ verify-sig? ( app-crypt/openpgp-keys-python )
+ !sys-devel/gcc[libffi(-)]"
+PDEPEND="app-eselect/eselect-python"
+RDEPEND+=" !build? ( app-misc/mime-types )"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+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, libffi and zlib are not used.
+ rm -fr Modules/expat || die
+ rm -fr Modules/_ctypes/libffi* || die
+ rm -fr Modules/zlib || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
+ Lib/distutils/command/install.py \
+ Lib/distutils/sysconfig.py \
+ Lib/site.py \
+ Lib/sysconfig.py \
+ Lib/test/test_site.py \
+ Makefile.pre.in \
+ Modules/Setup.dist \
+ Modules/getpath.c \
+ configure.ac \
+ setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
+
+ # force correct number of jobs
+ # https://bugs.gentoo.org/737660
+ local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
+ sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
+
+ eautoreconf
+}
+
+src_configure() {
+ local disable
+ # disable automagic bluetooth headers detection
+ use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
+ 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"
+ use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
+ export PYTHON_DISABLE_MODULES="${disable}"
+
+ if ! use xml; then
+ ewarn "You have configured Python without XML support."
+ ewarn "This is NOT a recommended configuration as you"
+ ewarn "may face problems parsing any XML documents."
+ fi
+
+ if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
+ einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
+ fi
+
+ if [[ "$(gcc-major-version)" -ge 4 ]]; then
+ append-flags -fwrapv
+ fi
+
+ filter-flags -malign-double
+
+ # https://bugs.gentoo.org/show_bug.cgi?id=50309
+ if is-flagq -O3; then
+ is-flagq -fstack-protector-all && replace-flags -O3 -O2
+ use hardened && replace-flags -O3 -O2
+ fi
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ tc-export CXX
+
+ 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
+
+ --with-fpectl
+ --enable-shared
+ $(use_enable ipv6)
+ $(use_with threads)
+ --infodir='${prefix}/share/info'
+ --mandir='${prefix}/share/man'
+ --with-computed-gotos
+ --with-dbmliborder="${dbmliborder}"
+ --with-libc=
+ --enable-loadable-sqlite-extensions
+ --without-ensurepip
+ --with-system-expat
+ --with-system-ffi
+ )
+
+ OPT="" econf "${myeconfargs[@]}"
+
+ if use threads && 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
+}
+
+src_compile() {
+ # Ensure sed works as expected
+ # https://bugs.gentoo.org/594768
+ local -x LC_ALL=C
+
+ 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
+
+ # Skip failing tests.
+ local skipped_tests="gdb faulthandler"
+
+ for test in ${skipped_tests}; do
+ mv "${S}"/Lib/test/test_${test}.py "${T}"
+ done
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
+
+ emake test EXTRATESTOPTS="-u-network -j${jobs}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local result=$?
+
+ for test in ${skipped_tests}; do
+ mv "${T}/test_${test}.py" "${S}"/Lib/test
+ done
+
+ elog "The following tests have been skipped:"
+ for test in ${skipped_tests}; do
+ elog "test_${test}.py"
+ done
+
+ elog "If you would like to run them, you may:"
+ elog "cd '${EPREFIX}/usr/$(get_libdir)/python${PYVER}/test'"
+ elog "and run the tests separately."
+
+ if [[ ${result} -ne 0 ]]; then
+ die "emake test failed"
+ fi
+}
+
+src_install() {
+ local libdir=${ED}/usr/$(get_libdir)/python${PYVER}
+
+ emake DESTDIR="${D}" altinstall
+
+ # Remove static library
+ rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
+
+ sed \
+ -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
+ -e "s/\(PY_LDFLAGS=\).*/\1/" \
+ -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
+
+ # 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
+
+ use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
+ use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
+
+ use threads || rm -r "${libdir}/multiprocessing" || die
+ use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || 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 "${S}"/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"
+
+ local -x EPYTHON=python${PYVER}
+ # if not using a cross-compiler, use the fresh binary
+ if ! tc-is-cross-compiler; then
+ local -x PYTHON=./python
+ local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
+ else
+ local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ fi
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py || die
+ python_domodule epython.py
+
+ # python-exec wrapping support
+ local pymajor=${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, pyvenv
+ ln -s "../../../bin/2to3-${PYVER}" \
+ "${scriptdir}/2to3" || die
+ ln -s "../../../bin/pydoc${PYVER}" \
+ "${scriptdir}/pydoc" || die
+ ln -s "../../../bin/pyvenv-${PYVER}" \
+ "${scriptdir}/pyvenv" || die
+ # idle
+ if use tk; then
+ ln -s "../../../bin/idle${PYVER}" \
+ "${scriptdir}/idle" || die
+ fi
+}
diff --git a/dev-lang/python/python-3.7.10_p6.ebuild b/dev-lang/python/python-3.7.10_p6.ebuild
new file mode 100644
index 000000000000..01463254cf62
--- /dev/null
+++ b/dev-lang/python/python-3.7.10_p6.ebuild
@@ -0,0 +1,330 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+WANT_LIBTOOL="none"
+
+inherit autotools flag-o-matic multiprocessing pax-utils \
+ python-utils-r1 toolchain-funcs verify-sig
+
+MY_P="Python-${PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${PV}"
+
+DESCRIPTION="An interpreted, interactive, object-oriented programming language"
+HOMEPAGE="https://www.python.org/"
+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}/${PYVER}m"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc x86"
+IUSE="bluetooth build examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl test tk wininst +xml"
+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/libffi:=
+ sys-apps/util-linux:=
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ virtual/libintl
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ ncurses? ( >=sys-libs/ncurses-5.2:= )
+ readline? ( >=sys-libs/readline-4.1:= )
+ sqlite? ( >=dev-db/sqlite-3.3.8:3= )
+ ssl? ( dev-libs/openssl:= )
+ tk? (
+ >=dev-lang/tcl-8.0:=
+ >=dev-lang/tk-8.0:=
+ dev-tcltk/blt:=
+ dev-tcltk/tix
+ )
+ xml? ( >=dev-libs/expat-2.1:= )"
+# bluetooth requires headers from bluez
+DEPEND="${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ test? ( app-arch/xz-utils[extra-filters(+)] )"
+BDEPEND="
+ virtual/pkgconfig
+ verify-sig? ( app-crypt/openpgp-keys-python )
+ !sys-devel/gcc[libffi(-)]"
+PDEPEND="app-eselect/eselect-python"
+RDEPEND+=" !build? ( app-misc/mime-types )"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+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, libffi and zlib are not used.
+ rm -fr Modules/expat || die
+ rm -fr Modules/_ctypes/libffi* || die
+ rm -fr Modules/zlib || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
+ setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
+
+ # force correct number of jobs
+ # https://bugs.gentoo.org/737660
+ local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
+ sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
+
+ eautoreconf
+}
+
+src_configure() {
+ local disable
+ # disable automagic bluetooth headers detection
+ use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
+ 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"
+ use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
+ export PYTHON_DISABLE_MODULES="${disable}"
+
+ if ! use xml; then
+ ewarn "You have configured Python without XML support."
+ ewarn "This is NOT a recommended configuration as you"
+ ewarn "may face problems parsing any XML documents."
+ fi
+
+ if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
+ einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
+ fi
+
+ if [[ "$(gcc-major-version)" -ge 4 ]]; then
+ append-flags -fwrapv
+ fi
+
+ filter-flags -malign-double
+
+ # https://bugs.gentoo.org/show_bug.cgi?id=50309
+ if is-flagq -O3; then
+ is-flagq -fstack-protector-all && replace-flags -O3 -O2
+ use hardened && replace-flags -O3 -O2
+ fi
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ tc-export CXX
+
+ # Fix implicit declarations on cross and prefix builds. Bug #674070.
+ use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
+
+ 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
+ $(use_enable ipv6)
+ --infodir='${prefix}/share/info'
+ --mandir='${prefix}/share/man'
+ --with-computed-gotos
+ --with-dbmliborder="${dbmliborder}"
+ --with-libc=
+ --enable-loadable-sqlite-extensions
+ --without-ensurepip
+ --with-system-expat
+ --with-system-ffi
+ )
+
+ OPT="" 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
+}
+
+src_compile() {
+ # Ensure sed works as expected
+ # https://bugs.gentoo.org/594768
+ local -x LC_ALL=C
+
+ 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
+
+ # Skip failing tests.
+ local skipped_tests="gdb"
+
+ for test in ${skipped_tests}; do
+ mv "${S}"/Lib/test/test_${test}.py "${T}"
+ done
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
+
+ emake test EXTRATESTOPTS="-u-network -j${jobs}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local result=$?
+
+ for test in ${skipped_tests}; do
+ mv "${T}/test_${test}.py" "${S}"/Lib/test
+ done
+
+ elog "The following tests have been skipped:"
+ for test in ${skipped_tests}; do
+ elog "test_${test}.py"
+ done
+
+ elog "If you would like to run them, you may:"
+ elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
+ elog "and run the tests separately."
+
+ if [[ ${result} -ne 0 ]]; then
+ die "emake test failed"
+ fi
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ emake DESTDIR="${D}" altinstall
+
+ # Remove static library
+ rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
+
+ sed \
+ -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
+ -e "s/\(PY_LDFLAGS=\).*/\1/" \
+ -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
+
+ # 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
+
+ use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
+ use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
+
+ use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || 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 "${S}"/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"
+
+ local -x EPYTHON=python${PYVER}
+ # if not using a cross-compiler, use the fresh binary
+ if ! tc-is-cross-compiler; then
+ local -x PYTHON=./python
+ local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
+ else
+ local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ fi
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py || die
+ python_domodule epython.py
+
+ # python-exec wrapping support
+ local pymajor=${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, pyvenv
+ ln -s "../../../bin/2to3-${PYVER}" \
+ "${scriptdir}/2to3" || die
+ ln -s "../../../bin/pydoc${PYVER}" \
+ "${scriptdir}/pydoc" || die
+ ln -s "../../../bin/pyvenv-${PYVER}" \
+ "${scriptdir}/pyvenv" || die
+ # idle
+ if use tk; then
+ ln -s "../../../bin/idle${PYVER}" \
+ "${scriptdir}/idle" || die
+ fi
+}
diff --git a/dev-lang/python/python-3.8.10_p2.ebuild b/dev-lang/python/python-3.8.10_p2.ebuild
new file mode 100644
index 000000000000..587450371469
--- /dev/null
+++ b/dev-lang/python/python-3.8.10_p2.ebuild
@@ -0,0 +1,336 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+WANT_LIBTOOL="none"
+
+inherit autotools flag-o-matic multiprocessing pax-utils \
+ 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/"
+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 ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc x86"
+IUSE="bluetooth build examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl test tk wininst +xml"
+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/libffi:=
+ sys-apps/util-linux:=
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ virtual/libintl
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ ncurses? ( >=sys-libs/ncurses-5.2:= )
+ readline? ( >=sys-libs/readline-4.1:= )
+ sqlite? ( >=dev-db/sqlite-3.3.8:3= )
+ ssl? ( dev-libs/openssl:= )
+ tk? (
+ >=dev-lang/tcl-8.0:=
+ >=dev-lang/tk-8.0:=
+ dev-tcltk/blt:=
+ dev-tcltk/tix
+ )
+ xml? ( >=dev-libs/expat-2.1:= )"
+# bluetooth requires headers from bluez
+DEPEND="${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ test? ( app-arch/xz-utils[extra-filters(+)] )"
+BDEPEND="
+ virtual/pkgconfig
+ sys-devel/autoconf-archive
+ verify-sig? ( app-crypt/openpgp-keys-python )
+ !sys-devel/gcc[libffi(-)]"
+PDEPEND="app-eselect/eselect-python"
+RDEPEND+=" !build? ( app-misc/mime-types )"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+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, libffi and zlib are not used.
+ rm -fr Modules/expat || die
+ rm -fr Modules/_ctypes/libffi* || die
+ rm -fr Modules/zlib || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
+ setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
+
+ # force correct number of jobs
+ # https://bugs.gentoo.org/737660
+ local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
+ 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() {
+ local disable
+ # disable automagic bluetooth headers detection
+ use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
+ 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"
+ use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
+ export PYTHON_DISABLE_MODULES="${disable}"
+
+ if ! use xml; then
+ ewarn "You have configured Python without XML support."
+ ewarn "This is NOT a recommended configuration as you"
+ ewarn "may face problems parsing any XML documents."
+ fi
+
+ if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
+ einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
+ fi
+
+ if [[ "$(gcc-major-version)" -ge 4 ]]; then
+ append-flags -fwrapv
+ fi
+
+ filter-flags -malign-double
+
+ # https://bugs.gentoo.org/show_bug.cgi?id=50309
+ if is-flagq -O3; then
+ is-flagq -fstack-protector-all && replace-flags -O3 -O2
+ use hardened && replace-flags -O3 -O2
+ fi
+
+ # https://bugs.gentoo.org/700012
+ if is-flagq -flto || is-flagq '-flto=*'; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ fi
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ tc-export CXX
+
+ # Fix implicit declarations on cross and prefix builds. Bug #674070.
+ use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
+
+ 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
+ $(use_enable ipv6)
+ --infodir='${prefix}/share/info'
+ --mandir='${prefix}/share/man'
+ --with-computed-gotos
+ --with-dbmliborder="${dbmliborder}"
+ --with-libc=
+ --enable-loadable-sqlite-extensions
+ --without-ensurepip
+ --with-system-expat
+ --with-system-ffi
+ )
+
+ OPT="" 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
+}
+
+src_compile() {
+ # Ensure sed works as expected
+ # https://bugs.gentoo.org/594768
+ local -x LC_ALL=C
+
+ 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
+
+ # Skip failing tests.
+ local skipped_tests="gdb"
+
+ for test in ${skipped_tests}; do
+ mv "${S}"/Lib/test/test_${test}.py "${T}"
+ done
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
+
+ emake test EXTRATESTOPTS="-u-network -j${jobs}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local result=$?
+
+ for test in ${skipped_tests}; do
+ mv "${T}/test_${test}.py" "${S}"/Lib/test
+ done
+
+ elog "The following tests have been skipped:"
+ for test in ${skipped_tests}; do
+ elog "test_${test}.py"
+ done
+
+ elog "If you would like to run them, you may:"
+ elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
+ elog "and run the tests separately."
+
+ if [[ ${result} -ne 0 ]]; then
+ die "emake test failed"
+ fi
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ emake DESTDIR="${D}" altinstall
+
+ # Remove static library
+ rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
+
+ sed \
+ -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
+ -e "s/\(PY_LDFLAGS=\).*/\1/" \
+ -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
+
+ # 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
+
+ use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
+ use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
+
+ use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || 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 "${S}"/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"
+
+ local -x EPYTHON=python${PYVER}
+ # if not using a cross-compiler, use the fresh binary
+ if ! tc-is-cross-compiler; then
+ local -x PYTHON=./python
+ local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
+ else
+ local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ fi
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py || die
+ python_domodule epython.py
+
+ # python-exec wrapping support
+ local pymajor=${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.5_p2.ebuild b/dev-lang/python/python-3.9.5_p2.ebuild
new file mode 100644
index 000000000000..00c9f1be882a
--- /dev/null
+++ b/dev-lang/python/python-3.9.5_p2.ebuild
@@ -0,0 +1,345 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic multiprocessing pax-utils \
+ 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/"
+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 ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc x86"
+IUSE="bluetooth build examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl test tk wininst +xml"
+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/libffi:=
+ sys-apps/util-linux:=
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ virtual/libintl
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ ncurses? ( >=sys-libs/ncurses-5.2:= )
+ readline? ( >=sys-libs/readline-4.1:= )
+ sqlite? ( >=dev-db/sqlite-3.3.8:3= )
+ ssl? ( dev-libs/openssl:= )
+ tk? (
+ >=dev-lang/tcl-8.0:=
+ >=dev-lang/tk-8.0:=
+ dev-tcltk/blt:=
+ dev-tcltk/tix
+ )
+ xml? ( >=dev-libs/expat-2.1:= )"
+# bluetooth requires headers from bluez
+DEPEND="${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ test? ( app-arch/xz-utils[extra-filters(+)] )"
+BDEPEND="
+ virtual/pkgconfig
+ sys-devel/autoconf-archive
+ verify-sig? ( app-crypt/openpgp-keys-python )
+ !sys-devel/gcc[libffi(-)]"
+RDEPEND+=" !build? ( app-misc/mime-types )"
+PDEPEND="app-eselect/eselect-python"
+
+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
+
+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, libffi and zlib are not used.
+ rm -fr Modules/expat || die
+ rm -fr Modules/_ctypes/libffi* || die
+ rm -fr Modules/zlib || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
+ setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
+
+ # force correct number of jobs
+ # https://bugs.gentoo.org/737660
+ local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
+ 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() {
+ local disable
+ # disable automagic bluetooth headers detection
+ use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
+ 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"
+ use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
+ export PYTHON_DISABLE_MODULES="${disable}"
+
+ if ! use xml; then
+ ewarn "You have configured Python without XML support."
+ ewarn "This is NOT a recommended configuration as you"
+ ewarn "may face problems parsing any XML documents."
+ fi
+
+ if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
+ einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
+ fi
+
+ if [[ "$(gcc-major-version)" -ge 4 ]]; then
+ append-flags -fwrapv
+ fi
+
+ filter-flags -malign-double
+
+ # https://bugs.gentoo.org/show_bug.cgi?id=50309
+ if is-flagq -O3; then
+ is-flagq -fstack-protector-all && replace-flags -O3 -O2
+ use hardened && replace-flags -O3 -O2
+ fi
+
+ # https://bugs.gentoo.org/700012
+ if is-flagq -flto || is-flagq '-flto=*'; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ fi
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ tc-export CXX
+
+ # Fix implicit declarations on cross and prefix builds. Bug #674070.
+ use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
+
+ 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
+ $(use_enable ipv6)
+ --infodir='${prefix}/share/info'
+ --mandir='${prefix}/share/man'
+ --with-computed-gotos
+ --with-dbmliborder="${dbmliborder}"
+ --with-libc=
+ --enable-loadable-sqlite-extensions
+ --without-ensurepip
+ --with-system-expat
+ --with-system-ffi
+ )
+
+ OPT="" 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
+}
+
+src_compile() {
+ # Ensure sed works as expected
+ # https://bugs.gentoo.org/594768
+ local -x LC_ALL=C
+
+ 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
+
+ # Skip failing tests.
+ local skipped_tests="gdb"
+
+ for test in ${skipped_tests}; do
+ mv "${S}"/Lib/test/test_${test}.py "${T}"
+ done
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
+
+ emake test EXTRATESTOPTS="-u-network -j${jobs}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local result=$?
+
+ for test in ${skipped_tests}; do
+ mv "${T}/test_${test}.py" "${S}"/Lib/test
+ done
+
+ elog "The following tests have been skipped:"
+ for test in ${skipped_tests}; do
+ elog "test_${test}.py"
+ done
+
+ elog "If you would like to run them, you may:"
+ elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
+ elog "and run the tests separately."
+
+ if [[ ${result} -ne 0 ]]; then
+ die "emake test failed"
+ fi
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ emake DESTDIR="${D}" altinstall
+
+ # Remove static library
+ rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
+
+ sed \
+ -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
+ -e "s/\(PY_LDFLAGS=\).*/\1/" \
+ -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
+
+ # 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
+
+ use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
+ use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || 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 "${S}"/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"
+
+ local -x EPYTHON=python${PYVER}
+ # if not using a cross-compiler, use the fresh binary
+ if ! tc-is-cross-compiler; then
+ local -x PYTHON=./python
+ local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
+ else
+ local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ fi
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py || die
+ python_domodule epython.py
+
+ # python-exec wrapping support
+ local pymajor=${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/rust/Manifest b/dev-lang/rust/Manifest
index 18d7b2665f4b..400bdca244f5 100644
--- a/dev-lang/rust/Manifest
+++ b/dev-lang/rust/Manifest
@@ -76,5 +76,5 @@ DIST rustc-1.51.0-src.tar.xz.asc 801 BLAKE2B dc06d0bc40bcc5ec5ae247495b6975584a8
DIST rustc-1.52.1-src.tar.xz 115109508 BLAKE2B c5d73f5884037d287d88ba9fdaf63a36678b692e1b510920045797ab29f1660f05cda901e19411ff83ec3084c4130034c269976b1056220f3e629cff116d07f0 SHA512 55f5053ce40d4eba4663052817aef6a6275139ca229c89cd1ec44711458b412720203301d8c7975aac5720a91fcaf21847f8184f641cbb0004f722520283c73c
DIST rustc-1.52.1-src.tar.xz.asc 801 BLAKE2B ea2f89289b4d9cf90a0d10148bf3494805c00e7822cc98addf0b602c35e4635bb1963d79168b395a5f7c7bd024070284fccd19757982daa0d554dcac166fd4d7 SHA512 0d692a085c017b03b8a135a28f7e6f1d7e05642d2e99f0f1fbc397e766bb8fed4b4c6b4c9157b79d9bb0c4229607dbc35711cd463c62a9966a4efb6f197de7d3
EBUILD rust-1.51.0-r2.ebuild 19950 BLAKE2B bbbd8161f81bf3b38d2e85b14c31fca6035f74b865f973ba3ec0c2d0df104159794d32cbfcd468fb6f43a6aa9f04de9154641673a8ed1c5d8bdd05fb5348f893 SHA512 edaf33029a462e15475560588ea49fc5f79581b5df1330228eaccd947d6f6848faaf6abf09d5738a7c49685e5213bada3ad2b551547c73d5908e4b122387607c
-EBUILD rust-1.52.1.ebuild 19929 BLAKE2B d3c3ca62f238651220beab8931479b0a96c54f25bcf59a3f9504bdb99e6e2fd72d948104fe2ea0aa62b83ee75d3b06227675a812466f160701bfde060d71f1a6 SHA512 7d4f507dd88108fc40a3d88fffe7d0f663df1285613a854e55bcd6e1b32ece06087505b2ae45747f7e7d13084834d798e5ccf1b52891a88fb5a467c498f7aa39
+EBUILD rust-1.52.1.ebuild 20197 BLAKE2B eeaf7551bcf52ae875e17db91cddec42fb8603e47a89bbb72e4b94a5839e1904aeda8aa606caba6998ac173a0c254b996a5716edcd3ce30c9f0ce5a290d39f43 SHA512 3f2cb52bf94fbf63eee34b02855630d088fbacb997b44d6551bc9a43a3f4c9b931553638abd6319835c128113587215a9dce85bb240832719922cd49ddcdf34a
MISC metadata.xml 1083 BLAKE2B 7a7b093c22dcaef58bd67f9c2fd84a000696b234d2bc27315999bf6751cfd2a79441fd22efc284a542ecc84ce1a12ff9ca3495d249eaffa5bc1722b385c6109e SHA512 bfe8c140753e93db67244c92e9a7d193691ceb67de796c30a851966a1262bc5c897ead6e13d728775fa524215b6851609dcbee582022d9d75bb8d1e6fabc4ef4
diff --git a/dev-lang/rust/rust-1.52.1.ebuild b/dev-lang/rust/rust-1.52.1.ebuild
index d8b7334db884..efa716a08b92 100644
--- a/dev-lang/rust/rust-1.52.1.ebuild
+++ b/dev-lang/rust/rust-1.52.1.ebuild
@@ -91,7 +91,7 @@ BDEPEND="${PYTHON_DEPS}
)
system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
!system-llvm? (
- dev-util/cmake
+ >=dev-util/cmake-3.13.4
dev-util/ninja
)
test? ( sys-devel/gdb )
@@ -279,10 +279,14 @@ src_configure() {
local rust_stage0_root
if use system-bootstrap; then
- rust_stage0_root="$(rustc --print sysroot)"
+ 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)"
diff --git a/dev-lang/scala-bin/Manifest b/dev-lang/scala-bin/Manifest
index 9578eeb1d178..3d6ca266f475 100644
--- a/dev-lang/scala-bin/Manifest
+++ b/dev-lang/scala-bin/Manifest
@@ -1,3 +1,5 @@
DIST scala-2.13.1.tgz 19685743 BLAKE2B aaff6db71023f539d08da521ab1ff505a626605d9c298472d0c2e98a9a13d6b8440e89cf5ff4a53b7b9bcc48cbc1e3b55cc253563f54f18c369e13fc8c00a6c2 SHA512 028aa237c471cada1501cd5764b3c384c3f50e9fc327cddd3fa7c79e9cc909d86bf84d5fc28103054600f879a60c546fc45a837cdca54964eb57ec77f9c1613e
-EBUILD scala-bin-2.13.1.ebuild 1307 BLAKE2B 8ebeb4038e8844f3c94e81ba2a72e1b08f9729e3fe8465cdd3e40d0cbf271868fc6b1e83fbbaf1871f3d13ba1483fa4ab0e8bbc3f596e83037c88b3c8303780e SHA512 f5b548e403e2d67e8f7fef0865e1c2a62f790d76e7d6eaa8aad31fecc3f322cdd89e33ebea835bdba1704734175e0066d5b2bf4d4c778f5f570533319ad40297
+DIST scala-2.13.6.tgz 23407489 BLAKE2B b65db49968dcbce2f5586aafaa4cd437156050050f209cce4a7d5edc18dfca3ebb60d2a726b4a26902723f993b78a673909c1139eb67e8eea4f35a4842b33c70 SHA512 445267cd7c1ddb8ef94d2edeb36567318c66429c88fcb183840998dc204a10253df09c33eb4de2f87b68b1a8cd4f557910fa3f061d4316314653eb64e91c0188
+EBUILD scala-bin-2.13.1-r1.ebuild 1314 BLAKE2B faed8c9c4a4d0d480bb91f2568e80518c7f6cb0a99694a1375be3acd96803bc31b72a33acd78751a07754816de621d3f7733ad00462117a8ac09d2b9e6d8e7cb SHA512 a592eb08248a9c1bebf37ec835da2f6259031e81a3d059cfb3cc846be84d8ac1f8dd26b5419e58e5709379840d96d81d44751dfaa0d0c828b855249b0b525989
+EBUILD scala-bin-2.13.6.ebuild 1316 BLAKE2B 35622328871ead249feafb4bfc2064f102e889198b5fbcb9cbb9f8de1327db674e89c394ecfc76ddce4b11adb1e28909996d8d072dd7ef7514d5f7f661fcfaee SHA512 c0a7b0709835be1532f2bb547ec6481cd5d06104cad6383a92c4aa7404cdb83703a40b79d834282e7041e617cf22acdffdb9f90bfc888d07da9aa31ee8ae2b5a
MISC metadata.xml 317 BLAKE2B 47b0d918ff9d4f2287fc0c43a022b978a816aa0d96362cf449210cd6b13810ed1352dbe69c5bea8281cdd3f3d03f4dcf714589e414b27abd5cd8c648e3d64994 SHA512 506fab7ebaa9e1caf96f239d6d85978171b98282ebe22a4948f61df62ce05a4c22772d81159cec9a99dd9a127b602e7593615204142e295d88835f9385a64bc8
diff --git a/dev-lang/scala-bin/scala-bin-2.13.1.ebuild b/dev-lang/scala-bin/scala-bin-2.13.1-r1.ebuild
index 622baa6cd436..9469077928d2 100644
--- a/dev-lang/scala-bin/scala-bin-2.13.1.ebuild
+++ b/dev-lang/scala-bin/scala-bin-2.13.1-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -14,7 +14,7 @@ DESCRIPTION="The Scala Programming Language"
HOMEPAGE="http://scala.epfl.ch/"
SRC_URI="http://downloads.lightbend.com/${MY_PN}/${PV}/${MY_P}.tgz"
-LICENSE="BSD"
+LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="doc"
diff --git a/dev-lang/scala-bin/scala-bin-2.13.6.ebuild b/dev-lang/scala-bin/scala-bin-2.13.6.ebuild
new file mode 100644
index 000000000000..cdb8e4a5f113
--- /dev/null
+++ b/dev-lang/scala-bin/scala-bin-2.13.6.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+JAVA_PKG_IUSE="doc"
+
+inherit java-pkg-2
+
+MY_PN="${PN%-*}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="The Scala Programming Language"
+HOMEPAGE="http://scala.epfl.ch/"
+SRC_URI="http://downloads.lightbend.com/${MY_PN}/${PV}/${MY_P}.tgz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND="
+ >=virtual/jre-1.8
+ !dev-lang/scala"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ default
+ ebegin 'Cleaning .bat files'
+ rm -f bin/*.bat || die
+ eend $?
+
+ ebegin 'Patching SCALA_HOME variable in bin/ directory'
+ local f
+ for f in bin/*; do
+ sed -i -e 's#\(SCALA_HOME\)=.*#\1=/usr/share/scala-bin#' "$f" || die
+ done
+ eend $?
+}
+
+src_compile() {
+ :;
+}
+
+src_install() {
+ ebegin 'Installing bin scripts'
+ dobin bin/*
+ eend $?
+
+ ebegin 'Installing jar files'
+
+ cd lib/ || die
+
+ # Unversion those libs.
+ java-pkg_newjar jline-*.jar jline.jar
+ java-pkg_newjar scalap-*.jar scalap.jar
+
+ # Install these the usual way.
+ java-pkg_dojar scala-compiler.jar
+ java-pkg_dojar scala-library.jar
+ java-pkg_dojar scala-reflect.jar
+
+ eend $?
+
+ cd ../ || die
+
+ ebegin 'Installing man pages'
+ doman man/man1/*.1
+ eend $?
+
+ if use doc; then
+ ebegin 'Installing documentation'
+ java-pkg_dohtml -r doc/tools
+ eend $?
+ fi
+}
diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
index 24c3c941875d..18c27885830c 100644
--- a/dev-lang/spidermonkey/Manifest
+++ b/dev-lang/spidermonkey/Manifest
@@ -8,7 +8,9 @@ AUX spidermonkey-perl-defined-array-check.patch 341 BLAKE2B e11a74cc2afbea5e39ec
DIST firefox-68.0-patches-15.tar.xz 16060 BLAKE2B f9e6cd58ea51bed1af90a9d30fd551dc7e939afcd1b4d00de1271bd4bda94021c6f1799fd9945962c14ffa1fd0b6a6429369c4e45efc2000f179b9b2e46971e7 SHA512 9cb2479637dd8b84e0ab68dc0fe144acd2dc74feca282fd3c4b485ca6f0de8190244587622713a5421b243ccda153f738e9a8f463e87e15e93e9b725d943e128
DIST firefox-68.12.0esr.source.tar.xz 313856956 BLAKE2B eeaa4acc9fabf15ec1b313170a30cee8e1fc10a8b08512b915b83b7d6a81c09b365733ed94638bd434864fd7b0cb8cbf1bc2e43441be69e31117e8e6a099234c SHA512 839b02422e4c87bdb12e0995cd35ca8c1996f3fba00bbb46b419e46b67df5ec48a264cb14632db777ce29166ee4fdcb06e2ee3ce847e64328c58c9a2f9129f4c
DIST firefox-78.10.1esr.source.tar.xz 334444960 BLAKE2B 76f9bae7f9fddbf3ab14293d1ec9e51b173961d0d5e0e1ef98b65328294f520369b89fb300a91d9f502b93215a15c228925a469b7b14ec576c9a9be874a6561a SHA512 a22773d9b3f0dca253805257f358a906769d23f15115e3a8851024f701e27dee45f056f7d34ebf1fcde0a3f91ec299639c2a12556e938a232cdea9e59835fde1
+DIST firefox-78.11.0esr.source.tar.xz 333002576 BLAKE2B a8268886f86afb41b86d227f8a8f642674ea9c0a85365acb517c6997099dbddad9779efa772cce645da6443a78d6e94c89a750152386f8dff7bbbf31bf5df129 SHA512 d02fc2eda587155b1c54ca12a6c5cde220a29f41f154f1c9b71ae8f966d8cc9439201a5b241e03fc0795b74e2479f7aa5d6b69f70b7639432e5382f321f7a6f4
DIST firefox-78esr-patches-13.tar.xz 83664 BLAKE2B 92250d5bc3821ee1ff032236bd00e01a53e0af4f9e39696a634edb39f0a182bf5ff74b7fc0f107c9c53136c64485c398391e3a857c8b2b904115fd13d17e2a4f SHA512 96739811bea833a6a9cb09075dfe49c6fa7f613e8bd41e1d830d6ae6851ce8e2f5d27c87d0035b6f3a099340dfd7eebe6ecb930ff25079e76cea92a7610293ca
+DIST firefox-78esr-patches-14.tar.xz 82976 BLAKE2B 08cc3618c8069f4169b7647e7eb699153d558bb89f8a4f1ed74d5ccd339f77119cd8f253df011f0c2f255ad889b65e843171d7559f469788463ca7e9aa2e96aa SHA512 1611c6f9d2c7d586e7b53810c1cfdb2682f5d289b1b019b71694b1ab2d8bbdfe827a73cfaf59f7e4808c0b90409ca4fa57e27655d8cdf0c578ffdbad33659f26
DIST js185-1.0.0.tar.gz 6164605 BLAKE2B 76a37f0ceae05d3475853875bd0ce4be6e525e4114816f8f281ea6fc6b60a71060975a0fa1cb843f57ad1e2f842dfb26b24244fa0fd6c20f6ae2ebbe430f70be SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718
DIST mozjs-52.9.1pre1.tar.bz2 30178574 BLAKE2B 0920432b5140e78297a9bcbccb54268d75a223d5e75e4ff90b3b01aab4f7736b4a4e05c47b3a925ff0a74607a0abad3b6583c75d070ef5142009b20ebaf6e4bf SHA512 187b231b246a5ae09e55c0fef77866b316d75f38f4c2e066d5d4325d8da63433027020c929439cab46af3253ac63ab2f780223a8fd2c6ff535b3409bb6c4aa0f
DIST mozjs-60.5.2.tar.bz2 32816585 BLAKE2B 45ac4c9646e1275faf60eeedbf486f802cd106583eb7f640fe2243adc7cbb811dced5cefa94426cceca63468b0112be84078ffcef24cb2b8c1a7b6c8173c0d45 SHA512 5fb73330e7803bdd524fbe7cfdf4e6b72e85d4b22b0c827400317b5d052d1088d36e558ceac376393089e9d03e658b24e69262851fc04a66bbcda47135423dc0
@@ -22,4 +24,5 @@ EBUILD spidermonkey-52.9.1_pre1-r2.ebuild 4593 BLAKE2B 6244bf06572393bd4f821f36c
EBUILD spidermonkey-60.5.2_p0-r4.ebuild 4240 BLAKE2B fc4a9fe400c05aee5d7226d8fa17897dd4ee86b1fcbd1b8286620f626e7235c069e8c576faf9db00415e3beba7935e2fa4e0cde7e6f4a91eeaa6478f032e0709 SHA512 d4f2fdcc4f043f4cf966d7b396e6c4cd922e1b511f75aa3d22cb8cb235917ed66f22d25a82db61fdcc8de55d970c01945738cdef8af4413118c9f33133b1653b
EBUILD spidermonkey-68.12.0.ebuild 7310 BLAKE2B 78473b652614a2cd4001c40ff981555358043d9cce58bedde8670e76b1c03d3aaa11da156fc17d20200a2e1e08075d88c6cfca57e5f41f5aed758e6d4a0199b1 SHA512 7a792dd7c6976a56f685eadfc4929ea26045ba4c464aac61b9dcb4e9545306e14e0a8abb3aecdea516611ab2bfbf9c7b0a0b273c89bf58b3d0a24f0ffcee43a6
EBUILD spidermonkey-78.10.1.ebuild 13020 BLAKE2B 1df644878ca6ced6f09412392dcf44a09226e8d7d436c5ead8e94d332d931aa3dd734565ca2e4c670871cf04c755b3b271640db34bbbcfdeb334187adb0d9e6f SHA512 c95d1e675d3c7822b5df2373c45e5535ea6ab7b0141a855c9a3d593edd9544de4faf975dbdc9bab276b5cdef8d96a736781aa24ac84574414eb08f66d9fab059
+EBUILD spidermonkey-78.11.0.ebuild 13025 BLAKE2B 32cfa314c9095eb6b052fc636dc5d853a6e7a24e1aeeeb60f33432467777173185e305f2e413b77c117069fda280de328dd5f0b55a9c3af4158c46bca743a169 SHA512 1d35220d170538a2baa44018a2215b41604c3f1c298e4627d7c70097d6f13dd7e49ebd3d91bcb1d2380d041e8493e6624877ce500d875a585b12dd5650a30dae
MISC metadata.xml 868 BLAKE2B ee529f60bc83af6c54188ab4db2a1e05cbc3fcebf7732580cb5e507afada8560cb8812d4f155ae94c2ec87724bdfafe7312de86b47a95f599655695836c9b806 SHA512 caf3c383cd8109391cbf81baf5e942630bfd84ca6bc2a78430e58e5b0a40428e08b8a3d7c9fadccebaf94fe1aa673df837246fc32d5932b7f60dd43431ee1575
diff --git a/dev-lang/spidermonkey/spidermonkey-78.11.0.ebuild b/dev-lang/spidermonkey/spidermonkey-78.11.0.ebuild
new file mode 100644
index 000000000000..e29ec205e856
--- /dev/null
+++ b/dev-lang/spidermonkey/spidermonkey-78.11.0.ebuild
@@ -0,0 +1,454 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+# Patch version
+FIREFOX_PATCHSET="firefox-78esr-patches-14.tar.xz"
+SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-04.tar.xz"
+
+LLVM_MAX_SLOT=12
+
+PYTHON_COMPAT=( python3_{7..9} )
+
+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/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}
+ https://dev.gentoo.org/~{whissi,polynomial-c,axs}/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://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
+
+KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc64 ~riscv ~s390 ~x86"
+
+SLOT="78"
+LICENSE="MPL-2.0"
+IUSE="clang cpu_flags_arm_neon debug +jit lto test"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="${PYTHON_DEPS}
+ >=virtual/rust-1.41.0
+ virtual/pkgconfig
+ || (
+ (
+ sys-devel/llvm:12
+ clang? (
+ sys-devel/clang:12
+ lto? ( =sys-devel/lld-12* )
+ )
+ )
+ (
+ sys-devel/llvm:11
+ clang? (
+ sys-devel/clang:11
+ lto? ( =sys-devel/lld-11* )
+ )
+ )
+ (
+ sys-devel/llvm:10
+ clang? (
+ sys-devel/clang:10
+ lto? ( =sys-devel/lld-10* )
+ )
+ )
+ )
+ lto? (
+ !clang? ( sys-devel/binutils[gold] )
+ )"
+
+CDEPEND=">=dev-libs/icu-67.1:=
+ >=dev-libs/nspr-4.25
+ sys-libs/readline:0=
+ >=sys-libs/zlib-1.2.3"
+
+DEPEND="${CDEPEND}
+ test? (
+ $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
+ )"
+
+RDEPEND="${CDEPEND}"
+
+S="${WORKDIR}/firefox-${MY_PV}/js/src"
+
+llvm_check_deps() {
+ if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
+ ewarn "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
+ ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if use lto ; then
+ if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then
+ ewarn "=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
+ has_version "dev-python/six[${PYTHON_USEDEP}]"
+ fi
+}
+
+pkg_pretend() {
+ if use test ; then
+ CHECKREQS_DISK_BUILD="7600M"
+ else
+ CHECKREQS_DISK_BUILD="6400M"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use test ; then
+ CHECKREQS_DISK_BUILD="7600M"
+ else
+ CHECKREQS_DISK_BUILD="6400M"
+ fi
+
+ check-reqs_pkg_setup
+
+ llvm_pkg_setup
+
+ if use clang && use lto ; 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!"
+
+ # temp fix for https://bugs.gentoo.org/768543
+ # we can assume that rust 1.{49,50}.0 always uses llvm 11
+ local version_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'release:' | awk '{ print $2 }')
+ [[ -n ${version_rust} ]] && version_rust=$(ver_cut 1-2 "${version_rust}")
+ [[ -z ${version_rust} ]] && die "Failed to read version from rustc!"
+
+ if ver_test "${version_rust}" -ge "1.49" && ver_test "${version_rust}" -le "1.50" ; then
+ local version_llvm_rust="11"
+ else
+ 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!"
+ fi
+
+ 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"
+ 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
+
+ eapply "${WORKDIR}"/firefox-patches
+ eapply "${WORKDIR}"/spidermonkey-patches
+
+ default
+
+ # Make LTO respect MAKEOPTS
+ sed -i \
+ -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
+ build/moz.configure/lto-pgo.configure \
+ || die "sed failed to set num_cores"
+
+ # 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
+ eautoconf
+}
+
+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 && ! tc-is-clang ; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+ have_switched_compiler=yes
+ AR=llvm-ar
+ CC=${CHOST}-clang
+ CXX=${CHOST}-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
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ tc-export CC CXX LD AR 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-jemalloc
+ --disable-optimize
+ --disable-strip
+ --enable-readline
+ --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 x86 && [[ ${CHOST} != armv*h* ]] ; then
+ myeconfargs+=( --enable-rust-simd )
+ fi
+
+ # Modifications to better support ARM, bug 717344
+ if use cpu_flags_arm_neon ; then
+ myeconfargs+=( --with-fpu=neon )
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ myeconfargs+=( --with-thumb=yes )
+ myeconfargs+=( --with-thumb-interwork=no )
+ fi
+ fi
+
+ # Tell build system that we want to use LTO
+ if use lto ; then
+ myeconfargs+=( --enable-lto )
+
+ if use clang ; then
+ myeconfargs+=( --enable-linker=lld )
+ else
+ myeconfargs+=( --enable-linker=gold )
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-flags '-flto*'
+
+ if tc-is-gcc ; then
+ if ver_test $(gcc-fullversion) -ge 10 ; then
+ einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..."
+ append-cxxflags -fno-tree-loop-vectorize
+ fi
+ fi
+
+ # 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
+
+ local -a KNOWN_TESTFAILURES
+ KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
+ KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
+ KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
+ KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
+ KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
+ KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleString_timeZone.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/Date/toLocaleDateString_timeZone.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/format_timeZone.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/language.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/DisplayNames/region.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js )
+ KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags-generated.js )
+ KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js )
+
+ if use x86 ; then
+ KNOWN_TESTFAILURES+=( non262/Date/timeclip.js )
+ KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js )
+ KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js )
+ KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js )
+ fi
+
+ if [[ $(tc-endian) == "big" ]] ; then
+ KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js )
+ fi
+
+ echo "" > "${T}"/known_failures.list || die
+
+ local KNOWN_TESTFAILURE
+ for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
+ echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
+ done
+
+ PYTHONPATH="${S}/tests/lib" \
+ ${PYTHON} \
+ "${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
+ KNOWN_TESTFAILURES=()
+
+ echo "" > "${T}"/known_failures.list || die
+
+ for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
+ echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
+ done
+
+ PYTHONPATH="${S}/tests/lib" \
+ ${PYTHON} \
+ "${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/swi-prolog/Manifest b/dev-lang/swi-prolog/Manifest
index 75579c5c0b55..78607a73ec2c 100644
--- a/dev-lang/swi-prolog/Manifest
+++ b/dev-lang/swi-prolog/Manifest
@@ -3,8 +3,10 @@ DIST swipl-8.2.3.tar.gz 10999577 BLAKE2B 57cfa9f6fb97f0136a35da1850c7ae8da123d1c
DIST swipl-8.2.4.tar.gz 10998859 BLAKE2B b18f26102a685ff5c66aeaf0c14a08c532f9327f9f995cd46657a71b6779d021eb4f5651b2be77883197c7c5ee31c23259f46ed559aeeb0bb53ad10aea0081ed SHA512 cdbd23d4a0e9699ecc32bdcad9979e4042fb0f24de84010f6f097bc7148af38150b0e61e393c057b0dbae932d0fc1c02a41808bcbafd2c23e24fd73070bed470
DIST swipl-8.3.23.tar.gz 11162363 BLAKE2B 3808da5bfda1059332dde6a134c2c014c6ee190791ac0c1ace6ea6713719470c1f63df9cf25bdfa69ab73a63090d9d4e37a3afee3b0c107786568a7786c5cbea SHA512 ca592bfa815496d3668a3251f3249c578df46185d856df7bddb88786923fd247542eecd8505181c5f6d4cbb9ddde0d54177d053ab7bd8d024910ccb3f00f7430
DIST swipl-8.3.24.tar.gz 11202181 BLAKE2B c5ac25b3cb73deeef51b8469977e9554ffc9da275dfb4541e7f653fb3e3f411abb971fc66ebf77d662ecdbd2d57070b18b76200f7d26d649a491a6789b807ef4 SHA512 36c436088e7eb78147d2e61fb6377e1703b5a1a6290e98a73810d18e07bda2b598aeb7aaff22b2a4caef90c3873c7a06c7ae84e71bb5f52cc2c6b315e4680f28
+DIST swipl-8.3.25.tar.gz 11186018 BLAKE2B a06befea48e065d516eeeb4ce2fa87342647d02ec509eaec208be143520af7d4de3217ac726720a36cdd15e1e263963cfc71bb2d7249ff55f9673e7e1bea5620 SHA512 4a06cd36ffbf22d8e582776c6181c8e848abe9bfca32e5e0e43d58e801c8b7c8e1d8556279716461df020530d0ea44cdcfe9390e8387b2a8e8936adf8c3f9774
EBUILD swi-prolog-8.2.3.ebuild 2637 BLAKE2B c160e9ed130006f0696118245abaa1d635c63ff9d6fc3fe4fd6a60fdf62bf7250944a5537314be87b316017729d5c351cb30ecc5778f3839b701b5126969ed11 SHA512 21075e6b11271548c377870daae5d82a09a91aa13e86bbdbab49aef53a8621523a65e9a19f02a1bbb559d16533b5244f2e8e500c02e6a6f7f0e681b8c75825cd
EBUILD swi-prolog-8.2.4.ebuild 2830 BLAKE2B fc2d901e420fc8c9d842aa5ebfe9494c907f0529a3a6bbae1d96fe05a5b4840c953f1d3022b3d8c83d151df47073615e6120445ae7dd65e11237228c9fcfd2ce SHA512 b2dd922607b75e31e02ed48da294a2d06e3e707d2b479cc5b55569cd80b4250c01f84c4d8d232b94f46c51f637294347a2be8fca461f2d76cbe537897d13627a
EBUILD swi-prolog-8.3.23.ebuild 2829 BLAKE2B e378ac669bfd0a1bbf3fe9b9b93daf3887050f3c826963f74fa4ec95e036cbc402b83f47f2ff79eeae5ca58fcb2f1598a0208b2159c633270d0b5915bf63fced SHA512 778ae54cceaf0140da6b2c09fe3ed3f39bf77b1e7a4e22235bbad956e4e1f6d9c90544bfd313f71d882218acb32998dc87a50628f2bccad47cbc13d870584166
EBUILD swi-prolog-8.3.24.ebuild 2829 BLAKE2B e378ac669bfd0a1bbf3fe9b9b93daf3887050f3c826963f74fa4ec95e036cbc402b83f47f2ff79eeae5ca58fcb2f1598a0208b2159c633270d0b5915bf63fced SHA512 778ae54cceaf0140da6b2c09fe3ed3f39bf77b1e7a4e22235bbad956e4e1f6d9c90544bfd313f71d882218acb32998dc87a50628f2bccad47cbc13d870584166
+EBUILD swi-prolog-8.3.25.ebuild 2829 BLAKE2B e378ac669bfd0a1bbf3fe9b9b93daf3887050f3c826963f74fa4ec95e036cbc402b83f47f2ff79eeae5ca58fcb2f1598a0208b2159c633270d0b5915bf63fced SHA512 778ae54cceaf0140da6b2c09fe3ed3f39bf77b1e7a4e22235bbad956e4e1f6d9c90544bfd313f71d882218acb32998dc87a50628f2bccad47cbc13d870584166
MISC metadata.xml 419 BLAKE2B 6d92e0713ed8da803ff8b6c778e616882af2fdb1426a62ea7bb6a265bbfff9a5c7debb8bf6a25c4ab60ed54a865b79fa3da4a09bc8a9123acf63dcb32107f54e SHA512 f805393c909e4108fe72b94f131d37d45279af1a4b501f9c3ae12d21590ef9c19227ca2a4b2966239ddb84847ce979cfbfcf3f3a2d24b60cb23977c522ff59c3
diff --git a/dev-lang/swi-prolog/swi-prolog-8.3.25.ebuild b/dev-lang/swi-prolog/swi-prolog-8.3.25.ebuild
new file mode 100644
index 000000000000..2a8883edddfd
--- /dev/null
+++ b/dev-lang/swi-prolog/swi-prolog-8.3.25.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake desktop xdg-utils flag-o-matic
+
+PATCHSET_VER="0"
+
+DESCRIPTION="Versatile implementation of the Prolog programming language"
+HOMEPAGE="https://www.swi-prolog.org/"
+SRC_URI="https://www.swi-prolog.org/download/devel/src/swipl-${PV}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="archive berkdb debug doc +gmp java +libedit minimal odbc pcre qt5 readline ssl test uuid X yaml"
+RESTRICT="!test? ( test )"
+
+RDEPEND="sys-libs/ncurses:=
+ sys-libs/zlib
+ archive? ( app-arch/libarchive )
+ berkdb? ( >=sys-libs/db-4:= )
+ odbc? ( dev-db/unixODBC )
+ pcre? ( dev-libs/libpcre )
+ readline? ( sys-libs/readline:= )
+ libedit? ( dev-libs/libedit )
+ gmp? ( dev-libs/gmp:0 )
+ ssl? ( dev-libs/openssl:0 )
+ java? ( >=virtual/jdk-1.8:* )
+ uuid? ( dev-libs/ossp-uuid )
+ qt5? (
+ dev-qt/qtwidgets:5
+ dev-qt/qtgui:5
+ )
+ X? (
+ virtual/jpeg:0
+ x11-libs/libX11
+ x11-libs/libXft
+ x11-libs/libXinerama
+ x11-libs/libXpm
+ x11-libs/libXt
+ x11-libs/libICE
+ x11-libs/libSM )
+ yaml? ( dev-libs/libyaml )"
+
+DEPEND="${RDEPEND}
+ X? ( x11-base/xorg-proto )
+ java? ( test? ( =dev-java/junit-3.8* ) )"
+
+S="${WORKDIR}/swipl-${PV}"
+
+src_prepare() {
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+
+ sed -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" \
+ -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" \
+ -i CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+ use debug && append-flags -DO_DEBUG
+
+ local mycmakeargs=(
+ -DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
+ -DUSE_GMP=$(usex gmp)
+ -DINSTALL_DOCUMENTATION=$(use doc && usex archive)
+ -DSWIPL_PACKAGES_BASIC=$(usex !minimal)
+ -DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
+ -DSWIPL_PACKAGES_ODBC=$(usex odbc)
+ -DSWIPL_PACKAGES_BDB=$(usex berkdb)
+ -DSWIPL_PACKAGES_PCRE=$(usex pcre)
+ -DSWIPL_PACKAGES_YAML=$(usex yaml)
+ -DSWIPL_PACKAGES_SSL=$(usex ssl)
+ -DSWIPL_PACKAGES_JAVA=$(usex java)
+ -DSWIPL_PACKAGES_QT=$(usex qt5)
+ -DSWIPL_PACKAGES_X=$(usex X)
+ -DSWIPL_PACKAGES_TERM=$(if use libedit || use readline; then echo yes; else echo no; fi)
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ XDG_CONFIG_DIRS="${HOME}" \
+ XDG_DATA_DIRS="${HOME}" \
+ cmake_src_compile
+}
+
+src_test() {
+ USE_PUBLIC_NETWORK_TESTS=false \
+ USE_ODBC_TESTS=false \
+ cmake_src_test -V
+}
+
+src_install() {
+ cmake_src_install
+
+ if use qt5; then
+ doicon "${S}"/snap/gui/swipl.png
+ make_desktop_entry swipl-win "SWI-Prolog" swipl "Development"
+ fi
+}
+
+pkg_postinst() {
+ if use qt5; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ fi
+}
+
+pkg_postrm() {
+ if use qt5; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ fi
+}
diff --git a/dev-lang/typescript/Manifest b/dev-lang/typescript/Manifest
new file mode 100644
index 000000000000..52b0b7e35c0c
--- /dev/null
+++ b/dev-lang/typescript/Manifest
@@ -0,0 +1,3 @@
+DIST typescript-4.3.2.tgz 10624314 BLAKE2B b980fbabc60e143470d437a93247b874823353b7e7e9691b2a35abdfc2c5323fc7184f9ca8adca5211cebc329eac467900a7a54af8435e8955c8d76903a3f14a SHA512 cd9e214a19e69e8567007a551d6a5373176fedd58feb44b616cc9d40b57c5793db4b71627e3585151887496a4325a865cbcf0f472579b5e4d22e8ab8786ee62b
+EBUILD typescript-4.3.2.ebuild 766 BLAKE2B eaa420ad739ed7a4afee41b0d9f4fd7d3283a0a1ca75f5514383470bd4276538147f28ef777954605359a249df6a913e91f04ee75dd3ad55537803f10b1f1259 SHA512 3a65ae24834c4bb449361653daabd973c3bfa2b0d141cdfc90cac3dbcb913f9f161212c3a2b36d155adb9d13bc72051b23f056e6fa55f61e39a57fc0930107c5
+MISC metadata.xml 336 BLAKE2B 0c93fb15aeb261efb010ec4c16400ab2f2c55d881bfa636fca02ac4986f827fa604312f7dbe013592515145b9443cdd3d155493db667c3c0dd9e9ef74e971755 SHA512 d7c39b7326c09964dcd97a2a78970a9613b44e547bfc9c694038a899c8858938e97fc39e31a9c9dbf1aa3225668cfeb6e7ddb3b59927f08e8188282df0215b44
diff --git a/dev-lang/typescript/metadata.xml b/dev-lang/typescript/metadata.xml
new file mode 100644
index 000000000000..4690a60f1fb7
--- /dev/null
+++ b/dev-lang/typescript/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>gyakovlev@gentoo.org</email>
+ <name>Georgy Yakovlev</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">microsoft/TypeScript</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-lang/typescript/typescript-4.3.2.ebuild b/dev-lang/typescript/typescript-4.3.2.ebuild
new file mode 100644
index 000000000000..dcbc71b38d89
--- /dev/null
+++ b/dev-lang/typescript/typescript-4.3.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Superset of JavaScript with optional static typing, classes and interfaces"
+HOMEPAGE="https://www.typescriptlang.org"
+SRC_URI="https://registry.npmjs.org/${PN}/-/${P}.tgz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+
+DEPEND=""
+RDEPEND="net-libs/nodejs"
+BDEPEND=">=net-libs/nodejs-16[npm]"
+
+S="${WORKDIR}/package"
+
+src_compile() {
+ # nothing to compile here
+ :
+}
+
+src_install() {
+ npm \
+ --audit false \
+ --color false \
+ --foreground-scripts \
+ --global \
+ --offline \
+ --omit dev \
+ --prefix "${ED}"/usr \
+ --progress false \
+ --verbose \
+ install "${DISTDIR}/${P}".tgz || die "npm install failed"
+
+ einstalldocs
+}
diff --git a/dev-lang/vala/Manifest b/dev-lang/vala/Manifest
index 65f02308be4e..baf8c0c0b59c 100644
--- a/dev-lang/vala/Manifest
+++ b/dev-lang/vala/Manifest
@@ -4,9 +4,11 @@ DIST vala-0.46.13.tar.xz 3434196 BLAKE2B 49b7e0b776e185653c1b8c00747a150ceb42cf8
DIST vala-0.48.12.tar.xz 3492200 BLAKE2B 0a401ac4349dc1c628fa608b5a89504583d6d2bb05ca74eb507e766cca418121e14adfe6e8cfeb8f42212c717280b9b91426309df415d869896654be626c46c5 SHA512 da7becf8b92985a07b139651c14bd41ec86aed3e2b610029d2b376f70335c98607f39de4a1fa4efe9d51e6088edd4c13d22431cada389679d55f684ad548f4d1
DIST vala-0.50.7.tar.xz 3540048 BLAKE2B 4f3abdfe7f0448846f22a4d822b803484afd1a2371604d63cd7092e2854dbfdb15169ac74226404ca572bc8ac29d5262c6e39346271704003138b9881bd99b30 SHA512 50c4c257e0be020f45270b07fef3646712dc1556dd43ae9d54f164b97056b26779b3559deab9fe96afa11e2e97a13aa2cce348a34cf5d72ea6a3be4a8d7efc94
DIST vala-0.52.3.tar.xz 3575936 BLAKE2B bef10fdca6af1db5d8ff7b01b624fee5879d82ceb35ccc84d847f9ce26445194d4fc7ec8c3f8177534c0144e9027633ed1b00793e4e2edbe3df51f55f29129cb SHA512 5b757c6a9d1a2e9615fddb014c64a92f6a7c231ba964e449a43e9ad19293d415b66642625aad98d18e436ab438a4530d00bb670c7c7eaae56f43b407f4035bd9
+DIST vala-0.52.4.tar.xz 3577796 BLAKE2B 20f541f5429ef52cdcb4b0c5559dc312f62276ac6d91b3ca97f5bce4b954f7d0407637131e16db5a9f059f5ee3e7d44a414cc06311d49c294f22789db821ec79 SHA512 3c7daae4d26e6940b0735cee84f1a25f2aab12c93d2a8a9e9edec45c0c9dc9184cc790acbae19aba0fb31dfd7115afddcf8b9f09b0423b5b6950900641f4c527
EBUILD vala-0.44.11.ebuild 1112 BLAKE2B 481c622dead6198dfbc11fb7562b71e6504ab65e3ea354b4a575d138f4a881a8f1f1ae79a0071c7c965bd18c58afde0f79e37d9ba7947858236b408d72e38e18 SHA512 61983430919c70f1524f399cb2d45370f3efb2bd7f6ca347a4bb637062fa71b64cd8507fad5e10b1d6e9a9b2f70808e4cea3c93a2364421a888cbbd719f4110a
EBUILD vala-0.46.13.ebuild 1305 BLAKE2B 4855220ceb0594546be128b16092270a4d21459d6243c3510e36e556e5e075ab1caffbf579b2a661bbe6470eb24480879928714529a5f82b9d83b0dcbdfd8df7 SHA512 af281ba4479a81ce7e825df237d55e7db552a2f341fe27e0d41de4a0796d0e3e153f9eb01f7ed0ae2b070b5a2ccee6bc7ab32d890ba0ab99d6cadbc3ee14b33e
EBUILD vala-0.48.12.ebuild 1312 BLAKE2B 5acc6c67a78ff5aff422e44980db6072ea7f1311f46b107eba95ff2963b78518c2a60136c06fcf6da996cdb9bb222c7c9bda56c84c85166d7a69ca885b4683ff SHA512 78e461a215adbdfc7d7ae7ccccc9f97e1b408a133b0e33005841a74169c57adfc624e12ec0fdab9434ea6720649c3356e90cf9af79e698c2998fa93daac1290e
EBUILD vala-0.50.7.ebuild 1312 BLAKE2B 36746ae0645349498963828caec58e5e82cd9585b8381c268c6affbb884d223dcdeb2f629678de71d288b8b152820fcdf981d622659cafd249ece2d91b0dd656 SHA512 f013ca54bd4f72ba4e632fa5cd7817545bc778cd261c5167e9e566aca0cfa4b34ca7f02a7af2115701f2fae6830b7dab7ddcfbf312907210d064b96fdeeb9964
EBUILD vala-0.52.3.ebuild 1325 BLAKE2B 3f22f959527acc36013a9c07978b90b087b2075bc8b8208cfc190eac508d8192c6a2d5fa17bcebd259a6e18faf25e8e804b82e8463c05f9dca66484f555b4e45 SHA512 635fd952a9f4ab98718e22e5cf4806da041bda0ab2b09bc3cc18351de85a1350e912590aded7ba827d7d9460d5091c86900fa4216aea57fefd596357fa0212be
+EBUILD vala-0.52.4.ebuild 1332 BLAKE2B 07ebd950465ef0d16801dadd56096d7fa90c218c4e6dd08a6fd9fa487207701c02511c418d210967be351c12c757c342f268cba6f14ca97bd66087cef7ca6ab7 SHA512 e48dd90cd3daa8c2c6eabb13a1f00fcb636efa72c2d7cc581044692a2e78fc39b8cadc47b9ba46fead9f5f258204f25c16358ca81b3f4fa33d210fa6da28e2b4
MISC metadata.xml 345 BLAKE2B de3110ae281a87f8cb8f6c10d93705f56f0cfed972cd893a063e66c2629150d491498a29b35b4efe19fa5b6baa740f1d989bad440924befc60ef56423096f108 SHA512 163aa55430a075974d504a5bbb71ad9a249cb215de12a82b3141de18bb05f1e0c2078c02c617cf7d98a97c7f8dd407077183754d8c82c77e80dd0d7b2ec38283
diff --git a/dev-lang/vala/vala-0.52.4.ebuild b/dev-lang/vala/vala-0.52.4.ebuild
new file mode 100644
index 000000000000..fa44e86dd988
--- /dev/null
+++ b/dev-lang/vala/vala-0.52.4.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit gnome2
+
+DESCRIPTION="Compiler for the GObject type system"
+HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
+
+LICENSE="LGPL-2.1+"
+SLOT="0.52"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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 )
+ !<net-libs/libsoup-2.66.2[vala]
+" # Older libsoup generates a libsoup-2.4.vapi that isn't fine for vala:0.46 anymore
+# We block here, so libsoup[vala] consumers wouldn't have to >= it, which would be bad
+# as the newer is not required with older vala when those are picked instead of 0.46.
+# vala-0.45.91 ships a broken libsoup-2.4.vapi copy too, but that'll be fixed by 0.45.92
+DEPEND="${RDEPEND}
+ test? (
+ dev-libs/dbus-glib
+ >=dev-libs/glib-2.26:2
+ dev-libs/gobject-introspection
+ )
+"
+BDEPEND="
+ dev-libs/libxslt
+ sys-devel/flex
+ virtual/pkgconfig
+ virtual/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
+}