summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-lang/rust-bin/Manifest29
-rw-r--r--dev-lang/rust-bin/rust-bin-1.91.0_beta20250928.ebuild320
-rw-r--r--dev-lang/rust-common/Manifest2
-rw-r--r--dev-lang/rust-common/rust-common-1.91.0_beta20250928.ebuild73
-rw-r--r--dev-lang/rust/Manifest3
-rw-r--r--dev-lang/rust/rust-1.91.0_beta20250928.ebuild837
-rw-r--r--dev-lang/rust/rust-9999.ebuild4
-rw-r--r--eclass/rust.eclass3
-rw-r--r--sys-devel/rust-std/Manifest2
-rw-r--r--sys-devel/rust-std/rust-std-1.91.0_beta20250928.ebuild182
10 files changed, 1452 insertions, 3 deletions
diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest
index f49bc8c9a821..0157bc3a9b81 100644
--- a/dev-lang/rust-bin/Manifest
+++ b/dev-lang/rust-bin/Manifest
@@ -657,6 +657,34 @@ DIST rust-1.90.0-x86_64-unknown-linux-gnu.tar.xz 202999512 BLAKE2B 2aeaca36f5211
DIST rust-1.90.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c4dcbac0cf9f470eba5a4cc21d32a4ae8814d2e259138935c3abc783ba13a4017ef6eb9902bc5609e0a9bceb0ee880927de17c7e22ff870a79e9844482e3e4ea SHA512 4b030294eb39d7a89756988edc24e8777e10227e41159bb835a16fca9253b60fea20b29bd2c2fa6bd8f3e77164de6aacd589162cb4a240a64cfb38f39c644036
DIST rust-1.90.0-x86_64-unknown-linux-musl.tar.xz 294424352 BLAKE2B e07514b7542b5a2ec20ae08c2e6e55ea1570bcc827b2851c86a3582bd73f69c0b70b18053030033f74a6d3c472fc4cae431a7404b594a7b12a17c01afe8b96a7 SHA512 fffdfd588b20aa518f361f6e4f6c32844d377356d520f8bd1b9f8a7e062be5c2db5e736a2b93619b2d0f182f49eeeaa22075e4692c7683c0ecb4a231522d4cbd
DIST rust-1.90.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 85238bc602c31a435de5f336a0646589259973fbe6c2d737fd6423b4e5721b2448222b6be5f2bb4fe309a60162a8ed66dbdad6dbd338dbddcab12586461965da SHA512 729042345408572f3134702150984182716728cb42df76d8b1f1dc986b579b3bf911a3c64230a61638d3b8d064e28cce3aa0afcbbcd719b49e02b4f3009721b0
+DIST rust-1.91.0_beta20250928-aarch64-unknown-linux-gnu.tar.xz 172095376 BLAKE2B 9d328275e10cfadbacc495682b09339307693574af9bbfc2b206c55847b0ea9e1843118cae255caafc05d87d49b167f9c1483481b96a169b860ac08fe1debbae SHA512 1fd287fb305309def4e5df8a4e009f6d50cb423d47f4bb51c5ba63dfd91c9d235d4bade9b50a7a775b81c922fad092cdca62e342b9f2a97b8161b078dff1a83c
+DIST rust-1.91.0_beta20250928-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5c647795becfce97eb628fa5f03d6ed7919c97bd4605043d192b46e32c8c33255db68433a2615d17e5f26205d0e5c986cd95b34cdd83826bf6916b64c4b8b1c1 SHA512 9aa0f5fe204801b1ee413209068d9702196ae119e1d8bfb57a3d5b458cba8be371e370a9e57a254d23cc4ef61d89db7fd5ff1721e69d31d06ddc4faf76d72326
+DIST rust-1.91.0_beta20250928-aarch64-unknown-linux-musl.tar.xz 253053588 BLAKE2B 08fa0f52fbbbdf8a658e5f86062c3590977424af505f0edd32cc1477b6acfad5aea516b434a7f0af240591575f9ea58908f331c9e80fc53eab9fc92566c944da SHA512 2e1dd7cd752caea77d65ea2a2532365d06b4f3dde4fb667ca99e95f65cd9a9dbb01334cb68b538f702c3fc275fe97ccbe6f0e8fe7d6b3b2595a2fe325e49ac19
+DIST rust-1.91.0_beta20250928-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 18b462a6b075c0dcd2b675554f677319c70e1467222cc336bf2b6e1c8d58269407943e20f7f28b9365b0d8f0a491f9938dea636af580aa63a85cf8b1a8d7ce5d SHA512 707dadd60adb97a95e944a4b645380750e63957892f310eb0037edd3e99f3c4359c5f0353b9da0cc807384fc2addb83a9cceffe859d9469ace964e0e465ef0bb
+DIST rust-1.91.0_beta20250928-arm-unknown-linux-gnueabi.tar.xz 236628464 BLAKE2B fc6ee14abf174c02bb23f954fe7486e9834bf3a9ddf043c044d9f4f7e9d26c171b906ab901be4b773e0e751294e6123cc563f03f1519fe4e7a3c6b6d339cb89b SHA512 31f5c8c2e7b82538d17f3d0db4d32ee46321d4ef5044146846740039d3bdfc8c72c5b4ae5df43daeb0fb89c7dc6317e9053fd83eacb4fb47600204a8a5c7d3fc
+DIST rust-1.91.0_beta20250928-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 94ab04b4da8615663658341183496321f9417b75fb3968a025a0add46ce15739821ebe41313d803622656bd9ce47012e11c18a1ac0aa6e50495a76f39d48a600 SHA512 ab5e7cf268f4df4ab77afbbc5624fd261bc5775a97d667fc93b7d3fdd976a43bc6d3d70653aae01ec44b2abcbcd14dc689cd99894f203696e1047bf1195b86aa
+DIST rust-1.91.0_beta20250928-arm-unknown-linux-gnueabihf.tar.xz 237170812 BLAKE2B d239947b16bf9330c3fec200db9dda8ae030842256bcb3d3ef95814c0786495e679cfc3a9eeda0a8d7be63fd3b38508773b42b8c35862e8738e01bdaff8c9815 SHA512 d77f57fc1e473977b5688c4a32ea8990a85d91a3ae06e98abed2cd940d974fc2b564e971f9e3c0e57ef97c4b8d25ceef560968a36f8b3d8759baa8b4fc038b30
+DIST rust-1.91.0_beta20250928-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 7cad77cd70c514cc7c128eb0780be1cd16311fe3215c14850c679d9aa3fbbea067f6acf9eed4ff53822386c0e2876009de4805aa7a9e89afc43434e7b15970b3 SHA512 e54e2dd1a34091d8da89c38e254f0e7eb0ab6c22c1530637fe41c033a76e2dae52f3b1b82d373c467812c79dea63331f6175009025d1d78b57a9ab9dffdb1992
+DIST rust-1.91.0_beta20250928-armv7-unknown-linux-gnueabihf.tar.xz 244114520 BLAKE2B 4f04f4018d00fa9dddd4e903ef1fc5c2a93696bbcefc79e441e2a0839123424394b63c460d1a81e00194b451fde20f03753f0885af597e09674f02ffdc28d777 SHA512 5f72078cd7dcad95f0d1d5493217e094c7199a440a7cf1fd982be3b57b8a94f5d7b69caa32f00c4c5160f358843fd8e0cd2df774c5aa958dcff61b5e61f78cfe
+DIST rust-1.91.0_beta20250928-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B b856d0298b55498e1dd9122c690437cd5f2d6e618ebc96f7ee6ffa015e038bca54ee34165744f8f4b7c0aaf87db95e0ff1750796e53f072276eb69ca0f371229 SHA512 6091c3cfd481e34f1abc334c26c3fc7e6976a58749fc4218111ba4ec9b4dfd262fec1ccfd8edc294b9b9f5c485015d16f5c827525dedbff6e362a59c92ecad0e
+DIST rust-1.91.0_beta20250928-i686-unknown-linux-gnu.tar.xz 273860868 BLAKE2B 5be2d6233503271a032f2d7a2eb6dd8906317e18dea0b47a88caf08efdc0d1410cc728be5fd5b71fbc9d7498e7a765fd23d4f16f3b9f573bce820d60d610c2bc SHA512 f609dd8d425a4bd52d3b3251b26e298df7c2ef70237d13e64dcb8a76d8e58f3bc95722325b8a9673346a233369cb0342acc7070251d431f79850f33ab9b2db42
+DIST rust-1.91.0_beta20250928-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b4acda03e93a3e712fa57e7ab20fcc56f38cbf7e5eaf4da5e18091f7ab02a32cec8d03d30d002ad7bd12b03dde12c8368739891dd559be40fa0bf87f0045d492 SHA512 06cd861bbd1603cec784af313e2da2571b9918f8f234aeee8aa9a6e2276acb6c35fa15d8db0941fc501f799869dab49014ddc9b7a9c591b445001f160649ad3b
+DIST rust-1.91.0_beta20250928-loongarch64-unknown-linux-gnu.tar.xz 270049484 BLAKE2B 9499b1df9c2b7242a993a8d9090cb62304db0c34c5800e1deb3543dd5866821e58644e4ba074bfaea79c7dc06fcb08acf2858c47af61ec8d0b7bdea165a14e53 SHA512 fd785b373e4fdc8b43b47a0811fce7a84fc234f6669170bdcd2bc53f4dbfefbed532fb3af9681437698a5095bcb4207460610751f0c8d547e866ba1835a72d9b
+DIST rust-1.91.0_beta20250928-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 81608c9851e03a5018cfff678f68f139500728b3763443c26964e6d4c344d1be5c310991e2a432b9f3864370872f0b9c62ba37f2c37a12dbe11feb4dd2643012 SHA512 8604dd3a3a85f94a2529d54715b8b263a6abbc19b7a6f58090b02712fe79a5e409ae4f972acfbe70fd573e39da3fece160188a90efb9c60c14c144d6e2ad9017
+DIST rust-1.91.0_beta20250928-powerpc-unknown-linux-gnu.tar.xz 262935108 BLAKE2B e8de89b16da5b9aa52a22cb77d3785e9ebccaf521ac443b9ed9a2985dfc362505ed29117eff5a9a74571a2e8a9332900fd930183dda94a721068cf28a81e7d97 SHA512 805f8311a4acfbaac019a4e1fd59545e0c30c76a26049332ab77e4af10f363b0af8e92fbf0ec7bda325f93bdabe3291d54a9ec448454d67bac85ad4557a11f71
+DIST rust-1.91.0_beta20250928-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6b399ba4e1013a8cafbf3dd91702ac33a8cc14ccc7a03cdab8e187f42646b4abf2fb88c5436619511bed12ef97a9584241e5f5d4425ddd74a7e0a00e8ea17507 SHA512 333edc84f2484b8185b126da68b4f883086e3842b56c9cc385ffa642e112262cb273d9c829c74a03f0649a41c806540971536cc92ce49fd5a3aedaf6ef2a268e
+DIST rust-1.91.0_beta20250928-powerpc64-unknown-linux-gnu.tar.xz 261871320 BLAKE2B 47cce41a6ba2a233ecf1abcdeda799507f8195b57cbc686cfb467539b62960d220135a36c5b185835515d3d64f332489b39f5c05c21c4265183dd8425026a3b7 SHA512 f7a03f9deea8996a25663073b6f7035d9c8ef60f7528c139994bc14a1055d4fbf8d2a900d80bfdea7e1be0bd281e39fca4a863fc45f27ed23918247f79d6d45a
+DIST rust-1.91.0_beta20250928-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 10d1e3e88dfce122284992ba2d94f8dedd0e5b1979b0ec8ec90d09a615dcb2a05287e4069f8c13801c490ebc26de4f25d74cc63d91911ac6fd0b055952e3ef71 SHA512 e8eec3b36b6b1bec852786f5a4d7976461b81b093c63248dc4faa994e5c263f007cbabda59a898b9d097bd756856434f4e6afe0a94cf56281f4963f4ab781b57
+DIST rust-1.91.0_beta20250928-powerpc64le-unknown-linux-gnu.tar.xz 283662436 BLAKE2B 4990cc15f7085b1aa326004b2bb0e81c7501dfe99cc2816a1b1f051ac682dd3ae27c72f55da06062ec55a87a1cd13dac65dd27b438443fa22895359705d35e04 SHA512 4658cadfcc990088b0c42f85d9fe4051c7581c03b72e5d849558d74e1ae746e101e6243737f4b9686b3b501adf05da199b798323f163e9a6c3cb8b3f631706e3
+DIST rust-1.91.0_beta20250928-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e694b6bbea80e15f5989ac6f6e85699d2b6f285bc7c60d2172e8c554c9d414f1871c9d0446d4063e34a0e0d4f376dc5a74c373520cc3ecb847acdd1aad2c992d SHA512 853030df7476125cf4b33129266018a2a4006dc31cc5707805a569b019381c7bd735f83a3478b259181cc5d5da1568e95c836f4f2df715b2bf669116d700e536
+DIST rust-1.91.0_beta20250928-riscv64gc-unknown-linux-gnu.tar.xz 259277484 BLAKE2B 302863ba3bc95950b117c747a74cabc5791cbdeffdb23b8703c1e5a4cf68d0d5cc22212d7669c8af0b8459272f4105004b7b1cb785ff37557d856a6e2c17b763 SHA512 aa510f0494b0d9512493ceab1c1552ae2e2cbecf6155c2ebe0c6ab20fd7b8581b720d4a6c720431ac2a3ff0493d83fb55f1cb46b3256c112ced9b6ba5f31ac1b
+DIST rust-1.91.0_beta20250928-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b74230bc6956193e3b7016a1dd74c7263b1e3d271bdd6180ca87e5bb27ef1aa12149cff9666acd974f325cf630fb6b9a4faf4714e8424c6286e4987e508d4d01 SHA512 eafec3f4ddec5cb489a76a9c02ea2579885748e28807c5faddcd43411aef86475a3b53f998e64e2232800b25e004d27868de23c802499f7a0b50895f6c211486
+DIST rust-1.91.0_beta20250928-s390x-unknown-linux-gnu.tar.xz 247379756 BLAKE2B 4b62291f0645750b601c5b10f892d8c2ec30f223c9a9bbaf4f3d6498911da4c109e8020a9536c0a85b73afa80fe9eb40368d85ed453c3395fc64d0bafc1533c5 SHA512 078a94df9d2187af8635e73081387de551bcc2bad5d6b4449825b92b87a4a331822ee7029e5c27f7b5618fd839e920e6763c8bc267e49c7ff24bd73e1d5fe48d
+DIST rust-1.91.0_beta20250928-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5c282c7f79c5396ae9e419468fd88bf094246c69678f2a6c6a65ff9cb73cb4c21190ed794dfb3ea0482c7986d515ba9f5d417354d5803e9fba473ca5b7837933 SHA512 37644c5cf4aad7430d048f36a8cac0a042f461757c89d59cda5f80a3eb84ff84eeab5efcbf806ca715036403299416dbf95f774642ef57888e95159db73cfbfb
+DIST rust-1.91.0_beta20250928-x86_64-unknown-linux-gnu.tar.xz 207672796 BLAKE2B 3a1530ecb26dd8b278fdf3541ae43ceeda5ab8f64d2df5a057c4d487c1d9886bea1798db74d8da6a3d4b5908b593173ba0a7c80ab66b685c98da634f587e54da SHA512 0650169048f5e2ba845b5fde0a061244dcc78bd3f50688429c096bb13b746199baea6428335fb352f2eb94206cfe288b0f47864b35e8b173ac24d0815e3d8d7e
+DIST rust-1.91.0_beta20250928-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0cca15af7dd687338b4bf1c3466d3361516a9a3a75d0101a4b2668f3b9b3b7ab495138c6b93160f10f1362d4ef8392c05d0a32c793f817686abc6db9f3de07ed SHA512 7bfca67933a63fc2802c9b000a4d986d0b87d3f075fc5fa7ab71f3cc9994e0d8625c8d88c95c8a7ed328c4cdfb9fb959955d4988c097163e7abb336b4ce3d6c6
+DIST rust-1.91.0_beta20250928-x86_64-unknown-linux-musl.tar.xz 303415480 BLAKE2B a8bad917244cf6641d5ede5e41cefc262e7edb8cf6cb2498c63d2af1b93b08286c86cc0e39928c9061d6ae21e344d91a2f569f61a7464981929883f2ac21ee17 SHA512 676ad4f6ed23dc5152a0d19f522d36d65d70d6d43adf5ef6a622f77f69c2fd6074988a3b58405eafc06d6004eb56cf49638a23ac10db53adc18fd20ea3f3c3e0
+DIST rust-1.91.0_beta20250928-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B b54b7007ae859d6a096c9bb927d4cfef976874a426b74ece4f147a6914484fd21beb30cef71736ca38260d0d551cd00a45e936cce27fddf191b958770ac91f31 SHA512 3c796d3e4e0c13fafca3693e9a0c6ab3dc76fcb464b6157147ef5af05152c9d8620d89be5ca7a0a2815d74633fd40ff496ef602b4deb0d38d85bd07d8a497207
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
DIST rust-src-1.76.0.tar.xz 2590884 BLAKE2B d1a6215dab34d7b10c3177d2b248f997d3a846388f3442567572880aa5c5bc51b56398f5d4dc32727cee7c9dbef494430d6534a76b66c4ae5ac4fed07266644d SHA512 39d2fe58fae8c8c5a6cb3fb1ef2a1c7548c018fef6ccea531659fdfecd68a4aa77125299d2cbe5b58e500337b4d074928318fa9ebce358af500d0ef27260e3ca
@@ -676,3 +704,4 @@ DIST rust-src-1.87.0.tar.xz 3119800 BLAKE2B 6429eb419f17109537a2a5463b0c68f504b3
DIST rust-src-1.88.0.tar.xz 3155272 BLAKE2B bca923d2264337366b8013c45f3a40cbdfc1e1b746775161eaa66a1db653aa4ccb2a55980368ecf9808d6f4885194e2dfbf1f678d0500a43f7b2fcc0f79d27c8 SHA512 6dfe1fc3565927a9ac2ff9821ef3222cca170ff538833e1969ebe662af2cad5257c1ab3d82f5ca10aeaab40f54916a25dd96fd16449cd59e4d104b631911931b
DIST rust-src-1.89.0.tar.xz 3461444 BLAKE2B b1e43def4cc0f47f0e776d383954b339a62b3efa77d5db71180b7b7620a67bd2d2714afe0b08ae26a06d7d8c785eed03f545d91813d074cbe6641e883a2d40dd SHA512 055c09854e47d1bdfc7f393ac6f2783d35cb8cf13100deb227598ad91020f1d91e4cec1658d8e71db3c266dc6e267ab4172dc1007428cb05105dc4aac57bf89d
DIST rust-src-1.90.0.tar.xz 309 BLAKE2B c8de4eee314538dbe6c5d5c2057efe9b3f11303f33efd113276675c261fc8e777f0b6ed169d1ba3a071bf0f9c811a1268cc91dedcf257cb9005ecc84448a1379 SHA512 2b053a8416ce4d0e69838023cb3293a18d77e1b8be30d77992baa46f9f0eb9abbfc2c1b44cea48cc6aeed2ebed4bd2f40b325abc8d82f8cad10ab33f08700189
+DIST rust-src-1.91.0_beta20250928.tar.xz 3509016 BLAKE2B 81417db8497947d67288b1980601127cc9f737b8159e7817626fca7cb7d07fd4287fee14f0b4043c596a67d1d63b1ab9e273b6e1976f27049c86612395ee9255 SHA512 3ddd9987fac3d465b843cc05385ad482e9c18ff2c15dc2dc864fbb4988c2775766db5bec6fc35ed750ce5389d77dd9a56eafbbcb0ecdee293f5defd7e7a5ce45
diff --git a/dev-lang/rust-bin/rust-bin-1.91.0_beta20250928.ebuild b/dev-lang/rust-bin/rust-bin-1.91.0_beta20250928.ebuild
new file mode 100644
index 000000000000..2e4fb28bc1bc
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.91.0_beta20250928.ebuild
@@ -0,0 +1,320 @@
+# 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 "rust-${PV}")
+ rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-09-18/rust-src-${PV}.tar.xz )
+ ppc64? ( elibc_musl? ( !big-endian? (
+ $(rust_arch_uri powerpc64le-unknown-linux-musl rust-${PV})
+ ) ) )
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~s390 ~x86" # ~ppc64 ~riscv ~sparc ~mips
+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 false; then #[[ ${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 )
+ ) )"
+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"
+
+# net-misc/curl is needed for our own bootstrapped rustc, since cross-compiling bundled curl is not supported
+RDEPEND="
+ >=app-eselect/eselect-rust-20190311
+ dev-libs/openssl
+ net-misc/curl
+ 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/${PN}-${SLOT}/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 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" )
+ if use rust-analyzer; then
+ local analysis="$(grep 'analysis' ./components || die "analysis not found in components")"
+ components+=( "rust-analyzer-preview" "${analysis}" )
+ fi
+ # 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/rust-bin-${SLOT}/bin"
+ find "${ED}/opt/rust-bin-${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 e48a78602706..c92a7caa4ec6 100644
--- a/dev-lang/rust-common/Manifest
+++ b/dev-lang/rust-common/Manifest
@@ -18,3 +18,5 @@ DIST rustc-1.89.0-src.tar.xz 267487572 BLAKE2B 9f6e3c595f843c239b57f14e26685e985
DIST rustc-1.89.0-src.tar.xz.asc 801 BLAKE2B cd94da916d3646048d8f90c6de658de2981d0c815a1f8da01fe58ab6ec133e47180c8b506a41e22c68b3cb77aff5bd3bfc966a71ae2b73849918096d68764386 SHA512 006b91bf41fbedf91c39b8a6e483b089f69af7e78026f2903928fed64e44ee6aa53e46fd19bae31b1576b53a80dab66bf3e53a3bf79f820066d36285d706b90c
DIST rustc-1.90.0-src.tar.xz 272348992 BLAKE2B 82dbbe3b5fe79f623c74fb81a4c4372b14e7d765f0e9af3d76a6c4bde9899007c85c8af70dfd9facc06c37a9c8d03a4597ec87b2d053585ccbc2287332b27e70 SHA512 fb0798b4c7450754db2fcbb641202909d209c6db2d9181d7df7282217b8320dc52f5e9853de9d7bdb79177f1f920389450cab07674dea5fb5501eaab5816662a
DIST rustc-1.90.0-src.tar.xz.asc 801 BLAKE2B 1e84c6134c4fedbbd52610c259c1bdacb45bc97e8cce7a6b5a8c92827a072c88fcf8984893a5e6aa28c2d5d82bd849bb9d38390c783cfaa503a18c99bcaabcde SHA512 fc8f6dfbb4b50777ae8e499883f95b64861db0ca37119b34b3670b4adf51dd248b0b33daafee90e0f22f66b1d8bd8ae6a6107106e95e73f5c2c5a8dc29532e2e
+DIST rustc-1.91.0_beta20250928-src.tar.xz 284030160 BLAKE2B f5df2137e3a08b51f034543d1bcd0793f7d29264e81926458f6071c6f2de4093170ec5d257e56a9940b10494642eab9e57bffd24d61e8682ff052bd62517543b SHA512 e2ea6676f01b35cbd632c7a36d53b8d6d1e02a74fa460243575036b99406781416629300fef58ae04dffa8ed40f5448ca167654fb14db6676d57fc6cc2b31481
+DIST rustc-1.91.0_beta20250928-src.tar.xz.asc 801 BLAKE2B 70c58b0eb97b735835c37060e2e1ed13ed3531355cf36006c33ba5dbed2f252bda6900e4846693146fd8a093dd3b523a653166588ed1335fb22736e2e5a46567 SHA512 07eed611a38290582329512667d88cfb22d30119d9947169337844534bdbe9113f048080fbfa4dce95e3132319053919c6b11254c6e259cdaed788fa5ac777df
diff --git a/dev-lang/rust-common/rust-common-1.91.0_beta20250928.ebuild b/dev-lang/rust-common/rust-common-1.91.0_beta20250928.ebuild
new file mode 100644
index 000000000000..26c4792d0fb5
--- /dev/null
+++ b/dev-lang/rust-common/rust-common-1.91.0_beta20250928.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 c60b316e8460..c6cd7343ff12 100644
--- a/dev-lang/rust/Manifest
+++ b/dev-lang/rust/Manifest
@@ -17,6 +17,7 @@ DIST rust-patches-1.87.0-r1-1.tar.bz2 5116 BLAKE2B 783ad21464a7e393d0aee506119be
DIST rust-patches-1.88.0.tar.bz2 4062 BLAKE2B 64168ffa608f2edf2e0b3d079152c3b5dd59d0cea29078894f286bf91488e2e7769c55ede2d43769368d2147b46699d1bf981190d6800dc3d41c736289122eaf SHA512 b565acfb4d1146e52b1fb66b4a242927407cc34f1b38c2a100135cbbde24c8374af1997bc22069cca25f33cc8d747e56391f3d98a2d4e13dc0abcec0d6f88b0b
DIST rust-patches-1.89.0.tar.bz2 4091 BLAKE2B 0fea3488a39d2b00627084f6b192dfbd7ed49bdceabbb1141d1a849ba053f786e31115e00365679b1b6fb5b0ccdf5dc0dc0803057cbffbcf0ae3d75ae9830d94 SHA512 de6c9b693bdd719d06605b5da730ee5d9cf9a1d88d58194a0ba48bd378a951c66723f561e39181222d28abb38e974a2921e14ea1f40156caf7b903778cf65790
DIST rust-patches-1.90.0.tar.bz2 4183 BLAKE2B e6cc7516bd386c020be208e9931221edb301a94b6b5cf8140d68ddd5e13b1ddaaa53b52b4b7b039faf2a7caf44107f170afb01e15ac7487c6fe5146feff3789b SHA512 0cbf6dd9fc8b68e265dd146423c82c72bccf1ef7f81c5bab87c5d53dda1ecce80ffad361f2c276ab713616847126c277af7b1e48327d433f6202361e25cf5201
+DIST rust-patches-1.91.0_beta20250928.tar.bz2 4214 BLAKE2B aad78f10a875ead5dc3570c7c276a219a8897cbc649cc593fc37d1a99cccdd6fdcba962887fca0417e40fdda6b1918ecec88795619b1df66e96926779e84b2c8 SHA512 366ad9eb680d122295e711a43049ea5fe7328d6f9f2a7d43eda92897deb35297305ef10a1f4a323d15548ce6264c1ac25d5021f5718cf73208ffec93126d02b3
DIST rustc-1.74.1-src.tar.xz 155968724 BLAKE2B e05f2379ac94b286f85791a138e1928e5b5b5a7749f0981d82c40c2a12860f55bf96bb2f0e924e35a0f8b2447b13052d38adea909aaa3199105787bb5a4861b3 SHA512 14c7e7ed2f38ab60299d8c7d41d78f042b6b57ef822d577b5138e60bdde31cf141eccd4332a25bc5da3d58eb5313d63c1448b5dfe9e11b8055bb8ea133a9038d
DIST rustc-1.74.1-src.tar.xz.asc 801 BLAKE2B ddf73175b164233babf31ca3a381b03e20c0f36d017c1d5f85d6ab11f0986d861ab23b11c061e6b2444ced70c3d6a494cc3de4ec86f0deb221a805491bd75420 SHA512 9a96ff9ba9a4e2af4e267b2ec126fc0675c78d0eb767703daa2f28491c3d85c2ab00fbd8584390bf658812ec6c4ab6c57e43b386db59fd505bd3134a8873a09e
DIST rustc-1.75.0-src.tar.xz 159624388 BLAKE2B 8937b80585eddaa3e1f1ef948899d14a170308518c6fef9fe569560cdd870053776956743f796055f2119399b9ca6c0df12fedd789ae46324d071e5126c4e495 SHA512 7b0f25d91b1b5c317980fc88e059200bd43b56a70b445fbc72fb9b96e09775bfd3a98e9bd9d662af80f0ce3aef527c777ee82777e96ca876f47a972d63da8606
@@ -55,3 +56,5 @@ DIST rustc-1.89.0-src.tar.xz 267487572 BLAKE2B 9f6e3c595f843c239b57f14e26685e985
DIST rustc-1.89.0-src.tar.xz.asc 801 BLAKE2B cd94da916d3646048d8f90c6de658de2981d0c815a1f8da01fe58ab6ec133e47180c8b506a41e22c68b3cb77aff5bd3bfc966a71ae2b73849918096d68764386 SHA512 006b91bf41fbedf91c39b8a6e483b089f69af7e78026f2903928fed64e44ee6aa53e46fd19bae31b1576b53a80dab66bf3e53a3bf79f820066d36285d706b90c
DIST rustc-1.90.0-src.tar.xz 272348992 BLAKE2B 82dbbe3b5fe79f623c74fb81a4c4372b14e7d765f0e9af3d76a6c4bde9899007c85c8af70dfd9facc06c37a9c8d03a4597ec87b2d053585ccbc2287332b27e70 SHA512 fb0798b4c7450754db2fcbb641202909d209c6db2d9181d7df7282217b8320dc52f5e9853de9d7bdb79177f1f920389450cab07674dea5fb5501eaab5816662a
DIST rustc-1.90.0-src.tar.xz.asc 801 BLAKE2B 1e84c6134c4fedbbd52610c259c1bdacb45bc97e8cce7a6b5a8c92827a072c88fcf8984893a5e6aa28c2d5d82bd849bb9d38390c783cfaa503a18c99bcaabcde SHA512 fc8f6dfbb4b50777ae8e499883f95b64861db0ca37119b34b3670b4adf51dd248b0b33daafee90e0f22f66b1d8bd8ae6a6107106e95e73f5c2c5a8dc29532e2e
+DIST rustc-1.91.0_beta20250928-src.tar.xz 284030160 BLAKE2B f5df2137e3a08b51f034543d1bcd0793f7d29264e81926458f6071c6f2de4093170ec5d257e56a9940b10494642eab9e57bffd24d61e8682ff052bd62517543b SHA512 e2ea6676f01b35cbd632c7a36d53b8d6d1e02a74fa460243575036b99406781416629300fef58ae04dffa8ed40f5448ca167654fb14db6676d57fc6cc2b31481
+DIST rustc-1.91.0_beta20250928-src.tar.xz.asc 801 BLAKE2B 70c58b0eb97b735835c37060e2e1ed13ed3531355cf36006c33ba5dbed2f252bda6900e4846693146fd8a093dd3b523a653166588ed1335fb22736e2e5a46567 SHA512 07eed611a38290582329512667d88cfb22d30119d9947169337844534bdbe9113f048080fbfa4dce95e3132319053919c6b11254c6e259cdaed788fa5ac777df
diff --git a/dev-lang/rust/rust-1.91.0_beta20250928.ebuild b/dev-lang/rust/rust-1.91.0_beta20250928.ebuild
new file mode 100644
index 000000000000..b84b675c5c36
--- /dev/null
+++ b/dev-lang/rust/rust-1.91.0_beta20250928.ebuild
@@ -0,0 +1,837 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 21 )
+PYTHON_COMPAT=( python3_{11..14} )
+
+RUST_PATCH_VER=${PVR}
+
+RUST_MAX_VER=${PV%%_*}
+if [[ ${PV} == *9999* ]]; then
+ RUST_MIN_VER="1.88.0" # Update this as new `beta` releases come out.
+elif [[ ${PV} == *beta* ]]; then
+ RUST_MAX_VER="$(ver_cut 1).$(ver_cut 2).0"
+ 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
+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
+ https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2
+ 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
+ https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2
+ 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}')" )
+
+# dev-libs/oniguruma is used for documentation
+BDEPEND="${PYTHON_DEPS}
+ app-eselect/eselect-rust
+ dev-libs/oniguruma
+ || (
+ >=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
+
+clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
+}
+
+toml_usex() {
+ usex "${1}" true false
+}
+
+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