commit:     3c033fa00935d37f7680f2febc1aa6953d1d8709
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Thu Oct  2 09:41:12 2025 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Thu Oct  2 09:48:50 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3c033fa0

dev-lang/rust: add 1.91.0

Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 dev-lang/rust-bin/Manifest                         |  29 ++
 .../rust-bin/rust-bin-1.91.0_beta20250928.ebuild   | 320 +++++++++++++++++++++
 dev-lang/rust-common/Manifest                      |   2 +
 .../rust-common-1.91.0_beta20250928.ebuild         |  73 +++++
 dev-lang/rust/Manifest                             |   3 +
 ...9999.ebuild => rust-1.91.0_beta20250928.ebuild} |   6 +-
 dev-lang/rust/rust-9999.ebuild                     |   4 +-
 eclass/rust.eclass                                 |   3 +-
 sys-devel/rust-std/Manifest                        |   2 +
 .../rust-std/rust-std-1.91.0_beta20250928.ebuild   | 182 ++++++++++++
 10 files changed, 618 insertions(+), 6 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-9999.ebuild 
b/dev-lang/rust/rust-1.91.0_beta20250928.ebuild
similarity index 99%
copy from dev-lang/rust/rust-9999.ebuild
copy to dev-lang/rust/rust-1.91.0_beta20250928.ebuild
index 3ef79e7077b5..b84b675c5c36 100644
--- a/dev-lang/rust/rust-9999.ebuild
+++ b/dev-lang/rust/rust-1.91.0_beta20250928.ebuild
@@ -3,14 +3,14 @@
 
 EAPI=8
 
-LLVM_COMPAT=( 20 )
+LLVM_COMPAT=( 21 )
 PYTHON_COMPAT=( python3_{11..14} )
 
 RUST_PATCH_VER=${PVR}
 
 RUST_MAX_VER=${PV%%_*}
 if [[ ${PV} == *9999* ]]; then
-       RUST_MIN_VER="1.89.0" # Update this as new `beta` releases come out.
+       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"
@@ -724,7 +724,7 @@ src_install() {
 
        # 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
+       rmdir -v "${ED}/usr/lib/${PN}/${SLOT}"/etc/bash_completion.d || die
 
        local symlinks=(
                cargo

diff --git a/dev-lang/rust/rust-9999.ebuild b/dev-lang/rust/rust-9999.ebuild
index 3ef79e7077b5..b1aa0b11704c 100644
--- a/dev-lang/rust/rust-9999.ebuild
+++ b/dev-lang/rust/rust-9999.ebuild
@@ -3,14 +3,14 @@
 
 EAPI=8
 
-LLVM_COMPAT=( 20 )
+LLVM_COMPAT=( 21 )
 PYTHON_COMPAT=( python3_{11..14} )
 
 RUST_PATCH_VER=${PVR}
 
 RUST_MAX_VER=${PV%%_*}
 if [[ ${PV} == *9999* ]]; then
-       RUST_MIN_VER="1.89.0" # Update this as new `beta` releases come out.
+       RUST_MIN_VER="1.91.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"

diff --git a/eclass/rust.eclass b/eclass/rust.eclass
index 52c0738b7fd8..309a3f4d5d19 100644
--- a/eclass/rust.eclass
+++ b/eclass/rust.eclass
@@ -67,7 +67,8 @@ fi
 # @DESCRIPTION:
 # Definitive list of Rust slots and the associated LLVM slot, newest first.
 declare -A -g -r _RUST_LLVM_MAP=(
-       ["9999"]=20
+       ["9999"]=21
+       ["1.91.0"]=21
        ["1.90.0"]=20
        ["1.89.0"]=20
        ["1.88.0"]=20

diff --git a/sys-devel/rust-std/Manifest b/sys-devel/rust-std/Manifest
index 63ee11b1ee0a..f291cb3cee28 100644
--- a/sys-devel/rust-std/Manifest
+++ b/sys-devel/rust-std/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/sys-devel/rust-std/rust-std-1.91.0_beta20250928.ebuild 
b/sys-devel/rust-std/rust-std-1.91.0_beta20250928.ebuild
new file mode 100644
index 000000000000..ac1ac73a0723
--- /dev/null
+++ b/sys-devel/rust-std/rust-std-1.91.0_beta20250928.ebuild
@@ -0,0 +1,182 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit edo flag-o-matic multiprocessing python-any-r1 rust-toolchain 
toolchain-funcs verify-sig
+
+DESCRIPTION="Rust standard library, standalone (for crossdev)"
+HOMEPAGE="https://www.rust-lang.org";
+
+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"
+fi
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4"
+SLOT="stable/$(ver_cut 1-2)"
+# please do not keyword
+#KEYWORDS="" #nowarn
+IUSE="debug"
+
+BDEPEND="
+       ${PYTHON_DEPS}
+       ~dev-lang/rust-${PV}:=
+       verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+DEPEND="||
+       (
+               >="${CATEGORY}"/gcc-4.7:*
+               >="${CATEGORY/sys-devel/llvm-core}"/clang-3.5:*
+       )
+"
+RDEPEND="${DEPEND}"
+
+# need full compiler to run tests
+RESTRICT="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
+
+QA_FLAGS_IGNORED="usr/lib/rust/${PV}/rustlib/.*/lib/lib.*.so"
+
+PATCHES=(
+       "${FILESDIR}"/1.89.0-enable-stage-0-build.patch  # remove for >=1.91.0
+)
+#
+# The cross magic
+#
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+       if [[ ${CATEGORY} == cross-* ]] ; then
+               export CTARGET=${CATEGORY#cross-}
+       fi
+fi
+
+is_cross() {
+       [[ ${CHOST} != ${CTARGET} ]]
+}
+
+toml_usex() {
+       usex "$1" true false
+}
+
+pkg_pretend() {
+       is_cross || die "${PN} should only be used for cross"
+}
+
+pkg_setup() {
+       python-any-r1_pkg_setup
+}
+
+src_prepare() {
+       default
+}
+
+src_configure() {
+       # do the great cleanup
+       strip-flags
+       filter-flags '-mcpu=*' '-march=*' '-mtune=*' '-m32' '-m64'
+       strip-unsupported-flags
+
+       local rust_root x
+       rust_root="$(rustc --print sysroot)"
+       rtarget="$(rust_abi ${CTARGET})"
+       rtarget="${ERUST_STD_RTARGET:-${rtarget}}" # some targets need to be 
custom.
+       rbuild="$(rust_abi ${CBUILD})"
+       rhost="$(rust_abi ${CHOST})"
+
+       echo
+       for x in CATEGORY rust_root rbuild rhost rtarget RUSTFLAGS CFLAGS 
CXXFLAGS LDFLAGS; do
+               einfo "$(printf '%10s' ${x^^}:) ${!x}"
+       done
+
+       cat <<- EOF > "${S}"/bootstrap.toml
+               [build]
+               build = "${rbuild}"
+               host = ["${rhost}"]
+               target = ["${rtarget}"]
+               cargo = "${rust_root}/bin/cargo"
+               rustc = "${rust_root}/bin/rustc"
+               submodules = false
+               python = "${EPYTHON}"
+               locked-deps = true
+               vendor = true
+               extended = true
+               verbose = 2
+               cargo-native-static = false
+               [install]
+               prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
+               sysconfdir = "etc"
+               docdir = "share/doc/rust"
+               bindir = "bin"
+               libdir = "lib"
+               mandir = "share/man"
+               [rust]
+               # https://github.com/rust-lang/rust/issues/54872
+               codegen-units-std = 1
+               optimize = true
+               debug = $(toml_usex debug)
+               debug-assertions = $(toml_usex debug)
+               debuginfo-level-rustc = 0
+               backtrace = true
+               incremental = false
+               default-linker = "$(tc-getCC)"
+               rpath = false
+               dist-src = false
+               remap-debuginfo = true
+               jemalloc = false
+               [dist]
+               src-tarball = false
+               [target.${rtarget}]
+               ar = "$(tc-getAR ${CTARGET})"
+               cc = "$(tc-getCC ${CTARGET})"
+               cxx = "$(tc-getCXX ${CTARGET})"
+               linker = "$(tc-getCC ${CTARGET})"
+               ranlib = "$(tc-getRANLIB ${CTARGET})"
+               $(usev elibc_musl 'crt-static = false')
+       EOF
+
+       einfo "${PN^} configured with the following settings:"
+       cat "${S}"/bootstrap.toml || die
+}
+
+src_compile() {
+       edo env RUST_BACKTRACE=1 \
+               "${EPYTHON}" ./x.py build -vv --config="${S}"/bootstrap.toml 
-j$(makeopts_jobs) \
+               library/std --stage 0
+}
+
+src_test() {
+       ewarn "${PN} can't run tests"
+}
+
+src_install() {
+       local rustlib="lib/rust/${PV}/lib/rustlib"
+       dodir "/usr/${rustlib}"
+       pushd "build/${rhost}/stage0-sysroot/lib/rustlib" > /dev/null || die
+       cp -pPRv "${rtarget}" "${ED}/usr/${rustlib}" || die
+       popd > /dev/null || die
+}


Reply via email to