summaryrefslogtreecommitdiff
path: root/dev-lang
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/Manifest.gzbin17511 -> 17510 bytes
-rw-r--r--dev-lang/cfortran/Manifest5
-rw-r--r--dev-lang/cfortran/cfortran-20110621.ebuild2
-rw-r--r--dev-lang/cfortran/cfortran-20210827.ebuild56
-rw-r--r--dev-lang/fpc/Manifest3
-rw-r--r--dev-lang/fpc/fpc-3.2.2.ebuild13
-rw-r--r--dev-lang/go/Manifest6
-rw-r--r--dev-lang/go/go-1.17.2.ebuild (renamed from dev-lang/go/go-1.17.1.ebuild)0
-rw-r--r--dev-lang/go/go-1.17.ebuild197
-rw-r--r--dev-lang/ispc/Manifest4
-rw-r--r--dev-lang/ispc/ispc-1.16.1.ebuild78
-rw-r--r--dev-lang/ispc/ispc-9999.ebuild23
-rw-r--r--dev-lang/janet/Manifest4
-rw-r--r--dev-lang/janet/janet-1.17.2.ebuild (renamed from dev-lang/janet/janet-1.15.5.ebuild)49
-rw-r--r--dev-lang/lazarus/Manifest2
-rw-r--r--dev-lang/lazarus/lazarus-2.0.12.ebuild83
-rw-r--r--dev-lang/ocaml/Manifest18
-rw-r--r--dev-lang/ocaml/files/ocaml-4.11.2-glibc-2.34.patch91
-rw-r--r--dev-lang/ocaml/files/ocaml-4.12.0-glibc-2.34.patch91
-rw-r--r--dev-lang/ocaml/ocaml-4.05.0-r7.ebuild5
-rw-r--r--dev-lang/ocaml/ocaml-4.05.0-r8.ebuild5
-rw-r--r--dev-lang/ocaml/ocaml-4.09.0-r2.ebuild7
-rw-r--r--dev-lang/ocaml/ocaml-4.10.2-r2.ebuild5
-rw-r--r--dev-lang/ocaml/ocaml-4.11.2-r2.ebuild11
-rw-r--r--dev-lang/ocaml/ocaml-4.12.0-r2.ebuild97
-rw-r--r--dev-lang/ocaml/ocaml-4.12.1.ebuild4
-rw-r--r--dev-lang/ocaml/ocaml-4.13.0.ebuild97
-rw-r--r--dev-lang/perl/Manifest9
-rw-r--r--dev-lang/perl/files/perl-5.26.2-hppa.patch105
-rw-r--r--dev-lang/perl/files/perl-5.34.0-gdbm-1.20.patch40
-rw-r--r--dev-lang/perl/perl-5.32.1.ebuild822
-rw-r--r--dev-lang/perl/perl-5.34.0-r1.ebuild822
-rw-r--r--dev-lang/perl/perl-5.34.0-r3.ebuild (renamed from dev-lang/perl/perl-5.34.0.ebuild)8
-rw-r--r--dev-lang/python/Manifest14
-rw-r--r--dev-lang/python/python-3.10.0_p1.ebuild (renamed from dev-lang/python/python-3.10.0.ebuild)2
-rw-r--r--dev-lang/python/python-3.7.12_p1.ebuild (renamed from dev-lang/python/python-3.7.12.ebuild)4
-rw-r--r--dev-lang/python/python-3.8.12_p1.ebuild335
-rw-r--r--dev-lang/python/python-3.9.7_p1.ebuild (renamed from dev-lang/python/python-3.9.7.ebuild)4
-rw-r--r--dev-lang/ruby/Manifest7
-rw-r--r--dev-lang/ruby/files/2.7/900-musl-coroutine.patch41
-rw-r--r--dev-lang/ruby/files/2.7/901-musl-stacksize.patch26
-rw-r--r--dev-lang/ruby/files/3.0/900-musl-coroutine.patch28
-rw-r--r--dev-lang/ruby/ruby-2.7.4.ebuild6
-rw-r--r--dev-lang/ruby/ruby-3.0.2.ebuild5
-rw-r--r--dev-lang/swi-prolog/Manifest2
-rw-r--r--dev-lang/swi-prolog/swi-prolog-8.2.4-r3.ebuild127
-rw-r--r--dev-lang/swi-prolog/swi-prolog-8.3.29-r1.ebuild128
47 files changed, 1275 insertions, 2216 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz
index 73fa4f481b34..24032b65fcbc 100644
--- a/dev-lang/Manifest.gz
+++ b/dev-lang/Manifest.gz
Binary files differ
diff --git a/dev-lang/cfortran/Manifest b/dev-lang/cfortran/Manifest
index d0fac2f4fd8e..4e12ea726ba0 100644
--- a/dev-lang/cfortran/Manifest
+++ b/dev-lang/cfortran/Manifest
@@ -1,7 +1,10 @@
DIST cfortran_20110621-1.debian.tar.xz 13352 BLAKE2B 0039dd4b5973e5cd13a136c51e8719ffa8e104db0d716cbd247fe440643dfce5308767d182abbcbafbd1de791e8cb4384c479660fe8b592477968d40c54078e8 SHA512 51387a17e4f69e5f5e53e188b5397a08d578aba42fdc446d4901e59be32bb0e5f07d871daa809e9de6051b4d9213b4312e25f70970db9173e4f33a0e66b4b44b
DIST cfortran_20110621.orig.tar.gz 129061 BLAKE2B 16c0cae1675923c1f6f13fe5a2a65ff86a2a80e4b3c3956c04cbc2df562dad8426b90c8a3a34919c28a7bee29f7430ffe8b415e28a484421aa8f58430456b934 SHA512 59b4285bb5392916880503bdd1cead5602944ebbf615d3c40bb7232770d6a74d3138a0b2abbab4fed9ea9bd2a56b2d3097d9609833c07d773dc43b8be0a3258a
+DIST cfortran_20210827-1.debian.tar.xz 8096 BLAKE2B 719b9cda29149e88342a54931af7f3b85a3cccc5dd5c573d9cce24fd67975141062fa538243ad40cb259464a53f3c77280a6097f01cb67f49b5e650cf49ab78f SHA512 86eb0692679dc0f3ec06d5f8c36c2ba242a52a01eb9bf1f9830dd2a689014ab2f0733c2c6210033e982d644bc4babf8420354f05079dfed30361a822b62aa845
+DIST cfortran_20210827.orig.tar.gz 94493 BLAKE2B 9ba0a22d1231702d04e484c21b566967a44684691fe08f7dc156e7b58946ab72694040e1513d51754993f82c4b80e58b365c25ad99acfb875cd2bf5db29dd7f6 SHA512 df12086f7718d205f3d0e40fafc1584339020e2be8ce5a96a314448018eac8d76fa7ae888c353e36f10e7347add609c2fe00558ec369e0ede2580973c21e5963
DIST cfortran_4.4-14.diff.gz 23084 BLAKE2B 8e760b3697869c12e94925c4781318fbe7640f0563a2464bf5d9f51a4afcb4bf9c281bab189542f2342d6dbc6f5524b4a48d9f844459d190e9182a96ebefbf9b SHA512 1e0b267efc17c2ba30ca1108d59ef87d1a401e6b88bea2c7045458f8cfad6ec9a05f6bf4a08c1d6cb314c790a4969a1f0fdf0c7b6abc28bae544928aad5b0218
DIST cfortran_4.4.orig.tar.gz 120119 BLAKE2B df4e0650e2718ed0c2009fb1b85330266308b0b584fcdc85e08cad0913bf063ab38824724b43a005a63a6e6bd5152b35115a68659487a992b96d0d38792e6d0a SHA512 969d0db566ecd7ed7945cac7f8ceea1cbd94ab427734ba83882acf97022c83b1417e32515d847fee89144137f58f7041cf5164fc397f3d7526f3aa958f8b038c
-EBUILD cfortran-20110621.ebuild 1420 BLAKE2B 609c101e7d72edf3b020b70146f7a656dc04beb0be2fbb2a43257d5b9afc0da64aaccd51bb35bd027da4d560d5d50fcf11b04d5cdd30959bfd17b388084c192f SHA512 ee9a24fe8e6749bbfec7cd388b029cd30fd552649b3f2c710e4b7d1f60df970d5569b89b33b9e9ae14425581408c4c0cc28c48458a84b04928dd250f74bb2a69
+EBUILD cfortran-20110621.ebuild 1416 BLAKE2B 4175b7a75672f246ad5a2474374204cea62ad438000df92678846ac365188afa928f276172dbc6939b298c2bf8baa23e4b89a731ae5180454e7c21723fd664dd SHA512 ae9ac2cce49dea1ae3b9791afeb9e922c73e3078ae21b365b4b6076f3b37801a51d4b224e1a51a8207613c32ca74043d0cdffff16be791926328954849a8661c
+EBUILD cfortran-20210827.ebuild 1525 BLAKE2B a5718642d226b61ac91ba0b47cc44b4b28f6419637c15917ebc99f08174adda7c4a3d70b5c822786c97ac098b4db37a5546d3ad425f9da883ca2857c32c27907 SHA512 142974415f6f3dd0781a05d0675a9cc07c021c2eead30509b485002dc22a811e4d6d2f13b761f5fc8ae01ac81f91e8ed749dd225bc0b1f401404ba8738de668e
EBUILD cfortran-4.4-r3.ebuild 1136 BLAKE2B 79debf78d636671368b117d93e58482eacda398b631f7855d075fcbb8785dbc069c45edcd4d3fe6f9ea84d13768dc3c7741eb633eabe67c79af8187c7c315d6d SHA512 aeed0e2b0532ce563554afc3df7576c9b7ac8d8e1706bfaac4291f42b957036bb7e5be0267d42305830b33f8fd3818ce4d62352d82b271b3f6c12a86bc746347
MISC metadata.xml 589 BLAKE2B 0d608e14da396cb7c906fd1859a36eecd8adc283a0c4e5202bbb022adc95dd148c7de31dd6d65f8e611b2e79a96290b2fa59447d564780ebe58cf7a1d092e74c SHA512 a3b37c71425dc57d3116a6bac8ed5935a2f558e58f78bbe34faadd5f0584bbeb954af353778d5c46aaa667a2dacd06de6cd8ff8f95882f6c2ee898f1cd03cbd5
diff --git a/dev-lang/cfortran/cfortran-20110621.ebuild b/dev-lang/cfortran/cfortran-20110621.ebuild
index 521e4f2464b1..e61e831fc6a1 100644
--- a/dev-lang/cfortran/cfortran-20110621.ebuild
+++ b/dev-lang/cfortran/cfortran-20110621.ebuild
@@ -17,7 +17,7 @@ SRC_URI="
SLOT="0"
LICENSE="LGPL-2"
-KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux"
IUSE="examples test"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/cfortran/cfortran-20210827.ebuild b/dev-lang/cfortran/cfortran-20210827.ebuild
new file mode 100644
index 000000000000..d389fc9ca6b7
--- /dev/null
+++ b/dev-lang/cfortran/cfortran-20210827.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FORTRAN_NEEDED=test
+
+inherit autotools fortran-2
+
+DEB_PR="1"
+
+# https://github.com/bastien-roucaries/cfortran is for the Debian fork
+DESCRIPTION="Header file allowing to call Fortran routines from C and C++"
+HOMEPAGE="https://www-zeus.desy.de/~burow/cfortran/ https://github.com/bastien-roucaries/cfortran"
+SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${PV}.orig.tar.gz"
+SRC_URI+=" mirror://debian/pool/main/c/${PN}/${PN}_${PV}-${DEB_PR}.debian.tar.xz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples test"
+RESTRICT="!test? ( test )"
+
+src_prepare() {
+ default
+
+ if [[ -d "${WORKDIR}"/debian/patches ]] ; then
+ eapply "${WORKDIR}"/debian/patches/
+ fi
+
+ eautoreconf
+
+ if use examples; then
+ # The examples are also used as tests and it's tricky to clean up
+ # afterwards, just save a clean copy (sans Makefiles, as they only
+ # cover the test phase) before the tests are run.
+ cp -ar eg eg_src || die "Failed to preserve a clean copy of examples"
+ rm -f eg_src/Makefile{,.am,.in}
+ fi
+}
+
+src_install() {
+ default
+
+ # For compatibility with older versions
+ dodir /usr/include/cfortran
+ dosym -r /usr/include/cfortran.h /usr/include/cfortran/cfortran.h
+
+ docinto debian
+ dodoc "${WORKDIR}"/debian/{NEWS,changelog,copyright}
+
+ if use examples; then
+ docinto examples
+ dodoc -r cfortest.c cfortex.f eg_src/*
+ fi
+}
diff --git a/dev-lang/fpc/Manifest b/dev-lang/fpc/Manifest
index 206b9191c2eb..1f98b44a093f 100644
--- a/dev-lang/fpc/Manifest
+++ b/dev-lang/fpc/Manifest
@@ -3,11 +3,12 @@ DIST fpc-3.0.4.i386-linux.tar 54691840 BLAKE2B c0951c85a3916c29e8e7391408da09abd
DIST fpc-3.0.4.source.tar.gz 40347617 BLAKE2B 0764c92cc379d6e70a3f33368d96244ea0203b3395a5dbcadebe6ef51b508cbc7c112f9bc7bce69ae6dae1fde03bc9e45a1a8ad70ca154cc4dd51bc93cab82f9 SHA512 fc64fd94c39f220bd7531126d6281fa2141aed61c218595a7906a025660b46629a305ff7eb023f5e1359eafdec2dba69aa5405f1bbc3c1182414968689cbb52e
DIST fpc-3.0.4.x86_64-linux.tar 56842240 BLAKE2B fda488466f409d4f50501ad17edcce2740f0a7e60ac86bbfec235ccc27c619d62d2aab01aa7878ba3e174c35fd46aab98e43eda4528e98fdf3e098330eea9b26 SHA512 085110d0fade11c4e6e79c002522080eb070cebb8ebbed48ca35e3a2dc025df678516e36c7cba5f951e20c0da57dd261d673dda6839ecdf5d88aa8dfe15a56e5
DIST fpc-3.2.2-doc-html.tar.gz 5810672 BLAKE2B 5d2c0ce35024f58d35e59034d4c071ec58214874f31ef44b8f4ea8cb68636080b61dea9a5d0ccc8062814c0b2fe3bc5269e6584ae30fedb29dbb0709ce1b3103 SHA512 0bdefd25b9f46bb6684bb4dd8f60de796cbbf81049a7e8bac4cc4bc87dd6100a42ea05601cf1bb0254e8b73ddaf5d1bf186dbf1909f1ed7db7bdf97f50df7cdc
+DIST fpc-3.2.2.aarch64-linux.tar 137943040 BLAKE2B 1f2b3ff35d33419bd60a65bee8e20264a7970e515e0d8239dc51bd415b9a4fc580b7d3bd7fcd2a6964f78669e9dda13d1349281116004d582236a4f314dc6935 SHA512 8a52c53cd167af39222296db7c91aadf0b5d845272833a961c5db0c7d2d4cb5e61f41f71e0989c193dc2923770440b19d7d3d71de65291d0a3e0a15edc793316
DIST fpc-3.2.2.i386-linux.tar 85043200 BLAKE2B 9e2fae2d272c79cc7fcf4d062589bd888c342ccfb01e3f14e412bc58ff6b04928c6a7a0a4b3392b30f0864f16029d063632bd72bd9cac55e0a40a00fb726ef93 SHA512 b4f1a94d1a05901f4ffc2e07519e9b03666850211e571cbce33f0ba16d8a1d88de256c8e111579f46d56f157630dfc722a8ae9ce2b200fc784c588ea4e6bd5df
DIST fpc-3.2.2.source.tar.gz 52240052 BLAKE2B e30cf1b10c4cafd0ae2a25673678213669c29dec0549f4d7b357011e84a0a2c8ecf343cb6443798e6c36c02ae97a0c7cae7ca24829510c552968d4a58426576f SHA512 6d320b4e0805d63c40d3037f9d2078068c2c9fcdeb6ac073a6fcc19249bd6325dc542fcc7fc6dbb7e69507dcd84cf9e720e7d73925afe955e2a24e8c7d92606a
DIST fpc-3.2.2.x86_64-linux.tar 86978560 BLAKE2B 29cac8c0da4ba65cee6a0e0cd3c111202c8943ca61a02c5dfeaeb174c353db6fc07e291794ef7433f9fdf88ed694260e734bc715567c6a12292b0c8524d17f4e SHA512 534df830a951824525044479ded23ef1e61b104c0dd65c837ad0d8d9ced9eb7349925a3f759756aa95ae17e567d8b1cd5c7e2092d3c665eaac578845b48aa467
DIST fpcbuild-3.0.4.tar.gz 68908523 BLAKE2B b5c3936cf0b803aa2cc71f9c25ded470f207c540a1691cf3c2a9876c9e4eefd5c04f45b9f1f3ca17917b14ba4a90e0f16cc890b27024ff225d9d6bb25649862b SHA512 eedfeb4d25b3f4cb30ae9c8f30e0fec2405ef806fa565933cef7904d512f781730e3f023aea2f908c21250e3ced4f74fa780abad77b560728a88cedf591505b6
DIST fpcbuild-3.2.2.tar.gz 84195619 BLAKE2B 88848308c93f949b59197649cc344498082b6520e43eb1d4413bf68eb251fcab75c863794a188a2298d9e8aba47346253a596ac630b30049ac8bd6f6934aa5a2 SHA512 75889bb54adc70a6e2cbd291476b9b12d61c8f943a05b7d16d2024de3215c935465ff43b1400c412e128e260c7f49a9c66e35c21f86cb866e671b5b60a282d82
EBUILD fpc-3.0.4.ebuild 4462 BLAKE2B be022df7469922721d72f3e859b87ef9f265e5523105f7534bc590670b9ac416cf3e3d4f425f2804bc914bfa31f11911728fd74dce36afc76c1de0f0fa865f80 SHA512 0a1636056da7eb640123aa11a9f77f26a438f302c6dc6de18d5c9156c737dc2d8ab035b4e17636078ac5b122eac1850f8d7ab42e556cadd0af6f41e4eadd2adc
-EBUILD fpc-3.2.2.ebuild 4477 BLAKE2B 03acc59ada56841cb2ac7426f21ebe93825997f0b0ab444aecae228c3fe641b5b671809bbf1a880b1e5ddd66728bc4338f5c1f69a863b7d60e2b9755f05a57a9 SHA512 7c223e78e4b72cc73e6e4235cb80f00278182e65d428fd1d0732cd6e782fc440971922401527d66dc7ac63b8677ab13c0080f4978d0010bad45503e6c92822ac
+EBUILD fpc-3.2.2.ebuild 4666 BLAKE2B 06aaf8875f7abd3d017245cd25f2e36e58b95d19afe0cfb8c64be5df4d1aea1df73b438b508be4bd7991739fcca06e0b772ed664dacfc94ed18b4082a9ed8b05 SHA512 f58deae3e635c8f2ddf7a8ed5449f6445a34e87769d6b613c858e3e3f9955ea89d3a7a1df651989390ee601e20b273272385d25777b492a83abc5c1b18f112e7
MISC metadata.xml 386 BLAKE2B dbaae2622365b59e14a6e0daace220a41d2038d93d861045245f3b688edf0467044cfb4672be9e286466044647efb3edbf0cbfa79270b0cd35bd8a6575b642a5 SHA512 cec11361b6248b0a3c5a26fb8de7ba99517a193e6add2c4d6cda0213421f8f9d4f63465f65f1fefba293b0f49a8e452e8de3ca06be8a99b5a203f48e01b742bf
diff --git a/dev-lang/fpc/fpc-3.2.2.ebuild b/dev-lang/fpc/fpc-3.2.2.ebuild
index ffe9f92b4f08..ce1852bf58e9 100644
--- a/dev-lang/fpc/fpc-3.2.2.ebuild
+++ b/dev-lang/fpc/fpc-3.2.2.ebuild
@@ -10,13 +10,14 @@ DESCRIPTION="Free Pascal Compiler"
SRC_URI="mirror://sourceforge/freepascal/fpcbuild-${PV}.tar.gz
mirror://sourceforge/freepascal/fpc-${PV}.source.tar.gz
amd64? ( mirror://sourceforge/freepascal/${P}.x86_64-linux.tar )
+ arm64? ( mirror://sourceforge/freepascal/${P}.aarch64-linux.tar )
x86? ( mirror://sourceforge/freepascal/${P}.i386-linux.tar )
doc? ( mirror://sourceforge/freepascal/Documentation/${PV}/doc-html.tar.gz -> ${P}-doc-html.tar.gz )"
S="${WORKDIR}/fpcbuild-${PV}/fpcsrc"
LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
SLOT="0"
-KEYWORDS="-* ~amd64 ~x86"
+KEYWORDS="-* amd64 ~arm64 x86"
IUSE="doc source"
RESTRICT="strip" #269221
@@ -43,6 +44,10 @@ src_unpack() {
FPC_ARCH="x86_64"
PV_BIN="${PV}"
;;
+ arm64)
+ FPC_ARCH="aarch64"
+ PV_BIN="${PV}"
+ ;;
x86)
FPC_ARCH="i386"
PV_BIN="${PV}"
@@ -75,6 +80,10 @@ set_pp() {
FPC_ARCH="x64"
FPC_PARCH="x86_64"
;;
+ arm64)
+ FPC_ARCH="a64"
+ FPC_PARCH="aarch64"
+ ;;
x86)
FPC_ARCH="386"
FPC_PARCH="i386"
@@ -163,7 +172,7 @@ src_install() {
rm -r "${ED}"/usr/lib/fpc/lexyacc || die
case ${ARCH} in
- amd64)
+ amd64|arm64)
mkdir -p "${ED}"/usr/$(get_libdir) || die
mv "${ED}"/usr/lib/*.so "${ED}/usr/$(get_libdir)/" || die
;;
diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest
index 569c07fa283b..c41e4afdd46d 100644
--- a/dev-lang/go/Manifest
+++ b/dev-lang/go/Manifest
@@ -1,7 +1,5 @@
AUX go-sets.conf 313 BLAKE2B 03e94776e317d34b72bfb8385b8b0dfa6a599a6086e4d0c9214e7b49293768947c21d9afb323ffcc7fd85ba0af72d9cb243dbb571eee9eb81de9400fd5f5e79c SHA512 7d01b98bc8d1b609183682dd942bd4c9fa757a98243c7de3cf6c497c7bc20b8cdbe59dd669ce4bb11f914a0e9b6d100e65cea2dffd99f38be50b18e0ecf66315
-DIST go1.17.1.src.tar.gz 22181735 BLAKE2B 77ce952e14c101776935c625aa39596a6b8923ca5ac264c72ed08a578f08fbbbc1825315a5dd84f9fa1412aaa7400b31e73117d5919aeb527c084173d8e11504 SHA512 23d4e003651204c5bcc5cf41437134e07a3fe3c188eb129f2d6366a7445a7919d6a7319c57483e91b3415fd28aa55df8d58eec398434f20ce6accd587925a14b
-DIST go1.17.src.tar.gz 22178549 BLAKE2B 86cb84ff782eaee3fc0411b1f31cd985f3fdcda7b2709f3a94cba0fbe827ac13632d0476e1f67deaf06d2352c2ea3ac9217db7d170702dffff6a64beabdb0814 SHA512 bb94d69555faa103bc092ce85b73168954a553a5c72e4b38c39bd99a3eb4db679f352685e66507b0945ed12676eb2a0c51674e456f68a9a5b98c3ec6a948d35b
-EBUILD go-1.17.1.ebuild 4859 BLAKE2B d811b883c708d26bf3915e2eb270655cd52bb4e5686ee46342cb2c34e3f8f14ac7f3ac0dcc66d66d2491a11aaf096dd00e9f8ce006abfee7d126927071f79b77 SHA512 6593287c2c5de92e9acd91d677281d3dc25a50b2c513ae788e19500205bf497facd6ff28d276b55be4ea6ef8b6584c7ca01fcd27c582dbc89d53cf893bfe17ff
-EBUILD go-1.17.ebuild 4868 BLAKE2B 00ba0cded39fd819257207ca29f9fb05061a0a08c9594c456fa7947f7fe2b192753a95b97673babdcf1d751be77e6d652f8536f9d29232310497b8c0b8406d83 SHA512 269368e6caf90524fef72167010a86c104311993e092590e5025d6dcf92dfdea96122ac88d30d16306d56aded36fa45b74a930e43864f8452d50e8166d622523
+DIST go1.17.2.src.tar.gz 22182111 BLAKE2B 83b665af212f3e20dc9c9f4bd80ac0e1e4acb8ba6653835f6a8b990a5d6074a25ba78b783f7a4f9402b3f1916a65ddba4ad9780e4eae871719cff13f7bb9c980 SHA512 167220293e02d6994b5cdee5909cbdbe66f692619baeb6ff9ee0d56660eb39cfd9eac2ac510f113d5222dadd5858fd6276bd961365ca42b42c07af5d24d48107
+EBUILD go-1.17.2.ebuild 4859 BLAKE2B d811b883c708d26bf3915e2eb270655cd52bb4e5686ee46342cb2c34e3f8f14ac7f3ac0dcc66d66d2491a11aaf096dd00e9f8ce006abfee7d126927071f79b77 SHA512 6593287c2c5de92e9acd91d677281d3dc25a50b2c513ae788e19500205bf497facd6ff28d276b55be4ea6ef8b6584c7ca01fcd27c582dbc89d53cf893bfe17ff
EBUILD go-9999.ebuild 4864 BLAKE2B 25499638c8cb647c86222a7eb665e1897bb1cd7a0e5f379d5b5fdad43da77dbb2355e7d25f2cea25f96b6df1441a10dcfd1e2aa9a03d546996b9db74003bf016 SHA512 c3f237385c9f24ed02bbbb0afc0b5547077aa8543ccddcd7eee5b3be2d4d4fbf25ca685cede3954738cd84417d41dda6c10b7191bfce0a09c1d84e635f1ddc90
MISC metadata.xml 463 BLAKE2B 133822f9d8be6d5aeb0bf8b9e41ee17637cc3e6f78590a36c1811b77a77a74dd541bb98ad57cfeb6b71a9bcb106c4ac58effcfcfbbef6db4e05b155ef196fd0b SHA512 2837a80088ac2e07cccfb78497c121902a3a0e2f6677b42b1cd82dd3b4e2703099b6d4c95c6c08fefbc647b9b279692e3a46b1126acaad9298c1ecd3b6899fe5
diff --git a/dev-lang/go/go-1.17.1.ebuild b/dev-lang/go/go-1.17.2.ebuild
index 4b20d98f17e7..4b20d98f17e7 100644
--- a/dev-lang/go/go-1.17.1.ebuild
+++ b/dev-lang/go/go-1.17.2.ebuild
diff --git a/dev-lang/go/go-1.17.ebuild b/dev-lang/go/go-1.17.ebuild
deleted file mode 100644
index bfde2d27f4dc..000000000000
--- a/dev-lang/go/go-1.17.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 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
- ;;
- esac
-esac
-
-DESCRIPTION="A concurrent garbage collected and typesafe programming language"
-HOMEPAGE="https://golang.org"
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-IUSE="cpu_flags_x86_sse2"
-
-BDEPEND="|| (
- dev-lang/go
- dev-lang/go-bootstrap )"
-RDEPEND="!<dev-go/go-tools-0_pre20150902"
-
-# the *.syso files have writable/executable stacks
-QA_EXECSTACK='*.syso'
-
-# Do not complain about CFLAGS, etc, since Go doesn't use them.
-QA_FLAGS_IGNORED='.*'
-
-# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
-QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
-
-# This package triggers "unrecognized elf file(s)" notices on riscv.
-# https://bugs.gentoo.org/794046
-QA_PREBUILT='.*'
-
-# Do not strip this package. Stripping is unsupported upstream and may
-# fail.
-RESTRICT+=" strip"
-
-DOCS=(
-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 ;;
- riscv) echo riscv64 ;;
- s390) echo s390x ;;
- *) echo "${portage_arch}";;
- esac
-}
-
-go_arm() {
- case "${1:-${CHOST}}" in
- armv5*) echo 5;;
- armv6*) echo 6;;
- armv7*) echo 7;;
- *)
- die "unknown GOARM for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_os() {
- case "${1:-${CHOST}}" in
- *-linux*) echo linux;;
- *-darwin*) echo darwin;;
- *-freebsd*) echo freebsd;;
- *-netbsd*) echo netbsd;;
- *-openbsd*) echo openbsd;;
- *-solaris*) echo solaris;;
- *-cygwin*|*-interix*|*-winnt*)
- echo windows
- ;;
- *)
- die "unknown GOOS for ${1:-${CHOST}}"
- ;;
- esac
-}
-
-go_tuple() {
- echo "$(go_os $@)_$(go_arch $@)"
-}
-
-go_cross_compile() {
- [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
-}
-
-src_compile() {
- if has_version -b dev-lang/go; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
- elif has_version -b dev-lang/go-bootstrap; then
- export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
- else
- eerror "Go cannot be built without go or go-bootstrap installed"
- die "Should not be here, please report a bug"
- fi
-
- export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
- export GOROOT="${PWD}"
- export GOBIN="${GOROOT}/bin"
-
- # Go's build script does not use BUILD/HOST/TARGET consistently. :(
- export GOHOSTARCH=$(go_arch ${CBUILD})
- export GOHOSTOS=$(go_os ${CBUILD})
- export CC=$(tc-getBUILD_CC)
-
- export GOARCH=$(go_arch)
- export GOOS=$(go_os)
- export CC_FOR_TARGET=$(tc-getCC)
- export CXX_FOR_TARGET=$(tc-getCXX)
- use arm && export GOARM=$(go_arm)
- use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat')
-
- cd src
- bash -x ./make.bash || die "build failed"
-}
-
-src_test() {
- go_cross_compile && return 0
-
- cd src
- PATH="${GOBIN}:${PATH}" \
- ./run.bash -no-rebuild || die "tests failed"
- cd ..
- rm -fr pkg/*_race || die
- rm -fr pkg/obj/go-build || die
-}
-
-src_install() {
- # There is a known issue which requires the source tree to be installed [1].
- # Once this is fixed, we can consider using the doc use flag to control
- # installing the doc and src directories.
- # The use of cp is deliberate in order to retain permissions
- # [1] https://golang.org/issue/2775
- dodir /usr/lib/go
- cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
- einstalldocs
-
- # testdata directories are not needed on the installed system
- rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
-
- local bin_path
- if go_cross_compile; then
- bin_path="bin/$(go_tuple)"
- else
- bin_path=bin
- fi
- local f x
- for x in ${bin_path}/*; do
- f=${x##*/}
- dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
- done
-
- # install the @golang-rebuild set for Portage
- insinto /usr/share/portage/config/sets
- newins "${FILESDIR}"/go-sets.conf go.conf
-}
-
-pkg_postinst() {
- [[ -z ${REPLACING_VERSIONS} ]] && return
- einfo "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
- einfo "all packages compiled with previous versions of ${CATEGORY}/${PN}"
- einfo "due to the static linking nature of go."
- einfo "If this is not done, the packages compiled with the older"
- einfo "version of the compiler will not be updated until they are"
- einfo "updated individually, which could mean they will have"
- einfo "vulnerabilities."
- einfo "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
- einfo "See https://bugs.gentoo.org/752153 for more info"
-}
diff --git a/dev-lang/ispc/Manifest b/dev-lang/ispc/Manifest
index 011498ef62c4..f3b1e92dd041 100644
--- a/dev-lang/ispc/Manifest
+++ b/dev-lang/ispc/Manifest
@@ -1,5 +1,7 @@
AUX ispc-9999-llvm.patch 1410 BLAKE2B 77027da9032fa230c72d8608c2a6cd63c33601e17acab0260101c64dbb50a0aa3cc30702c4480ae5d63e95ec3e962e28bdbbd90cd72f4e91d30dc364b82367b6 SHA512 116078d5ab99c849584cc4ece8dc3ebc817221a2377e26083071e206b5e83c4f3ed594f84b86c9659ef86a497bd3cd058ee32138238e12e6aa9dac0f11cf1440
DIST ispc-1.16.0.tar.gz 19548153 BLAKE2B 9b6d9329430d59041a76c20332b527560afa47a5585652abdf93aedb7907483d1647c829f2bd3f396cd53301bc79367cd91606b90a543fa8bec2f6ab34452989 SHA512 8469db4e3e9834477345b431162543f1c8e680aa9834c9a50239781dc7febfdde0561c2f13d1387e37f95a18c4376a85cb9cbae33cb614dc8977dfc9f47da215
+DIST ispc-1.16.1.tar.gz 19549428 BLAKE2B 742d94208d39f0560c3f2199ee06fc12f3ec2cf47c1039212219c6aa106b20cd58219e5d439c4fd1ce4a0c1a423655d0c2113a2a78152c99b4d77452171acce6 SHA512 89b844a15a888ae7074c4baa47f46d1d7176501f215c9a8c3b4bf9ad1960dc77d53f1f448d5253ad0c6a91e5088af243c3dfd148e619f9abeb6a16f715e3b463
EBUILD ispc-1.16.0.ebuild 1641 BLAKE2B b4e6feb2095d03e34d62130d70c97ee0179236f78640ed6f027702af41a88f56f9da9cb5a27d005b19b7d9e4cf930774e0ee2df8b313f1be03490f439d869c0f SHA512 8c05ec02c0e8b153674b0cd923c2bd10058c28d52a0c562bcc8fba081fdaf4ed6d3d07c557261d0e0696d0ef00faa047000a66cb9e9c87993b0a7cc203882fb0
-EBUILD ispc-9999.ebuild 1622 BLAKE2B 927a3d1d9877f703f45f715862cb3102b3ec507b1d252831cacaaecdbcd114e1e8769b41e917618c6db0ea0d31d9f8515afd400c394a6b56f3933836dd994cf2 SHA512 5f2d8f7aadeec0a31ed92fcb6d399768ed0ec50a46c2d8eb726c6a30881492f50dde2f3f1c0e48ef3cd989accd6a708158e7bfbdaad1a33e67326e84ffd7827a
+EBUILD ispc-1.16.1.ebuild 1648 BLAKE2B fe5e36cf7555a0dfcaccc9a64434cf8691bbdd5bfdd0db25bc9ae954ac78ccdf292e233a150bbe91febeed6f7dc9efb5546b67d544742adf3b64487c6872cc51 SHA512 c5dd01950694517b53b392da60492ec82e762c6f3e6abe1e3844bf3d8b97064759fb56095299a99ec12b0b6e4a080a34ab0dffe2b21ad909906da2e83363fd1f
+EBUILD ispc-9999.ebuild 1648 BLAKE2B fe5e36cf7555a0dfcaccc9a64434cf8691bbdd5bfdd0db25bc9ae954ac78ccdf292e233a150bbe91febeed6f7dc9efb5546b67d544742adf3b64487c6872cc51 SHA512 c5dd01950694517b53b392da60492ec82e762c6f3e6abe1e3844bf3d8b97064759fb56095299a99ec12b0b6e4a080a34ab0dffe2b21ad909906da2e83363fd1f
MISC metadata.xml 242 BLAKE2B ec655bbb26e5d545a7b25a9906e315b54a18cca56613207ce76c9e002fb8968e269627e75639053d7da3c46d8ba34296129458adcad9a561414628e8957d2d9e SHA512 7702a5b2bfe0d81904e069fa097af3c739a21ffad9b03cf9931e398dc904d10501854cc2605fb34415f3f13e58a990b7ff8c3aa803f981889c53b25cc23c6115
diff --git a/dev-lang/ispc/ispc-1.16.1.ebuild b/dev-lang/ispc/ispc-1.16.1.ebuild
new file mode 100644
index 000000000000..d71abadb585a
--- /dev/null
+++ b/dev-lang/ispc/ispc-1.16.1.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8..10} )
+LLVM_MAX_SLOT=12
+inherit cmake python-any-r1 llvm
+
+DESCRIPTION="Intel SPMD Program Compiler"
+HOMEPAGE="https://ispc.github.io/"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/ispc/ispc.git"
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+fi
+
+LICENSE="BSD BSD-2 UoI-NCSA"
+SLOT="0"
+IUSE="examples"
+
+RDEPEND="<sys-devel/clang-$((${LLVM_MAX_SLOT} + 1)):="
+DEPEND="${RDEPEND}"
+BDEPEND="
+ sys-devel/bison
+ sys-devel/flex
+ ${PYTHON_DEPS}
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-9999-llvm.patch"
+)
+
+CMAKE_BUILD_TYPE="RelWithDebInfo"
+
+pkg_setup() {
+ llvm_pkg_setup
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ if use amd64; then
+ # On amd64 systems, build system enables x86/i686 build too.
+ # This ebuild doesn't even have multilib support, nor need it.
+ # https://bugs.gentoo.org/730062
+ ewarn "Removing auto-x86 build on amd64"
+ sed -i -e 's:set(target_arch "i686"):return():' cmake/GenerateBuiltins.cmake || die
+ fi
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DARM_ENABLED=$(usex arm)
+ -DCMAKE_SKIP_RPATH=ON
+ -DISPC_NO_DUMPS=ON
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ # Inject path to prevent using system ispc
+ PATH="${BUILD_DIR}/bin:${PATH}" ${EPYTHON} ./run_tests.py || die "Testing failed under ${EPYTHON}"
+}
+
+src_install() {
+ dobin "${BUILD_DIR}"/bin/ispc
+ einstalldocs
+
+ if use examples; then
+ docompress -x /usr/share/doc/${PF}/examples
+ dodoc -r examples
+ fi
+}
diff --git a/dev-lang/ispc/ispc-9999.ebuild b/dev-lang/ispc/ispc-9999.ebuild
index b0a22ba1f907..d71abadb585a 100644
--- a/dev-lang/ispc/ispc-9999.ebuild
+++ b/dev-lang/ispc/ispc-9999.ebuild
@@ -3,11 +3,9 @@
EAPI=7
-PYTHON_COMPAT=( python3_{8,9,10} )
-
-inherit cmake llvm python-any-r1
-
+PYTHON_COMPAT=( python3_{8..10} )
LLVM_MAX_SLOT=12
+inherit cmake python-any-r1 llvm
DESCRIPTION="Intel SPMD Program Compiler"
HOMEPAGE="https://ispc.github.io/"
@@ -17,20 +15,20 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/ispc/ispc.git"
else
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
fi
LICENSE="BSD BSD-2 UoI-NCSA"
SLOT="0"
IUSE="examples"
-RDEPEND="<sys-devel/clang-13:="
-DEPEND="
- ${RDEPEND}
- ${PYTHON_DEPS}"
+RDEPEND="<sys-devel/clang-$((${LLVM_MAX_SLOT} + 1)):="
+DEPEND="${RDEPEND}"
BDEPEND="
sys-devel/bison
- sys-devel/flex"
+ sys-devel/flex
+ ${PYTHON_DEPS}
+"
PATCHES=(
"${FILESDIR}/${PN}-9999-llvm.patch"
@@ -38,8 +36,9 @@ PATCHES=(
CMAKE_BUILD_TYPE="RelWithDebInfo"
-llvm_check_deps() {
- has_version -d "sys-devel/clang:${LLVM_SLOT}"
+pkg_setup() {
+ llvm_pkg_setup
+ python-any-r1_pkg_setup
}
src_prepare() {
diff --git a/dev-lang/janet/Manifest b/dev-lang/janet/Manifest
index edbc6060135d..81c5c24c258d 100644
--- a/dev-lang/janet/Manifest
+++ b/dev-lang/janet/Manifest
@@ -1,6 +1,6 @@
AUX janet-1.16.1-make.patch 435 BLAKE2B a8d038c83a051e8d93dbdaa3456a9c93403a11dbe6b38cc2283c2b1884235ad76a42707d1c19bd5db2f66a86cdbacfd36196a12abea9fc66c4ac78fba5dcea50 SHA512 a9fab424e33d50e56c9ab3090a0b1a6c5b477e459128f1529deaf2452705345829c23d8a86b7e37bf1e7fc24fc37dffe293cc67550b24b065b439e0b5a9ead5e
-DIST janet-1.15.5.tar.gz 601033 BLAKE2B dfc8c2a2d238f2554aae667f706e84905ba15c732fa2f06b3c537f08d064375dcb00043117dfc56328365627e2e8f4e2a8f171731d9d6bc0d48206cea58f127c SHA512 ebdc090de6fbea0c94f0618957a4b36776fa0009298df77b279b79064d4524e73f42723ba2c315167cb6f3a40f2a4dffbb2a865fa2d479ba196aa9f0aa24cbf6
DIST janet-1.16.1.tar.gz 493490 BLAKE2B 7542644a647d9d2ddd73d8e284f749cdad1900b8df2797c99a2f176c93eca412427b7f571493cfe62f64dd9c90bd12d8506b0f4b6b485ab2d3633e989e735cd9 SHA512 f4be0703676acad8896e41b46d79c4f6d99990c487028f1fd1abd681f756db119a06a5d6a0653b9301afcd62f45d6f1bb7876b9613c0ea28d7199e310a52895d
-EBUILD janet-1.15.5.ebuild 1748 BLAKE2B 50067fd265f5e08344fe43f59628c1a5b9c5f1a735f85e9a1d8eee680af21443915d66120dcb07dcc3c317e20201168261bd9b65ae883fcfaae74448d6ec746f SHA512 957db602a769368862904df84deb119eea06b70fe46c07a41af3cef0bbe3bd66c6dc64885440da73fe44572fd522cb6e0b5a8cd5f9560c29f228802823cdd74d
+DIST janet-1.17.2.tar.gz 488524 BLAKE2B 33e801eb10b46d44a36b95bd29ea318ab3daa88654f47e12303344d2362a2ecc0d0f2ab9371d9539e0787df08664f503ee268b7acf967bd74a929992bc3ea2be SHA512 608ae20992d90cd93a364239c967fef8fdd1c631f1777211d916c6dc16cac5f007f52565bdf24cc0f8af1f521a0977a7245a3c137fc3b61583c2900e26fee81c
EBUILD janet-1.16.1.ebuild 1790 BLAKE2B 09702dccd44f59a809bb2e001d9197e83d7196b8cfe17e7659a931ba3b6d83920b68a102ff9289b23539c5be1cd470fc263fcda36186f47991cbef1a30888783 SHA512 c4343c4135e929d30d78e0f9f76573c3fabb11f5760343ab833e366e0b6089fcf70fd65783ad5b79570cb2d98f2ca64e304e96c6f74780c938cf5a0f949e5d62
+EBUILD janet-1.17.2.ebuild 1720 BLAKE2B 0b6f3478a950edd5475eae1041ae5f87bd50f640ddb53a4a053e92ffbfddd9b4919e25019d18999b0786f0672b885d71f32fe58c0114f7b9d92e9f007b32cebb SHA512 df830edb0c82a7edafc257b28cf6d11f33f461651bf02f11863800e679da68bb7bcfb78f0a909d498d575bb98000504ecde5a6c1eb4ced747fd7881e3a8b47b1
MISC metadata.xml 991 BLAKE2B 07e892f19d1408eb2168385bb4f7e170a72221798710a4397f60500ba9b18c9ce743bbdcc79aa8868ab0ceccd19eed5d414ba743ffc76690ab4df41499457a7c SHA512 c326a2ccbf2c7a0e043d3d86cc9ccb887773708c919709156cb1117b1df13825bcf27dd06193e91bd035917049e3577b810064687c992fddc29e1aee1b555af6
diff --git a/dev-lang/janet/janet-1.15.5.ebuild b/dev-lang/janet/janet-1.17.2.ebuild
index 49f4ff2d82f8..540be0ac1f9c 100644
--- a/dev-lang/janet/janet-1.15.5.ebuild
+++ b/dev-lang/janet/janet-1.17.2.ebuild
@@ -3,7 +3,7 @@
EAPI=7
-inherit flag-o-matic
+inherit flag-o-matic toolchain-funcs
DESCRIPTION="A dynamic Lisp dialect and bytecode vm"
HOMEPAGE="https://janet-lang.org https://github.com/janet-lang/janet/"
@@ -17,6 +17,8 @@ IUSE="static-libs"
MY_RELEASE="${PV::-2}"
src_configure() {
+ tc-export CC
+
append-ldflags -Wl,-soname,libjanet.so.1.${MY_RELEASE}
append-cflags -fPIC
}
@@ -25,38 +27,47 @@ 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='\"1.15.5\"'
- 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}"
+ local janet_build='\"'${PV}'\"'
+
+ local target
+ for target in '' build/janet.pc docs ; do
+ einfo "Building: ${target:-main}"
+ emake \
+ LIBDIR="/usr/$(get_libdir)" \
+ PREFIX="/usr" \
+ JANET_BUILD="${janet_build}" \
+ CFLAGS="${CFLAGS}" \
+ LDFLAGS="${LDFLAGS}" \
+ ${target}
+ done
}
src_install() {
- dobin "build/janet"
- dobin "build/jpm"
- insinto "usr/include/janet"
- doheader "src/include/janet.h"
- doheader "src/conf/janetconf.h"
+ dobin build/janet
+
+ insinto /usr/include/janet
+ doheader src/include/janet.h
+ doheader src/conf/janetconf.h
- dolib.so "build/libjanet.so"
+ dolib.so build/libjanet.so
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"
+ dolib.a build/libjanet.a
fi
- doman "janet.1"
- doman "jpm.1"
+
+ doman janet.1
insinto /usr/$(get_libdir)/pkgconfig/
- doins "build/janet.pc"
+ doins build/janet.pc
+
dodoc -r examples
- dodoc "build/doc.html"
- # required for jpm
- keepdir /usr/$(get_libdir)/janet/.cache
+ dodoc build/doc.html
}
pkg_postinst() {
+ elog "Note: jpm has been extracted to its own repository upstream."
+ elog "Follow the upstream instructions on how to install it."
elog "Enable use flag \"static-libs\" for building stand-alone executables with jpm"
}
diff --git a/dev-lang/lazarus/Manifest b/dev-lang/lazarus/Manifest
index 869b2d55d155..bc3ac9f7f144 100644
--- a/dev-lang/lazarus/Manifest
+++ b/dev-lang/lazarus/Manifest
@@ -1,7 +1,9 @@
AUX lazarus-0.9.26-fpcsrc.patch 407 BLAKE2B c3b006fd7bb58fb7037aae3d8d35ac146ab971fc6063652e3185b320e4cb05ccedb6c26c7d64b2f2998a901608ee251762b723f62bd9c239a51ab6a6d6f2b39d SHA512 823d9ba2041f97c39d8ea5f49cb02f68d8c98da95d0a479cc65a638365e2adafd1c5645fa6846720af18198834958f37b0cc0d92f38023ccdaf40ec8dc848f64
DIST lazarus-1.8.4-python.tar.gz 1060859 BLAKE2B 4d6f7dc275aacd0f70d9f7c85aba99a7722b02165a5bf287bfeed46f28e3b36c5abeac19bd7c6555250102dce169f7c9c213b634ce1b634c24dadc84171aed10 SHA512 f244b4e86410fdb2ffe8ccba7fcb51c270286172b6102f757118827cac3b652210a625d65dd6c017c1992983527792ed64334291ab0e0b824f187316452c56b5
DIST lazarus-1.8.4.tar.gz 63130653 BLAKE2B f9b2ba9971f1a9a9c3b8d2004bd3516c12db5384bb6243ef275c2fc0d458634fba0c1c23e7ecd5c160c1204d6cc2b4ebc340ce8bb5cfdd9c531f8c36ae59d1e2 SHA512 82cdc3c32dddf8e67c0bed9292a9a924227bab50f22ca479f5e98ecccbf60dd66c7f886ecb8e2979d9d8fccc3d25462ee8c55fcab085aa4194b4704660e0b95d
+DIST lazarus-2.0.12.tar.gz 69560778 BLAKE2B ff6c9414483b0d50dbbb30c8fbf626c81d9c71ef0329aa1d58b37aa4288a500e1ab55d06bad27f637e3f09b9d062af1896720b9cb7367b092fc872cf613f8a3d SHA512 dfd22b2b96fca9d0f672f03b9120c4294a7e640737a09b26c274d304025c61566a8504a5484638c108e42a322b21992229451d95e38d7e491a1c2f07a663483e
DIST lazarus-2.0.6.tar.gz 65558951 BLAKE2B f5289562adcfeab86af074de9fc44d7faf5939655587ea9951559bbefc15ce1730e7b7dafb6ec1d0a11eb0f8f069309b8fa0a305051c5cc9ea0fcf9665e883bc SHA512 cdb4c5861e130c12bf0a4938a73c439f2766a73008678028d7e9c9bcabe7b277e70025a7c720a5c14c157cf0227e0ff629a44cf983537b3afbf341343e816d07
EBUILD lazarus-1.8.4-r2.ebuild 3530 BLAKE2B 98ad3bf609155c9171b0911812c2cbf9bb7286ab3eee9c1d6c010dec5f0fd694409eb35f0a4d67d5e27f1abe8959129c87ef13f01e9491480d44a339c976db32 SHA512 767e7a9961425daefb834eb4cec25ce9ea537eb1ed50a44fefa11be4fd703fe3747c18158b81799f7cedad25d27e26b2bef3513a9f8f7fa6eba5b21f1bb01dc4
+EBUILD lazarus-2.0.12.ebuild 2667 BLAKE2B d6e1a545dd5a90f61b2f447205bdfb325f7a10e26f79891dd8fb229f76933f437277aba252253b123313ebc3189440d8b82bd1e794873e127c0f543ad514e1b8 SHA512 479430f9b6f5b15cb1fac203fe9d133706d2a01bc9020b23f35d1a5935dbf1bf116e2e9095b7e4175cad964f91def11cbfbb5f3daa21c0b3c47c834d4195643f
EBUILD lazarus-2.0.6.ebuild 2471 BLAKE2B e9b45f75b6a7c397d09e123bd3ceb53365656271fe6ffbb150543da83d07f6b216977a1fdb405ff17fc22fd48d2a7162c6ad88ce8cf06aaa64e572e6ff151527 SHA512 ef7ad240944f7380302ef1189669df6d3b3815f428bec0a59758b17d64ae9ed2b29c9e3a8f006138536d8e41203518f7fe715238d4afad671b5ae555a02862fe
MISC metadata.xml 395 BLAKE2B ddc65b4329ed615ee2692ee80ff2b74b1b72992742ee27e6338aaa1ea8b7e39114ce5f735c61bf64bd603dbac7a1828f8bdb4c29b78a339a878b61092556e7ac SHA512 161abe773c486138f13a426c0d056d7efaf62f4180fc4fdfa85aa688021a5a834af7fc972867b92c6f53d45ca40940ff70ba07d7c4f61c4cfc32c2880286ba60
diff --git a/dev-lang/lazarus/lazarus-2.0.12.ebuild b/dev-lang/lazarus/lazarus-2.0.12.ebuild
new file mode 100644
index 000000000000..63ba361cacc4
--- /dev/null
+++ b/dev-lang/lazarus/lazarus-2.0.12.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop
+
+# See https://wiki.freepascal.org/Lazarus_2.0_fixes_branch for notes and
+# changes in FPCVER. It *does* change between minor versions of lazarus.
+FPCVER="3.2.0"
+
+DESCRIPTION="Lazarus IDE is a feature rich visual programming environment emulating Delphi"
+HOMEPAGE="https://www.lazarus-ide.org/"
+SRC_URI="https://sourceforge.net/projects/${PN}/files/Lazarus%20Zip%20_%20GZip/Lazarus%20${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
+SLOT="0" # Note: Slotting Lazarus needs slotting fpc, see DEPEND.
+KEYWORDS="amd64 x86"
+IUSE="minimal"
+
+DEPEND=">=dev-lang/fpc-${FPCVER}[source]
+ net-misc/rsync
+ x11-libs/gtk+:2
+ >=sys-devel/binutils-2.19.1-r1:="
+RDEPEND="${DEPEND}"
+
+RESTRICT="strip" #269221
+
+S="${WORKDIR}/${PN}"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.9.26-fpcsrc.patch )
+
+src_prepare() {
+ default
+ # Use default configuration (minus stripping) unless specifically requested otherwise
+ if ! test ${PPC_CONFIG_PATH+set} ; then
+ local FPCVER=$(fpc -iV)
+ export PPC_CONFIG_PATH="${WORKDIR}"
+ sed -e 's/^FPBIN=/#&/' /usr/lib/fpc/${FPCVER}/samplecfg |
+ sh -s /usr/lib/fpc/${FPCVER} "${PPC_CONFIG_PATH}" || die
+ fi
+ sed -i \
+ -e "s;SecondaryConfigPath:='/etc/lazarus';SecondaryConfigPath:=ExpandFileNameUTF8('~/.lazarus');g" \
+ -e "s;PrimaryConfigPath:=ExpandFileNameUTF8('~/.lazarus');PrimaryConfigPath:='/etc/lazarus';g" \
+ ide/include/unix/lazbaseconf.inc \
+ || die
+}
+
+src_compile() {
+ # TODO: Change to LCL_PLATFORM=qt5?
+ # bug #732758
+ LCL_PLATFORM=gtk2 emake \
+ $(usex minimal "" "bigide") \
+ -j1
+}
+
+src_install() {
+ diropts -m0755
+ dodir /usr/share
+ # Using rsync to avoid unnecessary copies and cleaning...
+ # Note: *.o and *.ppu are needed
+ rsync -a \
+ --exclude="CVS" --exclude=".cvsignore" \
+ --exclude="*.ppw" --exclude="*.ppl" \
+ --exclude="*.ow" --exclude="*.a"\
+ --exclude="*.rst" --exclude=".#*" \
+ --exclude="*.~*" --exclude="*.bak" \
+ --exclude="*.orig" --exclude="*.rej" \
+ --exclude=".xvpics" --exclude="*.compiled" \
+ --exclude="killme*" --exclude=".gdb_hist*" \
+ --exclude="debian" --exclude="COPYING*" \
+ --exclude="*.app" \
+ "${S}" "${ED}"/usr/share \
+ || die "Unable to copy files!"
+
+ dosym ../share/lazarus/startlazarus /usr/bin/startlazarus
+ dosym ../share/lazarus/startlazarus /usr/bin/lazarus
+ dosym ../share/lazarus/lazbuild /usr/bin/lazbuild
+ use minimal || dosym ../share/lazarus/components/chmhelp/lhelp/lhelp /usr/bin/lhelp
+ dosym ../lazarus/images/ide_icon48x48.png /usr/share/pixmaps/lazarus.png
+
+ make_desktop_entry startlazarus "Lazarus IDE" "lazarus"
+}
diff --git a/dev-lang/ocaml/Manifest b/dev-lang/ocaml/Manifest
index 8a7b7abbcf07..3b04bc07b4bb 100644
--- a/dev-lang/ocaml/Manifest
+++ b/dev-lang/ocaml/Manifest
@@ -2,24 +2,22 @@ AUX ocaml-4.04.2-tinfo.patch 506 BLAKE2B 889c964385442247a70b7205abc497a8d83ac9e
AUX ocaml-4.05.0-CVE-2018-9838.patch 2888 BLAKE2B 75fe491c1b12d9882c7b558efb3384a133c56bea0c85e97a6b46ec5b5f4050da4752228c795d937875645260b98ac9d203b9cdbf583ed36934a29faf4d47ecc3 SHA512 3da218dcea2c08ed97da805a2c1a1bc134a48b4425b4912283e353dde606ae99c95b86b59c6575b42961c9eb6903e09d60968c5a8db72a58510c4e3dcd13a5ef
AUX ocaml-4.05.0-gcc10.patch 1976 BLAKE2B cf1240a815d731e99862740ddf90f6a0ea1d078c9e4e1cef126eff4a7d80afbde73f45d360a26eaa14863cc35d2086d98d130251490959df4c361a51ced0557e SHA512 e55cb651431798294b21ee0ea8818d6c42f88c329b7a1985af9d460f2a5b3057f2ee229e72699f9660168202a0c78dcf89b8bfce2154ca3e141fe8fb5f861773
AUX ocaml-4.09.0-gcc-10.patch 571 BLAKE2B 990107a1d199d350a821596e7655566bb8eb71ee828eb0247bd25111760dd4dd6952a0bea6c29f69f6fa4ef8d02bd47166b5f2c4ced30ed830078b1555ca86eb SHA512 430774f62cea3f4ed06c9a1cbc73c68e3eab0d6fbebb5e62ea12a012cc2b25bb1a776ff08a7d532140bc2e12eae3e1a43605bf5708e1333b23a135b9801de084
+AUX ocaml-4.11.2-glibc-2.34.patch 3318 BLAKE2B 96fe61e553e7c67f76df32f2e5532f7a6eae57fb60752c7c49d71baf416ac74a4c7b925ecfd0bd5874a1728b51ca36b82d636bfa6ab30ec5f3df37fbac2a73b9 SHA512 eb54d912338a42a21f736dcd1591f77403b0dff8772059bd7f39a6e83b8a5e89bd5a7a9d4200bacbcaa8ec0450a5a78ecf6645bb5405d45fd1c077cbe1c36f7f
+AUX ocaml-4.12.0-glibc-2.34.patch 3411 BLAKE2B d5138feaf6ca1e4a25ee85100013e343f8867bfe22d1c8c26df56fe1a6266b9cf37738f0b5fa6ee6daaaed9c90880529a50ffa1e789766039727dd407d15da51 SHA512 978a300d28bcb4c4d312e5b9f830140b08a282ba850d7c7a3866ca54413a321695d21315fff423d646085d8eed148a3f84567c08a4e09957b4b87010d65ee694
AUX ocaml-rebuild.sh 1120 BLAKE2B 6f88a9f2b99fae7f89b884bb08d2c6ad6a0e14d4a8fd06d498037f78c5f6ef040428f9de224b5fe5df4ef64eaed419cda6d8715ea0c0a4c4dad60c5cf75a4147 SHA512 05a3e81e95533135d9895091c21621c73ae82851abd4889d64f035979eb25f8d90b60f469d7ef5e789fd1a4adffd6bbe255e6708c14c24a04f8a423507d19a40
AUX ocaml.conf 177 BLAKE2B da070848d9e3a30ad303c296f55de87c30fd15feee3304ccc1d1f844d83c5a646664cd4d9958375ead2324e25bb88280fdb78f9e4230eeb8cd5825eed6f2f91d SHA512 4f0a48b8101b77d568d8d0a852f2a21fd46b7947c5d3f975ee4cd8a9c37c993d689cf5fb53b54a6b2740cb865051dc50c74c0c373eb697fca800ca143d401aa4
DIST ocaml-4.05.0.tar.gz 4431750 BLAKE2B c2ab003a13e0a581ebd0e1c96eeb8a9baea9bfe6bee08823b0e4541819201ec109f1846e13fc1aefa51a001eefbb8f73320ba854d41975fc68cef41bc75b1ecc SHA512 9a060ae4b741e1687277403e5bdb8f6eda2e2ebf6c45f7c0149b66ea1213cb26d13febfbb3f11c12543e244cfdd053b786b09c4145e2348e5d89a7206f7de225
DIST ocaml-4.09.0.tar.gz 4838748 BLAKE2B 80f29d535c64bf2371b480217723ed20b2b21cfd93ce31366a7b91e7ddffdf68db4e88d085288b7e21efee567a13f42ecff24c3a0115507b006acf844239cefd SHA512 dc0271e591bf929b751705835790949a9d741e12d085c8b207c3689b5838a02ea8de80da8b2605d2e6744f2f541b0d1694ffafff9509e99ce01f3a391f6ef2ae
DIST ocaml-4.10.2.tar.gz 4933135 BLAKE2B ec5e92adb23c28a254247182c79ab555fd82603e02f24799049b8057abf869d18234302408c8ae89b9997a2b210ed6965e45c2c03e4f0cab34262ad3f6ebb528 SHA512 1dd827da07f01e815fd74dd7ee84db0900f24782f8f7fd426e2d71b9fb03c7b8045f22e018120a0446c362315751365d1bd8c1724edef2b182394e76eb0a07b2
DIST ocaml-4.11.2.tar.gz 5075323 BLAKE2B bdc503d9a8d0e39dd11060febcd0287657b460e50ed81e55578a3e778af990ca5d4ef9011753eee4e1a144da33eb76c95b1672dc99b76e65a2e107eee472fe06 SHA512 03d8a9f6e130142c121ff2eb3d54f584f1e7c8475f066a5803bb0edd2fa172ca06a56a3ec548b225f5c8b12112d7a68511b1e16f3ade075b5f02610d4247bbb3
-DIST ocaml-4.12.0.tar.gz 5179734 BLAKE2B 318be7e306157102d7ad22802db381dfa9c675e43325395695c3564e5ffee87d9b55d1152ea1603edb5ef715a28cbde85d835dbf1b5aface2dc415c67192c208 SHA512 951e44cdda613f9c6c5f988434c84249a2d63ba14e21938a9e74c174ebaf9d81a3160d1e5021d57fcd4882732ae6aefc05239ac38116f39ca83d53879d5d4eaf
DIST ocaml-4.12.1.tar.gz 5181696 BLAKE2B 9d21438e09b1a9680eabb65f5c78d9fe84459592ef7bb797a1933e5383f7b6d5cefffa8cdc184abc102417f5dbc0fca8ef624c9b560f89eaff6537544b5b395f SHA512 e942e5cf5530804690ec45c40936ad2acbb60e11279fc676e0f04181fe1855f84ee5c3cb9c337fc5d01f6ee0e7b2251a6c04f7de56d99c20bb62026dff6c5671
-DIST ocaml-4.13.0.tar.gz 5323007 BLAKE2B 56cbb64272ac2b4b8894b3bb91ec184eb977cb056ae75ace2fce716fdb9853d5626b8f91dcc339d1d0f9f033f032f99bc6e49c443ee142f6005aaabeef9a670a SHA512 553c94ba5c5332d134f2695b3323e4be60ef2d0a404652cbcc56968ec91b1de19a6d894c6e365e418fe814595bb926450d7b109e328e25fc317f13ed6b703080
DIST ocaml-4.13.1.tar.gz 5323203 BLAKE2B f1dcb1601ebfa2a37351e3a466a7ca601518c2da403b01aeb182738a54d5887523ab554d747d6591cb09b07b417865e20907f7877117b2d2d069ef6c9edc0fae SHA512 da3434177438c852da53c0fda7bc2519adcda6384d97d45e44137ed0fd384ffb3da61958a7b51296edb3f88f5a5310ca71b6862f6d756aaa4012d1f54e5955f6
DIST ocaml-patches-9.tar.bz2 1700 BLAKE2B 4e46b8fb490db28f815414e285f54e251394ea53e1d25c529bbea9f03e426fd19132b1e2c7c2be7d14983fceb4cad073d191b001f6da522fee4226371d4a2eca SHA512 cc19f9104fac69aecc5effa8cb772342e1fb61cdcd38ba0176efe04cf3d710b1c56d5178748f3bd29099af91fa684da432a8ef8d42de76dbd1b6954a255ea6c0
-EBUILD ocaml-4.05.0-r7.ebuild 4138 BLAKE2B 745222cde60f1ddae4a7a437100e724a88ddaab89bfc78befd5572d6a582e344564b78350acdb47a626a4d9f95612e64d2419534b48dec5782990b1dc35c3376 SHA512 a9fa601a6a34c84aeb262d027936861e45ea23cc8ba679ebefa6d49de0e5170cec3c213c33bed4acaa4dbae37e8bcf4b1890a623bbdd1c2c552567146ac1fdcd
-EBUILD ocaml-4.05.0-r8.ebuild 4178 BLAKE2B 505af46e12d67cbaab60ed33ee91ce46d7670a4fdc09d5ad80cd31fa00c69d7a8f32f469cdbbd1a531624d4a347a56b823aa056447f4ed911c0ea7669827d469 SHA512 8c555496ac8f0ac1a671be1e2321d336a5001fc90fb92ba2007466677d2653436d4b4651339f7f07c91b7f9d0d2b96bcb8db55ab2b02f47106e3c44821524202
-EBUILD ocaml-4.09.0-r2.ebuild 2573 BLAKE2B 1d50f2cbad2e338864f4045d321184c4de79557428e25a10d5949ebdc3c2ff252520d9a6638080384ec48f00742a87301913d5a038919734698bb5a9f5bdea18 SHA512 ed60dcedffdd8238ddeb976dc210a0156316b92a54070c5a523ecb9e29f500d8f430bb737788d0c1fda66ad5855f1da74d11addedb927e2935e02609531d66ae
-EBUILD ocaml-4.10.2-r2.ebuild 2530 BLAKE2B f428c3a4f0d65464bb384c066b58ddf11993547629070265e79d482f0df8fc861a25e5d62d04e397356ef6b12fffc3fcbabafe5be788cc403ab772cbdd523cca SHA512 834a2a86aa66211f07bbaae967e0da94eb3fb9ffd3ff29724b6002080ff26b3a0e1b8ded081f3ff7d92adf6e1cc373d6f4165dc94cf01b0ea28b2210a6700f6a
-EBUILD ocaml-4.11.2-r2.ebuild 2402 BLAKE2B 8638f476f62c156c878a5a78e644882f84dab1a7c05642914b07e26672076ae850af94e564460e4a396c0f19a64cafad8c37f3c029aa190fdd9980db6352e0db SHA512 5f2c79e1e5f47dd7eec5e119213132433970437fcb7ca9c053ace5a89f5ea553f3b2b72253fc82a7262b898977f2064fa7556740a0c5f2e6d17080a7d5a326c9
-EBUILD ocaml-4.12.0-r2.ebuild 2406 BLAKE2B 24b58bb81263db44c0a5037e598b3a10b66abfebf2f38341f289bdea588e514b949ae36ca6e3cdc500bed0078c744af48d72e705bf927aa45978ba7d009a3c53 SHA512 6488b249be59af91b5d9b16eab129237535fe31ed388b8b8a69db77d1b506cfde24dfae02b851f907c3cb4b16160b36ced431fa81e321a5788483854da4ff80d
-EBUILD ocaml-4.12.1.ebuild 2406 BLAKE2B 24b58bb81263db44c0a5037e598b3a10b66abfebf2f38341f289bdea588e514b949ae36ca6e3cdc500bed0078c744af48d72e705bf927aa45978ba7d009a3c53 SHA512 6488b249be59af91b5d9b16eab129237535fe31ed388b8b8a69db77d1b506cfde24dfae02b851f907c3cb4b16160b36ced431fa81e321a5788483854da4ff80d
-EBUILD ocaml-4.13.0.ebuild 2406 BLAKE2B 24b58bb81263db44c0a5037e598b3a10b66abfebf2f38341f289bdea588e514b949ae36ca6e3cdc500bed0078c744af48d72e705bf927aa45978ba7d009a3c53 SHA512 6488b249be59af91b5d9b16eab129237535fe31ed388b8b8a69db77d1b506cfde24dfae02b851f907c3cb4b16160b36ced431fa81e321a5788483854da4ff80d
+EBUILD ocaml-4.05.0-r7.ebuild 4233 BLAKE2B f36bb3443204c123a153a2c6571923e3b55d62796c2070603c52fdbab45df81afe4a33b701b6ac5335c53b12f1bafb6664a5b83364c742d168f04c7c7d4beb18 SHA512 16fcb2fa8a40aa7aebeb3f18031204c04a2d6407f9f54488a02b0ec8f1f78d44c30238b2e682507fe77cfe1c7958c809ad2112d532edcce91303646338e1cfc2
+EBUILD ocaml-4.05.0-r8.ebuild 4273 BLAKE2B 3bd81d4fd9e6933cd56657b91d38b0eb32c37740371f1a5407c7c0dd8a4d49707e7d045626f501f99b312d7e36d4f9a0af561cda3a5f866153e00d8dfac25cfb SHA512 16e6038aa3701f031fddb7c38efed5f883624800d970f3f636c3da6fec93fb7b70cb6e7e1c99eba8324568c2d59cd2626b707b03d82c63a809cf2f5fa72def0e
+EBUILD ocaml-4.09.0-r2.ebuild 2670 BLAKE2B 9f1f961c10033da32c1f03351a77ca41d0f0deda525b56b0a7adb8d1b307f289c6852ab5ccafb6d47c17408ebf86ee9b87f0096862310714b0d5bb539e7d9963 SHA512 7de20119f0a8f392cf95c6593b93b4e995fb8e1c0872577b2816a42b0c9c2c40b74282ea3db90dbf10f05dfdb0a62e8452b3178ffaa42c576c36312db09efdfe
+EBUILD ocaml-4.10.2-r2.ebuild 2625 BLAKE2B 9c0505058ed5bcadc60e0cff518fc43fde91a40b938ea8e0c9383e2a25542c06b7216ac859366c583ac338761656d41b2dbf0b6a2e62b7faa9f8f7d24cf22d3e SHA512 210276caba4bf5e4e2b368f92582bf7007334adf347e223e8a2f18b2301bb25bbff9bcae5767bbd4e5927c44e7e694da01107337c4684830eff00bd6a7cbe17e
+EBUILD ocaml-4.11.2-r2.ebuild 2549 BLAKE2B 84ad17fc96ebc5221c6323499a0317a7c7ad453b143a4602229748a70a8c024450292292518ab200796fa8dca4a7f363bde2d3c4035af29cb6830df857f878b0 SHA512 82a007665435733d750c4bdc51c54cf548d9c2f3201112143bab962479f532a6270a2bc0089402c879330320c11b8387bddba0f3e10094ff7cf464a4052e0d52
+EBUILD ocaml-4.12.1.ebuild 2464 BLAKE2B eadf170ff1ab0e3fc99c662d6e523a2fda6d4ab27d684b56c37bba2f02a03d7ccfefc2bf153f6eaa350e74a2e735cdf415b3d278210ed44337d45e45688663a1 SHA512 0ddeb9d7dd3b124fce02d291377f6c8964e19fb8709ce57b0e52a8628523991d3780862c4c0df55f4d7694f159ab65df89ec23d52182fd87d9c9c155b0423235
EBUILD ocaml-4.13.1.ebuild 2406 BLAKE2B 24b58bb81263db44c0a5037e598b3a10b66abfebf2f38341f289bdea588e514b949ae36ca6e3cdc500bed0078c744af48d72e705bf927aa45978ba7d009a3c53 SHA512 6488b249be59af91b5d9b16eab129237535fe31ed388b8b8a69db77d1b506cfde24dfae02b851f907c3cb4b16160b36ced431fa81e321a5788483854da4ff80d
MISC metadata.xml 776 BLAKE2B e7b13b4bb764cec6df76ede0eb2d492cc705ce51b18a445fa3f9ebaab119fab8cae45a2a9d02c70f38e19f2e2d2c06de648a3a0843a603dd7b68942c7cd00bdb SHA512 92e3afe1c40991d37dc460d6091ff2b15c83740343e5d8dd69344eb61d873fbd66af1b96e70904f7757c06f2b104d1450883cc79877709c779467af64e2ea96e
diff --git a/dev-lang/ocaml/files/ocaml-4.11.2-glibc-2.34.patch b/dev-lang/ocaml/files/ocaml-4.11.2-glibc-2.34.patch
new file mode 100644
index 000000000000..22cbb806e6ea
--- /dev/null
+++ b/dev-lang/ocaml/files/ocaml-4.11.2-glibc-2.34.patch
@@ -0,0 +1,91 @@
+https://gitlab.com/redhat/centos-stream/rpms/ocaml/-/raw/c9s/0006-Dynamically-allocate-the-alternate-signal-stack-1026.patch
+https://bugs.gentoo.org/804498
+
+From 24a9db7784ddfcf0af2d2be2f51616ed960ae7e8 Mon Sep 17 00:00:00 2001
+From: Xavier Leroy <xavierleroy@users.noreply.github.com>
+Date: Fri, 5 Mar 2021 19:14:07 +0100
+Subject: [PATCH 6/6] Dynamically allocate the alternate signal stack (#10266)
+
+In Glibc 2.34 and later, SIGSTKSZ may not be a compile-time constant.
+It is no longer possible to statically allocate the alternate signal
+stack for the main thread, as we've been doing for the last 25 years.
+
+This commit implements dynamic allocation of the alternate signal stack
+even for the main thread. It reuses the code already in place to allocate
+the alternate signal stack for other threads.
+
+Fixes: #10250.
+(cherry picked from commit fc9534746bf5d08a4c109f22e344cf49d5d46d54)
+--- a/runtime/caml/signals.h
++++ b/runtime/caml/signals.h
+@@ -82,7 +82,7 @@ void caml_set_action_pending (void);
+ value caml_do_pending_actions_exn (void);
+ value caml_process_pending_actions_with_root (value extra_root); // raises
+ int caml_set_signal_action(int signo, int action);
+-void caml_setup_stack_overflow_detection(void);
++CAMLextern int caml_setup_stack_overflow_detection(void);
+
+ CAMLextern void (*caml_enter_blocking_section_hook)(void);
+ CAMLextern void (*caml_leave_blocking_section_hook)(void);
+--- a/runtime/signals_byt.c
++++ b/runtime/signals_byt.c
+@@ -86,4 +86,4 @@ int caml_set_signal_action(int signo, int action)
+ return 0;
+ }
+
+-void caml_setup_stack_overflow_detection(void) {}
++CAMLexport int caml_setup_stack_overflow_detection(void) { return 0; }
+--- a/runtime/signals_nat.c
++++ b/runtime/signals_nat.c
+@@ -195,8 +195,6 @@ DECLARE_SIGNAL_HANDLER(trap_handler)
+ #error "CONTEXT_SP is required if HAS_STACK_OVERFLOW_DETECTION is defined"
+ #endif
+
+-static char sig_alt_stack[SIGSTKSZ];
+-
+ /* Code compiled with ocamlopt never accesses more than
+ EXTRA_STACK bytes below the stack pointer. */
+ #define EXTRA_STACK 256
+@@ -282,28 +280,33 @@ void caml_init_signals(void)
+ #endif
+
+ #ifdef HAS_STACK_OVERFLOW_DETECTION
+- {
+- stack_t stk;
++ if (caml_setup_stack_overflow_detection() != -1) {
+ struct sigaction act;
+- stk.ss_sp = sig_alt_stack;
+- stk.ss_size = SIGSTKSZ;
+- stk.ss_flags = 0;
+ SET_SIGACT(act, segv_handler);
+ act.sa_flags |= SA_ONSTACK | SA_NODEFER;
+ sigemptyset(&act.sa_mask);
+- if (sigaltstack(&stk, NULL) == 0) { sigaction(SIGSEGV, &act, NULL); }
++ sigaction(SIGSEGV, &act, NULL);
+ }
+ #endif
+ }
+
+-void caml_setup_stack_overflow_detection(void)
++/* Allocate and select an alternate stack for handling signals,
++ especially SIGSEGV signals.
++ Each thread needs its own alternate stack.
++ The alternate stack used to be statically-allocated for the main thread,
++ but this is incompatible with Glibc 2.34 and newer, where SIGSTKSZ
++ may not be a compile-time constant (issue #10250). */
++
++CAMLexport int caml_setup_stack_overflow_detection(void)
+ {
+ #ifdef HAS_STACK_OVERFLOW_DETECTION
+ stack_t stk;
+ stk.ss_sp = malloc(SIGSTKSZ);
++ if (stk.ss_sp == NULL) return -1;
+ stk.ss_size = SIGSTKSZ;
+ stk.ss_flags = 0;
+- if (stk.ss_sp)
+- sigaltstack(&stk, NULL);
++ return sigaltstack(&stk, NULL);
++#else
++ return 0;
+ #endif
+ }
diff --git a/dev-lang/ocaml/files/ocaml-4.12.0-glibc-2.34.patch b/dev-lang/ocaml/files/ocaml-4.12.0-glibc-2.34.patch
new file mode 100644
index 000000000000..486b44846a86
--- /dev/null
+++ b/dev-lang/ocaml/files/ocaml-4.12.0-glibc-2.34.patch
@@ -0,0 +1,91 @@
+https://src.fedoraproject.org/rpms/ocaml/blob/129153b85109944bf0b2922949f77ef8f32b39a1/f/0004-Dynamically-allocate-the-alternate-signal-stack-1026.patch
+https://bugs.gentoo.org/816765
+
+From 3104d92743614f8f52039e0520116af4179880a5 Mon Sep 17 00:00:00 2001
+From: Xavier Leroy <xavierleroy@users.noreply.github.com>
+Date: Fri, 5 Mar 2021 19:14:07 +0100
+Subject: [PATCH 4/4] Dynamically allocate the alternate signal stack (#10266)
+
+In Glibc 2.34 and later, SIGSTKSZ may not be a compile-time constant.
+It is no longer possible to statically allocate the alternate signal
+stack for the main thread, as we've been doing for the last 25 years.
+
+This commit implements dynamic allocation of the alternate signal stack
+even for the main thread. It reuses the code already in place to allocate
+the alternate signal stack for other threads.
+
+Fixes: #10250.
+(cherry picked from commit fc9534746bf5d08a4c109f22e344cf49d5d46d54)
+--- a/runtime/caml/signals.h
++++ b/runtime/caml/signals.h
+@@ -87,7 +87,7 @@ value caml_do_pending_actions_exn (void);
+ value caml_process_pending_actions_with_root (value extra_root); // raises
+ value caml_process_pending_actions_with_root_exn (value extra_root);
+ int caml_set_signal_action(int signo, int action);
+-CAMLextern void caml_setup_stack_overflow_detection(void);
++CAMLextern int caml_setup_stack_overflow_detection(void);
+
+ CAMLextern void (*caml_enter_blocking_section_hook)(void);
+ CAMLextern void (*caml_leave_blocking_section_hook)(void);
+--- a/runtime/signals_byt.c
++++ b/runtime/signals_byt.c
+@@ -81,4 +81,4 @@ int caml_set_signal_action(int signo, int action)
+ return 0;
+ }
+
+-CAMLexport void caml_setup_stack_overflow_detection(void) {}
++CAMLexport int caml_setup_stack_overflow_detection(void) { return 0; }
+--- a/runtime/signals_nat.c
++++ b/runtime/signals_nat.c
+@@ -181,8 +181,6 @@ DECLARE_SIGNAL_HANDLER(trap_handler)
+ #error "CONTEXT_SP is required if HAS_STACK_OVERFLOW_DETECTION is defined"
+ #endif
+
+-static char sig_alt_stack[SIGSTKSZ];
+-
+ /* Code compiled with ocamlopt never accesses more than
+ EXTRA_STACK bytes below the stack pointer. */
+ #define EXTRA_STACK 256
+@@ -276,28 +274,33 @@ void caml_init_signals(void)
+ #endif
+
+ #ifdef HAS_STACK_OVERFLOW_DETECTION
+- {
+- stack_t stk;
++ if (caml_setup_stack_overflow_detection() != -1) {
+ struct sigaction act;
+- stk.ss_sp = sig_alt_stack;
+- stk.ss_size = SIGSTKSZ;
+- stk.ss_flags = 0;
+ SET_SIGACT(act, segv_handler);
+ act.sa_flags |= SA_ONSTACK | SA_NODEFER;
+ sigemptyset(&act.sa_mask);
+- if (sigaltstack(&stk, NULL) == 0) { sigaction(SIGSEGV, &act, NULL); }
++ sigaction(SIGSEGV, &act, NULL);
+ }
+ #endif
+ }
+
+-CAMLexport void caml_setup_stack_overflow_detection(void)
++/* Allocate and select an alternate stack for handling signals,
++ especially SIGSEGV signals.
++ Each thread needs its own alternate stack.
++ The alternate stack used to be statically-allocated for the main thread,
++ but this is incompatible with Glibc 2.34 and newer, where SIGSTKSZ
++ may not be a compile-time constant (issue #10250). */
++
++CAMLexport int caml_setup_stack_overflow_detection(void)
+ {
+ #ifdef HAS_STACK_OVERFLOW_DETECTION
+ stack_t stk;
+ stk.ss_sp = malloc(SIGSTKSZ);
++ if (stk.ss_sp == NULL) return -1;
+ stk.ss_size = SIGSTKSZ;
+ stk.ss_flags = 0;
+- if (stk.ss_sp)
+- sigaltstack(&stk, NULL);
++ return sigaltstack(&stk, NULL);
++#else
++ return 0;
+ #endif
+ }
diff --git a/dev-lang/ocaml/ocaml-4.05.0-r7.ebuild b/dev-lang/ocaml/ocaml-4.05.0-r7.ebuild
index 7604e5ba353b..68a369bcebf8 100644
--- a/dev-lang/ocaml/ocaml-4.05.0-r7.ebuild
+++ b/dev-lang/ocaml/ocaml-4.05.0-r7.ebuild
@@ -66,6 +66,11 @@ src_configure() {
# Bug #285993
filter-mfpmath sse
+ # Broken until 4.12
+ # bug #818445
+ filter-flags '-flto*'
+ append-flags -fno-strict-aliasing
+
# -ggdb3 & co makes it behave weirdly, breaks sexplib
replace-flags -ggdb* -ggdb
diff --git a/dev-lang/ocaml/ocaml-4.05.0-r8.ebuild b/dev-lang/ocaml/ocaml-4.05.0-r8.ebuild
index aab387a10427..4c2da17dac59 100644
--- a/dev-lang/ocaml/ocaml-4.05.0-r8.ebuild
+++ b/dev-lang/ocaml/ocaml-4.05.0-r8.ebuild
@@ -67,6 +67,11 @@ src_configure() {
# Bug #285993
filter-mfpmath sse
+ # Broken until 4.12
+ # bug #818445
+ filter-flags '-flto*'
+ append-flags -fno-strict-aliasing
+
# -ggdb3 & co makes it behave weirdly, breaks sexplib
replace-flags -ggdb* -ggdb
diff --git a/dev-lang/ocaml/ocaml-4.09.0-r2.ebuild b/dev-lang/ocaml/ocaml-4.09.0-r2.ebuild
index 23d27276013c..68b58ca86b18 100644
--- a/dev-lang/ocaml/ocaml-4.09.0-r2.ebuild
+++ b/dev-lang/ocaml/ocaml-4.09.0-r2.ebuild
@@ -21,13 +21,18 @@ BDEPEND="${RDEPEND}
PDEPEND="emacs? ( app-emacs/ocaml-mode )
xemacs? ( app-xemacs/ocaml )"
-PATCHES=("${FILESDIR}"/${PN}-4.09.0-gcc-10.patch)
+PATCHES=( "${FILESDIR}"/${PN}-4.09.0-gcc-10.patch )
src_prepare() {
default
cp "${FILESDIR}"/ocaml.conf "${T}" || die
+ # Broken until 4.12
+ # bug #818445
+ filter-flags '-flto*'
+ append-flags -fno-strict-aliasing
+
# OCaml generates textrels on 32-bit arches
# We can't do anything about it, but disabling it means that tests
# for OCaml-based packages won't fail on unexpected output
diff --git a/dev-lang/ocaml/ocaml-4.10.2-r2.ebuild b/dev-lang/ocaml/ocaml-4.10.2-r2.ebuild
index 7203dec65d67..3b6334a9c87c 100644
--- a/dev-lang/ocaml/ocaml-4.10.2-r2.ebuild
+++ b/dev-lang/ocaml/ocaml-4.10.2-r2.ebuild
@@ -26,6 +26,11 @@ src_prepare() {
cp "${FILESDIR}"/ocaml.conf "${T}" || die
+ # Broken until 4.12
+ # bug #818445
+ filter-flags '-flto*'
+ append-flags -fno-strict-aliasing
+
# OCaml generates textrels on 32-bit arches
# We can't do anything about it, but disabling it means that tests
# for OCaml-based packages won't fail on unexpected output
diff --git a/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild b/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild
index 3ef5a4d10154..cbc5b7cb458b 100644
--- a/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild
+++ b/dev-lang/ocaml/ocaml-4.11.2-r2.ebuild
@@ -11,7 +11,7 @@ DESCRIPTION="Programming language supporting functional, imperative & object-ori
LICENSE="QPL-1.0 LGPL-2"
SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
IUSE="emacs flambda latex +ocamlopt spacetime xemacs"
RDEPEND="sys-libs/binutils-libs:=
@@ -21,11 +21,20 @@ BDEPEND="${RDEPEND}
PDEPEND="emacs? ( app-emacs/ocaml-mode )
xemacs? ( app-xemacs/ocaml )"
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.11.2-glibc-2.34.patch
+)
+
src_prepare() {
default
cp "${FILESDIR}"/ocaml.conf "${T}" || die
+ # Broken until 4.12
+ # bug #818445
+ filter-flags '-flto*'
+ append-flags -fno-strict-aliasing
+
# OCaml generates textrels on 32-bit arches
# We can't do anything about it, but disabling it means that tests
# for OCaml-based packages won't fail on unexpected output
diff --git a/dev-lang/ocaml/ocaml-4.12.0-r2.ebuild b/dev-lang/ocaml/ocaml-4.12.0-r2.ebuild
deleted file mode 100644
index da99522c6e38..000000000000
--- a/dev-lang/ocaml/ocaml-4.12.0-r2.ebuild
+++ /dev/null
@@ -1,97 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic
-
-HOMEPAGE="https://ocaml.org/"
-SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
-DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
-
-LICENSE="QPL-1.0 LGPL-2"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
-IUSE="emacs flambda latex +ocamlopt xemacs"
-
-RDEPEND="sys-libs/binutils-libs:="
-BDEPEND="${RDEPEND}
- virtual/pkgconfig"
-PDEPEND="emacs? ( app-emacs/ocaml-mode )
- xemacs? ( app-xemacs/ocaml )"
-
-src_prepare() {
- default
-
- cp "${FILESDIR}"/ocaml.conf "${T}" || die
-
- # OCaml generates textrels on 32-bit arches
- # We can't do anything about it, but disabling it means that tests
- # for OCaml-based packages won't fail on unexpected output
- # bug #773226
- if use arm || use ppc || use x86 ; then
- append-ldflags "-Wl,-z,notext"
- fi
-
- # Upstream build ignores LDFLAGS in several places.
- sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \
- -e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \
- -e 's/\(^OC_LDFLAGS=.*\)/\1 $(LDFLAGS)/' \
- Makefile.config.in || die "LDFLAGS fix failed"
-}
-
-src_configure() {
- local opt=(
- --bindir="${EPREFIX}/usr/bin"
- --libdir="${EPREFIX}/usr/$(get_libdir)/ocaml"
- --mandir="${EPREFIX}/usr/share/man"
- --prefix="${EPREFIX}/usr"
- $(use_enable flambda)
- )
-
- econf "${opt[@]}"
-}
-
-src_compile() {
- env -u P emake world
-
- if use ocamlopt ; then
- env -u P emake opt
- env -u P emake opt.opt
- fi
-}
-
-src_test() {
- emake -j
-
- # OCaml tests only work when run sequentially
- if use ocamlopt ; then
- emake -j1 ocamltest.opt
- else
- emake -j1 ocamltest
- #ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests."
- fi
-
- emake -j1 tests
-}
-
-src_install() {
- default
-
- dodir /usr/include
- # Create symlink for header files
- dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
- dodoc Changes README.adoc
-
- # Create envd entry for latex input files
- if use latex ; then
- echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}"/99ocamldoc || die
- doenvd "${T}"/99ocamldoc
- fi
-
- sed -i -e "s:lib:$(get_libdir):" "${T}"/ocaml.conf || die
-
- # Install ocaml-rebuild portage set
- insinto /usr/share/portage/config/sets
- doins "${T}"/ocaml.conf
-}
diff --git a/dev-lang/ocaml/ocaml-4.12.1.ebuild b/dev-lang/ocaml/ocaml-4.12.1.ebuild
index da99522c6e38..287a7f38e79d 100644
--- a/dev-lang/ocaml/ocaml-4.12.1.ebuild
+++ b/dev-lang/ocaml/ocaml-4.12.1.ebuild
@@ -20,6 +20,10 @@ BDEPEND="${RDEPEND}
PDEPEND="emacs? ( app-emacs/ocaml-mode )
xemacs? ( app-xemacs/ocaml )"
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.12.0-glibc-2.34.patch
+)
+
src_prepare() {
default
diff --git a/dev-lang/ocaml/ocaml-4.13.0.ebuild b/dev-lang/ocaml/ocaml-4.13.0.ebuild
deleted file mode 100644
index da99522c6e38..000000000000
--- a/dev-lang/ocaml/ocaml-4.13.0.ebuild
+++ /dev/null
@@ -1,97 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic
-
-HOMEPAGE="https://ocaml.org/"
-SRC_URI="https://github.com/ocaml/ocaml/archive/${PV}.tar.gz -> ${P}.tar.gz"
-DESCRIPTION="Programming language supporting functional, imperative & object-oriented styles"
-
-LICENSE="QPL-1.0 LGPL-2"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
-IUSE="emacs flambda latex +ocamlopt xemacs"
-
-RDEPEND="sys-libs/binutils-libs:="
-BDEPEND="${RDEPEND}
- virtual/pkgconfig"
-PDEPEND="emacs? ( app-emacs/ocaml-mode )
- xemacs? ( app-xemacs/ocaml )"
-
-src_prepare() {
- default
-
- cp "${FILESDIR}"/ocaml.conf "${T}" || die
-
- # OCaml generates textrels on 32-bit arches
- # We can't do anything about it, but disabling it means that tests
- # for OCaml-based packages won't fail on unexpected output
- # bug #773226
- if use arm || use ppc || use x86 ; then
- append-ldflags "-Wl,-z,notext"
- fi
-
- # Upstream build ignores LDFLAGS in several places.
- sed -i -e 's/\(^MKDLL=.*\)/\1 $(LDFLAGS)/' \
- -e 's/\(^OC_CFLAGS=.*\)/\1 $(LDFLAGS)/' \
- -e 's/\(^OC_LDFLAGS=.*\)/\1 $(LDFLAGS)/' \
- Makefile.config.in || die "LDFLAGS fix failed"
-}
-
-src_configure() {
- local opt=(
- --bindir="${EPREFIX}/usr/bin"
- --libdir="${EPREFIX}/usr/$(get_libdir)/ocaml"
- --mandir="${EPREFIX}/usr/share/man"
- --prefix="${EPREFIX}/usr"
- $(use_enable flambda)
- )
-
- econf "${opt[@]}"
-}
-
-src_compile() {
- env -u P emake world
-
- if use ocamlopt ; then
- env -u P emake opt
- env -u P emake opt.opt
- fi
-}
-
-src_test() {
- emake -j
-
- # OCaml tests only work when run sequentially
- if use ocamlopt ; then
- emake -j1 ocamltest.opt
- else
- emake -j1 ocamltest
- #ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests."
- fi
-
- emake -j1 tests
-}
-
-src_install() {
- default
-
- dodir /usr/include
- # Create symlink for header files
- dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
- dodoc Changes README.adoc
-
- # Create envd entry for latex input files
- if use latex ; then
- echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}"/99ocamldoc || die
- doenvd "${T}"/99ocamldoc
- fi
-
- sed -i -e "s:lib:$(get_libdir):" "${T}"/ocaml.conf || die
-
- # Install ocaml-rebuild portage set
- insinto /usr/share/portage/config/sets
- doins "${T}"/ocaml.conf
-}
diff --git a/dev-lang/perl/Manifest b/dev-lang/perl/Manifest
index f80185c70a10..8f62de3d0bd9 100644
--- a/dev-lang/perl/Manifest
+++ b/dev-lang/perl/Manifest
@@ -1,13 +1,8 @@
-AUX perl-5.26.2-hppa.patch 3231 BLAKE2B d59eab55eea3daceb0d3df39778d43ebaee2c065c052ca048ec17c06fa90049eb7fd5ae40092f11248de25cdf9cff96dc69626e7f3269b24cf618004deeb5859 SHA512 24856ae3c637c58d16d543240f5028e137c33c7aeae7c0c3dfa1a69b621057a84ab4ddf8b12ac6ef251381af4b190c200262bec9bdaa6001199dbd1d15cf4bae
AUX perl-5.34.0-crossfit.patch 388 BLAKE2B dda2f10732422857f1a3977b6aa6ec0536dffaa53658e23378083393a55cf283906ef8f41dde2eb83e0de4e5dfd6dcd06d6b236f0a91c44086172bcaf105396a SHA512 5da4dd913790bd125667851807da9e37dac9cda78cce18ecffb8780f42d30b65f46817633e65027f5438f1a39286139fcf961d4bc98caf70946152200c3e72ee
-DIST perl-5.32.0-patches-1.tar.xz 20220 BLAKE2B 46ebca5c74f59aa935ceec2a5807426c0e653ad7ba27de441d26e049e62dc67b17d58dfe5755f31bdd157e349d47fd46a98699207729f8f4f747930ed1064ba2 SHA512 42ed00f5f6be40af59e02691ff439a048cccd96fb970cca0976209faa921af98a773cc4cb1466e164328350d58cb46950ffa8c6f2fddabbeb3e8819349b06849
-DIST perl-5.32.1.tar.xz 12610988 BLAKE2B 9f89bcf9cffb245a0f2cb0afa17c25f092c84cc2f29bb1c744294c2f0393c72dc3beb9fcbe256cf252677b33bc594b294b3f6a4774ad9e30b771aceed1f4f147 SHA512 3443c75aea91f0fe3712fee576239f1946d2301b8f7390b690e2f5d070fe71af8f9fa7769e42086c2d33d5f84370f80368fa9350b4f10cc0ac3e6c1f6209d8f9
+AUX perl-5.34.0-gdbm-1.20.patch 1627 BLAKE2B 9cbe976f43134022aab2aca203ee6590af52ccf628fa240c00334b14f090d01959764cd7d495a39c59eb59cdf69b0e527900350450f9995d934769ee461aac33 SHA512 fc6481a6ccbef4a19a966453472bde0c5dd1ea321be2a9682eff009c7431e18043d2c75b26ef296232a5f4e310992fc8955d19aef439d9f30b42ba9e9c9d561e
DIST perl-5.34.0-patches-1.tar.xz 20360 BLAKE2B e60074c49f357d4841708f58b5165a44201783238ff33ee81580bb83ba07d3d2dda447edd30a71ce8c9bafe5e5e0235b68e31a79081c3482bdd589231f0e898e SHA512 909e1fb22cda4ca769b51645b51a64df81b92210cfee388ac57834406bc13e404f0a1e6bad0888fafc73fc34b7fb224801fd02e87fb4c2f9145482ad74374e7b
DIST perl-5.34.0.tar.xz 12881416 BLAKE2B 4139e77fbb38b2b72671c0b130233cf5ed35112bbba3301b8ed724739c7ff96b041752aa505b938e257ef6ebf98a9b6dad1858e00f756c841a0520688d974e9a SHA512 691b4b31eacec357191fba777612b4e3eae59e946a22998a50766697c0d61db1d42a9b3bc1e41abf0d1ca1893e4a7c06d7bf3290480cf03d7f79befd7a8a3267
-DIST perl-cross-1.3.4.tar.gz 108461 BLAKE2B 28f207d235f51ebf681598cf85f7f16923574aafb593426a59d67578135ee3632efb12b9e1a672759195a79f80e49f5c929ec42b2b4571b1d36f5d8c8dceadc2 SHA512 7e1fc7b2b19d8c2e2fb8615e074e218b2e1a4d276b563ffabccfd0c7398bc8680fca96da89cc61d611993f38a2c67dfbb0201c58658e05437395ad8c00d31874
DIST perl-cross-1.3.6.tar.gz 110210 BLAKE2B 39074d6f4a526f59de2b1c40432936552e625a5a4e44fbb7ce3c1c3828b12c5298d1ab49b7d34ea92e2a4c8c88f8bbef8cc0c582a3fbbed975cf46d331e89c08 SHA512 d394fbd75d890442aa599eae8893a26540c8b7af966583ad1c3213c3fe0e074415cfed8814de8f397830833fd78267bdc55adc5267168198f269634c2ef3b982
-EBUILD perl-5.32.1.ebuild 25927 BLAKE2B f40fe88a214912fd791cbeb9fd3031227fa1caecbf8f0109821cb7309a902e3eeb56ff73db8c58643ca5f1b7fb5a9bba31bc3a2b1a639691506ba7c5f6f39ca4 SHA512 e1e69f8ae8fb62e334c53dc28c073246dba8698ae139a6bfd0cc4fdad4aee56b44d005dc3a022f02afda18371a2e88a5e15820148d1017c5a8224a2f118abaa0
-EBUILD perl-5.34.0-r1.ebuild 25937 BLAKE2B ab5b2e7a112a8c751a1df7c26272480236fe0e56346e2a4810a54c24b660859bb1a2c0dce8f5a420a9482ac031952138843602c556a354459d42c4e26a3078a3 SHA512 e8b16af390714ad9aeeff5a7e8ec5fe73612331b1459fda1caa2f16c17b25ee7d69df5d69ea5809cbf24f1d38a39942c095136c0f0815e5877cebb953c1827e6
EBUILD perl-5.34.0-r2.ebuild 25961 BLAKE2B 52db67be3b652189eb95a96b9949cffcccaf3d518850e2874daf51407c3904076ff69f57508888c4cb82d2a6bb412717b81878bf5a89e1ab5e9e6ab327620547 SHA512 7f694dc10ae960869dab2b74464b0804f4b5ca197c59a914ed674a185fcfc434a363ff48bb9bea67a4b02bcd4ed134d39cf0e8700a17515d63d049d6ab9fd089
-EBUILD perl-5.34.0.ebuild 25814 BLAKE2B 3ffb3b2423b4dc3f1b7ae5d1b4d586c8add7c03702e9bd1d9de1688970848b8e5038a38fa0e9d62ad81f10c47f663b5c03bddd70321416eea689bf5912ce7828 SHA512 3a809bd06bc774ac5dd42c90cb24e2f08629449fa46731189d831270c860d75d1afb606a555ba67a9550baa3320dd7165a5219d69b7daac1ea1757e28057e5d5
+EBUILD perl-5.34.0-r3.ebuild 26141 BLAKE2B 9eb33f6777b266b9a617a06d14b89ec29ca7e3a0a3596d5955f1b5f9e10a05db45eb2883b782329317065f2e92fee4378e75faebcbf49ad83d13f7714d036dcd SHA512 f0a140c3536192d0198e54b7d2f7b2316eae2b065627fe96df8949d97e0e61c37406e0cac7c827a58002251235c2b21f75d5b32f4cdf874596e6ec0fcbbe7295
MISC metadata.xml 431 BLAKE2B 89471506c7b258c1806338a5850ee9337f48b8e7497a3cad8b1e8bf18811152071d416732e0267e7d0c13386097990d1ca12bb0051deb7cb70403ab2e9bdb367 SHA512 87d2a0c6a10f71b243b1e9a79306ed0d440a7f447d84fe37f2bd3c40c60e8749fd9d7e97ad482e286153587b57d7db5d6a8df7cef94f332de7175f053dc843e1
diff --git a/dev-lang/perl/files/perl-5.26.2-hppa.patch b/dev-lang/perl/files/perl-5.26.2-hppa.patch
deleted file mode 100644
index 83ed944353e5..000000000000
--- a/dev-lang/perl/files/perl-5.26.2-hppa.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-https://bugs.gentoo.org/634162
-
-Source:
-https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=869122
-
-Index: perl-5.26.0/op.c
-===================================================================
---- perl-5.26.0.orig/op.c
-+++ perl-5.26.0/op.c
-@@ -14832,6 +14832,7 @@ Perl_custom_op_get_field(pTHX_ const OP
- SV *keysv;
- HE *he = NULL;
- XOP *xop;
-+ XOPRETANY any;
-
- static const XOP xop_null = { 0, 0, 0, 0, 0 };
-
-@@ -14874,58 +14875,37 @@ Perl_custom_op_get_field(pTHX_ const OP
- else
- xop = INT2PTR(XOP *, SvIV(HeVAL(he)));
- }
-- {
-- XOPRETANY any;
-- if(field == XOPe_xop_ptr) {
-- any.xop_ptr = xop;
-- } else {
-- const U32 flags = XopFLAGS(xop);
-- if(flags & field) {
-- switch(field) {
-- case XOPe_xop_name:
-- any.xop_name = xop->xop_name;
-- break;
-- case XOPe_xop_desc:
-- any.xop_desc = xop->xop_desc;
-- break;
-- case XOPe_xop_class:
-- any.xop_class = xop->xop_class;
-- break;
-- case XOPe_xop_peep:
-- any.xop_peep = xop->xop_peep;
-- break;
-- default:
-- NOT_REACHED; /* NOTREACHED */
-- break;
-- }
-- } else {
-- switch(field) {
-- case XOPe_xop_name:
-- any.xop_name = XOPd_xop_name;
-- break;
-- case XOPe_xop_desc:
-- any.xop_desc = XOPd_xop_desc;
-- break;
-- case XOPe_xop_class:
-- any.xop_class = XOPd_xop_class;
-- break;
-- case XOPe_xop_peep:
-- any.xop_peep = XOPd_xop_peep;
-- break;
-- default:
-- NOT_REACHED; /* NOTREACHED */
-- break;
-- }
-- }
-+
-+ if(field == XOPe_xop_ptr) {
-+ any.xop_ptr = xop;
-+ } else {
-+ const U32 flags = XopFLAGS(xop);
-+ switch(field) {
-+ case XOPe_xop_name:
-+ any.xop_name = (flags & field) ? xop->xop_name : XOPd_xop_name;
-+ break;
-+ case XOPe_xop_desc:
-+ any.xop_desc = (flags & field) ? xop->xop_desc : XOPd_xop_desc;
-+ break;
-+ case XOPe_xop_class:
-+ any.xop_class = (flags & field) ? xop->xop_class : XOPd_xop_class;
-+ break;
-+ case XOPe_xop_peep:
-+ any.xop_peep = (flags & field) ? xop->xop_peep : XOPd_xop_peep;
-+ break;
-+ default:
-+ NOT_REACHED; /* NOTREACHED */
-+ break;
- }
-- /* On some platforms (HP-UX, IA64) gcc emits a warning for this function:
-- * op.c: In function 'Perl_custom_op_get_field':
-- * op.c:...: warning: 'any.xop_name' may be used uninitialized in this function [-Wmaybe-uninitialized]
-- * This is because on those platforms (with -DEBUGGING) NOT_REACHED
-- * expands to assert(0), which expands to ((0) ? (void)0 :
-- * __assert(...)), and gcc doesn't know that __assert can never return. */
-- return any;
- }
-+
-+ /* On some platforms (HP-UX, IA64) gcc emits a warning for this function:
-+ * op.c: In function 'Perl_custom_op_get_field':
-+ * op.c:...: warning: 'any.xop_name' may be used uninitialized in this function [-Wmaybe-uninitialized]
-+ * This is because on those platforms (with -DEBUGGING) NOT_REACHED
-+ * expands to assert(0), which expands to ((0) ? (void)0 :
-+ * __assert(...)), and gcc doesn't know that __assert can never return. */
-+ return any;
- }
-
- /*
diff --git a/dev-lang/perl/files/perl-5.34.0-gdbm-1.20.patch b/dev-lang/perl/files/perl-5.34.0-gdbm-1.20.patch
new file mode 100644
index 000000000000..fc4c55c6899f
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.34.0-gdbm-1.20.patch
@@ -0,0 +1,40 @@
+From: Sergey Poznyakoff <gray@gnu.org>
+Date: Wed, 23 Jun 2021 10:26:50 +0300
+Subject: Fix GDBM_File to compile with version 1.20 and earlier
+
+* ext/GDBM_File/GDBM_File.xs (ITEM_NOT_FOUND): Define conditionally,
+depending on the GDBM_VERSION_MAJOR and GDBM_VERSION_MINOR.
+Don't assume GDBM_ITEM_NOT_FOUND is a define (it isn't since
+gdbm commit d3e27957).
+
+Origin: backport, https://github.com/Perl/perl5/pull/18924/commits/aacd2398e766500cb5d83c4d76b642fcf31d997a
+Bug: https://github.com/Perl/perl5/issues/18915
+Bug-Debian: https://bugs.debian.org/993514
+---
+ ext/GDBM_File/GDBM_File.xs | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/ext/GDBM_File/GDBM_File.xs b/ext/GDBM_File/GDBM_File.xs
+index cd0bb6f..494c288 100644
+--- a/ext/GDBM_File/GDBM_File.xs
++++ b/ext/GDBM_File/GDBM_File.xs
+@@ -145,14 +145,13 @@ output_datum(pTHX_ SV *arg, char *str, int size)
+ #define gdbm_setopt(db,optflag,optval,optlen) not_here("gdbm_setopt")
+ #endif
+
+-#ifndef GDBM_ITEM_NOT_FOUND
+-# define GDBM_ITEM_NOT_FOUND GDBM_NO_ERROR
+-#endif
+-
++#if GDBM_VERSION_MAJOR == 1 && GDBM_VERSION_MINOR < 13
+ /* Prior to 1.13, gdbm_fetch family functions set gdbm_errno to GDBM_NO_ERROR
+ if the requested key did not exist */
+-#define ITEM_NOT_FOUND() \
+- (gdbm_errno == GDBM_ITEM_NOT_FOUND || gdbm_errno == GDBM_NO_ERROR)
++# define ITEM_NOT_FOUND() (gdbm_errno == GDBM_NO_ERROR)
++#else
++# define ITEM_NOT_FOUND() (gdbm_errno == GDBM_ITEM_NOT_FOUND)
++#endif
+
+ #define CHECKDB(db) do { \
+ if (!db->dbp) { \
diff --git a/dev-lang/perl/perl-5.32.1.ebuild b/dev-lang/perl/perl-5.32.1.ebuild
deleted file mode 100644
index 97963cf4402c..000000000000
--- a/dev-lang/perl/perl-5.32.1.ebuild
+++ /dev/null
@@ -1,822 +0,0 @@
-# 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
- 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
-
- # modifying 'optimize' prevents cross configure script from appending required flags
- if tc-is-cross-compiler; then
- append-cflags "-fwrapv -fno-strict-aliasing"
- 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/perl/perl-5.34.0-r1.ebuild b/dev-lang/perl/perl-5.34.0-r1.ebuild
deleted file mode 100644
index 8f4017c8989f..000000000000
--- a/dev-lang/perl/perl-5.34.0-r1.ebuild
+++ /dev/null
@@ -1,822 +0,0 @@
-# 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.6
-PATCH_BASE="perl-5.34.0-patches-${PATCH_VER}"
-PATCH_DEV=dilfridge
-
-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
-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.380.0 ptar ptardiff ptargrep
- src_remove_dual perl-core/CPAN 2.280.0 cpan
- src_remove_dual perl-core/Digest-SHA 6.20.0 shasum
- src_remove_dual perl-core/Encode 3.80.0 enc2xs piconv
- src_remove_dual perl-core/ExtUtils-MakeMaker 7.620.0 instmodsh
- src_remove_dual perl-core/ExtUtils-ParseXS 3.430.0 xsubpp
- src_remove_dual perl-core/IO-Compress 2.102.0 zipdetails
- src_remove_dual perl-core/JSON-PP 4.60.0 json_pp
- src_remove_dual perl-core/Module-CoreList 5.202.105.200 corelist
- src_remove_dual perl-core/Pod-Checker 1.740.0 podchecker
- src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
- src_remove_dual perl-core/Pod-Usage 2.10.0 pod2usage
- src_remove_dual perl-core/Test-Harness 3.430.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 794463, needs further analysis what is exactly wrong here
- eapply "${FILESDIR}/perl-5.34.0-crossfit.patch"
-
- # bug 604072
- MAKEOPTS+=" -j1"
- export MAKEOPTS
-}
-src_prepare_dynamic() {
- ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
- ln -s ${LIBPERL} libperl$(get_libname ) || die
-}
-
-# Copy a patch into the patch series
-# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug']
-# - description is optional, but recommended
-# - all arguments after descriptions are bug URLs
-add_patch() {
- local patchdir="${WORKDIR}/patches"
- local infodir="${WORKDIR}/patch-info"
- local src_name dest_name desc
- src_name="$1"
- dest_name="$2"
- desc="$3"
- shift; shift; shift;
- einfo "Adding ${dest_name} to patch bundle"
- cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}"
- if [[ -n "${desc}" ]]; then
- printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc"
- fi
- if [[ $# -gt 0 ]]; then
- # Note: when $@ is more than one element, this emits a
- # line for each element
- printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
- fi
-}
-# Remove a patch using a glob expr
-# eg:
-# rm_patch *-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
- # Old example:
- # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
- # "Fix broken miniperl on hppa"\
- # "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
-
- if [[ ${CHOST} == *-solaris* ]] ; then
- # do NOT mess with nsl, on Solaris this is always necessary,
- # when -lsocket is used e.g. to get h_errno
- rm_patch "*-nsl-and-cl*"
- fi
-
- apply_patchdir
-
- tc-is-cross-compiler && src_prepare_perlcross
-
- tc-is-static-only || src_prepare_dynamic
-
- if use gdbm; then
- sed -i "s:INC => .*:INC => \"-I${EROOT}/usr/include/gdbm\":g" \
- ext/NDBM_File/Makefile.PL || die
- fi
-
- # Use errno.h from prefix rather than from host system, bug #645804
- if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
- sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
- fi
-
- if [[ ${CHOST} == *-solaris* ]] ; then
- # set a soname, fix linking against just built libperl
- sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
- fi
-
- if [[ ${CHOST} == *-darwin* ]] ; then
- # fix install_name (soname) not to reference $D
- sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
- 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
-
- # modifying 'optimize' prevents cross configure script from appending required flags
- if tc-is-cross-compiler; then
- append-cflags "-fwrapv -fno-strict-aliasing"
- 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/perl/perl-5.34.0.ebuild b/dev-lang/perl/perl-5.34.0-r3.ebuild
index a9aa55e7376c..4f15c0a9e41f 100644
--- a/dev-lang/perl/perl-5.34.0.ebuild
+++ b/dev-lang/perl/perl-5.34.0-r3.ebuild
@@ -71,6 +71,7 @@ BDEPEND="${RDEPEND}"
PDEPEND="
!minimal? (
>=app-admin/perl-cleaner-2.5
+ >=virtual/perl-Encode-3.120.0
>=virtual/perl-File-Temp-0.230.400-r2
>=virtual/perl-Data-Dumper-2.154.0
virtual/perl-Test-Harness
@@ -256,6 +257,9 @@ src_remove_dual() {
src_prepare_perlcross() {
cp -a ../perl-cross-${CROSS_VER}/* . || die
+ # bug 794463, needs further analysis what is exactly wrong here
+ eapply "${FILESDIR}/perl-5.34.0-crossfit.patch"
+
# bug 604072
MAKEOPTS+=" -j1"
export MAKEOPTS
@@ -394,6 +398,10 @@ src_prepare() {
# "Fix broken miniperl on hppa"\
# "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
+ add_patch "${FILESDIR}/${P}-gdbm-1.20.patch" "0101-Fix-build-with-gdb120.patch"\
+ "Fix GDBM_File to compile with version 1.20 and earlier"\
+ "https://bugs.gentoo.org/802945"
+
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
diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest
index a3341bb032cf..d846310092b3 100644
--- a/dev-lang/python/Manifest
+++ b/dev-lang/python/Manifest
@@ -21,23 +21,25 @@ DIST Python-3.9.6.tar.xz.asc 833 BLAKE2B 41901bfb80a901f2f14e86769e6d08ded8f7565
DIST Python-3.9.7.tar.xz 19123232 BLAKE2B 69dfba6974c8c74de1b71977d28cad4d7c26615695f48a99444d2eb83d657b4bd8d22e7f6e94b1b2dcbcc5605c0aee08c609b9564e306f48588e2a7f471209b2 SHA512 55139776ab58a40f9e1e70613d7071d559ef9e51e32a77791422aac134322c21a49f0348c42813214b69789c589367eae43e16d4ae838a73daf37617e966b735
DIST Python-3.9.7.tar.xz.asc 833 BLAKE2B 2d9c47e47d9a625e393a8b456dd5b10dd485fc13ca7c236b5fd304c373879bea8ab3c67ff99c3a81350443f6ccba20718466a221a05faada6b82cfe92943fdbf SHA512 7ff9f845f520efab3b4a0e95da3ffe055ee5777a4173a5b2cc1fd2419dc2b4faf30d1e711e372df36e34bc971ecfcde88a7cd815cfe2d8080ccb575a1ae8e101
DIST python-gentoo-patches-2.7.18_p13.tar.xz 33296 BLAKE2B 91b711458aff4f6337ee1b34aff58d7edda6725644a64c9320076a1e04c816729ed163d82333cfe4dfef379a9ad5ef50ba00abdbbfed4503b0f92c8f0b7ca683 SHA512 97f3657a4a95e8492aa710801b974a56e6dd4636e475aea45cbbe76e7ae32d00f07b05769887f05e49cb0df8584ac9499a7ce842bad77f837a7c869f9b769b07
-DIST python-gentoo-patches-3.10.0.tar.xz 8528 BLAKE2B 5217172056a00196969dc462c7b89e629fe2dbf258cac9b3695b8e61441426d024f6656e984c61966f954b4599bf7a88071b3902791d66fc787ff992d052bbe1 SHA512 6bdd9741b065dc6482c66d9a78cc58d72ee754d588cdbe427cbe7ba3ce3cb917f655e8a22053b5561134b15587694ea3f440518b5443e379cebe49585af64c82
+DIST python-gentoo-patches-3.10.0_p1.tar.xz 10068 BLAKE2B 1c9817b449831559f0a0b722c02a5f55d94b3dfde98e5882c1403fe24a4addf7074ab39c09b91cff6fd7ace2e4b6e8ed899d9a0b9ffd6612ce315c4c192bd309 SHA512 39aa41dbf17b6dc5255491c75031a3dae6962b44125e426dbfdce365a6533c5dae9856b1fff8016a189124b7cff72d2665ce99da344c2f9dff005ba685e8c2c4
DIST python-gentoo-patches-3.10.0rc2.tar.xz 8488 BLAKE2B d7c1e45e63bf5bfe5d41823ea183608f4bcb44694feb18ee6d315250f1563684ce87dec29f46c16da223b6bbd1d20e75791d347ae6ac1d4b5130ba3f08c55ca1 SHA512 c2ca3b60f33131b20037fc0f53a5ce655e9978c5fa42d0b8e2c6b56aec24f6f37d8997fa146a446e5fd72b5d2c4b017d5e4fb71318a51dbb45f5d3b0ea4ed4ad
DIST python-gentoo-patches-3.6.14_p1.tar.xz 16576 BLAKE2B 902a9073e6d3e40cfba105680d9947b64a4bfa1632381bc71afbd2691350dccb36f498bf17ac7dfc8ce331dfc3fb7e3cdd539cea3f5e9db1c49210ad4d124182 SHA512 4aa354f1ca8d9bb3c30b666ef61cac8380741342102aeb9ea77cc06ae62179f595acc1c2e6321e9c2395abbc3fbc649ecc93b80443d139859924524989539992
DIST python-gentoo-patches-3.6.15.tar.xz 15300 BLAKE2B f49fd96f6ad1a1c94fea6b83acd229a81754b86061e243044ead4b9a9d5122a2e43b270b68722c359c084c05a566a3ad70aa46588ab7a005ee560ee118b92b8b SHA512 cc33491a33f3f1d990cf494d53b91b74db761142e8aebe1bd4b128ef10a268ff945e5ba08daad39cee095612a8e52265d6988873ecf9c073377cbbc10735aa39
DIST python-gentoo-patches-3.7.11_p1.tar.xz 18540 BLAKE2B 717f3b279368faa355e9b306ede5aa3cf750b7a862e50553caf4efe19b6b8d40431974fbb510414291c4c91623addebff54fd6d4f7f7553c686c5382174bc81f SHA512 e403d2364bbe600d7c3dba8f70157b1f243b00848e3826e6f350d7dbbdd0966229fbf9aa11e0e87fb5ab93b8ea69893f389e5b92c22d7315f99657d69695ded2
-DIST python-gentoo-patches-3.7.12.tar.xz 17292 BLAKE2B f2e6629c8386c352254f8335fbfc53ddd5e7d86e1b6b71d57b6ff84f11974bf58ab894e687e866c4af60c25f43db01b11427f10c0755b494fa1f579af1b68750 SHA512 d6a1fb5e9ecf2691060f24078039dcbdafa4a27f17b7ede843bbda45016e86756a57e453da3e370b57c74d05c6dc894aa201f356e13ce94d3d9776fcbb673ed2
+DIST python-gentoo-patches-3.7.12_p1.tar.xz 19112 BLAKE2B e9964244af3db544dd6e96d85ca4bc24d7131b48eda85df5bafa3fb36474a024cecbbf4b27324e1f35f76ae6a1aed31dd7896e831b79b574b45a4371afcc7e5b SHA512 9ec996c2904f99bd6651ed1b700eabd91f2b82b1e9e0f3d9572243886a9c7139bf8ac2af04169485d3ca6339e1a87044cba203f6f0aee9609d2a1d53c812548d
DIST python-gentoo-patches-3.8.12.tar.xz 14936 BLAKE2B 1cb6cdb0bb659b1bc3f8a4ecd80da74b41a9fa2f4d5646ac4b48ddecd5124677cb24574a425404fedab4fb9c7faba4b1cb54cc3482785559a54fa3e9b3ca13f1 SHA512 86c30622bbf6847efcdf2bc43d916b05ee78ab17f45b93148a01cf4c181592029ecc52e8c4887112d97aeece63a92ee0f685a689287c133443cf51b3f8171fb9
+DIST python-gentoo-patches-3.8.12_p1.tar.xz 16632 BLAKE2B cce7a41d020af1ffc55a01ef67b20bcb16c68adbccc1e44ef166d1707e817ed6c3bae70f84c56553f27bca449015e273014c0be73bc2f9b4e25844ddce385486 SHA512 4621727c2e9cc1c5519e021210e16a97e7167ea831445dfdd07f5b0ed642b5919834244111708a971ce098b10b439797e1c76827eccab803f801052c671f1ae6
DIST python-gentoo-patches-3.9.6_p2.tar.xz 14720 BLAKE2B e14634229b65a29f5294694949c138bfa6146810349d1207a07d84eeca529571eb9c760b58ddbe6e8d96d50d1a3e0d1dfe42328c53c977a9eeb22ecd553317dc SHA512 5d84b8bb4e5584e3ef8e6298af000e772240ad93ed0aaadf1d785db947f1e79aecae7313b8dbeb65849212c9930e683be6e18e42ef6c41a3c27d60f75df08a01
-DIST python-gentoo-patches-3.9.7.tar.xz 12764 BLAKE2B 0cdd255ee1b90f117a7b11cf3ce96d48fe6e8b7b0d43958c473c23489fa4b512f7d8c385fc7c67ba0e62946fd22a608c3f088a3220934136c056bdd14e802752 SHA512 64ba96a5b07ff986b07c2694cd917d5542513cdf2d8ec96940bc2a730a479538968789121e6608feb1bae5465eafbae176726d79f2ddf025a0b7f59b67404b07
+DIST python-gentoo-patches-3.9.7_p1.tar.xz 14444 BLAKE2B c976beb1205b0b777ff3375f538758bf28443bcf4c953fe161545791763da043e32582c398ec8151478afc40e53f963e080d29420066305c12963c953887e4b8 SHA512 283c8975885f9306e46a0047219f3a70e1000f3401affb0b55cde976be6fb6df2f1c13f4e05a479e72e0731d683fef9b22413f7cd320298295a31b19c8915b3d
EBUILD python-2.7.18_p13.ebuild 10084 BLAKE2B 1dad5dbeec00ae05accd7a05614991812facf0fce7b6d3afb978019ac2facd204156d44d9df76190de9c2075b5c8d0dcbceead7ac445361fcab97309e8dd67f3 SHA512 84d49306ba25875b3542b3a825aaa613516501a348746e3d7f3f74fb44d7e14a393ac0d7180b33ff43e9d879392a9a086c78894b1f2644c9e21ec5a68e1e7c22
-EBUILD python-3.10.0.ebuild 10024 BLAKE2B 24fc7022b48d8a8059e9c99855971ee1602845038f34b704291615738325dc563aae7a2e31670df275e1e31b1f2cd301d38bf348644f99b5ec7b5cd0225099e7 SHA512 29dc55d30993c91d3ada87d2287ad34a349f4d83d9b8dda9c8d479acd9e9f15ab0b3e11fce6da417b2081f74affbb13ad669b894f61e2d1d42e2f16b2d294046
+EBUILD python-3.10.0_p1.ebuild 10009 BLAKE2B be9e178279612086f3cefd33683b1c91fb019c7a6f159753f59305648b94daf31812a04c463d9c3c5fdc797ff8b9b50fd9ab3d7fbc70d565b6af04bd9ea2a8fe SHA512 67af2b30c1c98fc370b1ca77e2fb76e1285d6a180bd46d4e71cde3c92abbbe37bb9110d0f56ed5f4cb093129201b2d1697c36414dedcce3110ddb3be1d8b43ae
EBUILD python-3.10.0_rc2.ebuild 10013 BLAKE2B 0fc5812116ad7d044e61ca6103b75cbf42c309799c70d59f4fff7d496893d3e1ed6f0a4381772e41ccb945a09948cf90ffaf61003da3b15853a55436cdc2865d SHA512 7048e4eabec33c57dc17c4867ef0b867df71cc00ce038252ad67cf88b83ef94250313463a2e6941b427600947b8e49a2a2f11b46c8fbb448fbb854ce4be83e1a
EBUILD python-3.6.14_p1.ebuild 9702 BLAKE2B 5b247e39c0d753420adba7b83f952cdf75805815585d221642499223f894fd6a0365385806cf9edb2ce0b79956efdb6e5fc7b64020382a6216159d449c2a49f7 SHA512 f6b1f0ad1f82b68eae9f2a8691daa85bbc75fa0ccc3c24036174d9c38c8bd5d8bb93b79b587c2815dc56eeb1db24e288043629fea0bdbd13ca2b98a687eafeee
EBUILD python-3.6.15.ebuild 9710 BLAKE2B 8bd667da95e331d0d1ece3089b990fb3d4769dd6b632b98086edb389b10fac4f341a2616dec459dfb9501a14376253bfd13fe3a68dca1b6494d02a9365183add SHA512 85bb866b40325e793c0dd0ef3d69e88d6b34ebc4cecfb9f441bcce0259c09751d1033f101d48826186c8fb97b3d77f3ca6c18bddafdb42e8469b2cf09f6240ae
EBUILD python-3.7.11_p1.ebuild 9601 BLAKE2B 8d410e5eb77a2af1612f8f0c3e1d18f360bccdcc95d466c65150875146ab9d6469c9bfda41295ea19bcaa04a3f9dbb89841491d4d9420384c5c29a0098337a25 SHA512 a696575a1ddb66bb6c0a6a3931cdd3c5b0544eb686dd446ed775e45268ff2642a19f92eab5476840f2f644e5ec4cbb3bcd938f956c0c229e26804a05f6822c23
-EBUILD python-3.7.12.ebuild 9609 BLAKE2B 66790a5b9ae9ff9fe193f41950eb1317dbde909dd4ccdc24e5cfbcf063705e4aee38c021207fb5aef9f5c89b3013e86b4c3af959563c409ac5ba738bedacc425 SHA512 247928e121eb17560d2d8db71a321a0a7ef6f1a4b096d3bf349d76d9cca597abce07d3515a02a22b09bb7260efc0092a76f0841498a0452dd969339601129709
+EBUILD python-3.7.12_p1.ebuild 9597 BLAKE2B 6047255b5cc230884bcd6168e8495013aafe781a8885c0b190cc8dc4b80d7d05242d214e055c215827968a94d2193ce95fe727dd9c6961ace1eba3be1309ea07 SHA512 fb59c050dd42f615881a52198b894653c69c5fab267453c5c04a367ddb7610ea8d27d1ea2d192be94c9ed2515b8ef56465ec7679c015def5f5d9c00c9c9a0c76
EBUILD python-3.8.12.ebuild 9755 BLAKE2B c547d90b8d6a07ffba68d5fc45bf247927b759cf66ea0e1d752d104d994403bb9d5f453ca3d7220ec06b9cc52325b98776bc1078227fd583483e72d29d9609d9 SHA512 9d568dd1a3aa64c3b04d92a4bf463b2911351ad3a611ae3530d45e185fa7a95f82f41c98ed6a44576192d564cfcf5110c1f504a56ef47d50388d4845d8c27b84
+EBUILD python-3.8.12_p1.ebuild 9751 BLAKE2B 7324e10e05dc1aad568af0e4a6c57ae27918dc973259981be548649e3af65da46592d53d43f1733efe8f878aecdbc07809a2745bda44a50d948a49f6f44cc7bb SHA512 f8d0998e6d00ef3d6e877cef57ae69976cdd0c946c9927a7edb6ed4dd02f0a74f2a5cbc75c9d27ce152df6a66e708fdf86acbce82707e30b412d3c4dd9606f21
EBUILD python-3.9.6_p2.ebuild 9894 BLAKE2B 78998d700dcbfae7a80ec67162f8f770b69c538c6cb881044b10bd3064fd26038415456f23727d2dbff7765652837be05c4b4d25b1af252f2ab44296defdebc7 SHA512 8d689629b00d0d67cecdeed88e52d7c44c25bcadf42a889a7219a74166de25e883c18fb237d64dc0b79d6895dee21259af95c273ad2582456132529a1a7f4878
-EBUILD python-3.9.7.ebuild 9902 BLAKE2B 4bcf17e812cc2dcfdaf4ff2b7f2be3a23905247630f456bcb0e4db2966683b5e0dbe640ff822395b3c0f7c5f79c9dac68b2141f2bbdd745ec52a017111f40c23 SHA512 342f3d6566dec3dc698fff54df77dc46144b8b80c96efece51ca9f0c460c46b167939182f297a20ebf15423a9cd7dd6f51be62e1a6e75036e962352c94dc1fae
+EBUILD python-3.9.7_p1.ebuild 9890 BLAKE2B 5dbea7e2ba4db850b2ed67ea27781613ec71a0fa23d040dcdfcb4d1919d5cfbeff541b0e7a0763381508b8597d392fc157a88d52edf0ec00cb1417af62059061 SHA512 a6438dce5e69e520f160aab01e10b1523eb56b700a4bdc7d694f3060103aaa9d637defc3340ec27677d83532e35b0c124d7b284c7287c30165ff6b0affbf9d4a
MISC metadata.xml 447 BLAKE2B 0f4f1f1af9e1d7e00f984eae6e555d57ebd41f36ace2c24781ec0fdb08d2d3fc96de80e83a2da89ce3f06b209781a674dfcfd1ced5204f3c5d3cada8f58ea417 SHA512 b309e96985959bf70da42d43604e7acd9eacd62d321f5efdb68b77ebcc496e56104da0c5b3b65b6e74e4d0acce8e66aa572baf49277546044ecc8d0f61c6148c
diff --git a/dev-lang/python/python-3.10.0.ebuild b/dev-lang/python/python-3.10.0_p1.ebuild
index 016c5e8dd443..33025d94f31f 100644
--- a/dev-lang/python/python-3.10.0.ebuild
+++ b/dev-lang/python/python-3.10.0_p1.ebuild
@@ -15,7 +15,7 @@ PATCHSET="python-gentoo-patches-${MY_PV}"
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
HOMEPAGE="https://www.python.org/"
SRC_URI="https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
- https://dev.gentoo.org/~sam/distfiles/dev-lang/python/${PATCHSET}.tar.xz
+ https://dev.gentoo.org/~floppym/python/${PATCHSET}.tar.xz
verify-sig? (
https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
)"
diff --git a/dev-lang/python/python-3.7.12.ebuild b/dev-lang/python/python-3.7.12_p1.ebuild
index 710da1dda38e..d01c389e0cfc 100644
--- a/dev-lang/python/python-3.7.12.ebuild
+++ b/dev-lang/python/python-3.7.12_p1.ebuild
@@ -14,7 +14,7 @@ PATCHSET="python-gentoo-patches-${PV}"
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
HOMEPAGE="https://www.python.org/"
SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz
- https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ https://dev.gentoo.org/~floppym/python/${PATCHSET}.tar.xz
verify-sig? (
https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc
)"
@@ -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 +ncurses +readline +sqlite +ssl test tk wininst +xml"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/python/python-3.8.12_p1.ebuild b/dev-lang/python/python-3.8.12_p1.ebuild
new file mode 100644
index 000000000000..8463533c8cbb
--- /dev/null
+++ b/dev-lang/python/python-3.8.12_p1.ebuild
@@ -0,0 +1,335 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+WANT_LIBTOOL="none"
+
+inherit autotools flag-o-matic multiprocessing pax-utils \
+ python-utils-r1 toolchain-funcs verify-sig
+
+MY_PV=${PV/_rc/rc}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="An interpreted, interactive, object-oriented programming language"
+HOMEPAGE="https://www.python.org/"
+SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~floppym/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc
+ )"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="bluetooth build examples gdbm hardened +ncurses +readline +sqlite +ssl test tk wininst +xml"
+RESTRICT="!test? ( test )"
+
+# Do not add a dependency on dev-lang/python to this ebuild.
+# If you need to apply a patch which requires python for bootstrapping, please
+# run the bootstrap code on your dev box and include the results in the
+# patchset. See bug 447752.
+
+RDEPEND="app-arch/bzip2:=
+ app-arch/xz-utils:=
+ dev-libs/libffi:=
+ sys-apps/util-linux:=
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ virtual/libintl
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ ncurses? ( >=sys-libs/ncurses-5.2:= )
+ readline? ( >=sys-libs/readline-4.1:= )
+ sqlite? ( >=dev-db/sqlite-3.3.8:3= )
+ ssl? ( >=dev-libs/openssl-1.1.1:= )
+ tk? (
+ >=dev-lang/tcl-8.0:=
+ >=dev-lang/tk-8.0:=
+ dev-tcltk/blt:=
+ dev-tcltk/tix
+ )
+ xml? ( >=dev-libs/expat-2.1:= )"
+# bluetooth requires headers from bluez
+DEPEND="${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ test? ( app-arch/xz-utils[extra-filters(+)] )"
+BDEPEND="
+ virtual/pkgconfig
+ sys-devel/autoconf-archive
+ verify-sig? ( app-crypt/openpgp-keys-python )
+ !sys-devel/gcc[libffi(-)]"
+RDEPEND+=" !build? ( app-misc/mime-types )"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ # Ensure that internal copies of expat, libffi and zlib are not used.
+ rm -fr Modules/expat || die
+ rm -fr Modules/_ctypes/libffi* || die
+ rm -fr Modules/zlib || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
+ setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
+
+ # force correct number of jobs
+ # https://bugs.gentoo.org/737660
+ local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
+ sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
+ sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
+
+ eautoreconf
+}
+
+src_configure() {
+ local disable
+ # disable automagic bluetooth headers detection
+ use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
+ use gdbm || disable+=" gdbm"
+ use ncurses || disable+=" _curses _curses_panel"
+ use readline || disable+=" readline"
+ use sqlite || disable+=" _sqlite3"
+ use ssl || export PYTHON_DISABLE_SSL="1"
+ use tk || disable+=" _tkinter"
+ use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
+ export PYTHON_DISABLE_MODULES="${disable}"
+
+ if ! use xml; then
+ ewarn "You have configured Python without XML support."
+ ewarn "This is NOT a recommended configuration as you"
+ ewarn "may face problems parsing any XML documents."
+ fi
+
+ if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
+ einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
+ fi
+
+ if [[ "$(gcc-major-version)" -ge 4 ]]; then
+ append-flags -fwrapv
+ fi
+
+ filter-flags -malign-double
+
+ # https://bugs.gentoo.org/show_bug.cgi?id=50309
+ if is-flagq -O3; then
+ is-flagq -fstack-protector-all && replace-flags -O3 -O2
+ use hardened && replace-flags -O3 -O2
+ fi
+
+ # https://bugs.gentoo.org/700012
+ if is-flagq -flto || is-flagq '-flto=*'; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ fi
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ tc-export CXX
+
+ # Fix implicit declarations on cross and prefix builds. Bug #674070.
+ use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
+
+ local dbmliborder
+ if use gdbm; then
+ dbmliborder+="${dbmliborder:+:}gdbm"
+ fi
+
+ local myeconfargs=(
+ # glibc-2.30 removes it; since we can't cleanly force-rebuild
+ # Python on glibc upgrade, remove it proactively to give
+ # a chance for users rebuilding python before glibc
+ ac_cv_header_stropts_h=no
+
+ --enable-shared
+ --enable-ipv6
+ --infodir='${prefix}/share/info'
+ --mandir='${prefix}/share/man'
+ --with-computed-gotos
+ --with-dbmliborder="${dbmliborder}"
+ --with-libc=
+ --enable-loadable-sqlite-extensions
+ --without-ensurepip
+ --with-system-expat
+ --with-system-ffi
+ )
+
+ OPT="" econf "${myeconfargs[@]}"
+
+ if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
+ eerror "configure has detected that the sem_open function is broken."
+ eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
+ die "Broken sem_open function (bug 496328)"
+ fi
+}
+
+src_compile() {
+ # Ensure sed works as expected
+ # https://bugs.gentoo.org/594768
+ local -x LC_ALL=C
+
+ emake CPPFLAGS= CFLAGS= LDFLAGS=
+
+ # Work around bug 329499. See also bug 413751 and 457194.
+ if has_version dev-libs/libffi[pax-kernel]; then
+ pax-mark E python
+ else
+ pax-mark m python
+ fi
+}
+
+src_test() {
+ # Tests will not work when cross compiling.
+ if tc-is-cross-compiler; then
+ elog "Disabling tests due to crosscompiling."
+ return
+ fi
+
+ # Skip failing tests.
+ local skipped_tests="gdb"
+
+ for test in ${skipped_tests}; do
+ mv "${S}"/Lib/test/test_${test}.py "${T}"
+ done
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
+
+ emake test EXTRATESTOPTS="-u-network -j${jobs}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local result=$?
+
+ for test in ${skipped_tests}; do
+ mv "${T}/test_${test}.py" "${S}"/Lib/test
+ done
+
+ elog "The following tests have been skipped:"
+ for test in ${skipped_tests}; do
+ elog "test_${test}.py"
+ done
+
+ elog "If you would like to run them, you may:"
+ elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
+ elog "and run the tests separately."
+
+ if [[ ${result} -ne 0 ]]; then
+ die "emake test failed"
+ fi
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ emake DESTDIR="${D}" altinstall
+
+ # Remove static library
+ rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
+
+ sed \
+ -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
+ -e "s/\(PY_LDFLAGS=\).*/\1/" \
+ -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
+
+ # Fix collisions between different slots of Python.
+ rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
+
+ # Cheap hack to get version with ABIFLAGS
+ local abiver=$(cd "${ED}/usr/include"; echo python*)
+ if [[ ${abiver} != python${PYVER} ]]; then
+ # Replace python3.X with a symlink to python3.Xm
+ rm "${ED}/usr/bin/python${PYVER}" || die
+ dosym "${abiver}" "/usr/bin/python${PYVER}"
+ # Create python3.X-config symlink
+ dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
+ # Create python-3.5m.pc symlink
+ dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
+ fi
+
+ # python seems to get rebuilt in src_install (bug 569908)
+ # Work around it for now.
+ if has_version dev-libs/libffi[pax-kernel]; then
+ pax-mark E "${ED}/usr/bin/${abiver}"
+ else
+ pax-mark m "${ED}/usr/bin/${abiver}"
+ fi
+
+ use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
+ use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
+
+ use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
+
+ dodoc Misc/{ACKS,HISTORY,NEWS}
+
+ if use examples; then
+ docinto examples
+ find Tools -name __pycache__ -exec rm -fr {} + || die
+ dodoc -r Tools
+ fi
+ insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
+ local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \
+ emake --no-print-directory -s -f - 2>/dev/null)
+ newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py
+
+ newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
+ newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
+ sed \
+ -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
+ -e "s:@PYDOC@:pydoc${PYVER}:" \
+ -i "${ED}/etc/conf.d/pydoc-${PYVER}" \
+ "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
+
+ local -x EPYTHON=python${PYVER}
+ # if not using a cross-compiler, use the fresh binary
+ if ! tc-is-cross-compiler; then
+ local -x PYTHON=./python
+ local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
+ else
+ local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ fi
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py || die
+ python_domodule epython.py
+
+ # python-exec wrapping support
+ local pymajor=${PYVER%.*}
+ local scriptdir=${D}$(python_get_scriptdir)
+ mkdir -p "${scriptdir}" || die
+ # python and pythonX
+ ln -s "../../../bin/${abiver}" \
+ "${scriptdir}/python${pymajor}" || die
+ ln -s "python${pymajor}" "${scriptdir}/python" || die
+ # python-config and pythonX-config
+ # note: we need to create a wrapper rather than symlinking it due
+ # to some random dirname(argv[0]) magic performed by python-config
+ cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
+ #!/bin/sh
+ exec "${abiver}-config" "\${@}"
+ EOF
+ chmod +x "${scriptdir}/python${pymajor}-config" || die
+ ln -s "python${pymajor}-config" \
+ "${scriptdir}/python-config" || die
+ # 2to3, pydoc
+ ln -s "../../../bin/2to3-${PYVER}" \
+ "${scriptdir}/2to3" || die
+ ln -s "../../../bin/pydoc${PYVER}" \
+ "${scriptdir}/pydoc" || die
+ # idle
+ if use tk; then
+ ln -s "../../../bin/idle${PYVER}" \
+ "${scriptdir}/idle" || die
+ fi
+}
diff --git a/dev-lang/python/python-3.9.7.ebuild b/dev-lang/python/python-3.9.7_p1.ebuild
index 27fbaaa34a57..0bd5616552c6 100644
--- a/dev-lang/python/python-3.9.7.ebuild
+++ b/dev-lang/python/python-3.9.7_p1.ebuild
@@ -15,7 +15,7 @@ PATCHSET="python-gentoo-patches-${MY_PV}"
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
HOMEPAGE="https://www.python.org/"
SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz
- https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ https://dev.gentoo.org/~floppym/python/${PATCHSET}.tar.xz
verify-sig? (
https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc
)"
@@ -23,7 +23,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 +ncurses +readline +sqlite +ssl test tk wininst +xml"
RESTRICT="!test? ( test )"
diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest
index 50db3b0b3552..0a3590913a83 100644
--- a/dev-lang/ruby/Manifest
+++ b/dev-lang/ruby/Manifest
@@ -5,12 +5,15 @@ AUX 2.6/010-default-gem-location.patch 688 BLAKE2B 4c2074d69b9fe5258a2fe0e38bb50
AUX 2.7/002-autoconf-2.70.patch 964 BLAKE2B ccddabc1d6d7321a46fa0a0facb85a221b11d05fd21abbdffcd6111117449bfa78d98080f61181720cd1c784320ae1d1de2fdcf6c5996bd0d6932b4d4e029e71 SHA512 0d07e1c74dfa7d620b6eab2a0cc7c8e05211e5a5458d3deab9eed699f3e34ed80ace803f65efb71805be6d67e4aa9150fefb85f2631fbea2003b3e1a5cc44cbe
AUX 2.7/003-did-you-mean.patch 459 BLAKE2B af0f9c8b5a79c80c68163de7c766042ad276910a54dc8dee04a575c8a36af0c93b825c4383ef93c9116c14aaa4e0400619783f9c597650bd8fd23940f1aa3c3a SHA512 c395d8dc5167b055d67b7ffaec8aabe26fae5a75c92e663cb414d19695f74a2bb3ce67693272ffcae407bb5ccf04b8ce799ae6c0498665fbb0274fcc6483baba
AUX 2.7/010-default-gem-location.patch 688 BLAKE2B 4c2074d69b9fe5258a2fe0e38bb501a39f34ad1fa08ef338224edba1f06073138cbe3d831ecdf9910c989a7f0a1c6c6b73ced0d8ff212207a3a3df5f4d90b5de SHA512 65206a6ca42ade0413ae1467f41082f4a93b3166644d2504cff3d280d23da02fd41aea5aca69dd43f6081b436db90a5b1e98725d8fa51519ca302c02ec526ad7
+AUX 2.7/900-musl-coroutine.patch 1190 BLAKE2B ea8f562cbfc3bef5292bff56302b252e2a65b34b513716edc0543c3345188e1fc45d521c01ad2646298f86e501442cafeaf258c61579c1fe203231c9c09e4bee SHA512 747eccdb6529a96188e35cb2e9e4a723f3226bb5250f911b7fa69e003a0a263d3ee6512e70faf281e4e3c69631f71eed645398b69525cbc04b2ce27b9e3436f0
+AUX 2.7/901-musl-stacksize.patch 945 BLAKE2B 7187ee4c73fb4a9ec00b32a02a176863d88437abae60c20955f28baf939aa76daee7d8accfa5b35c8ae857c25b243d57d719e7542a20439b1eb5952b319fa383 SHA512 5db3e96891498aee8f97f0c5ffe0633c6554b8d8a4975fd73f838ebac1ceea248d18aa4262c2b865b7ca15e9d293d482f7323565ed6ae47ed632cb8a044976e6
AUX 3.0/001-socksocket-fix.patch 457 BLAKE2B cf3e15858481cdaa48be2cb3685bed663d9de792c743f6ef07ea5d2be214d630ee9bd70c1b6958110516d69a1889fdc4cf26676e52c55d4d530588b8274f962e SHA512 77381cb3c8d4a87a5ae06966d5dd00a38ea07148ed2feacb883e1d041d85ae0a6d64b30fd213f2ac0b1a07e3722f0e724cd0ec8414e74dc4de8844d849584b00
AUX 3.0/010-default-gem-location.patch 753 BLAKE2B 2e9c209521e113c9b5b66ef305a2f29e042bc9330cc95ca847e04aec7a9450de48904bf583265aceec5984e8384e78a37b16a65435962ffc3ef458019b5ebedf SHA512 af63cd6c2c998533fd518abc6f48d1acb0f185e3bc9c4747301f7c7f3b3780e456f32db0252a0a03306dbc19a63d24c031fcfb7c35d732190fa68763e5817dcd
+AUX 3.0/900-musl-coroutine.patch 842 BLAKE2B 21b58911e2c020ed956a837f006b20f30a123f96a52b19c62093f9d9fabb2f812fc3de8539c67a1b9aa4d106d5b7b2e91729e7aba030ebbdc67b1b3f590bf560 SHA512 ba292e5465c09df675fef34a77bbf4e16ebd807d2e5174d0e3f94be26e0694ea84dc46ee25de2d3b882b906779f0d08a173ee4c708f20b4f7f1032a238d8896c
DIST ruby-2.6.8.tar.xz 11599488 BLAKE2B e5b2949233d8540f72d4d8b9c246f9bd0d1342426d2a1c19cb240b7c86f37299e9dc1dfc98ef2a86d1d91055865b4542d690de5567c71189bf2973a4989fa0fd SHA512 d040ad2238523587d8f356fcb796b8b6ad7f8caff7dd6df09e3f7efcbfa0369e33600e78c7f2bc713ae77c040757cce5c4fec223cb9070209f2bf741899c556d
DIST ruby-2.7.4.tar.xz 12067588 BLAKE2B 2680a7ccd1daf3d156d9519d9132853e68f5f1aad592abce3e73fdd03314a6c28e7d94590153aead86af8952ff51f804ee029f8100b0137919cc27373cb8b9cd SHA512 2cbb70ecfdd69120e789023ddb2b25cab0d03bc33fdc367a8f74ca8a3ee785c18c8ded9de3ecee627c7e275ffb85147e6abf921b6a61e31851b37c7fedf45bf9
DIST ruby-3.0.2.tar.xz 14746080 BLAKE2B 47c5591261fb63b1ec3ca719ea6b0c348937456c3711351c1f5317d1e6a748de197e90c8bd4ff822f7b2d4580ad7ed0b54b9eb7aaa5166ea1a15ab2deae96439 SHA512 0f702e2d8ca1342a9d4284dbdd234a3588e057b92566353aa7c21835cf09a3932864b2acf459a976960a1704e9befa562155d36b98b7cda8bd99526e10a374c4
EBUILD ruby-2.6.8.ebuild 7481 BLAKE2B c37e80c3f6debd1befd5d8b5cfff7ffa547557e94fecfb51c962a7a4ce6052fd047d9f5f143302d5d53887bac0463b65f2649b199625430fd5a49e32c565884a SHA512 b3be72cde078972a1e6dd9969dd7dd085d4fed10d2c7a87128773962955e788cd11868a93f44adb2887a23bffebca3a4155309bb9cb0af55fa2df851f48410c0
-EBUILD ruby-2.7.4.ebuild 7720 BLAKE2B fd322cb2b1e580e2bc64c273f5bd6983b267dec2f3b3cd5a13aef3ef3406936f5a24802f0403afa787a92a803f98a9b17bf2323ae1b9f2357c2c9ee500d001c1 SHA512 3e438dededf89ee6ad6d7e7e9c842714c6f904023ebcd11de25ddf8520170c3057515392640503264d3c7041e19fbdc81a990eb032e09c7f7af28ab80779b832
-EBUILD ruby-3.0.2.ebuild 7684 BLAKE2B 8783bf44e0da28ea94b68b65795d551e88e25628284ae1671074b38843a39d52a908e82ae6ce6e4ad91e7c1ef37d307ded17c153a0cbbc15bae6f92222351b0e SHA512 582bf0a50b4d0f00bfaba643ea2ef79a22c354b8650da1dde2d05e11689d0ac0f8e67b79793451f6a246e8f30be4760188e5f08164169a91a1e1ee90aa62574c
+EBUILD ruby-2.7.4.ebuild 7794 BLAKE2B 56d2afa53101a685e10b4035fbc255dcde9bb43c99aec8a6268f420109bcef1495d690ee86cab704f39ac9faf11f99d95cb31bb022e134bfb8c272c851d2348e SHA512 3363c57844f706a93b397eb23bbda7665465b65b8930bb73cf06e4bb027f588de4cf4df6d5183be8e651e10df5a49625a43a172b7d3496458bbb20a507330048
+EBUILD ruby-3.0.2.ebuild 7803 BLAKE2B 56b59ef10cc36a467f8778a4e2f3115c8647664a2800535c79cffc932b7bb836ba43dbc81d87c20e394f3a276fd2260a1bb0b3db67dce2bb66fb86b7cdfe3d16 SHA512 68066fa039fcdecd83ff94314780e4acc7d1ba3a55f5028b7dea72cc9794f1478086b2e6a2aed03168351324ab5dd8791a1e2f086b5ee424aa531d8dd11142c8
MISC metadata.xml 524 BLAKE2B 78b64ea8e53d1bcfa249561354ef45ca34cdbcf6c4147944e98e6a17d884f5b4b29c0ddb6047bf2883a57f9a53386626bb7a779ef80ddcb33301d0e3822ead6b SHA512 1b254526486eb7d1d132f1286056d55963cb569ab47ccc94d625a9789e4dd3c45b5639510535543d96d2d7a3ccae13535e2e35ba9d78873d75ecac3bedfae762
diff --git a/dev-lang/ruby/files/2.7/900-musl-coroutine.patch b/dev-lang/ruby/files/2.7/900-musl-coroutine.patch
new file mode 100644
index 000000000000..ed47c54e29c7
--- /dev/null
+++ b/dev-lang/ruby/files/2.7/900-musl-coroutine.patch
@@ -0,0 +1,41 @@
+Adapted for Gentoo version 2.7.4
+
+From b570e7de87aaad8c903176d835e8124127f627b3 Mon Sep 17 00:00:00 2001
+From: Andrew Aladjev <aladjev.andrew@gmail.com>
+Date: Sat, 26 Sep 2020 12:58:06 +0300
+Subject: [PATCH] fixed default coroutine selection for musl
+
+---
+ configure.ac | 5 ++++-
+ coroutine/copy/Context.c | 2 ++
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index ab5d532c103b..084f0936c006 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2364,7 +2364,10 @@
+ rb_cv_coroutine=copy
+ ],
+ [*], [
+- rb_cv_coroutine=ucontext
++ AC_CHECK_FUNCS([getcontext swapcontext makecontext],
++ [rb_cv_coroutine=ucontext],
++ [rb_cv_coroutine=copy; break]
++ )
+ ]
+ )
+ AC_MSG_RESULT(${rb_cv_coroutine})
+diff --git a/coroutine/copy/Context.c b/coroutine/copy/Context.c
+index c1b4144e9857..94a7f57f7d89 100644
+--- a/coroutine/copy/Context.c
++++ b/coroutine/copy/Context.c
+@@ -5,6 +5,8 @@
+ * Copyright, 2019, by Samuel Williams.
+ */
+
++#include <sys/types.h>
++
+ #include "Context.h"
+
+ // http://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html
diff --git a/dev-lang/ruby/files/2.7/901-musl-stacksize.patch b/dev-lang/ruby/files/2.7/901-musl-stacksize.patch
new file mode 100644
index 000000000000..e5fcfce2195e
--- /dev/null
+++ b/dev-lang/ruby/files/2.7/901-musl-stacksize.patch
@@ -0,0 +1,26 @@
+musl has a conservative stacksize, as compared to glibc, so treat it
+like other systems with such stacksize
+
+diff --git a/thread_pthread.c b/thread_pthread.c
+index 951885ffa0..e2d662143b 100644
+--- a/thread_pthread.c
++++ b/thread_pthread.c
+@@ -721,7 +721,7 @@ ruby_init_stack(volatile VALUE *addr
+ {
+ native_main_thread.id = pthread_self();
+
+-#if MAINSTACKADDR_AVAILABLE
++#if MAINSTACKADDR_AVAILABLE && !(defined(__linux__) && !defined(__GLIBC__))
+ if (native_main_thread.stack_maxsize) return;
+ {
+ void* stackaddr;
+@@ -1680,7 +1680,7 @@ ruby_stack_overflowed_p(const rb_thread_t *th, const void *addr)
+
+ #ifdef STACKADDR_AVAILABLE
+ if (get_stack(&base, &size) == 0) {
+-# ifdef __APPLE__
++# if defined(__APPLE__) || (defined(__linux__) && !defined(__GLIBC__))
+ if (pthread_equal(th->thread_id, native_main_thread.id)) {
+ struct rlimit rlim;
+ if (getrlimit(RLIMIT_STACK, &rlim) == 0 && rlim.rlim_cur > size) {
+
diff --git a/dev-lang/ruby/files/3.0/900-musl-coroutine.patch b/dev-lang/ruby/files/3.0/900-musl-coroutine.patch
new file mode 100644
index 000000000000..a323cdd6e770
--- /dev/null
+++ b/dev-lang/ruby/files/3.0/900-musl-coroutine.patch
@@ -0,0 +1,28 @@
+Adapted for Gentoo version 3.0.2
+
+From b570e7de87aaad8c903176d835e8124127f627b3 Mon Sep 17 00:00:00 2001
+From: Andrew Aladjev <aladjev.andrew@gmail.com>
+Date: Sat, 26 Sep 2020 12:58:06 +0300
+Subject: [PATCH] fixed default coroutine selection for musl
+
+---
+ configure.ac | 5 ++++-
+ coroutine/copy/Context.c | 2 ++
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index ab5d532c103b..084f0936c006 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2364,7 +2364,10 @@
+ rb_cv_coroutine=copy
+ ],
+ [
+- rb_cv_coroutine=ucontext
++ AC_CHECK_FUNCS([getcontext swapcontext makecontext],
++ [rb_cv_coroutine=ucontext],
++ [rb_cv_coroutine=copy; break]
++ )
+ ]
+ )
+ AC_MSG_RESULT(${rb_cv_coroutine})
diff --git a/dev-lang/ruby/ruby-2.7.4.ebuild b/dev-lang/ruby/ruby-2.7.4.ebuild
index c067a680a09b..91fa086e55cc 100644
--- a/dev-lang/ruby/ruby-2.7.4.ebuild
+++ b/dev-lang/ruby/ruby-2.7.4.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
LICENSE="|| ( Ruby-BSD BSD-2 )"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~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 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit +rdoc rubytests socks5 +ssl static-libs systemtap tk xemacs"
RDEPEND="
@@ -65,6 +65,10 @@ PDEPEND="
src_prepare() {
eapply "${FILESDIR}"/2.7/{003,010}*.patch
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/2.7/{900,901}-musl-*.patch
+ fi
+
# Reset time on patched gem_prelude.rb to avoid the need for a base
# ruby during bootstrapping, bug 787137
touch -t 202001010000 gem_prelude.rb || die
diff --git a/dev-lang/ruby/ruby-3.0.2.ebuild b/dev-lang/ruby/ruby-3.0.2.ebuild
index baa8d04f1336..ae8a7216c6d8 100644
--- a/dev-lang/ruby/ruby-3.0.2.ebuild
+++ b/dev-lang/ruby/ruby-3.0.2.ebuild
@@ -67,6 +67,11 @@ PDEPEND="
src_prepare() {
eapply "${FILESDIR}"/"${SLOT}"/010*.patch
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/3.0/900-musl-*.patch
+ eapply "${FILESDIR}"/2.7/901-musl-*.patch
+ fi
+
einfo "Unbundling gems..."
cd "$S"
# Remove bundled gems that we will install via PDEPEND, bug
diff --git a/dev-lang/swi-prolog/Manifest b/dev-lang/swi-prolog/Manifest
index b3bf1cc599e3..8b76129c8c07 100644
--- a/dev-lang/swi-prolog/Manifest
+++ b/dev-lang/swi-prolog/Manifest
@@ -8,7 +8,9 @@ DIST swipl-8.3.28.tar.gz 11350778 BLAKE2B d90a939c27a8b9e57ebf52f5e7cd1b2f9f5f07
DIST swipl-8.3.29.tar.gz 11362591 BLAKE2B bc541be585d81f04aac82e6ffdef51e816d4ec18f0b517e581f0a8edc89966958d07fe5f3ef11120e17bb5823e3fd26a37fd072895f5dc63be4d4021e109d063 SHA512 2845246b3e8d14b1050cb55685f22ad3be9818ad4e5915e223a55c85bcb51f2dfe8338beceae27a2ed92aa8b2fae209220a4e06deb6e629cc3bbf6019788f917
EBUILD swi-prolog-8.2.3-r2.ebuild 2661 BLAKE2B 34a523f318cf39453bb07e8f484958585180f77b5cec51ccbc5f1cc5f26016dfa01793e1cc98ddd26dea30e33bdfb8ee14380a7465080fcc4f2b9edefc9675e3 SHA512 554e2e2c587fd0b7de160f8789ecfa8459149c2fca221fb7c8df9bb789b91247ae22eade75fc52b614eba2548db2314a013676c4c0bc7883a2166db0e8028ca8
EBUILD swi-prolog-8.2.4-r2.ebuild 2854 BLAKE2B 61ed52d692815431f8965aaccb426dab4af427794b7fcc8b9882d16c535386d834b3433a5e0694a9848d41f28f8e56dd27ba1b54da1341b32c141e008c479736 SHA512 a13d74f6e0e69f7a219fb03e18f7de143e52a7e9ed5fdbac8da6dc0e1058802b70491ecf6a81b335377421ac6ecee1cf6aa035579b659d12c5d4ce37e0ec8624
+EBUILD swi-prolog-8.2.4-r3.ebuild 3179 BLAKE2B b7915971a67b22780cdc5d9e7049625da526b3406a2d016037de5387715a0a115fb9518a355d7484eca462246e2c4bccd3eeef6a4c26b9ca550e156ed887e466 SHA512 ce973ad56f63d7d25845f6bc7608ea9a54fb972453f4c62ccdb2c5715a680e752d4a5038ba24dd1c28bc86c31629b4541decb3e1078d23665a9eb87eb3001f4e
EBUILD swi-prolog-8.3.27.ebuild 2853 BLAKE2B ac2ef59af6d586e10fb5891e7f2869c9792d0e5007d74cfa56b703a6c7ed0574f0698d3d1f683778fba1285c1014e6bf114fa7b5792fcfedd1b272e13c167335 SHA512 838263f5c7767e6c06abca9824edd02db7554daeac9b2146bea2e76e11489eef56c7df5d314b20e4625b715a3f38167a32e058771441cba08527e475759761e8
EBUILD swi-prolog-8.3.28.ebuild 2949 BLAKE2B 5a9bf0e0c1516d27c82548a964c983071bd5d27b21a441917fec53ac9b1123ddca9fd58533d141ccea50e88119a5b76d88dad976b7312f5c254b78df65df5424 SHA512 d4781009075e399ef507c38273c250aa5761cd965ac57f2d4d62567f023b90fa9113f7c104224a4cf8836b2c6cb48a4d99ee8f3df0dd9bb00c9794d1595088de
+EBUILD swi-prolog-8.3.29-r1.ebuild 3275 BLAKE2B 0d60e625d01ab4e08de0d9f09e8632e2c0604fbd4115bc85df6d051c2491d6db235b24ae40c7bb76b414d465e812ce46333bd4d5a98c17ee7669b8263e1dee7d SHA512 d992c634c53d3b29c05fdde8202227fba26551850c63e806335cec2d88a2324804f784ae9bb36de6b54d7e87987af2f3a0178c4a15be22a247f93ef1daf4f8df
EBUILD swi-prolog-8.3.29.ebuild 2950 BLAKE2B 2937554a047b19bc912ae4db649e200fa12f1d3a8b20e4376649c29716dd05ee1cba2db70cfb7531971eecca6feedee6b86babdd36ff60c6f861854bb44e76aa SHA512 08b361f5b98524e1cf74d4becb556269b7e9d2b39b1508dc1d6bbd6adfb4ca4ca87803ba828b178d7ea6ebd6567ebe8f1fb219db5a9f2ed368a50f66a05dfda4
MISC metadata.xml 420 BLAKE2B 9818164553dd7e47db556eebaa71cabc54621317465c3ef09a0fae22259c9d20bede548a61ffa383e9df8eaf6efa6b5ac800d49b1ee5cae3691d0112ed4a2a30 SHA512 6ce90a29c77852e822d5c35c4a1b0b4a093cb90070656b06b09337c57f00fb6ff42ae3c8178a22bee17ffcec8f40ea4ed6c9d0cecf4afe74e01b3389479fa4ff
diff --git a/dev-lang/swi-prolog/swi-prolog-8.2.4-r3.ebuild b/dev-lang/swi-prolog/swi-prolog-8.2.4-r3.ebuild
new file mode 100644
index 000000000000..2b6f4bef271d
--- /dev/null
+++ b/dev-lang/swi-prolog/swi-prolog-8.2.4-r3.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake desktop xdg-utils flag-o-matic
+
+PATCHSET_VER="0"
+
+DESCRIPTION="Versatile implementation of the Prolog programming language"
+HOMEPAGE="https://www.swi-prolog.org/"
+SRC_URI="https://www.swi-prolog.org/download/stable/src/swipl-${PV}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="archive berkdb debug doc +gmp java +libedit minimal odbc pcre qt5 readline ssl test uuid X yaml"
+RESTRICT="!test? ( test )"
+
+RDEPEND="sys-libs/ncurses:=
+ sys-libs/zlib
+ virtual/libcrypt:=
+ archive? ( app-arch/libarchive:= )
+ berkdb? ( >=sys-libs/db-4:= )
+ odbc? ( dev-db/unixODBC )
+ pcre? ( dev-libs/libpcre )
+ readline? ( sys-libs/readline:= )
+ libedit? ( dev-libs/libedit )
+ gmp? ( dev-libs/gmp:0= )
+ ssl? ( dev-libs/openssl:0= )
+ java? ( >=virtual/jdk-1.8:* )
+ uuid? ( dev-libs/ossp-uuid )
+ qt5? (
+ dev-qt/qtwidgets:5
+ dev-qt/qtgui:5
+ )
+ X? (
+ virtual/jpeg:0
+ x11-libs/libX11
+ x11-libs/libXft
+ x11-libs/libXinerama
+ x11-libs/libXpm
+ x11-libs/libXt
+ x11-libs/libICE
+ x11-libs/libSM )
+ yaml? ( dev-libs/libyaml )"
+
+DEPEND="${RDEPEND}
+ X? ( x11-base/xorg-proto )
+ java? ( test? ( =dev-java/junit-3.8* ) )"
+
+S="${WORKDIR}/swipl-${PV}"
+
+src_prepare() {
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+
+ sed -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" \
+ -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" \
+ -i CMakeLists.txt || die
+
+ local ncurses_lib_flags=$(pkg-config --libs ncurses)
+ sed -i "/project(SWI-Prolog)/a set(CMAKE_REQUIRED_LIBRARIES \${CMAKE_REQUIRED_LIBRARIES} ${ncurses_lib_flags})" CMakeLists.txt || die
+ sed -i "/project(SWI-Prolog)/a set(CMAKE_EXE_LINKER_FLAGS \"${ncurses_lib_flags} \${CMAKE_EXE_LINKER_FLAGS}\")" CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+ use debug && append-flags -DO_DEBUG
+
+ local mycmakeargs=(
+ -DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
+ -DUSE_GMP=$(usex gmp)
+ -DINSTALL_DOCUMENTATION=$(use doc && usex archive)
+ -DSWIPL_PACKAGES_BASIC=$(usex !minimal)
+ -DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
+ -DSWIPL_PACKAGES_ODBC=$(usex odbc)
+ -DSWIPL_PACKAGES_BDB=$(usex berkdb)
+ -DSWIPL_PACKAGES_PCRE=$(usex pcre)
+ -DSWIPL_PACKAGES_YAML=$(usex yaml)
+ -DSWIPL_PACKAGES_SSL=$(usex ssl)
+ -DSWIPL_PACKAGES_JAVA=$(usex java)
+ -DSWIPL_PACKAGES_QT=$(usex qt5)
+ -DSWIPL_PACKAGES_X=$(usex X)
+ -DSWIPL_PACKAGES_TERM=$(if use libedit || use readline; then echo yes; else echo no; fi)
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ XDG_CONFIG_DIRS="${HOME}" \
+ XDG_DATA_DIRS="${HOME}" \
+ cmake_src_compile
+}
+
+src_test() {
+ USE_PUBLIC_NETWORK_TESTS=false \
+ USE_ODBC_TESTS=false \
+ cmake_src_test -V
+}
+
+src_install() {
+ cmake_src_install
+
+ if use qt5; then
+ doicon "${S}"/snap/gui/swipl.png
+ make_desktop_entry swipl-win "SWI-Prolog" swipl "Development"
+ fi
+}
+
+pkg_postinst() {
+ if use qt5; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ fi
+}
+
+pkg_postrm() {
+ if use qt5; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ fi
+}
diff --git a/dev-lang/swi-prolog/swi-prolog-8.3.29-r1.ebuild b/dev-lang/swi-prolog/swi-prolog-8.3.29-r1.ebuild
new file mode 100644
index 000000000000..a2ca0d2e06bb
--- /dev/null
+++ b/dev-lang/swi-prolog/swi-prolog-8.3.29-r1.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake desktop xdg-utils flag-o-matic
+
+PATCHSET_VER="0"
+
+DESCRIPTION="Versatile implementation of the Prolog programming language"
+HOMEPAGE="https://www.swi-prolog.org/"
+SRC_URI="https://www.swi-prolog.org/download/devel/src/swipl-${PV}.tar.gz
+ https://dev.gentoo.org/~keri/distfiles/swi-prolog/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="archive berkdb debug doc +gmp java +libedit minimal odbc pcre qt5 readline ssl test +uuid X yaml"
+RESTRICT="!test? ( test )"
+
+RDEPEND="sys-libs/ncurses:=
+ sys-libs/zlib
+ virtual/libcrypt:=
+ archive? ( app-arch/libarchive:= )
+ berkdb? ( >=sys-libs/db-4:= )
+ odbc? ( dev-db/unixODBC )
+ pcre? ( dev-libs/libpcre )
+ readline? ( sys-libs/readline:= )
+ libedit? ( dev-libs/libedit )
+ gmp? ( dev-libs/gmp:0= )
+ ssl? ( dev-libs/openssl:0= )
+ java? ( >=virtual/jdk-1.8:* )
+ uuid? ( dev-libs/ossp-uuid )
+ qt5? (
+ dev-qt/qtwidgets:5
+ dev-qt/qtgui:5
+ )
+ X? (
+ virtual/jpeg:0
+ x11-libs/libX11
+ x11-libs/libXft
+ x11-libs/libXinerama
+ x11-libs/libXpm
+ x11-libs/libXt
+ x11-libs/libICE
+ x11-libs/libSM )
+ yaml? ( dev-libs/libyaml )"
+
+DEPEND="${RDEPEND}
+ X? ( x11-base/xorg-proto )
+ java? ( test? ( =dev-java/junit-3.8* ) )"
+
+S="${WORKDIR}/swipl-${PV}"
+
+src_prepare() {
+ if [[ -d "${WORKDIR}"/${PV} ]] ; then
+ eapply "${WORKDIR}"/${PV}
+ fi
+
+ sed -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" \
+ -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" \
+ -i CMakeLists.txt || die
+
+ local ncurses_lib_flags=$(pkg-config --libs ncurses)
+ sed -i "/project(SWI-Prolog)/a set(CMAKE_REQUIRED_LIBRARIES \${CMAKE_REQUIRED_LIBRARIES} ${ncurses_lib_flags})" CMakeLists.txt || die
+ sed -i "/project(SWI-Prolog)/a set(CMAKE_EXE_LINKER_FLAGS \"${ncurses_lib_flags} \${CMAKE_EXE_LINKER_FLAGS}\")" CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+ use debug && append-flags -DO_DEBUG
+
+ local mycmakeargs=(
+ -DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
+ -DUSE_GMP=$(usex gmp)
+ -DINSTALL_DOCUMENTATION=$(use doc && usex archive)
+ -DSWIPL_PACKAGES_BASIC=$(usex !minimal)
+ -DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
+ -DSWIPL_PACKAGES_ODBC=$(usex odbc)
+ -DSWIPL_PACKAGES_BDB=$(usex berkdb)
+ -DSWIPL_PACKAGES_PCRE=$(usex pcre)
+ -DSWIPL_PACKAGES_YAML=$(usex yaml)
+ -DSWIPL_PACKAGES_SSL=$(usex ssl)
+ -DSWIPL_PACKAGES_JAVA=$(usex java)
+ -DSWIPL_PACKAGES_QT=$(usex qt5)
+ -DSWIPL_PACKAGES_X=$(usex X)
+ -DSWIPL_PACKAGES_TERM=$(if use libedit || use readline; then echo yes; else echo no; fi)
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ XDG_CONFIG_DIRS="${HOME}" \
+ XDG_DATA_DIRS="${HOME}" \
+ cmake_src_compile
+}
+
+src_test() {
+ USE_PUBLIC_NETWORK_TESTS=false \
+ USE_ODBC_TESTS=false \
+ cmake_src_test -V
+}
+
+src_install() {
+ cmake_src_install
+
+ if use qt5; then
+ doicon "${S}"/snap/gui/swipl.png
+ make_desktop_entry swipl-win "SWI-Prolog" swipl "Development"
+ fi
+}
+
+pkg_postinst() {
+ if use qt5; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ fi
+}
+
+pkg_postrm() {
+ if use qt5; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ fi
+}