commit:     1a302ce652368fb7f43303d1494b91564661c91c
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 19 20:42:05 2025 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Wed Mar 19 20:58:27 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a302ce6

dev-lang/rust-bin: add 1.85.1

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 dev-lang/rust-bin/Manifest               |  31 +++
 dev-lang/rust-bin/rust-bin-1.85.1.ebuild | 322 +++++++++++++++++++++++++++++++
 2 files changed, 353 insertions(+)

diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest
index fe307814c78a..21f28e21bb25 100644
--- a/dev-lang/rust-bin/Manifest
+++ b/dev-lang/rust-bin/Manifest
@@ -479,6 +479,36 @@ DIST rust-1.85.0-x86_64-unknown-linux-gnu.tar.xz 182464920 
BLAKE2B 42169d926f43b
 DIST rust-1.85.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
7c84bfee06171633feecb2a3be2e85a9fff8941098cbe2b42c4b77b5c8d253f09a0e954fc6ac3c1073aa2999211f059ea5c20a483e5fe2c075997fe1c942b4f5
 SHA512 
7b4a698cfc41b23c9015e0b00d4ef377cb452992e15ae8d2faac6d1ad7dca3d59e80993be30c1d240fd2e732355d1941b348069c3da27f0a9df6dee637175967
 DIST rust-1.85.0-x86_64-unknown-linux-musl.tar.xz 263244196 BLAKE2B 
5e8391ab184a3ac641aef3c4e8a6a4c90ecb12fcfd1264d2dd6c1a062af96bf40c0e7940521eff5f86614b6e8b6ee9a1d6dab4240be9accd8a4316403bd46841
 SHA512 
18c8a3cdf4f57465417930c6dc83cb51410b4b882e80f86b959c945167e1e0c04f4b5feb3c65ef9f2f9be1f10975d8e7424a8ad4e92ca4de843d0c7c83c9dbed
 DIST rust-1.85.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 
123423d989204841da45e388589a0c1a4fa4d9102f691686d79502288f7a6d882055497f22f3ed63229d78c22c843a802abad31089035769123618d35da915a6
 SHA512 
da076d70fe804ebbc02df656fc6e384b03ac2d2f0fc36fb536b877b81a81fb45b5faf1a60e5a4d7b99d6d9b873382f67a3242d6299c2e85321a2842d6ae08c55
+DIST rust-1.85.1-aarch64-unknown-linux-gnu.tar.xz 241899836 BLAKE2B 
a67e4174871e0667dcd600dda9f1559cd75eca3dc44879d9302ca266ff34d42b98b39c3000a6d5aad1624ff2b367583512aa36b4eb293a6039ff4f4d68c36a42
 SHA512 
7658b6cb663f173e3f7d7da42e5a6dbf193b4d5f5aaa267f4f57fb2cd08534923278a6ef402fdca0efedfca28f10cbc34c2e6138a870e1a98572feb16c796b71
+DIST rust-1.85.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
69c0e455a830cc2d1302e9d80e87831c7ddc57c20cb1ca8087b977329049106bb69cd17734d41f4a00e39981db94962c33bf679202e947a6921e3d2eca97d635
 SHA512 
4922f2bc82ae64496c06516418ccf06698d70c53f383e9c004bb8edbe6488ed967255c69033843029c1737eb4de9d2998cd165e2717af3cde651058113bee03c
+DIST rust-1.85.1-aarch64-unknown-linux-musl.tar.xz 218838184 BLAKE2B 
eae06b23bf294ecc96e052f15886b76909f1c07d1943dcfdbe3d5809cd71b7b6be8bf70b0c73e3dc66318d12d14ae018a8ea24e79ddc1ae54ed988f666d13b06
 SHA512 
640d6facc63b5ce6f97c3562c5869846f8412ac1830419878d690778921d1a30f013384580f2007a2c65414e5c1c833f83e640b8d7e5ef7a5503d7751323e5c2
+DIST rust-1.85.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 
8bee75a90cfc5b3d63e5d41a5400cac3e94980d9acae6d5725b4091e2c0c82127ea98b824c95f501c9979c0da904904d0bde6cbb215d06d429e379f68230bdc2
 SHA512 
fc7599a0136f0010899df4a4764f706c252f5205a8cebd8f18f14e6f3151b34b6d67c3d2fa9b45fb1222e93a2582a3e3567e62aafe84a1360d66c94eb9fccebc
+DIST rust-1.85.1-arm-unknown-linux-gnueabi.tar.xz 203435192 BLAKE2B 
40cfe60009cb18d94b6ba664c87ca085c4f0b8450786fdcdc3c87444514649fa13adeba3fa1684bf21e3ea1b3c30749217ebe695248688815d438614ecc11312
 SHA512 
f553df6c62ca1c30b80370b2bbbb62c78e7ab62297beb9b3e2ca503f2c61759ba5d10994039d1e001ff3db8ebc9cc5fdf008d182cd2c182ffef005183080f907
+DIST rust-1.85.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 
d3891690de72fcaf44233a70c2d6c02f006bd3af13d831ce86495fa20ffd297bfb9dec5d4e9984722c71986b82dc7b637cf62c24b878a649903a0305ac5cb187
 SHA512 
dc0eb767441e9f6b2fef32162fe8fc855ff3c1552bfc515d992c89e47c43fac1f5d226f33c5e31d1f90bacf1cfd7dff476a516c09fd4fdcdde6dc6490bde986c
+DIST rust-1.85.1-arm-unknown-linux-gnueabihf.tar.xz 204291948 BLAKE2B 
933e0ed70bd2558a2a90c0f73df5932b8897092473ac3fa6f8b85b98bf1bad504ef3264d8d518e6acb3ce1b4ec55b6ada5d279eb1a99233b974f1099d07dba92
 SHA512 
15b63a55049a64ee95025eddfca3f002dbe74bc8260d748b7c2d91bb558375988bb09f046e5e36b190cf3854c4a19e0d8f2ba021e7b3a752bd97b618bbc3d4c0
+DIST rust-1.85.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 
d95d2cf3a9b048b18ad50ff1f8efca7589adf1caeb6a6bc981ad99af8a240d2e26def681838a12030fbd0050eb88765d8969ffe29c836541783cb85474a66370
 SHA512 
b72fda3f390b46d83c5995f4e28a41e17649bc1fdde03e514ad83580ca3d036642d026f8892d6e206336097bea3a17d94092dd1ab70155cf0a9c98376be88970
+DIST rust-1.85.1-armv7-unknown-linux-gnueabihf.tar.xz 209597268 BLAKE2B 
1a32f55193fae11ed799ad241c43409867ff7765c6b2957ffea6cc142c8946b7156245b5cbfad09a3a260103b3f5dfc6bc9b75b07f9870f9d5dca5c734bf1f4e
 SHA512 
8a637f8b967d2a8c55af278f9510bb132e0f704fd64483d2ac0381c2dd2385877eebd4c366785af2cef4c09fd9f4aa5cbbc8813764efb6af2904210f495e1347
+DIST rust-1.85.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 
82c5a73528a13c3f06fe9e0a8f07f849d5819bef828b742848e3a82da2600732441bffd01f2c592ba4977d07202117139572b77a8dec807bbb6877bdf3f33ad5
 SHA512 
11d4cf8613d754311b51dabef74710d5bd2c06a609ac862837bdc7f6b26e2d534ceb0c6b8bb9ece6af9038ce17cf7fe5f90b450c81fea0f0bbf62e4ef9b3958f
+DIST rust-1.85.1-i686-unknown-linux-gnu.tar.xz 236496844 BLAKE2B 
dc6f9272af0e481bb40bb914cb0f17f9f48ce893761769c1a9d81da0c60e13e6a72d4ad7a632e251253f7c319c078be3b34a7b2cf4e75644572157daf563bb1c
 SHA512 
2684710e78138ffd23ea348386e02062b23fec4522580cdcd9a72855719c1cf9e8b389639948018b0d296cb83e34eb3c4c051697b2456f6f1ccdaf1c0925e095
+DIST rust-1.85.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
77a409a9297f9b8e001de5c6c35ef608636de1ffe57f2e5a9d44e8fc6e26cc336d312c1f5e98ddba9fa0011cbd9a57e34b60e7a459a11a43eef27a57070e1e44
 SHA512 
90cf37037220a0b2b3640907070892a598d6ca4288734fecf836af29883ac7c3c563aeec382b2cd0247e6555606d9d15eb2a686f6bf907ecff2189f0825aa0bf
+DIST rust-1.85.1-loongarch64-unknown-linux-gnu.tar.xz 234511720 BLAKE2B 
58fad76f102156042c65b1219ee0f936fd5dd0f978781856f335c41464eb25cfe9ea9539d2588ca29e063c2f03c10d3c3fce755e1dda63d05bb238550e5aa636
 SHA512 
c84904fe15671920a7f6ca5b3dda2e0bd473d5e7911ee2ef974410daa68b1d40dca1ff7e156145f3a77b01ce83bb3cb10f366b3bf9f428fa75855016a6f2d580
+DIST rust-1.85.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
4e11d752e9769053239e73ad63a34560637e16d82e8b586e571e536899066fbeaee0453f47b6513c090d519ba2b0c3535943fbb8e3acc5afd69cd6580ef96e11
 SHA512 
e10f1343ef9f924a36a19adbded8501ab97e3b25c0080cfe25b4c8cb1cb1ba2f6bf371c66cfaf9e1e876bd11b76b64f0f32e7f4cea917e419c462521b3191b48
+DIST rust-1.85.1-powerpc-unknown-linux-gnu.tar.xz 225991296 BLAKE2B 
a01f041fdf989cba65cf1440340cac9ff265cfc523cb5aa8ac2a269c95d3cb91be3f17b3de82d1538f6b590ffb6dca5cc4f8734343de5cb3d3191cc1408f068c
 SHA512 
bfdd77220666490bff2d29abc4797d7aa20c299ac2171595a9d988397c25f6982780772c8f33273666a454a8f97ff49e7319c23387202d7ec79820a861617d70
+DIST rust-1.85.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
deb26727e4852b44377eb139be38ebdf06485c3e96d4295ca0e07e798e7da6b3aa44c196822318283db4aabf0723e002f7fc8adb11008a9faa390df165c37fbd
 SHA512 
9d8334c8db1c137b9ede1e3538ccb8ad5d22cf632722ebf061fa0709a86d3c880e7621b09d70ef09494224da77542f87611a9add7caaaf3d9de17bdfab91cf9f
+DIST rust-1.85.1-powerpc64-unknown-linux-gnu.tar.xz 222758020 BLAKE2B 
ad00b033d5ee08867cf733a3493998168e3357801bccb3bf3ebbaa742cb885abd51f6d0d02372e11ec45ecd951e695e3fa61c7b5f9cbb241be60981783217948
 SHA512 
b6b09358f57ffa50ab34c39275dd60ba8cdfdee3954ab75a3a3bc67b5818d3ffc26cc36ccbbec8be5a1146f3a19e9e04e0cd0d8df4cbc1d8be1e67dc42f03c7b
+DIST rust-1.85.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
4370117112ce508282c0553af845719f74451798f7e766eba67866e6c076ab9d8dba4c63c214becea4005ba47b7784c6d7cf8caf90424594a37964539f697a79
 SHA512 
0ebf39a0a31b78ea041f5683b55f40faaf4ae875711e08c513e1416c4939b1c388f29e87cce7c0e84146e09b40f20604fd5e90a720bc4297e59f243bec3d090b
+DIST rust-1.85.1-powerpc64le-unknown-linux-gnu.tar.xz 235436220 BLAKE2B 
93eaf0b9add5d4e697ff17203a10d91e9abd675883f8fc8478a36223cb6a7859adb2e9f18f386646a76c56c4d9ca8dff590e98bd22e0d4f7226f7b57dd78d8a0
 SHA512 
2e8ad5931533c79e46b8fd29ffe0250c91bedca6fd5b8177bfaff2531fd7b45419d32c6185919cde6a06d9c0fbfbe2e8f8b4c7eae0f7c8c6cf216060d6087179
+DIST rust-1.85.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
46dab390e629ef1f9d1304f0e6460695da591c7af9e6d4464f4e96102997ba669e6fe419edc0b99674e75eefe53e098e200feffe66a4a65891fa94e8e3309bea
 SHA512 
897ac9a93645c02832831cfeb5c4a6ecd062f96b151be92540b3e6d33cff1da97386303594f13f4bd564e37e852138ea79cdbc7ab96474bc6f4d158b4910150a
+DIST rust-1.85.1-powerpc64le-unknown-linux-musl.tar.xz 239163456 BLAKE2B 
141daf887db9d554066a8bd43b477730d9cc6cc7f92692867e170c754a4f3bd48a6cfd7d9c1fdc0e4251ea3960bb767139dc58a7ca62e0346f1dc86b8df4c21b
 SHA512 
f0b971b7d743e2ee8e377a5ae72c0eec2ce2550a1a03c9f591d2b677555e8c95c7b7f8a0e8b43ab1fb459f2d64e36d066b07de1d806c3b6632d8fcf6edda567d
+DIST rust-1.85.1-powerpc64le-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 
758665a047851e1415b6cfcbf3763bb44fcd5dad3713fd028d1f19d1ce3d39254c74b1af8027b8cf54ebc2e6effab3e0cb594a292521f7a96635ad1416220182
 SHA512 
45c5b674d9d0c368714fbc478d307fafcf213b4f188965afae05a70afc77de02338c7037992235f22456f5189e744ec4c2f2d6e288374fefdca6aa85a920c877
+DIST rust-1.85.1-riscv64gc-unknown-linux-gnu.tar.xz 221683940 BLAKE2B 
57dafd510ca6c801fcf9e9d4572e3f1614dd291374d7e5f099896f245864f7b21a6897c31d6a0c3d40eb3a2bc57897136ed9ab792d56f0ed81bec9a48f0d4b7f
 SHA512 
eda63ce47f6a55f5888ebae1814de3a7cfcca6a264b568a23291eb5ffa790c0d9119dd240615f24f33378d2e23646644e3c0dfaa8349e1b0fd21fc09df5b4002
+DIST rust-1.85.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
b0699a5b4750e4aeb99b6aefa18ad425ecdd41bdd5f33091bddd6bc1c14b66afa095530d1e851d79339f0a91d15825a0134000f97b7d63d94716f1bb6b2e3a1c
 SHA512 
dcc85de56863cbabb22b8b396de24f38e3fb5dde0580a5ca6abd87d58525ec0480ec1b2122253a9a53af3c9f604e02c19c20a4f934de35f6706477e5daf0d6e9
+DIST rust-1.85.1-s390x-unknown-linux-gnu.tar.xz 224750504 BLAKE2B 
db2023f89b3298adffcd9c0f53dfbf7c26e5ecdcbc0640fbe54db7e69247871644a50916778c9229a25f86ded2fc3a72e62e51dfc16a63f96dee9d210b687c71
 SHA512 
243115b334939371562a0e57080c57642610646a5d4632bc016618b42be20077a3593ed64d56cc98a794f010cf09817548d40d6e9c0d27bbb6feef02dfe0346b
+DIST rust-1.85.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
7d8addceaf42c9506955d145be6fa2d64491f83839e1d82aad0a5f943917b8e8f7c1aaa4e5342128d1c37bfa2ca206fda5bcbdaf86f787d360d0b6ed34271675
 SHA512 
aea826ce0b42e3630ba3184ebb8182bccbf8175339718981979e28421d3e1d0634d1b70678955fb16d26db79563bb7b5bd8ba247b761d48df1f0cd62f0bf58da
+DIST rust-1.85.1-x86_64-unknown-linux-gnu.tar.xz 182566732 BLAKE2B 
8c776fcb1a2f9c7249a97560b555051927cdfc38cbee23e93bb754c3929a674ee83eba8d899a23310b0945cedf57acd926fe3aabee131fec91365c02f4fbca2d
 SHA512 
00ccc4feda5043f44193ad151333b40bbed2ef80eefd18c5ba257d9752453002b7eea01ae62b328806b5c8164813099274aa9b7e2f60acfa7fe4f5704b5c884a
+DIST rust-1.85.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
68d7bf6ddcfe5dcc25c857be305e650222507bd6015b24611fe983d85be48e38b4e3529db72a41ff13d1e3331a7138e86ff4b56a8344a1e459421e9555ed14c1
 SHA512 
792520a1de8c9b6ac6bc12e74a1182dd30edd8668d0c6fa5f3709bfa6ed3981eb378f079794459caf4e9fd982b71ba0296a7e515f56e5ac45cf7925e7cc296c7
+DIST rust-1.85.1-x86_64-unknown-linux-musl.tar.xz 262611472 BLAKE2B 
9f6efc6ae4bbe97469bbb80e3d6fbb74a4ad63142af150d0c1f8867cd81f9a2b41f96787408681b79ba7b37b1b9f0d67089796eedfee5f0e228a30bed441a84a
 SHA512 
8f3e60a6d83ed0ce0d31967707ba51eb7b9a8b2fb981b37aeb03ef4142965c3086a21768b08b4f26b81edceb7eecd10f83bd76e5c7bd12030774d916ac5a45c4
+DIST rust-1.85.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 
ac25b4ccc84cb0c06708c7164b0a7b926478b3794683e2ca5e1de26a17b5098892c8633c9b8b8cde18040d2c6f195941b9093162594e39c04dd3b0e4a45f1204
 SHA512 
0df04cb4bd584efa1f6a63649ddc44bf4a30d018a2b60ec83b6defe4c25bfd8b61c8acb6c93783e9d110abc114be859542116d45b3087090f88743761149ad6b
 DIST rust-1.86.0_beta20250218-aarch64-unknown-linux-gnu.tar.xz 241961984 
BLAKE2B 
9553edf94165922470e138a62f2baead6e04aaa81384d22f5b6628462a1c5bbc2387fff5ff05a9efbb81aec5f28301f94d3c9b53899e80afc7997323dd44e089
 SHA512 
c846832d71d7203759749d8e3aca6c718b91b7e075e02a0a0eac71302d5ed2e23a23c611efc93c3dedec26e9e8931e819eb1d9fe757e9c7b51a6abc1cd6f0598
 DIST rust-1.86.0_beta20250218-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
0323dc2fc992e29d8619978d560c888f1873df3b403a7e2a25ab06ae5979d2eb6c42481612f9fcf0b5e435ede3735603d8c1eda733e0f3523b3bddb055d6662b
 SHA512 
f17268a0c2b6568da4c621c23a2b43f2645a3cf2355d4eb7af22be6c6b11df23053eed35fb891f7bcaaff0400910bb7d0e7749d87b0541c401b8ece37d994c90
 DIST rust-1.86.0_beta20250218-aarch64-unknown-linux-musl.tar.xz 218887600 
BLAKE2B 
a2be264a1d7c9b78209484d175c959278a9b9596a1a917c1033d04061ffa42d3e1aac491ea02fef1d5d2c3642be72ca04c912f581a5fdcf216a9bd86b3567d3c
 SHA512 
d391a7cb96dc34cd95b862c888d7c5fa199de6924726c3e5b82de96296e890913716083b11f9e7ecb153531b07bc98fec753be4d94cbc57f27c7bff4f31db203
@@ -549,5 +579,6 @@ DIST rust-src-1.83.0.tar.xz 2998424 BLAKE2B 
de758c5bfb29865a3ab7ab02d17b0282272f
 DIST rust-src-1.84.0.tar.xz 3016148 BLAKE2B 
e948d4edb88f81ecfb49f56a3ca6331c4e9de17bd9f56af823e1cefdc5098abebc2bb013d7c12ca1713a43fec588f33befcb7146713eeade1511914f70146d62
 SHA512 
ccb45d57c7cdac311478a5b4689144297717e6404f9c4fb168127804f13f72c15433b32765f90ce56e6f34435229e754241cb3656b28a4b33c6070b6f79b7c53
 DIST rust-src-1.84.1.tar.xz 3016012 BLAKE2B 
c9edeaf0797a22e384c54b3fe3e7c833464c09f8828474e05400a561a369d836626387caa495689e4b14fad691a85d6859098c84347211a6f79e2ef2c8d9d6f2
 SHA512 
564c440a05b67fd3a5dcb4dea21800d32ae65ca12230b804b5efa4bd468fe1b185bd7ed89041782018f70f60afd7554d7755edbe20e9cdc930a9fad390deb317
 DIST rust-src-1.85.0.tar.xz 3036988 BLAKE2B 
b7281b23eef60cf052e1641a29915c02c590166a73e5ae75890072ce80f95a2ab71cead3e3da7adf757ec0352d1dcc87ba4c3070282a27657b34420fe24a0c16
 SHA512 
613cfa603dc457cee34b154acef9573d766ce5757c9e8342b13d362f2e62b4cee47071a59df9fd5fa42ecade1a9efdada5784402aaf7254d5996558533bff8db
+DIST rust-src-1.85.1.tar.xz 3036412 BLAKE2B 
f137ffcebd2d231d8b3dc5c9072f6afe39a071bc9608ac468bca364fafaa9c277b91e40da870a083c802cc13b9b876a548d7fa8ae67ad9552321a7412b7d8cd8
 SHA512 
d230cbb1daae3e2f5168abef94c5b99fb118c34a980f018d5df3e43f6ead4e0a17d6ea29bcfbcd0fb745e215f7a4d0282a99a714dba77b98a16254bb27c2d2ad
 DIST rust-src-1.86.0_beta20250218.tar.xz 3035860 BLAKE2B 
506df30188382d43798c6661a8b730c10a74a230bf5ceb7c04f2892f14a45630182ee174f79b564dc5a6dd8e3bc84963b8391fc9641efc57d0ed90e69b89d545
 SHA512 
4c7cc4d1860f7d97f615ff5dc030754a7fb72d1eb47b27a2e25dbb5a9b0326b8a1b82b6b60a784da910c4730d3b728bb27e1d27f30dabdb7e455143550f0c424
 DIST rust-src-1.86.0_beta20250225.tar.xz 3053616 BLAKE2B 
19abffb74a9926c73fd112589be340b2955e3117d4344f4185de08899be5a5ac9835395e601224f21e63fa0f91053fb39ca02e98a6442570dd54c6b0a39f85a9
 SHA512 
57b8eb0fa06e5ee37d89ee486375b7022d2085fcd88061a20c3e8406c312fa912bc0b52c9259bb3682bbba1e2ea4b044eab9f9ae66262a67c19657033fe918e1

diff --git a/dev-lang/rust-bin/rust-bin-1.85.1.ebuild 
b/dev-lang/rust-bin/rust-bin-1.85.1.ebuild
new file mode 100644
index 000000000000..81dca032c9f9
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.85.1.ebuild
@@ -0,0 +1,322 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( 19 )
+LLVM_OPTIONAL="yes"
+
+inherit edo llvm-r1 multilib prefix rust-toolchain toolchain-funcs 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-03-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 ~mips ~ppc ~ppc64 ~riscv ~s390 
~sparc ~x86"
+fi
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/";
+
+if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then
+       
GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PV}";
 # omit trailing slash
+       MY_P=rust-${PV}
+       # Keep this separate to allow easy commenting out if not yet built
+       # SRC_URI+=" sparc? ( 
${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
+       # SRC_URI+=" mips? (
+       #       abi_mips_o32? (
+       #               big-endian?  ( 
${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz )
+       #               !big-endian? ( 
${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz )
+       #       )
+       #       abi_mips_n64? (
+       #               big-endian?  ( 
${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz )
+       #               !big-endian? ( 
${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz )
+       #       )
+       # )"
+       # SRC_URI+=" riscv? (
+       #       elibc_musl? ( 
${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz )
+       # )"
+       # SRC_URI+=" ppc64? ( big-endian? (
+       #       elibc_musl? ( 
${GENTOO_BIN_BASEURI}/${MY_P}-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"
+
+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"
+
+pkg_pretend() {
+       if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
+               die "${CHOST} is not supported by upstream Rust. You must use a 
hard float version."
+       fi
+}
+
+src_unpack() {
+       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
+}

Reply via email to