summaryrefslogtreecommitdiff
path: root/dev-lang
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-01-29 18:03:51 +0000
committerV3n3RiX <venerix@redcorelinux.org>2021-01-29 18:03:51 +0000
commitd7ed2b01311f15ba54fe8ea872aab7d59ab2b193 (patch)
tree1814dd2b5bbf2e7639fdafbeef48d228cfaf5e9b /dev-lang
parentabaa75b10f899ada8dd05b23cc03205064394bc6 (diff)
gentoo resync : 29.01.2021
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/Manifest.gzbin17023 -> 17008 bytes
-rw-r--r--dev-lang/crystal/Manifest4
-rw-r--r--dev-lang/crystal/crystal-0.36.0.ebuild121
-rw-r--r--dev-lang/erlang/Manifest10
-rw-r--r--dev-lang/erlang/erlang-23.1.5.ebuild159
-rw-r--r--dev-lang/erlang/erlang-23.2.3.ebuild (renamed from dev-lang/erlang/erlang-23.1.4.ebuild)3
-rw-r--r--dev-lang/erlang/erlang-23.2.ebuild2
-rw-r--r--dev-lang/go/Manifest8
-rw-r--r--dev-lang/go/go-1.14.13-r1.ebuild197
-rw-r--r--dev-lang/go/go-1.14.14.ebuild2
-rw-r--r--dev-lang/go/go-1.15.6-r1.ebuild197
-rw-r--r--dev-lang/go/go-1.15.7.ebuild2
-rw-r--r--dev-lang/janet/Manifest4
-rw-r--r--dev-lang/janet/janet-1.13.1.ebuild (renamed from dev-lang/janet/janet-1.9.1.ebuild)29
-rw-r--r--dev-lang/lua/Manifest8
-rw-r--r--dev-lang/lua/lua-5.1.5-r106.ebuild2
-rw-r--r--dev-lang/lua/lua-5.2.4-r3.ebuild2
-rw-r--r--dev-lang/lua/lua-5.3.6-r2.ebuild2
-rw-r--r--dev-lang/lua/lua-5.4.2-r1.ebuild2
-rw-r--r--dev-lang/ocaml/Manifest2
-rw-r--r--dev-lang/ocaml/files/ocaml-4.05.0-gcc10.patch59
-rw-r--r--dev-lang/ocaml/ocaml-4.05.0-r2.ebuild132
-rw-r--r--dev-lang/perl/Manifest2
-rw-r--r--dev-lang/perl/perl-5.32.1.ebuild821
-rw-r--r--dev-lang/php/Manifest4
-rw-r--r--dev-lang/php/php-7.3.26.ebuild2
-rw-r--r--dev-lang/php/php-7.4.14.ebuild2
-rw-r--r--dev-lang/python/Manifest12
-rw-r--r--dev-lang/python/python-2.7.18-r6.ebuild2
-rw-r--r--dev-lang/python/python-3.10.0_alpha4.ebuild6
-rw-r--r--dev-lang/python/python-3.6.12-r2.ebuild2
-rw-r--r--dev-lang/python/python-3.7.9-r2.ebuild8
-rw-r--r--dev-lang/python/python-3.8.7-r1.ebuild8
-rw-r--r--dev-lang/python/python-3.9.1-r1.ebuild8
-rw-r--r--dev-lang/spidermonkey/Manifest2
-rw-r--r--dev-lang/spidermonkey/spidermonkey-78.7.0.ebuild436
36 files changed, 1657 insertions, 605 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz
index 71015926c783..36c27f7f307c 100644
--- a/dev-lang/Manifest.gz
+++ b/dev-lang/Manifest.gz
Binary files differ
diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest
index 87327aa8e2a5..9071739bc6fa 100644
--- a/dev-lang/crystal/Manifest
+++ b/dev-lang/crystal/Manifest
@@ -8,5 +8,9 @@ AUX crystal-0.31.0-verbose.patch 701 BLAKE2B 34b74f073edf2979074cfa9042c73945b48
DIST crystal-0.35.1-1-linux-i686.tar.gz 28330633 BLAKE2B 1f393ad53f2643b4514de54192047f549cffa22b14afbf25d9de00bf815378ec65a5049a9eee28753dc13bc9fea40447be109f21b55518a6ed8f06353a0b26e6 SHA512 333c2cdbd40ef65de52c1056e6089628ed83daf1a1e9d5243e876b622545d767077b485003ae7efaedeb7807c03c40e6f356cbdcce4dab2319c1686da120dac0
DIST crystal-0.35.1-1-linux-x86_64.tar.gz 26653426 BLAKE2B a4ab58e784af3cd0298057a35079dfb48c9ca8d56388394377b86d7475d143a07cc3a800cdee3c9af3054d249ac9b87808d86b25747fc8f9322d01f25a3e3dec SHA512 1cceea5742651e2708e19ea49a7a884500d21beec3eaed75fc9e4b82e7dabaa521143b6c576ec48d2f5e27951163fd8c2ae417f46a1847c68f6e91c9b2a9a72a
DIST crystal-0.35.1.tar.gz 2349984 BLAKE2B bf9078c949499e3f8469a055908c23335b04f2a58ab323345bdcdf1de70d00cdfe3aae7baf93e5098e21852c59d1cd8a0fb4faa91c9877d7ef2347a5faeaa69c SHA512 0381568330802de5838f8e66600567817b60ba0087bb3cc2b5df2944c5c42779039b606c81e0207bef34082bf25331b590a8140830f65ba4106ae465f717000b
+DIST crystal-0.36.0-1-linux-i686.tar.gz 30860920 BLAKE2B c2c9b55a100e65cb3dbefe69782c72a522e71751bcabcfd38f582e010585349f4213464af3fd6c7ddb90ddb7f579e56dc07ed56dc06b7c6bc7ae4b561f1705e6 SHA512 5363cef6622b86cf8786d65926e105a643790cb62bfdd2555df963d83fa06dd55f493e172115c4788fd82cecc477d92fb77b1c0b73f92e23a9378799dedfd64e
+DIST crystal-0.36.0-1-linux-x86_64.tar.gz 28383614 BLAKE2B a34e5448395bd079c10504b0f0d7de23fc916c8e0db51bc0b1462e13ec68c7f08eb04e73937756673e11a7100aa5cdd6d2d4aa8d38e145027bf6e4c19cd0bbbe SHA512 49710ba0ceb8aef39971e6731e5ce902274d7ac5f02289df6e1eb7b9bea73b7d6c188547df48e8acc44bc8088a2d3f7579770cdcd2fd118ec672b606ca073b9b
+DIST crystal-0.36.0.tar.gz 2411744 BLAKE2B b564199de1cf30a418b6e06ffb2d8045d1dcebe60b58143a0579dcee2eb5c0d514c30a7e7d083ad2f6c8393423dfa3c8bc8bbc2dfdf2d6387d258b1dab7caf66 SHA512 561c5f97a9355a616a42ec9c88853883ee06a6f472918bf5f2714c0dacefa87209b06bc419355da88c3f5248ce713710960e24e0bc8e9eca07ef9c8b970661b8
EBUILD crystal-0.35.1.ebuild 2934 BLAKE2B e5ddc56292fda1b72b86f1f7e0e0d3c926af90424f56240e1dee74579dea85707575e63ebee047981b5b7a9f43fe60b5adc13df9d19ffbc55fe85b92d750702c SHA512 dec89c833518f8e4d55f374c9b22fee5ff0fca89c09330346d1fb908fe57cf8695a7276cafb8d0a1d3a7742b17db4dab0bde407d04292b888398f19c05def882
+EBUILD crystal-0.36.0.ebuild 2934 BLAKE2B 3e9544e66fa9843128ee5a51249b38630fbd40f97e713fb44402fcb712a75d74c1b0b7c0016efdbec67ba566a5a9b68af3abc5a060fb9f391eb636ad1c54e57c SHA512 546f619aa496c9eebab4ccc42c814e0e86cce99fa5d4cd0e53089b306857c38b750f6c2de634ab2403c6823152dd5e195578b4f9f968577b0823c5661d7fbdd7
MISC metadata.xml 995 BLAKE2B 00f6cfc63cec16ab8c6f983316f5872e63573f2d680da810b9b97d88c2ff6e21c15327a1508d62234e324f7145ca248a9ce1aa7286b0e34d9ee3dcba1481ff25 SHA512 da6a6f834b0d961477b95045756c539df7a968fe240f9f0c1c8183eef3052dddefb8d20547d668b07fece74c96b94bbf18baaac59e7328ff322355227d1adf02
diff --git a/dev-lang/crystal/crystal-0.36.0.ebuild b/dev-lang/crystal/crystal-0.36.0.ebuild
new file mode 100644
index 000000000000..31b5378f2b33
--- /dev/null
+++ b/dev-lang/crystal/crystal-0.36.0.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit bash-completion-r1 llvm multiprocessing toolchain-funcs
+
+BV=${PV}-1
+BV_AMD64=${BV}-linux-x86_64
+BV_X86=${BV}-linux-i686
+
+DESCRIPTION="The Crystal Programming Language"
+HOMEPAGE="https://crystal-lang.org"
+SRC_URI="https://github.com/crystal-lang/crystal/archive/${PV}.tar.gz -> ${P}.tar.gz
+ amd64? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_AMD64}.tar.gz )
+ x86? ( https://github.com/crystal-lang/crystal/releases/download/${BV/-*}/crystal-${BV_X86}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc debug examples blocking-stdio-hack +xml +yaml"
+
+RESTRICT=test # not stable for day-to-day runs
+
+LLVM_MAX_SLOT=11
+
+DEPEND="
+ sys-devel/llvm:${LLVM_MAX_SLOT}
+ dev-libs/boehm-gc[static-libs,threads]
+ dev-libs/libatomic_ops
+ dev-libs/libevent
+ dev-libs/libpcre
+ sys-libs/libunwind
+ dev-libs/pcl
+ dev-libs/gmp:0
+"
+RDEPEND="${DEPEND}
+ xml? ( dev-libs/libxml2 )
+ yaml? ( dev-libs/libyaml )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.31.0-verbose.patch
+ "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch
+ "${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch
+ #"${FILESDIR}"/${PN}-0.27.0-max-age-0-test.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
+ "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix-2.patch
+)
+
+src_prepare() {
+ default
+
+ use blocking-stdio-hack && eapply "${FILESDIR}"/"${PN}"-0.22.0-blocking-stdio-hack.patch
+}
+
+src_compile() {
+ local bootstrap_path=${WORKDIR}/${PN}-${BV}/bin
+ if [[ ! -d ${bootstrap_path} ]]; then
+ eerror "Binary tarball does not contain expected directory:"
+ die "'${bootstrap_path}' path does not exist."
+ fi
+
+ # crystal uses 'LLVM_TARGETS' to override default list of targets
+ unset LLVM_TARGETS
+ emake \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ \
+ PATH="${bootstrap_path}:${PATH}" \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV} \
+ CRYSTAL_CONFIG_PATH="lib:${EPREFIX}/usr/$(get_libdir)/crystal"
+ use doc && emake docs
+}
+
+src_test() {
+ # EXTRA_SPEC_FLAGS is useful to debug individual tests
+ # as part of full build:
+ # USE=debug EXTRA_SPEC_FLAGS='-e parse_set_cookie' emerge -1 crystal
+ emake spec \
+ $(usex debug "" release=1) \
+ progress=true \
+ stats=1 \
+ threads=$(makeopts_jobs) \
+ verbose=1 \
+ \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ AR=$(tc-getAR) \
+ \
+ CRYSTAL_PATH=src \
+ CRYSTAL_CONFIG_VERSION=${PV} \
+ \
+ "EXTRA_SPEC_FLAGS=${EXTRA_SPEC_FLAGS}"
+}
+
+src_install() {
+ insinto /usr/$(get_libdir)/crystal
+ doins -r src/.
+ dobin .build/crystal
+
+ insinto /usr/share/zsh/site-functions
+ newins etc/completion.zsh _crystal
+
+ use examples && dodoc -r samples
+
+ if use doc ; then
+ docinto api
+ dodoc -r docs/.
+ fi
+
+ newbashcomp etc/completion.bash ${PN}
+}
diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest
index 3dc7718c93b9..49fcae8845d3 100644
--- a/dev-lang/erlang/Manifest
+++ b/dev-lang/erlang/Manifest
@@ -8,21 +8,17 @@ AUX epmd.service-r1 159 BLAKE2B ec50e4bfd89dc2d35fc2e549c695f9aae163d3df4d3c7a0d
AUX erlang-22.0-dont-ignore-LDFLAGS.patch 1174 BLAKE2B 64900c6b934ecbd11238e604f907e6f8b1ec2730d2b98aad5405383742563e050bc6ffaae22d55a22998658460109fac9f6628458f5e976e9fbfe71cc26f1d64 SHA512 0fd7cbef64a9a54e0959d49b50096f9abc6fcede4360c153631c7f649f5c41b35ffb1f2d06f80964bf49421464bcc43c96147c227d60cf413c51b3e89ae9ad24
AUX erlang-23.1.2-ac2.70.patch 2596 BLAKE2B 740d4e2f30f5a1426fc4511512ae73337150c11d1e5c702b519cca456d7a796b890d7e17a9854a196fa45287a00e3c654556bdc2d8b99c35b9e494a1dc73592a SHA512 16c7d71cd4a075c5e470f54c82817c9b1dc8e83ddb9f9e4af544090b3d9ea418de5c9d47f0372706bc2c9c097a7f347a40a951d339f8895cf0ef862325940e44
DIST erlang-23.0.4.tar.gz 56394805 BLAKE2B 10a4e9e3084ad2d1bb10fa736d86eb03fa6b249f83b9d06bfef4c37f99ad86dd1415c2fbaa1524cddaf57dd228d25f388fa9fe9f5b4a03ba7477080e11020fb1 SHA512 53d4b7a5e76113bb3a9695a266e58dbebb57887b1eea4e8acb56bb85d194295231d739719d526dfc6d1f0bf745d7f059fdf5ec9dc79859f5b16a75c4d0a6b348
-DIST erlang-23.1.4.tar.gz 56503340 BLAKE2B f4b26aa5882bb3d2218897706734798a80cbb5113008be70b2a0c793a5cc1eb01eb1ace17ae525e19f176e47ffc85b108240b7fec71cf8eedb4d67860ecaa98b SHA512 864b69fc69f3843dfe839faf1c1e86ec505282ec4d86ed1add445998ba28bcc623522471d8d8636a9cf1e24e84f99d5cae3880a4b1171abab9651ef242a55367
-DIST erlang-23.1.5.tar.gz 56508089 BLAKE2B 7784cbed8df68d449cbace6d84b37208b739a3b12fbed1117f05c765883d348e877001f5eba15ffdec5acc47725bf69d06a7f02b48766efa5496a8326fb8eb8c SHA512 dccb863ace1f3c3fd17c848bf21c982338546e2be2a3b81ade35bcefeb4ff75afff28ebe2363ccf7f4680417f83bbeaa51c74274a23621139b5a4be6bb824955
DIST erlang-23.2.1.tar.gz 56580525 BLAKE2B 4b5d4be9d0501dd2eb5d44357ccc9a169dc3b5742380264a7929e6aebf1d003327b2c109aa7dc4ad668f1576376e54022ff240f41df7af9010184d643eae2371 SHA512 444c19fac295a979321ccde1f516156a25faa79d66437ddf7bc0a197f3fb8d2ddd6c056d565f9b6bc47e8444b8feda790c4844dbe95ec0b300428fb22c4e0531
DIST erlang-23.2.2.tar.gz 56594755 BLAKE2B 3f5c552d3cd070b36bc7a1112b9541f358001ee4ad49a62ccce3462b02b642d4abc0bf8844e5441168be850f5588cf4ecdbf545fcff60e7746cec637898f2c7e SHA512 26743a7a4b2e31e63c0940ed6fdad64427c22e0f08fc063e1b8639bea6fa89c6b24e9c87ca572475d3ce39a18857ef6143676653cdf97b374656ae49f5892633
+DIST erlang-23.2.3.tar.gz 56590563 BLAKE2B 319dbdeedfd74dc6341494d5ed81734c15475ea364f0b5690ff4d8030d7aea30fe66831fa06197e8a7334d48bdb4f0345effcf92afe1b70dd0ab79b5700cba1c SHA512 c1c176d908ac0a2470926997ec62d0e2d330aac25202e24314af1d57171d460fd5582e9ece9e289d7eb5c2728a6966b130e14ada10ba8ead04d47a849287ded4
DIST erlang-23.2.tar.gz 56581092 BLAKE2B f3191b99465ab18eaf13c6d15f79ae150fb04337450b3ff145532aab0da229c44c082bb138a79c84860f09107a363c34e2b2505ce38c6c8dea1ede5fbe3ce044 SHA512 3bdb464992387c5a352c11bf9dc49c6a982dac10865d2b668d8db6fb45db15f4d79d38976d04fbbd51568ee9efb8b5295bb06b6fee37b81fde6fa43c51dcc313
DIST erlang_doc_html_23.0.tar.gz 36238699 BLAKE2B bce5fb1d766d3a795728cf7c00529129690f52e5dbe7363095cb7e63d5331a4dfc05c2042d24f10c7f3facbd187284aa323a92c0ed7515c1750aee4cd890fbd4 SHA512 bd0b1adf8639674d31152024e1351105249c6e6f93f28362e9e4b66ce6daadbe5eef5917a5889c926130e81bd000cfc44895ebaa309bf9a0c1c125713b715927
-DIST erlang_doc_html_23.1.tar.gz 36285075 BLAKE2B e2e24ac4cecfc9c10853fd3718e8e332579a91bf25eaaf9e0fc2044d89bcd6d03fd251d6a8ab64a86439f1244e275ef398701b47933a741d4e64016838db48aa SHA512 c8fecb08344c9c7a4c7b911ac4f73e2d8c0c3778d665098c3377e055346a7ecfcc378bca28dff768c36dc7bf7447308f4fb58273875c22f2d6cd896fd6232656
DIST erlang_doc_html_23.2.tar.gz 36537148 BLAKE2B b19d3fb5836b50512db6913ccb9116bc06ef4677c9514db89714ac72a9e7569b2c52612c357ccbf9a12610000885cbc8a43cc17f80c533a3c65af89c1b592ba6 SHA512 0d334dfe46ecffd6ff720d176c4514e2d49ba1b5feccd80f8392a8335100a6c289207431d2c0da02043c923de083290f9fd23726a1d1481508acdd7596f67ea4
DIST erlang_doc_man_23.0.tar.gz 1383486 BLAKE2B 63a9989c26797fe07fbd0ccca0d8425d94bc60a86fa93b5332c8d1f3e12a0071d9e6d4759be73bf44bf35dd14723b9e6707a84ba834e1775bc28aeec1edbe168 SHA512 81575ce7b267f5bb48bd844808e8edd4e373640bbc481372b288602eb9d3c9917e6c7c040c035b63a2f6edf437c3d826d6afdf5801765b51d9edd4a3b2a5b16f
-DIST erlang_doc_man_23.1.tar.gz 1384042 BLAKE2B 914f64d9317e45e22dc0a3025306d36f12eb998734bd15cd29b540f9a848f11c1cf6897f9cd7aea2d2c95ed6ef3e544ee674a9a97a87e0340e4b65e09b0cee6e SHA512 90f026618f45a2a78590f093378e4883c5f442816367eb1691ea4fe7c36694f4a47325e738e6b585195678993bcdefdf4f8180894b16721277d02b2b79aef285
DIST erlang_doc_man_23.2.tar.gz 1386417 BLAKE2B 91fb2646461330c2f3793e7819e4c77ba9259366098b710fd102ffbcbcf38fa84ad720613313e3c59c1d419aaddd5a1a85d26c5d41a71d6692d428a494f57012 SHA512 464fa2c3608a6c096a241e5fc2cee710ef51394b169e3b3ce3ab5f69d847437c54780d4afc1a799d13f88ea88ac64056b19bff4d927e1e6bbe54a773b0ccd89d
EBUILD erlang-23.0.4.ebuild 4563 BLAKE2B d144bc5d0c8f802d720fd36a53663692f8e335f766ced3c9bfab0c9dc5086c875df2b6cb42fb840304a659f203c70ec150fffea072d9e04dc5e151a55325c067 SHA512 a16aa96dafb7729c137e06c5d4c654965437a80becd9a5913d33ced734063e0947d61c2a2672e1ef6fff8dbec14b9a736e8d4b94a839a7da4e8add656645269e
-EBUILD erlang-23.1.4.ebuild 4604 BLAKE2B 94eb0cd161622bdaf13b9c4cd9d4f2ccca1a76afae3e162a035520f0bcc0dce5f8feeb3c13823b069c89bc8219c7c12c443d8e375b744598ee771135966f8856 SHA512 d3b6f3043a10e12b52cbab260f90852940bc83b1101f65d0216a23e5edd04edc09bcacc04341c272bfb251ac1303de0e14932fca48018db443a977817645158b
-EBUILD erlang-23.1.5.ebuild 4604 BLAKE2B 94eb0cd161622bdaf13b9c4cd9d4f2ccca1a76afae3e162a035520f0bcc0dce5f8feeb3c13823b069c89bc8219c7c12c443d8e375b744598ee771135966f8856 SHA512 d3b6f3043a10e12b52cbab260f90852940bc83b1101f65d0216a23e5edd04edc09bcacc04341c272bfb251ac1303de0e14932fca48018db443a977817645158b
EBUILD erlang-23.2.1.ebuild 4609 BLAKE2B b8ddf3bcd86dfb396a99e3209280b77e2ed8e1c5af99ddba34be0adf9b40bd58053bd254e1b52b4df6fe26e01e5ccb24c999ca4b4ddd4858488c78d79a06d684 SHA512 42d3fd1039bf50fe419a53aaa05d6c0602506e67b125049592881f732493851b07671b174e41cceb97334b2afa35bfd3ff89c70eb4e832bd8c2bdaba3f053fe6
EBUILD erlang-23.2.2.ebuild 4568 BLAKE2B afa013bfe43d1c6c8a9853f4ffaa3ce26095d5eba4dba1383f56ac0378fe1f3d73f2cfbfdb17df4c689764eaedcb349d65ea2b99aac67ff452f14a3d2d17be44 SHA512 7e8a5cb7c184d4e0ae500593764f6fbd9866e0ffc22c33359d0b2911b0b98a546da0998fb0aba17534e97ddb7ebc981f2e470c542378b0def45897383d26bd8a
-EBUILD erlang-23.2.ebuild 4606 BLAKE2B a5cea3852b65c49661148be2b6096c25cc1a1f3c638ddd14d131abf9f11b0883a92cbea258a6490c1044a13770d4140e0534bf8e9d418ecbc7fe6c49bf334980 SHA512 fa81f994489cf22305a7624a8f582487c8bfa450c802acf3c78e650bbd640624c1f775e32613d99d5c844db425803393a64f8709561121307f4439045b1e52f6
+EBUILD erlang-23.2.3.ebuild 4568 BLAKE2B afa013bfe43d1c6c8a9853f4ffaa3ce26095d5eba4dba1383f56ac0378fe1f3d73f2cfbfdb17df4c689764eaedcb349d65ea2b99aac67ff452f14a3d2d17be44 SHA512 7e8a5cb7c184d4e0ae500593764f6fbd9866e0ffc22c33359d0b2911b0b98a546da0998fb0aba17534e97ddb7ebc981f2e470c542378b0def45897383d26bd8a
+EBUILD erlang-23.2.ebuild 4604 BLAKE2B 94eb0cd161622bdaf13b9c4cd9d4f2ccca1a76afae3e162a035520f0bcc0dce5f8feeb3c13823b069c89bc8219c7c12c443d8e375b744598ee771135966f8856 SHA512 d3b6f3043a10e12b52cbab260f90852940bc83b1101f65d0216a23e5edd04edc09bcacc04341c272bfb251ac1303de0e14932fca48018db443a977817645158b
MISC metadata.xml 834 BLAKE2B 1f394278eed4a3ac5e1c04f4ffced7042cc910d9e84ed4ad955cf91240446410f0ffbf1c138cc76cfa55d40c0eb0f110da98cd49c59df2b12ae70c13afd45a06 SHA512 7c067d233ffae83e4b1b55ba9e8adffe125d27f5f81401a4e4262d9b713b08bdaa4dd927570b2d32591092ca387372ee206e25e0b939ca721c96317fcd3d2be2
diff --git a/dev-lang/erlang/erlang-23.1.5.ebuild b/dev-lang/erlang/erlang-23.1.5.ebuild
deleted file mode 100644
index 27ebfc6b45ee..000000000000
--- a/dev-lang/erlang/erlang-23.1.5.ebuild
+++ /dev/null
@@ -1,159 +0,0 @@
-# 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 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 +hipe java +kpoll libressl 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? (
- !libressl? ( >=dev-libs/openssl-0.9.7d:0= )
- libressl? ( dev-libs/libressl: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}"/18.2.1-wx3.0.patch
- "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
- "${FILESDIR}"/${PN}-23.1.2-ac2.70.patch
-)
-
-SITEFILE=50"${PN}"-gentoo.el
-
-src_prepare() {
- default
-
- ./otp_build autoconf || die
-}
-
-src_configure() {
- use wxwidgets && setup-wxwidgets
-
- local myconf=(
- --disable-builtin-zlib
- $(use_enable hipe)
- $(use_enable kpoll kernel-poll)
- $(use_with java javac)
- $(use_enable sctp)
- $(use_with ssl ssl "${EPREFIX}"/usr)
- $(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/erlang/erlang-23.1.4.ebuild b/dev-lang/erlang/erlang-23.2.3.ebuild
index 27ebfc6b45ee..e78f4f36b069 100644
--- a/dev-lang/erlang/erlang-23.1.4.ebuild
+++ b/dev-lang/erlang/erlang-23.2.3.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 libressl odbc sctp ssl systemd tk wxwidgets"
RDEPEND="
@@ -50,7 +50,6 @@ S="${WORKDIR}/otp-OTP-${PV}"
PATCHES=(
"${FILESDIR}"/18.2.1-wx3.0.patch
"${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
- "${FILESDIR}"/${PN}-23.1.2-ac2.70.patch
)
SITEFILE=50"${PN}"-gentoo.el
diff --git a/dev-lang/erlang/erlang-23.2.ebuild b/dev-lang/erlang/erlang-23.2.ebuild
index 3c1427ccf895..27ebfc6b45ee 100644
--- a/dev-lang/erlang/erlang-23.2.ebuild
+++ b/dev-lang/erlang/erlang-23.2.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 libressl odbc sctp ssl systemd tk wxwidgets"
RDEPEND="
diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest
index 0b03eecae913..db9ec27eaffb 100644
--- a/dev-lang/go/Manifest
+++ b/dev-lang/go/Manifest
@@ -1,11 +1,7 @@
AUX go-sets.conf 313 BLAKE2B 03e94776e317d34b72bfb8385b8b0dfa6a599a6086e4d0c9214e7b49293768947c21d9afb323ffcc7fd85ba0af72d9cb243dbb571eee9eb81de9400fd5f5e79c SHA512 7d01b98bc8d1b609183682dd942bd4c9fa757a98243c7de3cf6c497c7bc20b8cdbe59dd669ce4bb11f914a0e9b6d100e65cea2dffd99f38be50b18e0ecf66315
-DIST go1.14.13.src.tar.gz 22553900 BLAKE2B 35aed1c43a59e06c1d5feaa91a6c4120c586958257cb3e4f83ab4e767159e20ae953d70bc0debabd80722bca0965d1b129531a2bd89f558df0a8700cadc09edc SHA512 b54a0bc3b85809a78d4704fe2e97ad7417a2027608ec0f90c2784e2ddb28b505df3cda862dc6f1b99af2d136363cbb9b120e2fd6ed985cb300c43f8e539a5e28
DIST go1.14.14.src.tar.gz 22557733 BLAKE2B aa3638c7a20f89e90bf17e9da1b12323cc8c0f52fb0a92ca6a850f7b2c94e406ea50a57fc28cc34b951bf7ecee0a9bb1ce884ad86dfc23241d7b62cd9435f881 SHA512 76213b19eeec66ca6c6b5bdef875bea0b64c3877c70eec64dd65f7869ceb8db016ff19193f01771f8944fd5f0ae3b54c68185e158f2622d1db5552fec1f37976
-DIST go1.15.6.src.tar.gz 23019337 BLAKE2B d328401af9843f4a099dee7d82433ad2a0b349add0f2ecb609635814cca610e17a6fc50215e9928b8cb0d8ea8dd6ae9d84ffca125e1362dfb18ba08783bb4264 SHA512 f20e495204f32170d6554e8f4b64763dae8302a7859005020f650d1d53a5b15de3afbaff28e0b6418287396166c67bdc4c6bee7a0fd7ba8a87bb79b6c1d38326
DIST go1.15.7.src.tar.gz 23017978 BLAKE2B 15b0827fb56b8e9208c65e8f7f11c7f67820efce1627b4123e937301bb437c597e87adfff9a2eee9aaf53ba0f22eb2f10746bafb7247b4250566f20181b7a2a0 SHA512 7b3e8bcd2fc95baad41f8b5f0456c009e01896d160e65c2670d51c23d8cfcf7a6801e831e6f9a8877fe58c8f54ac8f75bf6e7935b38ba7aaa51dc8e46cf76ddb
-EBUILD go-1.14.13-r1.ebuild 4574 BLAKE2B c9833658e5cd6f2a032663144aaf037d72a9175da16c4ca2562b49030d434335c9a981761c7ba13217bc3e80805eb127a6a16705fdacc681017a67f96235c20d SHA512 ff8b197a487280639b7e687a823277e260da97ce44d12ccbdbda00d25cb6dbae2b683b34ea8eceb3a98f368bd5fe6eb18f37b4ebd3bab10c2536c85334809122
-EBUILD go-1.14.14.ebuild 4577 BLAKE2B 50b6f9f44810ba3473936dbded7727569b76adb0c0827529cf96ec248108f9083fc2d118cb8f9316e361cbc2a5f7cc8e95121fe208982b21922136d382a81bad SHA512 9e08f5d30a0d901017c2b23c12a5f20260bddf3b053ddc339a1532571e0e2b2a4e51de89f7d591404fdd59ac2b917b187b05d740a3f5c36d20fb0c3095e962ab
-EBUILD go-1.15.6-r1.ebuild 4574 BLAKE2B c9833658e5cd6f2a032663144aaf037d72a9175da16c4ca2562b49030d434335c9a981761c7ba13217bc3e80805eb127a6a16705fdacc681017a67f96235c20d SHA512 ff8b197a487280639b7e687a823277e260da97ce44d12ccbdbda00d25cb6dbae2b683b34ea8eceb3a98f368bd5fe6eb18f37b4ebd3bab10c2536c85334809122
-EBUILD go-1.15.7.ebuild 4577 BLAKE2B 50b6f9f44810ba3473936dbded7727569b76adb0c0827529cf96ec248108f9083fc2d118cb8f9316e361cbc2a5f7cc8e95121fe208982b21922136d382a81bad SHA512 9e08f5d30a0d901017c2b23c12a5f20260bddf3b053ddc339a1532571e0e2b2a4e51de89f7d591404fdd59ac2b917b187b05d740a3f5c36d20fb0c3095e962ab
+EBUILD go-1.14.14.ebuild 4574 BLAKE2B c9833658e5cd6f2a032663144aaf037d72a9175da16c4ca2562b49030d434335c9a981761c7ba13217bc3e80805eb127a6a16705fdacc681017a67f96235c20d SHA512 ff8b197a487280639b7e687a823277e260da97ce44d12ccbdbda00d25cb6dbae2b683b34ea8eceb3a98f368bd5fe6eb18f37b4ebd3bab10c2536c85334809122
+EBUILD go-1.15.7.ebuild 4574 BLAKE2B c9833658e5cd6f2a032663144aaf037d72a9175da16c4ca2562b49030d434335c9a981761c7ba13217bc3e80805eb127a6a16705fdacc681017a67f96235c20d SHA512 ff8b197a487280639b7e687a823277e260da97ce44d12ccbdbda00d25cb6dbae2b683b34ea8eceb3a98f368bd5fe6eb18f37b4ebd3bab10c2536c85334809122
EBUILD go-9999.ebuild 4579 BLAKE2B c19b3d07e84df70393c8242eb825444436b97d591b214bf1fbd6d265ac0e276fd147d1cfa96e61b1e33468d56eb355cdeda807af7beaa0b3fdcb2f1d1f989374 SHA512 768d17b68de2925267e8274f9e216cd5f79c13be54cb986d0126ab85beaaaa4e46d8ca18422786ee09813b4707aafc6695df815e234fa330dc0211c2ebd398d3
MISC metadata.xml 462 BLAKE2B d9d4280e921286791a55619a7e5557c7041b0de157aa0f8bf6f17cf5041f802df4037270eeb3e8d37263f9fc17939c619a0dd3bce449c5f247279884da10bf67 SHA512 26fa7bfe26f00e8e1766cc0a1052fb8b5352799a33c9eb8f0c4f4523601d3eb5d1da8adc4b731f0d778039788734a9ad483f22e58e4bf1551ec8e9dccbcb87ba
diff --git a/dev-lang/go/go-1.14.13-r1.ebuild b/dev-lang/go/go-1.14.13-r1.ebuild
deleted file mode 100644
index 55fd0c4f6bf1..000000000000
--- a/dev-lang/go/go-1.14.13-r1.ebuild
+++ /dev/null
@@ -1,197 +0,0 @@
-# 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.14.14.ebuild b/dev-lang/go/go-1.14.14.ebuild
index 59b37bd3e992..55fd0c4f6bf1 100644
--- a/dev-lang/go/go-1.14.14.ebuild
+++ b/dev-lang/go/go-1.14.14.ebuild
@@ -21,7 +21,7 @@ case ${PV} in
case ${PV} in
*_beta*|*_rc*) ;;
*)
- KEYWORDS="-* amd64 ~arm ~arm64 ~ppc64 ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+ KEYWORDS="-* amd64 arm arm64 ppc64 ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
;;
esac
esac
diff --git a/dev-lang/go/go-1.15.6-r1.ebuild b/dev-lang/go/go-1.15.6-r1.ebuild
deleted file mode 100644
index 55fd0c4f6bf1..000000000000
--- a/dev-lang/go/go-1.15.6-r1.ebuild
+++ /dev/null
@@ -1,197 +0,0 @@
-# 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.15.7.ebuild b/dev-lang/go/go-1.15.7.ebuild
index 59b37bd3e992..55fd0c4f6bf1 100644
--- a/dev-lang/go/go-1.15.7.ebuild
+++ b/dev-lang/go/go-1.15.7.ebuild
@@ -21,7 +21,7 @@ case ${PV} in
case ${PV} in
*_beta*|*_rc*) ;;
*)
- KEYWORDS="-* amd64 ~arm ~arm64 ~ppc64 ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+ KEYWORDS="-* amd64 arm arm64 ppc64 ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
;;
esac
esac
diff --git a/dev-lang/janet/Manifest b/dev-lang/janet/Manifest
index ad75d6dd2614..d9155f4fb42a 100644
--- a/dev-lang/janet/Manifest
+++ b/dev-lang/janet/Manifest
@@ -1,5 +1,5 @@
DIST janet-1.12.2.tar.gz 558788 BLAKE2B 0cdbc33d968b0b589cfc0ccd6dd5ffffe23932daa48e67c035d67d4bba0519083503693be470498c1f6d2811b164bfbb3d2fdb35967c6bd64808ec87f1fd9770 SHA512 bde3d516b0a1c55ad8edb2dc701a3afdb5e7c2bd028b132598d1a08796aca5f17f71dd2c760192a9703a07adb3450a7af6971611ae57005eafad1b741b0b69a6
-DIST janet-1.9.1.tar.gz 995046 BLAKE2B c65f59e874690b124b61811406670ed6bf9e23d930b5206a9fefebd64629a2287076a40db885b8a820d733a353237fea65dadccdf4efdd33f1537127f67e66b1 SHA512 4024b2f5bc52338b77c954e384157234ef3cecf21142ef60158adb656396b42accae3af8acb8e54f602f5fbce0e1e1f7f29030878ef2ac7055e933dd710db879
+DIST janet-1.13.1.tar.gz 584998 BLAKE2B f1bfd9e62dde786127a1307d38f48fc7e75b9fb09f009f9d01eeefa593b67c2469e213fd366fac7c52e0372e61b1a9afdb558e8a1be1ab2f4f538b5fb39075f3 SHA512 8022ecbaf7680855611202a3c17b8e5f6dc61a9302508c9de5312dbd9e80d40c24786bb5e8ae653ab5a7b00191a2d7c44cc3e305d31245e3e8c53be0e1c80372
EBUILD janet-1.12.2.ebuild 1748 BLAKE2B a03cc9399f248d6050bf59f6ce251fbce076a9276da10415cc13c58cfc07e44d3ac6772a7c86394ed83e4b78063742d2f42d7c52eeb47227b8c9d7ffd657cf56 SHA512 ddec46f26a72ddb59c9bc5f46db601625afb1764ebeb5826221ab4d89634538f6d840e622d292bd8ece3a4577c31b5a8a7746fd88f8e25baeb8e2b1df3f6c9f8
-EBUILD janet-1.9.1.ebuild 1236 BLAKE2B 4fecac4c852138871a7773b18d3990c47cb750a96d3357739f9c763fd01d6e7f7a5f82b9cf0123aef3d6fdd35f21dfcae51806574bf96990a1b24d99f1589f58 SHA512 44295b27d54b8c99914918dbe834c4d23eb7edbe8f6e440a3255e35153977b9bf47dcc5aa31920b0b6a42ac6978eb6b2a92a7aafcc986a7b127dd99753964d36
+EBUILD janet-1.13.1.ebuild 1748 BLAKE2B d33aedc446e1692e0c39aace488070501e3cff1efff6545fd0d43710efa16d7a5a5cc52d0fbc360756b04d78dd8f015c12526cab986bad05bd75de5326fae923 SHA512 9d41ab1921792cfc549d1bb8b9bebe3b8080de6ade08ca189ea8422bfa3a7106e722374b31d240caee2d00656b85dca99bf69608218ee20e2c2677b43083b09d
MISC metadata.xml 960 BLAKE2B fe836e1f5b7313091bf2c4341a30f7c395056fd4c63a2477a83a55daecede052eea148dc44cb253e8bead356e7b501b7698be4c787f05fdabc08638b2db7163c SHA512 a54e679498bc1239c6eda2302213e220a69eb25e5be02d3c945c89ed3943849adb7043ea6794aa5ad6e3a53026f7b06c16e7ba2ea35d5022d1cc97a9f561a4ba
diff --git a/dev-lang/janet/janet-1.9.1.ebuild b/dev-lang/janet/janet-1.13.1.ebuild
index d853136872c9..eafa5bbb9208 100644
--- a/dev-lang/janet/janet-1.9.1.ebuild
+++ b/dev-lang/janet/janet-1.13.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2020 Gentoo Authors
+# Copyright 2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -14,29 +14,34 @@ SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="static-libs"
+MY_RELEASE="${PV::-2}"
+
src_configure() {
- append-ldflags -Wl,-soname,libjanet.so.0
+ append-ldflags -Wl,-soname,libjanet.so.1.${MY_RELEASE}
+ append-cflags -fPIC
}
src_compile() {
# janet_build is the git hash of the commit related to the
# current release - it defines a constant which is then shown
# when starting janet
- local janet_build='\"4ae372\"'
- emake PREFIX="/usr" JANET_BUILD="${janet_build}"
- emake PREFIX="/usr" build/janet.pc JANET_BUILD="${janet_build}"
- emake PREFIX="/usr" docs JANET_BUILD="${janet_build}"
+ local janet_build='\"1.13.1\"'
+ emake LIBDIR="/usr/$(get_libdir)" PREFIX="/usr" JANET_BUILD="${janet_build}"
+ emake LIBDIR="/usr/$(get_libdir)" PREFIX="/usr" build/janet.pc JANET_BUILD="${janet_build}"
+ emake LIBDIR="/usr/$(get_libdir)" PREFIX="/usr" docs JANET_BUILD="${janet_build}"
+ emake LIBDIR="/usr/$(get_libdir)" PREFIX="/usr" build/jpm JANET_BUILD="${janet_build}"
}
src_install() {
dobin "build/janet"
- dobin "jpm"
-
+ dobin "build/jpm"
+ insinto "usr/include/janet"
doheader "src/include/janet.h"
doheader "src/conf/janetconf.h"
dolib.so "build/libjanet.so"
- dosym libjanet.so /usr/$(get_libdir)/libjanet.so.1.9
+ dosym libjanet.so /usr/$(get_libdir)/libjanet.so.${MY_RELEASE}
+ dosym libjanet.so.${MY_RELEASE} /usr/$(get_libdir)/libjanet.so.${PV}
if use static-libs; then
dolib.a "build/libjanet.a"
@@ -48,4 +53,10 @@ src_install() {
doins "build/janet.pc"
dodoc -r examples
dodoc "build/doc.html"
+ # required for jpm
+ keepdir /usr/$(get_libdir)/janet/.cache
+}
+
+pkg_postinst() {
+ elog "Enable use flag \"static-libs\" for building stand-alone executables with jpm"
}
diff --git a/dev-lang/lua/Manifest b/dev-lang/lua/Manifest
index 185595aff79c..37ebb84422c2 100644
--- a/dev-lang/lua/Manifest
+++ b/dev-lang/lua/Manifest
@@ -36,9 +36,9 @@ DIST lua-5.3.4-tests.tar.gz 103438 BLAKE2B ac82708022e7729039111c3df4fe24302c8d0
DIST lua-5.3.6.tar.gz 303770 BLAKE2B 07c37c56f43095a4f6ca8eb8b3adf19afd53107c02b62b2bcb3619565cb2100d5f823493eef93092d5e312b30fc28885a6d9e8f0ba5a23b5bed86dc4515a5d61 SHA512 ccc380d5e114d54504de0bfb0321ca25ec325d6ff1bfee44b11870b660762d1a9bf120490c027a0088128b58bb6b5271bbc648400cab84d2dc22b512c4841681
DIST lua-5.4.2-tests.tar.gz 128901 BLAKE2B 10e4f0e8760f9cbd4761fa26665008ae7412539f79a6a7687029808f08f0ae4a24721e787e2e87e5080c16e9dcce8577a7a39ddc6d3e483a3cfe11756139594e SHA512 1516c59deca211c38444bbf97b18e988e939209b03915d3691d756eeed31b52e8d3a1f05b71ac0b561965274c7b6f3afc4244cd2e9069995696e737e2d9dd40b
DIST lua-5.4.2.tar.gz 353472 BLAKE2B 7e0e642684df635ed1c48db45989e86a2638024e30a170addf700b0c7d32276f1eaef80898539c671039c20cb0bed4861b12c58f4b8211653a17e89bad278d87 SHA512 9454a6ffd973598f2f4a2399834c31c4d5090bd12e716776e3189aa57760319d114ee64a8338bbc2ef5e08150bf0adc2ad94a1b2677f38538a43359969d4d920
-EBUILD lua-5.1.5-r106.ebuild 4029 BLAKE2B a14149a4341984f8b463dcda860d6d031253ef01b91e8ab7b05d129361d65205d4ea8aecb1974b44b7ab8124872d670f98ae020633fbdfa94af14ded5d858fb0 SHA512 b73a6068fa82f49a1d7d61aab730c674d03d7926585944b29a6f30525d51b294cd6905f221037595756eaa0b8ce4a1e6f0621a1092504263da676abb60a68a11
+EBUILD lua-5.1.5-r106.ebuild 4022 BLAKE2B 78c5c866d2a621be1bd3a7bd4cecac3bfe24a9dd097083fe8099d789de7b06772c80090e47a0ed5550c8afe30fa6ffdc4dc14c4e7b5c9bff029b5649a31269e5 SHA512 5e637ff9622b2ea0bee7e2d528a516edaa378cf50e84f51dc78bb7282502f8ae2fef2f5cd1d25f9ac0c937ffb6ce19f93eaacacddd05d3bf7b73a07ca1848b4f
EBUILD lua-5.1.5-r4.ebuild 3606 BLAKE2B d7e54c00e0604dd9f69143403d2bd58851266dee2ed8302ba89b44b7a290cc9d060852e234032fdaaa78908de6468ffa56e136174897658a669a2dc5fff4c165 SHA512 b87b4544134adec6089e0f73a71e3e337cfe5b40bae96eddf49e6c0f7ab9227adf0c085e355ed6b8bee85bd2a9b9978f27522e2cdfe57d3d67ce94ef28fbe9c5
-EBUILD lua-5.2.4-r3.ebuild 5768 BLAKE2B c27b3770d210594f9eb3d32b7987e8b9b3103f647b7def35fc576663aba92cdcfbc50b6edbb1df9c6ff765b7a71b42b1b364a7dc50b12404e6cbb68e1cbea99d SHA512 19268f35578617c133aeefc7950acc5d894f8cffabe48f218c6a2f91e463899d8fb2eb85308eeee45be3ba4500cc2994000007de6be590d809202c223a215429
-EBUILD lua-5.3.6-r2.ebuild 5753 BLAKE2B c98a9be2fcac2fa28a293f88f2c20c64df21d45ebe6ba65365ef2d11a4a56dde5a6e2039d54829ed189afecfdcfdd4e045b45ce1aed94aa4e4ba03824078c38e SHA512 b309816cef8e6534bc9c2f0cfd96c9461194b14d4945ef1e31b07e5c067f5f330773db7eef7824a33f8912c791fc4db22c5d1b22bc2f377ba24faa440905f414
-EBUILD lua-5.4.2-r1.ebuild 5693 BLAKE2B 538bf9aaeafe9ebd33bfc2878f548deeaa58c6fab655705afa3532723dc40a0596251b9802b45bd9fc5cbfff43a7351cdd77eee86ed40697f5ee0c2c4694b820 SHA512 aef98f9b1a43acdc4e79d59e7ab9b4c3d8477ca6be4f510140293d60f93ec8c1615b294e7e5600416c774026bb4fd9b4abc714796601ad1b9cffe06ea13380bf
+EBUILD lua-5.2.4-r3.ebuild 5761 BLAKE2B de71dc2127e1e3ddbf892f17f609d25075a09da46b5b9e4d7bd42eefbe863c3c7a0fe66367a6040aa14e3ec8bc0ca2625b4351520616cc7a879ed9dcd3c09c45 SHA512 55547dbc36a8009347d3325643fd4fdfdfc8bf39b12ea3e6317fb1357ebe4677bd6ec6142e4c1a6caf2716dd780e8817eb01514fdefa155b4b2fd7cc4622782e
+EBUILD lua-5.3.6-r2.ebuild 5746 BLAKE2B cf62e338a46c1551ea5f148c0cc7482212a19172ba5e816e89b392efa59d1a8f6ac61913a258a53d23ff6e992c4413f26762867d4cdf3c4d4c21061fd00b3f73 SHA512 2d36a01e8187c82abee5f60dc5a8fce2a876ef91454ba36f64c26e2bbc98eb2d2d2b457c7b0ee0292a0f400cc87e05a7c84148918d2934fc390a28dcb98f2668
+EBUILD lua-5.4.2-r1.ebuild 5686 BLAKE2B 58b165547c3f603939f1e2a62921e2c66ce334073b914ef446ef8b17925ed913f16522ad2686a429a0771ea816afb3919018ac875008b773b067a641a5696ec0 SHA512 68296cc3d7d716ed19a1dcd69ca4eed79c2bc48830420ed7d6cab4a9dff4e03fa063a9bc44f03d55774b4f6c4425f97b61d1c8ab367e76779c312dc5449c884f
MISC metadata.xml 524 BLAKE2B 688341a9dfa433bbc2e3fc1edb8a44d53dcee036afeb5b2c7c8fbfa0f81d1e53a6c7910b32bec637ad1cd518e48afdd0806a286dadbb6c7a88853a93aa7f3545 SHA512 92ee6e13c3fcc5ba1d2cf3ec58a54b051f1fae8646b64fae25923108a78abc77b05992abbed5a04afbc2043ea0b47749544e348506ab554d57b19bcf3b435e52
diff --git a/dev-lang/lua/lua-5.1.5-r106.ebuild b/dev-lang/lua/lua-5.1.5-r106.ebuild
index 5e38cf0738b2..7da97a9910c4 100644
--- a/dev-lang/lua/lua-5.1.5-r106.ebuild
+++ b/dev-lang/lua/lua-5.1.5-r106.ebuild
@@ -10,7 +10,7 @@ SRC_URI="https://www.lua.org/ftp/${P}.tar.gz"
LICENSE="MIT"
SLOT="5.1"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="+deprecated readline"
COMMON_DEPEND="
diff --git a/dev-lang/lua/lua-5.2.4-r3.ebuild b/dev-lang/lua/lua-5.2.4-r3.ebuild
index 7b7c1c61f732..c4f04433efb2 100644
--- a/dev-lang/lua/lua-5.2.4-r3.ebuild
+++ b/dev-lang/lua/lua-5.2.4-r3.ebuild
@@ -14,7 +14,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="5.2"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="+deprecated readline test test-complete"
COMMON_DEPEND="
diff --git a/dev-lang/lua/lua-5.3.6-r2.ebuild b/dev-lang/lua/lua-5.3.6-r2.ebuild
index c47b745cd1cb..b6b2375e5e19 100644
--- a/dev-lang/lua/lua-5.3.6-r2.ebuild
+++ b/dev-lang/lua/lua-5.3.6-r2.ebuild
@@ -14,7 +14,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="5.3"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="+deprecated readline test test-complete"
COMMON_DEPEND="
diff --git a/dev-lang/lua/lua-5.4.2-r1.ebuild b/dev-lang/lua/lua-5.4.2-r1.ebuild
index 3840219215a7..d1d1b431e953 100644
--- a/dev-lang/lua/lua-5.4.2-r1.ebuild
+++ b/dev-lang/lua/lua-5.4.2-r1.ebuild
@@ -14,7 +14,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="5.4"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="+deprecated readline test test-complete"
COMMON_DEPEND="
diff --git a/dev-lang/ocaml/Manifest b/dev-lang/ocaml/Manifest
index 9713ad1a3ecd..888bf70dcb9d 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-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
AUX ocaml.conf 177 BLAKE2B da070848d9e3a30ad303c296f55de87c30fd15feee3304ccc1d1f844d83c5a646664cd4d9958375ead2324e25bb88280fdb78f9e4230eeb8cd5825eed6f2f91d SHA512 4f0a48b8101b77d568d8d0a852f2a21fd46b7947c5d3f975ee4cd8a9c37c993d689cf5fb53b54a6b2740cb865051dc50c74c0c373eb697fca800ca143d401aa4
@@ -12,6 +13,7 @@ DIST ocaml-patches-8.tar.bz2 1803 BLAKE2B 5e76a198c2f5ca9f231d4e80499d784cf061ec
DIST ocaml-patches-9.tar.bz2 1700 BLAKE2B 4e46b8fb490db28f815414e285f54e251394ea53e1d25c529bbea9f03e426fd19132b1e2c7c2be7d14983fceb4cad073d191b001f6da522fee4226371d4a2eca SHA512 cc19f9104fac69aecc5effa8cb772342e1fb61cdcd38ba0176efe04cf3d710b1c56d5178748f3bd29099af91fa684da432a8ef8d42de76dbd1b6954a255ea6c0
EBUILD ocaml-4.04.2-r1.ebuild 3530 BLAKE2B 2030afbaad9ffbe4f34ce84c0215129f738739b332751407bb0eb8a8ab98aa69ce893567ec5a6edfb8d4fd4704608dae556723a1739a92415c899d0e6d020126 SHA512 e2d823ecea42bfc096e92c040a19906fb3f0d68b1ff36671a3372f8af2297aced9df63f32220e221c1fe8c37c488a6af2936c70a1f822fbab767bab23db0f0fa
EBUILD ocaml-4.05.0-r1.ebuild 3674 BLAKE2B 86481c8507edabb8649e14270426d2ecca3886d7a8e576d431ebd797f4694be8cf34563ffe1b5fda7ec1eb85adcac93433039cd7a267fa51dfbe20c7a38419bb SHA512 64fb85bce08871f1e25cf6eb4701115d80721ed62d879d9026f0ae1f131a0f412ea0f78e8730248f7b8e57e22ca874350f2facd58a54585be8c81c4c0ec8ff7a
+EBUILD ocaml-4.05.0-r2.ebuild 3726 BLAKE2B 749a2294a7ca46ef7e76ff567d1daa8370b54954e154cce0681b6874cfa17c6e70953c405c750c4bdee95982e060afb83dc53eb1ff256f1e34b8b57cc7cccf27 SHA512 deefa76fb53ecb61bf3ee1bd80082e7b8c075a07e5e3fcd5ce858a8dd62320187e4c4bf2f66a63dd320c9e156968638ee85e7b61bee0f24082f8d1e494d926b6
EBUILD ocaml-4.09.0.ebuild 2169 BLAKE2B cc7c2451281b2f10733f562023dae3b1698336afb1493ef9bc79d7b817e5eb8c5508c132dc5b4fd29218f79a451ef718e2d910907ef278874696a732e05cac40 SHA512 fc1a50be3ac60174a880c8ed7a47219fb14b80e162a93ad3340450f72dab7f9a96431bc3e22e8a94179abdcf40a46019cdd9bc8160250c1c39867927d929c7de
EBUILD ocaml-4.10.0.ebuild 2176 BLAKE2B 8a32ad81554250dd7ea21af73adee00e9f7aa6a60e0e6e0d7df40429b1237bea6df535f132a4fd7eeea55dd74a28f7f2becb15abb1394f8ee41b92755f77740b SHA512 16f9a5ce5d38a8af938c9a26e484606fdf51426c0e6f9763bcae5871db8a59f1d35717e88da5dc5195b0493d67705487d4cac4c4a7db4f02a09319bd29ecafa9
EBUILD ocaml-4.10.2.ebuild 2127 BLAKE2B 4711896726729f7640a132b9d37e73e56eff6599f83b3c68d9423742d72e7542d1c5576cb0e981835fa534ed83efbd138ded2049ab71b19f1a803f6ad4859681 SHA512 59c0c42268d49fc798668e2108e94356d1c5c5ba1ccbac5b66db98dfeedefe6190cd6250294ace15c625c6c69a613e2003c7def741f2ff86aed83b6410478fc1
diff --git a/dev-lang/ocaml/files/ocaml-4.05.0-gcc10.patch b/dev-lang/ocaml/files/ocaml-4.05.0-gcc10.patch
new file mode 100644
index 000000000000..a0c67da534a0
--- /dev/null
+++ b/dev-lang/ocaml/files/ocaml-4.05.0-gcc10.patch
@@ -0,0 +1,59 @@
+--- a/byterun/caml/intext.h 2021-01-28 22:46:20.400224678 +0100
++++ b/byterun/caml/intext.h 2021-01-28 22:46:49.312751054 +0100
+@@ -196,7 +196,7 @@
+
+ CAMLextern struct code_fragment * caml_extern_find_code(char *addr);
+
+-struct ext_table caml_code_fragments_table;
++extern struct ext_table caml_code_fragments_table;
+
+ #endif /* CAML_INTERNALS */
+
+--- a/byterun/caml/major_gc.h 2021-01-28 22:44:12.193323457 +0100
++++ b/byterun/caml/major_gc.h 2021-01-28 22:45:20.918198701 +0100
+@@ -64,9 +64,9 @@
+ extern char *caml_gc_sweep_hp;
+
+ extern int caml_major_window;
+-double caml_major_ring[Max_major_window];
+-int caml_major_ring_index;
+-double caml_major_work_credit;
++extern double caml_major_ring[Max_major_window];
++extern int caml_major_ring_index;
++extern double caml_major_work_credit;
+ extern double caml_gc_clock;
+
+ /* [caml_major_gc_hook] is called just between the end of the mark
+--- a/byterun/meta.c 2021-01-28 22:47:34.148016359 +0100
++++ b/byterun/meta.c 2021-01-28 22:47:56.048657393 +0100
+@@ -32,6 +32,8 @@
+ #include "caml/prims.h"
+ #include "caml/stacks.h"
+
++struct ext_table caml_code_fragments_table;
++
+ #ifndef NATIVE_CODE
+
+ CAMLprim value caml_get_global_data(value unit)
+--- a/byterun/backtrace.c 2021-01-28 22:50:25.275226598 +0100
++++ b/byterun/backtrace.c 2021-01-28 22:50:37.541027290 +0100
+@@ -28,7 +28,7 @@
+ #include "caml/fail.h"
+
+ /* The table of debug information fragments */
+-struct ext_table caml_debug_info;
++extern struct ext_table caml_debug_info;
+
+ CAMLexport int32_t caml_backtrace_active = 0;
+ CAMLexport int32_t caml_backtrace_pos = 0;
+--- a/asmrun/startup.c 2021-01-28 23:02:50.526072662 +0100
++++ b/asmrun/startup.c 2021-01-28 23:03:09.977754311 +0100
+@@ -44,7 +44,7 @@
+ #endif
+
+ extern int caml_parser_trace;
+-CAMLexport header_t caml_atom_table[256];
++CAMLextern header_t caml_atom_table[256];
+ char * caml_code_area_start, * caml_code_area_end;
+
+ /* Initialize the atom table and the static data and code area limits. */
diff --git a/dev-lang/ocaml/ocaml-4.05.0-r2.ebuild b/dev-lang/ocaml/ocaml-4.05.0-r2.ebuild
new file mode 100644
index 000000000000..dc6ca02c535e
--- /dev/null
+++ b/dev-lang/ocaml/ocaml-4.05.0-r2.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit flag-o-matic eutils multilib versionator 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/${PV}"
+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"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+PDEPEND="emacs? ( app-emacs/ocaml-mode )
+ xemacs? ( app-xemacs/ocaml )"
+
+S="${WORKDIR}/${MY_P}"
+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" epatch "${WORKDIR}/patches"
+ epatch "${FILESDIR}/${PN}-4.04.2-tinfo.patch" #459512
+ epatch "${FILESDIR}"/${P}-gcc10.patch
+}
+
+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
+
+ # 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} testsuite requires ocamlopt useflag"
+ 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
+ dosym /usr/$(get_libdir)/ocaml/caml /usr/include/caml
+
+ dodoc Changes README.adoc
+
+ # Create and 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/perl/Manifest b/dev-lang/perl/Manifest
index d90869d8a308..a790df639f32 100644
--- a/dev-lang/perl/Manifest
+++ b/dev-lang/perl/Manifest
@@ -5,10 +5,12 @@ DIST perl-5.30.3-patches-1.tar.xz 20292 BLAKE2B 34ca8dbdf08650deaaa59bba634c3a40
DIST perl-5.30.3.tar.xz 12375128 BLAKE2B ff0668c896e46ea35a1b8bd4a7d800c8668d6995185cd8c43fca332da2fa63965bb5276b2d5cf9738c0b7fb735140f6e33f1b4582899017903f86753065f417b SHA512 0ea62cf17532ee99217a218c39aa530472857c7a1982494f3a01693683062b4cdebe383a79f7b64452c713337b554ed5e0fd6eda018ea29e83c3538a13c24f3c
DIST perl-5.32.0-patches-1.tar.xz 20220 BLAKE2B 46ebca5c74f59aa935ceec2a5807426c0e653ad7ba27de441d26e049e62dc67b17d58dfe5755f31bdd157e349d47fd46a98699207729f8f4f747930ed1064ba2 SHA512 42ed00f5f6be40af59e02691ff439a048cccd96fb970cca0976209faa921af98a773cc4cb1466e164328350d58cb46950ffa8c6f2fddabbeb3e8819349b06849
DIST perl-5.32.0.tar.xz 12717336 BLAKE2B 4abad9f1ddabaad5f2bbfe8ab6d061aeb8c558e458d4bf1bcf737a8ecc1cf20f7dffaddd0bc867578b457787ec284fa81be3fae1edd7f72d58aeec7b5cd744e5 SHA512 1540247415893bbd94dfeede7b4fba6052688dc0bf27ced817f448246fcdc6e9a6486abc34577dec5b00bf02ed607b2d24ccd4977c3b3c51e8e6edfc0b81c760
+DIST perl-5.32.1.tar.xz 12610988 BLAKE2B 9f89bcf9cffb245a0f2cb0afa17c25f092c84cc2f29bb1c744294c2f0393c72dc3beb9fcbe256cf252677b33bc594b294b3f6a4774ad9e30b771aceed1f4f147 SHA512 3443c75aea91f0fe3712fee576239f1946d2301b8f7390b690e2f5d070fe71af8f9fa7769e42086c2d33d5f84370f80368fa9350b4f10cc0ac3e6c1f6209d8f9
DIST perl-cross-1.3.2.tar.gz 108350 BLAKE2B ddb352fdbec66a04de62425f5cae1aaa3bc7251b9d6f4837b66a0bd79c53c60212fad3997dad4c38055774a2769d45b5b83927bf48b0fb00a130fee429eba702 SHA512 d61d25066a8d87c34aeacc5b9bd86fab964b33c4c65e84a89e4077fe1d8011c0bdf810a304631af44fae32edcffd6c99fc17b0c584ea83d1ce5ce492aaedfea5
DIST perl-cross-1.3.4.tar.gz 108461 BLAKE2B 28f207d235f51ebf681598cf85f7f16923574aafb593426a59d67578135ee3632efb12b9e1a672759195a79f80e49f5c929ec42b2b4571b1d36f5d8c8dceadc2 SHA512 7e1fc7b2b19d8c2e2fb8615e074e218b2e1a4d276b563ffabccfd0c7398bc8680fca96da89cc61d611993f38a2c67dfbb0201c58658e05437395ad8c00d31874
EBUILD perl-5.30.3-r1.ebuild 20690 BLAKE2B 036c53922ed6247d01828cf6ce7f47be06877c0e9d63158e37a9aba1f35c3e717c3f0cbe6fffadceb513a1d34f2ef300cce7e4a98ec601e359d9414dce882c14 SHA512 17793920606af30aab84d2300dabf07a60147f94865124ccbb7feae94a309768492364ac5b26ca8b0e99d1860856d6be54ab9a0812aa59180c28ffbebbad1d6f
EBUILD perl-5.30.3-r2.ebuild 26146 BLAKE2B e0756d8250acfd3dbbdeac414f2515270820a091a10dca4d59e1912c85d855b439558d25bf09420dd62e9c3a0dd204a87717fd24fbc4f29858bc15047bdf7a42 SHA512 e7ae782d61a1d841a6dd6138ff56109ba07a9e81ab1a9cbb4e7b4faf4c439766c646ababcc2f726a12cadcd3532c9d09b7f80cb5c95e0b3a1a39674f96edca29
EBUILD perl-5.30.3.ebuild 20131 BLAKE2B 2857fa2e63c9245dcd3b2683258313dc6e2ff1eab768a2e26a6c942f2b43753b8b26e47a54bc538747500d730d66e03177cc4ea9ce145d160c2e2d0f333ae3b7 SHA512 46d0f78a965df0945c14ac75e203e6957e54542b04de688cabd722402c6494c5583f95842de91510722c26e58345e6c3afca53848d239965629ed2eacc240d08
EBUILD perl-5.32.0-r1.ebuild 25913 BLAKE2B a97f41da180ee9e0beeb163ffbbc1c1f944d8dae32954603c9a3a9bf24d9623db6146b8440917dc891ce24ddb41c6c782e04630e4cfa68649f526d7a3e57def3 SHA512 1223ca91df30ccdc247f8a9659376e4407920c1223753b00da91859935117f5361c128b3b1f5d38596f70a4d0ec0e6e6fda58f1b135525c67183fe906bbb2cd4
+EBUILD perl-5.32.1.ebuild 25913 BLAKE2B 671a1ae478d5c305a0cfc575fe901c8352dc6e8c15f00a377fd3ce3cc8c9b2befee921d90fe818aad15abed9878f1ca40346b7f2724fb2e9cb693d46763515dc SHA512 cb8dfcff56c8efa78de8b974bbdb409598b0cebdf9b30a88496d1a25c65bba60ae9e05ce5baa813c75186e8ccd6ae8f983506ae689daf85004ee59784224832a
MISC metadata.xml 430 BLAKE2B 8625fd07f63a7943a85c3919d6ae6db622b752caa2803c56c72a22b270244261331fbab8b760e6d00acb8480770c9ef1d1beaaa22cc6044660821687c0cd8c33 SHA512 ca4c43e2016b7df707894713465700a90d2b8551b57fc4d660cff75edb1e8cc2456f9ae10431839ad6738f290d4f5911fae360eaa1d4670859d855de3d568583
diff --git a/dev-lang/perl/perl-5.32.1.ebuild b/dev-lang/perl/perl-5.32.1.ebuild
new file mode 100644
index 000000000000..73933f140243
--- /dev/null
+++ b/dev-lang/perl/perl-5.32.1.ebuild
@@ -0,0 +1,821 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
+
+PATCH_VER=1
+CROSS_VER=1.3.4
+PATCH_BASE="perl-5.32.0-patches-${PATCH_VER}"
+PATCH_DEV=kentnl
+
+DIST_AUTHOR=XSAWYERX
+
+# Greatest first, don't include yourself
+# Devel point-releases are not ABI-intercompatible, but stable point releases are
+# BIN_OLDVERSEN is contains only C-ABI-intercompatible versions
+PERL_BIN_OLDVERSEN=""
+
+# Yes we can.
+PERL_SINGLE_SLOT=y
+
+if [[ "${PV##*.}" == "9999" ]]; then
+ DIST_VERSION=5.30.0
+else
+ DIST_VERSION="${PV/_rc/-RC}"
+fi
+SHORT_PV="${DIST_VERSION%.*}"
+# Even numbered major versions are ABI intercompatible
+# Odd numbered major versions are not
+if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
+ SUBSLOT="${DIST_VERSION%-RC*}"
+else
+ SUBSLOT="${DIST_VERSION%.*}"
+fi
+# Used only in tar paths
+MY_P="perl-${DIST_VERSION}"
+# Used in library paths
+MY_PV="${DIST_VERSION%-RC*}"
+
+DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
+
+SRC_URI="
+ mirror://cpan/src/5.0/${MY_P}.tar.xz
+ mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
+ https://github.com/gentoo-perl/perl-patchset/releases/download/${PATCH_BASE}/${PATCH_BASE}.tar.xz
+ https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
+ https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
+"
+HOMEPAGE="https://www.perl.org/"
+
+LICENSE="|| ( Artistic GPL-1+ )"
+SLOT="0/${SUBSLOT}"
+
+if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
+# SOMEWHAT EXPERIMENTAL CODE, DO NOT USE WITHOUT AN ADULT PRESENT, CHECK CHANGELOG
+# FOR DETAILS
+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"
+fi
+
+IUSE="berkdb debug doc gdbm ithreads minimal"
+
+RDEPEND="
+ berkdb? ( sys-libs/db:= )
+ gdbm? ( >=sys-libs/gdbm-1.8.3:= )
+ app-arch/bzip2
+ sys-libs/zlib
+ virtual/libcrypt:=
+"
+DEPEND="${RDEPEND}"
+BDEPEND="${RDEPEND}"
+
+PDEPEND="
+ !minimal? (
+ >=app-admin/perl-cleaner-2.5
+ >=virtual/perl-File-Temp-0.230.400-r2
+ >=virtual/perl-Data-Dumper-2.154.0
+ virtual/perl-Test-Harness
+ )
+"
+# bug 390719, bug 523624
+# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
+
+S="${WORKDIR}/${MY_P}"
+
+dual_scripts() {
+ src_remove_dual perl-core/Archive-Tar 2.360.0 ptar ptardiff ptargrep
+ src_remove_dual perl-core/CPAN 2.270.0 cpan
+ src_remove_dual perl-core/Digest-SHA 6.20.0 shasum
+ src_remove_dual perl-core/Encode 3.60.0 enc2xs piconv
+ src_remove_dual perl-core/ExtUtils-MakeMaker 7.440.0 instmodsh
+ src_remove_dual perl-core/ExtUtils-ParseXS 3.400.0 xsubpp
+ src_remove_dual perl-core/IO-Compress 2.93.0 zipdetails
+ src_remove_dual perl-core/JSON-PP 4.40.0 json_pp
+ src_remove_dual perl-core/Module-CoreList 5.202.101.23 corelist
+ src_remove_dual perl-core/Pod-Checker 1.730.0 podchecker
+ src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
+ src_remove_dual perl-core/Pod-Usage 1.690.0 pod2usage
+ src_remove_dual perl-core/Test-Harness 3.420.0 prove
+ src_remove_dual perl-core/podlators 4.140.0 pod2man pod2text
+ src_remove_dual_man perl-core/podlators 4.140.0 /usr/share/man/man1/perlpodstyle.1
+}
+
+check_rebuild() {
+ # Fresh install
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ return 0;
+ # Major Upgrade
+ # doesn't matter if there's multiple copies, it still needs a rebuild
+ # if the string is anything other than "5.CURRENTMAJOR"
+ elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then
+ echo ""
+ ewarn "UPDATE THE PERL MODULES:"
+ ewarn "After updating dev-lang/perl the installed Perl modules"
+ ewarn "have to be re-installed. In most cases, this is done automatically"
+ ewarn "by the package manager, but subsequent steps are still recommended"
+ ewarn "to ensure system consistency."
+ ewarn
+ ewarn "You should start with a depclean to remove any unused perl dependencies"
+ ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
+ ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
+ ewarn "Recommended: emerge --depclean -va"
+ ewarn
+ ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
+ ewarn "remaining rebuilds portage may have missed."
+ ewarn "Use: perl-cleaner --all"
+ return 0;
+
+ # Reinstall w/ USE Change
+ elif ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
+ ( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \
+ ( use debug && ! has_version dev-lang/perl[debug] ) || \
+ ( ! use debug && has_version dev-lang/perl[debug] ) ; then
+ echo ""
+ ewarn "TOGGLED USE-FLAGS WARNING:"
+ ewarn "You changed one of the use-flags ithreads or debug."
+ ewarn "You must rebuild all perl-modules installed."
+ ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
+ fi
+}
+
+pkg_setup() {
+ case ${CHOST} in
+ *-freebsd*) osname="freebsd" ;;
+ *-dragonfly*) osname="dragonfly" ;;
+ *-netbsd*) osname="netbsd" ;;
+ *-openbsd*) osname="openbsd" ;;
+ *-darwin*) osname="darwin" ;;
+ *-solaris*) osname="solaris" ;;
+ *-cygwin*) osname="cygwin" ;;
+ *) osname="linux" ;;
+ esac
+
+ myarch="${CHOST%%-*}-${osname}"
+ if use debug ; then
+ myarch+="-debug"
+ fi
+ if use ithreads ; then
+ mythreading="-multi"
+ myarch+="-thread"
+ fi
+
+ PRIV_BASE="/usr/$(get_libdir)/perl5"
+ SITE_BASE="/usr/local/$(get_libdir)/perl5"
+ VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
+
+ LIBPERL="libperl$(get_libname ${MY_PV} )"
+
+ # This ENV var tells perl to build with a directory like "5.30"
+ # regardless of its patch version. This is for experts only
+ # at this point.
+ if [[ -z "${PERL_SINGLE_SLOT}" ]]; then
+ PRIV_LIB="${PRIV_BASE}/${MY_PV}"
+ ARCH_LIB="${PRIV_BASE}/${MY_PV}/${myarch}${mythreading}"
+ SITE_LIB="${SITE_BASE}/${MY_PV}"
+ SITE_ARCH="${SITE_BASE}/${MY_PV}/${myarch}${mythreading}"
+ VENDOR_LIB="${VENDOR_BASE}/${MY_PV}"
+ VENDOR_ARCH="${VENDOR_BASE}/${MY_PV}/${myarch}${mythreading}"
+ else
+ PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
+ ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+ SITE_LIB="${SITE_BASE}/${SUBSLOT}"
+ SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+ VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
+ VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
+ fi
+
+ dual_scripts
+}
+
+src_remove_dual_file() {
+ local i pkg ver
+ pkg="$1"
+ ver="$2"
+ shift 2
+ case "${EBUILD_PHASE:-none}" in
+ postinst|postrm)
+ for i in "$@" ; do
+ alternatives_auto_makesym "${i}" "${i}-[0-9]*"
+ done
+ ;;
+ setup)
+ for i in "$@" ; do
+ if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
+ has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
+ break
+ fi
+ done
+ ;;
+ install)
+ for i in "$@" ; do
+ if ! [[ -f "${ED}"${i} ]] ; then
+ ewarn "${i} does not exist!"
+ continue
+ fi
+ mv "${ED}"${i}{,-${ver}-${P}} || die
+ done
+ ;;
+ esac
+}
+
+src_remove_dual_man() {
+ local i pkg ver ff
+ pkg="$1"
+ ver="$2"
+ shift 2
+ case "${EBUILD_PHASE:-none}" in
+ postinst|postrm)
+ for i in "$@" ; do
+ ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
+ ff=${ff##*${i#${i%.[0-9]}}}
+ alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
+ done
+ ;;
+ install)
+ for i in "$@" ; do
+ if ! [[ -f "${ED}"${i} ]] ; then
+ ewarn "${i} does not exist!"
+ continue
+ fi
+ mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
+ done
+ ;;
+ esac
+}
+
+src_remove_dual() {
+ local i pkg ver
+ pkg="$1"
+ ver="$2"
+ shift 2
+ for i in "$@" ; do
+ src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
+ src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
+ done
+}
+
+src_prepare_perlcross() {
+ cp -a ../perl-cross-${CROSS_VER}/* . || die
+
+ # bug 604072
+ MAKEOPTS+=" -j1"
+ export MAKEOPTS
+}
+src_prepare_dynamic() {
+ ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
+ ln -s ${LIBPERL} libperl$(get_libname ) || die
+}
+
+# Copy a patch into the patch series
+# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug']
+# - description is optional, but recommended
+# - all arguments after descriptions are bug URLs
+add_patch() {
+ local patchdir="${WORKDIR}/patches"
+ local infodir="${WORKDIR}/patch-info"
+ local src_name dest_name desc
+ src_name="$1"
+ dest_name="$2"
+ desc="$3"
+ shift; shift; shift;
+ einfo "Adding ${dest_name} to patch bundle"
+ cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}"
+ if [[ -n "${desc}" ]]; then
+ printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc"
+ fi
+ if [[ $# -gt 0 ]]; then
+ # Note: when $@ is more than one element, this emits a
+ # line for each element
+ printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
+ fi
+}
+# Remove a patch using a glob expr
+# eg:
+# rm_patch *-darin-Use-CC*
+#
+rm_patch() {
+ local patchdir="${WORKDIR}/patches"
+ local expr="$1"
+ local patch="$( cd "${patchdir}"; echo $expr )"
+ einfo "Removing $patch ($expr) from patch bundle"
+ if [[ -e "${patchdir}/${patch}" ]]; then
+ rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )"
+ else
+ ewarn "No ${expr} found in ${patchdir} to remove"
+ fi
+}
+# Yes, this is a reasonable amount of code for something seemingly simple
+# but this is far easier to debug when things go wrong, and things went wrong
+# multiple times while I was getting the exact number of slashes right, which
+# requires circumnavigating both bash and sed escape mechanisms.
+c_escape_string() {
+ local slash dquote
+ slash='\'
+ dquote='"'
+ re_slash="${slash}${slash}"
+ re_dquote="${slash}${dquote}"
+
+ # Convert \ to \\,
+ # " to \"
+ echo "$1" |\
+ sed "s|${re_slash}|${re_slash}${re_slash}|g" |\
+ sed "s|${re_dquote}|${re_slash}${re_dquote}|g"
+}
+c_escape_file() {
+ c_escape_string "$(cat "$1")"
+}
+
+apply_patchdir() {
+ local patchdir="${WORKDIR}/patches"
+ local infodir="${WORKDIR}/patch-info"
+ local patchoutput="patchlevel-gentoo.h"
+
+ # Inject Patch-Level info into description for patchlevel.h patch
+ # to show in -V
+ local patch_expr="*List-packaged-patches*"
+ local patch="$( cd "${patchdir}"; echo $patch_expr )";
+ einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )"
+
+ if [[ -e "${patchdir}/${patch}" ]]; then
+ printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\
+ >"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc"
+ else
+ eerror "No $patch_expr found in ${patchdir}"
+ fi
+
+ # Compute patch list to apply
+ # different name other than PATCHES to stop default
+ # reapplying it
+ # Single depth is currently only supported, as artifacts can reside
+ # from the old layout being multiple-directories, as well as it grossly
+ # simplifying the patchlevel_gentoo.h generation.
+ local PERL_PATCHES=($(
+ find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\
+ grep -E '[.](diff|patch)$' |\
+ sort -n
+ ))
+
+ for patch in "${PERL_PATCHES[@]}"; do
+ eapply "${WORKDIR}"/patches/${patch}
+ done
+
+ einfo "Generating $patchoutput"
+
+ # This code creates a header file, each iteration
+ # creates one-or-more-lines for each entry found in PERL_PATCHES
+ # and STDOUT is redirected to the .h file
+ for patch in "${PERL_PATCHES[@]}"; do
+ local desc_f="${infodir}/${patch}.desc"
+ local bugs_f="${infodir}/${patch}.bugs"
+
+ printf ',"%s"\n' "${patch}"
+ if [[ ! -e "${desc_f}" ]]; then
+ ewarn "No description provided for ${patch} (expected: ${desc_f} )"
+ else
+ local desc="$(c_escape_file "${desc_f}")"
+ printf ',"- %s"\n' "${desc}"
+ fi
+ if [[ -e "${bugs_f}" ]]; then
+ while read -d $'\n' -r line; do
+ local esc_line="$(c_escape_string "${line}")"
+ printf ',"- Bug: %s"\n' "${esc_line}"
+ done <"${bugs_f}"
+ fi
+ done > "${S}/${patchoutput}"
+ printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST"
+
+}
+src_prepare() {
+ local patchdir="${WORKDIR}/patches"
+
+ # Prepare Patch dir with additional patches / remove unwanted patches
+ # Inject bug/desc entries for perl -V
+ if use hppa ; then
+ # bug 634162
+ add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
+ "Fix broken miniperl on hppa"\
+ "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
+ fi
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ # do NOT mess with nsl, on Solaris this is always necessary,
+ # when -lsocket is used e.g. to get h_errno
+ rm_patch "*-nsl-and-cl*"
+ fi
+
+ apply_patchdir
+
+ tc-is-cross-compiler && src_prepare_perlcross
+
+ tc-is-static-only || src_prepare_dynamic
+
+ if use gdbm; then
+ sed -i "s:INC => .*:INC => \"-I${EROOT}/usr/include/gdbm\":g" \
+ ext/NDBM_File/Makefile.PL || die
+ fi
+
+ # Use errno.h from prefix rather than from host system, bug #645804
+ if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
+ sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
+ fi
+
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ # set a soname, fix linking against just built libperl
+ sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
+ fi
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # fix install_name (soname) not to reference $D
+ sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
+
+ # Upstreamed, but not in this version.
+ # Need to recognise macOS 11 / 10.16. #757249
+ eapply "${FILESDIR}/${PN}-5.30.3-darwin-macos11.patch"
+ fi
+
+ default
+}
+
+myconf() {
+ # the myconf array is declared in src_configure
+ myconf=( "${myconf[@]}" "$@" )
+}
+
+# Outputs a list of versions which have been seen in any of the
+# primary perl @INC prefix paths, such as:
+# /usr/lib64/perl5/<NUMBER>
+# /usr/local/lib64/perl5/<NUMBER>
+# /usr/lib64/perl5/vendor_perl/<NUMBER>
+#
+# All values of NUMBER must be like "5.x.y", unless PERL_SUPPORT_SINGLE_SLOT
+# is enabled, where it will also allow numbers like "5.x"
+#
+# PERL_SUPPORT_SINGLE_SLOT should only be used to transition *away* from PERL_SINGLE_SLOT
+# if you used that.
+find_candidate_inc_versions() {
+ local regex='.*/5[.][0-9]+[.][0-9]+$';
+ if [[ ! -z "${PERL_SUPPORT_SINGLE_SLOT}" || ! -z "${PERL_SINGLE_SLOT}" ]]; then
+ regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
+ fi
+ local dirs=(
+ "${EROOT}${PRIV_BASE}"
+ "${EROOT}${SITE_BASE}"
+ "${EROOT}${VENDOR_BASE}"
+ )
+ for dir in "${dirs[@]}"; do
+ if [[ ! -e "${dir}" ]]; then
+ continue
+ fi
+ # Without access to readdir() on these dirs, find will not be able
+ # to reveal any @INC directories inside them, and will subsequently prune
+ # them from the built perl's @INC support, breaking our compatiblity options
+ # entirely.
+ if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then
+ eerror "Bad permissions on ${dir}, this will probably break things"
+ eerror "Ensure ${dir} is +rx for at least uid=$EUID"
+ eerror "Recommended permission is +rx for all"
+ eerror "> chmod o+rx ${dir}"
+ fi
+ done
+ einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}"
+ find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null
+}
+# Sort versions passed versiony-ly, remove self-version if present
+# dedup. Takes each version as an argument
+sanitize_inc_versions() {
+ local vexclude="${DIST_VERSION%-RC}"
+ if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then
+ vexclude="${SUBSLOT}"
+ fi
+ einfo "Normalizing/Sorting candidate list: $*"
+ einfo " to remove '${vexclude}'"
+ # Note, general numeric sort has to be used
+ # for the last component, or unique will convert
+ # 5.30.0 + 5.30 into just 5.30
+ printf "%s\n" "$@" |\
+ grep -vxF "${vexclude}" |\
+ sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg
+}
+
+versions_to_inclist() {
+ local oldv="${PERL_BIN_OLDVERSEN}"
+ if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then
+ oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
+ fi
+ for v; do
+ has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ ";
+ echo -n "${v}/ ";
+ done
+}
+versions_to_gentoolibdirs() {
+ local oldv="${PERL_BIN_OLDVERSEN}"
+ local root
+ local v
+ if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then
+ oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
+ fi
+ for v; do
+ for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do
+ local fullpath="${EROOT}${root}/${v}"
+ if [[ -e "${fullpath}" ]]; then
+ has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}";
+ printf "%s:" "${fullpath}"
+ fi
+ done
+ done
+}
+
+src_configure() {
+ declare -a myconf
+
+ export LC_ALL="C"
+ [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
+
+ # Perl has problems compiling with -Os in your flags with glibc
+ use elibc_uclibc || replace-flags "-Os" "-O2"
+
+ # xlocale.h is going away in glibc-2.26, so it's counterproductive
+ # if we use it and include it in CORE/perl.h ... Perl builds just
+ # fine with glibc and locale.h only.
+ # However, the darwin prefix people have no locale.h ...
+ use elibc_glibc && myconf -Ui_xlocale
+
+ # This flag makes compiling crash in interesting ways
+ filter-flags "-malign-double"
+
+ # Generic LTO broken since 5.28, triggers EUMM failures
+ filter-flags "-flto"
+
+ use sparc && myconf -Ud_longdbl
+
+ export BUILD_BZIP2=0
+ export BZIP2_INCLUDE=${EROOT}/usr/include
+ export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
+
+ export BUILD_ZLIB=False
+ export ZLIB_INCLUDE=${EROOT}/usr/include
+ export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
+
+ # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
+ myndbm='U'
+ mygdbm='U'
+ mydb='U'
+ if use gdbm ; then
+ mygdbm='D'
+ if use berkdb ; then
+ myndbm='D'
+ fi
+ fi
+ if use berkdb ; then
+ mydb='D'
+ has_version '=sys-libs/db-1*' && myndbm='D'
+ fi
+
+ myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
+
+ if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
+ ewarn "Perl will not be built with berkdb support, use gcc if you needed it..."
+ myconf -Ui_db -Ui_ndbm
+ fi
+
+ use ithreads && myconf -Dusethreads
+
+ if use debug ; then
+ append-cflags "-g"
+ myconf -DDEBUGGING
+ elif [[ ${CFLAGS} == *-g* ]] ; then
+ myconf -DDEBUGGING=-g
+ else
+ myconf -DDEBUGGING=none
+ fi
+
+ # Autodiscover all old version directories, some of them will even be newer
+ # if you downgrade
+ if [[ -z ${PERL_OLDVERSEN} ]]; then
+ PERL_OLDVERSEN="$( find_candidate_inc_versions )"
+ fi
+
+ # Fixup versions, removing self match, fixing order and dupes
+ PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )"
+
+ # Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
+ if [[ -n "${PERL_OLDVERSEN// }" ]]; then
+ local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )"
+ einfo "This version of perl may partially support modules previously"
+ einfo "installed in any of the following paths:"
+ for incpath in ${inclist}; do
+ [[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}"
+ [[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}"
+ [[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}"
+ done
+ einfo "This is a temporary measure and you should aim to cleanup these paths"
+ einfo "via world updates and perl-cleaner"
+ # myconf -Dinc_version_list="${inclist}"
+ myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )"
+ fi
+
+ [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
+
+ # Make sure we can do the final link #523730, need to set deployment
+ # target to override hardcoded 10.3 which breaks on modern OSX
+ [[ ${CHOST} == *-darwin* ]] && \
+ myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
+
+ # Older macOS with non-Apple GCC chokes on inline in system headers
+ # using c89 mode as injected by cflags.SH
+ [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
+ append-cflags -Dinline=__inline__
+
+ # flock on 32-bit sparc Solaris is broken, fall back to fcntl
+ [[ ${CHOST} == sparc-*-solaris* ]] && \
+ myconf -Ud_flock
+
+ # Prefix: the host system needs not to follow Gentoo multilib stuff, and in
+ # Prefix itself we don't do multilib either, so make sure perl can find
+ # something compatible.
+ if use prefix ; then
+ # Set a hook to check for each detected library whether it actually works.
+ export libscheck="
+ ( echo 'main(){}' > '${T}'/conftest.c &&
+ $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
+ ) || xxx=/dev/null"
+
+ # Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
+ local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
+ myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
+ elif [[ $(get_libdir) != "lib" ]] ; then
+ # We need to use " and not ', as the written config.sh use ' ...
+ myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
+ fi
+
+ # don't try building ODBM, bug #354453
+ disabled_extensions="ODBM_File"
+
+ if ! use gdbm ; then
+ # workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
+ disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
+ fi
+
+ myconf -Dnoextensions="${disabled_extensions}"
+
+ [[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
+
+ [[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
+ # allow fiddling via EXTRA_ECONF, bug 558070
+ eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
+
+ # setting -Dld= to tc-getLD breaks perl and all perl things
+ # https://github.com/Perl/perl5/issues/17791#issuecomment-630145202
+ myconf \
+ -Duseshrplib \
+ -Darchname="${myarch}" \
+ -Dcc="$(tc-getCC)" \
+ -Dar="$(tc-getAR)" \
+ -Dnm="$(tc-getNM)" \
+ -Dcpp="$(tc-getCPP)" \
+ -Dranlib="$(tc-getRANLIB)" \
+ -Doptimize="${CFLAGS}" \
+ -Dldflags="${LDFLAGS}" \
+ -Dprefix="${EPREFIX}"'/usr' \
+ -Dsiteprefix="${EPREFIX}"'/usr/local' \
+ -Dvendorprefix="${EPREFIX}"'/usr' \
+ -Dscriptdir="${EPREFIX}"'/usr/bin' \
+ -Dprivlib="${EPREFIX}${PRIV_LIB}" \
+ -Darchlib="${EPREFIX}${ARCH_LIB}" \
+ -Dsitelib="${EPREFIX}${SITE_LIB}" \
+ -Dsitearch="${EPREFIX}${SITE_ARCH}" \
+ -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
+ -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
+ -Dman1dir="${EPREFIX}"/usr/share/man/man1 \
+ -Dman3dir="${EPREFIX}"/usr/share/man/man3 \
+ -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
+ -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
+ -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
+ -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
+ -Dman1ext='1' \
+ -Dman3ext='3pm' \
+ -Dlibperl="${LIBPERL}" \
+ -Dlocincpth="${EPREFIX}"'/usr/include ' \
+ -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
+ -Duselargefiles \
+ -Dd_semctl_semun \
+ -Dcf_by='Gentoo' \
+ -Dmyhostname='localhost' \
+ -Dperladmin='root@localhost' \
+ -Ud_csh \
+ -Dsh="${EPREFIX}"/bin/sh \
+ -Dtargetsh="${EPREFIX}"/bin/sh \
+ -Uusenm \
+ "${myconf[@]}" \
+ "${EXTRA_ECONF[@]}"
+
+ if tc-is-cross-compiler; then
+ ./configure \
+ --target="${CHOST}" \
+ --build="${CBUILD}" \
+ -Dinstallprefix='' \
+ -Dinstallusrbinperl='undef' \
+ -Dusevendorprefix='define' \
+ "${myconf[@]}" \
+ || die "Unable to configure"
+ else
+ sh Configure \
+ -des \
+ -Dinstallprefix="${EPREFIX}"'/usr' \
+ -Dinstallusrbinperl='n' \
+ "${myconf[@]}" \
+ || die "Unable to configure"
+ fi
+}
+
+src_test() {
+ export NO_GENTOO_NETWORK_TESTS=1;
+ export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
+ export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
+ if [[ ${EUID} == 0 ]] ; then
+ ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
+ return 0
+ fi
+ use elibc_uclibc && export MAKEOPTS+=" -j1"
+ TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
+}
+
+src_install() {
+ local i
+ local coredir="${ARCH_LIB}/CORE"
+
+ emake DESTDIR="${D}" install
+
+ rm -f "${ED}/usr/bin/perl${MY_PV}"
+ ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
+
+ if ! tc-is-static-only ; then
+ dolib.so "${ED}"${coredir}/${LIBPERL}
+ rm -f "${ED}"${coredir}/${LIBPERL}
+ ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
+ ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
+
+ ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
+ ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
+ ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
+ fi
+
+ rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
+
+ # This removes ${D} from Config.pm
+ for i in $(find "${D}" -iname "Config.pm" ) ; do
+ einfo "Removing ${D} from ${i}..."
+ sed -i -e "s:${D}::" "${i}" || die "Sed failed"
+ done
+
+ dodoc Changes* README AUTHORS
+
+ if use doc ; then
+ # HTML Documentation
+ # We expect errors, warnings, and such with the following.
+
+ dodir /usr/share/doc/${PF}/html
+ LD_LIBRARY_PATH=. ./perl installhtml \
+ --podroot='.' \
+ --podpath='lib:ext:pod:vms' \
+ --recurse \
+ --htmldir="${ED}/usr/share/doc/${PF}/html"
+ fi
+
+ [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
+
+ dual_scripts
+}
+
+pkg_preinst() {
+ check_rebuild
+}
+
+pkg_postinst() {
+ dual_scripts
+
+ if [[ "${ROOT}" = "/" ]] ; then
+ local INC DIR file
+ INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
+ einfo "Removing old .ph files"
+ for DIR in ${INC} ; do
+ if [[ -d "${DIR}" ]] ; then
+ for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
+ rm -f "${file}"
+ einfo "<< ${file}"
+ done
+ fi
+ done
+ # Silently remove the now empty dirs
+ for DIR in ${INC} ; do
+ if [[ -d "${DIR}" ]] ; then
+ find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
+ fi
+ done
+
+ fi
+}
+
+pkg_postrm() {
+ dual_scripts
+}
diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest
index 40caeefca102..13fbd128b28e 100644
--- a/dev-lang/php/Manifest
+++ b/dev-lang/php/Manifest
@@ -16,9 +16,9 @@ DIST php-8.0.1.tar.xz 10642344 BLAKE2B 38e523f316c41de61b39e2f069018fa32cd9886a1
EBUILD php-7.2.34-r1.ebuild 22862 BLAKE2B 5b0b472a80cf298ccbefe0d71a4965d8bfd3de5dd4a57f9f21642119dacb84b0f705f3d5341434fe23bee8e2cffbc2298bffb02a4c551dff8f8f097eb74f4d4d SHA512 7bcfd601092d8d766f620e53d9dba40c71da386072a4ffe9a358ba7a28ff765caf0b19cda385e02b99d552cb565f522a9daa98a1cff9857da65df3c864031bde
EBUILD php-7.2.34-r2.ebuild 22872 BLAKE2B 041fd990f7c2e89ad83476bf66644321cad0c6132d6db5c88c07cbc44fc6246d012c2b0ea6553cfd886665bd8b34e300c986ed8c3de9b7e43bd4e0e0d9620525 SHA512 1b546d9911fc81bf306af751b0571efee65063388fe9d879da360bab61231bb321fb69c3c494c8bda5ccc2cc871308fd17e4a413e7654293640b00fdecb0a4ac
EBUILD php-7.3.25.ebuild 22653 BLAKE2B 7754e07d6819c46459595633bb6012e397d326158ee3881024af680f3de8480647c9eccb5cc4a1f608793d616283e676a3e574a3f3257465012f85857e250530 SHA512 3de2770a6ea7c3edc4bc44e3e123848f187b1a793fe4980d2921f80587e684d2fe9407837c9460e76549a042c1a696ae5c6c86d7f9e95b18dcad8ac1db48612a
-EBUILD php-7.3.26.ebuild 22661 BLAKE2B d8dfb0a106e71d5a0e8288d10c0c3fda2843edab5cf03d89b7f2046777b8be49830021f64125d7c57c7d613fa681ef4035def5ae03b6594f8b73fea845a1ffd2 SHA512 27bcb234347868923bec1bec10a49154eda217f981e3427316d1edb2ceddf3e74795cb0c9efa3e0df927cd5f3ee6981cb9a427ac9241412d40916d9d28d9afc7
+EBUILD php-7.3.26.ebuild 22659 BLAKE2B 2e36dd5307c4a538a634a717dea7076e4c0676ec64b49308f69ae64a7cc45daefb46da2fee526ad91e94397624799b400b4cf9dacdcf36cf5b1900731708ad45 SHA512 764947db97ecdd7c3d9926cd987c7521c8de195ef2a9c2a68f66d25538cf076a6c2dd13b5e6194ae407cb4acc9191aeaea331bfa8fcbfea10543810b286cba5c
EBUILD php-7.4.13.ebuild 21402 BLAKE2B 91ce77170ab0f4bc35581b16bbc025e86d218e4c0f72e12df89cecebedb17538b4acfc3aa890db7e59daf38ba1572e558b7b67ceb57fc39813a500ba0c7ae430 SHA512 5facbd6181da839b559c4c3d8af489588a88eec158d381a0e52224c90b3683e70a1c8500db44dcbc73eca5fed9e0d2c18dcc8360e3d821a9953f0771622a4680
-EBUILD php-7.4.14.ebuild 21370 BLAKE2B dbcf6abecae43015b35a457d31f007133c0223b0c3ceec7a5657a0b1bdec8d7d334824b1f562355eb302df0ef0ebb2168b9423aea69e3dbf9d2930e463ab662f SHA512 f7d1baacc5e130c3816f0deb0816f96775241e0fb9a18723cd922a4b8c8ded4726810d8bdb8d15d23a22d12d97e1882539d71946f97f0ae81f2e5cb43a24f77e
+EBUILD php-7.4.14.ebuild 21368 BLAKE2B baff36836d205b5b32c5bd1c8447bafbace69635ffad7a080bd595cd379a73ebe2ad629cbf8746fe66c2209a33fa63660cc6cf58c4220930d2772be436cbde17 SHA512 828c5e552b4cd3274f31ccadb4a0cb5aab5741f763d8393b1ab21e6e04fa4792790a8967261623b01be9368bbc3f33b80bd44e240b0e1b1045d66c386c0e0764
EBUILD php-8.0.0.ebuild 21265 BLAKE2B 85bf83fa4d71eb9169e1e760a39a532d6fa0e267be1f5dc0cf3d33ab064dcf361f8cca96360728038fe562953a39e2712b9a6f8f51e5080b65af5eb2fc743922 SHA512 c655bb261c8d88f8dcb486c4be357b261d295aec1b4acf136621e40450d72b313ec7eaafaafaf5c2f2a06a15f64c45849bcbaf503ee28c35aa3322d4815af0d5
EBUILD php-8.0.1.ebuild 21265 BLAKE2B 85bf83fa4d71eb9169e1e760a39a532d6fa0e267be1f5dc0cf3d33ab064dcf361f8cca96360728038fe562953a39e2712b9a6f8f51e5080b65af5eb2fc743922 SHA512 c655bb261c8d88f8dcb486c4be357b261d295aec1b4acf136621e40450d72b313ec7eaafaafaf5c2f2a06a15f64c45849bcbaf503ee28c35aa3322d4815af0d5
MISC metadata.xml 3216 BLAKE2B 6118c94f2ac3a2f283eb035cbbacb12343476b4ce22594a00cb7ebf063abb106a0ed5557d311127b8c1e2a53263103ded790cd12d20c6b410ab6f7d218d95ed8 SHA512 ffb0b46b30b1add0fc166e3afe1317e70041a0fe849d4c05ceee011c1b5e130fbde3b86eaf876a4c8a2d23fbd7824f95299642b4f60e129436befb00f4b124cc
diff --git a/dev-lang/php/php-7.3.26.ebuild b/dev-lang/php/php-7.3.26.ebuild
index 96b985300a50..7fb97fec058c 100644
--- a/dev-lang/php/php-7.3.26.ebuild
+++ b/dev-lang/php/php-7.3.26.ebuild
@@ -19,7 +19,7 @@ LICENSE="PHP-3.01
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"
+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}"
diff --git a/dev-lang/php/php-7.4.14.ebuild b/dev-lang/php/php-7.4.14.ebuild
index 81b7710205f7..6fee9aef25d3 100644
--- a/dev-lang/php/php-7.4.14.ebuild
+++ b/dev-lang/php/php-7.4.14.ebuild
@@ -21,7 +21,7 @@ LICENSE="PHP-3.01
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"
+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}"
diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest
index b0446a685303..a9f20142e020 100644
--- a/dev-lang/python/Manifest
+++ b/dev-lang/python/Manifest
@@ -27,15 +27,15 @@ DIST python-gentoo-patches-3.8.7-r1.tar.xz 12572 BLAKE2B 7658ae56993674a7f57cb2b
DIST python-gentoo-patches-3.9.0-r1.tar.xz 13728 BLAKE2B 50e85194c6bafefb8a0ddc4c9dea39227fc2c170db37ab44fa1e068340fa2fc5a59489f50431f0792024df551fc54a20de594579b57717c89fa134b3f000bb6d SHA512 a38c2800e3a0740af79f75f4120c925c7a891aa1f14a71ab56ad97fbabca3573c571140da3f34050bd9f97bd854a704453a910fa6883162196e6d1335a965b61
DIST python-gentoo-patches-3.9.1-r1.tar.xz 10464 BLAKE2B d69ce207020b7a34eb45c149ce88001167704763fbc373a8d5aff48a1d6337774dfb6c75d477442516b8dceb87b116e6d8cf3231334ced9b03aa970aa0d2e8e1 SHA512 72b1e37b1ceac9a0e95aa63a7dd404c69f60ae7a8aac472b8c17100c873a4d28d3291231643862c9d1cfaf990040f8e780590274314047adee199c159d745369
EBUILD python-2.7.18-r5.ebuild 10188 BLAKE2B 42dc7445a0579a3841091487402dff21f20a381113c721ffad04abb956fb5df76a5dac23a1a04278e1e70f16780c5df89ae6c78d9eca030a435d66625d3afa34 SHA512 4e72cf3e65ea8d1e3130a0bd7299de4ff5579514b8d9a0c7fcb904801c2f43ebfc59cdeef0fabd93934a10410b10cd9f9b1ec27aa94522380a609a38134b3a1a
-EBUILD python-2.7.18-r6.ebuild 10537 BLAKE2B aef3b1571bdc86297f043b3432bc15fcba64e34197d5c6fbc67eced999f2ce1a083ad4f537e5b348ff2cede0068939ad2115010724482705a3de7e09bf1436ba SHA512 c159c8644c97323174bbd43a6e83b216dcfcb8d29268577eff020ec918ac85d3aefe4e113f0ceb716385dac68ca4a409f102d920266670997761b3a77080490f
+EBUILD python-2.7.18-r6.ebuild 10532 BLAKE2B 61bfd180066b499265bedf1d5563cf7918c69810b72ce6ef4b76f92bbe83bffd05f5bd1a9c8ffff522f37ba5a00a1db2165011284d9856da374d80df07a1b674 SHA512 58ee09ba291a80cc12d0cdab95f5974d11727520282d3eb78f4f9f3ecb4fd6300a0f1a6651003fcec5ac1a5894b17327be5637a05a50cf81ce4051ceed749d35
EBUILD python-3.10.0_alpha3-r1.ebuild 9617 BLAKE2B 692262ea7574f4b1b5c54e50ae5d32cd1462a234810c1ae2b85eb24e141930f65abb51149e17436e18667152c2df8c5ae2eaa4a4051a45f3c13797e4a2fb772c SHA512 9b0ebca20c6ff10669bc2a3c30fabb249dbff58c56c5ec06fda7fbb463d76748950390c1afa74ae1b55878f40985ae58230874e93d40ec4be83b31e8a99706ac
-EBUILD python-3.10.0_alpha4.ebuild 9945 BLAKE2B 3c111e986f5556d29ebce70d55e2d06b49685b5814fbb9fda465c7c441fd23d35c7a3fd12b5192ec2c6ff75fb6629e93b293b50e3147420a6869aa33cf35de4c SHA512 be722ed6a152a1f52eb331c8634afc3ec05c943dbf20086401d95a42af627e2825ceba8fc701a428ee2325d53527e8a70b162a53ab11eb68f4be13e06d4a59bf
+EBUILD python-3.10.0_alpha4.ebuild 10215 BLAKE2B 56bc64fcd49d64fc54335bff8c0cfac9702e277fdf3f5e5714be497febc4b78a99e94457f2732c8b56c35f4fef4ea6655d71968db19022dfdb97e015ddfc3e40 SHA512 cd8b92d0ee2885e0e6c09c85419c36c3be009ed84bdf4239f607fe30943444dcc02028286529e54b82b7c87068566303defb8e69ba15d3fba3493cfdd041224d
EBUILD python-3.6.12-r1.ebuild 9738 BLAKE2B c5b923a85a870d0c24a4ec96651609afa234c055719fc25cb6c3322172526c898428ca5058e62970ae1c1d0be06ea2a1df148fe9c703de9d0bea26f8195b2ad1 SHA512 e137da3b1ad136f8a6831b709d7ce326d434c4ff44b1b3685eed05c4269d194d20883c3b84a5f3b8624cbf0b85c4d37586bf6cc2c5deac9a2526c2d2ca10c8fe
-EBUILD python-3.6.12-r2.ebuild 10085 BLAKE2B a61739f785e8bd12dae3926240adb090c97d25bbb0df204a17ed8559ca8f493b85b9b09ec4df8e821b9e5f16e5db0c507c498a9ed3a6508a84fc4ce944c31672 SHA512 2541637b170781bb566e6b59e33472141cf4cd0be91e584d0d7ab6e074d63947f211776f77f70e76a34bd49dabea6c452708bb16fcaa95ea5b33c5534c8da3ad
+EBUILD python-3.6.12-r2.ebuild 10079 BLAKE2B 8e20d9b8f247a894dcb11d29955569928f6cfa3cd77ad9a9f58596a5254ed117138a6a10cc89a46a4af253f4100cabba8a2cdb73ec27ba5a4c2d6a953a81df2f SHA512 bd7f7d3d7ecd92e1b8116976b76d93335e18b4e3c27064456fee0ae948d7fe5af0eda42ec5b80fb2321575a37bb511d15c1c5a1b5b0cb8e17bef76f506232a01
EBUILD python-3.7.9-r1.ebuild 9273 BLAKE2B bb987ca9554fdc66d47693cea2a51c13bfcf1470f343d873831c2285855a4d6b58f70c3c9e1fa221172a8f7dcdaca9725ab7634503a99a87dd00ee586af25b6a SHA512 0005121d2e311cfb8ddc153efe18330ca9f7d31aa3eada439696b25192a9b99869b1c46d85b8e5d47ad659efb0d476f829eb9f08840e2266864c15851b3102ed
-EBUILD python-3.7.9-r2.ebuild 9619 BLAKE2B f76c628fc328b685d2ef865e86e90cbffeaa33c4b99701d3e99c65561c0930af58bf988ad3a0d8b3ea3320d0657f5ea468f039ca5a5d2fa9689527b1994c02ae SHA512 85d01262fa84a8f92e6d71858a08d79c775592d2cf7ea1aed2fb21ee3ab5fa776ff61c2948faf0bc8f949fc33c965935970bfa666146b4feced8c8daf0cc4096
+EBUILD python-3.7.9-r2.ebuild 9884 BLAKE2B 37b7ae0784c6f9020030cf612eb7fd6d60e7b98494fe3ed4e265156b9c6462b59703c530ae7801060d3c10abe6f80da89dcb0a1a1c8abc762e3b0576f3a1344c SHA512 a546a3b2d8abf82bc18f6cb6d1e37ef37f51ef1d7997b0362ce8104764958594f8d5782ce37b9ead1bd9fa82bcd07c0da87b0067e5f0cf54db3724745d5e5fe8
EBUILD python-3.8.6-r1.ebuild 9374 BLAKE2B aa3ad15a0d88622c15d5066c691ef284ae5a862d81ebc0bb4b462f9fa4118ec0de854f2b2eb6c36e415c49e3496068e3a5a95e363d0946331d54d07a8b1ed844 SHA512 c1688391a2f1a07b61e93fead2a99537483e3f3b062b04b41c4ff4b4cd27f7e9816afe9b08f0ffea487d1ab7d11618cd5e5bd11acd33b13df9c6606466432d84
-EBUILD python-3.8.7-r1.ebuild 9720 BLAKE2B b357363d25a7015407b898a7faf70d614138e33ec90f6c8934ea0a483c8f3edc138f6d06730c5bb056c43e4c39e5cb185ebd0b7983a19993f1f1d927fe1a5ee8 SHA512 921f2af8cc56a21766927b7deae655ba462fce9e2b26c81b483ba130e466e1b5b25913d8a2593b9b489ee0578262a2d12ce9ac858d525c067a5b621b787087f2
+EBUILD python-3.8.7-r1.ebuild 9985 BLAKE2B 4a4c594f6636426880d024d55c88c423a92f0788fda279852e7674c2233ff920f051acab38dbaac2213f0dd2adcff0e06963359f07cfc370de7b1516bff0fcdc SHA512 8bd15b12bb3334eb70a247e7cbad95fae4d4fee09b3ea9c503ea7afd64f4399fa3cb91f825b798795306dc621b885f1d17c09192b406d503c615abac2471978e
EBUILD python-3.9.0-r1.ebuild 9519 BLAKE2B 70df0df3732280427304871f2b20f6b1018a1e590e479d610ad2b8de055dbe1a56803a35722667af3184c7b888d8c3d64c4ba3553ca724ca4f0baa85843d18cb SHA512 515b89c3fb02e0e6a71ea7db1c51cbea2c5e42a549e19ac93f927585786292ab2d9fc3dbc6f21a9365ad2b0d4b8954f430b1a939c6903e66e29fc4723d297809
-EBUILD python-3.9.1-r1.ebuild 9866 BLAKE2B d609496cda659ae0675e8c9549943d5233e80499ad5a0f902298f8ab4213f1130fde9e9acbc755dc9c580e99d5413c2ce8d00e7066e9893da379928f76bfff19 SHA512 c30e4dba7e753f3afd41bb1573a1206d7fcd2c95425d1ed4f9239b762c4084597e7bbdc7adf5f09370b4b999ddcb0c01cdf5e8b0aae750d87b94e0ac2346a784
+EBUILD python-3.9.1-r1.ebuild 10130 BLAKE2B 979aa284d443b6ec25be197ccbec636ef9ec2ed05e73737fa94b70325560db08fa70576038497d095dd019093ceb4b003dcee51ee770c20284ac9af08452ecb5 SHA512 ebf1762f776f448d0ea1ecb1acebe897cce564bfe704b00bcbdb34d322627b86fdab4ba98f8e358395bbbe426fe526638d9348632b8fd3277878f92b7df34a0c
MISC metadata.xml 819 BLAKE2B 120c7c65d77488e726c5a0f4aa19469867ea6900e747169fae2f9cf8f14ec2936089d5edfe1935ce610bec26387273e261b1cc4b023680c8c4b229f2141a7223 SHA512 08f45707e5490067a21951b9d37c8ae67064ab67cccc5b8d8c204eab8d4a004fb910627b62989c67b849b89d301618f8f8f7996e99e1ef5bab38a239c49c124d
diff --git a/dev-lang/python/python-2.7.18-r6.ebuild b/dev-lang/python/python-2.7.18-r6.ebuild
index 1abbf5e7a6e9..18cd03beb716 100644
--- a/dev-lang/python/python-2.7.18-r6.ebuild
+++ b/dev-lang/python/python-2.7.18-r6.ebuild
@@ -22,7 +22,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="PSF-2"
SLOT="${PYVER}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc ~x86"
IUSE="-berkdb bluetooth build elibc_uclibc examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml"
# Do not add a dependency on dev-lang/python to this ebuild.
diff --git a/dev-lang/python/python-3.10.0_alpha4.ebuild b/dev-lang/python/python-3.10.0_alpha4.ebuild
index a07c3376effd..a68e95cd0c12 100644
--- a/dev-lang/python/python-3.10.0_alpha4.ebuild
+++ b/dev-lang/python/python-3.10.0_alpha4.ebuild
@@ -186,6 +186,12 @@ src_configure() {
)
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() {
diff --git a/dev-lang/python/python-3.6.12-r2.ebuild b/dev-lang/python/python-3.6.12-r2.ebuild
index d1ed379be3f1..a1244b006ad4 100644
--- a/dev-lang/python/python-3.6.12-r2.ebuild
+++ b/dev-lang/python/python-3.6.12-r2.ebuild
@@ -22,7 +22,7 @@ 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"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc ~x86"
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test +threads tk wininst +xml"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/python/python-3.7.9-r2.ebuild b/dev-lang/python/python-3.7.9-r2.ebuild
index 7b22ccdb26a0..4af9ba14bd81 100644
--- a/dev-lang/python/python-3.7.9-r2.ebuild
+++ b/dev-lang/python/python-3.7.9-r2.ebuild
@@ -22,7 +22,7 @@ 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"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc ~x86"
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
RESTRICT="!test? ( test )"
@@ -167,6 +167,12 @@ src_configure() {
)
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() {
diff --git a/dev-lang/python/python-3.8.7-r1.ebuild b/dev-lang/python/python-3.8.7-r1.ebuild
index becacef96767..db352010afaf 100644
--- a/dev-lang/python/python-3.8.7-r1.ebuild
+++ b/dev-lang/python/python-3.8.7-r1.ebuild
@@ -22,7 +22,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="PSF-2"
SLOT="${PYVER}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc ~x86"
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
RESTRICT="!test? ( test )"
@@ -173,6 +173,12 @@ src_configure() {
)
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() {
diff --git a/dev-lang/python/python-3.9.1-r1.ebuild b/dev-lang/python/python-3.9.1-r1.ebuild
index 834dc6945507..840eb26fdce4 100644
--- a/dev-lang/python/python-3.9.1-r1.ebuild
+++ b/dev-lang/python/python-3.9.1-r1.ebuild
@@ -22,7 +22,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="PSF-2"
SLOT="${PYVER}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc ~x86"
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
RESTRICT="!test? ( test )"
@@ -184,6 +184,12 @@ src_configure() {
)
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() {
diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
index 690f8e01ad66..c1949f309909 100644
--- a/dev-lang/spidermonkey/Manifest
+++ b/dev-lang/spidermonkey/Manifest
@@ -8,6 +8,7 @@ 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.6.0esr.source.tar.xz 338098664 BLAKE2B 9d082b6104bffbd0d918dc1adf2a01ac32613d8048faf399177834c4949714a00c1f4383b778a21d6b6684296d8f9bd44fa547ee2507a8631d206e3764d2ceeb SHA512 a1e2d6af0020784d00ed3cb4d778c136685e7c2f6ae536cc270fbd331d51d483d17dff9acd7ad8e6b3b231b9df894c146092889357b23715814a080c6f08d11a
+DIST firefox-78.7.0esr.source.tar.xz 332849732 BLAKE2B 66e224021cbd15b6b625da3c0a98b05026f4f284afbef5299368a218c16da24cd05431ab82c52859b835baf63298ec832681fbc58b3bfe833e68dea1737c6dcb SHA512 afa37d2f6bbe04715d84a8964f75139042364501c358da98771115d7fe7d23788e95b6ff29d77c064a9cfcd208c1424924017ef2a72cbb79dbb45d6f365f030c
DIST firefox-78esr-patches-07.tar.xz 66156 BLAKE2B 8f69883432dcbd484b1fb15e3fde1630b1424e502ba78d9ec3cbe70cb2676a6876853d3477c8bfe35e92bca91b200e2d14543de1778d895676a52d2608109af2 SHA512 b4a01d3499002bd33a7fb45a1a80e9e73ba27a0986b6bfa43b3482dd8d82a686a14ae0c5e013402c8c8f359a642632a40bf4c362a0e83a1f53b453914f42e3a7
DIST js185-1.0.0.tar.gz 6164605 BLAKE2B 76a37f0ceae05d3475853875bd0ce4be6e525e4114816f8f281ea6fc6b60a71060975a0fa1cb843f57ad1e2f842dfb26b24244fa0fd6c20f6ae2ebbe430f70be SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718
DIST mozjs-52.9.1pre1.tar.bz2 30178574 BLAKE2B 0920432b5140e78297a9bcbccb54268d75a223d5e75e4ff90b3b01aab4f7736b4a4e05c47b3a925ff0a74607a0abad3b6583c75d070ef5142009b20ebaf6e4bf SHA512 187b231b246a5ae09e55c0fef77866b316d75f38f4c2e066d5d4325d8da63433027020c929439cab46af3253ac63ab2f780223a8fd2c6ff535b3409bb6c4aa0f
@@ -22,4 +23,5 @@ EBUILD spidermonkey-52.9.1_pre1-r2.ebuild 4592 BLAKE2B 506e6a1958e0c4cd7f3898410
EBUILD spidermonkey-60.5.2_p0-r4.ebuild 4239 BLAKE2B 09f2cc1baada4607f23b71daecd974a450ea27e7ce3935018e16bbe0efd7ad4a1ee079b74b180b851923e0c56b7681064a02ae5026f85e05c5a402f477b5f705 SHA512 6e7b78828bc4c39f48112a1f7bc4d3efe30a5332506f10c7983f2492ef732cba7a57985b281b270721f67ad627b9fb19f8ec05ae2210b7018519b40d1a7e65a2
EBUILD spidermonkey-68.12.0.ebuild 7310 BLAKE2B 9808f81f5adcd34331a2ae9db9c00303f13493e9a3dfdd007f89b8a87ce86c8626cd6041116ed0347f1675558363097c1d8727b36e92ed8dc76af2f2584a186d SHA512 c7ada8f749bf7fb5de92653730d54a1b1af32cce2486766606eae6cb3b592967c0fca37d43375250fa924ee9fdc275f923c0bd620cc25d21d51b8ba4be8587fc
EBUILD spidermonkey-78.6.0.ebuild 12231 BLAKE2B 23f377bc3119c5c7597d792f47f4dbd12f069e35471b5f46391e8bd5f5cc173eb72c535daddd80cf0a264a2b101678c62ca3299946e38a8987b2cf9546af5582 SHA512 53731ca5668eb62120fabe901ab65d6d7cf337fcadea77e1e79b43d1fb8adbd669caf7514d028fbc55decb46291977c4553adcda8e0f68f7c628e11bce56860d
+EBUILD spidermonkey-78.7.0.ebuild 12236 BLAKE2B c0abaabaa1c3ec9d7515cf2f2a672e470d0d3ce1bd4243cd259ca2b75925bbd2a58df9b9e8d18c0011939716556259704bdfa39f09496bd6ccb16e78fede2724 SHA512 8eb69d42cfdbad2c024269a36b41dbddee2631a086414dbde68bb5616ca11d56c627a7948afc5b91424faba448f609a74de7a79ddb98ecde8d93d44a0fd50079
MISC metadata.xml 868 BLAKE2B ee529f60bc83af6c54188ab4db2a1e05cbc3fcebf7732580cb5e507afada8560cb8812d4f155ae94c2ec87724bdfafe7312de86b47a95f599655695836c9b806 SHA512 caf3c383cd8109391cbf81baf5e942630bfd84ca6bc2a78430e58e5b0a40428e08b8a3d7c9fadccebaf94fe1aa673df837246fc32d5932b7f60dd43431ee1575
diff --git a/dev-lang/spidermonkey/spidermonkey-78.7.0.ebuild b/dev-lang/spidermonkey/spidermonkey-78.7.0.ebuild
new file mode 100644
index 000000000000..6baa8676e0ba
--- /dev/null
+++ b/dev-lang/spidermonkey/spidermonkey-78.7.0.ebuild
@@ -0,0 +1,436 @@
+# 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-07.tar.xz"
+SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-03.tar.xz"
+
+LLVM_MAX_SLOT=11
+
+PYTHON_COMPAT=( python3_{6..9} )
+
+WANT_AUTOCONF="2.1"
+
+inherit autotools check-reqs flag-o-matic llvm multiprocessing 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 ~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: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* )
+ )
+ )
+ (
+ sys-devel/llvm:9
+ clang? (
+ sys-devel/clang:9
+ lto? ( =sys-devel/lld-9* )
+ )
+ )
+ )
+ 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 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!"
+
+ local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
+ [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+ [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
+
+ if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
+ eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+ eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
+ eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
+ eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
+ eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ 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"
+
+ 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
+}