diff options
Diffstat (limited to 'dev-lang')
55 files changed, 4331 insertions, 1523 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz Binary files differindex c52b1f8e216c..49d57556b2e4 100644 --- a/dev-lang/Manifest.gz +++ b/dev-lang/Manifest.gz diff --git a/dev-lang/clojure/Manifest b/dev-lang/clojure/Manifest index a8a170d5f9b1..ff4edad6d761 100644 --- a/dev-lang/clojure/Manifest +++ b/dev-lang/clojure/Manifest @@ -1,12 +1,17 @@ AUX add-compile-spec-ant-build-target.patch 1813 BLAKE2B 5a24f1457e298429bee3fe31deca54df3801665ed57a91c9ee760003418a34a3d5f59cfe432eedfb8a247e8b9c12dce701253dd9fc747b3bf1c84f10d8bc9ec5 SHA512 da5e5a61faa8c17244073dcfa0de40c9aec1ce698df60aa1b8ba89d5aa187e9974edd400fee711120c0181b152e461db8669a85f5b83ff037023c3f05a81f21b DIST clojure-1.10.3.tar.gz 683020 BLAKE2B ea57231375589d5c45b7e8a1fe87ea3f371e631733d5ae27d547e84a575cd7a54394fa401c920a7ec5e7218719f2ecd728a77e1d3e05c803f0620fcfeabd4199 SHA512 540c4c730a9f504f4e8a33e957fb150a70c3f1afa8e10205d23bb3c0528a46ca615b3a95dbedf367d4d0965d8eabc69b2d7f3bc144be9b4cb64fba085bfc6d9d +DIST clojure-1.11.1.tar.gz 705082 BLAKE2B 5f22fcb04cbb2aad8b90ceb93f620cef1a8704768663023db2a817efbe294dc232d60bd077fc748daec512f80f8425c0df5a417a40b279e3d65165948f615bb1 SHA512 b4e05f61e5a68b5dc8215b2158a32af891ee1e855240bc753bd1d5d28b6864f2e1c5ef45ad53a7f5fa5565fc19ff957939b7130ad44b432ad8ea95e459aa26e1 DIST core.specs.alpha-0.2.56.tar.gz 11780 BLAKE2B 088d0b32dea7ec49ddaf0f461703762a5a877ff4028b775eb35998e6a5a3436ad57b35d7d9431b6911ca2304403e95043d375bac80080ecaf6144a77b3ebcf4c SHA512 afbfc04b9708a21ae6c6b29b8653fc62b23efcb271b973534c4b8421a7d73df3ad24bd28d7115a2fe926954dc45571de86971637736f3a494799f6f1ba1765c8 +DIST core.specs.alpha-0.2.62.tar.gz 11799 BLAKE2B 2e28043cdd9f3b71a9eabd30ec39ba88ccdb8f9af6b442bcf58d1da6fef73132e9f591865302d9cff43dd6aeca0200768e63993000ffc3c840b5c07bb823f20e SHA512 0707ef3f669d2eaf1595d1e333a9b1e62d97fcbe4cf7ed70c968a4ade3da7e06c281e8e075f953887346288d190bb1dfa7866d9a8d623662e6f844528eb1a45c DIST data.generators-1.0.0.tar.gz 9940 BLAKE2B 981ac8f91ae05aecc7a9e7c85cbd59c5a50785bdc969309465374393234fd0a72d9803931acebbbbf369e812de33f0ac0c2ddc3009f8bb4237debd9e665301f3 SHA512 a8d5881c401b409e7e4192243e62288855b435d5979fd7950fcd3ee5291d16ce4aad913ea1dadf26db8a1297a21cab19e1e1e5d31e26db57a6fa4ed17bcefe0b DIST java.classpath-1.0.0.tar.gz 8955 BLAKE2B 1ab2d077d9f852ee72a1576b71d6aa8764f2fdb04eeed3f7710a7deb65942df8c0b1caff5847e329c191316c7218877b8b136b9dcefdb8f450f383beed5805ba SHA512 552f31f1f27fd80f262bbec4777626951bccef6689f4586fc327c3490669d25591c1a87907b15709dcb8d69f47ce33341d219694877b44481859b79fb38737fa DIST spec.alpha-0.2.194.tar.gz 39101 BLAKE2B 86de07fd83495b72d3b7d85b803ee9ecafba9a72d8541b5c62f22ad32d4e16b0c7be758ea8d30b743eba6fe994e09898e2f59b2b720913e7e1ab3732b496423f SHA512 3170883c1d62acf9af1435a5ca1ced34a318c53d1cd443d58a74afdcae4888553b9dba91fb81ccea8824c3a0c2396a0efbfaeb8ab408d8bbcf1aea0d3da9c82e +DIST spec.alpha-0.3.218.tar.gz 41399 BLAKE2B e6d20afb42d26096077db5ea0346a3f1bd261f9b0ec71c2bc6f70849352ea38e2eb0d7c6e2124af4342b1b4f25966568d3054fa7447fbb1285eb539beab6a19b SHA512 bf89cb38777cd413804d7211519a62ee8b4dc80b93987cc4ecccb8065fb4c43b876e713c99a966663e6ec0ebd2dc3d35a567d43a38e8f73b80643b2653e3781c DIST test.check-1.1.0.tar.gz 85177 BLAKE2B bb7690f276d6503a98befd4542899891d6388a24bd8ed739f20f69742cc274f3b8bf0ab7196eb3de787ff3efd3803f40d695129e1fc897b84bc4176ecb672be7 SHA512 7e896df721476b090f26c8ee417e30b59bc66708904cd30c3c663894f16e2ff3a0622f806ae4495fc6001d50e997b563ee955cc464547fecbbe6147b2b61ab17 +DIST test.check-1.1.1.tar.gz 85399 BLAKE2B 752f0f0149dd5720dcabdcc65173906b124a85590f6b3cda41d3384a05e5b54c10b4cd399ba26ff466d637ea87e0fd81dc2a4943179818ba3d4fccdee977922d SHA512 e62ac00e302efbf4bb0c70721cd0b4438b2d302855146a052bfde492b0f36506fbd44c10c3e5c88a0eeb9b548eac40247f77d8ac590f758176e1d8f54270e196 DIST test.generative-1.0.0.tar.gz 140414 BLAKE2B 8895fd2e86fe3ac54c826af10f914e43e3dcb0233e799102c6ec2024fb77fe8a47dfed1753a432ef4353ebbe0f790334f30a0b6d42195e869ecadb21d545578a SHA512 28aeed3dde40b1e02ee41219b698083e5ec7c63df0c779d1db75e07e5000faf0cd1415fe7418e241ebbea6979606db72696fb0090c4204d22ec1aea689b2ac34 DIST tools.namespace-1.1.0.tar.gz 36182 BLAKE2B e93ef1151f3c1d4bdbda881712c008c50a4e40e2787c9de2708d918009bcbeaf2db143770fbe8d6d251688b1b1bb50d75a8fca1a684badae1634aa8f23b08c3c SHA512 9cdac4dc90192b621cfadb901bb9b2befb9684a6431e87938b6993b879bac2d9c946cdc0ec29226503b7c2406ef2db9be7d49a2398bcf27520d422b0dbfd0185 DIST tools.reader-1.3.4.tar.gz 62300 BLAKE2B f8257166e62963f468987b6c926edfce852cfddc7b641e3af25aeee919f8b03f9e82c91bcd65f6b3110d3b042bb8b2d063468b7707db5965eb044546619ef711 SHA512 329e4afb9aa77231fe2d583ed6ac11089c2f7a9600db02109ad205bfdacb747a8af3af28202e545a4ffd71a77b4a04aab2a35a0e3a12f88085ef705060a15a74 EBUILD clojure-1.10.3.ebuild 3367 BLAKE2B 870d7f0f0cb740a7aca355e1de28cdbf240268152e46895ce29a820ffcea5f394145cfdbd443c64f2a398df9ec06d1dc8d4379270b6c00ded0cffc147bf4feef SHA512 4dd7f9d30502e08c52d67da1238289211dbf3acb133cd00ec9e671f7bae422432856af942ece49ebeb7691d943ad30165be23ec72cbc70edf263eee47462ddb4 -MISC metadata.xml 253 BLAKE2B 1126e8f26ba92163f0b2e6178f0b5182bf63ce8a59e9295451b53fb7bec30f6fbd2c76f5c43784135f9473ef90ebf14e2cb1a0eb7bf3be7bf6c7504afe37a7f1 SHA512 1e543566fe29a09f6d2d889c60087b2cfb9f2eb2c9dfa3e171bda88ec8be5c1ae9d65d4a0b26c5fb79c41718dda032a10cddd5b58e5f0cc9cc6a495edb01ef19 +EBUILD clojure-1.11.1.ebuild 3303 BLAKE2B e87a5f0e9c1eae33ff673064471c4bbfc7e8f167d29e73500deb5cf6b3279e6028268a79c68bf196a5e09e8201743a11ed7f8241b4e9e6425be5c2460cea2017 SHA512 dbac3b78630a946f6a1e8f0aacce5e502cf63ee6e732c06a5a70498c67e56b5b7d66e0c2d1bf6a5904b888e23f3cc24e85052f712de70aed73dfc0055b5c0940 +MISC metadata.xml 335 BLAKE2B 9d5549eaaf88d24a1023d47406828fe19bb004dd23a8d53180d2f7cc3368b55105a3940051229a04f5a0071ef51591ec905c4fd1e527fc82b35f5f7920004267 SHA512 5d9f342b3e530281c617e5ffbc68ad085d6171148ff48c6842c5053cd35be57a244014b4b917610b833cbfa3d960f3e667aa6601d7e5cb29f05bd2030cc39200 diff --git a/dev-lang/clojure/clojure-1.11.1.ebuild b/dev-lang/clojure/clojure-1.11.1.ebuild new file mode 100644 index 000000000000..4c0743a66ead --- /dev/null +++ b/dev-lang/clojure/clojure-1.11.1.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +JAVA_PKG_IUSE="test" + +inherit java-pkg-2 java-ant-2 + +SPEC_ALPHA_VER=0.3.218 +CORE_SPECS_ALPHA_VER=0.2.62 + +TOOLS_NAMESPACE_VER=1.1.0 +JAVA_CLASSPATH_VER=1.0.0 +TOOLS_READER_VER=1.3.4 +TEST_GENERATIVE_VER=1.0.0 +DATA_GENERATORS_VER=1.0.0 +TEST_CHECK_VER=1.1.1 + +DESCRIPTION="General-purpose programming language with an emphasis on functional programming" +HOMEPAGE="https://clojure.org/" +SRC_URI=" + https://github.com/${PN}/${PN}/archive/${P}.tar.gz + https://github.com/clojure/spec.alpha/archive/v${SPEC_ALPHA_VER}.tar.gz -> spec.alpha-${SPEC_ALPHA_VER}.tar.gz + https://github.com/clojure/core.specs.alpha/archive/v${CORE_SPECS_ALPHA_VER}.tar.gz -> core.specs.alpha-${CORE_SPECS_ALPHA_VER}.tar.gz + test? ( + https://github.com/clojure/tools.namespace/archive/tools.namespace-${TOOLS_NAMESPACE_VER}.tar.gz + https://github.com/clojure/java.classpath/archive/java.classpath-${JAVA_CLASSPATH_VER}.tar.gz + https://github.com/clojure/tools.reader/archive/tools.reader-${TOOLS_READER_VER}.tar.gz + https://github.com/clojure/test.generative/archive/test.generative-${TEST_GENERATIVE_VER}.tar.gz + https://github.com/clojure/data.generators/archive/data.generators-${DATA_GENERATORS_VER}.tar.gz + https://github.com/clojure/test.check/archive/v${TEST_CHECK_VER}.tar.gz -> test.check-${TEST_CHECK_VER}.tar.gz + ) +" + +LICENSE="EPL-1.0 Apache-2.0 BSD" +SLOT="$(ver_cut 1-2)" + +KEYWORDS="~amd64 ~x86 ~x86-linux" + +PATCHES=( "${FILESDIR}"/add-compile-spec-ant-build-target.patch ) + +RESTRICT="!test? ( test )" + +RDEPEND=">=virtual/jre-1.8" +DEPEND=">=virtual/jdk-1.8" + +S="${WORKDIR}"/${PN}-${P} + +DOCS=( changes.md CONTRIBUTING.md readme.txt ) + +src_prepare() { + default + java-utils-2_src_prepare + + ln -rs \ + ../spec.alpha-${SPEC_ALPHA_VER}/src/main/clojure/clojure/spec \ + src/clj/clojure/spec || die "Could not create symbolic link for spec-alpha" + ln -rs \ + ../core.specs.alpha-${CORE_SPECS_ALPHA_VER}/src/main/clojure/clojure/core/specs \ + src/clj/clojure/core/specs || die "Could not create symbolic link for core-specs-alpha" +} + +src_compile() { + eant -f build.xml jar +} + +src_test() { + ln -rs \ + ../tools.namespace-tools.namespace-${TOOLS_NAMESPACE_VER}/src/main/clojure/clojure/tools \ + src/clj/clojure/tools || die "Could not create symbolic link for tools-namespace" + mv \ + ../java.classpath-java.classpath-${JAVA_CLASSPATH_VER}/src/main/clojure/clojure/java/* \ + src/clj/clojure/java || die "Could not move java-classpath" + mv \ + ../tools.reader-tools.reader-${TOOLS_READER_VER}/src/main/clojure/clojure/tools/* \ + src/clj/clojure/tools || die "Could not move tools-reader" + mv \ + ../test.generative-test.generative-${TEST_GENERATIVE_VER}/src/main/clojure/clojure/test/* \ + src/clj/clojure/test || die "Could not move test-generative" + ln -rs \ + ../data.generators-data.generators-${DATA_GENERATORS_VER}/src/main/clojure/clojure/data/ \ + src/clj/clojure/data || die "Could not create symbolic link for data-generators" + mv \ + ../test.check-${TEST_CHECK_VER}/src/main/clojure/clojure/test/* \ + src/clj/clojure/test || die "Could not move test-check" + + eant -f build.xml test +} + +src_install() { + java-pkg_newjar "${PN}.jar" + java-pkg_dolauncher ${PN}-${SLOT} --main clojure.main + + einstalldocs +} diff --git a/dev-lang/clojure/metadata.xml b/dev-lang/clojure/metadata.xml index 14198b53b66a..c8dc47d3cf3a 100644 --- a/dev-lang/clojure/metadata.xml +++ b/dev-lang/clojure/metadata.xml @@ -1,7 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> + <pkgmetadata> - <!-- maintainer-needed --> + <maintainer type="person"> + <email>xgqt@gentoo.org</email> + <name>Maciej Barć</name> + </maintainer> <upstream> <remote-id type="github">clojure/clojure</remote-id> </upstream> diff --git a/dev-lang/dafny-bin/Manifest b/dev-lang/dafny-bin/Manifest new file mode 100644 index 000000000000..c2184c969422 --- /dev/null +++ b/dev-lang/dafny-bin/Manifest @@ -0,0 +1,3 @@ +DIST dafny-3.7.1-x64-ubuntu-16.04.zip 76008449 BLAKE2B 5685dcc04e750960fa9bed536d6fae8f70979be899349eaab54bb7045a6e6a9849988be10db3ad33c9096a8d91d17f7b055e50507f736a169aa4fdcb6654b8f6 SHA512 689f3a125e336806c7fe15a8e0cc95e3242f99b719bfae57715313699880c21b13cf2eddfe4163e40da8de20f81c7148dce132dbc511b7a5c2320c1e96d2040a +EBUILD dafny-bin-3.7.1-r2.ebuild 1166 BLAKE2B 066750b3d98c2d45365ac4fac90d43f823136a5df64fc81c6f035fe8a332ed15c1af46af5b52fd3f711377fb4204879c036fd4e7b3d5dbaca7072e8d1be9cd75 SHA512 17ec7f94bbc31b704fbd8707321e35ef2ae0dbf6f20137fab34f4c6dce5fc7c34bcde0022f4ed053c2257992ff7b6402c10f1954dccbcb1656a9c96b01e5c695 +MISC metadata.xml 1814 BLAKE2B cf1e080cccf3392a44bbf4b94350cf2d83b4704120c193421e5b0952e36bd07d5d2079968c8fc39b4cfc78daf2fb6aa8e58e71b92d4cf1abe3a7cf4297edb750 SHA512 dfd3eb544a7e76ae7d40a993559291348c3ecb58d433f90b44cb67743879e2ca1f7bb249135e39a98b6c41dd32f439c165a4ad0e6a3bd7572f5786b346df70bb diff --git a/dev-lang/dafny-bin/dafny-bin-3.7.1-r2.ebuild b/dev-lang/dafny-bin/dafny-bin-3.7.1-r2.ebuild new file mode 100644 index 000000000000..8601d4b64977 --- /dev/null +++ b/dev-lang/dafny-bin/dafny-bin-3.7.1-r2.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Verification-aware programming language" +HOMEPAGE="https://dafny.org/" +SRC_URI="https://github.com/dafny-lang/dafny/releases/download/v${PV}/dafny-${PV}-x64-ubuntu-16.04.zip" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="-* ~amd64" # Binaries are compiled only for x86_64. +REQUIRED_USE="elibc_glibc" + +RDEPEND=" + dev-libs/userspace-rcu + dev-util/lttng-ust + sci-mathematics/z3 +" +BDEPEND="app-arch/unzip" + +S="${WORKDIR}"/dafny +QA_PREBUILT="*" + +src_prepare() { + default + + # Remove bundled z3. + # NOTICE: New versions do not need the bundled one but older versions + # hardcoded the path relative to "dafny" binary. + # While bumping make sure to verify that system's "z3" is used. + rm -r z3 || die +} + +src_install() { + local dest=/opt/dafny + + insinto ${dest} + # Maybe too general, but this installation mode matched how it arrives. + insopts -m0755 + doins "${S}"/* + + local bin + for bin in DafnyServer dafny ; do + dosym ../../${dest}/${bin} /usr/bin/${bin} + done + + # Make "dafny-server" clients happy. + dosym ../../${dest}/DafnyServer /usr/bin/dafny-server +} diff --git a/dev-lang/dafny-bin/metadata.xml b/dev-lang/dafny-bin/metadata.xml new file mode 100644 index 000000000000..f0b8fd07b684 --- /dev/null +++ b/dev-lang/dafny-bin/metadata.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> + +<pkgmetadata> + <maintainer type="person"> + <email>xgqt@gentoo.org</email> + <name>Maciej Barć</name> + </maintainer> + <longdescription> + Dafny is a verification-ready programming language. As you type in your + program, Dafny's verifier constantly looks over your shoulder, flags any + errors, shows you counterexamples, and congratulates you when your code + matches your specifications. When you're done, Dafny can compile your code + to C#, Java, JavaScript or Go (more to come!), so it can integrate with + your existing workflow. Dafny will give you assurance that your code meets + the specifications you write, while letting you write both code and + specifications in the Dafny programming language itself. Since verification + is an integral part of development, it will thus reduce the risk of costly + late-stage bugs that are typically missed by testing. Dafny has support for + common programming concepts such as classes and trait inheritance, + inductive datatypes that can have methods and are suitable for pattern + matching, lazily unbounded datatypes, subset types e.g. for bounded + integers, lambdas, and immutable and mutable data structures. Dafny also + offers an extensive toolbox for mathematical proofs, such as unbounded and + bounded quantifiers, calculational proofs, pre- and post-conditions, + termination conditions, loop invariants, and read/write specifications. + </longdescription> + <upstream> + <changelog>https://github.com/dafny-lang/dafny/releases/</changelog> + <bugs-to>https://github.com/dafny-lang/dafny/issues/</bugs-to> + <remote-id type="github">dafny-lang/dafny</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/eisl/Manifest b/dev-lang/eisl/Manifest new file mode 100644 index 000000000000..bcc4fd899850 --- /dev/null +++ b/dev-lang/eisl/Manifest @@ -0,0 +1,4 @@ +AUX eisl-2.50-Makefile.patch 923 BLAKE2B 33c1effb134e13383d46a1b8af3a0873262bf79cd0d09769229479ba1de5a7d5d1e64c90355d865a74a7bb2e75a6d3cdec6242026b5763812cc0c405ef21572a SHA512 050ff2148f989cc60d6de16e8c3a06827ea4cfb9dc6e8e7d0be9d8d7beca0420e2f231d60bf2fae219eb0413ca4331bc1b22f56946af4779171fa98054219be3 +DIST eisl-2.50.tar.gz 1757697 BLAKE2B 83c68213522320c815d9c7930c58181adba6f7fd3387421b7c7de55aca0fb6cabd78f65543c71adb89408531ea59855aafcf5bafd466bf517626a49cd252641f SHA512 4865c09dbbc0db885af69ec5ef0a731e2f55455f296b343b1cb05d3233e1e18c397b3b0a21eb0a6a86f85f20bf4e62f5e968fdf3cab45f6b5e3e3f9ee27d5e80 +EBUILD eisl-2.50.ebuild 690 BLAKE2B 0d2231212bfeafa48bc400f4db0eef4fc17ddfaee2cf02dd649481f7f3eb784c5b747d8a1f1fc69c1a3f941b9e4de0570f358b4eda8d34048bbcdcbd78ab5eff SHA512 4cc475885a63d23a071edf399f770ed18fcb52b66194ae3c9f3b28fbde56ed16aa63601da9287e07249b3dee009e27615b50e12fb6886f086d3494dba468cc34 +MISC metadata.xml 631 BLAKE2B fd171b07cf1f7beae7be774a5da360d466c83f01a6bd52dc69af436926ae5aebec27a2723c11498be21c4f96f6b82c6aa3571f4b84e763459ef78086450252f2 SHA512 dd9e329f24ce6d3922e92e81d36234b93151f71c88d6ba4b38557565a7c1c3bc4b7172d4d55f1d2d5bd6c5cada449691067cc71abd4d456941f6a8b78fe0df87 diff --git a/dev-lang/eisl/eisl-2.50.ebuild b/dev-lang/eisl/eisl-2.50.ebuild new file mode 100644 index 000000000000..cad52bf1c3f0 --- /dev/null +++ b/dev-lang/eisl/eisl-2.50.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="Interpreter and compiler compatible with the ISLisp standard" +HOMEPAGE="https://github.com/sasagawa888/eisl/" +SRC_URI="https://github.com/sasagawa888/eisl/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +RESTRICT="test" # Tests run cppcheck (and fail) + +DOCS=( README-ja.md README.md documents ) + +RDEPEND="sys-libs/ncurses:=" +DEPEND="${RDEPEND}" + +PATCHES=( "${FILESDIR}"/${P}-Makefile.patch ) + +src_compile() { + emake CC="$(tc-getCC)" clean all +} + +src_install() { + dobin edlis eisl + + einstalldocs +} diff --git a/dev-lang/eisl/files/eisl-2.50-Makefile.patch b/dev-lang/eisl/files/eisl-2.50-Makefile.patch new file mode 100644 index 000000000000..3c30adff8fd2 --- /dev/null +++ b/dev-lang/eisl/files/eisl-2.50-Makefile.patch @@ -0,0 +1,33 @@ +--- a/makefile ++++ b/makefile +@@ -29,7 +29,7 @@ else + CURSES_LIBS := $(shell ncurses6-config --libs) + endif + endif +-CFLAGS := $(INCS) -Wall -Wextra -D_FORTIFY_SOURCE=2 $(CURSES_CFLAGS) -U_XOPEN_SOURCE -D_XOPEN_SOURCE=700 -Inana/src ++CFLAGS += $(INCS) -Wall -Wextra $(CURSES_CFLAGS) -U_XOPEN_SOURCE -D_XOPEN_SOURCE=700 -Inana/src + DFLAGS := --O3 --release --betterC + SRC_CII := cii/src/except.c cii/src/fmt.c cii/src/str.c cii/src/text.c + SRC_D := dextension.d disl.d +@@ -42,7 +42,7 @@ ifeq ($(DEBUG),1) + LDFLAGS := -fsanitize=undefined + endif + else +- CFLAGS += -O3 -flto -DNDEBUG=1 -DWITHOUT_NANA=1 ++ CFLAGS += -DNDEBUG=1 -DWITHOUT_NANA=1 + SRC_CII += cii/src/mem.c + endif + OBJ_CII := $(SRC_CII:.c=.o) +@@ -56,11 +56,10 @@ else + CFLAGS += -std=c17 + endif + ifneq ($(DEBUG),1) +- LDFLAGS += -flto + ifeq ($(OPSYS),macos) + LDFLAGS += -Wl,-S,-x + else +- LDFLAGS += -s ++ LDFLAGS += + endif + endif + PREFIX := /usr/local diff --git a/dev-lang/eisl/metadata.xml b/dev-lang/eisl/metadata.xml new file mode 100644 index 000000000000..4351ebea821e --- /dev/null +++ b/dev-lang/eisl/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> + +<pkgmetadata> + <maintainer type="person"> + <email>xgqt@gentoo.org</email> + <name>Maciej Barć</name> + </maintainer> + <longdescription> + Easy-ISLisp(EISL) is an interpreter and compiler compatible with the ISLisp + standard. EISL was written by Kenichi Sasagawa + https://qiita.com/sym_num/items/793adfe118514668e5b0 + </longdescription> + <upstream> + <bugs-to>https://github.com/sasagawa888/eisl/issues</bugs-to> + <remote-id type="github">sasagawa888/eisl</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lang/erlang/Manifest b/dev-lang/erlang/Manifest index b901dfab0323..88549a15ca89 100644 --- a/dev-lang/erlang/Manifest +++ b/dev-lang/erlang/Manifest @@ -1,17 +1,18 @@ AUX 18.2.1-wx3.0.patch 3849 BLAKE2B 02912cf61094d8217eab7181a4cc35aead224df7872c412db0b40b072778cfb900bf18219baf52e29f609b72305d3a11ea1079b2e873cf56a0a3bd42e3303d2f SHA512 33d8b67542266ae224ffb2bc86fbf36fff6737252810cfb445662ecc418fb30b0b00cbddd2f706ca836f1a8809c505e61edfe221d29dbe91c78c371bff6cec15 AUX 50erlang-gentoo.el 134 BLAKE2B df2da5c0c4be3e6855b51b820e3304f5c212a92d13ec48aa5d73ea3a0e801a8dddd371fd8894d49aa9d5573def56b3a864e463734d72fcf5356d39753dbda1ba SHA512 7a862e0ef1e96e88a484e80aeb92eb4465c7e8661efb0291c28abc13225eb3aa69442fe29417f5ad0d264e54399d645d9cd4713bc9869b48e87a91e50b9b2473 AUX epmd.confd-r2 60 BLAKE2B 6d4c0ecc74218941281dd7235b34ef2fcca32fc26f3f282551a6d551153b53f77f42b5139dfbee2b02a966cdea03fa350270e6897a57405ca2ac256d1b7eae50 SHA512 e594ccdfef8473f9fccbdee6fe084c43a4fadd5ac47ffb98aaa223902e74290e749f28b88952aa83eb207de1393d44184f81244c233b7d6afde04fc8615dfd91 -AUX epmd.init 534 BLAKE2B 34230f6c6edaed48123369df02f5fb71deb90491ebbb6d17984220dfd4615e029fa14aeb15c01ced15f98ec42aee256896a9b9680a4cce5d93e815c2a674efc3 SHA512 d11ef840a0edddd111da6a3c378756663f7337cb79713c475ccfec7e8a828fb4ef9f19f85d836ed0761cd9341d1242d687cf38ed5bbe267b4db5618c03ae6141 -AUX epmd.init-r2 388 BLAKE2B cf8f1b3bfaf5c0bb1a7acebf41e1c1138b880e91a5c732cf3f8ddcaea469f0bcb32c9b3bb1fc5c923a3d7d1f77ca419ae3b4c25223d6da9499c627d2cd20b545 SHA512 110dc6575eaecf88164283042210a8580642fa5c9f49a3529bb0d5cda683f9ae024f1c7da791c0d7bfa8aabc3baf29bb821b5640804b313bb6ffee41401a8eb2 +AUX epmd.init 536 BLAKE2B fc4d5058088e08f3ed17f4cfcff2190ec8b7fb922ca8ac1353b82f14319a443d23563c7d436b85946573f0313debcf5af4669caf013ea87d54af4f2da0692ff6 SHA512 e351892fe920d4dab4cc0bb1b448204f8b1e16b8e0ed687b285c52a8d5e00d6a39fb27e83d5c0b973b5b595f4b4274c64fa938a25853dcbae674edf1cae42d3d +AUX epmd.init-r2 390 BLAKE2B eae80a5a919fe2511463f99f225bfde4e31d603552eac40164fcca8ddf66ae75c870ea63a40111b504eae4d775d4186a3aa21d6c991f87ae6e36d71ebf16112b SHA512 4f43110f1ed16a05283748a648e4640562ad886ed83a080455619f33090aa8d12e0c375a4916625dbfc44442de65a95eea72eb4423298a0c01e6fc7652f8e4ac AUX epmd.service 138 BLAKE2B f56c907ec51bb85c437235334cf01c6a43ccf2316be3b226ab557e3f71cab48baf59b5a9533a4dccb2cb61a4434e3a51d44eae06010718dbf9a732d605c40f73 SHA512 405740f8f9cd55d4ecd7420748399ab3f374b7cb09e53605f44ba49d0af86b70e4a1baf1fde05a703fb90c8a83dbcdd5cfbbf09185e9d7b58ff9612aefc2dd28 AUX epmd.service-r1 159 BLAKE2B ec50e4bfd89dc2d35fc2e549c695f9aae163d3df4d3c7a0d3f85f0f747c13a8aed9c8e9e57f3898ab31aec6795d7cd0565a7c563dc77f3f6154e53be88ec326d SHA512 4b99b2092fe447fa01e3badfce261bca6400ebda70f890efbacc40570019adfe9fc349a6d024955e2f1909c9068f37415b64d0a104399f2696eff6ccf6ad06ab AUX erlang-22.0-dont-ignore-LDFLAGS.patch 1174 BLAKE2B 64900c6b934ecbd11238e604f907e6f8b1ec2730d2b98aad5405383742563e050bc6ffaae22d55a22998658460109fac9f6628458f5e976e9fbfe71cc26f1d64 SHA512 0fd7cbef64a9a54e0959d49b50096f9abc6fcede4360c153631c7f649f5c41b35ffb1f2d06f80964bf49421464bcc43c96147c227d60cf413c51b3e89ae9ad24 AUX erlang-23.3.4.14-emacs28-compat.patch 6237 BLAKE2B b5b8f0c7bfd1f217805d7279d85b7d09189d069814afde10b32446031c221aaac58aa7adaf993da7261c1d8889b5bef6cabbfc73b4062a6eeadae5e0d923c39d SHA512 e47364afaf8d29b1e9e1f6548bfe5efa110e56777d9db87fefd24ee201d5689f46e3e4d34c32b3a95353411500ae10fc1064f9ed155d5d6d97f442d749e38f9b AUX erlang-24.0.2-serial-configure.patch 586 BLAKE2B 3ad4fcbf35310dc11e8aaddca95a467414c60390a7e170c83d0775230a5a815212c6ddce55e98721b02e03511f80e67cfbd60e4b06bc86c615bb3a51d5015ec5 SHA512 abc81ef2a0b23fbe82542efefb1cbb12b1143e9282f7114ea929c18a5c02f2053caabb05ef9838d40b40f3ca59b06955528b122092438ee3d4ef6a8b567fc335 DIST erlang-23.3.4.12.tar.gz 57278064 BLAKE2B 3620dd2e49cfd75e49bf573ad1a8f8952c232ce2bf734ee845d8e8bb26053e34df96b472a9490c1cdf77ae6c106732f6a68b2f5d31808fd941bddb616004819f SHA512 d4f468393116d2d24a5170d7efe04305d221baccccfc273d4740b701ec23d1e55268cc49eeb99722afa636431e6e50faa5c11758484aa71e29c2fb3ed7c2ad25 -DIST erlang-23.3.4.14.tar.gz 57288870 BLAKE2B 64c53eac18f970d7b6e560ec678c34cab7e9ecd77af1789843c17c072e05034bef00d0985a294b118890f30cd40e429db19d309626172deabcd2ee1328f04584 SHA512 1a1e5eebd471a919dbbbdfcdea32285d3c8f51d5ba4a4f16081c1ffc00cc118e2056ffb84040147ee70175a3cad4419501ec892dccd59cfa133d473eee3f00e9 +DIST erlang-23.3.4.15.tar.gz 57510217 BLAKE2B c07a1de91389774a8c62a0618567c0b8f8cad98674a1a2a737ed16d42a5a7c48cd7f53b433d44175c0a5abfbcc276b8cae389b165ae5343fa6d7a2aba9a930dc SHA512 a79c4deb8261a4c3e165198794dd0833d3e33bfc9ec36627b245f425cbdd354b82a018fe68debc68d4514972b3a4d171c8d4503bfbd73a678b0bd0c5b8343439 DIST erlang-24.3.3.tar.gz 59296830 BLAKE2B 1792274c77001b6f49e84f1584620a247cf3acdf075a8d581403f31a2b4cfe32e7b8104d325f3c1a999595d94484cb74b7996a35599e9ef8935931a133a554f6 SHA512 5e8ce0ebd50c1c67ca29ce9405fc18f5461793b20a1732418bc8fac404078044deb72526682aab92ee3e737bc9dc9e94e6be162a088e2cb7cc68c14b1d76454e -DIST erlang-24.3.4.tar.gz 59298534 BLAKE2B 66e8cb2148392229fb24fb0994b09510ede89229b90708df7149393d4f522ccc98774fad9f924d2c1f806f099303e097e05b1f91348674e86057c0a8952e133e SHA512 bd3fb31d69ef64a87fc436f610409308bdb44493422974ae563bdf001dabd0a5aadfcdb0334b430ebb385f7e91f629e793fdf03801ab48df5f265472e3af540a +DIST erlang-24.3.4.2.tar.gz 59532491 BLAKE2B 28c48f1a3197a151010a775286cf0b775567301411b8480b32cfb39c68978de5586b63c245fe58bff8034ebc04fcc3b002dee7c953127ecf581ed6d716587ae4 SHA512 78bc2dc67fe60d3ea6049c361a017c054e12b0adeeae890b0a1ee5301744505593bd19f3731acebff8312b323a3bd21a1359507d122fc34f0eb85eefb3aac88c +DIST erlang-25.0.2.tar.gz 59800286 BLAKE2B 4344ff5a21a6c0139842067d10d82435f504a5bd3b4112137f92ad06d7bff21352244c80eadad4a9efbc29692ac2be2a81b87ddde9b29433d1461a1148a733c7 SHA512 717406816b4428fb8bd808a9d25575b7e33a05e6aed5428295682ba8576d53f1433bd1b1593236943e592e673ed2168047873127cfd293b5522636c514328f43 DIST erlang-25.0.tar.gz 59574655 BLAKE2B fddcd0d099b84981862b06397dcd6d1a53e11c5624f5e8e60ef0caa1db215a8447b6a9eaecd56761d3d7d213ca40b5e7e7b0860d2cbf0d547f5dfcf9e9edd08b SHA512 36f2d36c5d2d5dcd28c6f817f3dc008c902838115b8830a684f9d9290017074cbfbb616d4a28f02fedaab097e73183c86cef1ce28f656e0852df0a95c30c5639 DIST erlang_doc_html_23.3.tar.gz 36224657 BLAKE2B 7e2a3e16f4cfa0f15c01074740e02af7a45b480b4a94e764463717658ab7e5d0281f928c3ec585582b10168645e3e06cfe72cf6a0ba1b88f539b80f2b7ad99be SHA512 8be4aae46839239604b875b39339e7b6b6c677c099b3d749d5f1041c4508c1c3b4aa8136a93df12b1e5cb6333ef907276f5965c9726ed2b9e77a6043c8ef53b1 DIST erlang_doc_html_24.3.tar.gz 36645792 BLAKE2B ef90b7d05ed43656ab1ffdbbd0833c9da08a867ad7a99ec0f7f1eb59697c1f9cd5ccd150b2e564af80b2098f063da0c76121d4444b5444e603581442ad1c7bc8 SHA512 b8d3832ffdbdede656b362d719474f7b9ff04a32ea7235e77d63755629cf9305c203cd6cd9ae089171b2cee694f9641d6ed5d0197e2acf893a31d25696096f1e @@ -19,9 +20,10 @@ DIST erlang_doc_html_25.0.tar.gz 37051192 BLAKE2B 2d79ccb3b850b199de0a7da83c6358 DIST erlang_doc_man_23.3.tar.gz 1456501 BLAKE2B 414bedee0e316d97b26d9d6418b799a9434a22e9980e7d3a83e2478d184d63d1633c0e10d0e180d929a3cacd82b4d703be86cbc8e99996037f6b37ea122f7a8c SHA512 6c661c210ffec4752afe624fa46700a0f62cc6589b74b859ab1dfde77d289e992988ac8744f7b4126d7512cd6d0aab3321f710a6324552b259bd7acd5b54a05e DIST erlang_doc_man_24.3.tar.gz 1680242 BLAKE2B 3311eb6ed6dcaa2d611adf7a08269f67e3f31d106f6b6d04e5cc91efa8efc382ddb6b230f218fa543390bf4ec37f477e0c4979c82632ebfb6ccda8c5de1fbc41 SHA512 72876911a1ec82071225e7b71de0462254becd64892a5459239b9e44b20601f6b6990a12cd36a8320e81e5307bcf7b5e5057e42baec12403be4a0eda00cdf62c DIST erlang_doc_man_25.0.tar.gz 1711510 BLAKE2B 743efa8edbeeb99e37e227c1e5e3be1825a391007e1c220ba22163c528edda8941b1dca0951cc02aff016dda0d52f3a6ff4fdbbbe279ce067c7a1993997ce6b4 SHA512 c6b6490961228893253e11d5bb88cbd30ba2cb1c13819a85db6699b437f0327fb55962accb6b602a4ec5ffc423882205d05873b064fb3e4c52950a423706fb09 -EBUILD erlang-23.3.4.12.ebuild 4499 BLAKE2B f5d60f5e4daf2766f1a8dce36ddfce00e220bb771ffb02da6448ae4526d499f433dff704d9381c9aa73cd9e3ccd0899a83441a394c0372e791786a7193694fdd SHA512 fd0a6b91636133698c5d9c9348e5db379547f84f5b1fe9a7541f5d8de3ae4205cc0ea0727d76d885908e1d19ae84dcbd2743d749e11bad4c9f76fdec0b82a7da -EBUILD erlang-23.3.4.14-r1.ebuild 4556 BLAKE2B 814062c5bef24e854efcbecc84743aff69103e6f03ab6aa98e6e0aeb31924f54ce1adf22c2f68a5a1ee811cf84c9ac97cdf5a59cd38c02f4c00b998cf5113022 SHA512 ba33d1a2e9bf1ffcf8fd57929cd5e09dab4ac7ff5f4d2f8560ee88c90c7dd5e8e71d2ed956677842cf0f53711c92452273ec463d856ac8f270e6eeccdbf1ae4b -EBUILD erlang-24.3.3.ebuild 4783 BLAKE2B db44c0614d88101ffc13edb07ca6b2dd7c119b0ddb0c099b18ad37fd751596fbeb5f982712e8cd69e9a2cb000f5d3aded0197d4fab8d512ca4d4d9349a9de4e6 SHA512 e2cc06e3c2e11d874b135a4c2dcc2dcd84592d32964f22a68ce25dd45b7a36143e691c39e350227ce284b5964cb6f00b961c08f30916e540338e5f12801fb7bd -EBUILD erlang-24.3.4.ebuild 4788 BLAKE2B a770984061152835a9452bd8d57f13394d6af4198d4291d6b78d14a03b48d5ef886fa696b5372e32e7927e6bd7466a2be1a505922ea1b7772e1bad69f35a622c SHA512 60f3edf46bf5169b0c205bafa1bb9858dbc3e1cc190616111bdb7950139e9a6adba3d61aa11f490ba98406a7a2b02d261a86b1583474a5ac48b339bcf4ab4125 -EBUILD erlang-25.0.ebuild 4788 BLAKE2B a770984061152835a9452bd8d57f13394d6af4198d4291d6b78d14a03b48d5ef886fa696b5372e32e7927e6bd7466a2be1a505922ea1b7772e1bad69f35a622c SHA512 60f3edf46bf5169b0c205bafa1bb9858dbc3e1cc190616111bdb7950139e9a6adba3d61aa11f490ba98406a7a2b02d261a86b1583474a5ac48b339bcf4ab4125 +EBUILD erlang-23.3.4.12-r1.ebuild 4499 BLAKE2B f5d60f5e4daf2766f1a8dce36ddfce00e220bb771ffb02da6448ae4526d499f433dff704d9381c9aa73cd9e3ccd0899a83441a394c0372e791786a7193694fdd SHA512 fd0a6b91636133698c5d9c9348e5db379547f84f5b1fe9a7541f5d8de3ae4205cc0ea0727d76d885908e1d19ae84dcbd2743d749e11bad4c9f76fdec0b82a7da +EBUILD erlang-23.3.4.15.ebuild 4556 BLAKE2B 814062c5bef24e854efcbecc84743aff69103e6f03ab6aa98e6e0aeb31924f54ce1adf22c2f68a5a1ee811cf84c9ac97cdf5a59cd38c02f4c00b998cf5113022 SHA512 ba33d1a2e9bf1ffcf8fd57929cd5e09dab4ac7ff5f4d2f8560ee88c90c7dd5e8e71d2ed956677842cf0f53711c92452273ec463d856ac8f270e6eeccdbf1ae4b +EBUILD erlang-24.3.3-r1.ebuild 4783 BLAKE2B db44c0614d88101ffc13edb07ca6b2dd7c119b0ddb0c099b18ad37fd751596fbeb5f982712e8cd69e9a2cb000f5d3aded0197d4fab8d512ca4d4d9349a9de4e6 SHA512 e2cc06e3c2e11d874b135a4c2dcc2dcd84592d32964f22a68ce25dd45b7a36143e691c39e350227ce284b5964cb6f00b961c08f30916e540338e5f12801fb7bd +EBUILD erlang-24.3.4.2.ebuild 4788 BLAKE2B a770984061152835a9452bd8d57f13394d6af4198d4291d6b78d14a03b48d5ef886fa696b5372e32e7927e6bd7466a2be1a505922ea1b7772e1bad69f35a622c SHA512 60f3edf46bf5169b0c205bafa1bb9858dbc3e1cc190616111bdb7950139e9a6adba3d61aa11f490ba98406a7a2b02d261a86b1583474a5ac48b339bcf4ab4125 +EBUILD erlang-25.0-r1.ebuild 4783 BLAKE2B db44c0614d88101ffc13edb07ca6b2dd7c119b0ddb0c099b18ad37fd751596fbeb5f982712e8cd69e9a2cb000f5d3aded0197d4fab8d512ca4d4d9349a9de4e6 SHA512 e2cc06e3c2e11d874b135a4c2dcc2dcd84592d32964f22a68ce25dd45b7a36143e691c39e350227ce284b5964cb6f00b961c08f30916e540338e5f12801fb7bd +EBUILD erlang-25.0.2.ebuild 4788 BLAKE2B a770984061152835a9452bd8d57f13394d6af4198d4291d6b78d14a03b48d5ef886fa696b5372e32e7927e6bd7466a2be1a505922ea1b7772e1bad69f35a622c SHA512 60f3edf46bf5169b0c205bafa1bb9858dbc3e1cc190616111bdb7950139e9a6adba3d61aa11f490ba98406a7a2b02d261a86b1583474a5ac48b339bcf4ab4125 MISC metadata.xml 735 BLAKE2B 6deb116831085a15f4a06368d1d1f3e9d57501799236c7d1fe9fa8aa9a72da0151e92fa13e14427177679c361f8849379784e9c0124f28468f71e2eb54b78bbc SHA512 8ac9f9f29494b5aa9ff023460009c8b69cc3dbc4cc88ab419b62f715066ea3789a4575eab545eed5a430a95f4d0709e069fd240f2cb256eca4dfca7ce3838ab8 diff --git a/dev-lang/erlang/erlang-23.3.4.12.ebuild b/dev-lang/erlang/erlang-23.3.4.12-r1.ebuild index d87e1a997ebf..d87e1a997ebf 100644 --- a/dev-lang/erlang/erlang-23.3.4.12.ebuild +++ b/dev-lang/erlang/erlang-23.3.4.12-r1.ebuild diff --git a/dev-lang/erlang/erlang-23.3.4.14-r1.ebuild b/dev-lang/erlang/erlang-23.3.4.15.ebuild index 4ec3b42e084e..4ec3b42e084e 100644 --- a/dev-lang/erlang/erlang-23.3.4.14-r1.ebuild +++ b/dev-lang/erlang/erlang-23.3.4.15.ebuild diff --git a/dev-lang/erlang/erlang-24.3.3.ebuild b/dev-lang/erlang/erlang-24.3.3-r1.ebuild index 1d539c7aa9b4..1d539c7aa9b4 100644 --- a/dev-lang/erlang/erlang-24.3.3.ebuild +++ b/dev-lang/erlang/erlang-24.3.3-r1.ebuild diff --git a/dev-lang/erlang/erlang-24.3.4.ebuild b/dev-lang/erlang/erlang-24.3.4.2.ebuild index d08bb337a5c2..d08bb337a5c2 100644 --- a/dev-lang/erlang/erlang-24.3.4.ebuild +++ b/dev-lang/erlang/erlang-24.3.4.2.ebuild diff --git a/dev-lang/erlang/erlang-25.0-r1.ebuild b/dev-lang/erlang/erlang-25.0-r1.ebuild new file mode 100644 index 000000000000..1d539c7aa9b4 --- /dev/null +++ b/dev-lang/erlang/erlang-25.0-r1.ebuild @@ -0,0 +1,162 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +WX_GTK_VER="3.0-gtk3" + +inherit elisp-common flag-o-matic java-pkg-opt-2 systemd toolchain-funcs wxwidgets + +# NOTE: If you need symlinks for binaries please tell maintainers or +# open up a bug to let it be created. + +UPSTREAM_V="$(ver_cut 1-2)" + +DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)" +HOMEPAGE="https://www.erlang.org/" +SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz + https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz + doc? ( https://github.com/erlang/otp/releases/download/OTP-${UPSTREAM_V}/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )" + +LICENSE="Apache-2.0" +# We use this subslot because Compiled HiPE Code can be loaded on the exact +# same build of ERTS that was used when compiling the code. See +# http://erlang.org/doc/system_principles/misc.html for more information. +SLOT="0/${PV}" +KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="doc emacs java +kpoll odbc sctp ssl systemd tk wxwidgets" + +RDEPEND=" + acct-group/epmd + acct-user/epmd + sys-libs/ncurses:0 + sys-libs/zlib + emacs? ( >=app-editors/emacs-23.1:* ) + java? ( >=virtual/jdk-1.8:* ) + odbc? ( dev-db/unixODBC ) + sctp? ( net-misc/lksctp-tools ) + ssl? ( >=dev-libs/openssl-0.9.7d:0= ) + systemd? ( sys-apps/systemd ) + wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] ) +" +DEPEND="${RDEPEND} + dev-lang/perl +" + +S="${WORKDIR}/otp-OTP-${PV}" + +PATCHES=( + "${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch + "${FILESDIR}"/${PN}-24.0.2-serial-configure.patch +) + +SITEFILE=50"${PN}"-gentoo.el + +src_prepare() { + default + + tc-export AR CPP CXX LD + + # bug #797886: erlang's VM does unsafe casts for ints + # to pointers and back. This breaks on gcc-11 -flto. + append-flags -fno-strict-aliasing +} + +src_configure() { + use wxwidgets && setup-wxwidgets + + local myconf=( + --disable-builtin-zlib + + # don't search for static zlib + --with-ssl-zlib=no + + $(use_enable kpoll kernel-poll) + $(use_with java javac) + $(use_enable sctp) + $(use_with ssl ssl) + $(use_enable ssl dynamic-ssl-lib) + $(use_enable systemd) + $(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null") + ) + econf "${myconf[@]}" +} + +src_compile() { + emake + + if use emacs ; then + pushd lib/tools/emacs &>/dev/null || die + elisp-compile *.el + popd &>/dev/null || die + fi +} + +extract_version() { + local path="$1" + local var_name="$2" + sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed" +} + +src_install() { + local erl_libdir_rel="$(get_libdir)/erlang" + local erl_libdir="/usr/${erl_libdir_rel}" + local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)" + local erl_erts_ver="$(extract_version erts VSN)" + local my_manpath="/usr/share/${PN}/man" + + [[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version" + [[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version" + + emake INSTALL_PREFIX="${D}" install + + if use doc ; then + # Note: we explicitly install docs into: + # /usr/share/doc/${PF}/{doc,lib,erts-*} + # To maintain that layout we gather everything in 'html-docs'. + # See bug #684376. + mkdir html-docs || die + mv "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* html-docs/ || die + local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" html-docs/. ) + docompress -x /usr/share/doc/${PF} + else + local DOCS=("README.md") + fi + + einstalldocs + + dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl + dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc + dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript + dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call + dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp + + ## Clean up the no longer needed files + rm "${ED}/${erl_libdir}/Install" || die + + insinto "${my_manpath}" + doins -r "${WORKDIR}"/man/* + # extend MANPATH, so the normal man command can find it + # see bug 189639 + newenvd - "90erlang" <<-_EOF_ + MANPATH="${my_manpath}" + _EOF_ + + if use emacs ; then + elisp-install erlang lib/tools/emacs/*.{el,elc} + sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \ + "${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die + elisp-site-file-install "${T}/${SITEFILE}" + fi + + newinitd "${FILESDIR}"/epmd.init-r2 epmd + newconfd "${FILESDIR}"/epmd.confd-r2 epmd + use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lang/erlang/erlang-25.0.ebuild b/dev-lang/erlang/erlang-25.0.2.ebuild index d08bb337a5c2..d08bb337a5c2 100644 --- a/dev-lang/erlang/erlang-25.0.ebuild +++ b/dev-lang/erlang/erlang-25.0.2.ebuild diff --git a/dev-lang/erlang/files/epmd.init b/dev-lang/erlang/files/epmd.init index 92318d051bff..211d1dad47b4 100644 --- a/dev-lang/erlang/files/epmd.init +++ b/dev-lang/erlang/files/epmd.init @@ -7,7 +7,7 @@ pidfile="/var/run/epmd.pid" command_args="-daemon -relaxed_command_check -address 127.0.0.1" depend() { - need net.lo + need loopback before sshd } diff --git a/dev-lang/erlang/files/epmd.init-r2 b/dev-lang/erlang/files/epmd.init-r2 index 52f6d72b0fe7..08a230ec15cf 100644 --- a/dev-lang/erlang/files/epmd.init-r2 +++ b/dev-lang/erlang/files/epmd.init-r2 @@ -12,7 +12,7 @@ command_background=yes pidfile="/var/run/epmd.pid" depend() { - need net.lo + need loopback before sshd } diff --git a/dev-lang/execline/Manifest b/dev-lang/execline/Manifest index 47e8ee5ce225..4704c4c5c61b 100644 --- a/dev-lang/execline/Manifest +++ b/dev-lang/execline/Manifest @@ -1,5 +1,7 @@ DIST execline-2.8.3.0.tar.gz 98448 BLAKE2B f3dc1a194838f7973044b2d86e6026936697be4f34f9b01f5dfc98ddabfbde3dad7cfe95afd63f65cb266994b922d7d4c94368cf5dca2a2494fd0033b4ed6032 SHA512 40f4697a8165616848ed36dcb31a5859dee55a47439d13908a387550e8f53ca8fffe3bcb3e0462cb93f694c8fb483b14e152f92e6f9d0d536cdab9d94be9c53a DIST execline-2.9.0.0.tar.gz 100225 BLAKE2B a0b0bdde6b827272e55a64a58b28b85d4ec0ecf96eae59f553b7914642d184bc77864f31a84e4584d482893c3851eca419270b41ecc3c4f331e8ef768c90b474 SHA512 bd491ef38c439cfe469a3aeda6d462930b1edcbf04a1118851161c30fcd3521e8ec98ef53261f9216c6f210a6816d6dd7cff6dcc853a5d2f28d963f8083aed84 +DIST execline-2.9.0.1.tar.gz 100330 BLAKE2B c6d346700c5ca94ee83163b5ff5c7f0461d61a768345a1ed5cd64d75f10429d241ed007de7a09954774c4f9bec78c8b1bdcd77f8b98a399d10e90e5639d06d7d SHA512 8115a7e0e83789cfd85750fc8e96eea0201dbf6f7d1f194e5c0a008ebf40d8fad8b802a5209d3fe9805eeb9b7542af306d5328e159a15bd7425a64ef1a51ebc3 EBUILD execline-2.8.3.0-r1.ebuild 1136 BLAKE2B c23a21b61aabba7399e23177e2085fbf9ee68862ae270fb90c6ff0d75523794eeb6d0f4c4e11f3b70780b9f1130012e925242ff59efe990fec0942ad47382a5c SHA512 43f6e1594f7b58a58513a679c83bd0ad69d4904e3dd59bd189a358938122ca81cd5972d151ddfdb6e799f5b8f6572dadafc27a7581eb60ab041ad48b75f37fbd EBUILD execline-2.9.0.0.ebuild 998 BLAKE2B 69cddb50020819c05806d4a9651d3797c2646a4cf674bb55372b63e40f420a74378320b4fe7ec93ee42b03da0dc0c1ea660a4fc46151399db22df00b0cda542b SHA512 eb68daf9b2275090171b044b255ed0a51ab0c2bd82d2aa1df0fe30ed5a7a4d95de6567cd718cc447677af0aca635d4c022678b71f55fc8c50729cbd3a52fdd9c +EBUILD execline-2.9.0.1.ebuild 998 BLAKE2B 69cddb50020819c05806d4a9651d3797c2646a4cf674bb55372b63e40f420a74378320b4fe7ec93ee42b03da0dc0c1ea660a4fc46151399db22df00b0cda542b SHA512 eb68daf9b2275090171b044b255ed0a51ab0c2bd82d2aa1df0fe30ed5a7a4d95de6567cd718cc447677af0aca635d4c022678b71f55fc8c50729cbd3a52fdd9c MISC metadata.xml 730 BLAKE2B 0144183b0f42cc421c44f8cfc4e0b5dc6b1639e4279facd59b70ba76d8399e63a9b5d053fca41fbcf987d6b5b8ae1c653430f3fa2d63488f6f73c134344d0a75 SHA512 b30e6f0bcb3499104c0cfcfd5687f6ac1016e89d4ffd8ebdf8409eaeaaae6dce9c4fcf6f97824846527b95cfb61a812bffe7017304ca94af74d7bde6ed0586f1 diff --git a/dev-lang/execline/execline-2.9.0.1.ebuild b/dev-lang/execline/execline-2.9.0.1.ebuild new file mode 100644 index 000000000000..7881d1093e25 --- /dev/null +++ b/dev-lang/execline/execline-2.9.0.1.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="A non-interactive scripting language" +HOMEPAGE="https://www.skarnet.org/software/execline/" +SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz" + +LICENSE="ISC" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~arm ~x86" + +RDEPEND=">=dev-libs/skalibs-2.12.0.0:=" +DEPEND="${RDEPEND}" + +HTML_DOCS=( doc/. ) + +src_prepare() { + default + + # Avoid QA warning for LDFLAGS addition + sed -i -e 's/.*-Wl,--hash-style=both$/:/' configure || die + + sed -i -e '/AR := /d' -e '/RANLIB := /d' Makefile || die +} + +src_configure() { + tc-export AR CC RANLIB + + local myconf=( + --bindir=/bin + --dynlibdir=/usr/$(get_libdir) + --libdir=/usr/$(get_libdir)/${PN} + --with-dynlib=/usr/$(get_libdir) + --with-lib=/usr/$(get_libdir)/skalibs + --with-sysdeps=/usr/$(get_libdir)/skalibs + --enable-shared + --disable-allstatic + --disable-static-libc + ) + + econf "${myconf[@]}" +} diff --git a/dev-lang/ghc/Manifest b/dev-lang/ghc/Manifest index 072045ce37e2..1738e4056d91 100644 --- a/dev-lang/ghc/Manifest +++ b/dev-lang/ghc/Manifest @@ -12,6 +12,11 @@ AUX ghc-8.4.2-allow-cross-bootstrap.patch 768 BLAKE2B b697a54fde6687d49592398be3 AUX ghc-8.6.5-numa.patch 850 BLAKE2B bc15c4e24a8a395f5f3540469e5e769285b705fae05790b9d9a76e87490ec1103a89c1b1a0166b05f29f9d6e07b847fba9c9b7ec01e9cb9f3c8aa0078e4caa68 SHA512 89ee983384cfb07211f37ebcc32c74f93d82541c9459857cf317a8c947d4325a9d50caf051cd68fda2c648c0f0305f7df12eef7dfaa86ada79fb5816269f76ce AUX ghc-8.8.1-revert-CPP.patch 2236 BLAKE2B f793a9e9516f9f484234311372715116dfdd588a6682113914c17feedc635371779f0c0591e1f0caf3ff3e5ca5d4c7cc8b052045306f3df4085873d0df25f2af SHA512 b324c6873a802e20ee690f0574f9f2f312f3ba4331345504b7170f52ab2b1adeb9d047a0e5526053d006d67fc261e771a284bdb8f7b76653c21d9bf9337d7cf5 AUX ghc-8.8.4-autoconf-2.71.patch 705 BLAKE2B 8f2de61be130832fafe44d10ee5608a78b3d29dd34942991ebfe722d3792deec6c0e0e5e8ac871a4487c3d1dabf16b4837ce407f08ba49dac33b65d49390dfb9 SHA512 ea74730f3a9346856cb75f661b29268e435734458ab9dede3aeaf828297de376b2aae67ef0d97e63345277cd399036a191ef5c506428804d78801eadc77d905c +AUX ghc-9.0.2-CHOST-prefix.patch 282 BLAKE2B e0a2505c2ae91d5aad41fa3faf4fa7ece8ebcf0677377b76ff16ceea648eb4fde4f198a94574649d5cd7aeaa7d70ad4ea93a2636ba5868c470d2f47209a1065d SHA512 ce17006d5635ba24576bf80b3aabce9eb132ff65d820e22fd430178d3abf8536d3696b72d226384d1c42d9a6969fdcee5a05b260d55015c250fb72c45a1708e5 +AUX ghc-9.0.2-darwin.patch 916 BLAKE2B ece65347ee4d40ce729642766273792c5f619c5f2788366f5f1e1784d630efadf59fa1c1e2e03dbd81633ad4202c81fc39a6c94472db52af2f99362ee1e67093 SHA512 300167a4c5c4b4bf6b18cdce242c8e27def88f4f3d810da0e5b60bdb77a186975716c2ac2ced8365e2f6a17b799e77eba8b3b77ae4b9efe69339dec48e78963a +AUX ghc-9.0.2-fix-tests-python310.patch 1116 BLAKE2B fc7a7390cbbc737c66ea8401c9211318d078499bfd103f07ec2df0db9824041dfee279e364601a21d4d37a694a9442f3570c0333b2baab6173d6daa366c931da SHA512 0620ebffc49a06a65bd45bf324de4674b98e874291e6bebae1a95d585bbdf38cc201a734f7f20133880b46e9abf0839b59278688b00c892b94091d1c0257352b +AUX ghc-9.0.2-modorigin.patch 1169 BLAKE2B 33a02689b5404bf28cd2a04dc601412db54ae1bb64611c3d7831a8478aadf38848f76042206b441983f07d505ad81fc3593625ee91c96e9bdacfb1621c4408a6 SHA512 f319ce4e4af1bdacefc0cc34e508bc9cb37307e5dd4e3b573af8c40232ec5669e094e9231b8fe9a6d21a2bce32fda2e443953ac5f14a7104232c03231cd337df +AUX ghc-9.0.2-verbose-modunusable.patch 572 BLAKE2B 425b5cea58690a8856ee8f7054263dc65c40badedc88c819e7de0b466cac4e87246e03555b39823e5886a5ca28ac26f64d56cec1bf0b0654294ff61c9679bb2d SHA512 b84e459b12815d7fd42b87ecca95514e0f2f8132c53299f6e289efc4c47d618e49f19795249e1a9a328baa270a92b018184e6e9eb05062c01355ce06fd76b9e9 AUX ghc-bash-completion 6496 BLAKE2B dc94a1979e886026a2fbe04bf7b45718ffa3e025a0e8945262e21a1243bfce6517fa1794f2ba6cd54cc853e93ad5d80472b9019b95762f10b5be83634a479955 SHA512 ede79ccf23555f60f48297d29bd98e3ccfd67d2cf27462153e00beb930398cb497e34ba8316e91df44c577ed11fdbe5606f7c6a2777e35d5e783590e49ccfeb5 DIST ghc-8.10.4-src.tar.xz 19818108 BLAKE2B 069dd8436c373ccf73c20d8b577243792ffdd3a031e869edd612fe1e273126e60803326542695012dbe62e57654ada18af9342bbe1a741b2bebb41cdb0d86035 SHA512 9bb078cb72535a352243b83b671c871392564efd09e478549f27ae58fc6f46e337a0782f5500d26d5704ad96eace22e77bb36031a1fe9b7e175f265b0b9c028b DIST ghc-8.10.4-testsuite.tar.xz 2236932 BLAKE2B 17d0520ad5c6daa0cc60530279ae7e617e4d79328b9f436abbe75e72f0803d9a997fb9e1ae61425326b070f45794a488d8507957fec9a6ed49eea86d30a1e579 SHA512 1bf129c8d872e3ceff7c19929605adc5d68daab9ded9aa2e5109b0de162089631472c66f04993adf8481291f8128bf804fe64a9d344c81e257f1b962ba5e382c @@ -23,6 +28,8 @@ DIST ghc-8.8.4-src.tar.xz 19395252 BLAKE2B 6fa898b9552398a724f0452f5cc88ba073264 DIST ghc-8.8.4-testsuite.tar.xz 1965820 BLAKE2B 3b715700561788b8abdc986961d533b91399461d57a1686ededb4ccc36881503cdc3fc126b9a7b204a728c24b9a9ca97320142348644367aca9b47c87a5b3b51 SHA512 79d8fb0ba8de0fb48c938bd54c8c3278f1895d8ce5c700ce8cf6b3fc550073bb757208e85d4f9818400ebecca96f51d9248b8bbdac9eb2995671756164d08c16 DIST ghc-9.0.1-src.tar.xz 20782336 BLAKE2B 53eaf903081d705d641459fbc1e6fa7387a6039f9cd466b4708bda86e81252a84d80878d6eb956ec2e1e5b721a313e68eeb796f8345244ca62f536a7a3f0c6df SHA512 bee7950a5118be8d8cefe0db5070139a5a93ca21c5bc6f8bf453429831f0c44f5e0fb5ee569865d6b8b92749044ee4123be06920928ac7a1ec9cffa9404a3e53 DIST ghc-9.0.1-testsuite.tar.xz 2322432 BLAKE2B 350df763c607dd89ba58ad6e856d815556159a9f088dc0b069de48ae87c1e874a45fad51159e65a3c9a9beed68602eeb2a2728dbce86277bd287455f46f6c53a SHA512 13fbe0f0ab5e2426820d0fb37f0a75e1198ef2a660398508806e8ef094fd23647ca3d386815a2118168d12253d8df3273043678dbb37cf3924c689dd0fd1932e +DIST ghc-9.0.2-src.tar.xz 27270396 BLAKE2B 0a73d910d3ef11161f895849025fe37ce231932f7cde441fdf620cf8c51678060a804467879eb0ee5c0a30413604c56e28e2aa1cde01e45c620b76987d9c0c0e SHA512 32994c7d2b8f47bae604cd825bfcf9c788d79ce26d1d5f58bd73a7093e11ae6c3c17b31dc0c9e454dbf67ca169b942f92213c388d615768cae86055bf6094dee +DIST ghc-9.0.2-testsuite.tar.xz 2403564 BLAKE2B 0e7f6fefb9c972f94073aca8b15147913ffa8d3cd3ff7fc63ef7e20b4efd8b443cf21f12e1ab0f5044790f6d8af6cf7788bda85a21b2f356ddface86eb896670 SHA512 b2375500ae837d74af8085d099899b5a7a589c59bdcc033ca0bd6e00f33c4f8d90b481e0c7c3de113e607fcfafdfe8edde4713e6d242b2d4ee87df2eb960c9c7 DIST ghc-bin-8.10.4-i686-pc-linux-gnu.tbz2 123831294 BLAKE2B 1ca4c1b5c34c948011049a73d409c741db89658d10e311cffbe464c631c3733278fc7dede6ad27474832295ded2c26fd4d6419c760505255e29f7cb232a670a4 SHA512 1f87cf63651f7c0e5f7f55d1f4d7d7c48b0a911cc6673a899d4b92190d765b359f9c7d73c329969c1b76f1af102b7e2c18a80382c81d5dade9ac7dd57de4ef65 DIST ghc-bin-8.10.4-x86_64-pc-linux-gnu.tbz2 122558873 BLAKE2B 9f07c7bdc3beccfa629d28b2524ccd2f4688a5c0036a45408f5ace2d530a2a0e42f95b3cda5037ebb365317999e1ae776c6f9d21692867abfe85e33f2892b1be SHA512 68bd70f94961547746a696aa2839e156c95858fda0c7ec5b2ecf802070724ab7102b0aa86bcbf93432170d521cce4af10f46b851b470e5dc49dfa5b07380f46d DIST ghc-bin-8.10.5-i686-pc-linux-gnu.tbz2 124356781 BLAKE2B 53c5d259a19f11db83d69f7a2f39090d623b07caf1859eb8bf0385183586f538d8eb3eadb06f56f4b7160fa82043eb0f7b8df1632d55af562b8b1cb21c08b4c3 SHA512 58676b4eaeef9e05f69b7c821e115f3a678487b0de696e702ff6378f7d8f23fafda997b0c19d52a730c22bf8012a99c01783d16d00e356fe12532156d5965fc6 @@ -33,9 +40,12 @@ DIST ghc-bin-8.8.4-i686-pc-linux-gnu.tbz2 120336081 BLAKE2B 55dfbb90d5e55c2af5e9 DIST ghc-bin-8.8.4-x86_64-pc-linux-gnu.tbz2 118897883 BLAKE2B a180b2dd1a3bc222044ece809ad700aee29d0c3e75b57ee9af3ca33c9c0f59dbf36f68202f746d99f80915cb717a9c41fc12db507f1cb469981732703a06b9cc SHA512 9d4be02dbd9704c93ef18feb92ea30bd5d590df31f288bf1b364818424c5019ca9ada26eec88418199f90ae8f4459d0a9352104e3f3186bbdc241891eb1b66c4 DIST ghc-bin-9.0.1-i686-pc-linux-gnu.tbz2 122955511 BLAKE2B b870f46cc78fcc1d715aafe7108951582cfd12495b4e9d804d4b66562c66a6a2b2d9513031aedc8f3630a0cdbb3257943304b05732301a084f89487452f2f2d9 SHA512 aafd4233c40f93b71e6ac1acc8a75e30d49b826e4bce6d9832836966fd5f6c4898963bd4c2f34577f4199c1d9a3f537ac1e7d87eab11e9fb5e849573580ed3fb DIST ghc-bin-9.0.1-x86_64-pc-linux-gnu.tbz2 121542968 BLAKE2B 837870e68138f8d97dc8b2aae90090cf02416628602ca4ba4417ac92b49155f10028b05ac465665b8872b32372a5cee075616983f2eacdebb0188bd2ce6a93d2 SHA512 0e8c6d2e6f32fac95588f7323a4e02dddfc9ec2476a82b97bf5a106d3810f7e638fda7124c53b5bbc563fce70f4436553c282d8ea2f1f5fdf4fcccfb15a2b079 +DIST ghc-bin-9.0.2-i686-pc-linux-gnu.tbz2 123509908 BLAKE2B 45614984803a7bfa266f99d4adb4b5f2ab7b9e5e89c6ecd501296fc99a1d96e798ccb9c832f8dcb15fff9725beb918a7b63e62ff13f59b6506a2ef17930c45d2 SHA512 e0b7f4474c16f0763a2f787027fbdfeb3125b48c987fa1196bc189fefad9f0bfa2806da62af46d61ca911f5275b578076e2b326acf39e0894a8daa9deda0843a +DIST ghc-bin-9.0.2-x86_64-pc-linux-gnu.tbz2 121536759 BLAKE2B 4433e2d266f065d2b2944b711d622ec26288a2187ac03562257a671744b44da35110ce16ac6d76f7062a563488885326be073e0ff03c7e48250051c3b4763d96 SHA512 2de29a9ddbfd0fac797cdd628f3657ff38e6a153151849508bba75d36f84394ed77750435ff5cc1bdfcd30ef2b6e009bde965bd0a83e0496b5027239642f4b6c EBUILD ghc-8.10.4-r1.ebuild 26011 BLAKE2B 3b7e8346d9a786924ed2cd28907236c858b5ae6ed54c8f0cbd3726778bf42931720620ebbb7afe52b4a34c30bfa0f3ee3443f6967243fbe80daf774b87bda5bd SHA512 c9a5fd0cca03a63cbcb41c1b839ed99b04b2b0d795bc3907b65ef4cd3acbb586c8a2d8b086c15aa78e21c49ba05e036e70ca3872dd0a45cd5d50f7592c5ecdd9 EBUILD ghc-8.10.5-r1.ebuild 25945 BLAKE2B 6e7621ff08f0f641de72ab9f3abff034a78a5801daecd191a891312451da43a99dabe3967d9eba1af430e817919f644c8d31967b89bb9f685cc68d5a532192d5 SHA512 c43a34d5635db4e536b3a8de3ae33297b1c67e3a8506fbd4410ae7782491b14564b82625f2cca6ff87ecbe2fc798f4f5847fc36c6c68a8bba3d758ebfd91be0d EBUILD ghc-8.10.6.ebuild 25970 BLAKE2B 1368c5a3835cfaefaee4cf1f4b110e5718931adec663a6de2c57c2d638f015f7dfdb4841f40b6937b960371308dec44ed5e6cc87803c184a09b2ee20426db2b1 SHA512 5c54d4862233a59c5f027d80a187e0ee325a82a93effd3964655063f1fca3d96b0b65223fbb05957a5da2908e21445484fe4d2e40f3882750225e7dfe0711e73 EBUILD ghc-8.8.4-r1.ebuild 26648 BLAKE2B d1d083422c0b3bd6094baadf515e924c490c6f9098d7a4e766f82186fe202879900f15c3c9899110c4768d91e76ad54e53975dc8e46acda79fcf3a19faaefc79 SHA512 d2a474989a695e162306559c2a7c25c81fa6b1cb8b790c9e4e03173f14bb0305aee0b96115b1393e26b9347423531c835e85f401e5aa2b9e9e84e6a62efdab70 EBUILD ghc-9.0.1-r1.ebuild 25915 BLAKE2B a8a64db3c55b23d8422c1fca113729e47d73aa2953e1fe3f6442f9a5d2befe5ea1f69bf99166899362144ccfdfd85bd17001e47c895cacaed67b8817438ad51a SHA512 63adbfd4aa9835557ba0ee6b0c0e47234a56f7e1d94decefc0d5d99376e0b3a1c3d8af529dd7448d80bd5a97ad39e7fd448492be6a5f71a3d080b3f943201cf4 +EBUILD ghc-9.0.2.ebuild 26331 BLAKE2B 676b21c1e129810c3f065fc75f044faaa0ae73d15a3f8852c2f5b5ff561ff221b2a0f31c73ddbd372b68106a60a071ce87002f1287c7c50054714d13e4911d22 SHA512 07c7ebf1f654557d64071cae3d4049c3873c2d7652f5ece9a0b0631f57ce651b7bf4c970889f97cb9817453f4d615f02ae699ede4446d03a2cab7a2059cb9abd MISC metadata.xml 878 BLAKE2B 4c5b78fa8dad9e9bf02a03735076171939be552cdb58e3022d66a75c4a7b8e6df363fc6eba192bf3c7ef725e6fff5c9db08deb1920040e535fee81d72e3157b9 SHA512 cd15a92e0d529ac9e8a031d98288de6327adcf48500cdfbef561039fa879b03f9b8c2cdb01835c6d8ade648ff95252f61759f3e471c5033f1153fce43aba3cc7 diff --git a/dev-lang/ghc/files/ghc-9.0.2-CHOST-prefix.patch b/dev-lang/ghc/files/ghc-9.0.2-CHOST-prefix.patch new file mode 100644 index 000000000000..204eb3ef7dcd --- /dev/null +++ b/dev-lang/ghc/files/ghc-9.0.2-CHOST-prefix.patch @@ -0,0 +1,17 @@ +Strip versioning components from *HOST for Darwin and Solaris + +--- a/m4/fptools.m4 ++++ b/m4/fptools.m4 +@@ -1358,6 +1358,12 @@ + freebsd*) + $2="freebsd" + ;; ++ darwin*) ++ $2="darwin" ++ ;; ++ solaris2.*) ++ $2="solaris2" ++ ;; + *) + echo "Unknown OS $1" + exit 1 diff --git a/dev-lang/ghc/files/ghc-9.0.2-darwin.patch b/dev-lang/ghc/files/ghc-9.0.2-darwin.patch new file mode 100644 index 000000000000..c3d8109e6ccc --- /dev/null +++ b/dev-lang/ghc/files/ghc-9.0.2-darwin.patch @@ -0,0 +1,31 @@ +From d39a3409acd3c40fb018ec1c114f15d3ecef6ef9 Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyfox@gentoo.org> +Date: Thu, 1 Jun 2017 22:30:05 +0100 +Subject: [PATCH] aclocal.m4: add support for versioned darwin triplets + +The change adds support for 'darwin*' OS: + $ ./configure --target=aarch64-apple-darwin14 + +Reported-by: jp_rider +Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> +--- + aclocal.m4 | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/aclocal.m4 b/aclocal.m4 +index 7ad9c36453..437974a0c7 100644 +--- a/m4/fptools.m4 ++++ b/m4/fptools.m4 +@@ -1906,6 +1906,9 @@ AC_DEFUN([GHC_CONVERT_OS],[ + aix*) # e.g. powerpc-ibm-aix7.1.3.0 + $3="aix" + ;; ++ darwin*) # e.g. aarch64-apple-darwin14 ++ $3="darwin" ++ ;; + freebsd*) # like i686-gentoo-freebsd7 + # i686-gentoo-freebsd8 + # i686-gentoo-freebsd8.2 +-- +2.14.1 + diff --git a/dev-lang/ghc/files/ghc-9.0.2-fix-tests-python310.patch b/dev-lang/ghc/files/ghc-9.0.2-fix-tests-python310.patch new file mode 100644 index 000000000000..c59cfcbfc4a2 --- /dev/null +++ b/dev-lang/ghc/files/ghc-9.0.2-fix-tests-python310.patch @@ -0,0 +1,33 @@ +From 81a8f7a7daeb87db53d598ced4b303f8f320442f Mon Sep 17 00:00:00 2001 +From: Zubin Duggal <zubin.duggal@gmail.com> +Date: Wed, 12 Jan 2022 23:01:40 +0530 +Subject: [PATCH] testsuite: Fix import on python 3.10 + +--- + testsuite/driver/testlib.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py +index fb2a7010f59..6b6462f527b 100644 +--- a/testsuite/driver/testlib.py ++++ b/testsuite/driver/testlib.py +@@ -16,6 +16,7 @@ import sys + from math import ceil, trunc, floor, log + from pathlib import Path, PurePath + import collections ++import collections.abc + import subprocess + + from testglobals import config, ghc_env, default_testopts, brokens, t, \ +@@ -907,7 +908,7 @@ def join_normalisers(*a): + Taken from http://stackoverflow.com/a/2158532/946226 + """ + for el in l: +- if (isinstance(el, collections.Iterable) ++ if (isinstance(el, collections.abc.Iterable) + and not isinstance(el, (bytes, str))): + for sub in flatten(el): + yield sub +-- +GitLab + diff --git a/dev-lang/ghc/files/ghc-9.0.2-modorigin.patch b/dev-lang/ghc/files/ghc-9.0.2-modorigin.patch new file mode 100644 index 000000000000..3c7053778e98 --- /dev/null +++ b/dev-lang/ghc/files/ghc-9.0.2-modorigin.patch @@ -0,0 +1,24 @@ +diff --git a/compiler/GHC/Unit/State.hs b/compiler/GHC/Unit/State.hs +index cefa5e5058bf68e68aaafadad0c7874189bf8225..92b38443c8378eb69db19a40d23abca47d6acee8 100644 +--- a/compiler/GHC/Unit/State.hs ++++ b/compiler/GHC/Unit/State.hs +@@ -224,14 +224,16 @@ fromFlag :: ModuleOrigin + fromFlag = ModOrigin Nothing [] [] True + + instance Semigroup ModuleOrigin where +- ModOrigin e res rhs f <> ModOrigin e' res' rhs' f' = ++ x@(ModOrigin e res rhs f) <> y@(ModOrigin e' res' rhs' f') = + ModOrigin (g e e') (res ++ res') (rhs ++ rhs') (f || f') + where g (Just b) (Just b') + | b == b' = Just b +- | otherwise = panic "ModOrigin: package both exposed/hidden" ++ | otherwise = pprPanic "ModOrigin: package both exposed/hidden" $ ++ text "x: " <> ppr x $$ text "y: " <> ppr y + g Nothing x = x + g x Nothing = x +- _x <> _y = panic "ModOrigin: hidden module redefined" ++ x <> y = pprPanic "ModOrigin: hidden module redefined" $ ++ text "x: " <> ppr x $$ text "y: " <> ppr y + + instance Monoid ModuleOrigin where + mempty = ModOrigin Nothing [] [] False diff --git a/dev-lang/ghc/files/ghc-9.0.2-verbose-modunusable.patch b/dev-lang/ghc/files/ghc-9.0.2-verbose-modunusable.patch new file mode 100644 index 000000000000..13d12efdc0ec --- /dev/null +++ b/dev-lang/ghc/files/ghc-9.0.2-verbose-modunusable.patch @@ -0,0 +1,12 @@ +diff -urN ghc-9.0.2/compiler/GHC/Unit/State.hs ghc-9.0.2-r1/compiler/GHC/Unit/State.hs +--- ghc-9.0.2/compiler/GHC/Unit/State.hs 2021-10-19 05:20:00.000000000 -0600 ++++ ghc-9.0.2-r1/compiler/GHC/Unit/State.hs 2022-02-17 01:04:05.117930250 -0700 +@@ -194,7 +194,7 @@ + + instance Outputable ModuleOrigin where + ppr ModHidden = text "hidden module" +- ppr (ModUnusable _) = text "unusable module" ++ ppr (ModUnusable reason) = text "unusable module" $$ ppr reason + ppr (ModOrigin e res rhs f) = sep (punctuate comma ( + (case e of + Nothing -> [] diff --git a/dev-lang/ghc/ghc-9.0.2.ebuild b/dev-lang/ghc/ghc-9.0.2.ebuild new file mode 100644 index 000000000000..b39fe464ab9a --- /dev/null +++ b/dev-lang/ghc/ghc-9.0.2.ebuild @@ -0,0 +1,824 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# to make make a crosscompiler use crossdev and symlink ghc tree into +# cross overlay. result would look like 'cross-sparc-unknown-linux-gnu/ghc' +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} = ${CHOST} ]] ; then + if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then + export CTARGET=${CATEGORY/cross-} + fi +fi + +PYTHON_COMPAT=( python3_{8..10} ) +inherit python-any-r1 +inherit autotools bash-completion-r1 eutils flag-o-matic ghc-package +inherit multilib multiprocessing pax-utils toolchain-funcs prefix +inherit check-reqs +DESCRIPTION="The Glasgow Haskell Compiler" +HOMEPAGE="https://www.haskell.org/ghc/" + +# we don't have any binaries yet +arch_binaries="" + +BIN_PV=${PV} +# sorted! +#arch_binaries="$arch_binaries alpha? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-alpha.tbz2 )" +#arch_binaries="$arch_binaries arm? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-armv7a-hardfloat-linux-gnueabi.tbz2 )" +#arch_binaries="$arch_binaries arm64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-aarch64-unknown-linux-gnu.tbz2 )" +arch_binaries="$arch_binaries amd64? ( https://eidetic.codes/ghc-bin-${PV}-x86_64-pc-linux-gnu.tbz2 )" +#arch_binaries="$arch_binaries ia64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ia64-fixed-fiw.tbz2 )" +#arch_binaries="$arch_binaries ppc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc.tbz2 )" +#arch_binaries="$arch_binaries ppc64? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-ppc64.tbz2 )" +#arch_binaries="$arch_binaries ppc64? ( !big-endian? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-powerpc64le-unknown-linux-gnu.tbz2 ) )" +#arch_binaries="$arch_binaries sparc? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-sparc.tbz2 )" +arch_binaries="$arch_binaries x86? ( https://eidetic.codes/ghc-bin-${PV}-i686-pc-linux-gnu.tbz2 )" + +# various ports: +#arch_binaries="$arch_binaries x86-fbsd? ( https://slyfox.uni.cx/~slyfox/distfiles/ghc-bin-${PV}-x86-fbsd.tbz2 )" + +# 0 - yet +yet_binary() { + case "${ARCH}" in + #alpha) return 0 ;; + #arm64) return 0 ;; + #arm) return 0 ;; + amd64) return 0 ;; + #ia64) return 0 ;; + #ppc) return 0 ;; + #ppc64) + # use big-endian && return 0 + # return 0 + # ;; + #sparc) return 0 ;; + x86) return 0 ;; + *) return 1 ;; + esac +} + +GHC_PV=${PV} +#GHC_PV=8.10.0.20200123 # uncomment only for -alpha, -beta, -rc ebuilds +GHC_P=${PN}-${GHC_PV} # using ${P} is almost never correct + +SRC_URI="!binary? ( + https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-src.tar.xz + test? ( https://downloads.haskell.org/ghc/${PV/_/-}/${GHC_P}-testsuite.tar.xz ) +)" +S="${WORKDIR}"/${GHC_P} + +[[ -n $arch_binaries ]] && SRC_URI+=" !ghcbootstrap? ( $arch_binaries )" + +BUMP_LIBRARIES=( + # "hackage-name hackage-version" +) + +LICENSE="BSD" +SLOT="0/${PV}" +KEYWORDS="" +IUSE="big-endian +doc elfutils ghcbootstrap ghcmakebinary +gmp numa profile test" +IUSE+=" binary" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-lang/perl-5.6.1 + dev-libs/gmp:0= + sys-libs/ncurses:=[unicode(+)] + elfutils? ( dev-libs/elfutils ) + !ghcmakebinary? ( dev-libs/libffi:= ) + numa? ( sys-process/numactl ) +" + +# This set of dependencies is needed to run +# prebuilt ghc. We specifically avoid ncurses +# dependency with: +# utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING +PREBUILT_BINARY_DEPENDS=" + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.17 ) ) +" +# This set of dependencies is needed to install +# ghc[binary] in system. terminfo package is linked +# against ncurses. +PREBUILT_BINARY_RDEPENDS="${PREBUILT_BINARY_DEPENDS} + sys-libs/ncurses:0/6 +" + +RDEPEND+="binary? ( ${PREBUILT_BINARY_RDEPENDS} )" + +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( app-text/docbook-xml-dtd:4.2 + app-text/docbook-xml-dtd:4.5 + app-text/docbook-xsl-stylesheets + dev-python/sphinx + >=dev-libs/libxslt-1.1.2 ) + !ghcbootstrap? ( ${PREBUILT_BINARY_DEPENDS} ) + test? ( ${PYTHON_DEPS} ) +" + +needs_python() { + # test driver is written in python + use test && return 0 + return 1 +} + +# we build binaries without profiling support +REQUIRED_USE=" + ?? ( ghcbootstrap binary ) + ?? ( profile binary ) +" + +# haskell libraries built with cabal in configure mode, #515354 +QA_CONFIGURE_OPTIONS+=" --with-compiler --with-gcc" + +is_crosscompile() { + [[ ${CHOST} != ${CTARGET} ]] +} + +is_native() { + [[ ${CHOST} == ${CBUILD} ]] && [[ ${CHOST} == ${CTARGET} ]] +} + +if ! is_crosscompile; then + PDEPEND="!ghcbootstrap? ( >=app-admin/haskell-updater-1.2 )" +fi + +# returns tool prefix for crosscompiler. +# Example: +# CTARGET=armv7a-unknown-linux-gnueabi +# CHOST=x86_64-pc-linux-gnu +# "armv7a-unknown-linux-gnueabi-" +# CTARGET=${CHOST} +# "" +# Used in tools and library prefix: +# "${ED}"/usr/bin/$(cross)haddock +# "${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d" + +cross() { + if is_crosscompile; then + echo "${CTARGET}-" + else + echo "" + fi +} + +append-ghc-cflags() { + local persistent compile assemble link + local flag ghcflag + + for flag in $*; do + case ${flag} in + persistent) persistent="yes";; + compile) compile="yes";; + assemble) assemble="yes";; + link) link="yes";; + *) + [[ ${compile} ]] && ghcflag="-optc${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" && + [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}" + [[ ${assemble} ]] && ghcflag="-opta${flag}" CFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" && + [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}" + [[ ${link} ]] && ghcflag="-optl${flag}" LDFLAGS+=" ${flag}" && GHC_FLAGS+=" ${ghcflag}" && + [[ ${persistent} ]] && GHC_PERSISTENT_FLAGS+=" ${ghcflag}" + ;; + esac + done +} + +# $1 - lib name (under libraries/) +# $2 - lib version +# example: bump_lib "transformers" "0.4.2.0" +bump_lib() { + local pn=$1 pv=$2 + local p=${pn}-${pv} + local f + + einfo "Bumping ${pn} up to ${pv}" + + for f in ghc.mk GNUmakefile; do + mv libraries/"${pn}"/$f "${WORKDIR}"/"${p}"/$f || die + done + mv libraries/"${pn}" "${WORKDIR}"/"${pn}".old || die + mv "${WORKDIR}"/"${p}" libraries/"${pn}" || die +} + +update_SRC_URI() { + local p pn pv + for p in "${BUMP_LIBRARIES[@]}"; do + set -- $p + pn=$1 pv=$2 + + SRC_URI+=" https://hackage.haskell.org/package/${pn}-${pv}/${pn}-${pv}.tar.gz" + done +} + +update_SRC_URI + +bump_libs() { + local p pn pv + for p in "${BUMP_LIBRARIES[@]}"; do + set -- $p + pn=$1 pv=$2 + + bump_lib "${pn}" "${pv}" + done +} + +ghc_setup_cflags() { + # TODO: plumb CFLAGS and BUILD_CFLAGS to respective CONF_CC_OPTS_STAGE<N> + if ! is_native; then + export CFLAGS=${GHC_CFLAGS-"-O2 -pipe"} + export LDFLAGS=${GHC_LDFLAGS-"-Wl,-O1"} + einfo "Crosscompiling mode:" + einfo " CHOST: ${CHOST}" + einfo " CTARGET: ${CTARGET}" + einfo " CFLAGS: ${CFLAGS}" + einfo " LDFLAGS: ${LDFLAGS}" + einfo " prefix: $(cross)" + return + fi + # We need to be very careful with the CFLAGS we ask ghc to pass through to + # gcc. There are plenty of flags which will make gcc produce output that + # breaks ghc in various ways. The main ones we want to pass through are + # -mcpu / -march flags. These are important for arches like alpha & sparc. + # We also use these CFLAGS for building the C parts of ghc, ie the rts. + strip-flags + strip-unsupported-flags + + # Cmm can't parse line numbers #482086 + replace-flags -ggdb[3-9] -ggdb2 + + GHC_FLAGS="" + GHC_PERSISTENT_FLAGS="" + for flag in ${CFLAGS}; do + case ${flag} in + + # Ignore extra optimisation (ghc passes -O to gcc anyway) + # -O2 and above break on too many systems + -O*) ;; + + # Arch and ABI flags are what we're really after + -m*) append-ghc-cflags compile assemble ${flag};; + + # Sometimes it's handy to see backtrace of RTS + # to get an idea what happens there + -g*) append-ghc-cflags compile ${flag};; + + # Ignore all other flags, including all -f* flags + esac + done + + for flag in ${LDFLAGS}; do + append-ghc-cflags link ${flag} + done + + # GHC uses ${CBUILD}-gcc, ${CHOST}-gcc and ${CTARGET}-gcc at a single build. + # Skip any gentoo-specific tweaks for cross-case to avoid passing unsupported + # options to gcc. + if is_native; then + # prevent from failing to build unregisterised ghc: + # https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg171602.html + use ppc64 && append-ghc-cflags persistent compile -mminimal-toc + fi +} + +# substitutes string $1 to $2 in files $3 $4 ... +relocate_path() { + local from=$1 + local to=$2 + shift 2 + local file= + for file in "$@" + do + sed -i -e "s|$from|$to|g" \ + "$file" || die "path relocation failed for '$file'" + done +} + +# changes hardcoded ghc paths and updates package index +# $1 - new absolute root path +relocate_ghc() { + local to=$1 ghc_v=${BIN_PV} + + # libdir for prebuilt binary and for current system may mismatch + # It does for prefix installation for example: bug #476998 + local bin_ghc_prefix=${WORKDIR}/usr + local bin_libpath=$(echo "${bin_ghc_prefix}"/lib*) + local bin_libdir=${bin_libpath#${bin_ghc_prefix}/} + + # backup original script to use it later after relocation + local gp_back="${T}/ghc-pkg-${ghc_v}-orig" + cp "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" "$gp_back" || die "unable to backup ghc-pkg wrapper" + + if [[ ${bin_libdir} != $(get_libdir) ]]; then + einfo "Relocating '${bin_libdir}' to '$(get_libdir)' (bug #476998)" + # moving the dir itself is not strictly needed + # but then USE=binary would result in installing + # in '${bin_libdir}' + mv "${bin_ghc_prefix}/${bin_libdir}" "${bin_ghc_prefix}/$(get_libdir)" || die + + relocate_path "/usr/${bin_libdir}" "/usr/$(get_libdir)" \ + "${WORKDIR}/usr/bin/ghc-${ghc_v}" \ + "${WORKDIR}/usr/bin/ghci-${ghc_v}" \ + "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \ + "${WORKDIR}/usr/bin/hsc2hs" \ + "${WORKDIR}/usr/bin/runghc-${ghc_v}" \ + "$gp_back" \ + "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"* + fi + + # Relocate from /usr to ${EPREFIX}/usr + relocate_path "/usr" "${to}/usr" \ + "${WORKDIR}/usr/bin/ghc-${ghc_v}" \ + "${WORKDIR}/usr/bin/ghci-${ghc_v}" \ + "${WORKDIR}/usr/bin/ghc-pkg-${ghc_v}" \ + "${WORKDIR}/usr/bin/haddock-ghc-${ghc_v}" \ + "${WORKDIR}/usr/bin/hp2ps" \ + "${WORKDIR}/usr/bin/hpc" \ + "${WORKDIR}/usr/bin/hsc2hs" \ + "${WORKDIR}/usr/bin/runghc-${ghc_v}" \ + "${WORKDIR}/usr/$(get_libdir)/${PN}-${ghc_v}/package.conf.d/"* + + # this one we will use to regenerate cache + # so it should point to current tree location + relocate_path "/usr" "${WORKDIR}/usr" "$gp_back" + + if use prefix; then + hprefixify "${bin_libpath}"/${PN}*/settings + fi + + # regenerate the binary package cache + "$gp_back" recache || die "failed to update cache after relocation" + rm "$gp_back" +} + +ghc-check-reqs() { + # These are pessimistic values (slightly bigger than worst-case) + # Worst case is UNREG USE=profile ia64. See bug #611866 for some + # numbers on various arches. + CHECKREQS_DISK_BUILD=8G + CHECKREQS_DISK_USR=2G + # USE=binary roughly takes + use binary && CHECKREQS_DISK_BUILD=4G + + "$@" +} + +pkg_pretend() { + ghc-check-reqs check-reqs_pkg_pretend +} + +pkg_setup() { + ghc-check-reqs check-reqs_pkg_setup + + # quiet portage about prebuilt binaries + use binary && QA_PREBUILT="*" + + [[ ${MERGE_TYPE} == binary ]] && return + + if use ghcbootstrap; then + ewarn "You requested ghc bootstrapping, this is usually only used" + ewarn "by Gentoo developers to make binary .tbz2 packages." + + [[ -z $(type -P ghc) ]] && \ + die "Could not find a ghc to bootstrap with." + else + if ! yet_binary; then + eerror "Please try emerging with USE=ghcbootstrap and report build" + eerror "sucess or failure to the haskell team (haskell@gentoo.org)" + die "No binary available for '${ARCH}' arch yet, USE=ghcbootstrap" + fi + fi + + if needs_python; then + python-any-r1_pkg_setup + fi +} + +src_unpack() { + # Create the ${S} dir if we're using the binary version + use binary && mkdir "${S}" + + # the Solaris and Darwin binaries from ghc (maeder) need to be + # unpacked separately, so prevent them from being unpacked + local ONLYA=${A} + case ${CHOST} in + *-darwin* | *-solaris*) ONLYA=${GHC_P}-src.tar.xz ;; + esac + unpack ${ONLYA} +} + +src_prepare() { + ghc_setup_cflags + + if ! use ghcbootstrap && [[ ${CHOST} != *-darwin* && ${CHOST} != *-solaris* ]]; then + # Modify the wrapper script from the binary tarball to use GHC_PERSISTENT_FLAGS. + # See bug #313635. + sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \ + "${WORKDIR}/usr/bin/ghc-${BIN_PV}" + + # allow hardened users use vanilla binary to bootstrap ghc + # ghci uses mmap with rwx protection at it implements dynamic + # linking on it's own (bug #299709) + pax-mark -m "${WORKDIR}/usr/$(get_libdir)/${PN}-${BIN_PV}/bin/ghc" + fi + + if use binary; then + if use prefix; then + relocate_ghc "${EPREFIX}" + fi + + # Move unpacked files to the expected place + mv "${WORKDIR}/usr" "${S}" + eapply_user + else + if ! use ghcbootstrap; then + case ${CHOST} in + *-darwin* | *-solaris*) + # UPDATE ME for ghc-7 + mkdir "${WORKDIR}"/ghc-bin-installer || die + pushd "${WORKDIR}"/ghc-bin-installer > /dev/null || die + use sparc-solaris && unpack ghc-6.10.4-sparc-sun-solaris2.tar.bz2 + use x86-solaris && unpack ghc-7.0.3-i386-unknown-solaris2.tar.bz2 + use x86-macos && unpack ghc-7.4.1-i386-apple-darwin.tar.bz2 + use x64-macos && unpack ghc-7.4.1-x86_64-apple-darwin.tar.bz2 + popd > /dev/null + + pushd "${WORKDIR}"/ghc-bin-installer/ghc-[67].?*.? > /dev/null || die + # fix the binaries so they run, on Solaris we need an + # LD_LIBRARY_PATH which has our prefix libdirs, on + # Darwin we need to replace the frameworks with our libs + # from the prefix fix before installation, because some + # of the tools are actually used during configure/make + if [[ ${CHOST} == *-solaris* ]] ; then + export LD_LIBRARY_PATH="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir):${LD_LIBRARY_PATH}" + elif [[ ${CHOST} == *-darwin* ]] ; then + local readline_framework=GNUreadline.framework/GNUreadline + local gmp_framework=/opt/local/lib/libgmp.10.dylib + local ncurses_file=/opt/local/lib/libncurses.5.dylib + for binary in $(scanmacho -BRE MH_EXECUTE -F '%F' .) ; do + install_name_tool -change \ + ${readline_framework} \ + "${EPREFIX}"/lib/libreadline.dylib \ + ${binary} || die + install_name_tool -change \ + ${gmp_framework} \ + "${EPREFIX}"/usr/lib/libgmp.dylib \ + ${binary} || die + install_name_tool -change \ + ${ncurses_file} \ + "${EPREFIX}"/usr/lib/libncurses.dylib \ + ${binary} || die + done + # we don't do frameworks! + sed -i \ + -e 's/\(frameworks = \)\["GMP"\]/\1[]/g' \ + -e 's/\(extraLibraries = \)\["m"\]/\1["m","gmp"]/g' \ + rts/package.conf.in || die + fi + + # it is autoconf, but we really don't want to give it too + # many arguments, in fact we do the make in-place anyway + ./configure --prefix="${WORKDIR}"/usr || die + make install || die + popd > /dev/null + ;; + *) + relocate_ghc "${WORKDIR}" + ;; + esac + fi + + sed -i -e "s|\"\$topdir\"|\"\$topdir\" ${GHC_PERSISTENT_FLAGS}|" \ + "${S}/ghc/ghc.wrapper" + + cd "${S}" # otherwise eapply will break + + eapply "${FILESDIR}"/${PN}-9.0.2-CHOST-prefix.patch + eapply "${FILESDIR}"/${PN}-9.0.2-darwin.patch + + # Below patch should not be needed by ghc-9.2 + eapply "${FILESDIR}"/${PN}-9.0.2-modorigin.patch + + # ModUnusable pretty-printing should include the reason + eapply "${FILESDIR}/${PN}-9.0.2-verbose-modunusable.patch" + + # Needed for testing with python-3.10 + use test && eapply "${FILESDIR}/${PN}-9.0.2-fix-tests-python310.patch" + + #needs a port? + #eapply "${FILESDIR}"/${PN}-8.8.1-revert-CPP.patch + eapply "${FILESDIR}"/${PN}-8.10.1-allow-cross-bootstrap.patch + #eapply "${FILESDIR}"/${PN}-8.10.3-C99-typo-ac270.patch + + # a bunch of crosscompiler patches + # needs newer version: + #eapply "${FILESDIR}"/${PN}-8.2.1_rc1-hp2ps-cross.patch + + # mingw32 target + pushd "${S}/libraries/Win32" + eapply "${FILESDIR}"/${PN}-8.2.1_rc1-win32-cross-2-hack.patch # bad workaround + popd + + bump_libs + + eapply_user + # as we have changed the build system + eautoreconf + fi +} + +src_configure() { + if ! use binary; then + # initialize build.mk + echo '# Gentoo changes' > mk/build.mk + + # Put docs into the right place, ie /usr/share/doc/ghc-${GHC_PV} + echo "docdir = ${EPREFIX}/usr/share/doc/$(cross)${PF}" >> mk/build.mk + echo "htmldir = ${EPREFIX}/usr/share/doc/$(cross)${PF}" >> mk/build.mk + + # We also need to use the GHC_FLAGS flags when building ghc itself + echo "SRC_HC_OPTS+=${HCFLAGS} ${GHC_FLAGS}" >> mk/build.mk + echo "SRC_CC_OPTS+=${CFLAGS}" >> mk/build.mk + echo "SRC_LD_OPTS+=${LDFLAGS}" >> mk/build.mk + # Speed up initial Cabal bootstrap + echo "utils/ghc-cabal_dist_EXTRA_HC_OPTS+=$(ghc-make-args)" >> mk/build.mk + + # We can't depend on haddock except when bootstrapping when we + # must build docs and include them into the binary .tbz2 package + # app-text/dblatex is not in portage, can not build PDF or PS + echo "BUILD_SPHINX_PDF = NO" >> mk/build.mk + echo "BUILD_SPHINX_HTML = $(usex doc YES NO)" >> mk/build.mk + echo "BUILD_MAN = $(usex doc YES NO)" >> mk/build.mk + + # this controls presence on 'xhtml' and 'haddock' in final install + echo "HADDOCK_DOCS = YES" >> mk/build.mk + + # not used outside of ghc's test + if [[ -n ${GHC_BUILD_DPH} ]]; then + echo "BUILD_DPH = YES" >> mk/build.mk + else + echo "BUILD_DPH = NO" >> mk/build.mk + fi + + # Any non-native build has to skip as it needs + # target haddock binary to be runnabine. + if ! is_native; then + # disable docs generation as it requires running stage2 + echo "HADDOCK_DOCS=NO" >> mk/build.mk + echo "BUILD_SPHINX_HTML=NO" >> mk/build.mk + echo "BUILD_SPHINX_PDF=NO" >> mk/build.mk + fi + + if is_crosscompile; then + # Install ghc-stage1 crosscompiler instead of + # ghc-stage2 cross-built compiler. + echo "Stage1Only=YES" >> mk/build.mk + fi + + # allows overriding build flavours for libraries: + # v - vanilla (static libs) + # p - profiled + # dyn - shared libraries + # example: GHC_LIBRARY_WAYS="v dyn" + if [[ -n ${GHC_LIBRARY_WAYS} ]]; then + echo "GhcLibWays=${GHC_LIBRARY_WAYS}" >> mk/build.mk + fi + echo "BUILD_PROF_LIBS = $(usex profile YES NO)" >> mk/build.mk + + # Get ghc from the unpacked binary .tbz2 + # except when bootstrapping we just pick ghc up off the path + if ! use ghcbootstrap; then + export PATH="${WORKDIR}/usr/bin:${PATH}" + fi + + echo "BIGNUM_BACKEND = $(usex gmp gmp native)" >> mk/build.mk + + # don't strip anything. Very useful when stage2 SIGSEGVs on you + echo "STRIP_CMD = :" >> mk/build.mk + + local econf_args=() + + # GHC embeds toolchain it was built by and uses it later. + # Don't allow things like ccache or versioned binary slip. + # We use stable thing across gcc upgrades. + # User can use EXTRA_ECONF=CC=... to override this default. + econf_args+=( + AR=${CTARGET}-ar + CC=${CTARGET}-gcc + # these should be inferred by GHC but ghc defaults + # to using bundled tools on windows. + Windres=${CTARGET}-windres + DllWrap=${CTARGET}-dllwrap + # we set the linker explicitly below + --disable-ld-override + ) + case ${CTARGET} in + arm*) + # ld.bfd-2.28 does not work for ghc. Force ld.gold + # instead. This should be removed once gentoo gets + # a fix for R_ARM_COPY bug: https://sourceware.org/PR16177 + econf_args+=(LD=${CTARGET}-ld.gold) + ;; + sparc*) + # ld.gold-2.28 does not work for ghc. Force ld.bfd + # instead. This should be removed once gentoo gets + # a fix for missing --no-relax support bug: + # https://sourceware.org/ml/binutils/2017-07/msg00183.html + econf_args+=(LD=${CTARGET}-ld.bfd) + ;; + *) + econf_args+=(LD=${CTARGET}-ld) + esac + + if [[ ${CBUILD} != ${CHOST} ]]; then + # GHC bug: ghc claims not to support cross-building. + # It does, but does not distinct --host= value + # for stage1 and stage2 compiler. + econf_args+=(--host=${CBUILD}) + fi + + if use ghcmakebinary; then + # When building booting libary we are trying to + # bundle or restrict most of external depends + # with unstable ABI: + # - embed libffi (default GHC behaviour) + # - disable ncurses support for ghci (via haskeline) + # https://bugs.gentoo.org/557478 + # - disable ncurses support for ghc-pkg + echo "libraries/haskeline_CONFIGURE_OPTS += --flag=-terminfo" >> mk/build.mk + echo "utils/ghc-pkg_HC_OPTS += -DBOOTSTRAPPING" >> mk/build.mk + elif is_native; then + # using ${GTARGET}'s libffi is not supported yet: + # GHC embeds full path for ffi includes without /usr/${CTARGET} account. + econf_args+=(--with-system-libffi) + econf_args+=(--with-ffi-includes=$($(tc-getPKG_CONFIG) libffi --cflags-only-I | sed -e 's@^-I@@')) + fi + + einfo "Final mk/build.mk:" + cat mk/build.mk || die + + econf ${econf_args[@]} \ + --enable-bootstrap-with-devel-snapshot \ + $(use_enable elfutils dwarf-unwind) \ + $(use_enable numa) + + if [[ ${PV} == *9999* ]]; then + GHC_PV="$(grep 'S\[\"PACKAGE_VERSION\"\]' config.status | sed -e 's@^.*=\"\(.*\)\"@\1@')" + GHC_P=${PN}-${GHC_PV} + fi + fi # ! use binary +} + +src_compile() { + if ! use binary; then + # Stage1Only crosscompiler does not build stage2 + if ! is_crosscompile; then + # 1. build/pax-mark compiler binary first + emake ghc/stage2/build/tmp/ghc-stage2 + # 2. pax-mark (bug #516430) + pax-mark -m ghc/stage2/build/tmp/ghc-stage2 + # 2. build/pax-mark haddock using ghc-stage2 + if is_native; then + # non-native build does not build haddock + # due to HADDOCK_DOCS=NO, but it could. + emake utils/haddock/dist/build/tmp/haddock + pax-mark -m utils/haddock/dist/build/tmp/haddock + fi + fi + # 3. and then all the rest + emake all + fi # ! use binary +} + +src_test() { + # TODO: deal with: + # - sandbox (pollutes environment) + # - extra packages (to extend testsuite coverage) + # bits are taken from 'validate' + local make_test_target='test' # can be fulltest + # not 'emake' as testsuite uses '$MAKE' without jobserver available + make $make_test_target stage=2 THREADS=$(makeopts_jobs) +} + +src_install() { + if use binary; then + use prefix && mkdir -p "${ED}" + mv "${S}/usr" "${ED}" + else + [[ -f VERSION ]] || emake VERSION + + # -j1 due to a rare race in install script: + # make --no-print-directory -f ghc.mk phase=final install + # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 755 \ + # -d "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404/include" + # /usr/lib/portage/python3.4/ebuild-helpers/xattr/install -c -m 644 utils/hsc2hs/template-hsc.h \ + # "/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404" + # /usr/bin/install: cannot create regular file \ + # '/tmp/portage-tmpdir/portage/cross-armv7a-unknown-linux-gnueabi/ghc-9999/image/usr/lib64/armv7a-unknown-linux-gnueabi-ghc-8.3.20170404': No such file or directory + emake -j1 install DESTDIR="${D}" + + # Skip for cross-targets as they all share target location: + # /usr/share/doc/ghc-9999/ + if ! is_crosscompile; then + dodoc "distrib/README" "LICENSE" "VERSION" + fi + + # rename ghc-shipped files to avoid collision + # of external packages. Motivating example: + # user had installed: + # dev-lang/ghc-7.8.4-r0 (with transformers-0.3.0.0) + # dev-haskell/transformers-0.4.2.0 + # then user tried to update to + # dev-lang/ghc-7.8.4-r1 (with transformers-0.4.2.0) + # this will lead to single .conf file collision. + local shipped_conf renamed_conf + local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d" + for shipped_conf in "${package_confdir}"/*.conf; do + # rename 'pkg-ver-id.conf' to 'pkg-ver-id-gentoo-${PF}.conf' + renamed_conf=${shipped_conf%.conf}-gentoo-${PF}.conf + mv "${shipped_conf}" "${renamed_conf}" || die + done + + # remove link, but leave 'haddock-${GHC_P}' + rm -f "${ED}"/usr/bin/$(cross)haddock + + if ! is_crosscompile; then + newbashcomp "${FILESDIR}"/ghc-bash-completion ghc-pkg + newbashcomp utils/completion/ghc.bash ghc + fi + fi + + # path to the package.cache + local package_confdir="${ED}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d" + PKGCACHE="${package_confdir}"/package.cache + # copy the package.conf.d, including timestamp, save it so we can help + # users that have a broken package.conf.d + cp -pR "${package_confdir}"{,.initial} || die "failed to backup intial package.conf.d" + + # copy the package.conf, including timestamp, save it so we later can put it + # back before uninstalling, or when upgrading. + cp -p "${PKGCACHE}"{,.shipped} \ + || die "failed to copy package.conf.d/package.cache" + + if is_crosscompile; then + # When we build a cross-compiler the layout is the following: + # usr/lib/${CTARGET}-ghc-${VER}/ contains target libraries + # but + # usr/lib/${CTARGET}-ghc-${VER}/bin/ directory + # containst host binaries (modulo bugs). + + # Portage's stripping mechanism does not skip stripping + # foreign binaries. This frequently causes binaries to be + # broken. + # + # Thus below we disable stripping of target libraries and allow + # stripping hosts executables. + dostrip -x "/usr/$(get_libdir)/$(cross)${GHC_P}" + dostrip "/usr/$(get_libdir)/$(cross)${GHC_P}/bin" + fi +} + +pkg_preinst() { + # have we got an earlier version of ghc installed? + if has_version "<${CATEGORY}/${PF}"; then + haskell_updater_warn="1" + fi +} + +pkg_postinst() { + ghc-reregister + + # path to the package.cache + PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache" + + # give the cache a new timestamp, it must be as recent as + # the package.conf.d directory. + touch "${PKGCACHE}" + + if [[ "${haskell_updater_warn}" == "1" ]]; then + ewarn + ewarn "\e[1;31m************************************************************************\e[0m" + ewarn + ewarn "You have just upgraded from an older version of GHC." + ewarn "You may have to run" + ewarn " 'haskell-updater'" + ewarn "to rebuild all ghc-based Haskell libraries." + ewarn + ewarn "\e[1;31m************************************************************************\e[0m" + ewarn + fi +} + +pkg_prerm() { + PKGCACHE="${EROOT}/usr/$(get_libdir)/$(cross)${GHC_P}/package.conf.d/package.cache" + rm -rf "${PKGCACHE}" + + cp -p "${PKGCACHE}"{.shipped,} +} + +pkg_postrm() { + ghc-package_pkg_postrm +} diff --git a/dev-lang/icon/Manifest b/dev-lang/icon/Manifest index a14735c1921c..015434ac85c5 100644 --- a/dev-lang/icon/Manifest +++ b/dev-lang/icon/Manifest @@ -1,3 +1,5 @@ DIST icon-9.5.20i.tar.gz 3138826 BLAKE2B adb4010926f2a7bbfc03c12c1c669ac202c41949556fafdf8f6e41be418e329c5c4b0697a1af0eddd0cb6acd65d03dedabf171be99ba6e5c80a92fac91323027 SHA512 31f43f0ff672e81b459c8364960b780733820000c31405ddcd13d14927f065b48d1fae47aeb90a2cd31b65340c77ec7f85e8da27797fb186fa49474e7c8be394 +DIST icon-9.5.21b.tar.gz 3138053 BLAKE2B dbd507e28d51458b4e7fcc47088e8e8a4b8e1ef06a03af95180f3398caf7a74215a379d4a1c19632a501849e9a9226bd129f6404d4d20385bd07f474908b0745 SHA512 db54b0f858c32877bd72dea8c3cec06de7faaa0393ae56a19f6d6a212337c99ef50d698ef0b486369955f86d657a2e888a8b1c4e0e95328f5a67fbd9dce5d74b EBUILD icon-9.5.20i.ebuild 3393 BLAKE2B 1cebf50867a91fa647634f8633b150c18eee036cd3466bf30aab3efb82941bd56eefba71b3d3ff0f1157c2a080444966c7b5731b833da5032bc7a3a4049a0745 SHA512 5de2efbee89b94ee1b043e65caf6c6da5a899f5c7eb46a0942fd4ec77f1307db93bdc78ee5e5d06bd4c9a20ec9d793ebd5aebae166c3e3cea8f0ecba0240b8fb +EBUILD icon-9.5.21b.ebuild 3399 BLAKE2B 2a98332741de3650b5a52906e73025628735c8e38f23b2172b22b8389ef886ca21a1b9e234b3a9975cee9409246998297638e76f61e528cef9507ded0a0ecd57 SHA512 5cbfb4e14dd908f898c6b4c63889340635b42a8ecd18a701fa9dc6a0737077fa608fb3d80a04f552d989fb05589b249d621f76afd660bd8377c2636e0d5d7a96 MISC metadata.xml 410 BLAKE2B 5f65752284d58a7678eb4e338e2d4c03e9e098dd8cbd28aeb7a0276bebe2a925cb4b00325ace7edad24c94e33664c1aafda84f3f4348e57bd02a7b655f7a29ac SHA512 d05b0eaffd002eeb0e9088d43847304bd1346cf4da75c801e3663518a3fbac77bba1b2fed04ac422bedfe1220109f00d1b3809d04a0e7edd4c418088dd010d89 diff --git a/dev-lang/icon/icon-9.5.21b.ebuild b/dev-lang/icon/icon-9.5.21b.ebuild new file mode 100644 index 000000000000..06cf626294d8 --- /dev/null +++ b/dev-lang/icon/icon-9.5.21b.ebuild @@ -0,0 +1,123 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="Very high level language" +HOMEPAGE="http://www.cs.arizona.edu/icon/" + +SRC_URI="https://github.com/gtownsend/icon/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="public-domain HPND" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +IUSE="X" + +S="${WORKDIR}/icon-${PV}" + +RDEPEND=" + X? ( x11-libs/libX11:= )" +DEPEND=" + ${RDEPEND} + X? ( + x11-libs/libXpm + x11-libs/libXt + )" + +src_prepare() { + default + # Add CFLAGS and LDFLAGS to Makefiles as needed + sed -i -e 's/CFLAGS="$(CFLAGS)"/& LDFLAGS="$(LDFLAGS)"/g' ipl/cfuncs/Makefile || die + sed -i -e 's/^CFLAGS = \(.*\)/CFLAGS = $(CFLAGS) \1/g' ipl/packs/loadfunc/Makefile || die + sed -i -e 's/CFLAGS="$(CFLAGS)"/& LDFLAGS="$(LDFLAGS)"/g' ipl/packs/loadfunc/Makefile || die + sed -i -e 's/-o $LIBNAME $CFLAGS/& $LDFLAGS/g' ipl/cfuncs/mklib.sh || die + sed -i -e 's/$LIBNAME -fPIC/$LIBNAME -fPIC $LDFLAGS/g' ipl/cfuncs/mklib.sh || die + sed -i -e 's/$(RLINK)/& $(LDFLAGS)/g' src/runtime/Makefile || die + + # executables in src/common are only used to prep the build + sed -i -e 's/$(CC) $(CFLAGS)/& $(LDFLAGS)/g' src/common/Makefile || die + # executables in src/rtt are only used to perform the build + sed -i -e 's/$(CC) $(CFLAGS)/& $(LDFLAGS)/g' src/rtt/Makefile || die + + # do not prestrip files + find "src" -name 'Makefile' -exec sed -i -e '/strip/d' '{}' \; || die +} + +src_configure() { + # select the right compile target. Note there are many platforms + # available + local mytarget; + if [[ ${CHOST} == *-darwin* ]]; then + mytarget="macintosh" + else + mytarget="linux" + fi + + # Fails if more then one make job process. + # This is an upstream requirement. + emake -j1 $(usex X X-Configure Configure) name=${mytarget} + + # sanitise the Makedefs file generated by 'make Configure' + sed -i \ + -e 's:-L/usr/X11R6/lib64::g' \ + -e 's:-L/usr/X11R6/lib::g' \ + -e 's:-I/usr/X11R6/include::g' \ + -e 's:-I/usr/X11R6/include::g' \ + -e '/^CFLAGS/d' \ + Makedefs || die "sed of Makedefs failed" + + if use elibc_musl; then + append-flags "-D_MUSL" + fi + append-flags $(test-flags -fno-strict-aliasing -fwrapv) +} + +src_compile() { + # Fails if more then one make job process. + # This is an upstream requirement. + emake -j1 CC="$(tc-getCC)" CFLAGS="${CFLAGS}" +} + +src_test() { + emake Samples + emake Test +} + +src_install() { + # Needed for make Install + dodir /usr/$(get_libdir) + + emake Install dest="${D}/usr/$(get_libdir)/icon" + dosym ../$(get_libdir)/icon/bin/icont /usr/bin/icont + dosym ../$(get_libdir)/icon/bin/iconx /usr/bin/iconx + dosym ../$(get_libdir)/icon/bin/icon /usr/bin/icon + if use X; then + dosym ../$(get_libdir)/icon/bin/vib /usr/bin/vib + fi + + cd "${S}/man/man1" || die + doman "${PN}"t.1 + doman "${PN}".1 + + cd "${S}/doc" || die + local DOCS=( *.txt ../README ) + + local HTML_DOCS=( *.{htm,gif,jpg,css} ) + einstalldocs + + # Clean up items from make Install that get installed elsewhere + rm -r "${ED}"/usr/$(get_libdir)/${PN}/man || die + rm -r "${ED}"/usr/$(get_libdir)/icon/{doc,README} || die + + cd "${S}" || die + + # Install Icon Programming Library files + + # Remove files only needed for building the library before copying + rm -v ipl/{BuildBin,BuildExe,CheckAll,Makefile} || die + + insinto /usr/$(get_libdir)/icon + doins -r ipl +} diff --git a/dev-lang/janet/Manifest b/dev-lang/janet/Manifest index fdff342db0bb..eee1ae76cb7c 100644 --- a/dev-lang/janet/Manifest +++ b/dev-lang/janet/Manifest @@ -1,5 +1,3 @@ -DIST janet-1.17.2.tar.gz 488524 BLAKE2B 33e801eb10b46d44a36b95bd29ea318ab3daa88654f47e12303344d2362a2ecc0d0f2ab9371d9539e0787df08664f503ee268b7acf967bd74a929992bc3ea2be SHA512 608ae20992d90cd93a364239c967fef8fdd1c631f1777211d916c6dc16cac5f007f52565bdf24cc0f8af1f521a0977a7245a3c137fc3b61583c2900e26fee81c -DIST janet-1.19.2.tar.gz 486633 BLAKE2B 420b98218cf6a592ab385f5d9432d9e8ae98fe0a4b9c294aa2783e3ee810d256ef1ccf17c3986d7e490e4fcc046cb9a25b2d0f09ada223c19104e49d703d5d33 SHA512 4181f15ad61bfba46ce87acd148166bd0ab3c5dd5fb608d8d8722b912ecfa435baa7d881d4a8163aabb1b06bca2983b108dfb7256efa854c12c136e4f24c1ef2 -EBUILD janet-1.17.2.ebuild 1720 BLAKE2B 0b6f3478a950edd5475eae1041ae5f87bd50f640ddb53a4a053e92ffbfddd9b4919e25019d18999b0786f0672b885d71f32fe58c0114f7b9d92e9f007b32cebb SHA512 df830edb0c82a7edafc257b28cf6d11f33f461651bf02f11863800e679da68bb7bcfb78f0a909d498d575bb98000504ecde5a6c1eb4ced747fd7881e3a8b47b1 -EBUILD janet-1.19.2.ebuild 1720 BLAKE2B 0b6f3478a950edd5475eae1041ae5f87bd50f640ddb53a4a053e92ffbfddd9b4919e25019d18999b0786f0672b885d71f32fe58c0114f7b9d92e9f007b32cebb SHA512 df830edb0c82a7edafc257b28cf6d11f33f461651bf02f11863800e679da68bb7bcfb78f0a909d498d575bb98000504ecde5a6c1eb4ced747fd7881e3a8b47b1 +DIST janet-1.22.0.tar.gz 494011 BLAKE2B 2193cf0d87421adb122e86347d47ef1a9d3141d7dedf4ba88ed3d0e97c1b22a8216e1e42a6431266c6fbb4dcee665db63839e90ec9e5530491c64a94b8b11b04 SHA512 c1e90dafa833618e0999a1a53005241b768dee66bf7e6d4cc60b7c7ce87fccba955ca2faafd4eacda320801667acbfc56087f423a4ad6abe7e97d1f08e136107 +EBUILD janet-1.22.0.ebuild 1720 BLAKE2B c596207c5ee0745402c0fa0572a7498d2fb31ae768088e2dccb2f64e16ce3fdff9cf934ead222c5eaca790cccb045e184bb7b0bfd6ea3682aec2eb7b25507815 SHA512 e60c148c24fcae575f29ef533c6ea1654a416e86ab22afd5d58e7a79ee60194c2632add08e81463c4815c5d558f23e346984ba2829d89a6f85f52042642972fb MISC metadata.xml 991 BLAKE2B 07e892f19d1408eb2168385bb4f7e170a72221798710a4397f60500ba9b18c9ce743bbdcc79aa8868ab0ceccd19eed5d414ba743ffc76690ab4df41499457a7c SHA512 c326a2ccbf2c7a0e043d3d86cc9ccb887773708c919709156cb1117b1df13825bcf27dd06193e91bd035917049e3577b810064687c992fddc29e1aee1b555af6 diff --git a/dev-lang/janet/janet-1.19.2.ebuild b/dev-lang/janet/janet-1.19.2.ebuild deleted file mode 100644 index 540be0ac1f9c..000000000000 --- a/dev-lang/janet/janet-1.19.2.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -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/" -SRC_URI="https://github.com/janet-lang/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="static-libs" - -MY_RELEASE="${PV::-2}" - -src_configure() { - tc-export CC - - append-ldflags -Wl,-soname,libjanet.so.1.${MY_RELEASE} - append-cflags -fPIC -} - -src_compile() { - # janet_build is the git hash of the commit related to the - # current release - it defines a constant which is then shown - # when starting janet - local janet_build='\"'${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 - - insinto /usr/include/janet - doheader src/include/janet.h - doheader src/conf/janetconf.h - - dolib.so build/libjanet.so - dosym libjanet.so /usr/$(get_libdir)/libjanet.so.${MY_RELEASE} - dosym libjanet.so.${MY_RELEASE} /usr/$(get_libdir)/libjanet.so.${PV} - - if use static-libs; then - dolib.a build/libjanet.a - fi - - doman janet.1 - - insinto /usr/$(get_libdir)/pkgconfig/ - doins build/janet.pc - - dodoc -r examples - 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/janet/janet-1.17.2.ebuild b/dev-lang/janet/janet-1.22.0.ebuild index 540be0ac1f9c..7498144c0834 100644 --- a/dev-lang/janet/janet-1.17.2.ebuild +++ b/dev-lang/janet/janet-1.22.0.ebuild @@ -1,7 +1,7 @@ -# Copyright 2021 Gentoo Authors +# Copyright 2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit flag-o-matic toolchain-funcs diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest index 2df624ca3d50..39943ddced2c 100644 --- a/dev-lang/php/Manifest +++ b/dev-lang/php/Manifest @@ -6,8 +6,10 @@ AUX php-iodbc-header-location.patch 481 BLAKE2B 9ea6a5d529dc7a8c78eeee800900372b AUX php80-firebird-warnings.patch 1949 BLAKE2B ab1b693afe26b6529aab8628f9a614478c388ed23603ad1dd4d17b63154d535a3e4c2db04fe27fb22a3d7e1335e368ffd383ed24647ac53ac05170ec3e1beb75 SHA512 d37815ea529167d4959aef056a3a0be6902ee4cda809a48c24299b05ff6477ee82e8ed8dcf49051b8e74ba5c31e3985454591ea751d4550df3d2e3639ec0d616 DIST php-7.4.30.tar.xz 10419136 BLAKE2B 5860ead4051173d3139f93be24f15c7ed2044a9e6b3488234aaca73dff8abace3adf00bde782c3fc950d81d2dfdb67979bb5b99c3587d07f5ccbe782d9cba37d SHA512 7bce44a23c07193c10c57459f08b08fdce4e3a269d6829a61371d1b1f117ecf4e167805a40e1a5e7687f534aee9d5f5745a3f4dcb344e9e781c105bc964ed738 DIST php-8.0.20.tar.xz 10879064 BLAKE2B 3b18d6593ddc78e1c289b87ba8bb65e55cbd815d2b06d4f9759265e9ae76ea6b78dc9f52652be1b1a721ccfe736f80d2a8f59c01ba4c38a8ff46710753bcc9ed SHA512 24153733111bb5104298679fb5ee02d8abad4e6b2a8e0a07c2a6076e1c9104309abe56bcb7b5fe17670c266e5e9981c520ed0ac12b699ae0050953ff99ef04fa -DIST php-8.1.7.tar.xz 11718520 BLAKE2B 145fdff9ec4ce72d4f4626b1cb11674240db4830c5ffda1cdfaa807b195d40ea70afe69ae702a2ba256961ba810b9de5151bef20352eaa98553c837c65d730e3 SHA512 1d72db220f3485310e02b67c41dd6434c26b7118f673ba7f425ff6b79cc96c86fc45bfe9c90b302d719eb9b7a5334f363a92ac309c367aacc93ab31a72a63c45 +DIST php-8.0.21.tar.xz 10785364 BLAKE2B ea8a640b47c96b235b49ce3a98accbfa4aa967c7e917684e19667a74ca0f77e070847dabdf15c3dbd56cff01ef662e79e9408d3e57e870e51893e969291a0932 SHA512 c1c1577f3d6af445d8ac15338877186f2a639a76ad980328011cb0a5e9592bdb24c1cda7ae8a0c495c881497d54cbca6e1373ede71bf097e69a040368841d567 +DIST php-8.1.8.tar.xz 11722100 BLAKE2B 117e0823b47485d4fc469edfbc5e9051b5d35588bf36a2d9e12282b83c12056cfc2a4376bf0e21b5f947190a906e3e4fdde7bec20b7ea7e9ab36912e865c2c13 SHA512 4ef03b4c412bdbcdf6c3dc4784b3218a0519e6b91a0682e796270d4426c05c62309b4835ea31271857a5f2535d00f20a9f9b4a79703a49c3e40f16fafa948dd4 EBUILD php-7.4.30.ebuild 21310 BLAKE2B f2342deede65a4c66380a77b43d26ff7d09e31a13cac7c4d44d558f619e96498ca83941b0d550d33818dc48622bbc7c92f4535b0eccd39faa5a9035f1d88ccea SHA512 55fa2460ba1e9142311b78849884b45d2fe013d6592249746b7b2c0c0e1d09ce1264a8e205639b2f4a2058e07c7fd8ae132a0862200da11b0108ab04d45712d6 EBUILD php-8.0.20.ebuild 21845 BLAKE2B 9bbc8fcd79a39502a50257ba00eb68abaa8313306d2554e3ade270203bd872fa66083a57fc10f6d4e7e46c8930efbfcf6de7c6562d2499dc262fb690db1aeb7d SHA512 af251c56145df7af13bbbcb73dce4f311af742245e5558cf062a6505526c77e45637adc99454471f5d30791ced2a9fd96438191bce71a1275df2137b85043c5c -EBUILD php-8.1.7.ebuild 21858 BLAKE2B ee7b59351797d0e5819b3216b92975bec678941aa41da1b204c06f8fe55ac4e66efb032293c0afa7927ee7a6ef9b9d51c91531e80526df2a0ad1274e4d6a114e SHA512 7f3a23f64e997439b250d43a25dece1e15ce1f722c10f11d107ffa19cb68b3baf2c89cc67db53c10fe10833d855b21f608df5cd43bf9e0091e81d3dcfefb7f13 +EBUILD php-8.0.21.ebuild 21852 BLAKE2B 11b093daf7700943d1349f68d2e0d6511b149eeeb0ea22669ad4df07cb743f6b27a1cc67a7bbf9d47a7aaba65daa44ad65755fe1185667dc7de9d4a0f8f40b57 SHA512 deb66942b30e5a2156218f9eee559d0ff9881e0d365e832f8e764f9febcfffa00021ccad3f500be60045deb6598a3f3b058eec3c99b886cbf2111c2c96c8647c +EBUILD php-8.1.8.ebuild 21858 BLAKE2B ee7b59351797d0e5819b3216b92975bec678941aa41da1b204c06f8fe55ac4e66efb032293c0afa7927ee7a6ef9b9d51c91531e80526df2a0ad1274e4d6a114e SHA512 7f3a23f64e997439b250d43a25dece1e15ce1f722c10f11d107ffa19cb68b3baf2c89cc67db53c10fe10833d855b21f608df5cd43bf9e0091e81d3dcfefb7f13 MISC metadata.xml 3150 BLAKE2B d9af858e1b9ee2b8d15a14761a86a5318a47496c892036aa8a198a008b0b627bf43772ad189c19bf73a4972ba2ff19687f85cb627bf097603dd3f531b71edcb9 SHA512 7ba0a8b9c425c1becb0931725a18f5831cc1ff4a03bcfa52cb78c3af1d1d5f5de7247840e1587d236528f14b9fb0b4aeb2b5dc3310189e667512d33a7fe022ae diff --git a/dev-lang/php/php-8.0.21.ebuild b/dev-lang/php/php-8.0.21.ebuild new file mode 100644 index 000000000000..c9ead2270c39 --- /dev/null +++ b/dev-lang/php/php-8.0.21.ebuild @@ -0,0 +1,758 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +WANT_AUTOMAKE="none" + +inherit flag-o-matic systemd autotools + +MY_PV=${PV/_rc/rc} +DESCRIPTION="The PHP language runtime engine" +HOMEPAGE="https://www.php.net/" +SRC_URI="https://www.php.net/distributions/${P}.tar.xz" + +LICENSE="PHP-3.01 + BSD + Zend-2.0 + bcmath? ( LGPL-2.1+ ) + fpm? ( BSD-2 ) + gd? ( gd ) + unicode? ( BSD-2 LGPL-2.1 )" + +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" + +S="${WORKDIR}/${PN}-${MY_PV}" + +# We can build the following SAPIs in the given order +SAPIS="embed cli cgi fpm apache2 phpdbg" + +# SAPIs and SAPI-specific USE flags (cli SAPI is default on): +IUSE="${IUSE} + ${SAPIS/cli/+cli} + threads" + +IUSE="${IUSE} acl apparmor argon2 bcmath berkdb bzip2 calendar cdb cjk + coverage +ctype curl debug + enchant exif ffi +fileinfo +filter firebird + +flatfile ftp gd gdbm gmp +iconv imap inifile + intl iodbc ipv6 +jit kerberos ldap ldap-sasl libedit lmdb + mhash mssql mysql mysqli nls + oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm + readline selinux +session session-mm sharedmem + +simplexml snmp soap sockets sodium spell sqlite ssl + sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode webp + +xml xmlreader xmlwriter xpm xslt zip zlib" + +# Without USE=readline or libedit, the interactive "php -a" CLI will hang. +# The Oracle instant client provides its own incompatible ldap library. +REQUIRED_USE=" + || ( cli cgi fpm apache2 embed phpdbg ) + cli? ( ^^ ( readline libedit ) ) + !cli? ( ?? ( readline libedit ) ) + truetype? ( gd zlib ) + webp? ( gd zlib ) + cjk? ( gd zlib ) + exif? ( gd zlib ) + xpm? ( gd zlib ) + gd? ( zlib ) + simplexml? ( xml ) + soap? ( xml ) + xmlreader? ( xml ) + xmlwriter? ( xml ) + xslt? ( xml ) + ldap-sasl? ( ldap ) + oci8-instant-client? ( !ldap ) + qdbm? ( !gdbm ) + session-mm? ( session !threads ) + mysql? ( || ( mysqli pdo ) ) + firebird? ( pdo ) + mssql? ( pdo ) +" + +RESTRICT="!test? ( test )" + +# The supported (that is, autodetected) versions of BDB are listed in +# the ./configure script. Other versions *work*, but we need to stick to +# the ones that can be detected to avoid a repeat of bug #564824. +COMMON_DEPEND=" + >=app-eselect/eselect-php-0.9.7[apache2?,fpm?] + >=dev-libs/libpcre2-10.30[jit?,unicode] + fpm? ( acl? ( sys-apps/acl ) apparmor? ( sys-libs/libapparmor ) ) + apache2? ( www-servers/apache[apache2_modules_unixd(+),threads=] ) + argon2? ( app-crypt/argon2:= ) + berkdb? ( || ( sys-libs/db:5.3 sys-libs/db:4.8 ) ) + bzip2? ( app-arch/bzip2:0= ) + cdb? ( || ( dev-db/cdb dev-db/tinycdb ) ) + coverage? ( dev-util/lcov ) + curl? ( >=net-misc/curl-7.29.0 ) + enchant? ( app-text/enchant:2 ) + ffi? ( >=dev-libs/libffi-3.0.11:= ) + firebird? ( dev-db/firebird ) + gd? ( media-libs/libjpeg-turbo:0= media-libs/libpng:0= ) + gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) + gmp? ( dev-libs/gmp:0= ) + iconv? ( virtual/libiconv ) + imap? ( >=virtual/imap-c-client-2[kerberos=,ssl=] ) + intl? ( dev-libs/icu:= ) + kerberos? ( virtual/krb5 ) + ldap? ( >=net-nds/openldap-1.2.11:= ) + ldap-sasl? ( dev-libs/cyrus-sasl ) + libedit? ( dev-libs/libedit ) + lmdb? ( dev-db/lmdb:= ) + mssql? ( dev-db/freetds[mssql] ) + nls? ( sys-devel/gettext ) + oci8-instant-client? ( dev-db/oracle-instantclient[sdk] ) + odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) ) + postgres? ( >=dev-db/postgresql-9.1:* ) + qdbm? ( dev-db/qdbm ) + readline? ( sys-libs/readline:0= ) + session-mm? ( dev-libs/mm ) + snmp? ( >=net-analyzer/net-snmp-5.2 ) + sodium? ( dev-libs/libsodium:=[-minimal] ) + spell? ( >=app-text/aspell-0.50 ) + sqlite? ( >=dev-db/sqlite-3.7.6.3 ) + ssl? ( >=dev-libs/openssl-1.0.1:0= ) + tidy? ( app-text/htmltidy ) + tokyocabinet? ( dev-db/tokyocabinet ) + truetype? ( =media-libs/freetype-2* ) + unicode? ( dev-libs/oniguruma:= ) + webp? ( media-libs/libwebp:0= ) + xml? ( >=dev-libs/libxml2-2.9.0 ) + xpm? ( x11-libs/libXpm ) + xslt? ( dev-libs/libxslt ) + zip? ( >=dev-libs/libzip-1.2.0:= ) + zlib? ( >=sys-libs/zlib-1.2.0.4:0= ) +" + +RDEPEND="${COMMON_DEPEND} + virtual/mta + fpm? ( + selinux? ( sec-policy/selinux-phpfpm ) + systemd? ( sys-apps/systemd ) )" + +# Bison isn't actually needed when building from a release tarball +# However, the configure script will warn if it's absent or if you +# have an incompatible version installed. See bug 593278. +DEPEND="${COMMON_DEPEND} + app-arch/xz-utils + >=sys-devel/bison-3.0.1" + +BDEPEND="virtual/pkgconfig" + +PHP_MV="$(ver_cut 1)" + +PATCHES=( + "${FILESDIR}/php-iodbc-header-location.patch" + "${FILESDIR}/php80-firebird-warnings.patch" +) + +php_install_ini() { + local phpsapi="${1}" + + # work out where we are installing the ini file + php_set_ini_dir "${phpsapi}" + + # Always install the production INI file, bug 611214. + local phpinisrc="php.ini-production-${phpsapi}" + cp php.ini-production "${phpinisrc}" || die + + # default to /tmp for save_path, bug #282768 + sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die + + # Set the extension dir + sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \ + -i "${phpinisrc}" || die + + # Set the include path to point to where we want to find PEAR packages + sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die + + insinto "${PHP_INI_DIR#${EPREFIX}}" + newins "${phpinisrc}" php.ini + + elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" + elog + + dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" + dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" + + if use opcache; then + elog "Adding opcache to $PHP_EXT_INI_DIR" + echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \ + "${D}/${PHP_EXT_INI_DIR}"/opcache.ini + dosym "../ext/opcache.ini" \ + "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" + fi + + # SAPI-specific handling + if [[ "${sapi}" == "fpm" ]] ; then + einfo "Installing FPM config files php-fpm.conf and www.conf" + insinto "${PHP_INI_DIR#${EPREFIX}}" + doins sapi/fpm/php-fpm.conf + insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d" + doins sapi/fpm/www.conf + fi + + dodoc php.ini-{development,production} +} + +php_set_ini_dir() { + PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" + PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" + PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" +} + +src_prepare() { + default + + # In php-7.x, the FPM pool configuration files have been split off + # of the main config. By default the pool config files go in + # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the + # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later + # we'll install the pool configuration file "www.conf" there. + php_set_ini_dir fpm + sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \ + sapi/fpm/php-fpm.conf.in \ + || die 'failed to move the include directory in php-fpm.conf' + + # Emulate buildconf to support cross-compilation + rm -fr aclocal.m4 autom4te.cache config.cache \ + configure main/php_config.h.in || die + eautoconf --force + eautoheader + + # Remove false positive test failures + # stream_isatty fails due to portage redirects + # curl tests here fail for network sandbox issues + # session tests here fail because we set the session directory to $T + rm tests/output/stream_isatty_err.phpt \ + tests/output/stream_isatty_out-err.phpt \ + tests/output/stream_isatty_out.phpt \ + ext/curl/tests/bug76675.phpt \ + ext/curl/tests/bug77535.phpt \ + ext/curl/tests/curl_error_basic.phpt \ + ext/session/tests/bug74514.phpt \ + ext/session/tests/bug74936.phpt || die + +} + +src_configure() { + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" + + # The php-fpm config file wants localstatedir to be ${EPREFIX}/var + # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. + local our_conf=( + --prefix="${PHP_DESTDIR}" + --mandir="${PHP_DESTDIR}/man" + --infodir="${PHP_DESTDIR}/info" + --libdir="${PHP_DESTDIR}/lib" + --with-libdir="$(get_libdir)" + --localstatedir="${EPREFIX}/var" + --without-pear + $(use_enable threads zts) + ) + + our_conf+=( + $(use_with apparmor fpm-apparmor) + $(use_with argon2 password-argon2 "${EPREFIX}/usr") + $(use_enable bcmath) + $(use_with bzip2 bz2 "${EPREFIX}/usr") + $(use_enable calendar) + $(use_enable coverage gcov) + $(use_enable ctype) + $(use_with curl) + $(use_enable xml dom) + $(use_with enchant) + $(use_enable exif) + $(use_with ffi) + $(use_enable fileinfo) + $(use_enable filter) + $(use_enable ftp) + $(use_with nls gettext "${EPREFIX}/usr") + $(use_with gmp gmp "${EPREFIX}/usr") + $(use_with mhash mhash "${EPREFIX}/usr") + $(use_with iconv iconv \ + $(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr")) + $(use_enable intl) + $(use_enable ipv6) + $(use_with kerberos) + $(use_with xml libxml) + $(use_enable unicode mbstring) + $(use_with ssl openssl) + $(use_enable pcntl) + $(use_enable phar) + $(use_enable pdo) + $(use_enable opcache) + $(use_with postgres pgsql "${EPREFIX}/usr") + $(use_enable posix) + $(use_with spell pspell "${EPREFIX}/usr") + $(use_enable simplexml) + $(use_enable sharedmem shmop) + $(use_with snmp snmp "${EPREFIX}/usr") + $(use_enable soap) + $(use_enable sockets) + $(use_with sodium) + $(use_with sqlite sqlite3) + $(use_enable sysvipc sysvmsg) + $(use_enable sysvipc sysvsem) + $(use_enable sysvipc sysvshm) + $(use_with tidy tidy "${EPREFIX}/usr") + $(use_enable tokenizer) + $(use_enable xml) + $(use_enable xmlreader) + $(use_enable xmlwriter) + $(use_with xslt xsl) + $(use_with zip) + $(use_with zlib zlib "${EPREFIX}/usr") + $(use_enable debug) + ) + + # DBA support + if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ + || use qdbm || use lmdb || use tokyocabinet ; then + our_conf+=( "--enable-dba" ) + fi + + # DBA drivers support + our_conf+=( + $(use_with cdb) + $(use_with berkdb db4 "${EPREFIX}/usr") + $(use_enable flatfile) + $(use_with gdbm gdbm "${EPREFIX}/usr") + $(use_enable inifile) + $(use_with qdbm qdbm "${EPREFIX}/usr") + $(use_with tokyocabinet tcadb "${EPREFIX}/usr") + $(use_with lmdb lmdb "${EPREFIX}/usr") + ) + + # Support for the GD graphics library + our_conf+=( + $(use_with truetype freetype) + $(use_enable cjk gd-jis-conv) + $(use_with gd jpeg) + $(use_with xpm) + $(use_with webp) + ) + # enable gd last, so configure can pick up the previous settings + our_conf+=( $(use_enable gd) ) + + # IMAP support + if use imap ; then + our_conf+=( + $(use_with imap imap "${EPREFIX}/usr") + $(use_with ssl imap-ssl "${EPREFIX}/usr") + ) + fi + + # LDAP support + if use ldap ; then + our_conf+=( + $(use_with ldap ldap "${EPREFIX}/usr") + $(use_with ldap-sasl) + ) + fi + + # MySQL support + local mysqllib="mysqlnd" + local mysqlilib="mysqlnd" + + our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") ) + + local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" + if use mysql || use mysqli ; then + our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) + fi + + # ODBC support + if use odbc && use iodbc ; then + our_conf+=( + --without-unixODBC + --with-iodbc + $(use_with pdo pdo-odbc "iODBC,${EPREFIX}/usr") + ) + elif use odbc ; then + our_conf+=( + --with-unixODBC="${EPREFIX}/usr" + --without-iodbc + $(use_with pdo pdo-odbc "unixODBC,${EPREFIX}/usr") + ) + else + our_conf+=( + --without-unixODBC + --without-iodbc + --without-pdo-odbc + ) + fi + + # Oracle support + our_conf+=( $(use_with oci8-instant-client oci8) ) + + # PDO support + if use pdo ; then + our_conf+=( + $(use_with mssql pdo-dblib "${EPREFIX}/usr") + $(use_with mysql pdo-mysql "${mysqllib}") + $(use_with postgres pdo-pgsql) + $(use_with sqlite pdo-sqlite) + $(use_with firebird pdo-firebird "${EPREFIX}/usr") + $(use_with oci8-instant-client pdo-oci) + ) + fi + + # readline/libedit support + our_conf+=( + $(use_with readline readline "${EPREFIX}/usr") + $(use_with libedit) + ) + + # Session support + if use session ; then + our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) + else + our_conf+=( $(use_enable session) ) + fi + + # Use pic for shared modules such as apache2's mod_php + our_conf+=( --with-pic ) + + # we use the system copy of pcre + # --with-external-pcre affects ext/pcre + our_conf+=( + --with-external-pcre + $(use_with jit pcre-jit) + ) + + # Catch CFLAGS problems + # Fixes bug #14067. + # Changed order to run it in reverse for bug #32022 and #12021. + replace-cpu-flags "k6*" "i586" + + # Cache the ./configure test results between SAPIs. + our_conf+=( --cache-file="${T}/config.cache" ) + + # Support user-passed configuration parameters + our_conf+=( ${EXTRA_ECONF:-} ) + + # Support the Apache2 extras, they must be set globally for all + # SAPIs to work correctly, especially for external PHP extensions + + local one_sapi + local sapi + mkdir -p "${WORKDIR}/sapis-build" || die + for one_sapi in $SAPIS ; do + use "${one_sapi}" || continue + php_set_ini_dir "${one_sapi}" + + # The BUILD_DIR variable is used to determine where to output + # the files that autotools creates. This was all originally + # based on the autotools-utils eclass. + BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" + cp -a "${S}" "${BUILD_DIR}" || die + cd "${BUILD_DIR}" || die + + local sapi_conf=( + --with-config-file-path="${PHP_INI_DIR}" + --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" + ) + + for sapi in $SAPIS ; do + case "$sapi" in + cli|cgi|embed|fpm|phpdbg) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( "--enable-${sapi}" ) + if [[ "fpm" == "${sapi}" ]] ; then + sapi_conf+=( + $(use_with acl fpm-acl) + $(use_with systemd fpm-systemd) + ) + fi + else + sapi_conf+=( "--disable-${sapi}" ) + fi + ;; + + apache2) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) + else + sapi_conf+=( --without-apxs2 ) + fi + ;; + esac + done + + # Construct the $myeconfargs array by concatenating $our_conf + # (the common args) and $sapi_conf (the SAPI-specific args). + local myeconfargs=( "${our_conf[@]}" ) + myeconfargs+=( "${sapi_conf[@]}" ) + + pushd "${BUILD_DIR}" > /dev/null || die + econf "${myeconfargs[@]}" + popd > /dev/null || die + done +} + +src_compile() { + # snmp seems to run during src_compile, too (bug #324739) + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + local sapi + for sapi in ${SAPIS} ; do + if use "${sapi}"; then + cd "${WORKDIR}/sapis-build/$sapi" || \ + die "Failed to change dir to ${WORKDIR}/sapis-build/$1" + emake + fi + done +} + +src_install() { + # see bug #324739 for what happens when we don't have that + addpredict /usr/share/snmp/mibs/.index #nowarn + + # grab the first SAPI that got built and install common files from there + local first_sapi="", sapi="" + for sapi in $SAPIS ; do + if use $sapi ; then + first_sapi=$sapi + break + fi + done + + # Makefile forgets to create this before trying to write to it... + dodir "${PHP_DESTDIR#${EPREFIX}}/bin" + + # Install php environment (without any sapis) + cd "${WORKDIR}/sapis-build/$first_sapi" || die + emake INSTALL_ROOT="${D}" \ + install-build install-headers install-programs + + local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" + + # Create the directory where we'll put version-specific php scripts + keepdir "/usr/share/php${PHP_MV}" + + local file="" + local sapi_list="" + + for sapi in ${SAPIS}; do + if use "${sapi}" ; then + einfo "Installing SAPI: ${sapi}" + cd "${WORKDIR}/sapis-build/${sapi}" || die + + if [[ "${sapi}" == "apache2" ]] ; then + # We're specifically not using emake install-sapi as libtool + # may cause unnecessary relink failures (see bug #351266) + insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" + newins ".libs/libphp$(get_libname)" \ + "libphp${PHP_MV}$(get_libname)" + keepdir "/usr/$(get_libdir)/apache2/modules" + else + # needed each time, php_install_ini would reset it + local dest="${PHP_DESTDIR#${EPREFIX}}" + into "${dest}" + case "$sapi" in + cli) + source="sapi/cli/php" + # Install the "phar" archive utility. + if use phar ; then + emake INSTALL_ROOT="${D}" install-pharcmd + dosym "..${dest#/usr}/bin/phar" "/usr/bin/phar${SLOT}" + fi + ;; + cgi) + source="sapi/cgi/php-cgi" + ;; + fpm) + source="sapi/fpm/php-fpm" + ;; + embed) + source="libs/libphp$(get_libname)" + ;; + phpdbg) + source="sapi/phpdbg/phpdbg" + ;; + *) + die "unhandled sapi in src_install" + ;; + esac + + if [[ "${source}" == *"$(get_libname)" ]]; then + dolib.so "${source}" + else + dobin "${source}" + local name="$(basename ${source})" + dosym "..${dest#/usr}/bin/${name}" "/usr/bin/${name}${SLOT}" + fi + fi + + php_install_ini "${sapi}" + + # construct correct SAPI string for php-config + # thanks to ferringb for the bash voodoo + if [[ "${sapi}" == "apache2" ]]; then + sapi_list="${sapi_list:+${sapi_list} }apache2handler" + else + sapi_list="${sapi_list:+${sapi_list} }${sapi}" + fi + fi + done + + # Installing opcache module + if use opcache ; then + into "${PHP_DESTDIR#${EPREFIX}}" + dolib.so "modules/opcache$(get_libname)" + fi + + # Install env.d files + newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" + sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + + # set php-config variable correctly (bug #278439) + sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ + "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die + + if use fpm ; then + if use systemd; then + systemd_newunit "${FILESDIR}/php-fpm_at.service" \ + "php-fpm@${SLOT}.service" + else + systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ + "php-fpm@${SLOT}.service" + fi + fi +} + +src_test() { + echo ">>> Test phase [test]: ${CATEGORY}/${PF}" + PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" + if [[ ! -x "${PHP_BIN}" ]] ; then + ewarn "Test phase requires USE=cli, skipping" + return + else + export TEST_PHP_EXECUTABLE="${PHP_BIN}" + fi + + if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then + export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" + fi + + if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then + export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" + fi + + SKIP_ONLINE_TESTS=1 REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ + "session.save_path=${T}" \ + "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ + "session.save_path=${T}" + + for name in ${EXPECTED_TEST_FAILURES}; do + mv "${name}.out" "${name}.out.orig" 2>/dev/null || die + done + + local failed="$(find -name '*.out')" + if [[ ${failed} != "" ]] ; then + ewarn "The following test cases failed unexpectedly:" + for name in ${failed}; do + ewarn " ${name/.out/}" + done + else + einfo "No unexpected test failures, all fine" + fi + + if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then + local passed="" + for name in ${EXPECTED_TEST_FAILURES}; do + [[ -f "${name}.diff" ]] && continue + passed="${passed} ${name}" + done + if [[ ${passed} != "" ]] ; then + einfo "The following test cases passed unexpectedly:" + for name in ${passed}; do + ewarn " ${passed}" + done + else + einfo "None of the known-to-fail tests passed, all fine" + fi + fi +} + +pkg_postinst() { + # Output some general info to the user + if use apache2 ; then + elog + elog "To enable PHP in apache, you will need to add \"-D PHP\" to" + elog "your apache2 command. OpenRC users can append that string to" + elog "APACHE2_OPTS in /etc/conf.d/apache2." + elog + elog "The apache module configuration file 70_mod_php.conf is" + elog "provided (and maintained) by eselect-php." + elog + fi + + # Create the symlinks for php + local m + for m in ${SAPIS}; do + [[ ${m} == 'embed' ]] && continue; + if use $m ; then + local ci=$(eselect php show $m) + if [[ -z $ci ]]; then + eselect php set $m php${SLOT} || die + einfo "Switched ${m} to use php:${SLOT}" + einfo + elif [[ $ci != "php${SLOT}" ]] ; then + elog "To switch $m to use php:${SLOT}, run" + elog " eselect php set $m php${SLOT}" + elog + fi + fi + done + + # Remove dead symlinks for SAPIs that were just disabled. For + # example, if the user has the cgi SAPI enabled, then he has an + # eselect-php symlink for it. If he later reinstalls PHP with + # USE="-cgi", that symlink will break. This call to eselect is + # supposed to remove that dead link per bug 572436. + eselect php cleanup || die + + if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then + elog "To build extensions for this version of PHP, you will need to" + elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." + elog + fi + + # Warn about the removal of PHP_INI_VERSION if the user has it set. + if [[ -n "${PHP_INI_VERSION}" ]]; then + ewarn 'The PHP_INI_VERSION variable has been phased out. You may' + ewarn 'remove it from your configuration at your convenience. See' + ewarn + ewarn ' https://bugs.gentoo.org/611214' + ewarn + ewarn 'for more information.' + fi + + elog "For details on how version slotting works, please see" + elog "the wiki:" + elog + elog " https://wiki.gentoo.org/wiki/PHP" + elog +} + +pkg_postrm() { + # This serves two purposes. First, if we have just removed the last + # installed version of PHP, then this will remove any dead symlinks + # belonging to eselect-php. Second, if a user upgrades slots from + # (say) 5.6 to 7.0 and depcleans the old slot, then this will update + # his existing symlinks to point to the new 7.0 installation. The + # latter is bug 432962. + # + # Note: the eselect-php package may not be installed at this point, + # so we can't die() if this command fails. + eselect php cleanup +} diff --git a/dev-lang/php/php-8.1.7.ebuild b/dev-lang/php/php-8.1.8.ebuild index baff332bc988..baff332bc988 100644 --- a/dev-lang/php/php-8.1.7.ebuild +++ b/dev-lang/php/php-8.1.8.ebuild diff --git a/dev-lang/polyml/Manifest b/dev-lang/polyml/Manifest index d8c07e5a3e2a..b4e6fe293b58 100644 --- a/dev-lang/polyml/Manifest +++ b/dev-lang/polyml/Manifest @@ -7,5 +7,5 @@ DIST polyml-5.8.tar.gz 9817105 BLAKE2B 93992c8baa78017bfda6c2151d1f48805829b77c0 DIST polyml-5.9.tar.gz 3764115 BLAKE2B ae0ca0dcac2c1b5b54e4e4c4c7362a9ba99846ff7a1358a2332a8b887eb9c21e83851c9ecde44df3bebeef5cdfe3d4b73c09776a08cfc2db6ec70024ffedc50d SHA512 e996cbe820216e854a50ba214f2a2a0291ee3279eb35be4126b6558bc1582732a236156fb8d0f548b31fca4a496db62ece83d902b6f5e72de64507fdef602e45 EBUILD polyml-5.8.2.ebuild 1129 BLAKE2B c9abfe7fa6abc5d1cadcdbf1799610713195e017a102e0a79122e6c0424e94b42ed9971b14377f6ca260a1d1703d94d9323ce33fd48e4f5f43bbf0667f6a1e60 SHA512 8bcc7bf4c5cbd850f25d0def5bfbaa98dadb3ad2218e6a1fb4c741546d6f3b59faecbd5bbaf5dd5a30baf87d148ce2e634414405c82c72f2cf6843a0af1d6b8d EBUILD polyml-5.8.ebuild 1210 BLAKE2B 00f42ae7d8afbd7e986099385c868ff9a6e65d1fc624c928c53df6a6a7eec5e2e106899a2af41c21fd023f4fbdd4bc00b85ac8e0093fe5ef44786122f0b88830 SHA512 4c86e7b1b59139a67456e69118855660e6a3a7acee3d9bcba2fe66ee4fb925b7ed73347f01dcdd3e11784e1b50c7a113580762f601388963dae9c4e3593de495 -EBUILD polyml-5.9-r1.ebuild 807 BLAKE2B c616394bfa5d939e4fa0b38b5998c523df00bd17db96df53b65eb0887899d71b7e5bab0177388c2b2b37bd39ed775c64962dfb5cb7a52d334b7c99ea6b7195a0 SHA512 9c7aee31eb2f090c7d4aeeccc6fd5c2710f67cfc87ed02d7332c30a41506b9eac53956a39d689c73349130c33475b461b2fd5e6426a8a1b1fafba69ce326a36f +EBUILD polyml-5.9-r1.ebuild 875 BLAKE2B 17c57ea989c7a38f42ad184b5b59c74a3a391c8852145a2a8ebe473ba7328355745ce7e40083171bf2083fe35c77be5835c3094c93646d1e005f32a7f1d37c81 SHA512 2b1c85bdcb2fe694cfe9240f408a087e7e6b9b24763c09fa3526062eb83a3fc3e74ec3af54e266edaaf9ba8554927c721e76f6cf6dc28ec1cacfb6fd6b40f2db MISC metadata.xml 476 BLAKE2B 1ae157cea19be5c640cddb49ed167f4bd2f3f76b224f42ad1eec260cf4a10418e90cf0d9cd7deae8710910aa141a7dcea912533dfc3aba51b587a8babde0f1e5 SHA512 93c0da7fa36a0ff2215f22a114b995c0f3cbb8762807090203e25e011236324585dc7af1246a881cdd5d2b41b6d69a00c9965507f8b467481e65679bbf87dd59 diff --git a/dev-lang/polyml/polyml-5.9-r1.ebuild b/dev-lang/polyml/polyml-5.9-r1.ebuild index 36f9d9054e80..fef26cddee79 100644 --- a/dev-lang/polyml/polyml-5.9-r1.ebuild +++ b/dev-lang/polyml/polyml-5.9-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -44,3 +44,8 @@ src_configure() { src_test() { emake tests } + +src_install() { + default + rm "${D}"/usr/lib*/libpolyml.la || die +} diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest index 2d763da78115..783a49877fdc 100644 --- a/dev-lang/python/Manifest +++ b/dev-lang/python/Manifest @@ -18,14 +18,18 @@ DIST python-gentoo-patches-2.7.18_p15.tar.xz 34956 BLAKE2B d173f276dd9c0ce31004d DIST python-gentoo-patches-3.10.4.tar.xz 8592 BLAKE2B 67fba3e1fedb17430e5cd93da995b4acaf714db512031b5a2f775a25f793f007941561663cfa413d645ccddc2e22d65d250a40fa166cafda8805488d877ff57d SHA512 3ed2b8ff8f1eb8febe7dcd4b5d13d6d54468be1d525f8f1118977d3bbc78f690a597b09383939d023b03380a306e4bff1693382e29ff562312d803305b1709b2 DIST python-gentoo-patches-3.10.5.tar.xz 8584 BLAKE2B d4a812a33e485b1eae5629e519dca4dc6625b743b07c7f7bbc62562f345d87723ba499893702310b1e96e443d2946e27a8d4971f32ca1125d4827d0d594ccaa6 SHA512 77f0478f7d0491e103857a83a97d6e04a9ec68740a7f9357cbbdd316462e7d98ea8236bd05a30e7556457ece5fbcfa4a7a78a25d4eb12779455ce2bb5b6f30d0 DIST python-gentoo-patches-3.11.0b3.tar.xz 3320 BLAKE2B 588762fe2698a814d0cb89f84620d3ca4754347cb9af4f0eb36429a126ca2386b64594f16621a25e88d518986aad5f3ef3a84d9ce746f58b5cc6d112167c41d1 SHA512 026cb5cc2f3a1b17829fb088ca1dc9af03764a250bebb1fe518a6f7734f731a3f6cc5d83a13b6ca29dd6fa8ca5f0249a7ef0a641b939cd511d05cdc645b9171f +DIST python-gentoo-patches-3.11.0b3_p1.tar.xz 10560 BLAKE2B 4a34de0595490b0e7fcff1761954bfa56f3f82cfdf5a26d739f410e355f9068ccb22a24af0c212543b1288682a9737e4202862c9d4db2f78d08a5a33f80c85e8 SHA512 a0e54b3dd16db8802b93b88ad50bb979b90052a53438fcbf8378288747b627133a492a9071600d7c11163cb9a61c4c80f9b1dd1fc843789aa7507488ff2c1337 +DIST python-gentoo-patches-3.11.0b3_p2.tar.xz 11496 BLAKE2B c640e64450199e7e1e3d49447dedc63ec3866c32006794d6e6873ec61c617b34b5fc81aa4760a0a0543cb0e1634a2243e02280d5716778a8c132054edbc5430c SHA512 5a0aa3bf54615caf9790f28e779d2d648875d484abe3e1c41ba220ca4fb6d8f6d78dee4ad350b9956de990acc7191b41a8073e0966ec8b99a0a100f8ccde344b DIST python-gentoo-patches-3.8.13.tar.xz 16004 BLAKE2B 5c0c6c9263570a467391e60c324d1dbc1e50ffda9cad1e204df124441b593146f18e5f1529eb7d385b35c5f4b9e597807971b6b66f7f8eef156ad87c9ad32743 SHA512 4ceb831e2d62bd73909b53a3b553b2cd73d08bcf2a1c92b47eaeb1221d40daabcaed14977265bcb265df00b6bf363dbebbd61a62dca4bf6ef40c6b911e980597 DIST python-gentoo-patches-3.8.13_p2.tar.xz 18816 BLAKE2B 8612ca33e5569319c5d1a5a3fb1a81e860bd515bfde656b79f087ccf7020923fbd06b315178bef8630e4c36bb22c27299fe439aadc6a161f1ec93be8778314ee SHA512 be5668a0a4be0a03e61466436973125a3be4f33a61524e4a5c8d86745727cfcae59e5048477887c9f6bfc09727f3aef3652ad47a13a6bf0f1452d3172f1c34dc DIST python-gentoo-patches-3.9.12.tar.xz 12848 BLAKE2B 5dd66fa94b136a463d2c4be3a5b7dfad770c3905467a1d81af02a35b2783ce7d614881c915ee8f8e764c1656963d6886d9c60c6e524f512e1bc496e42d01307b SHA512 07de63e47a8e547724099062239df8fcfd254f19d38be28131e6bbb094ffbab8483861fb6a5905e60d7fa7a1a5dc06785951fa31984ecad89516b0b742c47f91 DIST python-gentoo-patches-3.9.13.tar.xz 12836 BLAKE2B ba687a3d6e00baf4d9640ab78a29c3e21bf1872b5019198991521cf37bb0780f592db742ee4fdfe6bfb1cab1c1f6587889dfdb024cae72766b6c83c2ffe319be SHA512 e393992ff92625771c6ffeb500637862f0163c689c685fd245a6e5bbdd3128154ce439ecab56eaf1359e67ea0d173dfb19f65a4098ea2266922bfb43aba517dc EBUILD python-2.7.18_p15.ebuild 9827 BLAKE2B 77ebeacfa236e518ec0c0a791e0da60f8158d369e870c88ce69d1eef25cdc99e658903abf313452b849254e97b4c9f583e0edb75ec845faf5b47fb2fc3173ce4 SHA512 19219cd43391d8d53838c9b0e15b30f8ccb5d5a23503a213cc961ff2fa545cd17a5ecc6ce253e2a01534db3bc931be212969c40885c2e99f203c23a5ecb689a1 EBUILD python-3.10.4.ebuild 11761 BLAKE2B a51875cab569a32b2f311b33c9abca0707e4c3d7866c66019487bcd223dc9b75b4bd3f5eb2a62bf25c9dd11ca5af5dd626b8a01f16caac02f098b91c782a27da SHA512 cb2eb41022a7486cfc1ced18da412598509335df9db17c1333bed4679bd8dfff827bad9858bed7d1085cd2a14cddaebef739ffcade5e327737540372a879bef3 -EBUILD python-3.10.5.ebuild 11703 BLAKE2B 6c5831136571fb1dac4a1b77976df561ce6f2096f6445708523920b160b32486379326e8351c6c2f316756a63aa7d4712c2ffd0d469790a352287f7d676101f7 SHA512 77478066d37d42b11063bced7e991b9094a7465f3acc8979dde946a9b4a5539ad1fcd0a1ca079527378b15b5f98b5ec68f55e182602e743a8cc883f0662f0793 +EBUILD python-3.10.5.ebuild 11702 BLAKE2B d24101e18a5cc846de6ab9ec1578a8fb520b11ce4796dbce15314953202b5b02e79937c255948e31822b3c92eac36c4187d35904cbc43f64c86723dbb1d92140 SHA512 b3afd4afd62ae30eae2e48297417ca74bed11795bf463112a34ef4207e5bb055badd4d4d601113a946e6d1d43d66c7e8f6af281bc2372478170618c00f211d44 EBUILD python-3.11.0_beta3.ebuild 13176 BLAKE2B f3ff342908575b3e8651f5eba8b7428f60b8f799f44f46f5f04f98e82b82b5ac85127e90475b0d3d9653f9b56e15fa606437c0a8bf98c2affe5a4bc65845f24f SHA512 f9d84559aec861e6e1426914da6b0430878d2bb141def8c064f06d21431ffb8b915b905802505dfc1a98d555c4d3bb130ee45247b717b38c5ea9f7a9056da1ba +EBUILD python-3.11.0_beta3_p1.ebuild 13176 BLAKE2B f3ff342908575b3e8651f5eba8b7428f60b8f799f44f46f5f04f98e82b82b5ac85127e90475b0d3d9653f9b56e15fa606437c0a8bf98c2affe5a4bc65845f24f SHA512 f9d84559aec861e6e1426914da6b0430878d2bb141def8c064f06d21431ffb8b915b905802505dfc1a98d555c4d3bb130ee45247b717b38c5ea9f7a9056da1ba +EBUILD python-3.11.0_beta3_p2.ebuild 13272 BLAKE2B 658ba9c4c5454b17b5000b554af41f47f2b0b57284f8b2239cb9d290171d626e7201f62c6d8e8042dd2d417defed0f23723464b957aaaffb7794c16fb5671257 SHA512 6a0d31c7d39112ad9f5b1971ccd81088078f524d07888d06a52d6853d0b6e62944f6c0729977fea85e1e18220f56612a8909dc58e7dd319e21bd8309933625ed EBUILD python-3.8.13.ebuild 10279 BLAKE2B dc700b2729f44840d33306fa0e50565d3c134ff74db39c83aebcc9994899479736bad15897e4135904bf7a6f4914c40e9b73caa64a0376aba10664d07c351227 SHA512 51b826ed0c99f777b684341141c83fca557942496a670aa4385f6c8c6379e445d7ec953c2f1b9562d5b4ee921038677f597c27fc8f355f076d72f66e6ae6ee9e EBUILD python-3.8.13_p2.ebuild 10221 BLAKE2B 3786b6c9b08b68fcbd778570d03889ff4f521fca8f10963e93e6f475df063226962dc9dca9bc0754f4afaa5b600bfe3f0c76f8bbbfe4fcc4f3026957d249db9c SHA512 bd4782819b48a06657dc0382655ad49d928f503f9dc7bc708c76dab34617975938f71644e7b4f54f9935c0b232016842bf5847d9c3c0a1aefc0aecd2052e85e8 EBUILD python-3.9.12.ebuild 11522 BLAKE2B a1847835a23e863957ab089d1449a01c377ce9e1460ab3ed3453d863d6ad38824802bed23490dfa27c88615c1d70b8690d086997da143987657bf595d592ef2b SHA512 0e0d46e25e1f353152daddd3d67b870f393124a48e1cb9f9f464b3174d5254cba2580e7351dcba91558885cda7342e843a2e69631100bf6d15d791fadc3d8d2b diff --git a/dev-lang/python/python-3.10.5.ebuild b/dev-lang/python/python-3.10.5.ebuild index 05c9d1ad9dfd..ca5b64bed46e 100644 --- a/dev-lang/python/python-3.10.5.ebuild +++ b/dev-lang/python/python-3.10.5.ebuild @@ -25,7 +25,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha amd64 ~arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc ~x86" +KEYWORDS="~alpha amd64 ~arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" IUSE="bluetooth build examples gdbm hardened libedit lto +ncurses pgo +readline +sqlite +ssl test tk wininst +xml" RESTRICT="!test? ( test )" diff --git a/dev-lang/python/python-3.11.0_beta3_p1.ebuild b/dev-lang/python/python-3.11.0_beta3_p1.ebuild new file mode 100644 index 000000000000..495c081c3261 --- /dev/null +++ b/dev-lang/python/python-3.11.0_beta3_p1.ebuild @@ -0,0 +1,469 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic multiprocessing pax-utils \ + python-utils-r1 toolchain-funcs verify-sig + +MY_PV=${PV/_beta/b} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="bluetooth build examples gdbm hardened libedit lto +ncurses pgo +readline +sqlite +ssl test tk wininst" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-crypt/libb2 + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + 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? ( + !libedit? ( >=sys-libs/readline-4.1:= ) + libedit? ( dev-libs/libedit:= ) + ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) + !!<sys-apps/sandbox-2.21 +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils[extra-filters(+)] ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + sys-devel/autoconf-archive + virtual/awk + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-python ) + !sys-devel/gcc[libffi(-)] +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi + +VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER} + +pkg_pretend() { + use test && check-reqs_pkg_pretend +} + +pkg_setup() { + use test && check-reqs_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat, libffi and zlib are not used. + rm -fr Modules/expat || die + rm -fr Modules/_ctypes/libffi* || die + rm -fr Modules/zlib || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # 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 + + append-flags -fwrapv + + filter-flags -malign-double + + # 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. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + # 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 + + if use pgo; then + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + export PROFILE_TASK="-m test -j${jobs} --pgo-extended -x test_gdb -u-network" + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + PROFILE_TASK+=" -x test_socket -x test_asyncio -x test_httpservers -x test_logging -x test_multiprocessing_fork -x test_xmlrpc" + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + PROFILE_TASK+=" -x test_distutils" + fi + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --with-system-expat + --with-system-ffi + --with-platlibdir=lib + --with-pkg-config=yes + + $(use_with lto) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + ) + + # disable implicit optimization/debugging flags + local -x OPT= + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + if tc-is-cross-compiler ; then + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + myeconfargs+=( + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Avoid as many dependencies as possible for the cross build. + cat >> Makefile <<-EOF || die + MODULE_NIS=disabled + MODULE__DBM=disabled + MODULE__GDBM=disabled + MODULE__DBM=disabled + MODULE__SQLITE3=disabled + MODULE__HASHLIB=disabled + MODULE__SSL=disabled + MODULE__CURSES=disabled + MODULE__CURSES_PANEL=disabled + MODULE_READLINE=disabled + MODULE__TKINTER=disabled + MODULE_PYEXPAT=disabled + MODULE_ZLIB=disabled + EOF + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die + fi + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # force-disable modules we don't want built + local disable_modules=( + NIS + ) + use gdbm || disable_modules+=( _GDBM _DBM ) + use sqlite || disable_modules+=( _SQLITE3 ) + use ssl || disable_modules+=( _HASHLIB _SSL ) + use ncurses || disable_modules+=( _CURSES _CURSES_PANEL ) + use readline || disable_modules+=( READLINE ) + use tk || disable_modules+=( _TKINTER ) + + local mod + for mod in "${disable_modules[@]}"; do + echo "MODULE_${mod}=disabled" + done >> Makefile || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib + export PYTHONSTRICTEXTENSIONBUILD=1 + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + addpredict /usr/lib/python3.11/site-packages + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # Skip failing tests. + local skipped_tests="gdb" + + if use sparc ; then + # bug #788022 + skipped_tests+=" multiprocessing_fork" + skipped_tests+=" multiprocessing_forkserver" + fi + + for test in ${skipped_tests}; do + mv "${S}"/Lib/test/test_${test}.py "${T}" + done + + # Expects to find skipped tests and fails + mv "${S}"/Lib/test/test_tools/test_freeze.py "${T}" || die + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + # workaround https://bugs.gentoo.org/775416 + addwrite /usr/lib/python3.11/site-packages + + 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 + + mv "${T}"/test_freeze.py "${S}"/Lib/test/test_tools/test_freeze.py || die + + 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} + + # -j1 hack for now for bug #843458 + emake -j1 DESTDIR="${D}" altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + use sqlite || rm -r "${libdir}/"sqlite3 || die + use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ + emake --no-print-directory -s -f - 2>/dev/null) + newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + local -x EPYTHON=python${PYVER} + # if not using a cross-compiler, use the fresh binary + if ! tc-is-cross-compiler; then + cat > python.wrap <<-EOF || die + #!/bin/sh + export LD_LIBRARY_PATH=\${PWD}\${LD_LIBRARY_PATH+:\${LD_LIBRARY_PATH}} + exec ./python "\${@}" + EOF + chmod +x python.wrap || die + local -x PYTHON=./python.wrap + 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.11.0_beta3_p2.ebuild b/dev-lang/python/python-3.11.0_beta3_p2.ebuild new file mode 100644 index 000000000000..a77e97a2125e --- /dev/null +++ b/dev-lang/python/python-3.11.0_beta3_p2.ebuild @@ -0,0 +1,472 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic multiprocessing pax-utils \ + python-utils-r1 toolchain-funcs verify-sig + +MY_PV=${PV/_beta/b} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~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 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="bluetooth build examples gdbm hardened libedit lto +ncurses pgo +readline +sqlite +ssl test tk wininst" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-crypt/libb2 + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + 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? ( + !libedit? ( >=sys-libs/readline-4.1:= ) + libedit? ( dev-libs/libedit:= ) + ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) + !!<sys-apps/sandbox-2.21 +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils[extra-filters(+)] ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + sys-devel/autoconf-archive + virtual/awk + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-python ) + !sys-devel/gcc[libffi(-)] +" +RDEPEND+=" + !build? ( app-misc/mime-types ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi + +VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER} + +pkg_pretend() { + use test && check-reqs_pkg_pretend +} + +pkg_setup() { + use test && check-reqs_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat, libffi and zlib are not used. + rm -fr Modules/expat || die + rm -fr Modules/_ctypes/libffi* || die + rm -fr Modules/zlib || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # https://bugs.gentoo.org/850151 + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die + + # 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 + + append-flags -fwrapv + + filter-flags -malign-double + + # 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. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + # 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 + + if use pgo; then + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + export PROFILE_TASK="-m test -j${jobs} --pgo-extended -x test_gdb -u-network" + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + PROFILE_TASK+=" -x test_socket -x test_asyncio -x test_httpservers -x test_logging -x test_multiprocessing_fork -x test_xmlrpc" + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + PROFILE_TASK+=" -x test_distutils" + fi + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --with-system-expat + --with-system-ffi + --with-platlibdir=lib + --with-pkg-config=yes + + $(use_with lto) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + ) + + # disable implicit optimization/debugging flags + local -x OPT= + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + if tc-is-cross-compiler ; then + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + myeconfargs+=( + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Avoid as many dependencies as possible for the cross build. + cat >> Makefile <<-EOF || die + MODULE_NIS=disabled + MODULE__DBM=disabled + MODULE__GDBM=disabled + MODULE__DBM=disabled + MODULE__SQLITE3=disabled + MODULE__HASHLIB=disabled + MODULE__SSL=disabled + MODULE__CURSES=disabled + MODULE__CURSES_PANEL=disabled + MODULE_READLINE=disabled + MODULE__TKINTER=disabled + MODULE_PYEXPAT=disabled + MODULE_ZLIB=disabled + EOF + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die + fi + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # force-disable modules we don't want built + local disable_modules=( + NIS + ) + use gdbm || disable_modules+=( _GDBM _DBM ) + use sqlite || disable_modules+=( _SQLITE3 ) + use ssl || disable_modules+=( _HASHLIB _SSL ) + use ncurses || disable_modules+=( _CURSES _CURSES_PANEL ) + use readline || disable_modules+=( READLINE ) + use tk || disable_modules+=( _TKINTER ) + + local mod + for mod in "${disable_modules[@]}"; do + echo "MODULE_${mod}=disabled" + done >> Makefile || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib + export PYTHONSTRICTEXTENSIONBUILD=1 + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + addpredict /usr/lib/python3.11/site-packages + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # Skip failing tests. + local skipped_tests="gdb" + + if use sparc ; then + # bug #788022 + skipped_tests+=" multiprocessing_fork" + skipped_tests+=" multiprocessing_forkserver" + fi + + for test in ${skipped_tests}; do + mv "${S}"/Lib/test/test_${test}.py "${T}" + done + + # Expects to find skipped tests and fails + mv "${S}"/Lib/test/test_tools/test_freeze.py "${T}" || die + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + # workaround https://bugs.gentoo.org/775416 + addwrite /usr/lib/python3.11/site-packages + + 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 + + mv "${T}"/test_freeze.py "${S}"/Lib/test/test_tools/test_freeze.py || die + + 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} + + # -j1 hack for now for bug #843458 + emake -j1 DESTDIR="${D}" altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + use sqlite || rm -r "${libdir}/"sqlite3 || die + use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ + emake --no-print-directory -s -f - 2>/dev/null) + newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + local -x EPYTHON=python${PYVER} + # if not using a cross-compiler, use the fresh binary + if ! tc-is-cross-compiler; then + cat > python.wrap <<-EOF || die + #!/bin/sh + export LD_LIBRARY_PATH=\${PWD}\${LD_LIBRARY_PATH+:\${LD_LIBRARY_PATH}} + exec ./python "\${@}" + EOF + chmod +x python.wrap || die + local -x PYTHON=./python.wrap + else + local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON} + fi + + echo "EPYTHON='${EPYTHON}'" > epython.py || die + python_domodule epython.py + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" \ + "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" \ + "${scriptdir}/python-config" || die + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" \ + "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" \ + "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" \ + "${scriptdir}/idle" || die + fi +} diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest index 4d08ad1869ea..60b06ed9d8bc 100644 --- a/dev-lang/rust-bin/Manifest +++ b/dev-lang/rust-bin/Manifest @@ -95,10 +95,45 @@ DIST rust-1.61.0-x86_64-unknown-linux-gnu.tar.xz 157592468 BLAKE2B 0877c0794280a DIST rust-1.61.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5296a8df210a4cf2fd7dffcba1ae6bd8cda9e408ff4c55d997199c2890b9faab9e8d6d22a3c0961786bb80231836047929621edf9043d474b352fe28bd9192e8 SHA512 cb97e84cd793aa8676c41297d8da14125855c008815e65d8191868eb88241ccb408c6f9ae85b7ba8de1a02ea8923f5e042f4fea662fa593e5ec03505b41ee52d DIST rust-1.61.0-x86_64-unknown-linux-musl.tar.xz 259724324 BLAKE2B d005bd2794d196136c42842fbb7bc64d827898b5713f768cf0e88be5a40e3906139027ee58571cfccd8d2c864f672d1986da28c72f0d1c4a7f78d18efe14385e SHA512 96d09ac3a48bb2956dd6bf219e605c68327a94d09e72290ee74781c4886dce93b217163fb08dac0ce69bfaa2e3ab8cccd4a26d10b9df4c3162822a38e355bdb6 DIST rust-1.61.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B e1c8061c80cd5445f7df9c44044ccb47731704b93d4e86cf95bd3b1b08a3c3cdb61e21349088cd0127632c63a0f7c22f0fa209809450dd81607bf7353d61a7b4 SHA512 587f487a3c8159a4b102f15a484a0ffa4f32c2abd2fb4ca078c27d36f6ff365c95015a99494e852631e9f92bfc9f33a0266c5f62b7edfce823c34993ff6a836b +DIST rust-1.62.0-aarch64-unknown-linux-gnu.tar.xz 228388556 BLAKE2B 2b2d8428c97bfeb64bd999670e4ef2b6c4732cdfd7cac0cf37c5adb8ee83fd467e1e94bcb6a9edf28838fd052d19a7cbc273175c8360696bbec4523e1ff069a6 SHA512 10964fe48ee59ef2e44e9d0a0daa750cd06cc52198664b544166a846667366e7f0000129612f4d68e1530dab28987f62ccacd82f6d5663d0091cf7a451469219 +DIST rust-1.62.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6cf85d71d188bc931cbb21dac1387fa9fb8b45bcf0984bfd5af1a3f1ac581b74e37df337138b05b2d74ed1572d6e859418c33c2fe4bb72f5a3b15cb6302060d4 SHA512 452610627d8d01474ed38b7d3ff7c3c0174cc5b3468cbd0f274b6124ff6497dcae6f0abb6b9688f64be89c524c8fe18aaf5fd56dcd2530df6c247688cac1a230 +DIST rust-1.62.0-aarch64-unknown-linux-musl.tar.xz 223168712 BLAKE2B 9007a612ed5ec279c346abaeb4213a71d3acae9e5b1934380c9959e74db8b196b59f1197d1714a076040ff68f2b4f0e4937feb226cfaa0bdd272838d67eb07cb SHA512 253ba647102cb5599cfbfbfaf5f77ab2389e4bc77bce6cfd8aba037f6bd349081965d505fc30e9538df9353e923e66fa451ab73076d7224703cab1e24a81cf1f +DIST rust-1.62.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 54d54528fed34d0325d50a44ea732c99268d0acd2d78fe778dee369e18e9d7f6a8164617715a8c73aae59d2e856ff437343087542d2eeba9e613cd0418e9cf43 SHA512 79a049aad9cf0d50455747bbd2809611ca9d8eb2890c4a0dda71b64842c75cc4503f9f308d6f418e0f207d5cea04d21b352d45c1774a24b9270071d232dfb1d6 +DIST rust-1.62.0-arm-unknown-linux-gnueabi.tar.xz 203832692 BLAKE2B 964278ec2d9375d864cd03f7ec4fae1ca89fceebad51ccc2a017fbdf5ed354bd599d8c3eaf9eb9e86870f3d4b7fae8bb9011ae630742b3cc9e6ed38e14e8eae4 SHA512 d388e752fe7fa67c91719858be9ffc872c2b8fa45f6d63ae18298a79bc242e640784722d82461629bd0f07ce56a7dd850376ca9882bf0a084a5a19b01e5d59f3 +DIST rust-1.62.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 1f24c48e0648f80d7107db921917372bd51ff4b630bd36830d5bb76386b486776311c67854bd4d6366e820003b89ba1a4c8eecbe001f2221c1063661c71ab513 SHA512 f134e874d59bc7979e821f881098f9d91eb81a1c5c68db80d738def722273ecf4957d842c3f0ee9f9b415448477bcd0b022624cea95f99850bd2267dc545423f +DIST rust-1.62.0-arm-unknown-linux-gnueabihf.tar.xz 203946052 BLAKE2B b0e2a8a0068dc758d772f3dbc8003a57fdb43ead64e30bdf338c60b195bb2f78ef7e7a6df6dd2f02f13f47b9e913ab2fc010ce9fc6d39d5014709a71886e7eb6 SHA512 515d16b3ec5e8ec4af24c6baaf4e5443774c2140e5379019f29ce8a63eb1fd908408f42092e0fc0c3dd5e62ac7d43357af13fd74678cd2635451a2d775934386 +DIST rust-1.62.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 661439263a89d2206fbb7c3e00ac42e5975403670953df6be12dbf10e624a3bce0a16a846084aa621284e1d2dbb997af19b0f45808a2ddf7bb65af306a1745ba SHA512 bade26ccb646cc16822ae3235c00d048373f6c38eea79af128e3f299e8a69086fd254b4cd7c602c653d6573232594a27c7f8eb915797b8f1afbf56db3efb5008 +DIST rust-1.62.0-armv7-unknown-linux-gnueabihf.tar.xz 209318492 BLAKE2B 959488e4a957e19e5fe44e9b2b83406e135d7598cf4fa9db3b132c80cc40a54a73dee3c0b3db6f2f9299adf1b2d80fe453d1f0dab73fe46cacd5fa2ebf45b3ac SHA512 2c447c39f22f1f11f1e58d6adfea440a7d0bb91ffbb60df555b4e3eb41379b586f531a31c3ef86bb5e7a5b46889071f509157dc031fa174d93942d21dd241180 +DIST rust-1.62.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B a1e12a459d62fccd35bbc34d043f8a7512dfe3edb6563f02b84bfdd1e4cdf9c16570302644d71dc208dfe9782f48d4310a13b748d22571d1d43dcf7b61b2819a SHA512 82d2d1eb7ee0f8ba0bfaf93cd2ef0899973f535080af960a2b0f54049285df43e758a9bbe2f0e36e64e85bd530e4511e8ed828ce046c82b74a252b92e7dd42db +DIST rust-1.62.0-i686-unknown-linux-gnu.tar.xz 223720860 BLAKE2B 117364630b38f4a97f9b7183ca7e9f30836ffd0f73c4e3ce2af97ad3c837edc7fa247afba70858009b5ba34bcb7adc87f29b8c87f03f79d060d9bab68b0625ba SHA512 99a87fef7870ee3478ac2faf1ebaec9fde28737ddc2423ec3da4173051f542e24b5666b0e276b3fdd2f02259f16bd119bf79515d057c63da2f6659c0e7ea2fd3 +DIST rust-1.62.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b9b4289aa38ad09d7f5098665a490dfa934676c37385f966d10c978f5320e374976617fb31a5e835661a81edab1ff244c74d8f8f5748954817db8171ed251b0d SHA512 9c44413bf71c416ad08289b4fa0223cb2a5299609ea5c94aff4f0bf7e793a9794155ee0c12a9f19c1c6e20112eb642f22be357d287adcea4e53e0285214c9661 +DIST rust-1.62.0-mips-unknown-linux-gnu.tar.xz 161572400 BLAKE2B b1f4b797319574b4e7cfb0d591988444238f3a735466e336b4c13e3af6754d18962f6f282011147c35ea48df375651d4cad3c368042073ff4da35c9ea6ab4855 SHA512 8c3cbb699f1a821889b70c56653380ad2a6d42d2ed444610cad5971230f3cbe5b7e71f1775f21788f0f54dad2f9c2c7eaa81ecde1a319d98ffcdb3701d6ef144 +DIST rust-1.62.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b68152d3a6221cb57d03826055477be0701c6520228ef2c67cf856a4d5bee5854ecc7dfe3e062121ba5d1e82be0eda0691e0d133ba5d644fed78fbf328021a9f SHA512 eedc2ba881ae0e2d709c8f2cb92ad360c091953b48bf77ce5eb1c93e296f0d532e29f9613d21327e8ca388cc5db7d26a8e612300bb3f94195db08d1d40f15909 +DIST rust-1.62.0-mips64-unknown-linux-gnuabi64.tar.xz 166210748 BLAKE2B d3a612e44132db49ab41eaf822a472f11b24b250ad1c5ca61a85b161d0a892d392d9a4789b42b4f35968887895e964ffbb5dfa69a8205b2ee94baf02cb2ef311 SHA512 f3ea74fad41c197c8af69d65ff6024832ddfeb3c7fd4913b35219b1954fc7b6d3ebc345686043ee3250c17624e133b6c8680272b5b73c38dce1d6c39b763b002 +DIST rust-1.62.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 15806c5684651c2920692d36c733ad8b8a6b8d39e901889457988205e04dd425083bf119053040b73ddba65a44d9330db021a85094d2c84e60c7cd1724d95116 SHA512 46f83dc667361cf4bd10103b1aa990796c1a45ee1af02c142f068fee7aa235c9d982189757184378b2230940134b1462116c09a3c0c043810e077fcf33bac316 +DIST rust-1.62.0-mipsel-unknown-linux-gnu.tar.xz 165275936 BLAKE2B a875ff4675559f9a4b7ff87c271dc4f51112a68c06677b78bbd97f7b4af8f69c75407ef711a9d700ddbf9d85863e24c2f3e27956181bbe00e4afd83220290998 SHA512 9e489cb27b9b8f00e9fd2210b3bf5c1e60ddc83c5fe3d9a381fc4469badda89c02948554d70710d8438333d6629c24282a8a9855241e46ded9c6cf368dce1c2e +DIST rust-1.62.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 63b7d7487a7dd561a95a175584b798fea1b4157e59b660ec2063724e6ef4ceb7455a1912fb73a88c9315de0d80e6e622ef5c81258b670833e15c421cc3bbc562 SHA512 83420778147112aec58ad81f39f61a13fef97dbae6ff927c55a360588cab56cb58c48c31d19ed6b3b77d73277b044559db6184224d4e4d5bd5371e4cd3f701c2 +DIST rust-1.62.0-powerpc-unknown-linux-gnu.tar.xz 183062288 BLAKE2B c987b07862687203f716494cf5dde444d150628ae021f7a0ed990b47c892b7c247a6f8e790a2a88d49c3abcfe6236b18bbebaf76e0f2720a8c318b8f8e3e5a01 SHA512 d0db86e475fadf2535bc6955abb7b6e397553ad6843ddd369e15c9c35800866f27dcd0515a898a65f7ca868672cf458114320769cd14db258a279cfd3de3c57b +DIST rust-1.62.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7398231bfc5624f6e7ef8af55405b861fc06fbfbca9159b9c60a1ab27a5bee6551d228958e6f56abfb598c6f24f53d35f510e863176d03639c47703bd8064c7c SHA512 8713ef73a1a9f30f246dc61086993f2f4a8d6f04595401b312c43fc97f667b44126e4b7f176001b68622d452bb74ee460d60ae2e6d44938e02c4da4fcdfc7855 +DIST rust-1.62.0-powerpc64-unknown-linux-gnu.tar.xz 191619800 BLAKE2B 276f427d0ceed4926f46081c57f6aba69e3c541d896dbbd0375da0d1f6461840e20ab8b7cbb9dec53b67dfff668e91fc8c68ea70aa3d9f333e2b21ec345a876f SHA512 039d321f90f960276ad06ccdcc2549d2c07335d61b21abcc534b33ff406e130d54dd3d79d471be9588546e30f5e1d4952e33c7890cb2d66eac80436471d3db89 +DIST rust-1.62.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8ca8447d2c69ba58439ed36077882da80696427190761e5dcde99c8957fd476c73fbcc8111ebb3409c86e0a7c315dfbf7f1202204f7755a9ed87eb523bf34e38 SHA512 0f8efdf23aacf435e06854aed7f4366f5fe0f83a9a256d1026b02c2817badbd072a726bce052b0333e8cdc2907fd0e5b81a9cdef617a34e7d963d9d3c4742fb5 +DIST rust-1.62.0-powerpc64le-unknown-linux-gnu.tar.xz 201394312 BLAKE2B 60bc2fc5beee3f6d0ce695fed0c2148982b6ae3936bbf44fe0ccb97be80e9a2532f20c7234c924f500c4edc3bf82d4ca25b1f1dadc89bb29718c4a9e41bb8894 SHA512 4a8cfcffb7069e2bc4679a8da9acecf12514c512854bb9eef6f3f861e319b0098fd206d743ef7a0f25ef5b65892ad9dcc0adc1bc19525900c3edf5ea5489849e +DIST rust-1.62.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 55391a58d2ffd6c21b1ff6d77595e424cf269ad44d59f7c2a29d149306563028b402e7393e4d802a47818d7e831455768e86d4f9d882ad0ca70cf216ed72c9db SHA512 c1cf19959de1348ed34448a3f9999ef53324be81d1c99967e4091406463dc0dc28a384f8f04e07e4b54791d1d4a2b1c4aea570503abb0c91c83eafdb5e389243 +DIST rust-1.62.0-riscv64gc-unknown-linux-gnu.tar.xz 194848260 BLAKE2B 35a283e87bd0d338500ed71d539760cc19a1522875d20f7cdf8cce7ac79fdf993530082e0078a9f12c2df41d3366dec30f5326f9584ab9dd0bc37811bc931e1b SHA512 60a9e4a0ffec3763e6e5f4f9a7f3f52f423b6af86eeb4eddbd5fa00682ec3f6881a6d0be717079f508c1d0ef94f3d794b7da2884ed5b7c88219aabd49bf20662 +DIST rust-1.62.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2cc8e9724e3d0f3af2d5c8e8c9f51f7f5e2d36a9e8cda23bf16fdcce0ecbd1a8965b0fc7b339dc27c779346cfe3f26fe8a2d3e1929431a2190452cbe4a949978 SHA512 587b6ab43a3c0258b0393e13f9f231f086527dd28f7f65fa6f00ac61c974e1d8c0305c2cc154a8a106d506b17f505ec8d8e6e5d39d4512072ab39da680fa1574 +DIST rust-1.62.0-s390x-unknown-linux-gnu.tar.xz 218505248 BLAKE2B 6f8026b1779527f0dd781843e2f2deb423c2b541711d3e8efb981ea972cd5405568e6ca274e1b78cc6427e038d59e147652da26cedaa83b02f5daa79491db2f3 SHA512 10c99efe46acbe2bdbd27f28cae28d6db223c3cee2abc835d04f7ff1662c8b998d354ae22af9dcf00c078e96cdbb1f01df5f6c9e9c587d3459ea88f9acf37267 +DIST rust-1.62.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7053c6f041695ad7b9c5ea304a0d71b9b17c5737b7d7082ef2de6e52dc52bc18c170c3fe7e7a658823abc5f80ab775b544dd2b2b3e27690bd8209357945b0f04 SHA512 8bc1d64180f55b0ed93fd506bc193a51e4519a66ed8d6f4e331395bcdb8584171d81397d594460952d7983129aa08e278ee15a584571d404f2f6a304d1d7241d +DIST rust-1.62.0-sparc64-unknown-linux-gnu.tar.xz 58269068 BLAKE2B ba24dddd06f7f4fbb0269cc2ee86a39fdaac9da67cbc0b40719093b190058b7e70456297f2b49f8bf8ccc076490fedda19fbc384350ef7f67bedafb94182ba0c SHA512 3699fe008106e3e2fd30fc69cd8459b192b8e99600e138c4071360ce62425be7aa4ab66886b710adfeafff9e84c518fe98c7ac8e0cdecdee708ff65a7128225c +DIST rust-1.62.0-x86_64-unknown-linux-gnu.tar.xz 153662720 BLAKE2B ff19ebb8a0607b5a3a29b2676dc12466e0c9969f6ac31a588a5dff2d3c10ade70e705873e2606ed84efeaeeb87b8afe6c88285edbdd2bf1a8433f24c48009c21 SHA512 b329dc015dc70ceae0a3b9b8d8e674fb443769bf82f88ed06ca306cedaa52e26756a2491c92315e51b63d4272c0a1f43b2150d5636101814f6e2b59772f1f048 +DIST rust-1.62.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a1602b9cfbdf1b66c479f13b7171cb445068b5f18eae620435b25c3ab1e762e41977e31f02158d259acf16b0c8cdf895af16d6f68904939333b030f21b6c7a01 SHA512 2d79af9fca5a7e19448aeefd330fcc436c3ecb8e617662f144b12303ef2a214a3ae3ec4d9a42f68a4d0d6e343b81b495deddf3df23031aacfbead0c97b083174 +DIST rust-1.62.0-x86_64-unknown-linux-musl.tar.xz 254266584 BLAKE2B f566cdc94726532c50726ccf081eb2b825e52a56c74eb9d9e846f9933dafedef0a8a1b7c485938f96ae9945706192218cc318750738596923329bc23ef770ce1 SHA512 9cd01f0539db8cd344e9dd39fc5ffcd5b65c9c8c95ed692b9f7c23bc19c970c9f0056f8c8bb61813f1402143177a5b1c20bf844e64af8cf0be110e17e30aa4af +DIST rust-1.62.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 46f38806b5a6b67953c607d4a3074a9177e14245e746771d876530c398ea98019e534a22a099c087ea2386124cc952f0a488e45f8175922b19b42441d6607938 SHA512 bc30af1e75cbfc8b488782af26d91ccee6e3b3220913af8d2ca3fc6beb5790bd81e3348f8da5c0c542bd13ab6c4cee77f50f4ba0d48e9600620034acc2dafe15 DIST rust-src-1.59.0.tar.xz 2861676 BLAKE2B 83c7c9f222cdc5de787243154aec1b62914badbd65c8defd7c0e48dad9018806d7befb0e419204c5a782d83e386609071c11a6e445df80ab593917b58f7712e5 SHA512 006cb2b29e0db69f4f241a6b44b1491f840503d953919722da5924eba4fbc13d09f8f20d35614e4069bc745facecfb20ef771ddc95560c94b5745b66047c5a0e DIST rust-src-1.60.0.tar.xz 2898184 BLAKE2B 5810f14110398bc41342ec620a77da34c805b8c2bfb6c45c869c8d41a464b83825936a596f286c9c3f69a7453afd2542eb2971b768c923afdd24444a62359061 SHA512 42a45093bdcfe6ca5fde7701cd17e15438c8f064ac87c5606527b2196258a9285dbd195137ad41c43d77afade34e30061ad36ce58db783fa61037ec146f0e501 DIST rust-src-1.61.0.tar.xz 2353184 BLAKE2B 6f5671173b89eddc4e1a36e58e5937b832ab6952c2601b16427c614c5e7bc7ab60b28d54f33e9c2578ce2d5b3db641097ddbf912ba0145c4f77a1d14115ed703 SHA512 8eb1462896cfd0c731de4f4be6fe68127bb4faa443c53289a34b92ff7778ee8711281cfe29b2c1367c0b3fdb9f6b7dba21dfbd40b968aebaaa51eb219357b4a3 +DIST rust-src-1.62.0.tar.xz 2380276 BLAKE2B a7425a18fa52157f4a594e4ba804034c7fa9e6fae33ccfa3c4c2125386cfadf0ea1673bd1c41f8d2f712b06ea45f8dd2ca748d45e009dfd06101a05228a27440 SHA512 4795c7d25c28ce875b418e836c004152d9094cd637ef808900dd1afd3f96dbc4435a6a4e042bdf9843271a2195b961f484a21299bc2f60f3f5f1cc3b676c39bf EBUILD rust-bin-1.59.0.ebuild 6408 BLAKE2B 6e90ac8111f916b0314508392292a4ceb92ff55add41d27dfb6a2338c7baa8f19a4f5626673ad1780078f43357d1654950df2b23b998dc117dbaf49f168be6d1 SHA512 4fbe98143c4ee4131505ee5b4d8a5a463919d9e172931798b540bd79d6203b550d09473df80128844b6cdb6f8fd2b293ecc5f8b0c7634e5723b2d54a9980140a EBUILD rust-bin-1.60.0.ebuild 6441 BLAKE2B 20e13211584ff99a3f26f146e9d08dba49534a3ad9700280f9240dbe9ab6534e01e2f00ec4ff8c692fd24608be7e39f63886dfade88251ab659e888f10581718 SHA512 312fb2999e1e0ae51c0c3b17965438af8e7002ef6901e9245471aa5c8387f55a09402231f0ba258b359bac5245e6cc287a0bd3e145f8773797ea442af583b45b EBUILD rust-bin-1.61.0.ebuild 6636 BLAKE2B ec6cb60a496aa25093e64e1bbf8987dde73979cf450772962d5ea346dc338ded919acf3a75c273ac468240b248877c157f1f434490b89afffc1cb2c1e88764d9 SHA512 9b828c3d6873e315cf105c5a7d97a6185ebbe3889f2cd410aec3d47d80e4ff018600d970d4421321faddcf713bbc89bca8c110b16e4687b10a1fde89031560f3 +EBUILD rust-bin-1.62.0.ebuild 6633 BLAKE2B 81c2d3ba738cd054efdf4362f61905726a99a3521a2188918694987999fb32bc129538b03734826bfa33f9545c118844d49a1ce2404bc77c9a54a774f321026d SHA512 15d5ef538ae16bb10b6fa323e6b8ad334c5cd67d00e5f2cde5ae7f9e7a2a268facbf609fca9b544f3fde38b68df7b1fc15eeeab4178433cb016ee0ec68d03282 MISC metadata.xml 591 BLAKE2B 6f9d494e400400b8b957eaa3c242b5f096808cc8372360eac0d9ae4bffcd2aa75b35bad4acc7248543b08466d8616b0145ae8a9b1534db1ad5ee838f07f9dc51 SHA512 9f59ea60d8ec9b748eac0789fa6750f32e4867e1c2cbe106ce270acdb7306d40fe8754315f8c65a924af43d5b3e88f4f50dec6361299de80ef1a25665aa03182 diff --git a/dev-lang/rust-bin/rust-bin-1.62.0.ebuild b/dev-lang/rust-bin/rust-bin-1.62.0.ebuild new file mode 100644 index 000000000000..e70aee45c592 --- /dev/null +++ b/dev-lang/rust-bin/rust-bin-1.62.0.ebuild @@ -0,0 +1,221 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal + +MY_P="rust-${PV}" +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2022-06-30/rust-src-${PV}.tar.xz" +GENTOO_BIN_BASEURI="https://dev.gentoo.org/~gyakovlev/distfiles/${CATEGORY}/${PN}" # omit leading slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" +SRC_URI="$(rust_all_arch_uris ${MY_P}) + rust-src? ( ${MY_SRC_URI} ) + sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) +" + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" +SLOT="stable" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="clippy cpu_flags_x86_sse2 doc prefix rls rust-src rustfmt" + +DEPEND="" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + sys-apps/lsb-release +" + +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +QA_PREBUILT=" + opt/${P}/bin/.* + opt/${P}/lib/.*.so + opt/${P}/libexec/.* + opt/${P}/lib/rustlib/.*/bin/.* + opt/${P}/lib/rustlib/.*/lib/.* +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}/usr/share/openpgp-keys/rust.asc" + +pkg_pretend() { + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then + die "${CHOST} is not supported by upstream Rust. You must use a hard float version." + fi +} + +src_unpack() { + # sadly rust-src tarball does not have corresponding .asc file + # so do partial verification + if use verify-sig; then + for f in ${A}; do + if [[ -f ${DISTDIR}/${f}.asc ]]; then + verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" + fi + done + fi + + default_src_unpack + + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die +} + +patchelf_for_bin() { + local filetype=$(file -b ${1}) + if [[ ${filetype} == *ELF*interpreter* ]]; then + einfo "${1}'s interpreter changed" + patchelf ${1} --set-interpreter ${2} || die + elif [[ ${filetype} == *script* ]]; then + hprefixify ${1} + fi +} + +multilib_src_install() { + if multilib_is_native_abi; then + + # start native abi install + pushd "${S}" >/dev/null || die + local analysis std + analysis="$(grep 'analysis' ./components)" + std="$(grep 'std' ./components)" + local components="rustc,cargo,${std}" + use doc && components="${components},rust-docs" + use clippy && components="${components},clippy-preview" + use rls && components="${components},rls-preview,${analysis}" + use rustfmt && components="${components},rustfmt-preview" + # Rust component 'rust-src' is extracted from separate archive + if use rust-src; then + einfo "Combining rust and rust-src installers" + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + echo rust-src >> ./components || die + components="${components},rust-src" + fi + ./install.sh \ + --components="${components}" \ + --disable-verify \ + --prefix="${ED}/opt/${P}" \ + --mandir="${ED}/opt/${P}/man" \ + --disable-ldconfig \ + || die + + if use prefix; then + local interpreter=$(patchelf --print-interpreter ${EPREFIX}/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin" + find "${ED}/opt/${P}/bin" -type f -print0 | \ + while IFS= read -r -d '' filename; do + patchelf_for_bin ${filename} ${interpreter} \; || die + done + eend $? + fi + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use rls && symlinks+=( rls ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + + einfo "installing eselect-rust symlinks and paths" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver> + local ver_i="${i}-bin-${PV}" + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}" + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}" + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}" + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}" + + # musl logic can be improved a bit, but fine as is for now + cat <<-_EOF_ > "${T}/50${P}" + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') + $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${P}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if use rls; then + echo /usr/bin/rls >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + popd >/dev/null || die + #end native abi install + + else + local rust_target + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + dodir "/opt/${P}/lib/rustlib" + cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + "${ED}/opt/${P}/lib/rustlib" || die + fi + + # BUG: installs x86_64 binary on other arches + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die +} + +pkg_postinst() { + eselect rust update + + elog "Rust installs a helper script for calling GDB now," + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}." + + if has_version app-editors/emacs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest index a149e52f14d1..a0689fe94398 100644 --- a/dev-lang/rust/Manifest +++ b/dev-lang/rust/Manifest @@ -100,13 +100,48 @@ DIST rust-1.60.0-x86_64-unknown-linux-gnu.tar.xz 154271340 BLAKE2B 7ee48c165e6ec DIST rust-1.60.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7454407a16e2b6c89226252c7e706086c9bb8016183df1180c54e88ec0d6622a0829d4acda959a093702bb1d95d4f2678976ced69fcc219afb42ab631e459d40 SHA512 eb3550e27e361860075a22d9b4821c6d078d7e4c82ad688a64e813adbce9922b9ab2dc64d1fd4d74d20be9af122ff05819d521677a43ad1c1092bd498d325a8a DIST rust-1.60.0-x86_64-unknown-linux-musl.tar.xz 258420992 BLAKE2B 6b446c06fd8d511910110eccfd55c1116f3468ffe87274d6b90c7a2a1ccd298471f62d1bfb807ddab2f66fbac58995e903414455c76fe2b14c9659f00e8413a0 SHA512 6f5a53968f44bf7be563d32eaddea439d8f388858db3d3b58a89b22cc2252e195b56b0e8895f4254c40274035e221657504958c8f1e331befca012d480118f3b DIST rust-1.60.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 680e7267a188a5286938d9c3284968121a7783cba196bf863affd6b927344e1a88cf7b97016d53c74560179439fc7fe9dd700a295c7c00b139472320323861cb SHA512 071efcfad0074a03de454835c512e98b466662b27bef2fb31def0bb82531b4048eba59a529621fda515800e19c4f3c62a33a364ecca8cecbaa09fae842b894b6 +DIST rust-1.61.0-aarch64-unknown-linux-gnu.tar.xz 226403096 BLAKE2B b9927e6d364fe791bef49cea5f0904629a2f01e6a71325c1769c67b845725ae6f54a1a8c0530fa5048591dd0ecfd50a40224243f935b38ad269e35ce2e1c59d9 SHA512 1c00830f67b75eaf23ab759e8218fca48e424cad0ede02e737e341d105f6f8b8113e4d4181cde1b43f9369af9c2f238fbdcac27ccad3dd02db878e2f4e6ba35b +DIST rust-1.61.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 697df0294d01a19eca2f9b7597df3826e79ea790766c5c5a7b73f5a04919cf64f1489f34c9d2c397523432243e7f3f29f42440ba9aee127753868529196810cf SHA512 78cbc7eeb552965a1b6c4cfc9c8404017fe195acefbda1aa203d1c2ba969b3ac28388930bb4f3ca5dda7ecac5e61163ae0a5d06967eab9f0a7cada87c6b2dc58 +DIST rust-1.61.0-aarch64-unknown-linux-musl.tar.xz 220966060 BLAKE2B e03c6418fed773d1028363979726648d1ffa0e04d6879688efefc15f95fbeff3ff9c0dc7c16a53fedb18c4e0b16e060cee9f3566b0f96027e5dc68820fda149f SHA512 e806f78ecc9edd12bb991533c6bfc95da30c8eaacbfc54f0f4dbf3a95a011da82fca13cf3ef23594a9d1d9d8c79c8186fe98b60658a2cd5c0ed2c6e3984468d0 +DIST rust-1.61.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 426c4c8dac07269d184f61bf2447957cdbdacafdf27fac5ab5a0eea958e15fb3eeed0753dadb1d1bb157322ca5e8c6b7c10d946c4bd3a089ccd8275d0a310014 SHA512 b231afc0c3604aba64277c4f018f1f4b30417bd2fd113919b8b584d5482523b961071a50394a4906d8ba8536685fcff4710b51fee7832a7a041dcb902f1c5ff1 +DIST rust-1.61.0-arm-unknown-linux-gnueabi.tar.xz 200226676 BLAKE2B c55c36524249eaf9ab1e040b6742e1ada46b32bf0511338d23536663050b46103b1765aeb2a145be9cdc0b602d83526fe902fc431e0793d1a307ab0d4b61a356 SHA512 3a9f52b9f4f2a972477a48b629b8345f151d32d491be0cbf3692b76f05ddbd3319de1da7b10959d37fffc08e12b3196a6f4462cc2476ad80d2f9750e0b189cad +DIST rust-1.61.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 34f251ee19ace45c411f161b383dcda35b8dea62e135cdeceddd73ca029920b0f0ea0484fb79c9680d9b4403c5c01d76d4fd2fb47fd65a2fbcb0375e56a1586b SHA512 641ce73107609d55f98ae00a03a9efd58985539e46a834ceffe5af79822309a40a4eac59e5cec3b1654da733f463f3bca438f42ecbaf5fce5d276466317a7e54 +DIST rust-1.61.0-arm-unknown-linux-gnueabihf.tar.xz 200078864 BLAKE2B 02403c024bf02b9ec42fd0baf52856fbcce2a10477d19e68e4ad06110aaabb90496543fc3de5f385428396979fbb80cdb27f28b4cef8af9266c18fa87a995c30 SHA512 155b2f0c341280bfb7db066b639dc50580a07b21ad6f9f6255a8645d5d944d58fbaff505f1de0c3f51ed92ca0d4dc75d9b92e2aab7e8b64f8c42d3af0a714fe6 +DIST rust-1.61.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 6b4875ac242f11f47518f17a0a039539e56cf3cef78f1e3cb4bc2174e60d6d0f0d444b4c0cfa007643202b5ce92a4cb979e92b5f6f559eb90fd78fdd5f870e57 SHA512 f2618ba9f076c10d0ddd23129e6e8e7050fd1126d7767c8b74c53be209ca87f9bebbc09069f6aed55e14de64b1478fd93b370be7e60858b5226fcfc1e8ed87c0 +DIST rust-1.61.0-armv7-unknown-linux-gnueabihf.tar.xz 206757912 BLAKE2B c702e17e225becc681713a3e819cc38c727377d280a1963efd4e6b1d27e0dbbb71ad0bec4d7add8319417846cf54bb7b5901af0f633b180ca9a5f169c709e43a SHA512 88dbb7a35a8424e5b197566515c21122c1da71df146abb304d7dbb50380b4771a741910abefc9d79831146b28b657ffe53cae07f0392e83a7279a7795aadf0e6 +DIST rust-1.61.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B f4b93feba557d81638ead6c3ad72f2e5c321c1103b473096e312d8a3191e98aac65aff0ebcb6f2c23701de17f2602ba18a6462c24a678c2bc2a13e1003189271 SHA512 72d8152d206c1ca9d69ed4704b8638c32b5f136ad985fd4790961935f1b44f08df0960e03066de2dd1cc9f7a140e8070f0a6e671f59c751506847d9e247c5ecd +DIST rust-1.61.0-i686-unknown-linux-gnu.tar.xz 218220208 BLAKE2B da47b131676258747e27704e2a1abb844567e2ac9ccffdd1c87edaa677e04b1fe73227f7b6afa437d8fe2f2690352623343b8318906038206b5b684fa8eafcc7 SHA512 f19e1a5253c57d250d4de7f0f54b70a296d92bba2e22d8b842bcbb311e393e3bf24c28621f490584497c586c6fdbc41f5af55d86a074b93efaa62d313121cc4a +DIST rust-1.61.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3b154ab9d414ec6d7dea13c6b2d2def9613544b3d8f6464385fa390bb6228d73826032ed6e536a9a2dd379499ec500788b149c838d5ad1a50f545a47b19a2cbd SHA512 f06ab7e865bf56c153586e146438079ff3ee3de86c610e463cd0ce67c090349b9dd4fa587d9eab0dea4b908770bca0dab955f797ebcc5aee2617a981ff23eb23 +DIST rust-1.61.0-mips-unknown-linux-gnu.tar.xz 157918296 BLAKE2B 0551ab0898491129828be9cd7d6fd22a56c329f85ae9767c8ca216cac16ae3f93d30913c50c8cea8daa2f98878147e2f15f587e38e9e0fca7c8c4b6d3ead6870 SHA512 02cf5d1ed8c28bd52b7c27ba696de30ee23322ddd1e2ef953cd95a6d0b31c63ea66071bfb22c4d11a780243e62e21407d7ada2592b08caac67d7d79e7d9ee0f2 +DIST rust-1.61.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2d050374431b8d48b6a0a3e171d4d2f62cfd8a2df70ddbf0d374bb9351e684d15d3ade7f6717e6abba1de47c4899f0f7575a4ca537d1a39a57e03ea4b0ae281e SHA512 6e2d01d3b8218cae46008328226286abe3f4323891ab41129f9af94b4526d5b21700fa84c880b4efe38d39c57b2a0946eb82e3ac58950761b20f4def1d8b82f2 +DIST rust-1.61.0-mips64-unknown-linux-gnuabi64.tar.xz 162321252 BLAKE2B d49ec8d3a5eec2085a26b4da22a31e5631e3665333a030e4683446cfe3f71e86e466b827942d6a62d32f469ff7fe9208aa51ba9d47822a54d40d89bef45636e5 SHA512 1e6003127963b836c343ae06586b152b1f227529d05b555aefa0bd7d4b92124215cfa1038aba1236c0c42ecd8e429253db4faa13ed388c16a8659e71b0008fe7 +DIST rust-1.61.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B b031019589b12cdf45f0a938c7479ad219c257643b88108d0c524088530df783338d64c1b356055e34a38df8908653c25fc286949826bb7e3539d63c78c36a66 SHA512 ee9178251f5a79803871fa76a22395e4b43958582930f92cf1f5e76970c1583f9b0403da7c05bd8a7cdd83839b319a6640adcaaa5475e9ab5bffb43146116b09 +DIST rust-1.61.0-mipsel-unknown-linux-gnu.tar.xz 162148648 BLAKE2B 492e0c811c9fae9d0052fcdfffe6d96d43674e1775edaf31d63024e56763d44c02763fd70e768ac0987d260665b86d78aa55a0652f5acbf097a3e9a472aa4d9f SHA512 637b081d8357d46030ca206c8feb54a38d9696a0bdbbad9a892ee4a472f29976c82b814f14cc987ad9e473e70d22347e7e01e81f0f59e82dbaad62153c1ec32f +DIST rust-1.61.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9323f7488fdf603e81018c4b6afa11da952eb6051e9480fee027326ebccd15befed97c75c981f621d7eda3daf2d082c5fb12af426e48cb4c0c733ab55c46af6e SHA512 9d1e6062c4a7714aa754ea586f9bbe3a988e5e6d1e6309316bde89fa83ccddb837e96a8de13fbd4b932c8fc37be89de06802f12f689e17b1ae6cd97b5e2db561 +DIST rust-1.61.0-powerpc-unknown-linux-gnu.tar.xz 180802408 BLAKE2B 41ecab76e35d9ee2b9658730f46ece4191e706714b3b90b6021b4bd9ed2c4f0d563e0c0b39bdc7e633237d55c5375379565d7932e7ffb4896851831f64f61559 SHA512 ed19698f32c1af73ba8c402395b6ee30381d1fff6026d2c94e45ad89ef197cffc1529dc21402e2b463deb47aba0ed4d63d69c62908cdc099da463835757f3fe3 +DIST rust-1.61.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 438143b3474d0cb9e1a19b93de28544f02672e245bba7855da286fb15c58db93021e44d432fbe4a0949592b57cb23b373abd5c0a3f960f6975a0cf433352462e SHA512 7a570c64a79adf78c8c28342d9ab39e8ed953cd44b8038e03beb888b5611625bae95e88220c9c88236ff1672f20ad61976d116da7689cf29f53112deb9b75858 +DIST rust-1.61.0-powerpc64-unknown-linux-gnu.tar.xz 187335836 BLAKE2B 6feca68e47f7e19355ba623cda1d1cd15351017d388d94e2b9d6821493b8a77a09c95148a8fcf7124e3b0c9a9ee205c9f5c14af04172e2d02ea239355755b364 SHA512 b8afcb47653877dd47a808b4aecd95bca715a96311652e0616125e75bc5a457364b0caba2918e2e3e8df2d1fe0afb6fb384bbfa44fde25ebe0dd368414984acb +DIST rust-1.61.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 20bc76dea5484d2a6bf60ffdacc1dacb8d3f7abdb428fee3b1d3e6e19d499f18afbe667a5de96a28005661bd0b4f5e4c8429df917a31b86d72b9aaa9ec56c7e0 SHA512 cf10c0f1ca50894deba5f02a4e3491fe61ea8def4b0f76fe790eb52ff66295d2570ae50acea66a51e710822d6109a2ab3c8f1e703388ae0ee19fcfc5657d4f38 +DIST rust-1.61.0-powerpc64le-unknown-linux-gnu.tar.xz 196945316 BLAKE2B 23ac372f7bbeac3eb757adcb6ca93187ad01492992327533452ab348ec899cb97f5ac9335b32039a62ccf4c34125de3c4b6c1d7829839c95f638b6531be59c57 SHA512 6cf969cef60d2b70db17902ceb71d2616de0df1ff4fda15578347372bf5a349fc8f4377eb1d003abb84a93a122ab0e54aac52c95568813148d3c0113d663a07f +DIST rust-1.61.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6b4bdcba7c5b681512b98b39f8035788f612ee1c8f44d98d58f8a29bc71e470d57ae587a6ea2e02a22263d40bb452054d03483a3922db6c131d3947e65da23bb SHA512 cd102d958ad3ca62f534033473664e867892dce0ca8a2f96271ecfabe34e0afbd63d8281086c5cd692fdb961894313e7430ce2e1d14c3a686b40d8a514c124e3 +DIST rust-1.61.0-riscv64gc-unknown-linux-gnu.tar.xz 190408604 BLAKE2B 1f37d88201f0e3517194d810f99ce3167fa132c72f8580704750b926b838956157b1ccd303ccf5de15615733383d1009cc135ede7dd8dc7c1e39b4246a8ed604 SHA512 8f6f469484ff9c10af2b1a822a8193f313ac244783921c68dc1feee4d6897e7083cfb90d19384a266d41b97aeb845ef073ed955fb7beaf7e1810d682185c2d42 +DIST rust-1.61.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c413b2f55e3d45dbfccf193f5cb9f6866abf895d23c850e3744a0bd897c2c812f57457211efaab7416c0d8fc079cc4feaa35de879ad76356a961e704e711be46 SHA512 0155b4e0ba86cc190b85f2f82e8ee75c14825e52e05ab3446283512f0b42f113d85ef89d72e0929382637dc0a44ef72f06552957285463c2edd7f83d9c8234ff +DIST rust-1.61.0-s390x-unknown-linux-gnu.tar.xz 214196912 BLAKE2B 31eeaabdbca2fa837610179eafd0cb6cde2ce8d4feb57e86cd1fc8962e1f8b84bf067d7782414380616d5b56fef5db19c91c54c89f5dd935debf6ed2d3841466 SHA512 7de0ea08c4834e60d12098d92d4366689c0b959f58667bc68e35ad3c976011e8d9375566cebd9260933e13bd74105d297dabf40a0d09b34f83905d4cb9995f7f +DIST rust-1.61.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 617bfd93b883cc36c8504ac326813511bee205a508489be168060863d967efe9a2e8276c3834d872f419317047ba83624c996be9d6f913be58f9feab66f292b2 SHA512 933689de3c1fabc31dd1910844479b3505e1a8b8474fdaeb4936df118a6da4f9597c45f0a0056d5c1efc33ae8ffb2910f5aa07b91afbd231ad7c20f0c79ceeb4 +DIST rust-1.61.0-x86_64-unknown-linux-gnu.tar.xz 157592468 BLAKE2B 0877c0794280a5ab7e74553c02cebad67e36148a3f34a709973310d89d7ea65dc8ecfa8b9c461e4f96939ed2ff09b7bacbef0b4fcf409758a0429bc431f87ebe SHA512 365191453f37775cf8bed66e12224294d4d99f3bacc635c3c13f05bf8585838a04b602c2fef7964f26a6cc35ab432a5c0a9745e9ffad0a83b0c761ec02de3484 +DIST rust-1.61.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5296a8df210a4cf2fd7dffcba1ae6bd8cda9e408ff4c55d997199c2890b9faab9e8d6d22a3c0961786bb80231836047929621edf9043d474b352fe28bd9192e8 SHA512 cb97e84cd793aa8676c41297d8da14125855c008815e65d8191868eb88241ccb408c6f9ae85b7ba8de1a02ea8923f5e042f4fea662fa593e5ec03505b41ee52d +DIST rust-1.61.0-x86_64-unknown-linux-musl.tar.xz 259724324 BLAKE2B d005bd2794d196136c42842fbb7bc64d827898b5713f768cf0e88be5a40e3906139027ee58571cfccd8d2c864f672d1986da28c72f0d1c4a7f78d18efe14385e SHA512 96d09ac3a48bb2956dd6bf219e605c68327a94d09e72290ee74781c4886dce93b217163fb08dac0ce69bfaa2e3ab8cccd4a26d10b9df4c3162822a38e355bdb6 +DIST rust-1.61.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B e1c8061c80cd5445f7df9c44044ccb47731704b93d4e86cf95bd3b1b08a3c3cdb61e21349088cd0127632c63a0f7c22f0fa209809450dd81607bf7353d61a7b4 SHA512 587f487a3c8159a4b102f15a484a0ffa4f32c2abd2fb4ca078c27d36f6ff365c95015a99494e852631e9f92bfc9f33a0266c5f62b7edfce823c34993ff6a836b DIST rustc-1.59.0-src.tar.xz 128942756 BLAKE2B b28114f14c9a0fec7db56fde79a985360fd8438c3b14eede49ed12e540c2636be960d0fd800c569af193886ac76fe8bf604d5dae59214ae08cb0cc6cc0ca404e SHA512 acace866871d13a55d365f65d7e15c192c3cd33096862571df6317e066b7474d668b95ae281e0244967778c05f1e33966c3c55616218bd25d3770a2b2d4f0365 DIST rustc-1.59.0-src.tar.xz.asc 801 BLAKE2B 061701c4fdbde930798f9f938ca3642204ae4a2ad9396937ca7d604268813d6d68f4979f20d35abdbbfeec0bb389acd86c9d3d84256db85861f6b11e3dbef80e SHA512 1b90bc01f9d68ba1f70591c4ae707295d7727b790d170a0b757d654684e59d3c26c45b66a21f9ac762debb6867494660c73daaf10be9bd567a38be44c0009f72 DIST rustc-1.60.0-src.tar.xz 136183048 BLAKE2B 8030f32c21f81af6abc7a282aab1189cb7d680c6bce58c119a1beaad71a3eeb36a696eef46a22d366e2c41a2f9182a9a5aa527426f2c8db05278184c37297dd0 SHA512 d0c113e8c2c67bf10773c9403dc4c4700c4deb2fb287bfec51e565d3473d2b481d8ae2c90b272cd67b3a87d7443ea25a34c7b40ba8cd7106bf5d71126ab141c3 DIST rustc-1.60.0-src.tar.xz.asc 801 BLAKE2B 02a2c140e091ea6913a760daa93aa57ba6a7631d0b99867669ce68641d562d436f13ed1f1578713184f06c9307d46e19dfd7c8d74a516b04293bc65c02b90707 SHA512 8136d19d4f3f4c45249b59b689f01d4edf108535ffe1f813771bd244cde1c66184a0bde5a0acfed4fb01015812458204244bbb54e6f5fa86e9b1ef5e92e805e3 DIST rustc-1.61.0-src.tar.xz 136696780 BLAKE2B 604299aa5c8dd7dff9802236898ca5d4fda8c54028d0aa557a6fe34c15941eb6e8c1dc5d2e172cd3680152ed1ff3fa9e58eb9b6a3b6f8f4ccccd949d810d31a7 SHA512 9bbdcc1c37f7b889be0c8d195963b4c3b65267a63ea309315eda12bd3b2cd36e0060301805dfc7da440c0a8702d085ccb0bf763155b27035a078769333637fb3 DIST rustc-1.61.0-src.tar.xz.asc 801 BLAKE2B 46384fd77c72ecf5cd7c783655f9345e4d52718c737470548a9f3498af9cbb93c3bf618464507cd10185c39a5207fd6669c6c82841c8c82fa325001cbe659cb0 SHA512 5ea807254f0d7c207f10f1fb224101d9ae3a3c81aff16d2ba2ea4af1fe92345d1a25336b5cff0964aba9ed249e38ab9d3df41eb1217e048988093cdb46da8962 +DIST rustc-1.62.0-src.tar.xz 135644992 BLAKE2B f9133310dc951361588bdc0b631c7fc9e2187dbb6a71b4631786d68c0f9d221d12cc78f509df0a08a23beb6e647f18712db176ac62623c5b621e22281adf62c2 SHA512 02872a8409b0490fa9fa7a70756cbf103643694df6b2e2aea32ad8b70032a3162c7751cd92d78291587ee0120daeb9bc1ae5ec6136c7eb6eb584d8be3032dd3d +DIST rustc-1.62.0-src.tar.xz.asc 801 BLAKE2B 1d9a6fcafdfc2f46b098403e36e401cc6b3834d4f7fffaa82f20a332f8843a0af10c814c3f585c6e062fd5e9fab3d231ab03cc0caa449acd1c8a9eea077c1932 SHA512 646a895d19847ab0cc1d2f85ce1643625a1785acda31d37ed9776257f8e4625b65e16e4b9f3210e816d4516633d963a0d7b520e35582366ee75059dcb2f1313f EBUILD rust-1.59.0.ebuild 21153 BLAKE2B 0c8da01c7b944faf9bda62d5033421284c0e3c58fe04d55a2f815cd11bf820c8a72e201c9f49f0e373e94f2e406d31cfd83208b8bdc5f194605e53bb0e5f8eac SHA512 d0ef5b70612856a9b8eb4baccbb90cd242d8892b26133a680ff5a1d700fa1a352ac244e27224334fe597dfe2bd821a26d5143372f796e9a1a07460e9b8352729 EBUILD rust-1.60.0.ebuild 21376 BLAKE2B 406bac0d9acf6ffe0666fa319d0cfd9238c0f09400853e88b8ce9ba609962ea48e2c3f93174886b1b03786db25d122edd488c0f898c9304e4e85acecf4d6674c SHA512 8e2dcbb727399e6298c007c0a31d636fb27c8afce01ee1e9191bb0ed7e29d73646eea3b6e7a994f71891fa4bae32c0d6b509bfba6dfb818f11697101d2dce21d -EBUILD rust-1.61.0-r1.ebuild 21903 BLAKE2B 1ccd10ef4ac32b47982e465dedb6d500129b45453aa2296533726cd9254419d0a128b268bde11e6b5ee472b334d6a66a2f269bc72292bf70769fce858ac420eb SHA512 47b61b51211f546838469eaf68fc84879d0bd6c29715bdc5799344c70d6942324baeaec71a6179fc97efbbeac706463144e556fc1931c4176b54f69296884134 +EBUILD rust-1.61.0-r2.ebuild 22299 BLAKE2B 28fb0eda506e8a0c92c0e111ac92c0b70d1cf6cc632457f80618f07b803f00bdfc2b63d74f08113e3f70fbf3f9929c3e887662585f78c733549a49e4f5656621 SHA512 4bcb94dd2e7094762d087f02b765664d5b086f1425c3140a92bc698e0cc335636748836397c7ee35f0366544a83b52c66460979ec727534c0d853f98a1c24c61 +EBUILD rust-1.62.0.ebuild 22169 BLAKE2B 1312a6c142db66a6813ab74ae7dce0eae8d6c70b4addc8de7277f7164122a002dae94ea6e7ba8d4f4ce1de6e158081b4773382e1f426b6f6f65917093c43399e SHA512 c0fbd201cea468da83d63f6d8d72b38ad11d1428269ebf1913a487d096497ce38bdc781077549d4f48afa4f8ea18410b7a2f4d78640c76e2502936b8fce79bc1 MISC metadata.xml 1586 BLAKE2B 4d9530ee760d64480e32f899a1e343bee6e7be7e079ec3ce6e36403793f3fac7a2d45ad7415bce59750b0ec8f986708b80cce0aee80b4b7192a078a7053bc461 SHA512 e79110cc72691757b137dd904291f734f877786c72e5da9f4dadc6f3d6fd12e7d60b4ffd2fb1400ce408e82733f5b5a5d7230d0dbdfb5634a031cd17f24446c7 diff --git a/dev-lang/rust/rust-1.61.0-r1.ebuild b/dev-lang/rust/rust-1.61.0-r2.ebuild index f2d87f021ce4..57d88e14bea0 100644 --- a/dev-lang/rust/rust-1.61.0-r1.ebuild +++ b/dev-lang/rust/rust-1.61.0-r2.ebuild @@ -316,6 +316,7 @@ src_configure() { fi fi + local cm_btype="$(usex debug DEBUG RELEASE)" cat <<- _EOF_ > "${S}"/config.toml changelog-seen = 2 [llvm] @@ -341,6 +342,7 @@ src_configure() { *) ;; esac) + build-config = { CMAKE_VERBOSE_MAKEFILE = "ON", CMAKE_C_FLAGS_${cm_btype} = "${CFLAGS}", CMAKE_CXX_FLAGS_${cm_btype} = "${CXXFLAGS}", CMAKE_EXE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}", CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}", CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}", CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = "${ARFLAGS}" } [build] build-stage = 2 test-stage = 2 diff --git a/dev-lang/rust/rust-1.62.0.ebuild b/dev-lang/rust/rust-1.62.0.ebuild new file mode 100644 index 000000000000..4b8fdf357c6e --- /dev/null +++ b/dev-lang/rust/rust-1.62.0.ebuild @@ -0,0 +1,735 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..11} ) + +inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \ + multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig + +if [[ ${PV} = *beta* ]]; then + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SLOT="beta/${PV}" + SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz" +else + ABI_VER="$(ver_cut 1-2)" + SLOT="stable/${ABI_VER}" + MY_P="rustc-${PV}" + SRC="${MY_P}-src.tar.xz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86" +fi + +RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0" + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +SRC_URI=" + https://static.rust-lang.org/dist/${SRC} + verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc ) + !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) ) +" + +# keep in sync with llvm ebuild of the same version as bundled one. +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" + +IUSE="clippy cpu_flags_x86_sse2 debug dist doc miri nightly parallel-compiler profiler rls rustfmt rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" + +# Please keep the LLVM dependency block separate. Since LLVM is slotted, +# we need to *really* make sure we're not pulling more than one slot +# simultaneously. + +# How to use it: +# List all the working slots in LLVM_VALID_SLOTS, newest first. +LLVM_VALID_SLOTS=( 14 ) +LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}" + +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +# (-) usedep needed because we may build with older llvm without that target +LLVM_DEPEND="|| ( " +for _s in ${LLVM_VALID_SLOTS[@]}; do + LLVM_DEPEND+=" ( " + for _x in ${ALL_LLVM_TARGETS[@]}; do + LLVM_DEPEND+=" + ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )" + done + LLVM_DEPEND+=" )" +done +unset _s _x +LLVM_DEPEND+=" ) + <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):= + wasm? ( sys-devel/lld ) +" + +# to bootstrap we need at least exactly previous version, or same. +# most of the time previous versions fail to bootstrap with newer +# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok, +# but it fails to bootstrap with 1.48.x +# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt +RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*" +RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*" +BOOTSTRAP_DEPEND="|| + ( + =dev-lang/rust-"${RUST_DEP_PREV}" + =dev-lang/rust-bin-"${RUST_DEP_PREV}" + =dev-lang/rust-"${RUST_DEP_CURR}" + =dev-lang/rust-bin-"${RUST_DEP_CURR}" + ) +" + +BDEPEND="${PYTHON_DEPS} + app-eselect/eselect-rust + || ( + >=sys-devel/gcc-4.7 + >=sys-devel/clang-3.5 + ) + system-bootstrap? ( ${BOOTSTRAP_DEPEND} ) + !system-llvm? ( + >=dev-util/cmake-3.13.4 + dev-util/ninja + ) + test? ( sys-devel/gdb ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +DEPEND=" + >=app-arch/xz-utils-5.2 + net-misc/curl:=[http2,ssl] + sys-libs/zlib:= + dev-libs/openssl:0= + elibc_musl? ( sys-libs/libunwind:= ) + system-llvm? ( ${LLVM_DEPEND} ) +" + +RDEPEND="${DEPEND} + app-eselect/eselect-rust + sys-apps/lsb-release +" + +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) + miri? ( nightly ) + parallel-compiler? ( nightly ) + rls? ( rust-src ) + test? ( ${ALL_LLVM_TARGETS[*]} ) + wasm? ( llvm_targets_WebAssembly ) + x86? ( cpu_flags_x86_sse2 ) +" + +# we don't use cmake.eclass, but can get a warning +CMAKE_WARN_UNUSED_CLI=no + +QA_FLAGS_IGNORED=" + usr/lib/${PN}/${PV}/bin/.* + usr/lib/${PN}/${PV}/libexec/.* + usr/lib/${PN}/${PV}/lib/lib.*.so + usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.* + usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so +" + +QA_SONAME=" + usr/lib/${PN}/${PV}/lib/lib.*.so.* + usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so +" + +QA_PRESTRIPPED=" + usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +# causes double bootstrap +RESTRICT="test" + +VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc + +PATCHES=( + "${FILESDIR}"/1.55.0-ignore-broken-and-non-applicable-tests.patch + "${FILESDIR}"/1.61.0-gentoo-musl-target-specs.patch +) + +S="${WORKDIR}/${MY_P}-src" + +toml_usex() { + usex "${1}" true false +} + +bootstrap_rust_version_check() { + # never call from pkg_pretend. eselect-rust may be not installed yet. + [[ ${MERGE_TYPE} == binary ]] && return + local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))" + local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))" + local rustc_version=( $(eselect --brief rust show 2>/dev/null) ) + rustc_version=${rustc_version[0]#rust-bin-} + rustc_version=${rustc_version#rust-} + + [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" + + if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then + eerror "Rust >=${rustc_wanted} is required" + eerror "please run 'eselect rust' and set correct rust version" + die "selected rust version is too old" + elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then + eerror "Rust <${rustc_toonew} is required" + eerror "please run 'eselect rust' and set correct rust version" + die "selected rust version is too new" + else + einfo "Using rust ${rustc_version} to build" + fi +} + +pre_build_checks() { + local M=8192 + # multiply requirements by 1.3 if we are doing x86-multilib + if use amd64; then + M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) + fi + M=$(( $(usex clippy 128 0) + ${M} )) + M=$(( $(usex miri 128 0) + ${M} )) + M=$(( $(usex rls 512 0) + ${M} )) + M=$(( $(usex rustfmt 256 0) + ${M} )) + # add 2G if we compile llvm and 256M per llvm_target + if ! use system-llvm; then + M=$(( 2048 + ${M} )) + local ltarget + for ltarget in ${ALL_LLVM_TARGETS[@]}; do + M=$(( $(usex ${ltarget} 256 0) + ${M} )) + done + fi + M=$(( $(usex wasm 256 0) + ${M} )) + M=$(( $(usex debug 2 1) * ${M} )) + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + M=$(( 15 * ${M} / 10 )) + fi + eshopts_pop + M=$(( $(usex system-bootstrap 0 1024) + ${M} )) + M=$(( $(usex doc 256 0) + ${M} )) + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} +} + +llvm_check_deps() { + has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + python-any-r1_pkg_setup + + export LIBGIT2_NO_PKG_CONFIG=1 #749381 + + use system-bootstrap && bootstrap_rust_version_check + + if use system-llvm; then + llvm_pkg_setup + + local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" + export LLVM_LINK_SHARED=1 + export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" + fi +} + +src_prepare() { + if ! use system-bootstrap; then + local rust_stage0_root="${WORKDIR}"/rust-stage0 + local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)" + + "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \ + --without=rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die + fi + + default +} + +src_configure() { + local rust_target="" rust_targets="" arch_cflags use_libcxx="false" + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use wasm; then + rust_targets="${rust_targets},\"wasm32-unknown-unknown\"" + if use system-llvm; then + # un-hardcode rust-lld linker for this target + # https://bugs.gentoo.org/715348 + sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die + fi + fi + rust_targets="${rust_targets#,}" + + local tools="\"cargo\"," + if use clippy; then + tools="\"clippy\",$tools" + fi + if use miri; then + tools="\"miri\",$tools" + fi + if use profiler; then + tools="\"rust-demangler\",$tools" + fi + if use rls; then + tools="\"rls\",\"analysis\",$tools" + fi + if use rustfmt; then + tools="\"rustfmt\",$tools" + fi + if use rust-src; then + tools="\"src\",$tools" + fi + + local rust_stage0_root + if use system-bootstrap; then + local printsysroot + printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")" + rust_stage0_root="${printsysroot}" + else + rust_stage0_root="${WORKDIR}"/rust-stage0 + fi + # in case of prefix it will be already prefixed, as --print sysroot returns full path + [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" + + rust_target="$(rust_abi)" + + # https://bugs.gentoo.org/732632 + if tc-is-clang; then + local clang_slot="$(clang-major-version)" + if { has_version "sys-devel/clang:${clang_slot}[default-libcxx]" || is-flagq -stdlib=libc++; }; then + use_libcxx="true" + fi + fi + + local cm_btype="$(usex debug DEBUG RELEASE)" + cat <<- _EOF_ > "${S}"/config.toml + changelog-seen = 2 + [llvm] + download-ci-llvm = false + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + ninja = true + targets = "${LLVM_TARGETS// /;}" + experimental-targets = "" + link-shared = $(toml_usex system-llvm) + $(if [[ ${use_libcxx} == true ]]; then + echo "use-libcxx = true" + echo "static-libstdcpp = false" + fi) + $(case "${rust_target}" in + i586-*-linux-*) + # https://github.com/rust-lang/rust/issues/93059 + echo 'cflags = "-fcf-protection=none"' + echo 'cxxflags = "-fcf-protection=none"' + echo 'ldflags = "-fcf-protection=none"' + ;; + *) + ;; + esac) + [llvm.build-config] + CMAKE_VERBOSE_MAKEFILE = "ON" + CMAKE_C_FLAGS_${cm_btype} = "${CFLAGS}" + CMAKE_CXX_FLAGS_${cm_btype} = "${CXXFLAGS}" + CMAKE_EXE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}" + CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}" + CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}" + CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = "${ARFLAGS}" + [build] + build-stage = 2 + test-stage = 2 + doc-stage = 2 + build = "${rust_target}" + host = ["${rust_target}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + docs = $(toml_usex doc) + compiler-docs = false + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + tools = [${tools}] + verbose = 2 + sanitizers = false + profiler = $(toml_usex profiler) + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${PV}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debug-assertions-std = $(toml_usex debug) + debuginfo-level = $(usex debug 2 0) + debuginfo-level-rustc = $(usex debug 2 0) + debuginfo-level-std = $(usex debug 2 0) + debuginfo-level-tools = $(usex debug 2 0) + debuginfo-level-tests = 0 + backtrace = true + incremental = false + default-linker = "$(tc-getCC)" + parallel-compiler = $(toml_usex parallel-compiler) + channel = "$(usex nightly nightly stable)" + description = "gentoo" + rpath = false + verbose-tests = true + optimize-tests = $(toml_usex !debug) + codegen-tests = true + dist-src = false + remap-debuginfo = true + lld = $(usex system-llvm false $(toml_usex wasm)) + # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it + # https://github.com/rust-lang/rust/issues/74976 + # https://github.com/rust-lang/rust/issues/76526 + deny-warnings = $(usex wasm $(usex doc false true) true) + backtrace-on-ice = true + jemalloc = false + [dist] + src-tarball = false + compression-formats = ["xz"] + _EOF_ + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + cat <<- _EOF_ >> "${S}"/config.env + CFLAGS_${rust_target}=${arch_cflags} + _EOF_ + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${rust_target}] + ar = "$(tc-getAR)" + cc = "$(tc-getCC)" + cxx = "$(tc-getCXX)" + linker = "$(tc-getCC)" + ranlib = "$(tc-getRANLIB)" + _EOF_ + # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; + if use elibc_musl; then + cat <<- _EOF_ >> "${S}"/config.toml + crt-static = false + _EOF_ + fi + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" + _EOF_ + fi + done + if use wasm; then + cat <<- _EOF_ >> "${S}"/config.toml + [target.wasm32-unknown-unknown] + linker = "$(usex system-llvm lld rust-lld)" + # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483 + profiler = false + _EOF_ + fi + + if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below + # experimental cross support + # discussion: https://bugs.gentoo.org/679878 + # TODO: c*flags, clang, system-llvm, cargo.eclass target support + # it would be much better if we could split out stdlib + # complilation to separate ebuild and abuse CATEGORY to + # just install to /usr/lib/rustlib/<target> + + # extra targets defined as a bash array + # spec format: <LLVM target>:<rust-target>:<CTARGET> + # best place would be /etc/portage/env/dev-lang/rust + # Example: + # RUST_CROSS_TARGETS=( + # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" + # ) + # no extra hand holding is done, no target transformations, all + # values are passed as-is with just basic checks, so it's up to user to supply correct values + # valid rust targets can be obtained with + # rustc --print target-list + # matching cross toolchain has to be installed + # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) + # only gcc toolchains installed with crossdev are checked for now. + + # BUG: we can't pass host flags to cross compiler, so just filter for now + # BUG: this should be more fine-grained. + filter-flags '-mcpu=*' '-march=*' '-mtune=*' + + local cross_target_spec + for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do + # extracts first element form <LLVM target>:<rust-target>:<CTARGET> + local cross_llvm_target="${cross_target_spec%%:*}" + # extracts toolchain triples, <rust-target>:<CTARGET> + local cross_triples="${cross_target_spec#*:}" + # extracts first element after before : separator + local cross_rust_target="${cross_triples%%:*}" + # extracts last element after : separator + local cross_toolchain="${cross_triples##*:}" + use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" + command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${cross_rust_target}] + ar = "${cross_toolchain}-ar" + cc = "${cross_toolchain}-gcc" + cxx = "${cross_toolchain}-g++" + linker = "${cross_toolchain}-gcc" + ranlib = "${cross_toolchain}-ranlib" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config" + _EOF_ + fi + if [[ "${cross_toolchain}" == *-musl* ]]; then + cat <<- _EOF_ >> "${S}"/config.toml + musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr" + _EOF_ + fi + + # append cross target to "normal" target list + # example 'target = ["powerpc64le-unknown-linux-gnu"]' + # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' + + rust_targets="${rust_targets},\"${cross_rust_target}\"" + sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die + + ewarn + ewarn "Enabled ${cross_rust_target} rust target" + ewarn "Using ${cross_toolchain} cross toolchain" + ewarn + if ! has_version -b 'sys-devel/binutils[multitarget]' ; then + ewarn "'sys-devel/binutils[multitarget]' is not installed" + ewarn "'strip' will be unable to strip cross libraries" + ewarn "cross targets will be installed with full debug information" + ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" + ewarn + ewarn "Alternatively llvm-strip can be used, it supports stripping any target" + ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" + ewarn + fi + done + fi # I_KNOW_WHAT_I_AM_DOING_CROSS + + einfo "Rust configured with the following flags:" + echo + echo RUSTFLAGS="${RUSTFLAGS:-}" + echo RUSTFLAGS_BOOTSTRAP="${RUSTFLAGS_BOOTSTRAP:-}" + echo RUSTFLAGS_NOT_BOOTSTRAP="${RUSTFLAGS_NOT_BOOTSTRAP:-}" + env | grep "CARGO_TARGET_.*_RUSTFLAGS=" + cat "${S}"/config.env || die + echo + einfo "config.toml contents:" + cat "${S}"/config.toml || die + echo +} + +src_compile() { + # we need \n IFS to have config.env with spaces loaded properly. #734018 + ( + IFS=$'\n' + env $(cat "${S}"/config.env) RUST_BACKTRACE=1\ + "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + ) +} + +src_test() { + # https://rustc-dev-guide.rust-lang.org/tests/intro.html + + # those are basic and codegen tests. + local tests=( + codegen + codegen-units + compile-fail + incremental + mir-opt + pretty + run-make + ) + + # fails if llvm is not built with ALL targets. + # and known to fail with system llvm sometimes. + use system-llvm || tests+=( assembly ) + + # fragile/expensive/less important tests + # or tests that require extra builds + # TODO: instead of skipping, just make some nonfatal. + if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then + tests+=( + rustdoc + rustdoc-js + rustdoc-js-std + rustdoc-ui + run-make-fulldeps + ui + ui-fulldeps + ) + fi + + local i failed=() + einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" + for i in "${tests[@]}"; do + local t="src/test/${i}" + einfo "rust_src_test: running ${t}" + if ! ( + IFS=$'\n' + env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \ + "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \ + -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}" + ) + then + failed+=( "${t}" ) + eerror "rust_src_test: ${t} failed" + fi + done + + if [[ ${#failed[@]} -ne 0 ]]; then + eerror "rust_src_test: failure summary: ${failed[@]}" + die "aborting due to test failures" + fi +} + +src_install() { + ( + IFS=$'\n' + env $(cat "${S}"/config.env) DESTDIR="${D}" \ + "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + ) + + # bug #689562, #689160 + rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die + newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use miri && symlinks+=( miri cargo-miri ) + use profiler && symlinks+=( rust-demangler ) + use rls && symlinks+=( rls ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + + einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver> + # need to fix eselect-rust to remove this hack. + local ver_i="${i}-${PV}" + if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then + einfo "Installing ${i} symlink" + ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die + else + ewarn "${i} symlink requested, but source file not found" + ewarn "please report this" + fi + dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}" + dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}" + dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}" + dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}" + dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}" + + newenvd - "50${P}" <<-_EOF_ + LDPATH="${EPREFIX}/usr/lib/rust/lib" + MANPATH="${EPREFIX}/usr/lib/rust/man" + $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') + $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '') + _EOF_ + + rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${P}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/libexec + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if use miri; then + echo /usr/bin/miri >> "${T}/provider-${P}" + echo /usr/bin/cargo-miri >> "${T}/provider-${P}" + fi + if use profiler; then + echo /usr/bin/rust-demangler >> "${T}/provider-${P}" + fi + if use rls; then + echo /usr/bin/rls >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${P}" + + if use dist; then + insinto "/usr/lib/${PN}/${PV}/dist" + doins -r "${S}/build/dist/." + fi +} + +pkg_postinst() { + eselect rust update + + if has_version sys-devel/gdb || has_version dev-util/lldb; then + elog "Rust installs a helper script for calling GDB and LLDB," + elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + elog "install app-emacs/rust-mode to get emacs support for rust." + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + elog "install app-vim/rust-vim to get vim support for rust." + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest index 2e886a0c5454..1808d32b80f3 100644 --- a/dev-lang/spidermonkey/Manifest +++ b/dev-lang/spidermonkey/Manifest @@ -9,12 +9,7 @@ DIST firefox-68.0-patches-15.tar.xz 16060 BLAKE2B f9e6cd58ea51bed1af90a9d30fd551 DIST firefox-68.12.0esr.source.tar.xz 313856956 BLAKE2B eeaa4acc9fabf15ec1b313170a30cee8e1fc10a8b08512b915b83b7d6a81c09b365733ed94638bd434864fd7b0cb8cbf1bc2e43441be69e31117e8e6a099234c SHA512 839b02422e4c87bdb12e0995cd35ca8c1996f3fba00bbb46b419e46b67df5ec48a264cb14632db777ce29166ee4fdcb06e2ee3ce847e64328c58c9a2f9129f4c DIST firefox-78.15.0esr.source.tar.xz 330819568 BLAKE2B dc8785613c2f72c55d484642c89c2545765a9efbd609bc7c2cf57b4a3a06a2ea22e6959e42b5b8af867db782e8b2097a67dec858796b744e47008a8e575e2316 SHA512 ac3de735b246ce4f0e1619cd2664321ffa374240ce6843e785d79a350dc30c967996bbcc5e3b301cb3d822ca981cbea116758fc4122f1738d75ddfd1165b6378 DIST firefox-78esr-patches-19.tar.xz 88424 BLAKE2B fdc7bf8f28b3e799551a70f1cec7a695f52c4712f3b28733648fcd7dac5a599613f4c3d2cfa169266dc62b65619b7f28c0e06d32317adb8ec0056ca79c87e9f6 SHA512 3c81dadc9bf74207c4e361605127ef6141d77700c5c54f1f9cd5ad3be13df9f73c6eec2f51d779558e4bdad1e7395c6aa8943a93415bd1786d461042bc03550a -DIST firefox-91.10.0esr.source.tar.xz 380454768 BLAKE2B a28103041af99732545dcf5ff0c6ea999252f7006602b9f74c388afadb32f98927ec10fb1f5ff30029c18a0f7d26dd27584f4d129de6671d6728a49ade07b451 SHA512 8344b829d7bd86250afdd4cb582e27ed5705b3ef48aec50b9a39abc17deba86c9fd721f4667f5c2155e3d7cd1d6e1f82ff8e218ced3a16a4e06bb414ee0690f8 DIST firefox-91.11.0esr.source.tar.xz 384459848 BLAKE2B cff327378a1712d0dfb99e1a67bd63e958987e3147279af5f98ee9318fe91f42823bbc9afb0308638e42de789451b04ea895320a8c674cc221e0d4b0b1d80f38 SHA512 bff3a399c03bd1cdaaec0b6963b1558aa35b6338b6c02042ffd65fec0aedd344d01718692e881332f5f352c32da15ba09a20a09ee072200b47ae840bc0585a96 -DIST firefox-91.8.0esr.source.tar.xz 380325092 BLAKE2B 9bc470d0e8c65517d67f4075be2aece6e82af7dc89c40018359d3dd53d45d67424db8ed4614dd3dde430e08ec6ffff29f4ecc81e1990e05abd05804c6a2b5891 SHA512 edea2c7d4d3d0322091b20b623019ef041090d9f89f33c8e3140f66a54624261f278257393db70d2038154de8ee02da0bee6ecf85c281f3558338da71fc173c3 -DIST firefox-91.9.1esr.source.tar.xz 378762560 BLAKE2B 6a29d262396ec63718d4569f37f14f496c46530a3997e05c41c69163e65f2deb382b983cac7adbd2246be9922a644af03a927328cb424bb1e138e87f49208b5d SHA512 d432d559f2c5f4b0bc66a755db7d61585e24a727cd8d18630854b3fb8633d54baf61ed65b580345b13d52b66288aa15ca8ca5cfcde8231e88108241f0b007683 -DIST firefox-91esr-patches-05j.tar.xz 17116 BLAKE2B 5db6d2d3d5432369d2cfcda1a2b542d70ac18c1af7013d91984054c9658d7e3f989527c3a248de53f2e8dc51a852a46477f9ad75e98db28f50f8609fcafe547c SHA512 42080a8e28014d5f8de7ff45e0128ab71747faad7a92f0f7094686125835c168751794bd0229f77290f075502c271af0171ffae2863325d10cc6e8a853a90d3e -DIST firefox-91esr-patches-07j.tar.xz 18900 BLAKE2B ace76bc00c3053e60c39186e460b0b422a24bb3393091324470045707dc18c631c41d5d4e61b67dca6dc2e881b7dcffce256f5b897766f994ad46b23df96b77a SHA512 2fca4a5fec8fb79541b9dddec5a632a9a88fca845cac15aa963ab686eb80e8e5ad23186166f97ed88327e6c5bd7bae6178b32760f26d560c0b685ef3b3f638f4 DIST firefox-91esr-patches-10j.tar.xz 18320 BLAKE2B ec882411eed19bafab8676e3d79f4ae43947bb97c44571c1497bb93a44fcfec99de06ebacbdf8c4944dcecdf949e4f684908d7ce4226cdcec60241e62e75810e SHA512 670a14d852bb74b9074c3fef9310650f71ce1c56314109c49aea02a7a69acc836af60a8beab11da53e21b10a8e6da341fcfa18b68a1dfd33b26978dd63758e9c DIST js185-1.0.0.tar.gz 6164605 BLAKE2B 76a37f0ceae05d3475853875bd0ce4be6e525e4114816f8f281ea6fc6b60a71060975a0fa1cb843f57ad1e2f842dfb26b24244fa0fd6c20f6ae2ebbe430f70be SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718 DIST mozjs-60.5.2.tar.bz2 32816585 BLAKE2B 45ac4c9646e1275faf60eeedbf486f802cd106583eb7f640fe2243adc7cbb811dced5cefa94426cceca63468b0112be84078ffcef24cb2b8c1a7b6c8173c0d45 SHA512 5fb73330e7803bdd524fbe7cfdf4e6b72e85d4b22b0c827400317b5d052d1088d36e558ceac376393089e9d03e658b24e69262851fc04a66bbcda47135423dc0 @@ -27,8 +22,5 @@ EBUILD spidermonkey-1.8.5-r10.ebuild 3998 BLAKE2B c54b791025b3416f96068a20e8f552 EBUILD spidermonkey-60.5.2_p0-r6.ebuild 4032 BLAKE2B 396632dfadc26ad8dd04e59b3948aef8872ba8d20eec27c5f0f8abb58091cec7ac160418d433cd547b7fa94cf04f702c69b2fd2a2af0fbae103d23c4773ca25b SHA512 4362077743a90149bb31f14f388c442346d289c182ae1d7c7035332ca81666c1656fe4ed25c197c183d131b07f82411c7f8d235854ae034ed72ab0e5261885d5 EBUILD spidermonkey-68.12.0-r1.ebuild 7834 BLAKE2B 35252f841078dc8b0f06c2c2dab0d0a17abbfa23f025c3b2534232a82951298722a7ee5c3c7bcd56055879c5a886961a8ac34bb325fca7a466dc7d59f7b391ec SHA512 4ecbf27cddb67cdef15aa2c93cb4acfb4851973a07b7b9040186555027f5bc4d7126351b5bb1646640d0493afa78e63151d39b0bf37a6899c87ff20a7ea22198 EBUILD spidermonkey-78.15.0.ebuild 13036 BLAKE2B d9951d20d1f5a0e0d814bd9246a9271d5f9e92f19117c073e10117a54548ba215182ba998cf7c92134a66f53eff4c92cab138f23082814cbf25fbf9e0418e1a9 SHA512 99f9772a0be261e597e964fd7c38d647e71e0977d1370040a43352d4a69fd682be5905f2a6631e011ed416cc255455ef0e2d4984358e1cdd1d523603b4a36200 -EBUILD spidermonkey-91.10.0.ebuild 15078 BLAKE2B 2fa6fa7b9de6a20b0c8f2cf44186151a903702c653b799d3fa7837754170186dd77aa7e461325c829dc49f072a31b8fc04df19fc773a02a875c6c9937aa24977 SHA512 bc0def56c0171e0b26622b35d379d7bf0f329972d62e55d91c27653fd59450fa4b607507c7d716a3cc5f6f1b388f9b73afd5197c40981dfbcf579313e9fb87c3 -EBUILD spidermonkey-91.11.0.ebuild 15078 BLAKE2B 55dc6759554809c2b6c9232689e892166541bad27be7fafec13e35c185053369eed5c61b014fea23404c822641ebe38030dc1cec9c7e88b5cff929eef43f1b2c SHA512 62144ba5c276d40b9f4603f295cbf794b55296e6c1afe9772f06c925ceec2cc9284d3008df59ad5d093e977181295787073b806c7694b6e0751c47f0c2eaeb61 -EBUILD spidermonkey-91.8.0.ebuild 14998 BLAKE2B bcfdb14fbb425b7eefebd383b3c0193babe6f9792bc0d5f2964795ed9af5d16cafabd92ecbc4f4afed81cfbc735dd9f45e33528375c3bdc39f408942037988e5 SHA512 672bb630681eb10039a02fda1a7e8e8a492f1f54b2fb832782866235941cd7c9236cbca089c186f6e0d76dd42e200f88955af010c5df66d06fb30af76081a92f -EBUILD spidermonkey-91.9.1.ebuild 15074 BLAKE2B 1ff7dff27adfd44332994a6ef3230e4dd5ed7342ff48d8a99520bf610c2d05fece6a5929aa7692b12e7dc18c0ce359aa466e071cf44d87c704b05da6b58e66f6 SHA512 9092e79d6cbe3c8f32ea92f1f5b4197e4422c845ef2d0035591e93b6104a4b9f2128125bba89a69dd96967d01fa44b1d0263dd10095d82f7a7a14d6570b70103 +EBUILD spidermonkey-91.11.0.ebuild 15073 BLAKE2B 95e0ee862be50ad1d6543ee4466a40ea73715bb7dc5b9e101c613cc9dff72d88c6448d0eaabad578492596c4ce3f25c9eeebf40b795e7603d6b6b822f6ffab36 SHA512 7ca5e1cee8c04039663cdea7462bfdf7b51b461e56fa25b4c06ddb638b85188bdfc5992c383b3a19fdf9593ffde82dbbf841dd6dddeb1a74116e4949cc9d41e7 MISC metadata.xml 869 BLAKE2B 79d6ea91e84e3bb666797cde6b2993282ff1b4266dfa835eaf02d8aa65d5d000729b149a49c9fa5c8dbf12e4b97b46d976243c888834db9df73a8a5c814aa610 SHA512 f78399a1ad88583c50ad1e967f5ba293cdfff7d58cf26b87bd8888c7102b62d42ef1982d1b8462f3d31f0806b6cead8db28b7f0c7b12c08d3871607b5a4c63cc diff --git a/dev-lang/spidermonkey/spidermonkey-91.10.0.ebuild b/dev-lang/spidermonkey/spidermonkey-91.10.0.ebuild deleted file mode 100644 index 2fd53d058fbe..000000000000 --- a/dev-lang/spidermonkey/spidermonkey-91.10.0.ebuild +++ /dev/null @@ -1,452 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -# Patch version -FIREFOX_PATCHSET="firefox-91esr-patches-07j.tar.xz" -SPIDERMONKEY_PATCHSET="spidermonkey-91-patches-04j.tar.xz" - -LLVM_MAX_SLOT=14 - -PYTHON_COMPAT=( python3_{8..10} ) -PYTHON_REQ_USE="ssl,xml(+)" - -WANT_AUTOCONF="2.1" - -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs - -MY_PN="mozjs" -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases - -MY_MAJOR=$(ver_cut 1) - -MOZ_ESR=yes - -MOZ_PV=${PV} -MOZ_PV_SUFFIX= -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then - MOZ_PV_SUFFIX=${BASH_REMATCH[1]} - - # Convert the ebuild version to the upstream Mozilla version - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI -fi - -if [[ -n ${MOZ_ESR} ]] ; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -fi - -MOZ_PN="firefox" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~{juippis,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET} - https://dev.gentoo.org/~{juippis,polynomial-c,whissi}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++" -HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html " - -KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~x86" - -SLOT="91" -LICENSE="MPL-2.0" -IUSE="clang cpu_flags_arm_neon debug +jit lto test" - -#RESTRICT="test" -RESTRICT="!test? ( test )" - -BDEPEND="${PYTHON_DEPS} - >=virtual/rust-1.51.0 - virtual/pkgconfig - test? ( - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]') - ) - || ( - ( - sys-devel/llvm:14 - clang? ( - sys-devel/clang:14 - lto? ( =sys-devel/lld-14* ) - ) - ) - ( - sys-devel/llvm:13 - clang? ( - sys-devel/clang:13 - lto? ( =sys-devel/lld-13* ) - ) - ) - ( - sys-devel/llvm:12 - clang? ( - sys-devel/clang:12 - lto? ( =sys-devel/lld-12* ) - ) - ) - )" -DEPEND=">=dev-libs/icu-69.1:= - dev-libs/nspr - sys-libs/readline:0= - sys-libs/zlib" -RDEPEND="${DEPEND}" - -S="${WORKDIR}/firefox-${MY_PV}/js/src" - -llvm_check_deps() { - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then - einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang ; then - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use lto ; then - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then - einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -python_check_deps() { - if use test ; then - has_version "dev-python/six[${PYTHON_USEDEP}]" - fi -} - -pkg_pretend() { - if use test ; then - CHECKREQS_DISK_BUILD="7600M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_pretend -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use test ; then - CHECKREQS_DISK_BUILD="7600M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - llvm_pkg_setup - - if use clang && use lto ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " - eerror " llvm/clang/lld/rust chain depending on your @world updates)" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi -} - -src_prepare() { - pushd ../.. &>/dev/null || die - - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch - - eapply "${WORKDIR}"/firefox-patches - eapply "${WORKDIR}"/spidermonkey-patches - - default - - # Make cargo respect MAKEOPTS - export CARGO_BUILD_JOBS="$(makeopts_jobs)" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - # use prefix shell in wrapper linker scripts, bug #789660 - hprefixify "${S}"/../../build/cargo-{,host-}linker - - einfo "Removing pre-built binaries ..." - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - MOZJS_BUILDDIR="${WORKDIR}/build" - mkdir "${MOZJS_BUILDDIR}" || die - - popd &>/dev/null || die - eautoconf -} - -src_configure() { - # Show flags set at the beginning - einfo "Current CFLAGS: ${CFLAGS}" - einfo "Current CXXFLAGS: ${CXXFLAGS}" - einfo "Current LDFLAGS: ${LDFLAGS}" - einfo "Current RUSTFLAGS: ${RUSTFLAGS}" - - local have_switched_compiler= - if use clang && ! tc-is-clang ; then - # Force clang - einfo "Enforcing the use of clang due to USE=clang ..." - have_switched_compiler=yes - AR=llvm-ar - CC=${CHOST}-clang - CXX=${CHOST}-clang++ - NM=llvm-nm - RANLIB=llvm-ranlib - elif ! use clang && ! tc-is-gcc ; then - # Force gcc - have_switched_compiler=yes - einfo "Enforcing the use of gcc due to USE=-clang ..." - AR=gcc-ar - CC=${CHOST}-gcc - CXX=${CHOST}-g++ - NM=gcc-nm - RANLIB=gcc-ranlib - fi - - if [[ -n "${have_switched_compiler}" ]] ; then - # Because we switched active compiler we have to ensure - # that no unsupported flags are set - strip-unsupported-flags - fi - - # Ensure we use correct toolchain - export HOST_CC="$(tc-getBUILD_CC)" - export HOST_CXX="$(tc-getBUILD_CXX)" - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG - - cd "${MOZJS_BUILDDIR}" || die - - # ../python/mach/mach/mixin/process.py fails to detect SHELL - export SHELL="${EPREFIX}/bin/bash" - - local -a myeconfargs=( - --host="${CBUILD:-${CHOST}}" - --target="${CHOST}" - --disable-ctype - --disable-jemalloc - --disable-optimize - --disable-smoosh - --disable-strip - --enable-readline - --enable-release - --enable-shared-js - --with-intl-api - --with-system-icu - --with-system-nspr - --with-system-zlib - --with-toolchain-prefix="${CHOST}-" - $(use_enable debug) - $(use_enable jit) - $(use_enable test tests) - ) - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then - myeconfargs+=( --enable-rust-simd ) - fi - - # Modifications to better support ARM, bug 717344 - if use cpu_flags_arm_neon ; then - myeconfargs+=( --with-fpu=neon ) - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - myeconfargs+=( --with-thumb=yes ) - myeconfargs+=( --with-thumb-interwork=no ) - fi - fi - - # Tell build system that we want to use LTO - if use lto ; then - if use clang ; then - myeconfargs+=( --enable-linker=lld ) - myeconfargs+=( --enable-lto=cross ) - else - myeconfargs+=( --enable-linker=bfd ) - myeconfargs+=( --enable-lto ) - fi - fi - - # LTO flag was handled via configure - filter-flags '-flto*' - - if tc-is-gcc ; then - if ver_test $(gcc-fullversion) -ge 10 ; then - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." - append-cxxflags -fno-tree-loop-vectorize - fi - fi - - export MACH_USE_SYSTEM_PYTHON=1 - export PIP_NO_CACHE_DIR=off - - # Show flags we will use - einfo "Build CFLAGS: ${CFLAGS}" - einfo "Build CXXFLAGS: ${CXXFLAGS}" - einfo "Build LDFLAGS: ${LDFLAGS}" - einfo "Build RUSTFLAGS: ${RUSTFLAGS}" - - # Forcing system-icu allows us to skip patching bundled ICU for PPC - # and other minor arches - ECONF_SOURCE="${S}" \ - econf \ - ${myeconfargs[@]} \ - XARGS="${EPREFIX}/usr/bin/xargs" -} - -src_compile() { - cd "${MOZJS_BUILDDIR}" || die - default -} - -src_test() { - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then - einfo "Smoke-test successful, continuing with full test suite" - else - die "Smoke-test failed: did interpreter initialization fail?" - fi - - cp "${FILESDIR}"/spidermonkey-91-known-test-failures.txt "${T}"/known_failures.list || die - - # bgo #827960 - if use ppc; then - echo "non262/TypedArray/map-and-filter.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/load/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/load/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/add/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/add/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/exchange/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/exchange/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/store/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/store/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/xor/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/xor/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/sub/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/sub/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-exchange.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/and/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-or.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/false-for-timeout-agent.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-add.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/or/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-sub.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-compareExchange.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/negative-timeout-agent.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-xor.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/value-not-equal.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-no-operation.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/waiterlist-block-indexedposition-wake.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/nan-for-timeout.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-and.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/was-woken-before-timeout.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-store.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/compareExchange/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/compareExchange/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/and/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/or/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/notify/bigint/notify-all-on-loc.js" >> "${T}"/known_failures.list - fi - - if use x86 ; then - echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Number/prototype/toPrecision/return-values.js" >> "${T}"/known_failures.list - echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list - echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list - fi - - if [[ $(tc-endian) == "big" ]] ; then - echo "non262/extensions/clone-errors.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list - echo "test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js" >> "${T}"/known_failures.list - fi - - ${EPYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js \ - || die - - if use jit ; then - ${EPYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js basic \ - || die - fi -} - -src_install() { - cd "${MOZJS_BUILDDIR}" || die - default - - # fix soname links - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die - popd &>/dev/null || die - - # remove unneeded files - rm \ - "${ED}"/usr/bin/js${MY_MAJOR}-config \ - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \ - || die - - # fix permissions - chmod -x \ - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \ - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \ - || die -} diff --git a/dev-lang/spidermonkey/spidermonkey-91.11.0.ebuild b/dev-lang/spidermonkey/spidermonkey-91.11.0.ebuild index dce597f04a64..8f2c8f73bf2f 100644 --- a/dev-lang/spidermonkey/spidermonkey-91.11.0.ebuild +++ b/dev-lang/spidermonkey/spidermonkey-91.11.0.ebuild @@ -61,7 +61,7 @@ SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES} DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++" HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html " -KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~x86" +KEYWORDS="amd64 arm arm64 ~mips ~ppc ppc64 ~riscv x86" SLOT="91" LICENSE="MPL-2.0" diff --git a/dev-lang/spidermonkey/spidermonkey-91.8.0.ebuild b/dev-lang/spidermonkey/spidermonkey-91.8.0.ebuild deleted file mode 100644 index 0bac2948ede3..000000000000 --- a/dev-lang/spidermonkey/spidermonkey-91.8.0.ebuild +++ /dev/null @@ -1,457 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -# Patch version -FIREFOX_PATCHSET="firefox-91esr-patches-05j.tar.xz" -SPIDERMONKEY_PATCHSET="spidermonkey-91-patches-04j.tar.xz" - -LLVM_MAX_SLOT=14 - -PYTHON_COMPAT=( python3_{8..10} ) -PYTHON_REQ_USE="ssl,xml(+)" - -WANT_AUTOCONF="2.1" - -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs - -MY_PN="mozjs" -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases - -MY_MAJOR=$(ver_cut 1) - -MOZ_ESR=yes - -MOZ_PV=${PV} -MOZ_PV_SUFFIX= -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then - MOZ_PV_SUFFIX=${BASH_REMATCH[1]} - - # Convert the ebuild version to the upstream Mozilla version - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI -fi - -if [[ -n ${MOZ_ESR} ]] ; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -fi - -MOZ_PN="firefox" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~{juippis,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET} - https://dev.gentoo.org/~{juippis,polynomial-c,whissi}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++" -HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html " - -KEYWORDS="amd64 arm arm64 ~mips ~ppc ppc64 ~riscv x86" - -SLOT="91" -LICENSE="MPL-2.0" -IUSE="clang cpu_flags_arm_neon debug +jit lto test" - -#RESTRICT="test" -RESTRICT="!test? ( test )" - -BDEPEND="${PYTHON_DEPS} - >=virtual/rust-1.51.0 - virtual/pkgconfig - test? ( - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]') - ) - || ( - ( - sys-devel/llvm:14 - clang? ( - sys-devel/clang:14 - lto? ( =sys-devel/lld-14* ) - ) - ) - ( - sys-devel/llvm:13 - clang? ( - sys-devel/clang:13 - lto? ( =sys-devel/lld-13* ) - ) - ) - ( - sys-devel/llvm:12 - clang? ( - sys-devel/clang:12 - lto? ( =sys-devel/lld-12* ) - ) - ) - ( - sys-devel/llvm:11 - clang? ( - sys-devel/clang:11 - lto? ( =sys-devel/lld-11* ) - ) - ) - )" -DEPEND=">=dev-libs/icu-69.1:= - dev-libs/nspr - sys-libs/readline:0= - sys-libs/zlib" -RDEPEND="${DEPEND}" - -S="${WORKDIR}/firefox-${MY_PV}/js/src" - -llvm_check_deps() { - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then - einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang ; then - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use lto ; then - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then - einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -python_check_deps() { - if use test ; then - has_version "dev-python/six[${PYTHON_USEDEP}]" - fi -} - -pkg_pretend() { - if use test ; then - CHECKREQS_DISK_BUILD="7600M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_pretend -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use test ; then - CHECKREQS_DISK_BUILD="7600M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - llvm_pkg_setup - - if use clang && use lto ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi -} - -src_prepare() { - pushd ../.. &>/dev/null || die - - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch - - eapply "${WORKDIR}"/firefox-patches - eapply "${WORKDIR}"/spidermonkey-patches - - default - - # Make cargo respect MAKEOPTS - export CARGO_BUILD_JOBS="$(makeopts_jobs)" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - # use prefix shell in wrapper linker scripts, bug #789660 - hprefixify "${S}"/../../build/cargo-{,host-}linker - - einfo "Removing pre-built binaries ..." - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - MOZJS_BUILDDIR="${WORKDIR}/build" - mkdir "${MOZJS_BUILDDIR}" || die - - popd &>/dev/null || die - eautoconf -} - -src_configure() { - # Show flags set at the beginning - einfo "Current CFLAGS: ${CFLAGS}" - einfo "Current CXXFLAGS: ${CXXFLAGS}" - einfo "Current LDFLAGS: ${LDFLAGS}" - einfo "Current RUSTFLAGS: ${RUSTFLAGS}" - - local have_switched_compiler= - if use clang && ! tc-is-clang ; then - # Force clang - einfo "Enforcing the use of clang due to USE=clang ..." - have_switched_compiler=yes - AR=llvm-ar - CC=${CHOST}-clang - CXX=${CHOST}-clang++ - NM=llvm-nm - RANLIB=llvm-ranlib - elif ! use clang && ! tc-is-gcc ; then - # Force gcc - have_switched_compiler=yes - einfo "Enforcing the use of gcc due to USE=-clang ..." - AR=gcc-ar - CC=${CHOST}-gcc - CXX=${CHOST}-g++ - NM=gcc-nm - RANLIB=gcc-ranlib - fi - - if [[ -n "${have_switched_compiler}" ]] ; then - # Because we switched active compiler we have to ensure - # that no unsupported flags are set - strip-unsupported-flags - fi - - # Ensure we use correct toolchain - export HOST_CC="$(tc-getBUILD_CC)" - export HOST_CXX="$(tc-getBUILD_CXX)" - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG - - cd "${MOZJS_BUILDDIR}" || die - - # ../python/mach/mach/mixin/process.py fails to detect SHELL - export SHELL="${EPREFIX}/bin/bash" - - local -a myeconfargs=( - --host="${CBUILD:-${CHOST}}" - --target="${CHOST}" - --disable-ctype - --disable-jemalloc - --disable-optimize - --disable-smoosh - --disable-strip - --enable-readline - --enable-release - --enable-shared-js - --with-intl-api - --with-system-icu - --with-system-nspr - --with-system-zlib - --with-toolchain-prefix="${CHOST}-" - $(use_enable debug) - $(use_enable jit) - $(use_enable test tests) - ) - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then - myeconfargs+=( --enable-rust-simd ) - fi - - # Modifications to better support ARM, bug 717344 - if use cpu_flags_arm_neon ; then - myeconfargs+=( --with-fpu=neon ) - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - myeconfargs+=( --with-thumb=yes ) - myeconfargs+=( --with-thumb-interwork=no ) - fi - fi - - # Tell build system that we want to use LTO - if use lto ; then - if use clang ; then - myeconfargs+=( --enable-linker=lld ) - myeconfargs+=( --enable-lto=cross ) - else - myeconfargs+=( --enable-linker=bfd ) - myeconfargs+=( --enable-lto ) - fi - fi - - # LTO flag was handled via configure - filter-flags '-flto*' - - if tc-is-gcc ; then - if ver_test $(gcc-fullversion) -ge 10 ; then - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." - append-cxxflags -fno-tree-loop-vectorize - fi - fi - - export MACH_USE_SYSTEM_PYTHON=1 - export PIP_NO_CACHE_DIR=off - - # Show flags we will use - einfo "Build CFLAGS: ${CFLAGS}" - einfo "Build CXXFLAGS: ${CXXFLAGS}" - einfo "Build LDFLAGS: ${LDFLAGS}" - einfo "Build RUSTFLAGS: ${RUSTFLAGS}" - - # Forcing system-icu allows us to skip patching bundled ICU for PPC - # and other minor arches - ECONF_SOURCE="${S}" \ - econf \ - ${myeconfargs[@]} \ - XARGS="${EPREFIX}/usr/bin/xargs" -} - -src_compile() { - cd "${MOZJS_BUILDDIR}" || die - default -} - -src_test() { - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then - einfo "Smoke-test successful, continuing with full test suite" - else - die "Smoke-test failed: did interpreter initialization fail?" - fi - - cp "${FILESDIR}"/spidermonkey-91-known-test-failures.txt "${T}"/known_failures.list || die - - # bgo #827960 - if use ppc; then - echo "non262/TypedArray/map-and-filter.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/load/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/load/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/add/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/add/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/exchange/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/exchange/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/store/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/store/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/xor/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/xor/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/sub/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/sub/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-exchange.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/and/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-or.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/false-for-timeout-agent.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-add.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/or/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-sub.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-compareExchange.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/negative-timeout-agent.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-xor.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/value-not-equal.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-no-operation.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/waiterlist-block-indexedposition-wake.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/nan-for-timeout.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-and.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/was-woken-before-timeout.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-store.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/compareExchange/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/compareExchange/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/and/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/or/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/notify/bigint/notify-all-on-loc.js" >> "${T}"/known_failures.list - fi - - if use x86 ; then - echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Number/prototype/toPrecision/return-values.js" >> "${T}"/known_failures.list - echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list - echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list - fi - - if [[ $(tc-endian) == "big" ]] ; then - echo "non262/extensions/clone-errors.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list - echo "test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js" >> "${T}"/known_failures.list - fi - - ${EPYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js \ - || die - - if use jit ; then - ${EPYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js basic \ - || die - fi -} - -src_install() { - cd "${MOZJS_BUILDDIR}" || die - default - - # fix soname links - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die - popd &>/dev/null || die - - # remove unneeded files - rm \ - "${ED}"/usr/bin/js${MY_MAJOR}-config \ - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \ - || die - - # fix permissions - chmod -x \ - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \ - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \ - || die -} diff --git a/dev-lang/spidermonkey/spidermonkey-91.9.1.ebuild b/dev-lang/spidermonkey/spidermonkey-91.9.1.ebuild deleted file mode 100644 index 4f0988ba35ec..000000000000 --- a/dev-lang/spidermonkey/spidermonkey-91.9.1.ebuild +++ /dev/null @@ -1,452 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -# Patch version -FIREFOX_PATCHSET="firefox-91esr-patches-05j.tar.xz" -SPIDERMONKEY_PATCHSET="spidermonkey-91-patches-04j.tar.xz" - -LLVM_MAX_SLOT=14 - -PYTHON_COMPAT=( python3_{8..10} ) -PYTHON_REQ_USE="ssl,xml(+)" - -WANT_AUTOCONF="2.1" - -inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs - -MY_PN="mozjs" -MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases - -MY_MAJOR=$(ver_cut 1) - -MOZ_ESR=yes - -MOZ_PV=${PV} -MOZ_PV_SUFFIX= -if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then - MOZ_PV_SUFFIX=${BASH_REMATCH[1]} - - # Convert the ebuild version to the upstream Mozilla version - MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI - MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI - MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI -fi - -if [[ -n ${MOZ_ESR} ]] ; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -fi - -MOZ_PN="firefox" -MOZ_P="${MOZ_PN}-${MOZ_PV}" -MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}" -MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}" - -MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}" - -if [[ ${PV} == *_rc* ]] ; then - MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}" -fi - -PATCH_URIS=( - https://dev.gentoo.org/~{juippis,polynomial-c,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET} - https://dev.gentoo.org/~{juippis,polynomial-c,whissi}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET} -) - -SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz - ${PATCH_URIS[@]}" - -DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++" -HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html " - -KEYWORDS="amd64 ~arm arm64 ~mips ~ppc ppc64 ~riscv x86" - -SLOT="91" -LICENSE="MPL-2.0" -IUSE="clang cpu_flags_arm_neon debug +jit lto test" - -#RESTRICT="test" -RESTRICT="!test? ( test )" - -BDEPEND="${PYTHON_DEPS} - >=virtual/rust-1.51.0 - virtual/pkgconfig - test? ( - $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]') - ) - || ( - ( - sys-devel/llvm:14 - clang? ( - sys-devel/clang:14 - lto? ( =sys-devel/lld-14* ) - ) - ) - ( - sys-devel/llvm:13 - clang? ( - sys-devel/clang:13 - lto? ( =sys-devel/lld-13* ) - ) - ) - ( - sys-devel/llvm:12 - clang? ( - sys-devel/clang:12 - lto? ( =sys-devel/lld-12* ) - ) - ) - )" -DEPEND=">=dev-libs/icu-69.1:= - dev-libs/nspr - sys-libs/readline:0= - sys-libs/zlib" -RDEPEND="${DEPEND}" - -S="${WORKDIR}/firefox-${MY_PV}/js/src" - -llvm_check_deps() { - if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then - einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang ; then - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use lto ; then - if ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then - einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -python_check_deps() { - if use test ; then - has_version "dev-python/six[${PYTHON_USEDEP}]" - fi -} - -pkg_pretend() { - if use test ; then - CHECKREQS_DISK_BUILD="7600M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_pretend -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]] ; then - if use test ; then - CHECKREQS_DISK_BUILD="7600M" - else - CHECKREQS_DISK_BUILD="6400M" - fi - - check-reqs_pkg_setup - - llvm_pkg_setup - - if use clang && use lto ; then - local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }') - [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}") - [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!" - - local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }') - [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}") - [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!" - - if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then - eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}." - eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:" - eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version" - eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version" - eerror " - Build ${CATEGORY}/${PN} without USE=lto" - eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole " - eerror " llvm/clang/lld/rust chain depending on your @world updates)" - die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!" - fi - fi - - python-any-r1_pkg_setup - - # Build system is using /proc/self/oom_score_adj, bug #604394 - addpredict /proc/self/oom_score_adj - - if ! mountpoint -q /dev/shm ; then - # If /dev/shm is not available, configure is known to fail with - # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py - ewarn "/dev/shm is not mounted -- expect build failures!" - fi - - # Ensure we use C locale when building, bug #746215 - export LC_ALL=C - fi -} - -src_prepare() { - pushd ../.. &>/dev/null || die - - use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch - - eapply "${WORKDIR}"/firefox-patches - eapply "${WORKDIR}"/spidermonkey-patches - - default - - # Make cargo respect MAKEOPTS - export CARGO_BUILD_JOBS="$(makeopts_jobs)" - - # sed-in toolchain prefix - sed -i \ - -e "s/objdump/${CHOST}-objdump/" \ - python/mozbuild/mozbuild/configure/check_debug_ranges.py \ - || die "sed failed to set toolchain prefix" - - # use prefix shell in wrapper linker scripts, bug #789660 - hprefixify "${S}"/../../build/cargo-{,host-}linker - - einfo "Removing pre-built binaries ..." - find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die - - MOZJS_BUILDDIR="${WORKDIR}/build" - mkdir "${MOZJS_BUILDDIR}" || die - - popd &>/dev/null || die - eautoconf -} - -src_configure() { - # Show flags set at the beginning - einfo "Current CFLAGS: ${CFLAGS}" - einfo "Current CXXFLAGS: ${CXXFLAGS}" - einfo "Current LDFLAGS: ${LDFLAGS}" - einfo "Current RUSTFLAGS: ${RUSTFLAGS}" - - local have_switched_compiler= - if use clang && ! tc-is-clang ; then - # Force clang - einfo "Enforcing the use of clang due to USE=clang ..." - have_switched_compiler=yes - AR=llvm-ar - CC=${CHOST}-clang - CXX=${CHOST}-clang++ - NM=llvm-nm - RANLIB=llvm-ranlib - elif ! use clang && ! tc-is-gcc ; then - # Force gcc - have_switched_compiler=yes - einfo "Enforcing the use of gcc due to USE=-clang ..." - AR=gcc-ar - CC=${CHOST}-gcc - CXX=${CHOST}-g++ - NM=gcc-nm - RANLIB=gcc-ranlib - fi - - if [[ -n "${have_switched_compiler}" ]] ; then - # Because we switched active compiler we have to ensure - # that no unsupported flags are set - strip-unsupported-flags - fi - - # Ensure we use correct toolchain - export HOST_CC="$(tc-getBUILD_CC)" - export HOST_CXX="$(tc-getBUILD_CXX)" - tc-export CC CXX LD AR NM OBJDUMP RANLIB PKG_CONFIG - - cd "${MOZJS_BUILDDIR}" || die - - # ../python/mach/mach/mixin/process.py fails to detect SHELL - export SHELL="${EPREFIX}/bin/bash" - - local -a myeconfargs=( - --host="${CBUILD:-${CHOST}}" - --target="${CHOST}" - --disable-ctype - --disable-jemalloc - --disable-optimize - --disable-smoosh - --disable-strip - --enable-readline - --enable-release - --enable-shared-js - --with-intl-api - --with-system-icu - --with-system-nspr - --with-system-zlib - --with-toolchain-prefix="${CHOST}-" - $(use_enable debug) - $(use_enable jit) - $(use_enable test tests) - ) - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then - myeconfargs+=( --enable-rust-simd ) - fi - - # Modifications to better support ARM, bug 717344 - if use cpu_flags_arm_neon ; then - myeconfargs+=( --with-fpu=neon ) - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - myeconfargs+=( --with-thumb=yes ) - myeconfargs+=( --with-thumb-interwork=no ) - fi - fi - - # Tell build system that we want to use LTO - if use lto ; then - if use clang ; then - myeconfargs+=( --enable-linker=lld ) - myeconfargs+=( --enable-lto=cross ) - else - myeconfargs+=( --enable-linker=bfd ) - myeconfargs+=( --enable-lto ) - fi - fi - - # LTO flag was handled via configure - filter-flags '-flto*' - - if tc-is-gcc ; then - if ver_test $(gcc-fullversion) -ge 10 ; then - einfo "Forcing -fno-tree-loop-vectorize to workaround GCC bug, see bug 758446 ..." - append-cxxflags -fno-tree-loop-vectorize - fi - fi - - export MACH_USE_SYSTEM_PYTHON=1 - export PIP_NO_CACHE_DIR=off - - # Show flags we will use - einfo "Build CFLAGS: ${CFLAGS}" - einfo "Build CXXFLAGS: ${CXXFLAGS}" - einfo "Build LDFLAGS: ${LDFLAGS}" - einfo "Build RUSTFLAGS: ${RUSTFLAGS}" - - # Forcing system-icu allows us to skip patching bundled ICU for PPC - # and other minor arches - ECONF_SOURCE="${S}" \ - econf \ - ${myeconfargs[@]} \ - XARGS="${EPREFIX}/usr/bin/xargs" -} - -src_compile() { - cd "${MOZJS_BUILDDIR}" || die - default -} - -src_test() { - if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then - einfo "Smoke-test successful, continuing with full test suite" - else - die "Smoke-test failed: did interpreter initialization fail?" - fi - - cp "${FILESDIR}"/spidermonkey-91-known-test-failures.txt "${T}"/known_failures.list || die - - # bgo #827960 - if use ppc; then - echo "non262/TypedArray/map-and-filter.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/load/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/load/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/add/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/add/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/exchange/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/exchange/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/store/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/store/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/xor/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/xor/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/sub/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/sub/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-exchange.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/and/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-or.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/false-for-timeout-agent.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-add.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/or/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-sub.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-compareExchange.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/negative-timeout-agent.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-xor.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/value-not-equal.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-no-operation.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/waiterlist-block-indexedposition-wake.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/nan-for-timeout.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-and.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/was-woken-before-timeout.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/no-spurious-wakeup-on-store.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/compareExchange/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/compareExchange/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/and/bigint/non-shared-bufferdata.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/or/bigint/good-views.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Atomics/notify/bigint/notify-all-on-loc.js" >> "${T}"/known_failures.list - fi - - if use x86 ; then - echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Number/prototype/toPrecision/return-values.js" >> "${T}"/known_failures.list - echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list - echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list - fi - - if [[ $(tc-endian) == "big" ]] ; then - echo "non262/extensions/clone-errors.js" >> "${T}"/known_failures.list - echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list - echo "test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js" >> "${T}"/known_failures.list - fi - - ${EPYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js \ - || die - - if use jit ; then - ${EPYTHON} \ - "${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \ - --exclude-file="${T}"/known_failures.list \ - "${MOZJS_BUILDDIR}"/js/src/js basic \ - || die - fi -} - -src_install() { - cd "${MOZJS_BUILDDIR}" || die - default - - # fix soname links - pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die - mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die - ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die - popd &>/dev/null || die - - # remove unneeded files - rm \ - "${ED}"/usr/bin/js${MY_MAJOR}-config \ - "${ED}"/usr/$(get_libdir)/libjs_static.ajs \ - || die - - # fix permissions - chmod -x \ - "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \ - "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \ - || die -} diff --git a/dev-lang/swig/Manifest b/dev-lang/swig/Manifest index 3577059ff9d9..94ae9b98a384 100644 --- a/dev-lang/swig/Manifest +++ b/dev-lang/swig/Manifest @@ -1,7 +1,5 @@ DIST swig-3.0.12.tar.gz 8149820 BLAKE2B 05ce913dedbbde26592619e0edc65050cb31a517f309c1188252cb8c276147cb28ebf4d8534c31b75c4ed8be5d42223b432a7318bf8eb5b2d4d528e5ff9a781b SHA512 5eaa2e06d8e4197fd02194051db1e518325dbb074a4c55a91099ad9c55193874f577764afc9029409a41bd520a95154095f26e33ef5add5c102bb2c1d98d33eb -DIST swig-4.0.0.tar.gz 8052518 BLAKE2B a34eb17d795ba5b34ea7362f8f07d6a6e82fd4394a0159fcf608ffb27580f37fc722c4907f1fd6fa3322663662f8e11fecbcb2bc7b90405834ef35d6218d65c7 SHA512 c897b87fb8b21caf8d1bee2c39cb9675a3b0ee047110e808c310a2787f8b89585738726e9f517c64e9d2f1b8311136365c569528f399b444b1081f69689b7165 DIST swig-4.0.2.tar.gz 8097014 BLAKE2B 4c36b7e9b9bf1663779aa31b0eda8a1fe443695d945bcc1642c3404b22e45440def85e58dd65dc18a2ca8c00ffdcfe0f1d75373b7becc0b0e5402fda90b8c29a SHA512 05e7da70ce6d9a733b96c0bcfa3c1b82765bd859f48c74759bbf4bb1467acb1809caa310cba5e2b3280cd704fca249eaa0624821dffae1d2a75097c7f55d14ed EBUILD swig-3.0.12.ebuild 819 BLAKE2B bbc1eac8ae5f8736c8ccbe030ac7b8a09a20a499fefdcc9e4f036a7ed396214e5d1e0e64dbd05ec44b27db046b06ed83471c3e26bf8fee1d20dc99eed5e23771 SHA512 3f3dbd99405f91a1adb610a5950e8aa845a4c7857031dcf523abcd5781def93ae21f74b7fe65303ea68f637e754697904d23a12e20703663f4b90d11e3444d7f -EBUILD swig-4.0.0.ebuild 1085 BLAKE2B d7dd2d0a591861dca6188a707e65f316948b2492a61d3f3824b543bb4c8f9c081d8ed8fd732b715e93274bd947df91cb4f01cb8b34795e6020bf5a341f15118a SHA512 afea60331ac12e7d2ba3455b3e0e1f7389ca649bb291cff765cea77c0fe6824dfb523b74508b5a15f96896ff7cd70ab1779cdea57f5591ca6c20ca07d97d571e EBUILD swig-4.0.2.ebuild 954 BLAKE2B dfdf0c2db27888d3d4cfe83522e58bd9eeafce29ed01e2834f8e9b74ec1a699b55286f5945b020915c34e6d4aac3d4627eafd7e1be0e8e2effa1476065b768dc SHA512 1e04c8f7c2d2edb34cc082d21dfee6e24324392c598fcf6e91c8cae52b4df0ee18ea4e95611e19c1ba84b589949aee9f2f6e7a517dec5a9d025854be9eb7801a MISC metadata.xml 1019 BLAKE2B 1f6a79945d3bb92bd9b5c06f7b4e96c8c9f8f6e68d5c13890247d2c08adf46409a194e3198fb3df19f699a176fe92bebc1e7ba6eb0944a0db12c5e3271043552 SHA512 5ba26e3670ba852648a243f14efe096e52781418eb4d07cabc1bcf46efcd098d099ecbb3d504862540db796279fd855a581d60dd3b1de2f60e9d542e3ccb9b00 diff --git a/dev-lang/swig/swig-4.0.0.ebuild b/dev-lang/swig/swig-4.0.0.ebuild deleted file mode 100644 index 088cf9af8488..000000000000 --- a/dev-lang/swig/swig-4.0.0.ebuild +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit toolchain-funcs - -DESCRIPTION="Simplified Wrapper and Interface Generator" -HOMEPAGE="http://www.swig.org/" -SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" - -LICENSE="GPL-3+ BSD BSD-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x64-solaris ~x86-solaris" -IUSE="ccache doc pcre" -RESTRICT="test" - -RDEPEND=" - pcre? ( dev-libs/libpcre ) - ccache? ( sys-libs/zlib ) -" -DEPEND=" - ${RDEPEND} -" -BDEPEND="virtual/pkgconfig" - -DOCS=( ANNOUNCE CHANGES CHANGES.current README TODO ) - -src_prepare() { - default - # https://github.com/swig/swig/pull/1796 - sed -i \ - -e '/if pkg-config javascriptcoregtk-1.0/s:pkg-config:$PKGCONFIG:' \ - configure || die -} - -src_configure() { - econf \ - PKGCONFIG="$(tc-getPKG_CONFIG)" \ - $(use_enable ccache) \ - $(use_with pcre) -} - -src_install() { - default - - if use doc; then - docinto html - dodoc -r Doc/{Devel,Manual} - fi -} |