diff options
Diffstat (limited to 'dev-lang')
24 files changed, 1368 insertions, 58 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz Binary files differindex f07ef86910aa..a4ea08867720 100644 --- a/dev-lang/Manifest.gz +++ b/dev-lang/Manifest.gz diff --git a/dev-lang/boogie/Manifest b/dev-lang/boogie/Manifest index 1a27ae97885e..17742cda4d44 100644 --- a/dev-lang/boogie/Manifest +++ b/dev-lang/boogie/Manifest @@ -1,6 +1,6 @@ AUX boogie-3.0.4-disable-analyzers.patch 764 BLAKE2B 965f6a8007a4324aa95b165109dcbc85f7bba5696d04772c53cfb1e456d0c60d2d3dce9103df641fe7f565d2a2d4e04a5d02aba43ac1ccc4527dcaae90b7b28b SHA512 b8c7b9172cd2f45be84058babd33c75f37dcb08f6c1a0b7c79b0ae2bd8afec70b29886f23d0a5553a00e1d3761a7788db0444d06788ee32aed2d1c2cd7cb9554 -DIST boogie-3.4.3.tar.gz 2083291 BLAKE2B 802315359afa17533cdf80f41a74d85067bc6b4d497e88bad89892f7cf8831a1564381a65852bdbba3e1c2b70303f9984ed9584dd3aac9c3f1ad085d41db8acc SHA512 39682dc7efc5cd2d9d0501fdaef345f4cbb01c2a92fc228fb2eff6177f373ba534097a17d009d144e3480aa67bd0f95423dfef4188a39803363bb7eac89af444 DIST boogie-3.5.1.gh.tar.gz 2080788 BLAKE2B d13c3d6fbb17c1d5bb76174cc29a7aa912a4993b52a202de41f98990ec594c3414ab87a074ed13d4d30033ed7058756632bc86b1614d7ac6e18ec05946dabace SHA512 711eb2c4dbbf96b0917b57b2aa1ba193ff41c27992a86f538e0ef799329fac4fa95e282a4dc041571400f607c373666eb007f81cdb79188ff62e1aa30a738824 +DIST boogie-3.5.2.gh.tar.gz 2079790 BLAKE2B c9244b5ea7a38a80d1544d03edc2e7d7c79693e7b7b5cc30a4049315643a9a5e7e2db80af46d1fdab3dc4b01e2e84204e1901971accec781b0da7ab09c4e9a7d SHA512 52508b1ce869e2fe0436ab903911e426f7e0df8deeffc8115b703db3fbad8a4b2b6f5ee5733cec1e56422b4cbb7a2308664137d9b89e157480556eb80b65133f DIST microsoft.bcl.asyncinterfaces.6.0.0.nupkg 76354 BLAKE2B aca3f5db71e4037dbdd604aeaebcd0962ccc171915b77b4c409ab744bf0a469c7d588f9504fc7fa49e3863e9593b66b4083235cb49e812d1f87b3dadb32e6003 SHA512 221a05a0c910f7a87b620d8f3831ed392b4eb95d112bee274d35f27009ad2a26445de9d7cd235fe6fb4a03f2550874bda3be3dddd96edaf9c0852a9c23d7b099 DIST microsoft.codecoverage.16.2.0.nupkg 3133582 BLAKE2B 418cf403247d594cde0d827f8ca8690019a7631525f07993937085f4bbf8473364b4c99aea6e8b7b0020208d15fe0da63f0f4e69c273493c51ae011e8bd82667 SHA512 91f1d43fc038a20f5367d9aab669105dc7514dfbe749260b52789c09a75abcc6bdc000ee0c7f432231d4cc09e99bf5b863dd6289d813342f74d9dad23a651625 DIST microsoft.csharp.4.0.1.nupkg 462346 BLAKE2B 209ccebc9103b803d26ea1f0232245c3cd231078b03a83a0011a2a79a1a8a324a72c5b3fda94b2686fff170932f366e165f81a36a70df590a39c45d70778e4be SHA512 c0e75a9162f28ba4c4572c8fac4fd4c8c97d6d3505a37683646ba5f7e5f6ac0da69d5200d2646054de90e8e08f893a10e514591b69b8273640842b2cf90bddec @@ -191,6 +191,6 @@ DIST system.xml.xpath.4.0.1.nupkg 250135 BLAKE2B d6f211f98f33f6b8959b918cff8e676 DIST system.xml.xpath.4.3.0.nupkg 250182 BLAKE2B 8a4177d47af56bc7a6289ed8f2cac41d504dee212a858ed221277b3f523b1ce38ccb47bc3ce4d59a2c7cfd77f00f3c9693a9c257c90adb38096ee77a860f10cc SHA512 2bd0979a2020579fb32ad374b89929a272e763ee1233ed9a215408c0a1f9f82a5fdb74330c1c55a6102e0dfdb8b7b59ed25fdf6454bf3de146152ea779f366e0 DIST system.xml.xpath.xmldocument.4.0.1.nupkg 86933 BLAKE2B 4c03b5a9433c2c954e75d212f9026885aa7514574b73a54880c3d55baee6bd5517abb46b67b22b9b6e63de92a8bc5ab4ff37e3f7e6454a5c5137ae2be6574b75 SHA512 81041a08d3b9158c43dfb48d42f13ec9950d7c2b7f63e1600a779a77786edfb46c522c32d9cc6a44358fbfe11efba0e539e578ef169261867a1905b8121a045d DIST system.xml.xpath.xmldocument.4.3.0.nupkg 138523 BLAKE2B ba53f3b5ac0f2d1d1e9120940b302e6960690ed4a44b96ba15b03e16f9159f2c57d6004aa55b796ba2327009d23fc2f10d4d09e948b88eb6af36efa5f76e401b SHA512 f75b6f7c75874ab6053e8942c1662a6e9a3561aa01502437b8d67f3bfcebd1ebf906792801326889ed7acb094c55469766d7d27cd10bc61b46ddaaa94dfc11e3 -EBUILD boogie-3.4.3.ebuild 9635 BLAKE2B 5bd808c0bad6448100ca8d29acf288087d12a7973a538882609bb65138f99b9f946cedccffed2f00e876dd1467891d35f24d4a6b43458dc59cb66acf9375a0c2 SHA512 fc1082446bab14b653d9706606c54392cb48ed123bc0f48b190f52e0df483baae30176a1ec5e482bd9a070d55326043ef64063d1324d05140e03a64b7dd790be EBUILD boogie-3.5.1.ebuild 9234 BLAKE2B 0e5a2cd5dd51931df2f13317747b088bc4e3ddab2e790d09b7c6171cc775be54136249b301212bdb61043dbe7d6d1952fe44cb9f6144dad023fb5fc3fc8111ea SHA512 787316f3462d9e86127976e910df5ca8eced51e68951a78f3ed06530b00d9ddcc5cebcde220c55d25054292a20b7a75e84fc4353a8da665ea9c7c473e49221c5 +EBUILD boogie-3.5.2.ebuild 9235 BLAKE2B cd8e08b24696feee10a146ebf264970c0d049a8c0f5de536fbca36d72cfa3f3ed9648dd4874b284a717a1324abe84ec1be2a721ff617543f5f5c345c9db37519 SHA512 fa2d1c4c1220ab713d44ac760422f3d53e82715fd30f3855a93327dde1cfa96ce0e733953bf613feb7eaed13cf5e44e7f83a2a68f8ed61e7f242c8b3857a68d0 MISC metadata.xml 1102 BLAKE2B 215544658792715aae72787f7c949ed89df9c05ceab5a919a861c02b7938c0d1ee228e0ede55008287b616faf70992a8c1f2854e6e5e1fc909718ae682996bb8 SHA512 b6a626c485e2a5db3390da62c629507a60417eda8b508d7ed8d1c017ac337743d2c4fe0e8554b103f989176dcd2969cc8579e91532b07a22c1b66328ef241e8d diff --git a/dev-lang/boogie/boogie-3.4.3.ebuild b/dev-lang/boogie/boogie-3.5.2.ebuild index 165ea833ecb1..af19ba9caf72 100644 --- a/dev-lang/boogie/boogie-3.4.3.ebuild +++ b/dev-lang/boogie/boogie-3.5.2.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -DOTNET_PKG_COMPAT="8.0" +DOTNET_PKG_COMPAT="9.0" NUGETS=" microsoft.bcl.asyncinterfaces@6.0.0 microsoft.codecoverage@16.2.0 @@ -208,9 +208,9 @@ if [[ "${PV}" == *9999* ]] ; then EGIT_REPO_URI="https://github.com/boogie-org/${PN}.git" else SRC_URI="https://github.com/boogie-org/${PN}/archive/v${PV}.tar.gz - -> ${P}.tar.gz" + -> ${P}.gh.tar.gz" - KEYWORDS="amd64" + KEYWORDS="~amd64" fi SRC_URI+=" ${NUGET_URIS} " @@ -254,19 +254,10 @@ src_unpack() { src_prepare() { # Remove bad tests. local -a bad_tests=( - civl/inductive-sequentialization/BroadcastConsensus.bpl - civl/inductive-sequentialization/ChangRoberts.bpl - civl/inductive-sequentialization/PingPong.bpl - civl/large-samples/GC.bpl - civl/large-samples/shared-vector.bpl - civl/large-samples/verified-ft.bpl - civl/paxos/is.sh - civl/samples/reserve.bpl - havoc0/MouCreateClassObject.bpl - havoc0/MouseClassFindMorePorts.bpl - inst/vector-generic.bpl - inst/vector.bpl - livevars/stack_overflow.bpl + civl + havoc0 + inst + livevars prover/cvc5-offline.bpl prover/cvc5.bpl prover/exitcode.bpl @@ -278,14 +269,16 @@ src_prepare() { test2/git-issue-366.bpl test21/InterestingExamples4.bpl ) - local bad_test + local bad_test="" for bad_test in "${bad_tests[@]}" ; do - rm "${S}/Test/${bad_test}" || ewarn "Failed to remove test: ${bad_test}" + rm -r "${S}/Test/${bad_test}" \ + || ewarn "Failed to remove test: ${bad_test}" done # Update the boogieBinary variable. sed "/^boogieBinary/s|= .*|= '${DOTNET_PKG_OUTPUT}/BoogieDriver.dll'|" \ - -i "${S}/Test/lit.site.cfg" || die "failed to update lit.site.cfg" + -i "${S}/Test/lit.site.cfg" \ + || die "failed to update lit.site.cfg" dotnet-pkg_src_prepare } diff --git a/dev-lang/crystal/Manifest b/dev-lang/crystal/Manifest index 0a87d7b60f1e..79ebe1b0e8e1 100644 --- a/dev-lang/crystal/Manifest +++ b/dev-lang/crystal/Manifest @@ -9,8 +9,8 @@ DIST crystal-1.16.1-1-linux-x86_64.tar.gz 51688372 BLAKE2B d4d1decd73b9ef4290cca DIST crystal-1.16.1.gh.tar.gz 3719816 BLAKE2B 512d5d5907420a6fa4f1ed5449afe7d9f6e19f479f5817ea03dbb399103b6debe4b50443bb2fc3a21d38e6021b2293809e32db2bf5fa69be01f6825ae7123284 SHA512 e498645a3c653283c00534b813ebbbfc3a6688fc1895b266570ccd2581a286492dc92299af53509e37cf81344a527b23ac2b932e65390fab150969895e24ea4a DIST crystal-1.16.2-1-linux-x86_64.tar.gz 51722506 BLAKE2B 3c4ee66b8cb8cb50aa4f7a6192e2c9e3c6dd153e35dddcfad14edf7a6c6c8c06b411808811a91d4fba6540c82064fe063ebf2313e1c4a7fc52747b4fed7044f6 SHA512 9bc023642c540cde095983e6b5ce440a01ea4603f309d4044fdce77f332d0037199599b69f0b1046e95b1b8c43cec6d4260e47de2ca97a459b4e6120dbfd71a9 DIST crystal-1.16.2.gh.tar.gz 3719814 BLAKE2B f2f04fe6637bf4df49b7becd745588452f17a85abecca1bfa609b6b18f8980aef3e10461e66553672cd94c4351eb10a232f71c89ab0bb0eac4a52cef7fab93ef SHA512 c72cc30dc97ad43f08a0206429119bacabcedd810401501954a36e800e5444b5f5b9a56bed8edae684628f08f583bfc15bf3ff5d00ab60ecdb3f5553b65f1960 -EBUILD crystal-1.15.1.ebuild 2784 BLAKE2B cff25e85a08daf3126d27420128d048e82f56086f7777d678ced3a4c208f654be13d4c88722e115078fd12764b6d467faeefa2eafea26b44e3068f5d4a8f2875 SHA512 d8cb55ed0837398f12b336175686d889682f83271819d8b74602349ce63d4f5427cac3a244ba01c14b9034122a8ce5905066889de0742f6672fd1e0c2cb2703c -EBUILD crystal-1.16.0.ebuild 2785 BLAKE2B cf0495de84b1af4d292bd05c153db8a1412dcfed2a4bef00abd4c6b984d368b822f162c09ab0177f0b070e39aae2cbfc3582630c51f6f7bfe4a9c6efa83b406e SHA512 5333b4f5456ab7a58c3df1669627dae50e9a82ab71c77ddf564fba73e3d182c29721a7ac624b3e1ab0584f79097d6ca37f0c313b420d29507aedafb4c1de7b94 -EBUILD crystal-1.16.1.ebuild 2785 BLAKE2B cf0495de84b1af4d292bd05c153db8a1412dcfed2a4bef00abd4c6b984d368b822f162c09ab0177f0b070e39aae2cbfc3582630c51f6f7bfe4a9c6efa83b406e SHA512 5333b4f5456ab7a58c3df1669627dae50e9a82ab71c77ddf564fba73e3d182c29721a7ac624b3e1ab0584f79097d6ca37f0c313b420d29507aedafb4c1de7b94 -EBUILD crystal-1.16.2.ebuild 2785 BLAKE2B cf0495de84b1af4d292bd05c153db8a1412dcfed2a4bef00abd4c6b984d368b822f162c09ab0177f0b070e39aae2cbfc3582630c51f6f7bfe4a9c6efa83b406e SHA512 5333b4f5456ab7a58c3df1669627dae50e9a82ab71c77ddf564fba73e3d182c29721a7ac624b3e1ab0584f79097d6ca37f0c313b420d29507aedafb4c1de7b94 +EBUILD crystal-1.15.1-r1.ebuild 2783 BLAKE2B c29917c1dafed6f7b80d081a4c0c35485b0723168ef23706de75cf27feb045a9c9ecdcaae382aa8c800e23f2843708b47e77d5e9719aeced50c237185ca732f3 SHA512 9a0d249d3d937eb2ee884d25388528fb2673a87e1af2f762140b26151293573b3b74d965858dd18531fb89097e0c9db852b4a2d8714e1721391e1e33d1a1d7ad +EBUILD crystal-1.16.0-r1.ebuild 2784 BLAKE2B 62a45ea861c524e0ff6ff337d7eed2f0b455bff91277883944dabae1f96bd9b3fe799bcc87151a0aae852ee1e222ea5b9b88901c3364a6ee5a285d0615b6fb29 SHA512 dd03072ea9a3b5bba967175cf6c997b1007d9e0957950692f187f28f20ae0169486be07414a6e4f61d301b6dd61230ceccb28c574967aacfe574a4c088390159 +EBUILD crystal-1.16.1-r1.ebuild 2784 BLAKE2B 62a45ea861c524e0ff6ff337d7eed2f0b455bff91277883944dabae1f96bd9b3fe799bcc87151a0aae852ee1e222ea5b9b88901c3364a6ee5a285d0615b6fb29 SHA512 dd03072ea9a3b5bba967175cf6c997b1007d9e0957950692f187f28f20ae0169486be07414a6e4f61d301b6dd61230ceccb28c574967aacfe574a4c088390159 +EBUILD crystal-1.16.2-r1.ebuild 2784 BLAKE2B 62a45ea861c524e0ff6ff337d7eed2f0b455bff91277883944dabae1f96bd9b3fe799bcc87151a0aae852ee1e222ea5b9b88901c3364a6ee5a285d0615b6fb29 SHA512 dd03072ea9a3b5bba967175cf6c997b1007d9e0957950692f187f28f20ae0169486be07414a6e4f61d301b6dd61230ceccb28c574967aacfe574a4c088390159 MISC metadata.xml 762 BLAKE2B 591f38c882318a6564501cc61abe6222264b65adeaffaf3b23d959ee86b83bae33eaf99029229705f92070fa539fd6d63d8242afc38475904483a9a0b997effd SHA512 ea223d568a3c336a43b183efc61bd1f1a9d1e5e0e8d963275e0b23ee879551bc7d8aae797b1e2edba49d119ad306692599eb535c5d164ebee0c6721dfeab78dc diff --git a/dev-lang/crystal/crystal-1.15.1.ebuild b/dev-lang/crystal/crystal-1.15.1-r1.ebuild index 6b61638ca307..8967275dd0cd 100644 --- a/dev-lang/crystal/crystal-1.15.1.ebuild +++ b/dev-lang/crystal/crystal-1.15.1-r1.ebuild @@ -33,6 +33,8 @@ DEPEND=" dev-libs/libatomic_ops:= dev-libs/libevent:= dev-libs/libpcre2:=[unicode] + dev-libs/libxml2:= + dev-libs/libyaml dev-libs/pcl:= $(llvm_gen_dep ' llvm-core/llvm:${LLVM_SLOT}= @@ -44,11 +46,7 @@ DEPEND=" sys-libs/libunwind:= ) " -RDEPEND=" - ${DEPEND} - dev-libs/libxml2 - dev-libs/libyaml -" +RDEPEND="${DEPEND}" PATCHES=( "${FILESDIR}/${PN}-0.27.0-gentoo-tests-long-unix.patch" diff --git a/dev-lang/crystal/crystal-1.16.2.ebuild b/dev-lang/crystal/crystal-1.16.0-r1.ebuild index 573dc999fa39..bb8e6f2132a4 100644 --- a/dev-lang/crystal/crystal-1.16.2.ebuild +++ b/dev-lang/crystal/crystal-1.16.0-r1.ebuild @@ -33,6 +33,8 @@ DEPEND=" dev-libs/libatomic_ops:= dev-libs/libevent:= dev-libs/libpcre2:=[unicode] + dev-libs/libxml2:= + dev-libs/libyaml dev-libs/pcl:= $(llvm_gen_dep ' llvm-core/llvm:${LLVM_SLOT}= @@ -44,11 +46,7 @@ DEPEND=" sys-libs/libunwind:= ) " -RDEPEND=" - ${DEPEND} - dev-libs/libxml2 - dev-libs/libyaml -" +RDEPEND="${DEPEND}" PATCHES=( "${FILESDIR}/${PN}-0.27.0-gentoo-tests-long-unix.patch" diff --git a/dev-lang/crystal/crystal-1.16.0.ebuild b/dev-lang/crystal/crystal-1.16.1-r1.ebuild index 573dc999fa39..bb8e6f2132a4 100644 --- a/dev-lang/crystal/crystal-1.16.0.ebuild +++ b/dev-lang/crystal/crystal-1.16.1-r1.ebuild @@ -33,6 +33,8 @@ DEPEND=" dev-libs/libatomic_ops:= dev-libs/libevent:= dev-libs/libpcre2:=[unicode] + dev-libs/libxml2:= + dev-libs/libyaml dev-libs/pcl:= $(llvm_gen_dep ' llvm-core/llvm:${LLVM_SLOT}= @@ -44,11 +46,7 @@ DEPEND=" sys-libs/libunwind:= ) " -RDEPEND=" - ${DEPEND} - dev-libs/libxml2 - dev-libs/libyaml -" +RDEPEND="${DEPEND}" PATCHES=( "${FILESDIR}/${PN}-0.27.0-gentoo-tests-long-unix.patch" diff --git a/dev-lang/crystal/crystal-1.16.1.ebuild b/dev-lang/crystal/crystal-1.16.2-r1.ebuild index 573dc999fa39..bb8e6f2132a4 100644 --- a/dev-lang/crystal/crystal-1.16.1.ebuild +++ b/dev-lang/crystal/crystal-1.16.2-r1.ebuild @@ -33,6 +33,8 @@ DEPEND=" dev-libs/libatomic_ops:= dev-libs/libevent:= dev-libs/libpcre2:=[unicode] + dev-libs/libxml2:= + dev-libs/libyaml dev-libs/pcl:= $(llvm_gen_dep ' llvm-core/llvm:${LLVM_SLOT}= @@ -44,11 +46,7 @@ DEPEND=" sys-libs/libunwind:= ) " -RDEPEND=" - ${DEPEND} - dev-libs/libxml2 - dev-libs/libyaml -" +RDEPEND="${DEPEND}" PATCHES=( "${FILESDIR}/${PN}-0.27.0-gentoo-tests-long-unix.patch" diff --git a/dev-lang/execline/Manifest b/dev-lang/execline/Manifest index 77ad3fb506b1..8662189a51df 100644 --- a/dev-lang/execline/Manifest +++ b/dev-lang/execline/Manifest @@ -1,5 +1,8 @@ +AUX execline-2.9.7.0-pkgconfdir-configure.patch 1038 BLAKE2B aba4540ebf1aba0624d669362765cf3bcdc469045ba4b7d75072ffd918a16c590ffee17d1f5571bfcf48df2c9ef0de081d5d89995d71bda67e859a567f0ff8f8 SHA512 1c861e3af7bd693b1a9f568c433d36113b0fc88167f36311c44d0e5c11efb595210917c2b9c868b8b41b0319e90e3c443e368d97bc174b829bba54ff76c5f032 DIST execline-2.9.6.0.tar.gz 111660 BLAKE2B 42baed36228b1e6a370d6d4c18829be7f517812ce9e3838e5b102d0fe58ac48ecd84f17caef89e9a07b3b149ed9b38b3b00f7eef810c231995c8e5ecbf07a770 SHA512 1c5233b0f17b4c92ab2e9e8700b47c8429ad97962bcb7c83190d0b3251b26584e591d77418eca77e8112cdecd24eec50aaca7da1dbb506120931bbda39f2b7cb DIST execline-2.9.6.1.tar.gz 111566 BLAKE2B 199fe6ac6a08b48537abd7868db1332b60bff8e2fa19ba697e15a6d8b0d8969908d0740fdfcf4717fbbc1a75d980a6f2844b1015e52afed26ce1eb450d4e48bb SHA512 86e20a63926cc03cb81e07c9cbea9da5d0384436a82b93e331da6b3ced33829baf5adae4286d2c053b21474d41602d53804ff0bc280da60f7bccc64cbe5f601e +DIST execline-2.9.7.0.tar.gz 116676 BLAKE2B b05268a009a94c4d9cd9aa9b1358465a38039f7ca84a6a607a3f007aacd39c255a7b70b52c73b1720373da09b96d188152a2b1e51493c2bd63c97143490ade75 SHA512 c46aa4954a560610074a5a4f8cecc1512bab05b40739c4dddc74881edb30468f248fc08ca1a461ec66279fa43fa25d130b339790995fb1eeb1612a13dc479ac1 EBUILD execline-2.9.6.0.ebuild 1132 BLAKE2B 8ac47516f9f4d89f44a6b86988a6df1a1f5639868f24f29691a1e6f4f9c7cd1e46520e82f37577d6bf31e81200e70aee08e4cbc6966dd4274772a0e65307dd24 SHA512 97932b7287d2cd30b625425de149bb3ca701e2902637146c90cd6e6ac8251b0e533832b060d93efa5efb66415c0aa5392ddb49a17ddc200e6eab6752663578dc EBUILD execline-2.9.6.1.ebuild 1140 BLAKE2B 56b8184ffc01ecf9ddd6a1def81871fb4669a64dd42ecf8ab11069df545c494c56adb97dd9221e81f0e7b22db30f6a5bb026d1bf728c7b4d3e553f9bc092d2d7 SHA512 388ac6c69f5385c751afc97b31ebb0095a6149e6bb326727505320756e7510263b0ad8df9f20cf7d3eb89d0d506218bc182cdeb6e8a7ebd96e41b4bbb5d183d6 +EBUILD execline-2.9.7.0.ebuild 1271 BLAKE2B 1c285bd4e1046ebf4b4d789e215462285f783b5beffcb60dbe2d1607e0003cb208a0a1061446cba1dc25f7707d505e39bb14f878a2e1a87841fe0c21446acf21 SHA512 15c3ecaeec689982f2fface4c357905e4419dc8845c0358d6e6640ef24f9370865750487c28a0ae5522768f354cfc65508973882953fb4aa8e19f916ac33b974 MISC metadata.xml 585 BLAKE2B ce0671014512c49b041f6c47002603a15f0f5d7f23c356465fff024506fb261096aa757cc1c707501f5be572cea9d925a25039d1549d31852ffaf9b2f17b5cb3 SHA512 bddd917f615e8ff772889a4da992c9201f6e32982374ffa29e7a8c3fce8d7a4f409c3b3ffe8c989e7802c2b321d6cfc5bb37017aa75dc38e3026c1de48bb0090 diff --git a/dev-lang/execline/execline-2.9.7.0.ebuild b/dev-lang/execline/execline-2.9.7.0.ebuild new file mode 100644 index 000000000000..5c0ab6ee3604 --- /dev/null +++ b/dev-lang/execline/execline-2.9.7.0.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit optfeature 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).4" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~x86" + +RDEPEND=">=dev-libs/skalibs-2.14.0.0:=" +DEPEND="${RDEPEND}" + +HTML_DOCS=( doc/. ) + +PATCHES=( + "${FILESDIR}/${P}-pkgconfdir-configure.patch" +) + +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="/$(get_libdir)" + --libdir="/usr/$(get_libdir)/${PN}" + --with-dynlib="/$(get_libdir)" + --with-lib="/usr/$(get_libdir)/skalibs" + --with-sysdeps="/usr/$(get_libdir)/skalibs" + + --enable-pkgconfig + --pkgconfdir="/usr/$(get_libdir)/pkgconfig" + + --enable-shared + --disable-allstatic + --disable-static + --disable-static-libc + ) + + econf "${myconf[@]}" +} + +pkg_postinst() { + optfeature "man pages" app-doc/execline-man-pages +} diff --git a/dev-lang/execline/files/execline-2.9.7.0-pkgconfdir-configure.patch b/dev-lang/execline/files/execline-2.9.7.0-pkgconfdir-configure.patch new file mode 100644 index 000000000000..a67244c9976b --- /dev/null +++ b/dev-lang/execline/files/execline-2.9.7.0-pkgconfdir-configure.patch @@ -0,0 +1,26 @@ +From c7c284ebcaa969239a10889a121e2b21f94da444 Mon Sep 17 00:00:00 2001 +From: Laurent Bercot <ska-skaware@skarnet.org> +Date: Mon, 5 May 2025 14:13:55 +0000 +Subject: [PATCH] Fix configure + +Signed-off-by: Laurent Bercot <ska@appnovation.com> +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure b/configure +index 976f62f..eb16358 100755 +--- a/configure ++++ b/configure +@@ -187,7 +187,7 @@ for arg ; do + --libdir=*) libdir=${arg#*=} ;; + --includedir=*) includedir=${arg#*=} ;; + --sysconfdir=*) sysconfdir=${arg#*=} ;; +- --pkgconfigdir=*) pkgconfigdir=${arg#*=} ;; ++ --pkgconfdir=*) pkgconfdir=${arg#*=} ;; + --with-sysdeps=*) sysdeps=${arg#*=} manualsysdeps=true ;; + --with-include=*) var=${arg#*=} ; stripdir var ; addincpath="$addincpath -I$var" ; depincpath="${depincpath}${depincpath:+ }-I$var" ;; + --with-lib=*) var=${arg#*=} ; stripdir var ; addlibspath="$addlibspath -L$var" ; deplibpath="${deplibpath}${deplibpath:+ }-L$var" ; vpaths="$vpaths $var" ;; +-- +2.48.1 + diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest index cb8ad4132355..c412aeb960b8 100644 --- a/dev-lang/go/Manifest +++ b/dev-lang/go/Manifest @@ -6,7 +6,7 @@ AUX go-sets.conf 256 BLAKE2B 670afd72a2fa961e2b3882ac48d10e9d047af7a68f47bc8c898 DIST go1.23.8.src.tar.gz 28182772 BLAKE2B 568b9fcc7ed12cb19e10b458fc1890a5977c97660657e9eb7c171aa16382f6790a78cb87df99ed72ec18d5ff1654ee4d15a4d603332ad0812ee97f6500866198 SHA512 8e352a01484c168894026080ee4501180e327d734fb3d892ab17daac193964fcd5fd90033c9cf86d6ffe8b7e4da64bda83ba4501a6c05919bcefbe9e2467c771 DIST go1.24.2.src.tar.gz 30787666 BLAKE2B bb5f998a87e6527def304347b854c4addb0860a03da82e711f60e2af460bd43c36273b25126c643a679ae22fca226e6a4fc5ba55967d21965ffdc8f564781e35 SHA512 6366a32f6678e7908b138f62dafeed96f7144b3b93505e75fba374b33727da8b1d087c1f979f493382b319758ebfcbeb30e9d7dadcb2923b628c8abe7db41c6f EBUILD go-1.23.8.ebuild 4219 BLAKE2B 5d42a222a7aab58bba44ba7504c1785260547e0a61adbd7801fef84a69308929d2b90fe941993ef6b6b4df6df7f2e2d2b532e6749e7b32a999f760180f4b72c8 SHA512 f78e742f821b52dcff9d0edd6dd27629b0d691a868b0d35eac4b46025163b6d33174554d730999182ae3721ae45ef97fa18709b05203bb005b7e7ec5711a33d2 -EBUILD go-1.24.2-r2.ebuild 3408 BLAKE2B bb51202276cd4298e633febec537ce191521677364eb8a46c03c697707dbe064b16d3623fe84c928d8120503d787136a120ede24845a6d099b09fec4e83803f0 SHA512 c7317d1dea49dccd4d2d31e4fc68ade5e9e4a5cbd9dfea03d3b90c56bc317ee48762bc31a527e1ae1f6d73251141e9767d399931e8753acb15be4912592b5179 +EBUILD go-1.24.2-r3.ebuild 3462 BLAKE2B 30262a58662f065b5b274537561844be7afebfddcd7ebfc5d2bd3710ce5f02fee651d20b0c111142c55a0b65d0714d77ea140ce83d9afa64b0bb785d7d074401 SHA512 c5fb2e8c74bd1470f6688bf34b65640451616e18e40b5cccc1635ab96196cb22062646fff525af08b092a2731bd4c551a7918872805f05019b6a93b121e624c2 EBUILD go-1.24.2.ebuild 3401 BLAKE2B 2ea55f57bad1c6970c494fe110f1d5c57af9db310d3d4071763f91594cae0ae838627d1e691b5ec8f3087c3a790f91e946a8ca299e0d8748fcc10ec7e5c3696e SHA512 7ea5b4533b6a7a46f26d8c447c1a8afd47efaaa263fe37c26684cb9fe1880f077e1e4562de05c85686769913568ed71b3e786e54170e184dad9aa89dbb8f4e79 EBUILD go-9999.ebuild 3325 BLAKE2B 44e91a7a333928cf9776903747221b227951d35cafee81b4df3ce8cc3fc847b21503cd34b339cdade49de5a4c810aee5a2f00698542615a42efb189b9bf26208 SHA512 f7cb4aa003edf37bfc89ebd3269e16049a1a33345d2aa779a32029c6c7fbdff3e6d051e499676dbaee0eb061fccc27de9d5e5413b8ffb676ee6a8f237955d858 MISC metadata.xml 589 BLAKE2B 341e4c0e91d73ca668c1795035e1223eed60f85c724afd989ef1f8fb69649f7f6eaaf8a5228f6c8f587ffcc40a438c47d332fbe6866839f5a0829872a983f642 SHA512 fe58ddddfbd4d0d060516cb035592a80c0f48e125bb59c95d3c6fac0c182271e2a9ec9bd055b9cc8e6cb8c449e6c483bff4a23c362f532c24255febfdefc273a diff --git a/dev-lang/go/go-1.24.2-r2.ebuild b/dev-lang/go/go-1.24.2-r3.ebuild index be97c0565775..ebf8aa30d021 100644 --- a/dev-lang/go/go-1.24.2-r2.ebuild +++ b/dev-lang/go/go-1.24.2-r3.ebuild @@ -20,7 +20,7 @@ case ${PV} in *) SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz " S="${WORKDIR}"/go - KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" + KEYWORDS="-* ~amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" ;; esac @@ -28,7 +28,8 @@ DESCRIPTION="A concurrent garbage collected and typesafe programming language" HOMEPAGE="https://go.dev" LICENSE="BSD" -SLOT="0/${PV}" +# XXX: Drop the .1 after 1.24.2 (added for bug #955451) +SLOT="0/${PV}.1" IUSE="cpu_flags_x86_sse2" BDEPEND="|| ( diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest index 9259162f5357..16e3caca0f13 100644 --- a/dev-lang/php/Manifest +++ b/dev-lang/php/Manifest @@ -12,8 +12,8 @@ DIST php-8.2.24.tar.xz 12110000 BLAKE2B 0f5c47350b8914f87cfbee932ea2e24d29635a0b DIST php-8.2.28.tar.xz 12147756 BLAKE2B eb2c5ad888f98b217d553efaa5f9832c791d7dcb73e90c1f0a45b536f3cbfd8f76c0606f993ca39492e43f587f5c0be1f1adac80c3ae7281527b8b381176f3bb SHA512 af2a4f43da756a78f762dbd2b9e589e52864c7069fd55a6a2b900e32a08728a7d69b80577dc79b5d4a86993846a2232b809b75ae415344935610a3934b10c6ba DIST php-8.3.20.tar.xz 12549020 BLAKE2B b00cb60ef5583ecbdf9ae9f51d01f561d446a0462540cd0adb32725265bff1bf3bd9e8162acd4a843ab76f7021ad9fa77830a77edb458b768a12616e03ca7507 SHA512 2641a721ca0cbcb05200217ba38c7d0707b6294c355e109486180beccf0f5fa4822f92caab479a473bfccf93558a5bc34d42ef271355022701d62e2d11afeff9 DIST php-8.4.6.tar.xz 13612892 BLAKE2B 3c94b0ac29877d9cc1573be40fdd1c582fcb4505c481ba1ad58c3b3963bf458951dd5d18f55ca504a9a2bb3b74180deb9b9c6ae22ba59b18df4e2e52dc8c9d0d SHA512 aa39d97f7ffcc851bdfe674e9cccdca6e55cb4938584c1dc301746544364efb541bec242372a90ad370d802f717c8dff6054450a311a6fceb07073c922c04247 -EBUILD php-8.2.24.ebuild 26595 BLAKE2B 62bff19d9e738b5e8da960d6fc8d41ff35723356017ef048e7a45d54e07b62a43dcd632837f3917654e5600097fe2c50d2247137c693bf20627773fc6054fb36 SHA512 3df0a5705098463bedd5362af4b4ec1c06797932c1c3ad666fd6be115c601409ec3cdec75342e7da520966a17e3a4db30f975a5dbc6ff2d762a0234e639720ff -EBUILD php-8.2.28.ebuild 26821 BLAKE2B 99ae628dedeab676fb8051827dfa4365c91e915c121934d05394894233bb9d35dfc356a30d99d8a560801a2453a0c30be5f194eaa60ebc8fb6fea6c7b32d6b71 SHA512 9232fc20d0a1385930153402ab9be846038df04f09ff97c5c9ec41735b8024cce65ae66e7fd1bff184c275931bbb7f0e3b0fe6d8af89005aa07792151a5910af -EBUILD php-8.3.20.ebuild 24187 BLAKE2B 7e6e798616a5ee5bcba97f443ef8ec4b9921af7d736be548d82ce9cf607eedda624f66bd170bdeebacae4a83abdedd03522eb2590b0c5570cc92b68524c617f9 SHA512 593e286b05cf3db4d673f7b90e6743fe96144ec9b61a9d36141af41f4a65e1b1006a84722ac1be258e5367f38256c2d5b652308f159e7644e6ca688e7cbb5edf -EBUILD php-8.4.6.ebuild 23340 BLAKE2B 83bcb5174a807d8bdac95ce4a35f2db23d7a770b052d4619b4c465c01f0eee64d29fb6b94d9df9ec592c9a30ddd14f2bd92ade122c805c57c0942aed16cf31bd SHA512 334fa3297bc87e7fe220e33e7474f9093a41e27bfc2e706ec0783b88af71de27af384276d15ee625adf2562f72a325bc76953abe958e574053dd193062071d77 +EBUILD php-8.2.24-r1.ebuild 26597 BLAKE2B e018e728d1f8bd14ebc1b8a6357497d60cb06f246877adcb22f7ed340f33a668f42a7bd7fdd874b56065e7a6a2be240e2650d41c81a0fe4d0706fdcaaf32da53 SHA512 cf4aaf47a98965aa95cd6b5c1328594e7f1657ff897843ae5927ec274922e653b1b8eca35d6132c604187f5246bd0458f22ae3a7432449f35be29634611a05f1 +EBUILD php-8.2.28-r1.ebuild 26823 BLAKE2B 17aa6d8ae58122803335c0fa3f886748bdca52077d9067f2a27a78c5ca2e3ab5b016b24aef4261b0c9f4da8fd7925bc7eaafe4baf2b29c58c16eb4f0377c6558 SHA512 b933e07fed020c33a855023201c84e891ebb8a0a028299e255afd668b4e61b0dad6c69dff8c452c9a9dcd1d3055fd00d90b6bd9e48cbda1d0b23b86b7e587291 +EBUILD php-8.3.20-r1.ebuild 24189 BLAKE2B cfcd7788ae79984f313b2e78a62423f2d23af0e947bee4b83f44878418eb5dd9b04906eaf5c6584940f92ed6cb152dd090c4ebcaa2839b602546eed66fbdf429 SHA512 f1b1ff3c155b18a62ef23769f5e00e7a3c3c23a354b7c94dff7a8e6929a482c3df8d13c9e608ad23d104555ee6827d0e3b3ba2af6e4265f8563e186f94a73b13 +EBUILD php-8.4.6-r1.ebuild 23342 BLAKE2B b4638698796b2e83db50a6e0d6c576637524fea4bdaf823f5f8b853e4cbf0906284c19748648a851ed2e0ad8140fc40d038445605559d39de314fa0ff1e4917c SHA512 e3787949968f56023fbffa24e44a7d6a96b3bcff31f1b916706b528dd1bb8b33bccacd0ec63f43423abe589bc8c1e8bb74ba2a3920952c86dbda885529579ed9 MISC metadata.xml 4085 BLAKE2B a829b370fa595e7a80e957f119cd35c6e9003cf8ad7b3b99a777d3bf54c2daef784ac95f4b4f7caa1b79864a171b101dc10e20a41b29a82cc32ca017001f8e86 SHA512 f3ed63931e0e7c863c0e42551fc5386b92b9b19e955dc74f494788d1ad7a0cf63cd51d0febc014fcfb9a6d5ccec1dc3b73c47ef4a8fd11167ca42bbb48983664 diff --git a/dev-lang/php/php-8.2.24.ebuild b/dev-lang/php/php-8.2.24-r1.ebuild index 262be99fb415..00528d03165c 100644 --- a/dev-lang/php/php-8.2.24.ebuild +++ b/dev-lang/php/php-8.2.24-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -120,7 +120,7 @@ COMMON_DEPEND=" unicode? ( dev-libs/oniguruma:= ) valgrind? ( dev-debug/valgrind ) webp? ( media-libs/libwebp:0= ) - xml? ( >=dev-libs/libxml2-2.9.0 ) + xml? ( >=dev-libs/libxml2-2.9.0:= ) xpm? ( x11-libs/libXpm ) xslt? ( dev-libs/libxslt ) zip? ( >=dev-libs/libzip-1.2.0:= ) diff --git a/dev-lang/php/php-8.2.28.ebuild b/dev-lang/php/php-8.2.28-r1.ebuild index 8acaf688b344..8a745064089d 100644 --- a/dev-lang/php/php-8.2.28.ebuild +++ b/dev-lang/php/php-8.2.28-r1.ebuild @@ -118,7 +118,7 @@ COMMON_DEPEND=" unicode? ( dev-libs/oniguruma:= ) valgrind? ( dev-debug/valgrind ) webp? ( media-libs/libwebp:0= ) - xml? ( >=dev-libs/libxml2-2.9.0 ) + xml? ( >=dev-libs/libxml2-2.9.0:= ) xpm? ( x11-libs/libXpm ) xslt? ( dev-libs/libxslt ) zip? ( >=dev-libs/libzip-1.2.0:= ) diff --git a/dev-lang/php/php-8.3.20.ebuild b/dev-lang/php/php-8.3.20-r1.ebuild index d6a9b1fa3259..b09660213239 100644 --- a/dev-lang/php/php-8.3.20.ebuild +++ b/dev-lang/php/php-8.3.20-r1.ebuild @@ -110,7 +110,7 @@ COMMON_DEPEND=" truetype? ( media-libs/freetype ) unicode? ( dev-libs/oniguruma:= ) valgrind? ( dev-debug/valgrind ) - xml? ( >=dev-libs/libxml2-2.12.5 ) + xml? ( >=dev-libs/libxml2-2.12.5:= ) xslt? ( dev-libs/libxslt ) zip? ( dev-libs/libzip:= ) zlib? ( sys-libs/zlib:0= ) diff --git a/dev-lang/php/php-8.4.6.ebuild b/dev-lang/php/php-8.4.6-r1.ebuild index 2afe7133ef03..e0cd4b0055a3 100644 --- a/dev-lang/php/php-8.4.6.ebuild +++ b/dev-lang/php/php-8.4.6-r1.ebuild @@ -108,7 +108,7 @@ COMMON_DEPEND=" truetype? ( media-libs/freetype ) unicode? ( dev-libs/oniguruma:= ) valgrind? ( dev-debug/valgrind ) - xml? ( >=dev-libs/libxml2-2.12.5 ) + xml? ( >=dev-libs/libxml2-2.12.5:= ) xslt? ( dev-libs/libxslt ) zip? ( dev-libs/libzip:= ) zlib? ( sys-libs/zlib:0= ) diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest index 913e158dced0..22b77fb96b79 100644 --- a/dev-lang/rust-bin/Manifest +++ b/dev-lang/rust-bin/Manifest @@ -581,6 +581,34 @@ DIST rust-1.87.0_beta20250420-x86_64-unknown-linux-gnu.tar.xz 198552720 BLAKE2B DIST rust-1.87.0_beta20250420-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 45a0d818111946afc5e6544deea84d649175a0059f6a4574b7d7d2095ff008285ad09945f7e79b02331b13627da51cdea535cf80e4454248572a1fe5524489f2 SHA512 47d46d2c48cbe2a0b72278bf4e60483b889d83371ee35eb568809cd50d1e5058eee62f416e1ba3871016e0a2957be57a3716882eae41eb6c384510f4e523e3af DIST rust-1.87.0_beta20250420-x86_64-unknown-linux-musl.tar.xz 293222552 BLAKE2B 167b847bb5f23de2ab1b918976c7abe8cfa9d98b51ffad52aa208d986c9e409f37f72114280dd61a255496502d92d22e0d26c233c4034214d5e9f1565ecd32f1 SHA512 535e5320e11e70b86213146803994b7bf15475c24aa2822cf9f193586b01e8d77de509d9ba08cd6892f43b2caf1c22c657c4a1949582bc10283a47fc014de2d6 DIST rust-1.87.0_beta20250420-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B e25674a14e3efdfd95fe2269c9848bd9c78a9f7819d35a6fa54abc50478250eaf1207249719d92b9d8fa104943a3129ff3045cd4e7039febf94ad483098796fd SHA512 f493ca8b9604350e93deec6b698086662b82b8b774d66b7090815755657111255710b04105bff9f72d9d83de0268cb34df4db9c184f1066a364d5c44dda3331f +DIST rust-1.87.0_beta20250430-aarch64-unknown-linux-gnu.tar.xz 167147580 BLAKE2B 2ec0c7bff468066cfcb8541446db8b3889b0c992941f7d68d5dc8df91fdb8e1e1f42ca057923f258bfd0b18ef83d2abbb554c3d49ef3ba82556049bce58dd0c2 SHA512 24e6a8ec7e3bad6d43d3dd099155face0d394318f6b6316d7e8154461e7e09580e5a92dc558ab02dbb2a8233cf2e60371742c49c31430fb6f1769d948dd34713 +DIST rust-1.87.0_beta20250430-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 64910eba90333c5f624c30c72be35b9ff496efd35ffd5fb4360dfdfe7215420ff349c7c027754ec7cd320d1939c98ff0961f8c806a4b8a05d16cd308195f54ef SHA512 6a92e0b4b1cc02c213c22f6edf63d329ece491cf58b61d63592465acd7fdacc7d1a0e276a53518053e55133810eb1a0b5d2753b2bf1125c55b547cd6551c681e +DIST rust-1.87.0_beta20250430-aarch64-unknown-linux-musl.tar.xz 244234060 BLAKE2B 1679d52281225052cff41fba99336265985a69f4b09c11d7d4920bb5c9f8ca9fd299ef7d62d50a9dfb5609cea0d8113aa7e0ec51efe509fa0d14f710589e1024 SHA512 3c69f7096f2506fe4b794c0ad05815b8a78074b07ce96f6fa7ed8e8df6a792e9744671c631dd486f7aa8f29c539f01503a6d2a4c031cf4265583463ae4f24060 +DIST rust-1.87.0_beta20250430-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B d1f94c49fc4e5d664eb8b3b0cb532bc6e8d8260f841f294d6b5cdd8800dbd1fbd7e8058f29f8acfaaf079ffe93813870825b498c9747eb58a35e35161f82f12e SHA512 9e394188c89a7e5a63a909976e413d699f29a81c21c53fa140929c788050bee497c2565abb8836b884bec926f7bc9e59b7be5e6bdf7a8c5381171c724c3ff700 +DIST rust-1.87.0_beta20250430-arm-unknown-linux-gnueabi.tar.xz 229441924 BLAKE2B 21b58de7968db77c8f24afe7967dd659a5c1de07496ad8bba0f82b6acecdbd8bac91a0bc5c864d2cb0fe7176e3db3bdf0d16d02a3ad077cdb4668e0f18310a26 SHA512 e19b4067a9feffa70f3f9c34c8da1a83ca57a652225250f8c84a83a1b890d85d3e73b9d34f1428c2a227af231414203e1121642afb546a8c258f07ae3d229ae1 +DIST rust-1.87.0_beta20250430-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B e1c4c59e1502335dbe3aa50037e1db033b05a478193b6554f1f9b6b7e982885fd219c4a6274bb2bbd79cfadbefa85fe1f66f6f61650b3b1127760c0839d2918a SHA512 b3ad2a9441eb45c191568c7e395e60f556feb2be99b70e414e67d9282c0e319a3320ad9c26a89355fa190bd0862ef3c0c61b877f1aabbb1fbe406c73bc8d3818 +DIST rust-1.87.0_beta20250430-arm-unknown-linux-gnueabihf.tar.xz 229878332 BLAKE2B 6ef869de529838361bee3b3d38f6e3514a11330fffdaeece39834ed4b7184ab6d7381e7fccc4973f14584983c3e49b4ee32784d6c63c4ce11ac0d405fc294e7e SHA512 febca06c04b7e7a6448cc9a939ab9ad9fa638c42b5c7916a1c01bf5331099806dc707d1a5cb64dca8afe65596eb0fca834ed2cd3e9b4a6084b09f1b868c44f92 +DIST rust-1.87.0_beta20250430-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 9d9f44ae951e36da32894de8501ed313bf2d37033e83068b7d2876107c9561d79dc608c6b508224c30c12d4557f46babd9198f1c6b7d657d99aab6a9d0747e6a SHA512 1e46482639d61c5e1b26d2e388cde801b102189aed1ff2c19ca04d93062e3e37792f239cdde2488c97ea793d594e610567d629e47466b00e859e4c63229a2c42 +DIST rust-1.87.0_beta20250430-armv7-unknown-linux-gnueabihf.tar.xz 235550796 BLAKE2B d7820490576cdc9c99a120e16c018a29f97d4f6929af5c1b37e0e2619f01f1ab91c1bace836168062f164b5da4488cb02248e4df2d497b451b754e941c2f46cd SHA512 54c5b5a9f335965a01453f029b40de7ef9dda703a94d18176526ecd6677acdded12fab18c692489868f5f766a3bccdf26fddbeca7e22a161a59726edb6c4d7c2 +DIST rust-1.87.0_beta20250430-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 0ea8ed089f21dc07a58a6954ddb5ff602a2d5a87d7445ba962151f288d261545417974a66a8d44f8a4953b0b3a0c78385f73b1e199732e2b8cdb86a76314bd73 SHA512 1f94dfb40f307c9063fd4ba48e06eb7e67db8ac87b4a91dd5259db555f9be26637dba98bfa1b0a7d0e3c9c21322d67e9728e34e1af6332c26a5b4d6fb8696b12 +DIST rust-1.87.0_beta20250430-i686-unknown-linux-gnu.tar.xz 263614824 BLAKE2B afbd536a1ba02bdab43531d4819174e618660ab4f0add25cf145c03d8b48ea5e01ebf5148476ccfebdf6f80761f8aa62edf6313775ee751007921b499299fcc4 SHA512 9fe21def3ff36d4415f859cc3cdf2b975df2dfc5dd8656be18c67d0e2ac7136d8906fa0c4d3dd30f5726ef6cbd8a58338dd4d10ea97e09884a4df387a2163997 +DIST rust-1.87.0_beta20250430-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2b36afb99494f3e68b147da9c72b318515672480d262f38ca96692033de835647d5e99f3deed7ece247efb82b13ed913a8bcda1e4e64a5704356b40ed8b6fef8 SHA512 f1cf97043941981a19624a579b4700e320fc5f029f19fae900a3d6225d6f92d7951f5afb90356e681b585ae03ac1f923ff4d82c5e5d5c3a693684beca77592a7 +DIST rust-1.87.0_beta20250430-loongarch64-unknown-linux-gnu.tar.xz 261199080 BLAKE2B 1d9f5258a232c11f074b48874c11c54f4b6d7fcafb25203300609bcd52668455f8380ef49a17f607d06d050f7152f282778067bd13eda0e7ffa6a5312b26fd47 SHA512 90bb1bbaa8438e713e5f47a28da362ab5f9c685e4b62a4247c5451fb7a32d5a9fa7a46334c49abd905e2148831263226bdbebd1f57867c3538f4b48ff6988952 +DIST rust-1.87.0_beta20250430-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d3ae6b7e2def424f3c6ccbffdf442bb90c8dd7ec3ba193196c29fecd8f3ce6ad50b55e0a766937c1e63d75d62ebb5a2f1c55fed3817bf4aedaa86fa2fd7a3efc SHA512 a8ac9fd9d4b23af73b36048ec90e37dd2c090ed8107a55f2fc47134dc542334a1037674de994c5a15291696bc272481d5ca38d49a317143926453bcadb59145c +DIST rust-1.87.0_beta20250430-powerpc-unknown-linux-gnu.tar.xz 255715968 BLAKE2B 9286b725d3d6dc07a5dce972f069d908d08af2680f7fd2986373d2e7abdb4bfaf630303793b08d648a4899adc5f2794d46b2ac1100d822c1f81740c60b32ae18 SHA512 dc87cd8e4ea9f15e3fad80ad26adafbadf29f7b3c9424640559d5f8cd6314d59aaafce189e0b036cf9a8acb071e5b1274462710eb3250e7db01020397e924d7b +DIST rust-1.87.0_beta20250430-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0830fbe1671733020d79d4b7ede135a88f8448ff0e90f17c8019b7e1e55e49f1276c8dfec80598cc48b15cffef4e863dbadf00dd1a636d90b1dfd2233c85c35e SHA512 9b2e0915384a4f0e3314d520aad896ddbf159fe173a4342bb9c16eec15e373177bb07b2cd6270596bbd373d46ee7fec438f7f5421fe86bba0fc022eaa6eaea34 +DIST rust-1.87.0_beta20250430-powerpc64-unknown-linux-gnu.tar.xz 255890928 BLAKE2B a133c38bb5f9dbac8d83bcb4be95b347b5c906f61f8ffe586383748b82d55709dd5f2d18bf364688ff85972cf7112b3a3c14b95d3ce05eabc07cafb17bc89506 SHA512 33d44e20d9a0d0af2225b6c64177e8bb82f6eb2af601f4fc1028413c158d00ba13ff19b0fe9155a4d3820dc9f773d8e298cc627804a6082eb708e680cd36824c +DIST rust-1.87.0_beta20250430-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fc5990ab276c136a32309898ba4b90598cd94168c2bb596f3f7794b9ce015b3c1bc4b4b011bb03161cc6a41df8fdb9733655852ad6fb3f04df4b61d6a970f391 SHA512 f80a43d76b85aa510bce8ec64d5960c57dfa7faec3a3d7d79a27253db7176e7b9f1b0dfb63aa062d6c7b8910f12500cfc3fcb362ae4c8106c14bc336aec39eae +DIST rust-1.87.0_beta20250430-powerpc64le-unknown-linux-gnu.tar.xz 271446928 BLAKE2B 3f4ecf61f439cc17564d9df55c550fdd40fff73728d897783af1d7254c372dfc330a0fd347d55563c07f5aea1bd60717876550f6aa260222ac347dd892f44e8e SHA512 ce662c8db1479f7f1d3a497974d0d7dd8575cbd34e51d55350d3ca0eca13d85a0566a9ea3d61970fcf81dcb2e40f690fd1a9aac81d715f8dff9e4024a796ef28 +DIST rust-1.87.0_beta20250430-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a81b1fd6118d58b52b3ad790db2b9cd444ed007cc9b9bff96f44b04b6adaedf2e788d84d145c9ec31639aa2ae2e61b2f505274aa00bcfe673288e42ebc489cf9 SHA512 abc90d739d8f2b85e3929dec2b0edfe2566b0154a7111dbf89a4111cfa7b863ce4c6058de402e1c33667792051120b40efc4995145a6b5d27493cf2437c99873 +DIST rust-1.87.0_beta20250430-riscv64gc-unknown-linux-gnu.tar.xz 250452368 BLAKE2B aeb063f9a7e2c2334f8f00a84362f6de67dfbc632ab498465603ce29dab4a7d1d63ba361f1e2f696bf9609272dac3507e979546358694eedaf83db7220c49d78 SHA512 5b63d6f3d9a9cb6dee0e93eed4de407bc9b5cb099006e74ca37334bd135441fd8f4dff8ed1b2b981a3a9b1857ef7610826c96f1fad7222d242b259f5f3e0d58a +DIST rust-1.87.0_beta20250430-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ad7de23d30dc3c1ce452682e473fc697f8b6b0d75a77c83a2a74631d4c5737e19ea3cd5b9f6928bbda65e80cbe968461b60e9fc80085a64e2397271c5a01dbf7 SHA512 c8dcba3349a3ed4edb5adfc6b814c1b11280557768bdbd414b823b4fcd6cd1851b29092e03677a80d0757e5790e584ccc0feaba3a3306a3e064dc543109e9a5b +DIST rust-1.87.0_beta20250430-s390x-unknown-linux-gnu.tar.xz 240130080 BLAKE2B 242119b30483591e791a6a2254c1f1c296053918c7c4b7892b3d5a1191b5c71f41905c7ad1f25fc1f389da2801f897ce62915dc0cbd9f2638d339340efb2674b SHA512 a80e8b1b1f158d90f1869ec7f40c53037ef7b2cf55b48bfaf542ddad6d5fb3ea60197a09945efa90026fab6d7f4d8705e281b83b88ac1161a4f7375efa637d56 +DIST rust-1.87.0_beta20250430-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 4cb889b42ee0a539fcc016ebb7a4a78c1cced09fe491b0957c69fba4d77b790d0978c5fdd5cdf3fcb8ad59cd0b6a7a36a385baddc99b8f30da643099a4ddfc3b SHA512 9c01c300c5f30a77b51a775cba44084e7ddc1991230e70878f574274e3cbd970b2166c7f4c11e7dc181b99b7d8dd67ee3ad5e10d97b57c8a823e14cf97b0f326 +DIST rust-1.87.0_beta20250430-x86_64-unknown-linux-gnu.tar.xz 198597356 BLAKE2B 2a0fb1356e7eecc7e955351d98614c81b290321af5d6d16b4bfdf080b350123fd0abe8ae84b7eb46af0dfdc204ec584e78a723f5bc50b53dd561aaecb1474cbc SHA512 efcf10a2e4d8738b7eb6e88a0b2a3cb91599a146093f091839884614ede03e4be0b3c8fa111c9e221af6dd1bee3a99676c1d3fb70db8dd4360ec89a0c78098cd +DIST rust-1.87.0_beta20250430-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 731e7e8ffceee0ca02d0ff18d424218dd4171976658e6aefce924a11d1673a188bbf229770ece27660d2116c1325eda719a46b6dfa1f66d7e85ad03647f8a2ce SHA512 82fef82947875aef78b0def48e6bfc64160b65bf833832d5520cbfe61ae7459142e85f596d12c3699b1c65e45bcf9fcf01603764be4742846b002aefb3873f91 +DIST rust-1.87.0_beta20250430-x86_64-unknown-linux-musl.tar.xz 293260544 BLAKE2B 46a12a9cf153bb2c24fe80f2ed1f6f0228ef18aa80009c5522a131ba27af72e492d4157f4d3f4de61b27c0fcc475d0bcc09685c02212bab89078996c5b6557f0 SHA512 dafe582800d4f9b6e1f699713642429b32797baad80614d8bfe8142943d6ac899b72734fb2e502b68b6dd4d8618bae359a62e60d1880ec5b51693cca636ec679 +DIST rust-1.87.0_beta20250430-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B d64405eb306408924b9b606494be3c34f5daf8d99fabcd36ee992e314df449f519e4bf35284b791db9080806999a7341c603bf3e452b6539080aefc491318b61 SHA512 e356ab9e5d3e55a0fd9c896db4401a4a0306e4d86aae06f01bb9f79e9df4ef25bdf3d41d767a057271d8d8c8d96fd102a3c35fcbac1aa0987cb79d4a99439ca1 DIST rust-src-1.71.1.tar.xz 2460244 BLAKE2B e3a5b5bfb808310f96e760aab55310c7a790fa551d248c9c5dbb407e0a80653563d8df73a9e0973aa63d3286aad6c755b78098dd8db2dc1a2ed3cadb926b40e1 SHA512 659cc46e1ece2ddbcf5ab748bae48843bd36353cc633b59e4ac062d843af66919e8d5c39ccb72ebdbf94a0e26a8056ade6bd1c8fe9a936469bd405122a8ae35d DIST rust-src-1.74.1.tar.xz 2544036 BLAKE2B d95431b69f102782f51878ff73ce8802cac6dab7909497c3231d1c479b95dc2a618cc6efd8bac9c6bd59a2b10dc6be05199f1e1bd74e45cc640ee52352c29268 SHA512 11467d0936193c5a5be8c2eba1aefe2b7028af48494698863de2c4057d68ce33dcee1fc66dc2d68b1d32f0202ce49e9b906727849de8f8d904dd07930e76d5a4 DIST rust-src-1.75.0.tar.xz 2570256 BLAKE2B 9db7ccff07ffe6991233e9f530321fd6ba48c561dcf1226537afa70c7d045421d8e83c5300b0866ec6fccfaae96dd67b9f204e9e0e12108c0c766d467cd78909 SHA512 e7565cea2f1658a05237a698e38880df2544319b41b6d8b0805db5f1f94fd3bb4f986967d0440fcdfe3a135e33246f3c747665b964f57ff5942f56133af78cdd @@ -598,6 +626,7 @@ DIST rust-src-1.85.0.tar.xz 3036988 BLAKE2B b7281b23eef60cf052e1641a29915c02c590 DIST rust-src-1.85.1.tar.xz 3036412 BLAKE2B f137ffcebd2d231d8b3dc5c9072f6afe39a071bc9608ac468bca364fafaa9c277b91e40da870a083c802cc13b9b876a548d7fa8ae67ad9552321a7412b7d8cd8 SHA512 d230cbb1daae3e2f5168abef94c5b99fb118c34a980f018d5df3e43f6ead4e0a17d6ea29bcfbcd0fb745e215f7a4d0282a99a714dba77b98a16254bb27c2d2ad DIST rust-src-1.86.0.tar.xz 3053544 BLAKE2B 2d1d8a4be4f9dc9355ce9a2d1599e0a57c5d1cb32f7b2eb413f6009dbce7d63db2533dc038cf50f5277a2d7bf4434f2076632c12a6fd33335ccf3a9f2ab685d1 SHA512 2818d94412bb0766ce53383932cd8ce96275a8e923f916c4bf7116fbcb7c2053cfb9714667add1a9d50b18366c973ba3ab4fe55d49c8abc8cc57656635c59f63 DIST rust-src-1.87.0_beta20250420.tar.xz 3118744 BLAKE2B 44c32b7b91c1b8440eaa64ec22422775fcc47581b0620bb51fcf738fa9e73ee938c40df578885db095cd4b442f50d972c2ec44c64a77a6093c7cf65bcee04a70 SHA512 cb08ad457250112c696e5ea82606ecf1f49d0196bfac81d743587458dc1c23a728afcd33c2651690a107c9fb45c15033648c2a7e0228aa00860b9b21b3b1e9a6 +DIST rust-src-1.87.0_beta20250430.tar.xz 3118724 BLAKE2B 2ae0e29368f8d54d6d63d885983bfe2471e237444e5caefb38b64e3ad47c00fa656f3740a1defbeaee042450234c9dc8bcf75fd9453547a2e9c6f17053f1ad5d SHA512 b3e6f2d3ce0c3c3705a8fbf0a41869d1d33abb3125f9469a374701a4b97f4b987b548d1beff578973e9cd228d1097a010dc2ca8ef6a2d5f2d7fce48ad4746189 EBUILD rust-bin-1.71.1-r102.ebuild 7370 BLAKE2B 5a0c5f6681061f891c7c0c96da9844a37ce1d9ee25e241b1e81550a4e0660f824d6bbd7828e9905b5314888fb519f7aea9d8d56d0f9208079d177560977403c4 SHA512 5851f7ebcd6ae3da5fc511190e6f79b9bd57e84194b0e17d5305b08e73fcc560302e982d95d053c4c96fa8bb7004697c6630c51f21613ddb1320bf2936f6cdcc EBUILD rust-bin-1.74.1-r102.ebuild 7269 BLAKE2B 3a9cb52a2d71e828a7b63c9f8b391554f4e2ab2ebee0d54c8970c3ffffbaf717f24a11285637d579293a41f725af667080f0d2b1f01c9ac326ed1561b5750aaf SHA512 df0dd36ef335dc9f8d1b80c0c4fb83f1686bb44ec5cd4c1e093c2b22efab073a6512176c5e2290bb849aa8d5a48ce52dca11639e523d29abb9a5d099b2490c37 EBUILD rust-bin-1.75.0-r102.ebuild 7269 BLAKE2B 0613e52f80808ab78751e67836b9683cb391516f803ba029a74b0f73041dd1216759d1d9b7ba0ecbdbd013f680ec9f1576b642986255c6f27a1a0415e2534715 SHA512 67d96345d9d172802601fcfc64c8c54a4ea3a09721887aa68c7288343769884a88b073b2559955f35bffa3369c8f7c65af6e81a9ed7a75f796ab262221966cd5 @@ -615,5 +644,6 @@ EBUILD rust-bin-1.85.0-r1.ebuild 10656 BLAKE2B 633a942647b42dceae3603acde09e66f5 EBUILD rust-bin-1.85.1.ebuild 10650 BLAKE2B 0f53ca00336a78552c3d67816552aee454a0df9593be9064cc2941f207557a71a6dcddf979cb2eb2c38449cfd52448d9f83a5a249f4323b6b65d4aaca7e188a2 SHA512 db86093db76b0e52aeca6c302b75f23bfb04144262afbe23840919b71e63d1f903574dde2815c4c9d1f2646979ae64799baaed84136630be3fbd99814b86ee2d EBUILD rust-bin-1.86.0-r1.ebuild 10681 BLAKE2B 62afaeeabdfed425e7d07f3508852a21719bbf79b03b70e92bb8fe01b4cde3979e2e66817440ef19e96cb4ae497820bf63c6aa29603e7e0a411fbe02fb493e23 SHA512 c98f67ccabeffc4fb5905587bca22997f464642fa580b4d83f7a315ed27e1c1e26e17bff785c8d1c8f545be04e16fc91855288dc7bba2e621107a7972a171d18 EBUILD rust-bin-1.87.0_beta20250420.ebuild 10632 BLAKE2B 755fbd47c1fdf0fa57c9cb53790da15ab72ac175e8cabe010857571f855b1a20f68a079e21c65d6c87e1743faacb36706b94847e1a4855c315961a8c1e57f818 SHA512 ab46e7d53ff18b717524e29f70c34468e55bb82b69c1f4b9a130150f51061b99337976155140efe83f2360ec11d6c19e76c7498e71c157ef97451397c3db0387 +EBUILD rust-bin-1.87.0_beta20250430.ebuild 10632 BLAKE2B 755fbd47c1fdf0fa57c9cb53790da15ab72ac175e8cabe010857571f855b1a20f68a079e21c65d6c87e1743faacb36706b94847e1a4855c315961a8c1e57f818 SHA512 ab46e7d53ff18b717524e29f70c34468e55bb82b69c1f4b9a130150f51061b99337976155140efe83f2360ec11d6c19e76c7498e71c157ef97451397c3db0387 EBUILD rust-bin-9999.ebuild 10632 BLAKE2B 755fbd47c1fdf0fa57c9cb53790da15ab72ac175e8cabe010857571f855b1a20f68a079e21c65d6c87e1743faacb36706b94847e1a4855c315961a8c1e57f818 SHA512 ab46e7d53ff18b717524e29f70c34468e55bb82b69c1f4b9a130150f51061b99337976155140efe83f2360ec11d6c19e76c7498e71c157ef97451397c3db0387 MISC metadata.xml 993 BLAKE2B 18f15fbf6c033c38a6234388cd261163fd1940dcdd7164503381ba782107ae8820afd9072ddd395650953ce42cb4125432ce39639eea404ad5465bf4c82222eb SHA512 646af8a97d5f67b6c73f3431dc7db48dabd90c9495e3aed201615a709ad35ffe3581026357c5b69bddb8acc9e809637b78b8a7acfd6af59291056f71f060cf61 diff --git a/dev-lang/rust-bin/rust-bin-1.87.0_beta20250430.ebuild b/dev-lang/rust-bin/rust-bin-1.87.0_beta20250430.ebuild new file mode 100644 index 000000000000..e00494d54b3b --- /dev/null +++ b/dev-lang/rust-bin/rust-bin-1.87.0_beta20250430.ebuild @@ -0,0 +1,314 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 20 ) +LLVM_OPTIONAL="yes" + +inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature + +if [[ ${PV} == *9999* ]]; then + # We need to fetch a tarball in src_unpack + PROPERTIES+=" live" +elif [[ ${PV} == *beta* ]]; then + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep "xz_url.*rust-src" + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + RUST_TOOLCHAIN_BASEURL=https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/ + SRC_URI="$(rust_all_arch_uris rust-beta rust-${PV}) + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/rust-src-beta.tar.xz -> rust-src-${PV}.tar.xz ) + " +else + # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" + SRC_URI="$(rust_all_arch_uris "${PV}") + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-01-30/rust-src-${PV}.tar.xz ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then + # Keep this separate to allow easy commenting out if not yet built + SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-sparc64-unknown-linux-gnu.tar.xz ) " + SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) + )" + SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-riscv64gc-unknown-linux-musl.tar.xz ) + )" + SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64-unknown-linux-musl.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64le-unknown-linux-musl.tar.xz ) + ) )" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + || ( + llvm-runtimes/libgcc + sys-devel/gcc:* + ) + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" +[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +# stripping rust may break it (at least on x86_64) +# https://github.com/rust-lang/rust/issues/112286 +RESTRICT="strip" + +QA_PREBUILT=" + opt/rust-bin-${SLOT}/bin/.* + opt/rust-bin-${SLOT}/lib/.*.so* + opt/rust-bin-${SLOT}/libexec/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* + opt/rust-bin-${SLOT}/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="/usr/share/openpgp-keys/rust.asc" + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch + local rust_bin_url rustc_src_url + # Cut down on webrequests by fetching the nightly toml once + curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || + die "Failed to fetch nightly revision info" + rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + einfo "Using nightly Rust from: ${rust_bin_url}" + + if use rust-src; then + einfo "Using nightly Rust-src from: ${rustc_src_url}" + # We need to fetch the rust-src tarball + einfo "Fetching nightly rust-src tarball ..." + curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || + die "Failed to fetch nightly rust-src tarball." + # no verify-sig here, just unpack it + tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" + fi + + einfo "Fetching nightly Rust tarball ..." + curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball" + if use verify-sig; then + einfo "Fetching nightly signature ..." + curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature" + verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \ + "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc" + fi + tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball" + else + # 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 + + fi + case ${PV} in + *9999*) + mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die + ;; + *beta*) + mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die + ;; + *) + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die + ;; + esac +} + +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 +} + +rust_native_abi_install() { + pushd "${S}" >/dev/null || die + local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" + local std="$(grep 'std' ./components || die "std not found in components")" + local components=( "rustc" "cargo" "${std}" ) + use doc && components+=( "rust-docs" ) + use clippy && components+=( "clippy-preview" ) + use rustfmt && components+=( "rustfmt-preview" ) + use rust-analyzer && components+=( "rust-analyzer-preview" "${analysis}" ) + # Rust component 'rust-src' is extracted from separate archive + if use rust-src; then + einfo "Combining rust and rust-src installers" + case ${PV} in + *9999*) + mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die + ;; + *beta*) + mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die + ;; + *) + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + ;; + esac + echo rust-src >> ./components || die + components+=( "rust-src" ) + fi + edo ./install.sh \ + --components="$(IFS=,; echo "${components[*]}")" \ + --disable-verify \ + --prefix="${ED}/opt/rust-bin-${SLOT}" \ + --mandir="${ED}/opt/rust-bin-${SLOT}/man" \ + --disable-ldconfig + + docompress /opt/${P}/man/ + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${SLOT}/bin" + find "${ED}/opt/${SLOT}/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 rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + 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-${SLOT}" + ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die + dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" + $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /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-${PN}-${SLOT}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" + fi + if use rust-analyzer; then + echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi; then + rust_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 + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust-common/Manifest b/dev-lang/rust-common/Manifest index f09346dfeccf..68deb8351214 100644 --- a/dev-lang/rust-common/Manifest +++ b/dev-lang/rust-common/Manifest @@ -12,6 +12,8 @@ DIST rustc-1.86.0-src.tar.xz 275696736 BLAKE2B 9f33a710a3e567d92f56091920643f5ef DIST rustc-1.86.0-src.tar.xz.asc 801 BLAKE2B 3e10a3894c7eee68d37bc5707d797548119f830667e27e652a199d13633199713bd01bd0f41a5f2af3c682561903e36abe27b36ef78d9a1d65bdf485527d2c15 SHA512 0b74dab9ee56d0a08e26e9cd40f722e4d99de63ac678f969f0c54d50737074fb28e170db5a36ce2627ec332e5ce3bb8a92167aefbccff7c70e4cb057bc0a94ac DIST rustc-1.87.0_beta20250420-src.tar.xz 283544556 BLAKE2B 70a59c7d695e881a4e21d500f19b7d83e3a86bc8d5dfaaaa28a4cd4631b12937a2743119e3181e84af7b348386c672f4e62675da8cfb399095fcdda527b072e0 SHA512 37e62954c21b0d5c232dca1d0fe476b165eb63b7315c1fcaa18068707f4fd00e2def09968ee1d243f62cb3eae3fbb4381493b8505179342705998dce08e23afe DIST rustc-1.87.0_beta20250420-src.tar.xz.asc 801 BLAKE2B c0ed0686d3bc612e8b0edb96817928107905220328af81d2f9200552c3edb58d98ae8844f01b7dd20e59e6c0a173f6da11b2cd58d0c3b5d5f0bd8290528ea86c SHA512 e2e694feec13d8fb8d9b50442c0c2e3de5cef0a249730c945124880220e44d481b2109098c5a8479f765384a4298e293e63743c924e0866ed2e5aece3a35c98f +DIST rustc-1.87.0_beta20250430-src.tar.xz 283517896 BLAKE2B 5d86aa824662230a843576798a544ef5e3a49e0166b66c9ecc9926832e102562aac3493748085b7f38a71e5954206d27f7ab3e219a27d96b1c55a8ab8419851a SHA512 5c29e7513b70416f97ba7a5f9669600da9b695d8dc6df582aa6ffa017da5c38215d9a27584fa6f6b2309813127571eba49a3fef375a6598c607f007f41f6d3fe +DIST rustc-1.87.0_beta20250430-src.tar.xz.asc 801 BLAKE2B 4ecdc70a469bce016e7c92a77a8c088ed37375e994a820b24c67269358eed4bc465aa77c4974b1e72586b23737b1d25844394b5de36fd4427978eff20bd07102 SHA512 f8c10cf66e2fb791de7b994bba622d1f8e8df75e48fd8d30795edaa6316b935583b51e235520d2aa2578cfcea1dda17ff2256317c7f4bb1f6606f5afbd6a80d1 EBUILD rust-common-1.81.0.ebuild 1442 BLAKE2B 2fca9110584bab02d27116bb7384ef4cdc0cc42323b469473f76fa09bd15fd4dd24a4597769d453d12c8e06b4305614d50120099feaeb142c2aafe29dd610348 SHA512 b948bc84b48deb6249c61d977dde1489374f5e0df679540a254ce4211f148eb5fff00fa4970bc63a07d4d08328fa821cee1172c388ddd8b48c1c0117a1c0259d EBUILD rust-common-1.82.0.ebuild 1442 BLAKE2B 04d044c0a244ce4e62fd4a8ae096c29c1972677e61ea3c8dd267817deafcdfc305087dc17b021e82376f96888d2374a9de774dbeb6067ee335a2f41dc87918c3 SHA512 279e84b9fba7fcf68c7b8666882411dff77d056258f8e315c141b736a910377bec28020d11fe09ec42921ddeb746e34cf2b8ef3f0503d4578cd8faeb416f257e EBUILD rust-common-1.83.0.ebuild 1442 BLAKE2B 04d044c0a244ce4e62fd4a8ae096c29c1972677e61ea3c8dd267817deafcdfc305087dc17b021e82376f96888d2374a9de774dbeb6067ee335a2f41dc87918c3 SHA512 279e84b9fba7fcf68c7b8666882411dff77d056258f8e315c141b736a910377bec28020d11fe09ec42921ddeb746e34cf2b8ef3f0503d4578cd8faeb416f257e @@ -19,5 +21,6 @@ EBUILD rust-common-1.84.1.ebuild 1442 BLAKE2B 04d044c0a244ce4e62fd4a8ae096c29c19 EBUILD rust-common-1.85.1.ebuild 2237 BLAKE2B 4c6d6b9dcff2217a61b66203316f21703eca50870e2772b49365e9d683a6c747616e9f494254eeecb8970060ddfd1fc614271845f68812faff818c92e9f1b972 SHA512 99fa433f1cbee8f7577c255cc74fde5bf03d0d1abb6de0b190cd7abed7852a522f0fd0c57c7ef791936178dcc7f8095111c1e95b97ccba01c4fb7c15ae3d2309 EBUILD rust-common-1.86.0.ebuild 2248 BLAKE2B 7da41b3ba969dfea261774cfa77754aaa20a7e74d7e2d7b905f172e37ae70f7f05731d11d59b572eaddf44690ffb6f457f158fa1cfa57aaeebcaec3fce75f5ba SHA512 20086a6be7b0e3ac8b59a5710f4b0f429d854ddef5a000a87b11103befdabf2cb914d5cce281ced33e0eb484263c15ff31801f1f6b21aae93420f7587a97b7c8 EBUILD rust-common-1.87.0_beta20250420.ebuild 2248 BLAKE2B 7da41b3ba969dfea261774cfa77754aaa20a7e74d7e2d7b905f172e37ae70f7f05731d11d59b572eaddf44690ffb6f457f158fa1cfa57aaeebcaec3fce75f5ba SHA512 20086a6be7b0e3ac8b59a5710f4b0f429d854ddef5a000a87b11103befdabf2cb914d5cce281ced33e0eb484263c15ff31801f1f6b21aae93420f7587a97b7c8 +EBUILD rust-common-1.87.0_beta20250430.ebuild 2248 BLAKE2B 7da41b3ba969dfea261774cfa77754aaa20a7e74d7e2d7b905f172e37ae70f7f05731d11d59b572eaddf44690ffb6f457f158fa1cfa57aaeebcaec3fce75f5ba SHA512 20086a6be7b0e3ac8b59a5710f4b0f429d854ddef5a000a87b11103befdabf2cb914d5cce281ced33e0eb484263c15ff31801f1f6b21aae93420f7587a97b7c8 EBUILD rust-common-9999.ebuild 2243 BLAKE2B 554160cc1aab204f2102f1925cf5709e60f09dacb098f8f78e007b1b443fe26d6ef1714e6b9eeae33bfd50873f7f7dcb3435ad6431098479310da2752b39e6ff SHA512 8fd4d239e68e534c432e8f260d7e30a22a0a6206563c7baed353473564253197a1ce9b778da53b4c54be31913aebe0e66f770c2649b118ff5c8513c27e874b08 MISC metadata.xml 324 BLAKE2B 25e471eacc689a8af7e0251146bf712b020a10d55e3cb48285f174996ec66db8bbd146d4737db15ac3b2abf3e1f0415277b9bdca84d94f9b08a56e9242a4fcbf SHA512 723c102ec7017eeb72bfd6f37c16e2705e61bb626a93e5127eca2275a9367cefbccdd846fe8a699bc1192ae52cafe236f3fb6261fa6db361564b34880a9db2fb diff --git a/dev-lang/rust-common/rust-common-1.87.0_beta20250430.ebuild b/dev-lang/rust-common/rust-common-1.87.0_beta20250430.ebuild new file mode 100644 index 000000000000..26c4792d0fb5 --- /dev/null +++ b/dev-lang/rust-common/rust-common-1.87.0_beta20250430.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc +inherit shell-completion verify-sig + +DESCRIPTION="Common files shared between multiple slots of Rust" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + # In case cargo is not in sync we'll fetch it as a submodule + # Nightly users will probably already have the repo cloned and up-to-date anyway. + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( "-*" "src/tools/cargo" ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + MY_PV=beta + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" +else + MY_PV=${PV} + SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="0" + +# Legacy non-slotted versions bash completions will collide. +RDEPEND=" + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-rust )" + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + git-r3_src_unpack + else + if use verify-sig ; then + verify-sig_verify_detached "${DISTDIR}"/rustc-${PV}-src.tar.xz "${DISTDIR}"/rustc-${PV}-src.tar.xz.asc + fi + + # Avoid unpacking the whole tarball which would need check-reqs + tar -xf "${DISTDIR}"/rustc-${PV}-src.tar.xz \ + "rustc-${MY_PV}-src/src/tools/cargo/src/etc/"{_cargo,cargo.bashcomp.sh} || die + fi +} + +src_configure() { + : +} + +src_compile() { + : +} + +src_install() { + newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo + dozshcomp src/tools/cargo/src/etc/_cargo +} diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest index 88fced1e1f72..a892bdbcab03 100644 --- a/dev-lang/rust/Manifest +++ b/dev-lang/rust/Manifest @@ -53,6 +53,8 @@ DIST rustc-1.86.0-src.tar.xz 275696736 BLAKE2B 9f33a710a3e567d92f56091920643f5ef DIST rustc-1.86.0-src.tar.xz.asc 801 BLAKE2B 3e10a3894c7eee68d37bc5707d797548119f830667e27e652a199d13633199713bd01bd0f41a5f2af3c682561903e36abe27b36ef78d9a1d65bdf485527d2c15 SHA512 0b74dab9ee56d0a08e26e9cd40f722e4d99de63ac678f969f0c54d50737074fb28e170db5a36ce2627ec332e5ce3bb8a92167aefbccff7c70e4cb057bc0a94ac DIST rustc-1.87.0_beta20250420-src.tar.xz 283544556 BLAKE2B 70a59c7d695e881a4e21d500f19b7d83e3a86bc8d5dfaaaa28a4cd4631b12937a2743119e3181e84af7b348386c672f4e62675da8cfb399095fcdda527b072e0 SHA512 37e62954c21b0d5c232dca1d0fe476b165eb63b7315c1fcaa18068707f4fd00e2def09968ee1d243f62cb3eae3fbb4381493b8505179342705998dce08e23afe DIST rustc-1.87.0_beta20250420-src.tar.xz.asc 801 BLAKE2B c0ed0686d3bc612e8b0edb96817928107905220328af81d2f9200552c3edb58d98ae8844f01b7dd20e59e6c0a173f6da11b2cd58d0c3b5d5f0bd8290528ea86c SHA512 e2e694feec13d8fb8d9b50442c0c2e3de5cef0a249730c945124880220e44d481b2109098c5a8479f765384a4298e293e63743c924e0866ed2e5aece3a35c98f +DIST rustc-1.87.0_beta20250430-src.tar.xz 283517896 BLAKE2B 5d86aa824662230a843576798a544ef5e3a49e0166b66c9ecc9926832e102562aac3493748085b7f38a71e5954206d27f7ab3e219a27d96b1c55a8ab8419851a SHA512 5c29e7513b70416f97ba7a5f9669600da9b695d8dc6df582aa6ffa017da5c38215d9a27584fa6f6b2309813127571eba49a3fef375a6598c607f007f41f6d3fe +DIST rustc-1.87.0_beta20250430-src.tar.xz.asc 801 BLAKE2B 4ecdc70a469bce016e7c92a77a8c088ed37375e994a820b24c67269358eed4bc465aa77c4974b1e72586b23737b1d25844394b5de36fd4427978eff20bd07102 SHA512 f8c10cf66e2fb791de7b994bba622d1f8e8df75e48fd8d30795edaa6316b935583b51e235520d2aa2578cfcea1dda17ff2256317c7f4bb1f6606f5afbd6a80d1 EBUILD rust-1.71.1-r101.ebuild 22398 BLAKE2B 14f409fb8a8cd5bab98003e46778c6b08cebb1e52fd141ca55edab79e0d466dd680a7a09c6d607f87af1e7ffc995e3984b46f62a74164bdc3925dd5a4e866e47 SHA512 3c5a8471b73f392e4f3da8ad1ddc585a8e5fb0621fcb5cc6686ce228a88b0d01cc611f3836ec36173f28e6b5ff8e591b56254bb3a49ef9b874820c4f241b6cc6 EBUILD rust-1.74.1-r101.ebuild 37973 BLAKE2B 7049c2ac677e14a0339f1b50c6a7f0fbb35adbe4c5a3b1b34e25f661eb00736b4c2f1246d773655013b5c066d3e1da12039996ace243e6921b9052e52e6fc04a SHA512 90507c4d350cf4df93c2dc767d6e7b403f170caf8425ab98597b627aeb666d184d63cdc5840f91c9e92a3530e948a991a44411979fc89e7155d887e3831209b8 EBUILD rust-1.75.0-r101.ebuild 23867 BLAKE2B 9c332c3004cb2c105eee67adeee86f7a7aac65e971e8b09c783ef84923ec98ea30f5a799060df308b8c30f48a44853af17ededd87c0caeb174c759bcddd70242 SHA512 e056387e22d3865d692f753405d02ddae8c4c4581ba0315838bb47964de34c678490c5d13516aa8910174bbb507bacb5dfd500af50103f8fa0b3a37ea9b134eb @@ -71,5 +73,6 @@ EBUILD rust-1.85.0.ebuild 25624 BLAKE2B 6ec7628e4da4c9bad0190338245c98e53f840646 EBUILD rust-1.85.1.ebuild 25667 BLAKE2B 4a06b586ccd2a6d9a2e4c8d1bf3ace2373f39d7f3c6bc381c04fcff6a809ab5159432a4226d93e64d247b6fbbb2c3882b970198e80d8c39c09911100e8c64ded SHA512 351ef28f199e3ef31ff96478e71689288f4c98c01d3d2bbd5317272ac6874745a07543ead0ad3cf5de12c38621eacaa84dd240cce658696efdcdc53af0ceb7d6 EBUILD rust-1.86.0-r1.ebuild 25695 BLAKE2B e7884dd9f71ce0a77ee7c13fdafe0c79ab0bfcf97e120c50af1947af8e0b2b63bd58201490c717648a71af24abc5c5a031453e9e58fe4f5fe4ba8c10fc717341 SHA512 689b85254be73ff5e5e8053affc566162622947c207349b450712afaae79135357eed4e9fc7e56eb7a551081519c9c6a6116be15545522c9a84b432f2e18db89 EBUILD rust-1.87.0_beta20250420.ebuild 25674 BLAKE2B 9a60312195f6a9980a402d623608097aed7831bf815ba87e5e7336d827f65a599cb264e67529c6a120e5642afd01cea694fc5828b746a4409a386ca2da22273f SHA512 70096ee21f29098843be21973f9ba43abb5fb9fc0f29b20d319c1d27182a228d4a337e71a751ae8307171ed4ea61400f67a42703dd3290ea7af614dd1d2ad5f1 +EBUILD rust-1.87.0_beta20250430.ebuild 25674 BLAKE2B 9a60312195f6a9980a402d623608097aed7831bf815ba87e5e7336d827f65a599cb264e67529c6a120e5642afd01cea694fc5828b746a4409a386ca2da22273f SHA512 70096ee21f29098843be21973f9ba43abb5fb9fc0f29b20d319c1d27182a228d4a337e71a751ae8307171ed4ea61400f67a42703dd3290ea7af614dd1d2ad5f1 EBUILD rust-9999.ebuild 25697 BLAKE2B f691e19603d3f1fc8dd2da4856a1e7b000420abaf7771d3918860734c475e8bf5373129c53f9a755f6af8670d890213573248ba659797fd9c924a499e5f4774b SHA512 6143ea34272b7c4148b0a3f121c98de71d9f9afd42f6237b5d35e98d6b63db55b7f75caa5e6ccd84143c4b17972047d34fb019f0b269f464df3ccd5bbe82b662 MISC metadata.xml 1711 BLAKE2B 7161a839de6aaf58d986871a13efbe11627347646583c26da0e4b622cd8bfb4ad9d28f23caf7f4522dfaa02b213a9943771b335736c28991f568d5971481226d SHA512 cbe82531c2ea8ae1745f7f0831ed6ac1e59685581321278cfd9c3c848fd8c8a5866268a6c842dfb98b74e8f4c5e878353053d33c3565928b941cdd9d616dceaa diff --git a/dev-lang/rust/rust-1.87.0_beta20250430.ebuild b/dev-lang/rust/rust-1.87.0_beta20250430.ebuild new file mode 100644 index 000000000000..acfa779e1a77 --- /dev/null +++ b/dev-lang/rust/rust-1.87.0_beta20250430.ebuild @@ -0,0 +1,813 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 20 ) +PYTHON_COMPAT=( python3_{10..13} ) + +RUST_MAX_VER=${PV%%_*} +if [[ ${PV} == *9999* ]]; then + RUST_MIN_VER="1.85.0" # Update this as new `beta` releases come out. +elif [[ ${PV} == *beta* ]]; then + # Enforce that `beta` is built from `stable`. + # While uncommon it is possible for feature changes within `beta` to result + # in an older snapshot being unable to build a newer one without modifying the sources. + # 'stable' releases should always be able to build a beta snapshot so just use those. + RUST_MAX_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).1" + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +else + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +fi + +inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( + "*" + "-src/gcc" + ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" +else + MY_P="rustc-${PV}" + SRC_URI="https://static.rust-lang.org/dist/${MY_P}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Systems programming language originally developed by Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +# keep in sync with llvm ebuild of the same version as bundled one. +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai + LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE + WebAssembly X86 XCore Xtensa ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} + +# https://github.com/rust-lang/llvm-project/blob/rustc-1.84.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable + +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto rustfmt rust-analyzer rust-src +system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" + +if [[ ${PV} = *9999* ]]; then + # These USE flags require nightly rust + IUSE+=" miri" +fi + +LLVM_DEPEND=() +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +for _x in "${ALL_LLVM_TARGETS[@]}"; do + LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi +done +LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) +LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) + +BDEPEND="${PYTHON_DEPS} + app-eselect/eselect-rust + || ( + >=sys-devel/gcc-4.7[cxx] + >=llvm-core/clang-3.5 + ) + lto? ( system-llvm? ( + || ( + $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') + sys-devel/mold + ) + ) ) + !system-llvm? ( + >=dev-build/cmake-3.13.4 + app-alternatives/ninja + ) + test? ( dev-debug/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= + system-llvm? ( + ${LLVM_DEPEND[*]} + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + ) + !system-llvm? ( + !llvm-libunwind? ( + elibc_musl? ( sys-libs/libunwind:= ) + ) + ) +" + +RDEPEND="${DEPEND} + app-eselect/eselect-rust + dev-lang/rust-common + sys-apps/lsb-release + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" + +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) + rust-analyzer? ( 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}/${SLOT}/bin/.* + usr/lib/${PN}/${SLOT}/libexec/.* + usr/lib/${PN}/${SLOT}/lib/lib.*.so + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_SONAME=" + usr/lib/${PN}/${SLOT}/lib/lib.*.so.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_PRESTRIPPED=" + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o +" + +# 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}/${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +# causes double bootstrap +RESTRICT="test" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc + +PATCHES=( + "${FILESDIR}"/1.85.0-cross-compile-libz.patch + "${FILESDIR}"/1.85.0-musl-dynamic-linking.patch + "${FILESDIR}"/1.67.0-doc-wasm.patch +) + +clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die +} + +toml_usex() { + usex "${1}" true false +} + +src_unpack() { + if [[ ${PV} = *9999* ]]; then + git-r3_src_unpack + mkdir "${S}/.cargo" || die # The vendor script has a check for .cargo/config{,.toml} + touch "${S}/.cargo/config.toml" || die + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + local rust_build="" + local rust_host="" + # Configure vendor to use the portage-provided toolchain. This prevents it from + # attempting to fetch a `beta` toolchain from the internet. + cat <<- _EOF_ > "${T}/vendor-config.toml" + [build] + build = "$(rust_abi "${CBUILD}")" + host = ["$(rust_abi "${CHOST}")"] + target = ["$(rust_abi "${CHOST}")"] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + _EOF_ + # We're using git sources so we need to run the Vendor script + # to ensure that all dependencies are present and up-to-date + mkdir "${S}/vendor" || die + # This also compiles the 'build helper', there's no way to avoid this. + ${EPYTHON} "${S}"/x.py vendor -vvv --config="${T}"/vendor-config.toml -j$(makeopts_jobs) || + die "Failed to vendor dependencies" + # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around. + cat <<- _EOF_ > "${S}/.cargo/config.toml" + [source.crates-io] + replace-with = "vendored-sources" + + [source."git+https://github.com/rust-lang/team"] + git = "https://github.com/rust-lang/team" + replace-with = "vendored-sources" + + [source.vendored-sources] + directory = "vendor" + _EOF_ + else + verify-sig_src_unpack + fi +} + +pre_build_checks() { + local M=9216 + # 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} )) + if [[ ${PV} == *9999* ]]; then + M=$(( $(usex miri 128 0) + ${M} )) + fi + 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 doc 256 0) + ${M} )) + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} +} + +llvm_check_deps() { + has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include <ciso646> +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + [[ ${out} == *HAVE_LIBCXX* ]] +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + python-any-r1_pkg_setup + + export LIBGIT2_NO_PKG_CONFIG=1 #749381 + if tc-is-cross-compiler; then + use system-llvm && die "USE=system-llvm not allowed when cross-compiling" + local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" + use "llvm_targets_${cross_llvm_target}" || \ + die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" + fi + + rust_pkg_setup + + if use system-llvm; then + llvm-r1_pkg_setup + + local llvm_config="$(get_llvm_prefix)/bin/llvm-config" + export LLVM_LINK_SHARED=1 + export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" + fi +} + +src_prepare() { + if [[ ${PV} = *9999* ]]; then + # We need to update / generate lockfiles for the workspace + ${CARGO} generate-lockfile --offline + + fi + # Rust baselines to Pentium4 on x86, this patch lowers the baseline to i586 when sse2 is not set. + if use x86; then + if ! use cpu_flags_x86_sse2; then + eapply "${FILESDIR}/1.82.0-i586-baseline.patch" + #grep -rl cmd.args.push\(\"-march=i686\" . | xargs sed -i 's/march=i686/-march=i586/g' || die + fi + fi + + if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then + export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld" + fi + + default +} + +src_configure() { + if tc-is-cross-compiler; then + export PKG_CONFIG_ALLOW_CROSS=1 + export PKG_CONFIG_PATH="${ESYSROOT}/usr/$(get_libdir)/pkgconfig" + export OPENSSL_INCLUDE_DIR="${ESYSROOT}/usr/include" + export OPENSSL_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)" + fi + + filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 + + local rust_target="" rust_targets="" arch_cflags + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use wasm; then + 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/base/wasm.rs || die + fi + fi + rust_targets="${rust_targets#,}" + + # cargo and rustdoc are mandatory and should always be included + local tools='"cargo","rustdoc"' + use clippy && tools+=',"clippy"' + use rustfmt && tools+=',"rustfmt"' + use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' + use rust-src && tools+=',"src"' + + if [[ ${PV} == *9999* ]]; then + use miri && tools+=',"miri"' + fi + + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + # 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)" + rust_build="$(rust_abi "${CBUILD}")" + rust_host="$(rust_abi "${CHOST}")" + + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) + fi + done + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} + + local cm_btype="$(usex debug DEBUG RELEASE)" + local build_channel + local build_miri="false" + case "${PV}" in + *9999*) + build_channel="nightly" + ;; + *beta*) + build_channel="beta" + ;; + *) + build_channel="stable" + ;; + esac + cat <<- _EOF_ > "${S}"/config.toml + # https://github.com/rust-lang/rust/issues/135358 (bug #947897) + profile = "dist" + [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 = "${RUST_EXPERIMENTAL_TARGETS// /;}" + link-shared = $(toml_usex system-llvm) + $(if is_libcxx_linked; then + # https://bugs.gentoo.org/732632 + 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) + enable-warnings = false + [llvm.build-config] + CMAKE_VERBOSE_MAKEFILE = "ON" + $(if ! tc-is-cross-compiler; then + # When cross-compiling, LLVM is compiled twice, once for host and + # once for target. Unfortunately, this build configuration applies + # to both, which means any flags applicable to one target but not + # the other will break. Conditionally disable respecting user + # flags when cross-compiling. + echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\"" + echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\"" + echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\"" + fi) + [build] + build-stage = 2 + test-stage = 2 + build = "${rust_build}" + host = ["${rust_host}"] + 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 = true + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}" + 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 + $(if ! tc-is-cross-compiler; then + echo "default-linker = \"${CHOST}-cc\"" + fi) + channel = "${build_channel}" + description = "gentoo" + rpath = true + 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)) + $(if use lto && tc-is-clang && ! tc-ld-is-mold; then + echo "use-lld = true" + fi) + # 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 + # See https://github.com/rust-lang/rust/issues/121124 + lto = "$(usex lto thin off)" + [dist] + src-tarball = false + compression-formats = ["xz"] + compression-profile = "balanced" + _EOF_ + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + export CFLAGS_${rust_target//-/_}="${arch_cflags}" + + cat <<- _EOF_ >> "${S}"/config.toml + [target.${rust_target}] + ar = "$(tc-getAR)" + cc = "$(tc-getCC)" + cxx = "$(tc-getCXX)" + linker = "$(tc-getCC)" + ranlib = "$(tc-getRANLIB)" + llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; + # but we patch it and set to false here as well + if use elibc_musl; then + cat <<- _EOF_ >> "${S}"/config.toml + crt-static = false + musl-root = "$($(tc-getCC) -print-sysroot)/usr" + _EOF_ + fi + done + if use wasm; then + wasm_target="wasm32-unknown-unknown" + export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")" + 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)/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}\"" + echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\"" + env | grep "CARGO_TARGET_.*_RUSTFLAGS=" + env | grep "CFLAGS_.*" + echo + einfo "config.toml contents:" + cat "${S}"/config.toml || die + echo +} + +src_compile() { + RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --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 ! 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() { + DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + + docompress /usr/lib/${PN}/${SLOT}/share/man/ + + # bug #689562, #689160 + rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${SLOT}"/etc{/bash_completion.d,} || die + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + if [[ ${PV} = *9999* ]]; then + use miri && symlinks+=( miri cargo-miri ) + fi + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + 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}/${SLOT}/bin/${i}" ]]; then + einfo "Installing ${i} symlink" + ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die + else + ewarn "${i} symlink requested, but source file not found" + ewarn "please report this" + fi + dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}" + use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}" + dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}" + dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}" + dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${P}" + + newenvd - "50${P}" <<-_EOF_ + MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}" + _EOF_ + + rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /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 [[ ${SLOT} == *9999* ]] && use miri; then + echo /usr/bin/miri >> "${T}/provider-${P}" + echo /usr/bin/cargo-miri >> "${T}/provider-${P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" + fi + if use rust-analyzer; then + echo /usr/lib/rust/libexec >> "${T}/provider-${P}" + echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + + if use dist; then + "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + insinto "/usr/lib/${PN}/${SLOT}/dist" + doins -r "${S}/build/dist/." + fi +} + +pkg_postinst() { + + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} |