diff options
author | V3n3RiX <venerix@koprulu.sector> | 2021-10-20 10:22:14 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2021-10-20 10:22:14 +0100 |
commit | 46eedbedafdb0040c37884982d4c775ce277fb7b (patch) | |
tree | db33a91259730be84999e13a8d8168c799f50ac0 /dev-lang | |
parent | e23a08d0c97a0cc415aaa165da840b056f93c997 (diff) |
gentoo resync : 20.10.2021
Diffstat (limited to 'dev-lang')
47 files changed, 1275 insertions, 2216 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz Binary files differindex 73fa4f481b34..24032b65fcbc 100644 --- a/dev-lang/Manifest.gz +++ b/dev-lang/Manifest.gz 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 +} |