Gentoo Archives: gentoo-commits

From: Georgy Yakovlev <gyakovlev@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/rust/, dev-lang/rust/files/
Date: Sat, 29 Jan 2022 17:08:00
Message-Id: 1643476013.86f377d22c2cc041d32b53f444f6c32aebd909a4.gyakovlev@gentoo
1 commit: 86f377d22c2cc041d32b53f444f6c32aebd909a4
2 Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
3 AuthorDate: Sat Jan 29 17:04:25 2022 +0000
4 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
5 CommitDate: Sat Jan 29 17:06:53 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86f377d2
7
8 dev-lang/rust: drop versions
9
10 leaving mask in place for another couple of week to encourage updating
11
12 Bug: https://bugs.gentoo.org/821157
13 Bug: https://bugs.gentoo.org/831638
14 Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>
15
16 dev-lang/rust/Manifest | 172 -----
17 ....0-ignore-broken-and-non-applicable-tests.patch | 75 ---
18 dev-lang/rust/files/1.53.0-miri-vergen.patch | 53 --
19 dev-lang/rust/files/1.53.0-rustversion-1.0.5.patch | 234 -------
20 dev-lang/rust/files/1.54.0-parallel-miri.patch | 43 --
21 dev-lang/rust/files/1.57.0-selfbootstrap.patch | 56 --
22 dev-lang/rust/rust-1.53.0.ebuild | 684 --------------------
23 dev-lang/rust/rust-1.54.0.ebuild | 684 --------------------
24 dev-lang/rust/rust-1.55.0.ebuild | 683 --------------------
25 dev-lang/rust/rust-1.56.1.ebuild | 686 --------------------
26 dev-lang/rust/rust-1.57.0.ebuild | 687 --------------------
27 dev-lang/rust/rust-1.58.0.ebuild | 699 ---------------------
28 12 files changed, 4756 deletions(-)
29
30 diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest
31 index d82be7271a09..c7463b7a0a1e 100644
32 --- a/dev-lang/rust/Manifest
33 +++ b/dev-lang/rust/Manifest
34 @@ -1,163 +1,3 @@
35 -DIST rust-1.52.0-aarch64-unknown-linux-gnu.tar.xz 215549836 BLAKE2B d4179cc67772cd6b92085d68f4bb9de006fca7d8470a56766ac5d94a0379ae675d18c5275ec2ed1eab71274ce4f416a77f3ce74d849a1d4118b5a7ddec205a3c SHA512 7a26e14be6b27c7084c7c85b312341ab991c2df91ea53128f14707a4c725dd03ba7df30b9e9fcef39a509ab4f5d5feb028b99d6d9ffcc059996ed29b83eb90b9
36 -DIST rust-1.52.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e66afc44186f48548dffcd7c6d7d92b4fbecea48bf3f7970d211844b5401a2556a138993517d049265109146a48856c7106616100ed63a5fa3f263d7023af6b6 SHA512 75ff89cd071641b01f4d483aca5997f6b3857d477b6fb40e6fdf11ff2ecdca74618cc59a9f0d1d2f942bde2d9a8738ac6f821d21d79f3ed85830ef530636a607
37 -DIST rust-1.52.0-aarch64-unknown-linux-musl.tar.xz 214159336 BLAKE2B 1b2afb80df6bf75d516127f07d57d12d876f12879c1d87059ab1c40ee1325ddb4e0c22f2fa185dab72f7633bce7d2ff5ed92ce4e88d4e118ac80630a061ec0c4 SHA512 9461c7272ac3e2c854e8e5f24cd57e5d648a3f923a9413eebd9f45a143d27378bc09c4d30ee7a1773a56baa31066dcc9f955b0805ce9f47d81b52e47a3a3e369
38 -DIST rust-1.52.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 71e8d615e921a70341b543992eef062186f72169a9763562114af8afd8ab3469a104677fe103a04a03881ec308b25fff412ba4eaac6e4ff02f29527ddefce8b8 SHA512 1033d23a2c05ec207c7fe032f5d9986d5a1d839ca54b0ea57a7a35c8c37512e9732835f2f280f436af326e948da913492f84cd6d0dfb9c397a095167f31e4c04
39 -DIST rust-1.52.0-arm-unknown-linux-gnueabi.tar.xz 195145936 BLAKE2B 3c2e1f947164a18b0a0e642775560c23407eb9f79ce426b6f191eab3204b78288aa404c9f5d388a0831ff124a92c4bad6927edc252ec82f0fed194b361c75256 SHA512 20fd1d03f3c9a935d0fd282fc7ea5808165b45865044ba8a8b09ee07d1410ad80401f800d1c70dab9e42b496deb58def88d8dd10de551e2a086e9cdede06385a
40 -DIST rust-1.52.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B d73e4062015a30339dc0210afaa6779912051968b174a21f09e518ecc74a763d01fee8a813e08dbd7103583d7496b76248755e2c382e8e645c0524982a7bc0bb SHA512 e707a9a1960db80602d6b5d827e81fd828cca30807bdf78e7adf9378526450c5ec87d4068b3c395142fc532cf7dee7782a5f077d8ef5051c79f2b86f8631c21b
41 -DIST rust-1.52.0-arm-unknown-linux-gnueabihf.tar.xz 195367332 BLAKE2B 72bfb4303f3e3077958cea7050dd4100619eb14fb164d33c6ce696d3b6ddbb2099cc2850dd17b961dfb40cb1b5b20ee8158f87e0fe76426e728b2dd7752870bc SHA512 6b2f4d907ebc53983cadce97a10036a6f7e333aea1e301067fccbc38dfcc6a49ad5770cb366bc2df82aee148d88edc122930355409f0926273f85b72bf4b261f
42 -DIST rust-1.52.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 21a835f06fb41677db5cf1a06244b2ea3caa8462330c2599e6a77d4c82054f8bd717ba790cdf06f280f62adaeb839cb1ff7cc6dbce76fac75ca4791f1d72644d SHA512 ff46a6b6b086bc785faeeaa5db2de0c79d1898651f2113a726a08d81136b687e13eb03bb635c6c43cbeae2ec897999d2867a9c925436131871a61d7f93a5bad2
43 -DIST rust-1.52.0-armv7-unknown-linux-gnueabihf.tar.xz 201614124 BLAKE2B 780358a279a80aac343ed737068faea9ddc9ace4a52694a32a0df504e6864fb2da30474ead9e3419370a7c7d6465ffd957fae475d852e504390222a939294270 SHA512 100b9abdc3dc7852f880eea205056a7a6b78af39fc3b7019ebcac712d5eee3c053f0508a6dc1f9da13074ca476e9fb33514bb83098d3b41964e878c0fc6498d4
44 -DIST rust-1.52.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B e93e9ff5068ac52bb85c42c64b528f60fac755e022b9be7680e203ad3acdee44e8cdfa00f06f4096b17106d2fe3287061c66fd411e2e6449301b0c4befd81e98 SHA512 7c8e6cc76b4d22a4b7fdd88e73e5f99fec9bb9d9cd86293a4813d25a11739e4f104f3c8c5a1113240909757b893fd88ef34a6fc7139a6d37923d241ac60c01cf
45 -DIST rust-1.52.0-i686-unknown-linux-gnu.tar.xz 214798144 BLAKE2B dae7a81f1bce6f24d9766621d751b090c4a560af83686f19ae4d309da5fc8f59f1a46caea03bad593018a07ff44bd078ac5e775edf4b92ad178f641a5a3f7626 SHA512 10fcf9e891ae8bc6e83b5e71c83b34773c18b024c9e9b580cfae714b4e135d313ba5434fc28c2dffa3db2e50669b3acd07e6874de0cfab89b343db92bfbdff80
46 -DIST rust-1.52.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 699ca61fbe0f9763b5e3040f0d2854e34d6650f55dae2e864b88aa1d0402551a372970a3b6f4758e03619dba1201fb288c49a255eb1e7ea7ea0cb7668dde9604 SHA512 fc38e23183f104ed092072666bce6e40ab44822568ea69f31d5131508c53532a5db0c7148434605df6ee216559eb5927fac1ac32c17b3a3ebc336953f98a3ae6
47 -DIST rust-1.52.0-mips-unknown-linux-gnu.tar.xz 155487344 BLAKE2B 8f4d1dd47830f9d691e564ccab1a265e4f2622edc93f942d7db222b06c5f855187c855823bf0f38d7c534158905ee9eab6e5455900832891fd34c2b5649f4dc3 SHA512 9395eba6b7c8ddb5a35ff6e7bcc43eddc7fd2c7604a508a30aa63c4648bc3c9fee228cfd54cef6a2604cc8b695178c9d04cd8d05664279ef0bbca886e0d74a6b
48 -DIST rust-1.52.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8d226ab1e1f85620463e4cb1eaf2d363906d3eb5d7bed82e24b4f84c8969c649fc899b0dc446f4160ebc273850f158322cae1553ad499dfeee4ff34eaf161e52 SHA512 ed26f86680332d82aeb3dc8592f634a56b2269f5c4fbc75223b05cbd3775d6d8b4421dbddce96cd1fbf1f84cdd585f2b779c6a3f11639c101245bfe76a0a0cfa
49 -DIST rust-1.52.0-mips64-unknown-linux-gnuabi64.tar.xz 165086396 BLAKE2B 1241fce74a0583719d5e40cd48239de5fa7e121f87baf0f1e4f18106a69a3e6c6991754cf7c62492f850919ed02fd371c9e7360972d6ab4b556c243c72bcda89 SHA512 6ebda7432d5fd0d5a99c684e2dab2db0446d5d4ba1000696c14c26f5288c763dc0743af197c6fe809e2e6f90d90b12d84714ff64f195ca415760d9110c6f8b0a
50 -DIST rust-1.52.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 58ebdce3798c0a95a08394bd8398dce5e145848fc2a97233c69befd9b541af526324d777dec4909b7586709bdf6af8ec69cae980032dc86c650047dff057e823 SHA512 34a16221fa0e09acf88e67f7425ed6154caa8b9a1dd2eafe4cc8167204bb57cfc96824047e4e070b5e91109c45376a8873d873b329ed74df43b279f29768fa8a
51 -DIST rust-1.52.0-mipsel-unknown-linux-gnu.tar.xz 158692144 BLAKE2B 331afebbbc7d5c0fa5eaf182e8642f7b38c583418469a7e2b282378556db3813445b552ea89a596df56030a119e1deda1e1bbdc1983f5dacd3115e9de7c860c5 SHA512 0149304d963eeffbbb929eb6f1f24a3f1e5d43c627252bcca8df86fe894858d5d399eb5f8ddabbaf8c2768f93ee05fbaa82b1552c76dbb319614f0e93b21558e
52 -DIST rust-1.52.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a4b835e14bcd9f1c24cb66dd1daf4777d25681ab175b377dba37ca4bc51e0bf360df4fb6feb3e85e0c05f79be31e51d180ffea30bc0cd96f69ca455cc4b2238d SHA512 c9b33e4ca113343b08e16410b509aca98c08338e131581d223435f8d1eb1248e2abc6a0ef10cf612fd4a305d88d4fb605785d4c067520dff5b699ce00e2799bf
53 -DIST rust-1.52.0-powerpc-unknown-linux-gnu.tar.xz 170724484 BLAKE2B 1e58e0a338498061c0e46e65660fcf01bd8461b3fcded864ba63196d4fc29e0b56e026e4d80b7535b63bb5bc204c748165498e7cfcda3713a97aa17bd8ac65b1 SHA512 44af21d9cf5d5d654f1f9437aefb61ba5bd3f3bdc67c657fba8ab03494a7ead53b6f5be17153f1f20acf099cd90760de29008c76fd766d6facbab32bf7921523
54 -DIST rust-1.52.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6e42783107d1aae59f771284f15e1304595da710700a7664cc199fe7544dfb9cdfcb8c5f67e3c520a68ffb7fd7202de2f071cf92ce95b858f38e4ceb72649c4c SHA512 a68c780526a0dc3ba6c9e74258b124f4e64f52dab1dc0d1bcac5cbed752a9884caf858be2a1b9eb987b400a26b824e556bbf5280f64a4f51df0aae8c3073b9aa
55 -DIST rust-1.52.0-powerpc64-unknown-linux-gnu.tar.xz 184549672 BLAKE2B 2121f8d22d9348a61ba9eecb40bb13afee199450c7bba2d1852169f3b61ec193ea6979483139875c29a0a767732f5ffe12f81528c713492e0173084691b4b7d2 SHA512 7c24c9193fc4fe2109e38f140a8c240e0535171460de9965291c08003abe7c1ea89796afa7dcb2018eece4d9eed48ebf9469d1a040f06ab4f6a12807c789f7d8
56 -DIST rust-1.52.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7f5d881c1e1618be807ed6f65551fbec9190345f30c24b3c99c69e19cf87cda39c0fa6d0667d6e10e27444a864f9d49638f79fb8ac2d57558d745c3496ed01c7 SHA512 1b73e49173325b3ec9fea1c346f702ae33235aacd0b821d5b9a90148a26046e45fb547223a0cef6fadf03b5124a824a9b83984f3b5841cd5d3b861aa3223aa88
57 -DIST rust-1.52.0-powerpc64le-unknown-linux-gnu.tar.xz 194640544 BLAKE2B aa5e59e6059bbba874c40f7570404fbcfa5108aceb04f53ae42fc8ea4e833917f3cf6e84a1dd69cc5bf9cec3bbf0b3063258ff57699d3d0769038b44f4ccdf33 SHA512 916a3338c850cf804535e25aebc0fdcf6cea8fe9e5df9fed11fbf03ae81fb8220321dc41edd7133f287dfee0dbf19730ff8b020f32322850329865db76bab95e
58 -DIST rust-1.52.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ee33eefaf5b2eb96ef8fc2746334489b798b95f6b10e64deeaad72c4c1b45c9e335e450d8f896eec50c1b912b8e063ecec246c1d35c97f471236a876af7d36b4 SHA512 a66796a7459316f593649ebb309394d67bcf5ac241fd488c8e480df1837818369f79a198d1e56eb0488ab50dbad8d4162392709a2115005694ca0dd16f7e42ed
59 -DIST rust-1.52.0-riscv64gc-unknown-linux-gnu.tar.xz 181497380 BLAKE2B 40f978a60d7eea43b6e5eaeaff85611bfe571b3908a43aba2405b86ffb07c20043509ecd7f78546b4c6d795dbf4d06217e95c0855039f2cf92c372e0b3f959c9 SHA512 f0486885b26848bb1b910dbd6dd898b208ea0fb2f89714f0a8d59db330471447f4f4aad05ca534bbcf267c95e8eaabcb34d6ba41b576a2a8c77d80431c4212d2
60 -DIST rust-1.52.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 775d1ab86cce821e0dbf95aee99265322cb210745430f48c93e4f51cdbe8cf373f622f7ced8df801aeb830e74b917177cda6839c4504c09f5761d598a145364f SHA512 668f52e962c9b7b0a9efb0f2e33474bdc6cede32c3e657b19a8b374b0d8fa6516d4de42295acd541f6c07683a17f5251ec3fa52be44d573de5cfbb83780f37fb
61 -DIST rust-1.52.0-s390x-unknown-linux-gnu.tar.xz 194810848 BLAKE2B 72d68066f492c2eb2ed7e9061b2a67a603aa6ef8738004a1d7ec21753c3bb1466c81fd7a18f674d156b8b4e3c755d641b0acccfa726ad04ac17be3199e941938 SHA512 6a91adf7c1947b63db0bf02b4aa4a36fbbfcc5b40d9c18175e4c5efe785b8a17ff21a887476cf76f7e3d3854f2cc362b5d2dc8243493291a4d19a705276e6355
62 -DIST rust-1.52.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c9b51ff09e6de5d9d3cf93e0f21df52f1738aa6c1e7b93851512d9f464bec757477183c693a1740082a36564c10cd13569c129f026680506c1e1fae8192c835d SHA512 147498154e9ab97ec4e7c0037e6873f4eb5d23c53e2f53068e979815e7d4883c9a7a338048d21abf685f0fa348cc01e342f2d5a32856b11c52663910786750f3
63 -DIST rust-1.52.0-x86_64-unknown-linux-gnu.tar.xz 143053436 BLAKE2B cdbbd529c5d820318530e56347426bced5addd6f20886719abfbff6e174afadd94be36b1f3e6ba878b14198641b4a53c78f33e79bdc90025696a57659753bdac SHA512 27a8db421ae62af92e2c34dcc1fdd617bf7e8de2c68205773a3037be496ccbf21f5549dd18377a9730102e7915519824231218fef9a09abe9d116441d6ce28d2
64 -DIST rust-1.52.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ec204ee0968d4114023f40dfdd8654451149b5433dbb4eec192cc68135f45ed28ae7b06eabdab417401529162c11939ee101f7eddce304111fe93e9806347902 SHA512 4ae425def112d8c38e91ded53fdd73a6c7d2043eda22ce955aaa7303ff2cd6e7e8d0cfaa0d596b29195ba449811653f91b9b65c8c96b3cc8136d060609594828
65 -DIST rust-1.52.0-x86_64-unknown-linux-musl.tar.xz 239422556 BLAKE2B 8bef78b335b384e6bf7a5dd4a47511aa69ce0de6f9d1ab78146cd55f37e01b358a0cb82b95dcd27d25d4a114b707155b923415f9a91e6a75ab83bca9f5f7e0e3 SHA512 30a9f45f591c3beb34deee23611b5afe0f90b7a2a1b7b813498547b3264ecb98ef1d6bdfb77468bd5364f2942d927418037eb4ffe413db520c701fdf79c89bf2
66 -DIST rust-1.52.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 2d69f81dd47ce7387311b576a7770f2b457beebba8cd1554e5eac501025b7b54e72078b69c7cf8a61bc295298d7f277f39a070ee8d83564942149a1b42089594 SHA512 688e3eaaf2a7e7995a9b36e6856b7922b4deada31fdab198df335b316672d20bc80e5e717cee4e2fc2f51ec8abaf97880dfa5424a7b122e46b02fb7f62836378
67 -DIST rust-1.53.0-aarch64-unknown-linux-gnu.tar.xz 216240932 BLAKE2B a63eacafe8c9194095cb3ee0856b22c66b210746c208ecbc6495800eca9b480d31d84ebde29ffbb7dc8464dcee164f4da96d7479f73facee6352a74488073c1a SHA512 aed515e60e5eb22478b864f7e9aa74b99b9843afe6d1fcc9d0ad78bfd48a39b0d9c8ee7b785f273c3bf5d3a173c169fd6dcd5c64fa67c49285803ff4598d9f59
68 -DIST rust-1.53.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 15822fc4762caa2086cb4b4300d1eff2c8401932fe5ca8d12926b7ccd8b950940d4aa43daf288765d55da8a19db781129e4e3f83ea5297fca28f814738826dab SHA512 49e4c27f498faf1e95c5061786771e5008043e4b030fb91b3c1cc406f424a541ddaac435c7065659e27ce379d46ca78cf4f10073c8dc2148be715b621b824981
69 -DIST rust-1.53.0-aarch64-unknown-linux-musl.tar.xz 213585000 BLAKE2B db26a6d09645b7feded883bdc81d233ff3319a10c42bcf1b4fbc82c499f0099ec83c2de8f175f141daf1d3ea15ac13b835c9e0bdd92edb25fc0e4d91642e96ab SHA512 fc72513ce66784b5f9aa5797bfd6ce35f50e9494d0515371599e94f72bd784fc40357a540d23ef29f08d1733be240ad1c11d68d21550d1ddd55642d2770b06ca
70 -DIST rust-1.53.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 1468ff2faec1ea7e43371c5717d5db5eca6ab5376dbd3bd5a5785846ca473f14a90b2a7b978a56329a05111d509b860d834be3fe47263eac8de3ffdc57597a2f SHA512 dacce8e3f8b7c20accc2ae5073165ac86d4ab60cc3da772cf672afd080245dbb37ed4367379408cd359bad29d469eab138394ef87c32a39a075b0c0fb8a2e4ef
71 -DIST rust-1.53.0-arm-unknown-linux-gnueabi.tar.xz 195762312 BLAKE2B 44e8ab86b4970f7312b631d6733a3198756b28286d0e072294d75f59dcce15ebd470e92972d3133e901b6b14d35c6c3cd8afdb185435cc0c8e8c215676f3f8a4 SHA512 64976e51ca98bd57de4a9b17236ac815e5198ea57b018f8cf45a252abb9a681df4c1b11bd647145d5d9fe4570a36e01540cb7c145a11a414d4419611026f2227
72 -DIST rust-1.53.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B d01f42174bfd33e7c069c4aae68a71768ab33496f3764f3238e3a852e6ed11c02153f4dc40a5afc6f279d696c099093808d1887721c085a946dfab15caab6dc9 SHA512 73b86591c1790a98c59be4cce89472bd80171a0b80b509c0c345cc22de9faaa6d9e74fe50618bc1cf83d19ca8c7de9fdf35071a51ba6f4468001bbf6c72caf22
73 -DIST rust-1.53.0-arm-unknown-linux-gnueabihf.tar.xz 195620064 BLAKE2B 11e09a7cfecdac13911f47ac66eef6e4f419d83e1bf2cc7a01659219ca1255fb2987fbaee95e8dc5dca14616dcb59f69f4841f9f92250b22dd20be67ec9a2d0b SHA512 37749caf422fdc025101c938f39c0539ea33c4c8f17b76485c34a8ba9017e552bb64ab1d827c118e8047ecff4cc79da6a116df641ccc49d220079c0e6c5effd5
74 -DIST rust-1.53.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 2bdc454ee8bb482eedba513b86ed7a38d356761e0a8b48c18c3753668250db7bea9b32b7667dde46b7942282ed9ed3a911e478b0dd35ef22fc89e8625a009b6f SHA512 261831baa9a1d02c58677931c3db36b8ba0f9b1ecb533b993f8c62b5f5329ae7c9b366f346879f95c03b7b13e97b5bfad363815392ea0c55bb72b039c5f1e71b
75 -DIST rust-1.53.0-armv7-unknown-linux-gnueabihf.tar.xz 201618680 BLAKE2B eb2e7a7f2b32ed9667342df7881c9e411619fa31d0805e54d91a7a4cd9c2b7a4b603adb4f288f20b82e0d8257c3526b92d34586dd3c42e857f9f2c2c68608006 SHA512 a3c5f4f0d19a55e51b3a0fbc7dc9f168cc6eb0b9ccbca34e4e5a83f70e4e22149cfc4fa51bf878ec39e5b2988e198630fed32620bf151ad9359c70db2f9af28a
76 -DIST rust-1.53.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 91effad238727c142e4617f548101e6b50c49765203919908604e8ab8e4706a7a962561f34823ff3d04e59ba8345496d6c994270367e6c256f214e3e4f1e7879 SHA512 1cf21620aed1752d0e7bf83264b5afa799e5d86a1e1fa49944b956f8626b28afe8d465923ad6126ca4b5cb7e6cbc9e72469685f46001ded78113687001b120ac
77 -DIST rust-1.53.0-i686-unknown-linux-gnu.tar.xz 220103312 BLAKE2B 9678804edcc7bc5161d704bb28c385c9294496266f653ebc6bd3ed979969d843927593b5f05cfb87a4caf35601da42a7318be4aa9764a8024bc2576cafa8bffd SHA512 404969329b88ce3f3078837e7bd33de28babf0834e366f5663abab79bf810f2c0ddfeea304bb6289415862afc50289d897cb92fc3f0c0ee8a40bcfc8c23b567c
78 -DIST rust-1.53.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f03d9a9d3ec8e05be28f2d270ba94f7fe7572b3678d7c4ba28f03ea571dfb8a078866a5f3069b9c5086bd354fd870e8ebadaeb08e367d07d90a8fb0992700e0a SHA512 efc69883330307976582f65a2562ffc76e110af7a4eef10ff9234cdeaf50f8971154dccb36608d338259fc02e48825078e12d582d61609bb22026daa3a8d0f50
79 -DIST rust-1.53.0-mips-unknown-linux-gnu.tar.xz 157896460 BLAKE2B 8fe6a70ba1bb17cd92e58f2e8f6315eafb04870acf99b30cc4311387c5c3e021a7927ba1cd4a9081a833be9ca07032f4f6dc1f1464133b53c49a5719352a31dd SHA512 6b76a2f6a35366336410f8e293f9828ae3d9a23412c52abdf7bbb0055a50ba3a19c6becf7c8cd3a81b1d3c65dbe8c60b8bea6583013d207c49c89052111c373b
80 -DIST rust-1.53.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bcb1100430e98969def3de8cad66022c2c7442fbe8315c70dcc6a5f4d7990f11f127db51f5e60c86d0d45d36af2ad87f551146ecce50c81a56a46fa2b7a05823 SHA512 406c493fba40c706019c980777f43b9531112d5c99bd79f5726698d94308fd0121bc30272f2d12667179a32d7bdf9f23bbfe3f133fd99640bb378f0602361aaf
81 -DIST rust-1.53.0-mips64-unknown-linux-gnuabi64.tar.xz 165679184 BLAKE2B fe7f20759899a7dc3fd6db247fcf4a5360c64d7f03ee8a526b7a025e5dd5360a645da9cd0104e2156b1fbfbe1022d31f222fead7a4df65ff1d40e2dcbcdf32cd SHA512 f8c1fc4ca7a958ace63ca008f70d5b56d12862e1c3c00cc29d62a692c7a282de68c1969f996fb93cc7247c671f09e694dbade9b1f9464c95c809cfccca8fa6a2
82 -DIST rust-1.53.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 62f3809e249c8f8d47f1f5356d999b6e051f7c55b21b82bb6fc9403d55462648f348f7e4821d604fbf7d36761b876f2af673c0693134ff9ae2dd7fd574292a10 SHA512 ce00c5e7b8db9506c88edc1160a9c7a3114456873b3fd164f384cdf22b41dcf59c36095180a729d09760ae95e4a7cd7cd5926bd148f0acf03434fc914bb73bfd
83 -DIST rust-1.53.0-mipsel-unknown-linux-gnu.tar.xz 159577548 BLAKE2B 0742cdbecbe492186ed9ea15f3d8795354a6e63c131cf683f96b2a494c4cad11b2fefced9a7d8be2700677a8aa495bbae05c96fdc0fab0fe69a36e67d5440a94 SHA512 eda7b827b64baf325be7f42fd3fc5d4a487d243ba83d0573e7eb1861c8ed510e8c2fdbe499f6c46ee9aaaf3b0017e235d758222ae5d7f88f8abd76f5eed8bdaf
84 -DIST rust-1.53.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fa574a037814d6e15970a6588721d7626dd9fbd5da567770a62b31ff9fb7158cdf4b5bbce42c7be384a647138ce4d1bd8d08e148b429d58f284fb0e9a855aedd SHA512 5dc1097534ca36c9c8867f3c736b34f36006afa6add46a8c1a406414278abc2487f3778dcd162edd21534c0fee81b181caa3c633f3105b93ca759896c268f580
85 -DIST rust-1.53.0-powerpc-unknown-linux-gnu.tar.xz 173771788 BLAKE2B ac83aaab909151ab1cb3f8d9de696dc692356ad5696208b7879b3a8e2fd8a584b59c921c6259dc913f1faf06bcf073a2e27ee876e01e7d751cbfc39df26849dd SHA512 0fe291660b975f9051b2ef045033577785b0f1d513a351d94efb7f4406fa6a3c59b11c7c7208adc15e3840bca704c4c826c51a2f6f762eab2ee812767bdb4034
86 -DIST rust-1.53.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 097927a93b86187b8b5520c6d6f0de345956fd4b52ce823611bbbddb71608b032d4be593d42c433a6156296132f98fa23b4a32bbd0423a26806cfcc54f5b2799 SHA512 babd75f4f0850b8fa11171dfeca1185ace1f6ea5ed4a672b598771c28f2eb7568d9696824ae405ae468b58543262d22892c12eb8201b730d73a09ad68f702457
87 -DIST rust-1.53.0-powerpc64-unknown-linux-gnu.tar.xz 184849964 BLAKE2B ac498b1cdb7909c3812bce66359f4197cce3e7c4eee4c7702d251f896c09c1ff388f50fe16a0f6a671c04d9243eb8948e64dc84b1c96ab37dc7d67f9c3c63c16 SHA512 573815b4b93e2484108990814c8c63cc8c783b1909c24ff9c856b3920ec3553016aed66309e459bae5d16319ae925f470c6449aeae653791af4a90384ccb9be8
88 -DIST rust-1.53.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1f8cd752429865e448899ad6a7ed337f30a0fc52be0c2674c727b182bac25302f1ecf6e1db199c24ddfbbe62c05957a93999201753f1b8f6f9d54508e78f91c5 SHA512 5e41ce5e6be48b0148f57e686203520d1d7b70516d1a991035f0073a666f896bc964b26c710db7284d87de455a293b8c97d33bbfbca1a63077e8ed0dc197b4bb
89 -DIST rust-1.53.0-powerpc64le-unknown-linux-gnu.tar.xz 194345592 BLAKE2B e0758697ae3da0c00f60e93e5e665d8f0d6346c9b0e48d39eda4666d8bc01432263b39798f2e1b4f46267d572518289a6cf1313f7225ef25f38e9ecfbd39d813 SHA512 f418272864889635494553cd1f6216b0487c016c31603532920e45435da85154f6ec275bee6d2a32ef6755fb12f57151ce2d3c7c5d6d97c2eb3d81f7c2842c48
90 -DIST rust-1.53.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e577b834c6173bc90e671d28fac974eda672cb888c4ce6dcf012687edd3f21fa603e47c27c08c042079b239d1d63915f7db7e0e37dc97f171f4d9d141979c564 SHA512 df255926f1468658ada27e4f9d78af2d204142e205108724cb4ce740cdbb019a34e4b3f1a6c88c05c9b5c2da0b5fd92b46eee1f6fddf3ec3e80a2020a459e4bc
91 -DIST rust-1.53.0-riscv64gc-unknown-linux-gnu.tar.xz 181354760 BLAKE2B f99fcf4ae35163371e42e10cc61429c53874858311f55dfb480763bf818c64c05148a6487ec7cb5b150e902260f9afb48566ec2712d6fda058808ec1c2bfc517 SHA512 ef06941ff66f9d9a5723352ccb10c3958f4edfdc542f348145d65b4c5d123f750dd3c07b3146a359316c402a9ff032ddf7e48d28a75cbfb668df4d42d7c8aa6d
92 -DIST rust-1.53.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 03c3c367e79dd056e61cef642e373b62d4d66d54a70ff81e53f2d6c0819da1411563410b8ec0a28e6c310e291cea70edb1299038dd92691590046dc99ef52fe8 SHA512 bc337fca44914408f8a7c4c22b3f9d50887d44483c863560864d94614da235c8a53b272cfd297fd4643bfac5abebc0a84e3af3b81434eacddeca8aa920f2e727
93 -DIST rust-1.53.0-s390x-unknown-linux-gnu.tar.xz 193691664 BLAKE2B 627431518faafa7bc0ecd07ed1d315d9e73029c47773feaaa6e4f9c27c4e0c730fb51b8017d4f6966d8ccceda2af93592239dea99269a741b7f5ce54e93e29eb SHA512 ca142b436b1396ad978ba1d1a0993a4bba105d9e99bf89a9aea731b7406399a2132a531664fa6fec17af20f99ebd5c0a7ad329d2b143565fb878f4e7290aeb4c
94 -DIST rust-1.53.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c0e13c32eb4f8a4eb3dbae03853c38351a608ddee13a22475080d7afe7f1dfa12d894e6701786e3c9841e285266262b8143154ba4d130e6c3e5d7bdf5cd41075 SHA512 eca733edac17aa2d1de8f7f09835826ea31e1d1ec06d9c817370d6508f0bd444378ff530281dc5cab91df0db5ba53a45117baddb94d77a2c050c9f886860a040
95 -DIST rust-1.53.0-x86_64-unknown-linux-gnu.tar.xz 147158552 BLAKE2B 0e3037221da381ceee360ac005a98bf581dd143357835dcd5f5b39f7337e4de566666b21c62a794d1d20473b31004b8742cf84ca273cffc03b378853a4ebbb84 SHA512 3b1ee4a549917fc514de7dfb99392cfa058cb06fb93266e4864d4df3ff86372eeef9a9d2a459f93462eaab8f223d3eaff1e824d42be7b983c44d18ec1579c6fa
96 -DIST rust-1.53.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b40e46258e54771b814e07433318eb05e471c8bb65bfe016ad3830b94fe0be5234a1c9821c746cc452714719a78f24c5e0012f1d4c81569b36c6161c50ae034f SHA512 ecea8c4df0b72fa70d3a9a0c4b38812424006f21832c8805c9070ae4ee5255bfe6a7153eb44d453302162c7fc8a1a2dd6bb8574bedeb4e4f7a769d51de2cbde9
97 -DIST rust-1.53.0-x86_64-unknown-linux-musl.tar.xz 252250024 BLAKE2B e99c7a78d6d6a8b357ac17cdaa9540cc895d138480ddea25866d2f8235b48b6a1670ba7c9256355ddecfade28bed9eeec8b53e85f1c13af5c56c0ba7a12e2371 SHA512 33ee4d82cc1feeb4c478948a05eb44f7daa90f749191bd200a216dabe810420f47a3a258255c680302ddbc83020df4729d5b3ca9569003a89aa7768697e2fb64
98 -DIST rust-1.53.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 24283ac5457eb84de6a5588f69a22076a78c2ce9e5c3c245608bf963544a5c9f8fa8006e2ae216af65f5083cf5fe21f4d1c5286cf0b491ef4995be5ab8ac7c64 SHA512 fbd6b1477efbfc23da3f4f753c317f714a29495425a52d771d2527a42cfe7ad99b9973538da0978a6afa80f545823c9d0448d9cd29e6ef53559252e328d7deb8
99 -DIST rust-1.54.0-aarch64-unknown-linux-gnu.tar.xz 231424908 BLAKE2B 6c403acd4b6b27208f95eb3fbfee5c8e7a63f3314f29ea7498dc0a4ae720d77c249c9ebc02a95d50278ac7f07b8d943b1c9c5e1561858f72ad1d8cdb29b779cc SHA512 3e6f638a35ed391f5393be7c92ef2560ed6bb26af1ea6ebf784bfadd3e153d1effd88fe49128eb98f5ec2ced7a65f3f4a596db71b9c4eca90429e50a8f168d11
100 -DIST rust-1.54.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f655d6f53a580041642871abd10993b771835770bebb6de1ff1dcc9b250ae52f862212feece533a9932c6efb0c3d02769cbbb03114d941c7e8d3117e1e23ce75 SHA512 d9508ae502e26694f83c04bbea3f95aeeee7990e703c8bb8be9ba098e0df86a39272022e1a94f8852ed23b8378ecb338dbd87ef226da444e29ccf7fb1f44e5f6
101 -DIST rust-1.54.0-aarch64-unknown-linux-musl.tar.xz 231629132 BLAKE2B 339e341eadd2cb0c763eb00b5a6750a1082da26bcae1b3c06459c99c64b4babf4aec5173222187eed7271e3c5847da47b49e6ab75674161b6e28297bb62ec781 SHA512 f0e20c079e4351fac5e8d635a37502e833a56fd216fd015117fb12be8b72e022bce946ec8e1612b320530dd186b1702b4384e74d64a479099db4562bcfc68453
102 -DIST rust-1.54.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 5aa9872ad96668d392c1aecf7f54c171e7bef6e17f65efc6c3fff7eee8dd7fc3eacee03e6544cdc27c5d34ea946d1a61aca6298c91812e9f35c391211b563506 SHA512 07694566ae33492df31083887fe9b7d43fb9f7c469ccd2fe9c77d3c8d3bd6b58ddc5e185462e982f78d63db39703a60986acaad51f953ea7434bcd9432a96946
103 -DIST rust-1.54.0-arm-unknown-linux-gnueabi.tar.xz 209386412 BLAKE2B f33b802bdfa3cbafdd86eff2d43e0af99e54777b1a26f1106016a8bdc4c06b5cdac8810ac68785f6da4cbe6a6d7fa74c13a855a5ef9c5703b16a2100ef60f2df SHA512 5f68879abd5da5d37b555b0b6ca5850d68663878bd23b5f6a31efd0a9dd43809c4d413154f8f343688eca23a96adbd08fcb3132831b848690261964d6a24e160
104 -DIST rust-1.54.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 7b90cdac8d068bcd565b42bed2289deff1490ae51cb65bbf2f0c308f6187e4fcfd98898e8e590ade2c2af7f10080821a417445e5c3046b4e39e0099c32e62624 SHA512 35bc49bc4140207af140e561023826e565751e47bbee6c1fd374bd7a992b6499051f4d84ca12e17101ea552bcafd6b96b111af888cd891f6dc18fceda11c83c8
105 -DIST rust-1.54.0-arm-unknown-linux-gnueabihf.tar.xz 209102396 BLAKE2B 1190da5c96336a121b4d4f92dba36c52c5f2bb0b26fdd92ca92ae4954256aaa375ea174c9669a285365ff02d4f3cadbf2d2ac92b847b00e10606e3832629a864 SHA512 ca38f1948b02008c1e9355c12f6d1fd3721ae9c06e686a09a7eea48670d889879ac0f81c462d21f467d600fc0972b920219e7378f7ba438e756cbc9b419a5f43
106 -DIST rust-1.54.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 9f01100804d72dc7afb7660277daa5a0f0cd96e478a7dc5a242360d07b25a22c5769727a67a46d63f3283e22e89ef5a6f6f6c48ac46f01075e2d908bf681be5d SHA512 316662676cf52a2e58c6cbeb46152da3919e54b0385c33a8fd1d46c25e71604f7803174278f80d4cb72cae54829ba00e3c4ba58001b43cc1148347f1788fdb02
107 -DIST rust-1.54.0-armv7-unknown-linux-gnueabihf.tar.xz 217891252 BLAKE2B 657f366344fe911c5d93585ee0b1063815fb158069136c742512f21d3b47c64e42555d4e52ba305e5ddebbb1fb37fa8ba8ebc36f9a9e5fe5fe7ffdb31472e012 SHA512 0f4f4e075299cd369b4b53a425e9b290cd9cedca6a88878c6a4ae0487fe976b15bea0c8b92e7e376f77dc370552d95d738e99b7fa184a8e2c0e5ab94d65e7595
108 -DIST rust-1.54.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B c23e12a70df5e58dfca0e9c66432844424dc166cbc7dfeef4f692ba076ba687fd871bbbb5d37ed82ed5662ada170520c56c426f89be4fa07a0c88cfb773fe91b SHA512 14a5674ed5862b6cd3ddcd3efff4ab1298285bc0d5604a869e74e055a319401b9bf48a60d44583ddeb2230dcfab2e5584e5149947fbc40d97c112a6dae51745a
109 -DIST rust-1.54.0-i686-unknown-linux-gnu.tar.xz 226774108 BLAKE2B c56fb6ef24cda0c89b76403a38893a32382b09be8a8d08b066fbd437ac0a73a7d00af175c59bb7af6e6f5d8a74324e10afed2ea35d830f9f96f5ceaa4ec345d6 SHA512 15bc0c31a306aa1e2b16fec7f97963ca291b2632664c49add4281d3244054b2e2f51b0ade86a9d63db87124071fa25bd7d5e662acf4c30cf3267eb56da4a1f1f
110 -DIST rust-1.54.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 4d53a7760abd54973ef8ce95c10671db41136d7031a25ea0c0362feb65ce5755223d60a01c3418b69b902feebf75651bc4379ea66f98c862a573a8774a5e99c2 SHA512 e3dcef4d17bea43a1b0858da52e899d7a14db8ee7b9e3f506e9297dd0aba910d3808c25163a3f95698f32d25a3f128bb1759a808c84b8c75404300f60198fbd5
111 -DIST rust-1.54.0-mips-unknown-linux-gnu.tar.xz 147938432 BLAKE2B 38e7b768773cef9e3cfe707a716ba59ed67e2bbefe59db5531b06489131df219eba6a46eeb5c06bfd6d943fa4453f3d6f4b869725108fd2e069ab6ebbfa3d08b SHA512 aab52c26bd80b058772e0cd815bbd5ca0ab0fb10fa0ba43c07fc6151ec6e99d7ab48613a3e5cbdcb8f00b83108a716bd8b9f5d6f2c8518499b2482aa4d423a91
112 -DIST rust-1.54.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 05f4c8ee719ff857aa0a53661f6483c450a561905150217f886c25cf5c3e8dc3a36ebe2da38c75f843e3de4274d92c0c274906af40a94a6ecb122a9d38703e7f SHA512 6ba884e92b0ead2049f639405308ab6363268a8b42f827c9ecbfc5b16a0755bd1d345d989243f28662ce8c53611fb5984104001b3edec7b2dc22cc914970a7e5
113 -DIST rust-1.54.0-mips64-unknown-linux-gnuabi64.tar.xz 157458264 BLAKE2B cd68d03e058922a020665a35765913f3405b0c0d5c7e252da1dc63b4b6af27d31fa5ce7eee562635241baea422c84d7e2a9539a79e6ae152794aeb9636e97a46 SHA512 74a85d869141fc941bf4f9821945ce0efd0169415fc209cc2288015d4e358716380cf91e41342a231cd34ce88321f24c4d20fffec3be702498cec3846a14298b
114 -DIST rust-1.54.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B aaca9b8e5007e0efc459a04ab95e6a3d76ab6cf177964acd4bb148f09ffac4f9c9bfba4ca4834e1ccc9505c259511f45ed1830285307388d79ac66b8dcddbbc5 SHA512 8d5d2a1200af550cdbc85b2dc847e524ada7f16fbc5f4c29d0e9e4e8c0067e04daaa273a99c14e6ad1a7d622e4f9d3da720b41f4ee75ff50cf2153cc190642e5
115 -DIST rust-1.54.0-mipsel-unknown-linux-gnu.tar.xz 154497208 BLAKE2B 40ab905d6088cb2e4364e2e6a0e4fb257365af05302abab81604d78b62bc255377ff7088884d9222f2997312befbf8efcd7f1821fd4bcf2dbae149c70cfa1224 SHA512 c61abff1df5e787d330abe4b3cbe8c3e67f02974dba3eb0fa4cbfeb0a74a956abb48199301e7f9af915b9be5a0d6ff7771198414458da52af18e9a74cab52620
116 -DIST rust-1.54.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f525e1849a0c753a077ffadb7dd0b1d67b5fb369c061ec895878fbbd8d377572db2b5bb1fb5e1a24bcef61eb3f80b6f6bbb3d93b611e6b00e535b2e516ae0681 SHA512 d55ac3c329b20bd4e7f095ee2c710bd5c5be825ae517561bf670b96626427db39d362be553c3b92c90710ab8d9b677d2367aa85a397a4568c1146e0dff10cda6
117 -DIST rust-1.54.0-powerpc-unknown-linux-gnu.tar.xz 164089736 BLAKE2B a4e3c0b6f78444a2f48e842468e828e517d32fb1b62b2ad0c0000bee97ac5730977c8dacdc614ea2182fabf25e23804efed53b493ec611dd5d4d5d8ec237feb4 SHA512 ae8ba40e5843bd3ecc25156521f7e7cc7c869457151896371fd5faa3bc565ff9a6b7d437e3587dd9f1e87e9fa19463259ec18fe03badbd89372c11ddc7b577ee
118 -DIST rust-1.54.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ac59496efd850b618b4013d0cbe09172f5828e60ae07afd0b233749ff3c1699e524e3a4fa93fea906f79dbc44f1d94ad52bf3952c2a4014d9d2653702d86349f SHA512 daf5da203c079cfca365990b0111d9df16defb49e1bc9c24407e423873992a9920d88fc2a097e1df8d2b03e05d1118bb3786e908d4f46fb282357c62d24df88c
119 -DIST rust-1.54.0-powerpc64-unknown-linux-gnu.tar.xz 178088044 BLAKE2B e059572d2044aa05683d29370c395b714f25d0c7ec820bcb133d29667e9066b82e62e11000a3183a66cbeb87625517284d12263c2ea0eec60dc537ba3c78e6b9 SHA512 543dcaf3bab3343e796b3535a3b4e12d77227006e64e91b885f599fd94ffc9c1cc8d8c5ce3b788df0399c79dc785ff7c8dc375ae20d3b4156d1b16a7dec5a371
120 -DIST rust-1.54.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 663a3f7027c61f4a7e38bd0a72ffa55b9de2673cc0d48e94bb964e950b8a356b01011e94904efb3525c0ee2cd57e82ce8af50d2360a7e5b200b6eefeb4580927 SHA512 f0d03c2c3da60731cc05b9370df53766d6fc14ea3d49edbe0a7e809e35560a7cf06c4d8291896a604fdaddb665d117c53ec93671a0402dc093442ed3cbf4c596
121 -DIST rust-1.54.0-powerpc64le-unknown-linux-gnu.tar.xz 187058704 BLAKE2B bd90f56b50024cfce5bbfb5e84d28c06687b6a5524b1964064b1e53111b49805815d3dec47fd035f9e1d78c426d0b0689ac7c8baa1044cfbb9343da452d77694 SHA512 9d13d53a1ef106b190161096122da1bc9090dc495604c8ddbb9d6b02323e6b7c9b8bec82dfe33ae6cf1820e986811a701f7a4d4c3eb7c297c777fe3563b8e9ee
122 -DIST rust-1.54.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3cfdbc8958b7025b6b3b76a6aef603820418c3aa2ee63c0a257dcd36004ca90203abb1b60a921310a9aea10545e32a11291a9d9baf3caf3e2b5a27ab4724bd9f SHA512 3ece925a1e3797cc6bf6ce44a3ca4768f57bc9bc3bb1261d6a82905907c635bb20ea7f5eeed062ff02582b035a22508990bfe83640006fe77fde8e699d5d55cc
123 -DIST rust-1.54.0-riscv64gc-unknown-linux-gnu.tar.xz 180939260 BLAKE2B 856a431c22f286d42069dcd34101cc6e539004024619ba061a39d3bcc48834ce0002e2499466f976b81a7aa7d47f1c3249f2b21c69233df4d7d0940d80f5761c SHA512 5af3bbd68706bff03d51daf76551830810a8e225e8f0a9a394fd29a4fe9f0389bed3e0d94333483e089b4cce375c0320cc6ae360ddc4f08fca0ae80e671ba2a4
124 -DIST rust-1.54.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 366ef8f21801cc510b22217c4d974343ccb9f941faf08fba584b3f068a9d3128e3a15f5dc1400ed3749166afb622bb3aaafcf15381a0f2a5b60767db6ca9d3f2 SHA512 fdafdedb8f667124cb71eb44a6a61b1cef1df0baab385d2f5c674d900cd24139e555aa30df99f9d496b5fb30031bb86a43b118fafa083a24e2be10126e68df67
125 -DIST rust-1.54.0-s390x-unknown-linux-gnu.tar.xz 186478732 BLAKE2B 3d3ef6c37e0c24a4622814c51bfe1a5093f261e393a3dbb9c5eda023f8d0a63ebf0080cba5d43c8448b79503aecc62f04ccc18f040562db57dcd2ff1cb243124 SHA512 5033e3f61af7de144c3ed441f9fdf9f0c00a837d018ec3c0d4ef67f032e7f808d2dcc586e7b85b733ff9bc2196c2e05fcd104b3daa85698cc0e4e9ab69b870bd
126 -DIST rust-1.54.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b375bf65d9bef4a54792f93ac52fa408c85407d6aa646b64ee85d9220fdd9d7dda76c1e118def5262f5ab8fd9b7637c5d681d37c50d9e917eb6ba0d5b25e42fc SHA512 3bd16cdc61033d6e38de595ac145f0e7cebf3c3455491325ba89de8067cf6096beac7f00b3e4dc942cf4bf0f5ab59f6233b5d24f0ebf97ab3562260182baae4c
127 -DIST rust-1.54.0-x86_64-unknown-linux-gnu.tar.xz 136593024 BLAKE2B 2f10b636982f335a200149d11c6cf212adb3e27f7d3eda9069881565a07f29aa6f2010ca786c3746190a3bbb8b8d79d531bee906e21e21f2c132f6c1e4198e17 SHA512 d2aad46556b164dac54be76a2459789fc686781b157f0c7d647464db3b03cbb902c8c4de5c6ef2e0811a94bdbba2973c93698c4f3a7c6ba294c0e652994e3fdc
128 -DIST rust-1.54.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B cdfb03b6a75cd86e565b0b502cbd72636b67a92f9039fb148ca19fbef3d0775616ff03420cebeffe36db3d1d1db75e7e77ac473841a399dc2a218df09598b2eb SHA512 144ec35e82194d16cbf4e56c34dc25aa83d8ec8021052cc471ec85f169b74bd9394ec52c21c898d3ac0b966fd7463cd567d729eec9152f5fb8307c87eb02877d
129 -DIST rust-1.54.0-x86_64-unknown-linux-musl.tar.xz 267840732 BLAKE2B 32e50467c4ee88cc502ea7e3e8cda9cbd89bcb6b7fac0c84b1509abf0a5c551d43f6522d148f54e4af65e0738b1dd13bfebaaba7e863909047fd53cac03bbbac SHA512 131f4743e5990c3e1ec2b7a0d1eb107a0e5264e6ce387cf4aa6db9a1693d0fe4a42de5722072708d72d580500d566f7772513974ce5589ea07997374fbdefdb9
130 -DIST rust-1.54.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 8b9194ce2b172cdd1fecbe064ddaa0047d30ddeafeaa903637e65775b139207c47da7eb17475ed17b1792b7c872ae71058c1f2cb7d59bd2d42a78cc590f9ec03 SHA512 2aaa42cab5272b6ee2ad0d3cd67b7dc648af68c5b9b5fd8f816688c0ebcc2cb0a24ac8c2a23dda5f17f7ba04f544625b3b03b22882c9122852bba680d8155afc
131 -DIST rust-1.55.0-aarch64-unknown-linux-gnu.tar.xz 233469360 BLAKE2B ac0529d771dcd22ed55cf52af12a5b55a8ee008d9dec2c09fb1aacb0c7ced78e87a6b7cd8d17a3dd81241d553b750720e48631c3a3702ee59bcac905f3a51420 SHA512 223a024701762675adb5c7c59fc54717d23f2ae4ea5984cd1cc0568d39c5207aa07a104ddad68da057f6434eecf23415ae13be2235797897d8d0f7cb5f2fc4b5
132 -DIST rust-1.55.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 02fec5fd64e97da4c74aa5354f557b3090c3df9c55d827c1811fbc41fe513ba00d8f854f95babafc7c9a4d2dadf50f4cbe6d3bf60cc10f12609c0957971c571b SHA512 1c2f41efb85971009a705ff3f82a45b6e3688d12b2c919c2555cc19dcc3b9575b516223a72caccb5ec3622e353fa0380ae3481a63ed2fa9b89f8e01c2771c95e
133 -DIST rust-1.55.0-aarch64-unknown-linux-musl.tar.xz 233248308 BLAKE2B 263506150ecb677c73a9a670952796d7df90b572ceada5fa4afd8b1478363670d802f6a26f47d0d6cbb34544edc63279dd4b08a9131e5702f4119a2236a91f6b SHA512 a74050bbeabee752d030b07f830b919467af59755b7b79f64edbbb7acf822bfbbd1d013d25091d37ce255ee9796056966d102bf5b3da475a859788af7ebbdf68
134 -DIST rust-1.55.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B b1b43bf430d33acc9a9b5f99148f1e0b930d3e271d40834a44ca839bf00369a01bfbcc69f4851e1cc951b26d6f7eedfd6f02b6ff9ada8dac85ccda0c22b1ce36 SHA512 04d31f458c285801b0185308a56700f0bc3bc2ad8c4548a1aa91e73bf94878810dbcf483403ad5815e80e87fb1417d958dbb18e6fdf090d2fd41b90d1c8c040c
135 -DIST rust-1.55.0-arm-unknown-linux-gnueabi.tar.xz 210542012 BLAKE2B 91e6eb6c42f99e13aaeae97ef85cb266378a0201c64c3588335022a7218bd95c438d290a66390ed004a627a667ed6e4acded9f79fd6a7d47017457fe9955c658 SHA512 3cfd6e6968ed4b7872376da4d33f2eae0bf10d99eaf5fcf59e6d9be432f0239b03baf46b70f0146175894f2eb1ef118854d263d4ba8d18913e4f820fdd1f97e8
136 -DIST rust-1.55.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 0902e4acc3a70750d8c2de86c22cfefad261e2b204c63d948c7e232adece894c4f7e15d799eaa3fadcef9a63953e603f5bf1e17c6f4b601cb4d93b88d8c970bd SHA512 39db8c7421e86c79189f1e0cc5a79dfae6e7633c43749f49cff371af862c0becead4a977cb75295b06da75d64516ceef68de4f42beee6d63e1eb4fb0bf976dd5
137 -DIST rust-1.55.0-arm-unknown-linux-gnueabihf.tar.xz 210534624 BLAKE2B cf02334a4b0182073b5387f3d1f16b6ae0d0508fc07e81ecc7623eb21031b03c1e6ab10cb2b6fd23071c3cc0c77adcf4cbd7d34d38e81853cd0ef02368c99036 SHA512 83a888c334caeda24f365df43df0fb83f367fda477d1bd7c869c88cff5407ffc134d8bd172a037c27a34d79cb28eb2e9629f26a7cfbc0db9209e581e06ec86bf
138 -DIST rust-1.55.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 17911a4745c705f7a4a2849301901912161c85300305e77588180d0fa4160a7ccd9188415c97a266613f35fdfd5b0b45879814c0afef6c6c2fea2bac700d0f39 SHA512 95d0731d84b49ecec8388fbcc0cb65f0ce93956a44dc62e1628f7e51e5726de6b611ed426a5e5c586a028d8808e6bca4257a8a1354b524087d833a32c3e0a231
139 -DIST rust-1.55.0-armv7-unknown-linux-gnueabihf.tar.xz 216342104 BLAKE2B ea2cb2d41c0a994124c5a5893cd3764f078157cb225117d9ca8641ca8896f02724beab7561a828d1163055e4c999ecece669f77920ccce0f495f2ff1b6632368 SHA512 b06b3c36b5ca35391030f3c9d2f64725263ac987002923d9263c4c27877d91453db3191e01d40c78f439a48f83da220926a2841337d815dd333591d453f2fc0e
140 -DIST rust-1.55.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B f35d5adf2ef48d52d22f6066a2dbf6a61543cf7e478a5d201caf1831f5cda53b7003148477fd043de98530bf3160de51f44f87d4e30be6cb7768344c6754f16e SHA512 e3cc3596e3f96d0aa6ec915690730118cea023e57b7bd9255acf80782acb865a1aa5ed3e404654d7eaa8110947f50f42b575d3df1eaef616afd2c55e8502b535
141 -DIST rust-1.55.0-i686-unknown-linux-gnu.tar.xz 228160060 BLAKE2B a5c37f6a25b8e09b3ca831f4f69d65d71f97bf0b0e975e7c92e8a4b2ec791f166f477b2fdce0ae6d9f539e598887a54b1e9ed0bc603da0e0c787cd2ba4b59565 SHA512 a0222c68c63ddd67afee552dd9ed636ea02fd3f26000deb7a1dc47806a1ec0b2fafaed903d4dabb0fddeb9e4026bf0da8bb2161c14db24d2883c084932e306b6
142 -DIST rust-1.55.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 62cc675de6155892cd6c0932d0b354cac4b3a07be58b2d6b021f7e86df058d5ecccef8e4ad9bedfd2432e84cea9720a982cbf9a50bf8a42149d8f197a27f8fb1 SHA512 21efa3b95a0344913666220f2996a8273e7d41077410b9eaafb7467976d0eca0139c780326b3e645d83db0b410e5db3a36342d89af668e65d045309f541c1c1e
143 -DIST rust-1.55.0-mips-unknown-linux-gnu.tar.xz 152431144 BLAKE2B b5b27cf62f92f551a39ed65c957b73ce30ef9d1d956b5ca342641bb647c4874d7e325ec5f1c22a340668315c8f50c34240d0a2044ac8e5a88608c02fdf4f7e39 SHA512 e7eb3a64ea87c211a77ac73c4cfa001849fde1f73605d4e58cab84b09c886ab1a9a850cf1dcc9e1af19fcea0ea53400529a74adab531bc0a5ae3cee70a7cc99e
144 -DIST rust-1.55.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 31dde6a6991040bc4772bba2577946837af84922b01c12bfa1ac9003f90f118c24d63bdcaff339b3a256f48cbfc55aac0bd1823727c35ca6424c5cf3b049d4b0 SHA512 685e6d15e79f71de45c9c2532cbbf7ded0c6b8d986c2bbb78887c43c05cc91ad5430c5f04c80d8007a3a86fe2936b29d7c8d92905cebf0ddbd152c526f324077
145 -DIST rust-1.55.0-mips64-unknown-linux-gnuabi64.tar.xz 159792528 BLAKE2B b762f4965771184fcf3ceaf38c7c8b62d9f4cbafe0fbc0a1e01a30ab9a5c951bff9472796c72ae1945d2a510b0efefd576f3ef0b4041eec7103cb5e5deb75e14 SHA512 74b199449c2237d71d2d8de4d8de05c82f631cda1fbf00b342707b4e99aa6aa7f89957d606c29dfeebb5990b3e6f09de5f360c484c8153cd17076bffbbfac251
146 -DIST rust-1.55.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 92a173654e7de569734b9c56f4f9d73d67fdad625b71db20c1f1fbbe20a12cb54a54a69bd215846101fc620b6a995d1f91dccdd59c97a5d6f2efdf59f1c40b3e SHA512 2f166793f3d814f39b11c968921fb9d95627325f588eab9d7b26b76c5824222978286cbfd2cc3b197d7a53711e74dc5da39eb422d0dfead9e2ad2638a2d3692f
147 -DIST rust-1.55.0-mipsel-unknown-linux-gnu.tar.xz 155530648 BLAKE2B ffdaba2d35b5a6287fa78234df4368cab5e95ee139600d2d0964398eb0eddddf0382fc5e17f721eff3c1b61feaadadfa056727e249266d4a1783dfd441316eb3 SHA512 b4de4aab16039b7119760922fc18e7a5e0d1a1cc61ba5b3b5f778ce9d1d234448c8cfb5d46ced58a5b5705c1ae1a79403b394f0c4894e6387d7a9276768b2014
148 -DIST rust-1.55.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bf9a712e8b3ee8e44a4a1e9bb5e70486d11a65a09134845553c8f2d201eb1f674e64a6dc50a9de7eba3c8c457a747a0c14ec8228710e2725fc4a4630dea9414d SHA512 f9f62b8d12d33446504e193df49b11507cf47f17ea63abe329505af25c29ef928505049e161bd0157f03dab5f54bd59c38382e0e2cd891e79bcb831dc4c1ddef
149 -DIST rust-1.55.0-powerpc-unknown-linux-gnu.tar.xz 165801508 BLAKE2B 752325711493d0caccd005a2509121992dfd3850eb87cd4100b61be08f42d0680d16098c631b15e4b94f63dc5d11f63f75e2d3d38ff7817fcf254563f80cc6af SHA512 c78fb4a5e7c59fc96f937eaee2e8ddf08be32376f45a6916aebdf046363f5ad792f67dbe1d42b699ee82b5f968671e710233f72d1677e70efaa90c9a54d36688
150 -DIST rust-1.55.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bdcea33c2655a29bbb154129e981229cacff826483d950f32b5df5fb9ba7728c68d25d35df796bd75a26cad20ff525e6de4a059d0c908449a68460ae83112767 SHA512 f3ba9d98da9d4eb60c0f07ac509c24281cca419b805e1efe89583c93bb050665992f63069b3a76d8cd810b5a81d28b3f732c54eba081c40e9f8e6e0d39e452ab
151 -DIST rust-1.55.0-powerpc64-unknown-linux-gnu.tar.xz 179595992 BLAKE2B 3ed33cd7d28f0d8f91fa0ad2e46b7e8e53afe3f0fe8b8557530aa7ddeb3489e054635b636bdedc85bf91f17ea074b286f603b83cdad1c149eec431bd0b440ab5 SHA512 367ddaee0131ae05945b0a81efb73fde479140cb8078d10ec166c0da68afc1fa2aff40a8e6246c2b4861a876b8672a8d8d126bf15d23830c6e170aa27c1d6a7b
152 -DIST rust-1.55.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 795eda0483df19dc9c3f4439ab01dd3a647cbcd7bdb03a6d236d699214c6d1e2b1d794515bc09b067b0c4ab789893d07ba9905821d4851c84e4b16cdc38e85b7 SHA512 e2c527769342b8c05b60065e74ab7c8b3fa05e39a78f7cdca3044fc3b3167c62911194402d2256cc98ea69a30d5ef8b726dfec76755b7211cb0e9f0131eb556a
153 -DIST rust-1.55.0-powerpc64le-unknown-linux-gnu.tar.xz 188758520 BLAKE2B 789d6a835f4bf3c5631e55645cb7d8b77674dfa66b49c6f5c089b2a913785aa8962ee5db90a34000958f946b0f00b648a31346aa93d509e898e6476c14d6f551 SHA512 67c98c7cc44482082daa5daa3926dc92782b373b3173181413e68d59ea07f6eee61d46f3832a3fce18bdc44dd563e2e1f85709435e04c599b299981ecd932a9f
154 -DIST rust-1.55.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ef25130d02f4570b433ddcd52545c7ceea9b239204a6bf138cc210f8a7fbd48922a0b8ab5a93a9f1c2b2f1d608bf525dd4f5402b03863defc8979fb84ec19760 SHA512 4a707f12d4b1c3113e0b4202fb0a7b66a04572f9c522ad6f0da0b049e1915ccdd9d3978cc03fb9a47a97639430101f3871869e99953374bfc5541d02ee0d7ff8
155 -DIST rust-1.55.0-riscv64gc-unknown-linux-gnu.tar.xz 182350256 BLAKE2B 1b139ae02b036719c7173d9607329a225455ac430d3911adce74ed0edd7c85e0f63a0beee563b7e26a4efe147083bcecf2dc93b5babad66303dcb7231bd83048 SHA512 c28beb76d9ae3a0727ae368845b4f62f8a087570a5464eac3b966ece6dd30d324696240a404f67c90cf005004bbfac8da31410d51469a7c34a6af3415e958acd
156 -DIST rust-1.55.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e04e2c6ae4c2192c558b41201aec4fede2fcb05022f2e841e9048f2891b3baad5737e27297c0479e7363f920b7a63a502fca0fa7481ffdeca5084d1fd8bd2a4d SHA512 96b6412bfe84c6b4d13a13a8bfccb28505e8070c2e5ee94bc572be84dc5a59a7c5208659d20fe0d37cf3c02ca8475e5c9c0d4f0a5b9b86aecce2a35bc91c5a11
157 -DIST rust-1.55.0-s390x-unknown-linux-gnu.tar.xz 187722100 BLAKE2B 030413321337cab855fdcf6ff4ffdca4cf1105e633fc4b28d049263a5fe40a0097a9e03ff4aeff80b57c761c672d96e65c9f774cd83a9aba0f95180a2eb2dac9 SHA512 7fc83c8723493864a470f32a05db9e16ecba0ff621080d8a3a257e6f42a37bfcc8d364d71aff696991dd85635f6596ffa72efdefee1620c308984536b48d212a
158 -DIST rust-1.55.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fa4d8d8bb025a9010a44a9f021ba2fb443146debd9281ba520d764b49db6dd0e8b7b614d7a131f1722b29be4b80eabd3694e14f47a05d87cb3382c799ef96a88 SHA512 9ed8aefb443bc51a33e3cbca80f3ce1e65a565735672a966b73e5f4c8f7363c6d8204ab0f9387739765b70dfa8269372156500d99cc4d74ed94d1c2473c807f2
159 -DIST rust-1.55.0-x86_64-unknown-linux-gnu.tar.xz 139040728 BLAKE2B 1d7905411b55617178c88a062a1ff3048edb8020126a8c4c047aef762c4fd13b1c8c5de4c06a97477d9cfacadf6dc008c2b7b66862dc0c3fb9a8dc48f12f5ed2 SHA512 4bc304727b1e9459194a9a9ad5c8e1fe63501f01047d479585de6708365b3f59e09aade64c7f4969df204f8bbcf9de9508745d2b96bc25cb74ed093f8053a4d6
160 -DIST rust-1.55.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d454086c93147737c7c144af288394512528e4ce759dc221d7371b62724857fe16e391949b5b4dac436bdcaef8bf817f577e8d951e1f4bae098d687b4a7bdbb5 SHA512 b175e3ddefd036fce29c80c65a86565583167f7859f0941dee6718fd71baa8596f1788a6bed5d992096959e1deda98dc9c10e8cbc896114b7938a05951c29f02
161 -DIST rust-1.55.0-x86_64-unknown-linux-musl.tar.xz 267291288 BLAKE2B b96e8fa1c8d2e55c07781db37ddd33ec7180cde29c84f5020f2ba0fbf6aa83f9db32723e191c15df765f965d1314a57d12d80e73d20deaab1333afca65bdfac7 SHA512 6fb700d5d17c084fa520b29f3012ac565eaf891705a27c7738a61bb9899bc952f679987ef3790875b5a7adae836c602b394c7e19103f30bbdf5ec82cf3e86567
162 -DIST rust-1.55.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 5ccf03518eae6406ff66bff108b26988a6a859e5cf88ca44327f9826d880ea26d6e115fb3e63f6a40d1cb15adc25d6f1c056438466095b7223269fb0d74540fe SHA512 8d84a976d9922d28a5ddac0f47258759a4c7542df02fb9ffede4a3e98ceecc6415229f3eb676a22536ffff842c6e7ee35d50d1507f2d818301493ee3a7db9bb5
163 -DIST rust-1.56.0-aarch64-unknown-linux-gnu.tar.xz 223490136 BLAKE2B 29085e44fbc7337a11d396e452e53c43c0ea2ef53d2bfd6e294c837f890ce4400e9274705764ab40680226010ab502798131b1d717d7a4a1cc590313ec65f8d2 SHA512 858a28c6d74848bed5e731cd785995b095b78375d6b10834b2cca97778d571a9bed2bc2104a924d099297eebe91f9e829d7558acba0a46b31d7cfffad520bc44
164 -DIST rust-1.56.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7b6bd9c532801b1759524007ea1aa7037303a94cc0571cc3265f4be867d4f69d5a3c732598db01c43716ceaa19717c418ca7d5df6ca030ef014618b849cf72e4 SHA512 d8d05fc573f93a7063bbe54a6785305171b096b8348a44b0e72753a5500d97cd1b903394c0e8fea601e33892592cda6dc667285bb095e4d4fe0c4fff8cf12b46
165 -DIST rust-1.56.0-aarch64-unknown-linux-musl.tar.xz 219878296 BLAKE2B 5f7b0670820f2ecf8499c47d5731ec371234be923dad2abd261cbb4cb6da39d27a813d7ceaef22aa75f9ffce3067500e6f02c157a517951a0377073847919a6b SHA512 9a1445794558352005921c92d64a454b3270a1052dbd6dc1ff5e407057403b232dea5183920459fd2c9a6f22423c28af60b427c2edcd3f19565e036f918570fa
166 -DIST rust-1.56.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B fbab4bc200ec56df82cceb8511d5e11c94a64cf2202eac7fd9eb32857ef4f7acd441482ebaea24fa04d4df6709f14852d937b6b62e500609f678044507f3ce68 SHA512 796365d5bbff1f39b46df8353a0ce282c368e649569a202c50e13e1bdf8e280630d38630a752f18dc8da545561675fd5112cefac207cd98adfaf556029514d5d
167 -DIST rust-1.56.0-arm-unknown-linux-gnueabi.tar.xz 202166060 BLAKE2B 1e73ce9ad86bc9f4f7a920a822829ce12c991e763f09cfdf16d1118ca16ba8f8ef217232eae303fdcfa0eccf5b913b80f771d8236a2fc0bcefa9c9e30f5cb92e SHA512 31ba5c7a8aca7f42789b606775145ef776d03a5b06c46e4336aabdd38f92633e2bc206ad74c28676c52387dd979acf742f56ea49c3de8bab868c98f18242e8b9
168 -DIST rust-1.56.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B ee433953b9fc732f1e8606b4070d379dfe373b94b702316f10ae5d0802baa7bd6ed19d01c6a4eeb206066a6cfbab7329f76c175c7b76023adacef030ad666f80 SHA512 d64bc0635f9d87323cbce77dfa779a3d360df76ca161cd4b175e5aa63e2a4cfe1c8609b38d678d7ef8bccc011326bc4851dd81b55836223ff84fb85e29cc6364
169 -DIST rust-1.56.0-arm-unknown-linux-gnueabihf.tar.xz 198940944 BLAKE2B 651932afcf232292611b20ca43a034e2b54060a15b6c4bf0c37c40b2864e59d9ef3ad865cc6a0729b02de34abe23a09e758029860d3d196080fef43268fd2546 SHA512 6e5edb3df13fcd0b4501e78ae55d2b62bca2c696e938f3e913cd15dd1e3fa802bbc813fbe5696cf5bfecf1e9fed99e6c83b23be423a467b084f6f66cf08646cb
170 -DIST rust-1.56.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 94363ce80bc31d867583484eab662c3a3012019c9e90205959b71df6a8893a92524673246e1c1831b3a228fc75233184bdcea13cb28ed1dafb3b8a0764fc8161 SHA512 2eff4a8d702c88a1e283139a9a435d845a1ba30fd2f2857f8c19c0d19fc94698ad6b6ac87be0b1d3ca4a78a6ad658bc57357c9c84e8983505dc29d080a4041f1
171 -DIST rust-1.56.0-armv7-unknown-linux-gnueabihf.tar.xz 204645860 BLAKE2B 4d1bcbb704954aa09fe89d0e2d15e886dc5e25c91c24a2239caeae228ebeb94fa40ccd7bacdf67a3b9ecb5aa0cb5b1d54306642d879591675380496142699acc SHA512 952edc69bd1747bcb711ea81c58c580b8b2128722edf851cb0a20e6b85674e9bba0e234e6eacd5e3052480a72d896f2792f1a281ed8e99b23dfe1c51b467e3dd
172 -DIST rust-1.56.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B be71c4cc8ee6e64e8850cf4c95b6f34c115fc1bfb62890c7f1794a229656fc3be1b54321db1174e7804540ca307360c49d07e45e418bd0ce7e1b1db20bb83da8 SHA512 2e9b2d38beb4199062f87c40875622ea2d914023d0fae2cd631db5f04b423c868089084e8731c3260a180d2d5aed531714ddd3c383f06703cae720942c90ef6f
173 -DIST rust-1.56.0-i686-unknown-linux-gnu.tar.xz 215611688 BLAKE2B 759781d0e5771cf058eb47ef6f5aa2cf5bc2c692d71ddad6bccf37af62a587cb38f70d23c7ba2ba0bdc07635b6516d2ed63a99497bdd03433bdab16a611e46aa SHA512 6e19d19ec3aa00262c90e66a7be46805b36601f8e13ff3b026479c589965c6006d045c92bc56a063fb284e830220af1124a80df1a2e7850bdfe1cc0fdd149f3b
174 -DIST rust-1.56.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c416bfa472174a38631022988de8b6294585a797b764766a9547564e5099f9fe24d46f27d734eb81c82156ccd135fd60c97aa9e13f69dc2a84b9a8554407ebaa SHA512 04a040802634f42fd2d9ea62a26b89d10c44426eb7f00ea4532859903fa89c7dec6dbe37fc572b6986653fb862236ca0d48be87c6febc7983a670c452c145ac5
175 -DIST rust-1.56.0-mips-unknown-linux-gnu.tar.xz 160762656 BLAKE2B 74a98ca534020c1beea16ed0aae5d55087e52e80743ecb5d4e23861cfa3e39c9f3eb216c948095f76be25a5fe89c47f2e1c7354b5b4f56acdd3532ae3874ee49 SHA512 a6e33f557faa842f3c5fd49223216516c012d4af9b3c5efb3f53778a38f02138e1b522b98ec91bfe523f507ebc932f6966d329f23b36fad6a3d105d4020bce3b
176 -DIST rust-1.56.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fd9cf1b07e64c4196e25c023dbd7b5dd9ecc346c3590f8dd4e5d3ed3b03b6b04da90a8549178eed0db0cee2acd5efa4be300da6907cdfa5424acc52ed047696b SHA512 a7278ed6ffa56025257c70e77f5dff3aabed699282e05b01f7f3eba8ca1a813f43f0ee07357518dde78df11fd3600cfd6dbc45757a20850694a0bdd2c079cd20
177 -DIST rust-1.56.0-mips64-unknown-linux-gnuabi64.tar.xz 165953860 BLAKE2B f02278555bbc3c8169bb4dff02383b8736fea8ca8dbf395aae5d62a10c0a9e25088d1d56b7d6b0fba6d4384f988f55d1d82153ec0038bbef0044fc8316cb7786 SHA512 fec707ddb8ee51700716ec6283f3ecdb910f7ddbd8ad4fef7882595afe5b55b1c8f862240172ed20cc8e07bc8db9682184fcc10ad58d2ef7e4eddb3e54a14dc3
178 -DIST rust-1.56.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B a1509f1799555bc84ba43eafff55c4e6e62821c3eef27280682210823cfafb627ec28d0b3faf1cf624f88c9bd2e83af1438b8659acdf3d33413d7e95a2271a53 SHA512 6a39541d53229f432090a1304797c1f2c2d203c72ee266a07e408907ed56a1dba15f644a074235dd56058f77bafeb27bde32087546db2a86b64a65bc7bbbd41d
179 -DIST rust-1.56.0-mipsel-unknown-linux-gnu.tar.xz 164590680 BLAKE2B a5c7c7e1ecb0a6cb079677b1a72c17fb0b141588a6003ec5ad01c54ecfc2d5e1f928246f978e7606b166e8a60c2defa375287931e04fb28da341037cd226040c SHA512 3b05f8f0e624e75608f94cb51be5c032b7ad56c9ee99220cac73a7f8f6c40cc35c3b5f846c2c930398eabdff2622c1d447720063b831006615c1ec4d2c25e01a
180 -DIST rust-1.56.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5ef21a9b209ec1b88df8cde1444bb5704656d3b435b1a4749ab65a13d0352392030c4ab4b59d71c2c03e554136c55fe44614b65d09fea644b7de572d357ccfdf SHA512 fd9efde43ae9d3427a56cab3128481733e0ee51d14365b8b5e65dbb5173bb11a564a4fdf68ad23ec443ab3371267399aba3ba704f3da41ded038a2d2ee898b46
181 -DIST rust-1.56.0-powerpc-unknown-linux-gnu.tar.xz 172592208 BLAKE2B 54016cd5f94e2fdba36329e5af7eb161de0485adc4f0e7b7933694bceffde8b101fc778880eb66156851f38cee66303b24095a6928f668d08bcba4277e2f6e92 SHA512 dd5e5a0f073c3de04a605cdfadb19538884ce1a715946e60fdc85408fa09a45d230eb3141ad999c5edb469a789151d5e6c7565743e162f7ce9add99021cb32ec
182 -DIST rust-1.56.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 56f2c613dcf42d969da0734f7c5d6d544d1a2883b4435e941c0779f9406c9b02a9eb8eeb4d8393cf7abc389ba2df78f05b78dad56848c24df1023971101a9a92 SHA512 a5a933921e9670b3b55a9ffb01d8eb5b7520a7e73bec987a161a7f37d07f9024266566a7059b47592e66f6c1926934ef2306b1e7283e88329e68a124255f07d5
183 -DIST rust-1.56.0-powerpc64-unknown-linux-gnu.tar.xz 186235644 BLAKE2B 13754e77299dd432adba0773586910a215a8916399ea827a6b5ab5d8866b731ec0af2a0772a8ef83ad897c491add7c513c4f3f06c41c61bd600f2ff742610b3e SHA512 1ad3c1b7da0cb4a697c8bbe8a0580a3a8f01e1a8e415b75ab4798f5425098855ca9c95ec636a36e796d919464f3ed3ca651e8d3811f3adb9b040976422fecaab
184 -DIST rust-1.56.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 62277bf7ee93ff6ad847cd9c69e89a2bd58f31efd235eafc7c4814c2e465ec24390c4a9fd99fc2c4c53fd994be159720b03ee169486f0c7af31da50b91cec2b0 SHA512 fab2896c285dd6641b5a7e6c8d1a9e96c084b65fe05cb519cc20abef7d5d42dfc0aaa2c61c137c89db26d0701fd4b32dee6453e98651f98b2d63ee34c8627dcd
185 -DIST rust-1.56.0-powerpc64le-unknown-linux-gnu.tar.xz 195350800 BLAKE2B 2ceeb04ae5a5482ee3908f07dc50e306426fac09aaab154c6235392ca9e403ed36f492dbf23b3f6172e964d2ce7360fc0d19f345ea39cc28874d812e21e22b8f SHA512 bcddee74d0c7c52e7ec17b4b808b0caca764bd6f4ce6235cceed5c93983673c768981cd8403b2a7cb993eb5055625af2679c8635955d4765acd871643eabb6b4
186 -DIST rust-1.56.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e4085f8f853cfd50e44b0bb8ca70a73fe2cb14827261aef40c98fe399ed2aaee9d29acaabe2d85d51d77ec1ccf6eeb263aba1042c4e06c2b0ff7539ace11368c SHA512 6d21afed2e7eebc11d1713774feb662abaf84d1ad524edd506efb0910654b84828017db6c07248156514a37c176dde48088cf387aebccf6476ecdbdfc961c0dd
187 -DIST rust-1.56.0-riscv64gc-unknown-linux-gnu.tar.xz 192792856 BLAKE2B 85af51b16ef1f749b1903cf98d4cb5d92d26bb17d5b5c2d493862feb8d21316a2d4aad73f3f9c8e2ef1436544a592d8a8378f3671c4c099b39e6e24f597bd4ba SHA512 ff9959be93e6d4049030d9e07fe6dc8be67fc635698ac37630b0cd8e1e446e6909879a4aaac4b0b08b93dcc2ce7650986d961ae1001fb683b235efc101b7e470
188 -DIST rust-1.56.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B da4e11a82df51283edc6066d5a54b1f2c5937e1f8a9e45ecc10d1509a7377c630a63c141b413123b01d6df67c0be6c63b0017bfae20b13c654d3a5de98981410 SHA512 2fa854448aa07f2c23bfc6145bab5973e73f0c444dbde8f0f823b6a843f2125773115fd91660906e7dbede25d44bee2ae3873d299ebf75a8123c618afd07fb4d
189 -DIST rust-1.56.0-s390x-unknown-linux-gnu.tar.xz 194222748 BLAKE2B 4cc8ac554f85ccf0963da9935da46d51640f37346fec2486fea50afabdd881c331c54af6ea15ef76a53d850dc9cbd8cfab8f4125b4749045d985393ead77b1b9 SHA512 8b00ed11f12604c377cafe7c206f8db10980a4c73bfe4b4d1d628ca6fcbb3df0553decd89a9ef775c06e62f446b817d4d51ed7b55bba5f1826e9d384fca7a26d
190 -DIST rust-1.56.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 443228e6dc0fcf1da9a33a89938710efef0881f835daa2af1b7593e32f90403992b752bcaa321d5241f233faee3773f205a9afa44f12b59978cc84c261b85ba6 SHA512 608a7062e93e7ada52fe9688f2efe1e3caa4d768f0e7be31cf47b8665a8dc550e9287d339da6712366cb68a14868e07e5b68c4a25b86c2bac1fe738f77815b3f
191 -DIST rust-1.56.0-x86_64-unknown-linux-gnu.tar.xz 147894784 BLAKE2B 6cbdb8a82aba4715d07c41497443a90cbe2bbed32ca95b3a8ca4bfd048334f1158b30f221bdec10bbef2d07344e8a35d4320ba8b991006263a6b764932cdc7e4 SHA512 bfc3a7493c208b35b42f40867286a6b3d97bda1c45983379d4223df31291e046a1214df1f88df2cb6558cafd8912cb8f0bab99a45899321b128e729ad03b9493
192 -DIST rust-1.56.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e0ed39db46b40631f69fa379a04ec37ba314587a4f081aa1f3251e01b7221ee8732b668cfcc4c24c1a3950f3f8dcfd542a1a73c603cea545b812d5d3a9527055 SHA512 3e9d0b159684a496e29c9e40af11f16f5ef5cadd8bc4852018a953310e77a4e29db6c14ffcc86198908aa4998550c83cfd3f2cc42e007122d56167d664776c44
193 -DIST rust-1.56.0-x86_64-unknown-linux-musl.tar.xz 255010720 BLAKE2B 286e91cbf001de6f888bd82139e6711b32f03d45c599f26b01f60222d98c3521a1933b3b9b7f8c46fa79d481780dc8dc47e5e24985b721a6998d620b446c38b4 SHA512 fb5a914a25ef3cb39393207a75c40f1313740167062feb4cda4084e738f4e93a51624a8a9591acc18553cfd6e2e232984c8c84acc3dfd77fbe38b17085850881
194 -DIST rust-1.56.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B bb7cfc775c1c44569276e687028e9a7ffac31577310052d9c354179a541ee13b0ca00a025e994e03ab17086d0abe6dda6845ed1cb10879425439c7651bdc9269 SHA512 cb23d98cfb1b59fcccaec575145b6f38846f3f49b16a3be199b06d6198b1db13720157ca65a01f6ef76abf742507bba39776d130f0fd03aa228acf5917457f7d
195 DIST rust-1.57.0-aarch64-unknown-linux-gnu.tar.xz 228665060 BLAKE2B 98fe268d060a7f19c284bf02fec148550807b6c75fad042b85f07b22c127f911e4e7e6d9738b4bef42b5a46cc888e5a0df79307cc84e39adf3ed9da3fd531188 SHA512 71d32e1ed3fc4a2eaf3594112b3b43ab82bd28b35e547542f6c1ed006175d7cf805be373a4da8b962762962dd32fe951c8ca7c0a424addad5d4e828441d5386c
196 DIST rust-1.57.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fc832ff510b498a5763a26b420a6cdcf6b2b5fa8ce655f01ab23190f527cfaac144ac68378c6af3d3048440330f94b5d213d049c65ad87f0701b0555ebfa2b6f SHA512 a225f1db92c6e57b977873a3e5dbd07fa1288d2f8d79a879cc72dfc0dff66e70ce56619198cf36376b2774272c85363b8e8abf14efe8404f4cc038410c648ad3
197 DIST rust-1.57.0-aarch64-unknown-linux-musl.tar.xz 224700500 BLAKE2B 2eb3122af42c499bf92b93946b20b6414d51ba895a77a8e9c53dc437a20093605b2e9f22d8f88b4fc3ca7f7b75d425a2442b36fcea54b583692c32f728f23bfc SHA512 0850861d9d2c22d76b1550e7d6b64c746c3cc24b51a68949948528bdd93621f74e6c07d23428fcdb280e884e469f2e4f2d3f9a7f81ccfa61d41265e31af3a9cb
198 @@ -190,17 +30,5 @@ DIST rust-1.57.0-x86_64-unknown-linux-gnu.tar.xz 151033748 BLAKE2B 61ecece6a8aa3
199 DIST rust-1.57.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ea41b27fd25cc75efac73203688ee0882767fc76a2fe09b5e424c42467d3e332463c5560cc58f3b20f6e4b44289a25cfb0d36e38a7a9a7b3950ef875a59dc9ae SHA512 8b955bfce6c130e4b95054b98646f7f9b89e621256759ee1ff533df5f777312dd7adbb192ee0076c9b9baa6883a74a9def50ef598ba8c707762290d465c9a8b7
200 DIST rust-1.57.0-x86_64-unknown-linux-musl.tar.xz 260333980 BLAKE2B 75342ae8637355e714d5217d78604cfa6a601d3f9bc0ed4667ff0ca57c6521567b19b9bdb10f79761e2e5fd21ca10e12f3fae0c65791118fdb0c35f8f88349f4 SHA512 204ed493528757b8e3e8df13d062c9ae74c75c3e3adc1a2efc0dfc33d2525629168a558dd32653f44a4365191bf203a4415a77152276288a8e122e6bd587394a
201 DIST rust-1.57.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 506400c3ea70469cbda0e492e85d41b7f94fba790ec19d1c3491bf4a00d283f97c8fb37319ad6c4a43b22a2195c21d1b9e3c16a5b2a9a82833ff61ad49bdc793 SHA512 793369dc7a854c48a72d81446a0c8eb9d83a071af77758e0bcbb8e4d518fb87c5a23c085202b9b427a02bdd772ad9c82724b34295b851f26f384c3e801bf9a04
202 -DIST rustc-1.53.0-src.tar.xz 115686332 BLAKE2B fa068f89d42f927fdc79ee31aad1386eaf2aa596a060e059c5a1a73fe48c48d008fc952cd6c7912b743e41d77a94b205639eed0f728b2539b62f18a772cabfe3 SHA512 70485cf7a0f7fc36ee31644e546374079dc387a85b44e5e793707fd0a4d7ca05d311291e78b86db955485d8f21c47ff9e1908acc4da68ba04929287213a40c24
203 -DIST rustc-1.53.0-src.tar.xz.asc 801 BLAKE2B 75d3aa4122968f10a119f7a04df897f496588c7a1a2ddf1ea2222099c9efb0e320f5677a26c3271f86e7f500120664485f54c6025ae3c6df30d2b0fe758f5826 SHA512 e337579b9ab4febca4594c2c5d42c279b51cfc745c383be9a430204188311a25319c04c73fde34fdb2bb98a88bfd8daaddc67765834330e6c279a6e5a5648247
204 -DIST rustc-1.54.0-src.tar.xz 116286856 BLAKE2B 5ac47822646a0b6205f09282168b4d4ddcace9f6bc8f242c890327ca4074626f129514f8bcae5c5556015745f718990cce490658076f5cd3526623439540416b SHA512 5162f85b43ca2c5af93fdbfb2597d75df8a838f7fcc025a5298499ce1043db50f1ea2fbba753e47ce5daad3d80d4b612acf6527ef902c34117763e687fdbbcfa
205 -DIST rustc-1.54.0-src.tar.xz.asc 801 BLAKE2B 5ee9166eaa00e4ffec10fb82b18946d403bc2030c6e04de6449311cbccc2ef1b017044f451a1c19be3a0a9640c4a9a9e4bd22d28e2115509f333ae38eb25e9d4 SHA512 5ad91f43515de14114964db0348cd28c08adc6dc935f110bf339053414b8eab8a40f1074ceffa44ed2df61254f8368d867479400618c44efaa0333642ab49d07
206 -DIST rustc-1.55.0-src.tar.xz 117197580 BLAKE2B 8d9739ce7571146aee0e07c6287de9a8c4f1a914606cd47819eb1ef118b15772ecf22d0d43d7732f03c234a013fa54a4a7f0578a3f136af518f71bf64a03305d SHA512 7522f2fa95d5af92472404ecc97d7d9e745e88c933196a83fa373ce1efff6db3c295e0e2afdbfa1ff00644554efa0c3c7f6c11f9119ecf9010cb440b3f27c2da
207 -DIST rustc-1.55.0-src.tar.xz.asc 801 BLAKE2B 5b4ba951ed7ed56c7bd9c71df89cc1e966485d77411016ad71a811ad8e21b88295deec08f24f65afdb163e69ee0fe19288bcc64d18fe272bea51319caddb66b2 SHA512 9bc858ce26cc069cafaefe6165cb15a07e144ad6d6312bcbe115a0a51fec6e281d3e8a7977e958d7fa10e77139548d57396b1552a2802ec74b7bc6ac641e7ae4
208 -DIST rustc-1.56.1-src.tar.xz 121798264 BLAKE2B 09677b0332022f28a0d80949a6735929dbf64276f7eb57195d8c33e6c80f13c903432ff77d8834093ab551677618fb1d385f2300e2b1b4c064f9c245c696be32 SHA512 193468e211cde9ebc5f6e30b8e3733b79bd8710fe6dd45c7ed8d4392f91010d30466787afd4d0b2041cd7dd994924fee8ad111048824e248bd994959e55bf15f
209 -DIST rustc-1.56.1-src.tar.xz.asc 801 BLAKE2B 70ed1c26971e864aa6cc9b05eb52c4a140d0d0cccb3ff66d4a13e1b1dbac958c5369f76524c4702311566ed26aff635f5e3d35d9da71d96e070f5f0e978dc2ba SHA512 f997e7962ef8b283c19c97d8b898f3642f1a58c89a9cc5470cf88682263a42e2054d670c12bf93c41e81edf8324a5b51453f402a74bccb7744c7f463cf689aa8
210 -DIST rustc-1.57.0-src.tar.xz 122681768 BLAKE2B 739fe2c34b01bb0c6beeb7717badeb2ba12f00b91831977bf0d8782d806071f8ed696e94bf51d53509ae6e5c5773544b2dcf4187e81682c2f765d0975c64ca7d SHA512 7903bcfc7c1db208da5d5991bd5b7f55dbe5917d4814274a8badf0d3b767211e81f8626c355ea93142f236abf116d5921c0b542ef309fbe84ece1ce84e5af30f
211 -DIST rustc-1.57.0-src.tar.xz.asc 801 BLAKE2B e5c2e91999d8d2bcb5be36ddc8559a59fc53445f639bd179239489f9fd2a2f00f2191cdbb2000b73866fbb332b51be090e95e348a3573676dc24e00cdbb071fa SHA512 fcf1393a1be3c585447e08078b804e7ffcddcb47d87877c13526592e317b889b15ad1786baef5d6adf020631a6773a9dd31c04779f475a528b28871920a4641f
212 -DIST rustc-1.58.0-src.tar.xz 124348768 BLAKE2B e5a0d919a1ca1202e218cec3da93fc69cba163069b1f2b4051778a49184715579c14cd6b03baa0225b10a8f1adf758aca427c910d95dfa2e647bbf8b7d133785 SHA512 70104f4d3b474dcb9935200ef0503f29cb15f10d38ba8630e1dadbb384924dd9137fced647794699efe83ac88083e4ae5f45712f0e1c8bc0a6f8c23eecdb0aeb
213 -DIST rustc-1.58.0-src.tar.xz.asc 801 BLAKE2B d8b3ae366d20e0a27b53973e0d215c0fd5f596116ede15ac0e729db4a92fff6c602fc3893674863040a97abaaab36b351413e87a2c6d77f823fcda5805d23daa SHA512 e4bffe84637b2708d00fae091e3eb868063a8f65da918a847ef7db3f1edd35f96068489cae77238decfc134f4456cf6e3122f993e61f1e4986d3ec7f029d7125
214 DIST rustc-1.58.1-src.tar.xz 124353160 BLAKE2B 686c7272db544ad46f7fb01b4e05f24f4e08ff959a000cadfaef5d8fc413b93f5ed839077bc9715defc7a0a179af091f65c7a5d7104b0b3153f0654c237c094b SHA512 eff3279d2e519343cea542a9ae2daab592e44f35af344e33ff43ed55fc7c824511790d1991dd36a603d12465de8c3688e7194c2b9557f288c587ffa04738c2ce
215 DIST rustc-1.58.1-src.tar.xz.asc 801 BLAKE2B f0b600a503b0ca777dd5d690dca7252ecc6d7d49ca4a9cc8edc0647038f727e9052a861f9868292f837d78d6b02efe9ed5efa85843262c44cf6f73254cc7c9b0 SHA512 983c1ffdc4febf8bce6efc123c76b13f233772bc0a152ffaeb7ebf8f1f7b82a6b5d653407a4d293953d6fbf62c0df4ff4d398a1133061b53ae0f85317a14380b
216
217 diff --git a/dev-lang/rust/files/1.47.0-ignore-broken-and-non-applicable-tests.patch b/dev-lang/rust/files/1.47.0-ignore-broken-and-non-applicable-tests.patch
218 deleted file mode 100644
219 index ff1707f4b8a4..000000000000
220 --- a/dev-lang/rust/files/1.47.0-ignore-broken-and-non-applicable-tests.patch
221 +++ /dev/null
222 @@ -1,75 +0,0 @@
223 -From 1879d1d1a284bf51c752e47db284ce22701ed5d0 Mon Sep 17 00:00:00 2001
224 -From: Samuel Holland <samuel@××××××××.org>
225 -Date: Sun, 16 Sep 2018 16:38:48 +0000
226 -Subject: [PATCH 12/15] Ignore broken and non-applicable tests
227 -
228 -c-link-to-rust-va-list-fn: unstable feature, broken on aarch64, #56475
229 -env-funky-keys: can't handle LD_PRELOAD (e.g. sandbox)
230 -long-linker-command-lines: takes >10 minutes to run (but still passes)
231 -simd-intrinsic-generic-bitmask.rs: broken on BE, #59356
232 -sparc-struct-abi: no sparc target
233 -sysroot-crates-are-unstable: can't run rustc without RPATH
234 ----
235 - src/test/codegen/sparc-struct-abi.rs | 1 +
236 - src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile | 2 ++
237 - src/test/run-make-fulldeps/long-linker-command-lines/Makefile | 2 ++
238 - src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile | 2 ++
239 - src/test/ui/env-funky-keys.rs | 1 +
240 - 6 files changed, 10 insertions(+)
241 -
242 -diff --git a/src/test/codegen/sparc-struct-abi.rs b/src/test/codegen/sparc-struct-abi.rs
243 -index 78e5b14a212..6f93e93286b 100644
244 ---- a/src/test/codegen/sparc-struct-abi.rs
245 -+++ b/src/test/codegen/sparc-struct-abi.rs
246 -@@ -4,6 +4,7 @@
247 -
248 - // only-sparc64
249 - // compile-flags: -O --target=sparc64-unknown-linux-gnu --crate-type=rlib
250 -+// ignore-test
251 - #![feature(no_core, lang_items)]
252 - #![no_core]
253 -
254 -diff --git a/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile b/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
255 -index f124ca2ab61..363b18f0985 100644
256 ---- a/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
257 -+++ b/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
258 -@@ -1,3 +1,5 @@
259 -+# ignore-aarch64
260 -+
261 - -include ../tools.mk
262 -
263 - all:
264 -diff --git a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile b/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
265 -index 5876fbc94bc..5f167ece1a2 100644
266 ---- a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
267 -+++ b/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
268 -@@ -1,3 +1,5 @@
269 -+# ignore-test
270 -+
271 - -include ../tools.mk
272 -
273 - all:
274 -diff --git a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
275 -index 9e770706857..6d92ec5cec8 100644
276 ---- a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
277 -+++ b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
278 -@@ -1,1 +1,3 @@
279 -+# ignore-test
280 -+
281 - all:
282 - python2.7 test.py
283 -diff --git a/src/test/ui/env-funky-keys.rs b/src/test/ui/env-funky-keys.rs
284 -index c5c824ac58d..f3fe047a79c 100644
285 ---- a/src/test/ui/env-funky-keys.rs
286 -+++ b/src/test/ui/env-funky-keys.rs
287 -@@ -1,6 +1,7 @@
288 - // run-pass
289 - // Ignore this test on Android, because it segfaults there.
290 -
291 -+// ignore-test
292 - // ignore-android
293 - // ignore-windows
294 - // ignore-cloudabi no execve
295 ---
296 -2.24.1
297 -
298
299 diff --git a/dev-lang/rust/files/1.53.0-miri-vergen.patch b/dev-lang/rust/files/1.53.0-miri-vergen.patch
300 deleted file mode 100644
301 index 347f147c9942..000000000000
302 --- a/dev-lang/rust/files/1.53.0-miri-vergen.patch
303 +++ /dev/null
304 @@ -1,53 +0,0 @@
305 -From 64f128c45687d18d64fc6856a30fde585b007e00 Mon Sep 17 00:00:00 2001
306 -From: Ralf Jung <post@×××××.de>
307 -Date: Sat, 15 May 2021 14:17:30 +0200
308 -Subject: [PATCH] support building Miri outside a git repo
309 -
310 ----
311 - cargo-miri/bin.rs | 14 ++++++++------
312 - cargo-miri/build.rs | 2 +-
313 - 2 files changed, 9 insertions(+), 7 deletions(-)
314 -
315 -diff --git a/cargo-miri/bin.rs b/cargo-miri/bin.rs
316 -index e29bdc771..84447b3a1 100644
317 ---- a/src/tools/miri/cargo-miri/bin.rs
318 -+++ b/src/tools/miri/cargo-miri/bin.rs
319 -@@ -6,6 +6,7 @@ use std::io::{self, BufRead, BufReader, BufWriter, Read, Write};
320 - use std::ops::Not;
321 - use std::path::{Path, PathBuf};
322 - use std::process::Command;
323 -+use std::fmt::{Write as _};
324 -
325 - use serde::{Deserialize, Serialize};
326 -
327 -@@ -90,12 +91,13 @@ fn show_help() {
328 - }
329 -
330 - fn show_version() {
331 -- println!(
332 -- "miri {} ({} {})",
333 -- env!("CARGO_PKG_VERSION"),
334 -- env!("VERGEN_GIT_SHA_SHORT"),
335 -- env!("VERGEN_GIT_COMMIT_DATE")
336 -- );
337 -+ let mut version = format!("miri {}", env!("CARGO_PKG_VERSION"));
338 -+ // Only use `option_env` on vergen variables to ensure the build succeeds
339 -+ // when vergen failed to find the git info.
340 -+ if let Some(sha) = option_env!("VERGEN_GIT_SHA_SHORT") {
341 -+ write!(&mut version, " ({} {})", sha, option_env!("VERGEN_GIT_COMMIT_DATE").unwrap()).unwrap();
342 -+ }
343 -+ println!("{}", version);
344 - }
345 -
346 - fn show_error(msg: String) -> ! {
347 -diff --git a/cargo-miri/build.rs b/cargo-miri/build.rs
348 -index cff135fe4..ebd8e7003 100644
349 ---- a/src/tools/miri/cargo-miri/build.rs
350 -+++ b/src/tools/miri/cargo-miri/build.rs
351 -@@ -7,5 +7,5 @@ fn main() {
352 - let mut gen_config = vergen::Config::default();
353 - *gen_config.git_mut().sha_kind_mut() = vergen::ShaKind::Short;
354 - *gen_config.git_mut().commit_timestamp_kind_mut() = vergen::TimestampKind::DateOnly;
355 -- vergen(gen_config).expect("Unable to generate vergen keys!");
356 -+ vergen(gen_config).ok(); // Ignore failure (in case we are built outside a git repo)
357 - }
358
359 diff --git a/dev-lang/rust/files/1.53.0-rustversion-1.0.5.patch b/dev-lang/rust/files/1.53.0-rustversion-1.0.5.patch
360 deleted file mode 100644
361 index bc6ae8be00b7..000000000000
362 --- a/dev-lang/rust/files/1.53.0-rustversion-1.0.5.patch
363 +++ /dev/null
364 @@ -1,234 +0,0 @@
365 -From 12efa21eb88cb43d3b927952da0c5635373ac92b Mon Sep 17 00:00:00 2001
366 -From: David Tolnay <dtolnay@×××××.com>
367 -Date: Thu, 17 Jun 2021 22:34:55 -0700
368 -Subject: [PATCH] Update rustversion to 1.0.5
369 -
370 ----
371 - Cargo.lock | 4 +--
372 - vendor/rustversion/.cargo-checksum.json | 2 +-
373 - vendor/rustversion/Cargo.toml | 2 +-
374 - vendor/rustversion/build/build.rs | 6 ++++
375 - vendor/rustversion/build/rustc.rs | 30 +++++++++-----------
376 - vendor/rustversion/src/lib.rs | 15 ++++++++++
377 - vendor/rustversion/src/time.rs | 13 +++++++--
378 - vendor/rustversion/tests/test_parse.rs | 10 +++++++
379 - vendor/rustversion/tests/ui/bad-bound.stderr | 4 +--
380 - vendor/rustversion/tests/ui/bad-date.stderr | 4 +--
381 - 10 files changed, 63 insertions(+), 27 deletions(-)
382 -
383 -diff --git a/Cargo.lock b/Cargo.lock
384 -index 0939f19cdfe..26a89caf050 100644
385 ---- a/Cargo.lock
386 -+++ b/Cargo.lock
387 -@@ -4582,9 +4582,9 @@ dependencies = [
388 -
389 - [[package]]
390 - name = "rustversion"
391 --version = "1.0.4"
392 -+version = "1.0.5"
393 - source = "registry+https://github.com/rust-lang/crates.io-index"
394 --checksum = "cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd"
395 -+checksum = "61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088"
396 -
397 - [[package]]
398 - name = "ryu"
399 -diff --git a/vendor/rustversion/.cargo-checksum.json b/vendor/rustversion/.cargo-checksum.json
400 -index e1277df7b59..0a134695aaf 100644
401 ---- a/vendor/rustversion/.cargo-checksum.json
402 -+++ b/vendor/rustversion/.cargo-checksum.json
403 -@@ -1 +1 @@
404 --{"files":{"Cargo.toml":"1a91782510461d54726e816ae776042b95c79c9949d49c11b8782caefc22ead2","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"01dc6a1bf499a12bd0bfbbfe4db2ca8460b2c151235bcf2aad2356de4c2ec50a","build/build.rs":"481daf363b7004c90ffc3e012863a4102e9f26b9aaa2a4a295c2dd78f690be28","build/rustc.rs":"4dc8f1764672137bd15758cc19242740b0d6ab99e4a69171ad0999f9112a15a6","src/attr.rs":"9301cd4aff5a9648c057d5d8de9eb66921f0c3a715c51ada4459576bd49c8b19","src/bound.rs":"44bda74d3aacfeeeac9dae2f7eef3acc844d4c3c7eaa9d3e6288e5aeff269dff","src/constfn.rs":"613b8f53b21cc06b4f619fce9000993d3e7873b650701ca01cef1e53bed5b40a","src/date.rs":"454c749a60db8144a706a813e06fe3ae39c981920ba9832ef82f3f9debe1f052","src/error.rs":"cb37102f03ebbaca313d80f9714fe08dfef92fe956789ee87d93eb6121705f4f","src/expr.rs":"8e8ca76f4f5838436d9d7273f499c698bb41f6c15bc07d32ec5c1cb8bd3dd731","sr
405 c/iter.rs":"8d4b817b9abc4e817105b673e15f29ef9bb8284a010ce01ac2d83387fe136947","src/lib.rs":"f8347832d8072058dbb4af6b8d67a834a02fe9c5460bbaa26defec4b66317f1b","src/release.rs":"abb8ddd877c39a023bf5e7bd67063d6e4144e79758a8bafa338167f9d15b89f1","src/time.rs":"45fb48ff0a0046a5a1b108b9ce53b14885637ad868ede1d66970379c2b7f16ef","src/token.rs":"824ce765f692db73afa02d3ebb0281c750748035efc98fa547be29d3072665ce","src/version.rs":"afdb048bba95bbb885945eba5527b6bf0eca0105642bfc304c2f82a8b7d556df","tests/compiletest.rs":"0a52a44786aea1c299c695bf948b2ed2081e4cc344e5c2cadceab4eb03d0010d","tests/test_const.rs":"a8297ca6559f895a3b2664964a42b6f82bbbc3c8faa9556a513006e6e1827995","tests/test_eval.rs":"6f0ee3f49c9a0d0c374a4d0e9a9dce753cd9fc2ca7725e000a435dbd5f4a9ce3","tests/test_parse.rs":"fbf9695f4208263743715e6c8b6294dfffee21462a65dfeb9339a70c0e18dbc6","tests/ui/bad-bound.rs":"25bde278fcaabf62868417148a5e5f2006bf589d7ebd7bf6004fb8d78e47594f","tests/ui/bad-bound.stderr":"bc9297f758c2541fb0a8b48d5785f4bb
406 cd0d2a07d876ba0baf2fc9de9275e7e6","tests/ui/bad-date.rs":"6e23714dae8b6346fefe50dacd4abba3265248bbadfdd60c739138aa8a0037ba","tests/ui/bad-date.stderr":"1ac3cab13ee900fc8344e8fab21ff4d9cad476aca44925a4c1b2293a6b59b742","tests/ui/bad-not.rs":"f003df8bd245e9dd8edc3a6d94078ee5162fac7a98db881271f0f5b6db98d45d","tests/ui/bad-not.stderr":"d4ef78fae4a82419e737757158796cb103a5920df498956eaf57ed201797b463","tests/ui/bad-version.rs":"f4ea2cd038e6c63deb9c2e3ceffce93dbf179d9ce18c16d88f3b6cd7138a8c8e","tests/ui/bad-version.stderr":"60ed51c62f4c2fb6ff95cff7523cfca379ed434f319da9d82704318588792338","tests/ui/const-not-fn.rs":"10bbe38f0d89391fff0698756e4cfd4e72a41090360393a0c951b67df14d1c35","tests/ui/const-not-fn.stderr":"9551f7f222445b31d7af2415d467301c332d55bb3d5a143846484f2f00047a01"},"package":"cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd"}
407 -\ No newline at end of file
408 -+{"files":{"Cargo.toml":"a09ee758f816eddff8a8c7fb5be54dd95e74caad18a207251faedd251ecfaf1c","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"01dc6a1bf499a12bd0bfbbfe4db2ca8460b2c151235bcf2aad2356de4c2ec50a","build/build.rs":"bae427f344972e6e0e348ec48dce0947274b3ec6cac0938497a8d3da5c9834e5","build/rustc.rs":"3e4acf7ea679f9331dd4e8dbe42a08a312f58379ea1eee5898793a9848d06d8c","src/attr.rs":"9301cd4aff5a9648c057d5d8de9eb66921f0c3a715c51ada4459576bd49c8b19","src/bound.rs":"44bda74d3aacfeeeac9dae2f7eef3acc844d4c3c7eaa9d3e6288e5aeff269dff","src/constfn.rs":"613b8f53b21cc06b4f619fce9000993d3e7873b650701ca01cef1e53bed5b40a","src/date.rs":"454c749a60db8144a706a813e06fe3ae39c981920ba9832ef82f3f9debe1f052","src/error.rs":"cb37102f03ebbaca313d80f9714fe08dfef92fe956789ee87d93eb6121705f4f","src/expr.rs":"8e8ca76f4f5838436d9d7273f499c698bb41f6c15bc07d32ec5c1cb8bd3dd731","sr
409 c/iter.rs":"8d4b817b9abc4e817105b673e15f29ef9bb8284a010ce01ac2d83387fe136947","src/lib.rs":"5652f6f84fc80136bd29b2125f7676e80e0df7d40aac274b0658c99cecbd871d","src/release.rs":"abb8ddd877c39a023bf5e7bd67063d6e4144e79758a8bafa338167f9d15b89f1","src/time.rs":"bdd05a743b07a6bbfa0dbc9d4e415e051aba4a51a430c3be1e23447eae298c8b","src/token.rs":"824ce765f692db73afa02d3ebb0281c750748035efc98fa547be29d3072665ce","src/version.rs":"afdb048bba95bbb885945eba5527b6bf0eca0105642bfc304c2f82a8b7d556df","tests/compiletest.rs":"0a52a44786aea1c299c695bf948b2ed2081e4cc344e5c2cadceab4eb03d0010d","tests/test_const.rs":"a8297ca6559f895a3b2664964a42b6f82bbbc3c8faa9556a513006e6e1827995","tests/test_eval.rs":"6f0ee3f49c9a0d0c374a4d0e9a9dce753cd9fc2ca7725e000a435dbd5f4a9ce3","tests/test_parse.rs":"cdfe376020b9391330292968046117b0935c828d73385e8faeb2e333ec897088","tests/ui/bad-bound.rs":"25bde278fcaabf62868417148a5e5f2006bf589d7ebd7bf6004fb8d78e47594f","tests/ui/bad-bound.stderr":"a03dc78b380191c10d3b3406b1fd3208
410 bb2609d4c26b9c33ccd335721e3cd072","tests/ui/bad-date.rs":"6e23714dae8b6346fefe50dacd4abba3265248bbadfdd60c739138aa8a0037ba","tests/ui/bad-date.stderr":"3a607fb950a69f7dc1b503295bce53541f9dee9f4674edc5d13ee3a69ff0e8cd","tests/ui/bad-not.rs":"f003df8bd245e9dd8edc3a6d94078ee5162fac7a98db881271f0f5b6db98d45d","tests/ui/bad-not.stderr":"d4ef78fae4a82419e737757158796cb103a5920df498956eaf57ed201797b463","tests/ui/bad-version.rs":"f4ea2cd038e6c63deb9c2e3ceffce93dbf179d9ce18c16d88f3b6cd7138a8c8e","tests/ui/bad-version.stderr":"60ed51c62f4c2fb6ff95cff7523cfca379ed434f319da9d82704318588792338","tests/ui/const-not-fn.rs":"10bbe38f0d89391fff0698756e4cfd4e72a41090360393a0c951b67df14d1c35","tests/ui/const-not-fn.stderr":"9551f7f222445b31d7af2415d467301c332d55bb3d5a143846484f2f00047a01"},"package":"61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088"}
411 -\ No newline at end of file
412 -diff --git a/vendor/rustversion/Cargo.toml b/vendor/rustversion/Cargo.toml
413 -index 56995ff0792..c72b1b2b343 100644
414 ---- a/vendor/rustversion/Cargo.toml
415 -+++ b/vendor/rustversion/Cargo.toml
416 -@@ -13,7 +13,7 @@
417 - [package]
418 - edition = "2018"
419 - name = "rustversion"
420 --version = "1.0.4"
421 -+version = "1.0.5"
422 - authors = ["David Tolnay <dtolnay@×××××.com>"]
423 - build = "build/build.rs"
424 - description = "Conditional compilation according to rustc compiler version"
425 -diff --git a/vendor/rustversion/build/build.rs b/vendor/rustversion/build/build.rs
426 -index 2a8bc4af39f..15312510d68 100644
427 ---- a/vendor/rustversion/build/build.rs
428 -+++ b/vendor/rustversion/build/build.rs
429 -@@ -1,3 +1,9 @@
430 -+#![allow(
431 -+ clippy::enum_glob_use,
432 -+ clippy::must_use_candidate,
433 -+ clippy::single_match_else
434 -+)]
435 -+
436 - mod rustc;
437 -
438 - use std::env;
439 -diff --git a/vendor/rustversion/build/rustc.rs b/vendor/rustversion/build/rustc.rs
440 -index 723e6bdd0e2..dfc6a05166f 100644
441 ---- a/vendor/rustversion/build/rustc.rs
442 -+++ b/vendor/rustversion/build/rustc.rs
443 -@@ -48,23 +48,21 @@ pub fn parse(string: &str) -> Option<Version> {
444 - Some(channel) if channel == "dev" => Dev,
445 - Some(channel) if channel.starts_with("beta") => Beta,
446 - Some(channel) if channel == "nightly" => match words.next() {
447 -- Some(hash) => {
448 -- if !hash.starts_with('(') {
449 -- return None;
450 -+ Some(hash) if hash.starts_with('(') => match words.next() {
451 -+ None if hash.ends_with(')') => Dev,
452 -+ Some(date) if date.ends_with(')') => {
453 -+ let mut date = date[..date.len() - 1].split('-');
454 -+ let year = date.next()?.parse().ok()?;
455 -+ let month = date.next()?.parse().ok()?;
456 -+ let day = date.next()?.parse().ok()?;
457 -+ match date.next() {
458 -+ None => Nightly(Date { year, month, day }),
459 -+ Some(_) => return None,
460 -+ }
461 - }
462 -- let date = words.next()?;
463 -- if !date.ends_with(')') {
464 -- return None;
465 -- }
466 -- let mut date = date[..date.len() - 1].split('-');
467 -- let year = date.next()?.parse().ok()?;
468 -- let month = date.next()?.parse().ok()?;
469 -- let day = date.next()?.parse().ok()?;
470 -- match date.next() {
471 -- None => Nightly(Date { year, month, day }),
472 -- Some(_) => return None,
473 -- }
474 -- }
475 -+ None | Some(_) => return None,
476 -+ },
477 -+ Some(_) => return None,
478 - None => Dev,
479 - },
480 - Some(_) => return None,
481 -diff --git a/vendor/rustversion/src/lib.rs b/vendor/rustversion/src/lib.rs
482 -index 2614105dd1a..172eb89382f 100644
483 ---- a/vendor/rustversion/src/lib.rs
484 -+++ b/vendor/rustversion/src/lib.rs
485 -@@ -145,6 +145,21 @@
486 - //!
487 - //! <br>
488 -
489 -+#![allow(
490 -+ clippy::cast_lossless,
491 -+ clippy::cast_possible_truncation,
492 -+ clippy::doc_markdown,
493 -+ clippy::enum_glob_use,
494 -+ clippy::from_iter_instead_of_collect,
495 -+ clippy::module_name_repetitions,
496 -+ clippy::must_use_candidate,
497 -+ clippy::needless_doctest_main,
498 -+ clippy::needless_pass_by_value,
499 -+ clippy::redundant_else,
500 -+ clippy::toplevel_ref_arg,
501 -+ clippy::unreadable_literal
502 -+)]
503 -+
504 - extern crate proc_macro;
505 -
506 - mod attr;
507 -diff --git a/vendor/rustversion/src/time.rs b/vendor/rustversion/src/time.rs
508 -index 1e6dd9066b4..3c21463dd80 100644
509 ---- a/vendor/rustversion/src/time.rs
510 -+++ b/vendor/rustversion/src/time.rs
511 -@@ -1,4 +1,5 @@
512 - use crate::date::Date;
513 -+use std::env;
514 - use std::time::{SystemTime, UNIX_EPOCH};
515 -
516 - // Timestamp of 2016-03-01 00:00:00 in UTC.
517 -@@ -13,14 +14,20 @@
518 -
519 - pub fn today() -> Date {
520 - let default = Date {
521 -- year: 2019,
522 -- month: 1,
523 -- day: 1,
524 -+ year: 2020,
525 -+ month: 2,
526 -+ day: 25,
527 - };
528 - try_today().unwrap_or(default)
529 - }
530 -
531 - fn try_today() -> Option<Date> {
532 -+ if let Some(pkg_name) = env::var_os("CARGO_PKG_NAME") {
533 -+ if pkg_name.to_str() == Some("rustversion-tests") {
534 -+ return None; // Stable date for ui testing.
535 -+ }
536 -+ }
537 -+
538 - let now = SystemTime::now();
539 - let since_epoch = now.duration_since(UNIX_EPOCH).ok()?;
540 - let secs = since_epoch.as_secs();
541 -diff --git a/vendor/rustversion/tests/test_parse.rs b/vendor/rustversion/tests/test_parse.rs
542 -index 843bd73d3e5..cb39b3179f5 100644
543 ---- a/vendor/rustversion/tests/test_parse.rs
544 -+++ b/vendor/rustversion/tests/test_parse.rs
545 -@@ -1,3 +1,5 @@
546 -+#![allow(clippy::enum_glob_use, clippy::must_use_candidate)]
547 -+
548 - include!("../build/rustc.rs");
549 -
550 - #[test]
551 -@@ -76,6 +78,14 @@ fn test_parse() {
552 - }),
553 - },
554 - ),
555 -+ (
556 -+ "rustc 1.52.1-nightly (gentoo)",
557 -+ Version {
558 -+ minor: 52,
559 -+ patch: 1,
560 -+ channel: Dev,
561 -+ },
562 -+ ),
563 - ];
564 -
565 - for (string, expected) in cases {
566 -diff --git a/vendor/rustversion/tests/ui/bad-bound.stderr b/vendor/rustversion/tests/ui/bad-bound.stderr
567 -index f8c498c8577..2c56acbdb33 100644
568 ---- a/vendor/rustversion/tests/ui/bad-bound.stderr
569 -+++ b/vendor/rustversion/tests/ui/bad-bound.stderr
570 -@@ -1,10 +1,10 @@
571 --error: expected rustc release number like 1.31, or nightly date like 2020-10-26
572 -+error: expected rustc release number like 1.31, or nightly date like 2020-02-25
573 - --> $DIR/bad-bound.rs:1:22
574 - |
575 - 1 | #[rustversion::since(stable)]
576 - | ^^^^^^
577 -
578 --error: expected rustc release number like 1.31, or nightly date like 2020-10-26
579 -+error: expected rustc release number like 1.31, or nightly date like 2020-02-25
580 - --> $DIR/bad-bound.rs:4:26
581 - |
582 - 4 | #[rustversion::any(since(stable))]
583 -diff --git a/vendor/rustversion/tests/ui/bad-date.stderr b/vendor/rustversion/tests/ui/bad-date.stderr
584 -index 734d7889075..c523ccc02bf 100644
585 ---- a/vendor/rustversion/tests/ui/bad-date.stderr
586 -+++ b/vendor/rustversion/tests/ui/bad-date.stderr
587 -@@ -1,10 +1,10 @@
588 --error: expected nightly date, like 2020-10-26
589 -+error: expected nightly date, like 2020-02-25
590 - --> $DIR/bad-date.rs:1:24
591 - |
592 - 1 | #[rustversion::nightly(stable)]
593 - | ^^^^^^
594 -
595 --error: expected nightly date, like 2020-10-26
596 -+error: expected nightly date, like 2020-02-25
597 - --> $DIR/bad-date.rs:4:28
598 - |
599 - 4 | #[rustversion::any(nightly(stable))]
600 ---
601 -2.32.0
602 -
603
604 diff --git a/dev-lang/rust/files/1.54.0-parallel-miri.patch b/dev-lang/rust/files/1.54.0-parallel-miri.patch
605 deleted file mode 100644
606 index 68239d98d374..000000000000
607 --- a/dev-lang/rust/files/1.54.0-parallel-miri.patch
608 +++ /dev/null
609 @@ -1,43 +0,0 @@
610 -From a789b49e4c0e7d742cc39713484596293d844537 Mon Sep 17 00:00:00 2001
611 -From: hyd-dev <yd-huang@×××××××.com>
612 -Date: Fri, 30 Jul 2021 21:28:34 +0800
613 -Subject: [PATCH] Use `Lrc` instead of `Rc` in `MiriCompilerCalls::config()`
614 -
615 ----
616 - src/bin/miri.rs | 5 +++--
617 - 1 file changed, 3 insertions(+), 2 deletions(-)
618 -
619 -diff --git a/src/tools/miri/src/bin/miri.rs b/src/tools/miri/src/bin/miri.rs
620 -index 5a8f07263..18c393815 100644
621 ---- a/src/tools/miri/src/bin/miri.rs
622 -+++ b/src/tools/miri/src/bin/miri.rs
623 -@@ -1,5 +1,6 @@
624 - #![feature(rustc_private, bool_to_option, stmt_expr_attributes)]
625 -
626 -+extern crate rustc_data_structures;
627 - extern crate rustc_driver;
628 - extern crate rustc_errors;
629 - extern crate rustc_hir;
630 -@@ -12,12 +13,12 @@ use std::convert::TryFrom;
631 - use std::env;
632 - use std::num::NonZeroU64;
633 - use std::path::PathBuf;
634 --use std::rc::Rc;
635 - use std::str::FromStr;
636 -
637 - use hex::FromHexError;
638 - use log::debug;
639 -
640 -+use rustc_data_structures::sync::Lrc;
641 - use rustc_driver::Compilation;
642 - use rustc_errors::emitter::{ColorConfig, HumanReadableErrorType};
643 - use rustc_hir::{self as hir, def_id::LOCAL_CRATE, Node};
644 -@@ -42,7 +43,7 @@ impl rustc_driver::Callbacks for MiriCompilerCalls {
645 - // HACK: rustc will emit "crate ... required to be available in rlib format, but
646 - // was not found in this form" errors once we use `tcx.dependency_formats()` if
647 - // there's no rlib provided, so setting a dummy path here to workaround those errors.
648 -- Rc::make_mut(&mut crate_source).rlib = Some((PathBuf::new(), PathKind::All));
649 -+ Lrc::make_mut(&mut crate_source).rlib = Some((PathBuf::new(), PathKind::All));
650 - crate_source
651 - };
652 - });
653
654 diff --git a/dev-lang/rust/files/1.57.0-selfbootstrap.patch b/dev-lang/rust/files/1.57.0-selfbootstrap.patch
655 deleted file mode 100644
656 index e30d0ee0e482..000000000000
657 --- a/dev-lang/rust/files/1.57.0-selfbootstrap.patch
658 +++ /dev/null
659 @@ -1,56 +0,0 @@
660 -From aca8bcb48feca8c87b9af4e440835992d3f6d470 Mon Sep 17 00:00:00 2001
661 -From: Pietro Albini <pietro.albini@×××××××××××××××.com>
662 -Date: Tue, 19 Oct 2021 09:29:19 +0200
663 -Subject: [PATCH] remove "field is never read" warning
664 -
665 ----
666 - src/bootstrap/lib.rs | 1 -
667 - src/bootstrap/metadata.rs | 3 +--
668 - src/tools/bump-stage0/src/main.rs | 1 -
669 - 3 files changed, 1 insertion(+), 4 deletions(-)
670 -
671 -diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs
672 -index 2d4e152789724..3b3c8a9227d95 100644
673 ---- a/src/bootstrap/lib.rs
674 -+++ b/src/bootstrap/lib.rs
675 -@@ -277,7 +277,6 @@ pub struct Build {
676 - struct Crate {
677 - name: Interned<String>,
678 - deps: HashSet<Interned<String>>,
679 -- id: String,
680 - path: PathBuf,
681 - }
682 -
683 -diff --git a/src/bootstrap/metadata.rs b/src/bootstrap/metadata.rs
684 -index a38391c7b88f2..65e229697dc87 100644
685 ---- a/src/bootstrap/metadata.rs
686 -+++ b/src/bootstrap/metadata.rs
687 -@@ -14,7 +14,6 @@ struct Output {
688 -
689 - #[derive(Deserialize)]
690 - struct Package {
691 -- id: String,
692 - name: String,
693 - source: Option<String>,
694 - manifest_path: String,
695 -@@ -50,7 +49,7 @@ pub fn build(build: &mut Build) {
696 - .filter(|dep| dep.source.is_none())
697 - .map(|dep| INTERNER.intern_string(dep.name))
698 - .collect();
699 -- build.crates.insert(name, Crate { name, id: package.id, deps, path });
700 -+ build.crates.insert(name, Crate { name, deps, path });
701 - }
702 - }
703 - }
704 -diff --git a/src/tools/bump-stage0/src/main.rs b/src/tools/bump-stage0/src/main.rs
705 -index 96d3c87384331..d6364e28fef97 100644
706 ---- a/src/tools/bump-stage0/src/main.rs
707 -+++ b/src/tools/bump-stage0/src/main.rs
708 -@@ -196,7 +196,6 @@ struct ManifestPackage {
709 -
710 - #[derive(Debug, serde::Deserialize)]
711 - struct ManifestTargetPackage {
712 -- available: bool,
713 - url: Option<String>,
714 - hash: Option<String>,
715 - xz_url: Option<String>,
716
717 diff --git a/dev-lang/rust/rust-1.53.0.ebuild b/dev-lang/rust/rust-1.53.0.ebuild
718 deleted file mode 100644
719 index d17441423822..000000000000
720 --- a/dev-lang/rust/rust-1.53.0.ebuild
721 +++ /dev/null
722 @@ -1,684 +0,0 @@
723 -# Copyright 1999-2021 Gentoo Authors
724 -# Distributed under the terms of the GNU General Public License v2
725 -
726 -EAPI=7
727 -
728 -PYTHON_COMPAT=( python3_{7..9} )
729 -
730 -inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
731 - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
732 -
733 -if [[ ${PV} = *beta* ]]; then
734 - betaver=${PV//*beta}
735 - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
736 - MY_P="rustc-beta"
737 - SLOT="beta/${PV}"
738 - SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
739 -else
740 - ABI_VER="$(ver_cut 1-2)"
741 - SLOT="stable/${ABI_VER}"
742 - MY_P="rustc-${PV}"
743 - SRC="${MY_P}-src.tar.xz"
744 - KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86"
745 -fi
746 -
747 -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
748 -
749 -DESCRIPTION="Systems programming language from Mozilla"
750 -HOMEPAGE="https://www.rust-lang.org/"
751 -
752 -SRC_URI="
753 - https://static.rust-lang.org/dist/${SRC}
754 - verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
755 - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
756 -"
757 -
758 -# keep in sync with llvm ebuild of the same version as bundled one.
759 -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430
760 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore )
761 -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
762 -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
763 -
764 -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
765 -
766 -IUSE="clippy cpu_flags_x86_sse2 debug doc miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
767 -
768 -# Please keep the LLVM dependency block separate. Since LLVM is slotted,
769 -# we need to *really* make sure we're not pulling more than one slot
770 -# simultaneously.
771 -
772 -# How to use it:
773 -# List all the working slots in LLVM_VALID_SLOTS, newest first.
774 -LLVM_VALID_SLOTS=( 12 )
775 -LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
776 -
777 -# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
778 -# (-) usedep needed because we may build with older llvm without that target
779 -LLVM_DEPEND="|| ( "
780 -for _s in ${LLVM_VALID_SLOTS[@]}; do
781 - LLVM_DEPEND+=" ( "
782 - for _x in ${ALL_LLVM_TARGETS[@]}; do
783 - LLVM_DEPEND+="
784 - ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )"
785 - done
786 - LLVM_DEPEND+=" )"
787 -done
788 -unset _s _x
789 -LLVM_DEPEND+=" )
790 - <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
791 - wasm? ( sys-devel/lld )
792 -"
793 -
794 -# to bootstrap we need at least exactly previous version, or same.
795 -# most of the time previous versions fail to bootstrap with newer
796 -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
797 -# but it fails to bootstrap with 1.48.x
798 -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt
799 -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
800 -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
801 -BOOTSTRAP_DEPEND="||
802 - (
803 - =dev-lang/rust-"${RUST_DEP_PREV}"
804 - =dev-lang/rust-bin-"${RUST_DEP_PREV}"
805 - =dev-lang/rust-"${RUST_DEP_CURR}"
806 - =dev-lang/rust-bin-"${RUST_DEP_CURR}"
807 - )
808 -"
809 -
810 -BDEPEND="${PYTHON_DEPS}
811 - app-eselect/eselect-rust
812 - || (
813 - >=sys-devel/gcc-4.7
814 - >=sys-devel/clang-3.5
815 - )
816 - system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
817 - !system-llvm? (
818 - >=dev-util/cmake-3.13.4
819 - dev-util/ninja
820 - )
821 - test? ( sys-devel/gdb )
822 - verify-sig? ( sec-keys/openpgp-keys-rust )
823 -"
824 -
825 -DEPEND="
826 - >=app-arch/xz-utils-5.2
827 - net-misc/curl:=[http2,ssl]
828 - sys-libs/zlib:=
829 - dev-libs/openssl:0=
830 - elibc_musl? ( sys-libs/libunwind:= )
831 - system-llvm? ( ${LLVM_DEPEND} )
832 -"
833 -
834 -# we need to block older versions due to layout changes.
835 -RDEPEND="${DEPEND}
836 - app-eselect/eselect-rust
837 - !<dev-lang/rust-1.47.0-r1
838 - !<dev-lang/rust-bin-1.47.0-r1
839 -"
840 -
841 -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
842 - miri? ( nightly )
843 - parallel-compiler? ( nightly )
844 - test? ( ${ALL_LLVM_TARGETS[*]} )
845 - wasm? ( llvm_targets_WebAssembly )
846 - x86? ( cpu_flags_x86_sse2 )
847 -"
848 -
849 -# we don't use cmake.eclass, but can get a warnings
850 -CMAKE_WARN_UNUSED_CLI=no
851 -
852 -QA_FLAGS_IGNORED="
853 - usr/lib/${PN}/${PV}/bin/.*
854 - usr/lib/${PN}/${PV}/libexec/.*
855 - usr/lib/${PN}/${PV}/lib/lib.*.so
856 - usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
857 - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
858 -"
859 -
860 -QA_SONAME="
861 - usr/lib/${PN}/${PV}/lib/lib.*.so.*
862 - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
863 -"
864 -
865 -# An rmeta file is custom binary format that contains the metadata for the crate.
866 -# rmeta files do not support linking, since they do not contain compiled object files.
867 -# so we can safely silence the warning for this QA check.
868 -QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
869 -
870 -# causes double bootstrap
871 -RESTRICT="test"
872 -
873 -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc
874 -
875 -PATCHES=(
876 - "${FILESDIR}"/1.47.0-ignore-broken-and-non-applicable-tests.patch
877 - "${FILESDIR}"/1.49.0-gentoo-musl-target-specs.patch
878 - "${FILESDIR}"/1.53.0-rustversion-1.0.5.patch # https://github.com/rust-lang/rust/pull/86425
879 - "${FILESDIR}"/1.53.0-miri-vergen.patch # https://github.com/rust-lang/rust/issues/84182
880 -)
881 -
882 -S="${WORKDIR}/${MY_P}-src"
883 -
884 -toml_usex() {
885 - usex "${1}" true false
886 -}
887 -
888 -bootstrap_rust_version_check() {
889 - # never call from pkg_pretend. eselect-rust may be not installed yet.
890 - [[ ${MERGE_TYPE} == binary ]] && return
891 - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
892 - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
893 - local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
894 - rustc_version=${rustc_version[0]#rust-bin-}
895 - rustc_version=${rustc_version#rust-}
896 -
897 - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
898 -
899 - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
900 - eerror "Rust >=${rustc_wanted} is required"
901 - eerror "please run 'eselect rust' and set correct rust version"
902 - die "selected rust version is too old"
903 - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
904 - eerror "Rust <${rustc_toonew} is required"
905 - eerror "please run 'eselect rust' and set correct rust version"
906 - die "selected rust version is too new"
907 - else
908 - einfo "Using rust ${rustc_version} to build"
909 - fi
910 -}
911 -
912 -pre_build_checks() {
913 - local M=8192
914 - # multiply requirements by 1.5 if we are doing x86-multilib
915 - if use amd64; then
916 - M=$(( $(usex abi_x86_32 15 10) * ${M} / 10 ))
917 - fi
918 - M=$(( $(usex clippy 128 0) + ${M} ))
919 - M=$(( $(usex miri 128 0) + ${M} ))
920 - M=$(( $(usex rls 512 0) + ${M} ))
921 - M=$(( $(usex rustfmt 256 0) + ${M} ))
922 - # add 2G if we compile llvm and 256M per llvm_target
923 - if ! use system-llvm; then
924 - M=$(( 2048 + ${M} ))
925 - local ltarget
926 - for ltarget in ${ALL_LLVM_TARGETS[@]}; do
927 - M=$(( $(usex ${ltarget} 256 0) + ${M} ))
928 - done
929 - fi
930 - M=$(( $(usex wasm 256 0) + ${M} ))
931 - M=$(( $(usex debug 2 1) * ${M} ))
932 - eshopts_push -s extglob
933 - if is-flagq '-g?(gdb)?([1-9])'; then
934 - M=$(( 15 * ${M} / 10 ))
935 - fi
936 - eshopts_pop
937 - M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
938 - M=$(( $(usex doc 256 0) + ${M} ))
939 - CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
940 -}
941 -
942 -llvm_check_deps() {
943 - has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
944 -}
945 -
946 -pkg_pretend() {
947 - pre_build_checks
948 -}
949 -
950 -pkg_setup() {
951 - pre_build_checks
952 - python-any-r1_pkg_setup
953 -
954 - export LIBGIT2_NO_PKG_CONFIG=1 #749381
955 -
956 - use system-bootstrap && bootstrap_rust_version_check
957 -
958 - if use system-llvm; then
959 - llvm_pkg_setup
960 -
961 - local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
962 - export LLVM_LINK_SHARED=1
963 - export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
964 - fi
965 -}
966 -
967 -src_prepare() {
968 - if ! use system-bootstrap; then
969 - local rust_stage0_root="${WORKDIR}"/rust-stage0
970 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
971 -
972 - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
973 - --without=rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
974 - fi
975 -
976 - default
977 -}
978 -
979 -src_configure() {
980 - local rust_target="" rust_targets="" arch_cflags
981 -
982 - # Collect rust target names to compile standard libs for all ABIs.
983 - for v in $(multilib_get_enabled_abi_pairs); do
984 - rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
985 - done
986 - if use wasm; then
987 - rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
988 - if use system-llvm; then
989 - # un-hardcode rust-lld linker for this target
990 - # https://bugs.gentoo.org/715348
991 - sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
992 - fi
993 - fi
994 - rust_targets="${rust_targets#,}"
995 -
996 - local tools="\"cargo\","
997 - if use clippy; then
998 - tools="\"clippy\",$tools"
999 - fi
1000 - if use miri; then
1001 - tools="\"miri\",$tools"
1002 - fi
1003 - if use rls; then
1004 - tools="\"rls\",\"analysis\",\"src\",$tools"
1005 - fi
1006 - if use rustfmt; then
1007 - tools="\"rustfmt\",$tools"
1008 - fi
1009 -
1010 - local rust_stage0_root
1011 - if use system-bootstrap; then
1012 - local printsysroot
1013 - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
1014 - rust_stage0_root="${printsysroot}"
1015 - else
1016 - rust_stage0_root="${WORKDIR}"/rust-stage0
1017 - fi
1018 - # in case of prefix it will be already prefixed, as --print sysroot returns full path
1019 - [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
1020 -
1021 - rust_target="$(rust_abi)"
1022 -
1023 - cat <<- _EOF_ > "${S}"/config.toml
1024 - changelog-seen = 2
1025 - [llvm]
1026 - download-ci-llvm = false
1027 - optimize = $(toml_usex !debug)
1028 - release-debuginfo = $(toml_usex debug)
1029 - assertions = $(toml_usex debug)
1030 - ninja = true
1031 - targets = "${LLVM_TARGETS// /;}"
1032 - experimental-targets = ""
1033 - link-shared = $(toml_usex system-llvm)
1034 - [build]
1035 - build-stage = 2
1036 - test-stage = 2
1037 - doc-stage = 2
1038 - build = "${rust_target}"
1039 - host = ["${rust_target}"]
1040 - target = [${rust_targets}]
1041 - cargo = "${rust_stage0_root}/bin/cargo"
1042 - rustc = "${rust_stage0_root}/bin/rustc"
1043 - rustfmt = "${rust_stage0_root}/bin/rustfmt"
1044 - docs = $(toml_usex doc)
1045 - compiler-docs = false
1046 - submodules = false
1047 - python = "${EPYTHON}"
1048 - locked-deps = true
1049 - vendor = true
1050 - extended = true
1051 - tools = [${tools}]
1052 - verbose = 2
1053 - sanitizers = false
1054 - profiler = false
1055 - cargo-native-static = false
1056 - [install]
1057 - prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
1058 - sysconfdir = "etc"
1059 - docdir = "share/doc/rust"
1060 - bindir = "bin"
1061 - libdir = "lib"
1062 - mandir = "share/man"
1063 - [rust]
1064 - # https://github.com/rust-lang/rust/issues/54872
1065 - codegen-units-std = 1
1066 - optimize = true
1067 - debug = $(toml_usex debug)
1068 - debug-assertions = $(toml_usex debug)
1069 - debug-assertions-std = $(toml_usex debug)
1070 - debuginfo-level = $(usex debug 2 0)
1071 - debuginfo-level-rustc = $(usex debug 2 0)
1072 - debuginfo-level-std = $(usex debug 2 0)
1073 - debuginfo-level-tools = $(usex debug 2 0)
1074 - debuginfo-level-tests = 0
1075 - backtrace = true
1076 - incremental = false
1077 - default-linker = "$(tc-getCC)"
1078 - parallel-compiler = $(toml_usex parallel-compiler)
1079 - channel = "$(usex nightly nightly stable)"
1080 - description = "gentoo"
1081 - rpath = false
1082 - verbose-tests = true
1083 - optimize-tests = $(toml_usex !debug)
1084 - codegen-tests = true
1085 - dist-src = false
1086 - remap-debuginfo = true
1087 - lld = $(usex system-llvm false $(toml_usex wasm))
1088 - # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
1089 - # https://github.com/rust-lang/rust/issues/74976
1090 - # https://github.com/rust-lang/rust/issues/76526
1091 - deny-warnings = $(usex wasm $(usex doc false true) true)
1092 - backtrace-on-ice = true
1093 - jemalloc = false
1094 - [dist]
1095 - src-tarball = false
1096 - compression-formats = ["gz"]
1097 - _EOF_
1098 -
1099 - for v in $(multilib_get_enabled_abi_pairs); do
1100 - rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
1101 - arch_cflags="$(get_abi_CFLAGS ${v##*.})"
1102 -
1103 - cat <<- _EOF_ >> "${S}"/config.env
1104 - CFLAGS_${rust_target}=${arch_cflags}
1105 - _EOF_
1106 -
1107 - cat <<- _EOF_ >> "${S}"/config.toml
1108 - [target.${rust_target}]
1109 - cc = "$(tc-getBUILD_CC)"
1110 - cxx = "$(tc-getBUILD_CXX)"
1111 - linker = "$(tc-getCC)"
1112 - ar = "$(tc-getAR)"
1113 - _EOF_
1114 - # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
1115 - if use elibc_musl; then
1116 - cat <<- _EOF_ >> "${S}"/config.toml
1117 - crt-static = false
1118 - _EOF_
1119 - fi
1120 - if use system-llvm; then
1121 - cat <<- _EOF_ >> "${S}"/config.toml
1122 - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
1123 - _EOF_
1124 - fi
1125 - done
1126 - if use wasm; then
1127 - cat <<- _EOF_ >> "${S}"/config.toml
1128 - [target.wasm32-unknown-unknown]
1129 - linker = "$(usex system-llvm lld rust-lld)"
1130 - _EOF_
1131 - fi
1132 -
1133 - if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
1134 - # experimental cross support
1135 - # discussion: https://bugs.gentoo.org/679878
1136 - # TODO: c*flags, clang, system-llvm, cargo.eclass target support
1137 - # it would be much better if we could split out stdlib
1138 - # complilation to separate ebuild and abuse CATEGORY to
1139 - # just install to /usr/lib/rustlib/<target>
1140 -
1141 - # extra targets defined as a bash array
1142 - # spec format: <LLVM target>:<rust-target>:<CTARGET>
1143 - # best place would be /etc/portage/env/dev-lang/rust
1144 - # Example:
1145 - # RUST_CROSS_TARGETS=(
1146 - # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
1147 - # )
1148 - # no extra hand holding is done, no target transformations, all
1149 - # values are passed as-is with just basic checks, so it's up to user to supply correct values
1150 - # valid rust targets can be obtained with
1151 - # rustc --print target-list
1152 - # matching cross toolchain has to be installed
1153 - # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
1154 - # only gcc toolchains installed with crossdev are checked for now.
1155 -
1156 - # BUG: we can't pass host flags to cross compiler, so just filter for now
1157 - # BUG: this should be more fine-grained.
1158 - filter-flags '-mcpu=*' '-march=*' '-mtune=*'
1159 -
1160 - local cross_target_spec
1161 - for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
1162 - # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
1163 - local cross_llvm_target="${cross_target_spec%%:*}"
1164 - # extracts toolchain triples, <rust-target>:<CTARGET>
1165 - local cross_triples="${cross_target_spec#*:}"
1166 - # extracts first element after before : separator
1167 - local cross_rust_target="${cross_triples%%:*}"
1168 - # extracts last element after : separator
1169 - local cross_toolchain="${cross_triples##*:}"
1170 - use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
1171 - command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
1172 -
1173 - cat <<- _EOF_ >> "${S}"/config.toml
1174 - [target.${cross_rust_target}]
1175 - cc = "${cross_toolchain}-gcc"
1176 - cxx = "${cross_toolchain}-g++"
1177 - linker = "${cross_toolchain}-gcc"
1178 - ar = "${cross_toolchain}-ar"
1179 - _EOF_
1180 - if use system-llvm; then
1181 - cat <<- _EOF_ >> "${S}"/config.toml
1182 - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
1183 - _EOF_
1184 - fi
1185 - if [[ "${cross_toolchain}" == *-musl* ]]; then
1186 - cat <<- _EOF_ >> "${S}"/config.toml
1187 - musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
1188 - _EOF_
1189 - fi
1190 -
1191 - # append cross target to "normal" target list
1192 - # example 'target = ["powerpc64le-unknown-linux-gnu"]'
1193 - # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
1194 -
1195 - rust_targets="${rust_targets},\"${cross_rust_target}\""
1196 - sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
1197 -
1198 - ewarn
1199 - ewarn "Enabled ${cross_rust_target} rust target"
1200 - ewarn "Using ${cross_toolchain} cross toolchain"
1201 - ewarn
1202 - if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
1203 - ewarn "'sys-devel/binutils[multitarget]' is not installed"
1204 - ewarn "'strip' will be unable to strip cross libraries"
1205 - ewarn "cross targets will be installed with full debug information"
1206 - ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
1207 - ewarn
1208 - ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
1209 - ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
1210 - ewarn
1211 - fi
1212 - done
1213 - fi # I_KNOW_WHAT_I_AM_DOING_CROSS
1214 -
1215 - einfo "Rust configured with the following flags:"
1216 - echo
1217 - echo RUSTFLAGS="${RUSTFLAGS:-}"
1218 - echo RUSTFLAGS_BOOTSTRAP="${RUSTFLAGS_BOOTSTRAP:-}"
1219 - echo RUSTFLAGS_NOT_BOOTSTRAP="${RUSTFLAGS_NOT_BOOTSTRAP:-}"
1220 - env | grep "CARGO_TARGET_.*_RUSTFLAGS="
1221 - cat "${S}"/config.env || die
1222 - echo
1223 - einfo "config.toml contents:"
1224 - cat "${S}"/config.toml || die
1225 - echo
1226 -}
1227 -
1228 -src_compile() {
1229 - # we need \n IFS to have config.env with spaces loaded properly. #734018
1230 - (
1231 - IFS=$'\n'
1232 - env $(cat "${S}"/config.env) RUST_BACKTRACE=1\
1233 - "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
1234 - )
1235 -}
1236 -
1237 -src_test() {
1238 - # https://rustc-dev-guide.rust-lang.org/tests/intro.html
1239 -
1240 - # those are basic and codegen tests.
1241 - local tests=(
1242 - codegen
1243 - codegen-units
1244 - compile-fail
1245 - incremental
1246 - mir-opt
1247 - pretty
1248 - run-make
1249 - )
1250 -
1251 - # fails if llvm is not built with ALL targets.
1252 - # and known to fail with system llvm sometimes.
1253 - use system-llvm || tests+=( assembly )
1254 -
1255 - # fragile/expensive/less important tests
1256 - # or tests that require extra builds
1257 - # TODO: instead of skipping, just make some nonfatal.
1258 - if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
1259 - tests+=(
1260 - rustdoc
1261 - rustdoc-js
1262 - rustdoc-js-std
1263 - rustdoc-ui
1264 - run-make-fulldeps
1265 - ui
1266 - ui-fulldeps
1267 - )
1268 - fi
1269 -
1270 - local i failed=()
1271 - einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
1272 - for i in "${tests[@]}"; do
1273 - local t="src/test/${i}"
1274 - einfo "rust_src_test: running ${t}"
1275 - if ! (
1276 - IFS=$'\n'
1277 - env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \
1278 - "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
1279 - -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
1280 - )
1281 - then
1282 - failed+=( "${t}" )
1283 - eerror "rust_src_test: ${t} failed"
1284 - fi
1285 - done
1286 -
1287 - if [[ ${#failed[@]} -ne 0 ]]; then
1288 - eerror "rust_src_test: failure summary: ${failed[@]}"
1289 - die "aborting due to test failures"
1290 - fi
1291 -}
1292 -
1293 -src_install() {
1294 - (
1295 - IFS=$'\n'
1296 - env $(cat "${S}"/config.env) DESTDIR="${D}" \
1297 - "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
1298 - )
1299 -
1300 - # bug #689562, #689160
1301 - rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
1302 - rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
1303 - newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
1304 -
1305 - local symlinks=(
1306 - cargo
1307 - rustc
1308 - rustdoc
1309 - rust-gdb
1310 - rust-gdbgui
1311 - rust-lldb
1312 - )
1313 -
1314 - use clippy && symlinks+=( clippy-driver cargo-clippy )
1315 - use miri && symlinks+=( miri cargo-miri )
1316 - use rls && symlinks+=( rls )
1317 - use rustfmt && symlinks+=( rustfmt cargo-fmt )
1318 -
1319 - einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
1320 - local i
1321 - for i in "${symlinks[@]}"; do
1322 - # we need realpath on /usr/bin/* symlink return version-appended binary path.
1323 - # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
1324 - # need to fix eselect-rust to remove this hack.
1325 - local ver_i="${i}-${PV}"
1326 - if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
1327 - einfo "Installing ${i} symlink"
1328 - ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
1329 - else
1330 - ewarn "${i} symlink requested, but source file not found"
1331 - ewarn "please report this"
1332 - fi
1333 - dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
1334 - done
1335 -
1336 - # symlinks to switch components to active rust in eselect
1337 - dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
1338 - dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
1339 - dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
1340 - dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
1341 - dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
1342 -
1343 - newenvd - "50${P}" <<-_EOF_
1344 - LDPATH="${EPREFIX}/usr/lib/rust/lib"
1345 - MANPATH="${EPREFIX}/usr/lib/rust/man"
1346 - $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
1347 - $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
1348 - _EOF_
1349 -
1350 - rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
1351 - rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
1352 -
1353 - # note: eselect-rust adds EROOT to all paths below
1354 - cat <<-_EOF_ > "${T}/provider-${P}"
1355 - /usr/bin/cargo
1356 - /usr/bin/rustdoc
1357 - /usr/bin/rust-gdb
1358 - /usr/bin/rust-gdbgui
1359 - /usr/bin/rust-lldb
1360 - /usr/lib/rustlib
1361 - /usr/lib/rust/lib
1362 - /usr/lib/rust/libexec
1363 - /usr/lib/rust/man
1364 - /usr/share/doc/rust
1365 - _EOF_
1366 -
1367 - if use clippy; then
1368 - echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
1369 - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
1370 - fi
1371 - if use miri; then
1372 - echo /usr/bin/miri >> "${T}/provider-${P}"
1373 - echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
1374 - fi
1375 - if use rls; then
1376 - echo /usr/bin/rls >> "${T}/provider-${P}"
1377 - fi
1378 - if use rustfmt; then
1379 - echo /usr/bin/rustfmt >> "${T}/provider-${P}"
1380 - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
1381 - fi
1382 -
1383 - insinto /etc/env.d/rust
1384 - doins "${T}/provider-${P}"
1385 -}
1386 -
1387 -pkg_postinst() {
1388 - eselect rust update
1389 -
1390 - if has_version sys-devel/gdb || has_version dev-util/lldb; then
1391 - elog "Rust installs a helper script for calling GDB and LLDB,"
1392 - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
1393 - fi
1394 -
1395 - if has_version app-editors/emacs; then
1396 - elog "install app-emacs/rust-mode to get emacs support for rust."
1397 - fi
1398 -
1399 - if has_version app-editors/gvim || has_version app-editors/vim; then
1400 - elog "install app-vim/rust-vim to get vim support for rust."
1401 - fi
1402 -}
1403 -
1404 -pkg_postrm() {
1405 - eselect rust cleanup
1406 -}
1407
1408 diff --git a/dev-lang/rust/rust-1.54.0.ebuild b/dev-lang/rust/rust-1.54.0.ebuild
1409 deleted file mode 100644
1410 index 893af8bad162..000000000000
1411 --- a/dev-lang/rust/rust-1.54.0.ebuild
1412 +++ /dev/null
1413 @@ -1,684 +0,0 @@
1414 -# Copyright 1999-2021 Gentoo Authors
1415 -# Distributed under the terms of the GNU General Public License v2
1416 -
1417 -EAPI=7
1418 -
1419 -PYTHON_COMPAT=( python3_{7..9} )
1420 -
1421 -inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
1422 - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
1423 -
1424 -if [[ ${PV} = *beta* ]]; then
1425 - betaver=${PV//*beta}
1426 - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
1427 - MY_P="rustc-beta"
1428 - SLOT="beta/${PV}"
1429 - SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
1430 -else
1431 - ABI_VER="$(ver_cut 1-2)"
1432 - SLOT="stable/${ABI_VER}"
1433 - MY_P="rustc-${PV}"
1434 - SRC="${MY_P}-src.tar.xz"
1435 - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
1436 -fi
1437 -
1438 -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
1439 -
1440 -DESCRIPTION="Systems programming language from Mozilla"
1441 -HOMEPAGE="https://www.rust-lang.org/"
1442 -
1443 -SRC_URI="
1444 - https://static.rust-lang.org/dist/${SRC}
1445 - verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
1446 - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
1447 -"
1448 -
1449 -# keep in sync with llvm ebuild of the same version as bundled one.
1450 -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430
1451 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore )
1452 -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
1453 -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
1454 -
1455 -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
1456 -
1457 -IUSE="clippy cpu_flags_x86_sse2 debug doc miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
1458 -
1459 -# Please keep the LLVM dependency block separate. Since LLVM is slotted,
1460 -# we need to *really* make sure we're not pulling more than one slot
1461 -# simultaneously.
1462 -
1463 -# How to use it:
1464 -# List all the working slots in LLVM_VALID_SLOTS, newest first.
1465 -LLVM_VALID_SLOTS=( 12 )
1466 -LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
1467 -
1468 -# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
1469 -# (-) usedep needed because we may build with older llvm without that target
1470 -LLVM_DEPEND="|| ( "
1471 -for _s in ${LLVM_VALID_SLOTS[@]}; do
1472 - LLVM_DEPEND+=" ( "
1473 - for _x in ${ALL_LLVM_TARGETS[@]}; do
1474 - LLVM_DEPEND+="
1475 - ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )"
1476 - done
1477 - LLVM_DEPEND+=" )"
1478 -done
1479 -unset _s _x
1480 -LLVM_DEPEND+=" )
1481 - <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
1482 - wasm? ( sys-devel/lld )
1483 -"
1484 -
1485 -# to bootstrap we need at least exactly previous version, or same.
1486 -# most of the time previous versions fail to bootstrap with newer
1487 -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
1488 -# but it fails to bootstrap with 1.48.x
1489 -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt
1490 -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
1491 -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
1492 -BOOTSTRAP_DEPEND="||
1493 - (
1494 - =dev-lang/rust-"${RUST_DEP_PREV}"
1495 - =dev-lang/rust-bin-"${RUST_DEP_PREV}"
1496 - =dev-lang/rust-"${RUST_DEP_CURR}"
1497 - =dev-lang/rust-bin-"${RUST_DEP_CURR}"
1498 - )
1499 -"
1500 -
1501 -BDEPEND="${PYTHON_DEPS}
1502 - app-eselect/eselect-rust
1503 - || (
1504 - >=sys-devel/gcc-4.7
1505 - >=sys-devel/clang-3.5
1506 - )
1507 - system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
1508 - !system-llvm? (
1509 - >=dev-util/cmake-3.13.4
1510 - dev-util/ninja
1511 - )
1512 - test? ( sys-devel/gdb )
1513 - verify-sig? ( sec-keys/openpgp-keys-rust )
1514 -"
1515 -
1516 -DEPEND="
1517 - >=app-arch/xz-utils-5.2
1518 - net-misc/curl:=[http2,ssl]
1519 - sys-libs/zlib:=
1520 - dev-libs/openssl:0=
1521 - elibc_musl? ( sys-libs/libunwind:= )
1522 - system-llvm? ( ${LLVM_DEPEND} )
1523 -"
1524 -
1525 -# we need to block older versions due to layout changes.
1526 -RDEPEND="${DEPEND}
1527 - app-eselect/eselect-rust
1528 - !<dev-lang/rust-1.47.0-r1
1529 - !<dev-lang/rust-bin-1.47.0-r1
1530 -"
1531 -
1532 -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
1533 - miri? ( nightly )
1534 - parallel-compiler? ( nightly )
1535 - test? ( ${ALL_LLVM_TARGETS[*]} )
1536 - wasm? ( llvm_targets_WebAssembly )
1537 - x86? ( cpu_flags_x86_sse2 )
1538 -"
1539 -
1540 -# we don't use cmake.eclass, but can get a warnings
1541 -CMAKE_WARN_UNUSED_CLI=no
1542 -
1543 -QA_FLAGS_IGNORED="
1544 - usr/lib/${PN}/${PV}/bin/.*
1545 - usr/lib/${PN}/${PV}/libexec/.*
1546 - usr/lib/${PN}/${PV}/lib/lib.*.so
1547 - usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
1548 - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
1549 -"
1550 -
1551 -QA_SONAME="
1552 - usr/lib/${PN}/${PV}/lib/lib.*.so.*
1553 - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
1554 -"
1555 -
1556 -# An rmeta file is custom binary format that contains the metadata for the crate.
1557 -# rmeta files do not support linking, since they do not contain compiled object files.
1558 -# so we can safely silence the warning for this QA check.
1559 -QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
1560 -
1561 -# causes double bootstrap
1562 -RESTRICT="test"
1563 -
1564 -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc
1565 -
1566 -PATCHES=(
1567 - "${FILESDIR}"/1.47.0-ignore-broken-and-non-applicable-tests.patch
1568 - "${FILESDIR}"/1.49.0-gentoo-musl-target-specs.patch
1569 - "${FILESDIR}"/1.53.0-rustversion-1.0.5.patch # https://github.com/rust-lang/rust/pull/86425
1570 - "${FILESDIR}"/1.54.0-parallel-miri.patch # https://github.com/rust-lang/miri/pull/1863
1571 -)
1572 -
1573 -S="${WORKDIR}/${MY_P}-src"
1574 -
1575 -toml_usex() {
1576 - usex "${1}" true false
1577 -}
1578 -
1579 -bootstrap_rust_version_check() {
1580 - # never call from pkg_pretend. eselect-rust may be not installed yet.
1581 - [[ ${MERGE_TYPE} == binary ]] && return
1582 - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
1583 - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
1584 - local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
1585 - rustc_version=${rustc_version[0]#rust-bin-}
1586 - rustc_version=${rustc_version#rust-}
1587 -
1588 - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
1589 -
1590 - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
1591 - eerror "Rust >=${rustc_wanted} is required"
1592 - eerror "please run 'eselect rust' and set correct rust version"
1593 - die "selected rust version is too old"
1594 - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
1595 - eerror "Rust <${rustc_toonew} is required"
1596 - eerror "please run 'eselect rust' and set correct rust version"
1597 - die "selected rust version is too new"
1598 - else
1599 - einfo "Using rust ${rustc_version} to build"
1600 - fi
1601 -}
1602 -
1603 -pre_build_checks() {
1604 - local M=4096
1605 - # multiply requirements by 1.5 if we are doing x86-multilib
1606 - if use amd64; then
1607 - M=$(( $(usex abi_x86_32 15 10) * ${M} / 10 ))
1608 - fi
1609 - M=$(( $(usex clippy 128 0) + ${M} ))
1610 - M=$(( $(usex miri 128 0) + ${M} ))
1611 - M=$(( $(usex rls 512 0) + ${M} ))
1612 - M=$(( $(usex rustfmt 256 0) + ${M} ))
1613 - # add 2G if we compile llvm and 256M per llvm_target
1614 - if ! use system-llvm; then
1615 - M=$(( 2048 + ${M} ))
1616 - local ltarget
1617 - for ltarget in ${ALL_LLVM_TARGETS[@]}; do
1618 - M=$(( $(usex ${ltarget} 256 0) + ${M} ))
1619 - done
1620 - fi
1621 - M=$(( $(usex wasm 256 0) + ${M} ))
1622 - M=$(( $(usex debug 2 1) * ${M} ))
1623 - eshopts_push -s extglob
1624 - if is-flagq '-g?(gdb)?([1-9])'; then
1625 - M=$(( 15 * ${M} / 10 ))
1626 - fi
1627 - eshopts_pop
1628 - M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
1629 - M=$(( $(usex doc 256 0) + ${M} ))
1630 - CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
1631 -}
1632 -
1633 -llvm_check_deps() {
1634 - has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
1635 -}
1636 -
1637 -pkg_pretend() {
1638 - pre_build_checks
1639 -}
1640 -
1641 -pkg_setup() {
1642 - pre_build_checks
1643 - python-any-r1_pkg_setup
1644 -
1645 - export LIBGIT2_NO_PKG_CONFIG=1 #749381
1646 -
1647 - use system-bootstrap && bootstrap_rust_version_check
1648 -
1649 - if use system-llvm; then
1650 - llvm_pkg_setup
1651 -
1652 - local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
1653 - export LLVM_LINK_SHARED=1
1654 - export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
1655 - fi
1656 -}
1657 -
1658 -src_prepare() {
1659 - if ! use system-bootstrap; then
1660 - local rust_stage0_root="${WORKDIR}"/rust-stage0
1661 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
1662 -
1663 - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
1664 - --without=rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
1665 - fi
1666 -
1667 - default
1668 -}
1669 -
1670 -src_configure() {
1671 - local rust_target="" rust_targets="" arch_cflags
1672 -
1673 - # Collect rust target names to compile standard libs for all ABIs.
1674 - for v in $(multilib_get_enabled_abi_pairs); do
1675 - rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
1676 - done
1677 - if use wasm; then
1678 - rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
1679 - if use system-llvm; then
1680 - # un-hardcode rust-lld linker for this target
1681 - # https://bugs.gentoo.org/715348
1682 - sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
1683 - fi
1684 - fi
1685 - rust_targets="${rust_targets#,}"
1686 -
1687 - local tools="\"cargo\","
1688 - if use clippy; then
1689 - tools="\"clippy\",$tools"
1690 - fi
1691 - if use miri; then
1692 - tools="\"miri\",$tools"
1693 - fi
1694 - if use rls; then
1695 - tools="\"rls\",\"analysis\",\"src\",$tools"
1696 - fi
1697 - if use rustfmt; then
1698 - tools="\"rustfmt\",$tools"
1699 - fi
1700 -
1701 - local rust_stage0_root
1702 - if use system-bootstrap; then
1703 - local printsysroot
1704 - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
1705 - rust_stage0_root="${printsysroot}"
1706 - else
1707 - rust_stage0_root="${WORKDIR}"/rust-stage0
1708 - fi
1709 - # in case of prefix it will be already prefixed, as --print sysroot returns full path
1710 - [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
1711 -
1712 - rust_target="$(rust_abi)"
1713 -
1714 - cat <<- _EOF_ > "${S}"/config.toml
1715 - changelog-seen = 2
1716 - [llvm]
1717 - download-ci-llvm = false
1718 - optimize = $(toml_usex !debug)
1719 - release-debuginfo = $(toml_usex debug)
1720 - assertions = $(toml_usex debug)
1721 - ninja = true
1722 - targets = "${LLVM_TARGETS// /;}"
1723 - experimental-targets = ""
1724 - link-shared = $(toml_usex system-llvm)
1725 - [build]
1726 - build-stage = 2
1727 - test-stage = 2
1728 - doc-stage = 2
1729 - build = "${rust_target}"
1730 - host = ["${rust_target}"]
1731 - target = [${rust_targets}]
1732 - cargo = "${rust_stage0_root}/bin/cargo"
1733 - rustc = "${rust_stage0_root}/bin/rustc"
1734 - rustfmt = "${rust_stage0_root}/bin/rustfmt"
1735 - docs = $(toml_usex doc)
1736 - compiler-docs = false
1737 - submodules = false
1738 - python = "${EPYTHON}"
1739 - locked-deps = true
1740 - vendor = true
1741 - extended = true
1742 - tools = [${tools}]
1743 - verbose = 2
1744 - sanitizers = false
1745 - profiler = false
1746 - cargo-native-static = false
1747 - [install]
1748 - prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
1749 - sysconfdir = "etc"
1750 - docdir = "share/doc/rust"
1751 - bindir = "bin"
1752 - libdir = "lib"
1753 - mandir = "share/man"
1754 - [rust]
1755 - # https://github.com/rust-lang/rust/issues/54872
1756 - codegen-units-std = 1
1757 - optimize = true
1758 - debug = $(toml_usex debug)
1759 - debug-assertions = $(toml_usex debug)
1760 - debug-assertions-std = $(toml_usex debug)
1761 - debuginfo-level = $(usex debug 2 0)
1762 - debuginfo-level-rustc = $(usex debug 2 0)
1763 - debuginfo-level-std = $(usex debug 2 0)
1764 - debuginfo-level-tools = $(usex debug 2 0)
1765 - debuginfo-level-tests = 0
1766 - backtrace = true
1767 - incremental = false
1768 - default-linker = "$(tc-getCC)"
1769 - parallel-compiler = $(toml_usex parallel-compiler)
1770 - channel = "$(usex nightly nightly stable)"
1771 - description = "gentoo"
1772 - rpath = false
1773 - verbose-tests = true
1774 - optimize-tests = $(toml_usex !debug)
1775 - codegen-tests = true
1776 - dist-src = false
1777 - remap-debuginfo = true
1778 - lld = $(usex system-llvm false $(toml_usex wasm))
1779 - # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
1780 - # https://github.com/rust-lang/rust/issues/74976
1781 - # https://github.com/rust-lang/rust/issues/76526
1782 - deny-warnings = $(usex wasm $(usex doc false true) true)
1783 - backtrace-on-ice = true
1784 - jemalloc = false
1785 - [dist]
1786 - src-tarball = false
1787 - compression-formats = ["gz"]
1788 - _EOF_
1789 -
1790 - for v in $(multilib_get_enabled_abi_pairs); do
1791 - rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
1792 - arch_cflags="$(get_abi_CFLAGS ${v##*.})"
1793 -
1794 - cat <<- _EOF_ >> "${S}"/config.env
1795 - CFLAGS_${rust_target}=${arch_cflags}
1796 - _EOF_
1797 -
1798 - cat <<- _EOF_ >> "${S}"/config.toml
1799 - [target.${rust_target}]
1800 - cc = "$(tc-getBUILD_CC)"
1801 - cxx = "$(tc-getBUILD_CXX)"
1802 - linker = "$(tc-getCC)"
1803 - ar = "$(tc-getAR)"
1804 - _EOF_
1805 - # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
1806 - if use elibc_musl; then
1807 - cat <<- _EOF_ >> "${S}"/config.toml
1808 - crt-static = false
1809 - _EOF_
1810 - fi
1811 - if use system-llvm; then
1812 - cat <<- _EOF_ >> "${S}"/config.toml
1813 - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
1814 - _EOF_
1815 - fi
1816 - done
1817 - if use wasm; then
1818 - cat <<- _EOF_ >> "${S}"/config.toml
1819 - [target.wasm32-unknown-unknown]
1820 - linker = "$(usex system-llvm lld rust-lld)"
1821 - _EOF_
1822 - fi
1823 -
1824 - if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
1825 - # experimental cross support
1826 - # discussion: https://bugs.gentoo.org/679878
1827 - # TODO: c*flags, clang, system-llvm, cargo.eclass target support
1828 - # it would be much better if we could split out stdlib
1829 - # complilation to separate ebuild and abuse CATEGORY to
1830 - # just install to /usr/lib/rustlib/<target>
1831 -
1832 - # extra targets defined as a bash array
1833 - # spec format: <LLVM target>:<rust-target>:<CTARGET>
1834 - # best place would be /etc/portage/env/dev-lang/rust
1835 - # Example:
1836 - # RUST_CROSS_TARGETS=(
1837 - # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
1838 - # )
1839 - # no extra hand holding is done, no target transformations, all
1840 - # values are passed as-is with just basic checks, so it's up to user to supply correct values
1841 - # valid rust targets can be obtained with
1842 - # rustc --print target-list
1843 - # matching cross toolchain has to be installed
1844 - # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
1845 - # only gcc toolchains installed with crossdev are checked for now.
1846 -
1847 - # BUG: we can't pass host flags to cross compiler, so just filter for now
1848 - # BUG: this should be more fine-grained.
1849 - filter-flags '-mcpu=*' '-march=*' '-mtune=*'
1850 -
1851 - local cross_target_spec
1852 - for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
1853 - # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
1854 - local cross_llvm_target="${cross_target_spec%%:*}"
1855 - # extracts toolchain triples, <rust-target>:<CTARGET>
1856 - local cross_triples="${cross_target_spec#*:}"
1857 - # extracts first element after before : separator
1858 - local cross_rust_target="${cross_triples%%:*}"
1859 - # extracts last element after : separator
1860 - local cross_toolchain="${cross_triples##*:}"
1861 - use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
1862 - command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
1863 -
1864 - cat <<- _EOF_ >> "${S}"/config.toml
1865 - [target.${cross_rust_target}]
1866 - cc = "${cross_toolchain}-gcc"
1867 - cxx = "${cross_toolchain}-g++"
1868 - linker = "${cross_toolchain}-gcc"
1869 - ar = "${cross_toolchain}-ar"
1870 - _EOF_
1871 - if use system-llvm; then
1872 - cat <<- _EOF_ >> "${S}"/config.toml
1873 - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
1874 - _EOF_
1875 - fi
1876 - if [[ "${cross_toolchain}" == *-musl* ]]; then
1877 - cat <<- _EOF_ >> "${S}"/config.toml
1878 - musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
1879 - _EOF_
1880 - fi
1881 -
1882 - # append cross target to "normal" target list
1883 - # example 'target = ["powerpc64le-unknown-linux-gnu"]'
1884 - # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
1885 -
1886 - rust_targets="${rust_targets},\"${cross_rust_target}\""
1887 - sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
1888 -
1889 - ewarn
1890 - ewarn "Enabled ${cross_rust_target} rust target"
1891 - ewarn "Using ${cross_toolchain} cross toolchain"
1892 - ewarn
1893 - if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
1894 - ewarn "'sys-devel/binutils[multitarget]' is not installed"
1895 - ewarn "'strip' will be unable to strip cross libraries"
1896 - ewarn "cross targets will be installed with full debug information"
1897 - ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
1898 - ewarn
1899 - ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
1900 - ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
1901 - ewarn
1902 - fi
1903 - done
1904 - fi # I_KNOW_WHAT_I_AM_DOING_CROSS
1905 -
1906 - einfo "Rust configured with the following flags:"
1907 - echo
1908 - echo RUSTFLAGS="${RUSTFLAGS:-}"
1909 - echo RUSTFLAGS_BOOTSTRAP="${RUSTFLAGS_BOOTSTRAP:-}"
1910 - echo RUSTFLAGS_NOT_BOOTSTRAP="${RUSTFLAGS_NOT_BOOTSTRAP:-}"
1911 - env | grep "CARGO_TARGET_.*_RUSTFLAGS="
1912 - cat "${S}"/config.env || die
1913 - echo
1914 - einfo "config.toml contents:"
1915 - cat "${S}"/config.toml || die
1916 - echo
1917 -}
1918 -
1919 -src_compile() {
1920 - # we need \n IFS to have config.env with spaces loaded properly. #734018
1921 - (
1922 - IFS=$'\n'
1923 - env $(cat "${S}"/config.env) RUST_BACKTRACE=1\
1924 - "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
1925 - )
1926 -}
1927 -
1928 -src_test() {
1929 - # https://rustc-dev-guide.rust-lang.org/tests/intro.html
1930 -
1931 - # those are basic and codegen tests.
1932 - local tests=(
1933 - codegen
1934 - codegen-units
1935 - compile-fail
1936 - incremental
1937 - mir-opt
1938 - pretty
1939 - run-make
1940 - )
1941 -
1942 - # fails if llvm is not built with ALL targets.
1943 - # and known to fail with system llvm sometimes.
1944 - use system-llvm || tests+=( assembly )
1945 -
1946 - # fragile/expensive/less important tests
1947 - # or tests that require extra builds
1948 - # TODO: instead of skipping, just make some nonfatal.
1949 - if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
1950 - tests+=(
1951 - rustdoc
1952 - rustdoc-js
1953 - rustdoc-js-std
1954 - rustdoc-ui
1955 - run-make-fulldeps
1956 - ui
1957 - ui-fulldeps
1958 - )
1959 - fi
1960 -
1961 - local i failed=()
1962 - einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
1963 - for i in "${tests[@]}"; do
1964 - local t="src/test/${i}"
1965 - einfo "rust_src_test: running ${t}"
1966 - if ! (
1967 - IFS=$'\n'
1968 - env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \
1969 - "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
1970 - -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
1971 - )
1972 - then
1973 - failed+=( "${t}" )
1974 - eerror "rust_src_test: ${t} failed"
1975 - fi
1976 - done
1977 -
1978 - if [[ ${#failed[@]} -ne 0 ]]; then
1979 - eerror "rust_src_test: failure summary: ${failed[@]}"
1980 - die "aborting due to test failures"
1981 - fi
1982 -}
1983 -
1984 -src_install() {
1985 - (
1986 - IFS=$'\n'
1987 - env $(cat "${S}"/config.env) DESTDIR="${D}" \
1988 - "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
1989 - )
1990 -
1991 - # bug #689562, #689160
1992 - rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
1993 - rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
1994 - newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
1995 -
1996 - local symlinks=(
1997 - cargo
1998 - rustc
1999 - rustdoc
2000 - rust-gdb
2001 - rust-gdbgui
2002 - rust-lldb
2003 - )
2004 -
2005 - use clippy && symlinks+=( clippy-driver cargo-clippy )
2006 - use miri && symlinks+=( miri cargo-miri )
2007 - use rls && symlinks+=( rls )
2008 - use rustfmt && symlinks+=( rustfmt cargo-fmt )
2009 -
2010 - einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
2011 - local i
2012 - for i in "${symlinks[@]}"; do
2013 - # we need realpath on /usr/bin/* symlink return version-appended binary path.
2014 - # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
2015 - # need to fix eselect-rust to remove this hack.
2016 - local ver_i="${i}-${PV}"
2017 - if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
2018 - einfo "Installing ${i} symlink"
2019 - ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
2020 - else
2021 - ewarn "${i} symlink requested, but source file not found"
2022 - ewarn "please report this"
2023 - fi
2024 - dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
2025 - done
2026 -
2027 - # symlinks to switch components to active rust in eselect
2028 - dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
2029 - dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
2030 - dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
2031 - dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
2032 - dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
2033 -
2034 - newenvd - "50${P}" <<-_EOF_
2035 - LDPATH="${EPREFIX}/usr/lib/rust/lib"
2036 - MANPATH="${EPREFIX}/usr/lib/rust/man"
2037 - $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
2038 - $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
2039 - _EOF_
2040 -
2041 - rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
2042 - rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
2043 -
2044 - # note: eselect-rust adds EROOT to all paths below
2045 - cat <<-_EOF_ > "${T}/provider-${P}"
2046 - /usr/bin/cargo
2047 - /usr/bin/rustdoc
2048 - /usr/bin/rust-gdb
2049 - /usr/bin/rust-gdbgui
2050 - /usr/bin/rust-lldb
2051 - /usr/lib/rustlib
2052 - /usr/lib/rust/lib
2053 - /usr/lib/rust/libexec
2054 - /usr/lib/rust/man
2055 - /usr/share/doc/rust
2056 - _EOF_
2057 -
2058 - if use clippy; then
2059 - echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
2060 - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
2061 - fi
2062 - if use miri; then
2063 - echo /usr/bin/miri >> "${T}/provider-${P}"
2064 - echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
2065 - fi
2066 - if use rls; then
2067 - echo /usr/bin/rls >> "${T}/provider-${P}"
2068 - fi
2069 - if use rustfmt; then
2070 - echo /usr/bin/rustfmt >> "${T}/provider-${P}"
2071 - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
2072 - fi
2073 -
2074 - insinto /etc/env.d/rust
2075 - doins "${T}/provider-${P}"
2076 -}
2077 -
2078 -pkg_postinst() {
2079 - eselect rust update
2080 -
2081 - if has_version sys-devel/gdb || has_version dev-util/lldb; then
2082 - elog "Rust installs a helper script for calling GDB and LLDB,"
2083 - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
2084 - fi
2085 -
2086 - if has_version app-editors/emacs; then
2087 - elog "install app-emacs/rust-mode to get emacs support for rust."
2088 - fi
2089 -
2090 - if has_version app-editors/gvim || has_version app-editors/vim; then
2091 - elog "install app-vim/rust-vim to get vim support for rust."
2092 - fi
2093 -}
2094 -
2095 -pkg_postrm() {
2096 - eselect rust cleanup
2097 -}
2098
2099 diff --git a/dev-lang/rust/rust-1.55.0.ebuild b/dev-lang/rust/rust-1.55.0.ebuild
2100 deleted file mode 100644
2101 index 2cb07abe8789..000000000000
2102 --- a/dev-lang/rust/rust-1.55.0.ebuild
2103 +++ /dev/null
2104 @@ -1,683 +0,0 @@
2105 -# Copyright 1999-2021 Gentoo Authors
2106 -# Distributed under the terms of the GNU General Public License v2
2107 -
2108 -EAPI=7
2109 -
2110 -PYTHON_COMPAT=( python3_{7..9} )
2111 -
2112 -inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
2113 - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
2114 -
2115 -if [[ ${PV} = *beta* ]]; then
2116 - betaver=${PV//*beta}
2117 - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
2118 - MY_P="rustc-beta"
2119 - SLOT="beta/${PV}"
2120 - SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
2121 -else
2122 - ABI_VER="$(ver_cut 1-2)"
2123 - SLOT="stable/${ABI_VER}"
2124 - MY_P="rustc-${PV}"
2125 - SRC="${MY_P}-src.tar.xz"
2126 - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
2127 -fi
2128 -
2129 -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
2130 -
2131 -DESCRIPTION="Systems programming language from Mozilla"
2132 -HOMEPAGE="https://www.rust-lang.org/"
2133 -
2134 -SRC_URI="
2135 - https://static.rust-lang.org/dist/${SRC}
2136 - verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
2137 - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
2138 -"
2139 -
2140 -# keep in sync with llvm ebuild of the same version as bundled one.
2141 -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430
2142 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore )
2143 -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
2144 -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
2145 -
2146 -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
2147 -
2148 -IUSE="clippy cpu_flags_x86_sse2 debug doc miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
2149 -
2150 -# Please keep the LLVM dependency block separate. Since LLVM is slotted,
2151 -# we need to *really* make sure we're not pulling more than one slot
2152 -# simultaneously.
2153 -
2154 -# How to use it:
2155 -# List all the working slots in LLVM_VALID_SLOTS, newest first.
2156 -LLVM_VALID_SLOTS=( 12 )
2157 -LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
2158 -
2159 -# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
2160 -# (-) usedep needed because we may build with older llvm without that target
2161 -LLVM_DEPEND="|| ( "
2162 -for _s in ${LLVM_VALID_SLOTS[@]}; do
2163 - LLVM_DEPEND+=" ( "
2164 - for _x in ${ALL_LLVM_TARGETS[@]}; do
2165 - LLVM_DEPEND+="
2166 - ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )"
2167 - done
2168 - LLVM_DEPEND+=" )"
2169 -done
2170 -unset _s _x
2171 -LLVM_DEPEND+=" )
2172 - <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
2173 - wasm? ( sys-devel/lld )
2174 -"
2175 -
2176 -# to bootstrap we need at least exactly previous version, or same.
2177 -# most of the time previous versions fail to bootstrap with newer
2178 -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
2179 -# but it fails to bootstrap with 1.48.x
2180 -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt
2181 -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
2182 -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
2183 -BOOTSTRAP_DEPEND="||
2184 - (
2185 - =dev-lang/rust-"${RUST_DEP_PREV}"
2186 - =dev-lang/rust-bin-"${RUST_DEP_PREV}"
2187 - =dev-lang/rust-"${RUST_DEP_CURR}"
2188 - =dev-lang/rust-bin-"${RUST_DEP_CURR}"
2189 - )
2190 -"
2191 -
2192 -BDEPEND="${PYTHON_DEPS}
2193 - app-eselect/eselect-rust
2194 - || (
2195 - >=sys-devel/gcc-4.7
2196 - >=sys-devel/clang-3.5
2197 - )
2198 - system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
2199 - !system-llvm? (
2200 - >=dev-util/cmake-3.13.4
2201 - dev-util/ninja
2202 - )
2203 - test? ( sys-devel/gdb )
2204 - verify-sig? ( sec-keys/openpgp-keys-rust )
2205 -"
2206 -
2207 -DEPEND="
2208 - >=app-arch/xz-utils-5.2
2209 - net-misc/curl:=[http2,ssl]
2210 - sys-libs/zlib:=
2211 - dev-libs/openssl:0=
2212 - elibc_musl? ( sys-libs/libunwind:= )
2213 - system-llvm? ( ${LLVM_DEPEND} )
2214 -"
2215 -
2216 -# we need to block older versions due to layout changes.
2217 -RDEPEND="${DEPEND}
2218 - app-eselect/eselect-rust
2219 - !<dev-lang/rust-1.47.0-r1
2220 - !<dev-lang/rust-bin-1.47.0-r1
2221 -"
2222 -
2223 -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
2224 - miri? ( nightly )
2225 - parallel-compiler? ( nightly )
2226 - test? ( ${ALL_LLVM_TARGETS[*]} )
2227 - wasm? ( llvm_targets_WebAssembly )
2228 - x86? ( cpu_flags_x86_sse2 )
2229 -"
2230 -
2231 -# we don't use cmake.eclass, but can get a warnings
2232 -CMAKE_WARN_UNUSED_CLI=no
2233 -
2234 -QA_FLAGS_IGNORED="
2235 - usr/lib/${PN}/${PV}/bin/.*
2236 - usr/lib/${PN}/${PV}/libexec/.*
2237 - usr/lib/${PN}/${PV}/lib/lib.*.so
2238 - usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
2239 - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
2240 -"
2241 -
2242 -QA_SONAME="
2243 - usr/lib/${PN}/${PV}/lib/lib.*.so.*
2244 - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
2245 -"
2246 -
2247 -# An rmeta file is custom binary format that contains the metadata for the crate.
2248 -# rmeta files do not support linking, since they do not contain compiled object files.
2249 -# so we can safely silence the warning for this QA check.
2250 -QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
2251 -
2252 -# causes double bootstrap
2253 -RESTRICT="test"
2254 -
2255 -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc
2256 -
2257 -PATCHES=(
2258 - "${FILESDIR}"/1.55.0-ignore-broken-and-non-applicable-tests.patch
2259 - "${FILESDIR}"/1.49.0-gentoo-musl-target-specs.patch
2260 - "${FILESDIR}"/1.54.0-parallel-miri.patch # https://github.com/rust-lang/miri/pull/1863
2261 -)
2262 -
2263 -S="${WORKDIR}/${MY_P}-src"
2264 -
2265 -toml_usex() {
2266 - usex "${1}" true false
2267 -}
2268 -
2269 -bootstrap_rust_version_check() {
2270 - # never call from pkg_pretend. eselect-rust may be not installed yet.
2271 - [[ ${MERGE_TYPE} == binary ]] && return
2272 - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
2273 - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
2274 - local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
2275 - rustc_version=${rustc_version[0]#rust-bin-}
2276 - rustc_version=${rustc_version#rust-}
2277 -
2278 - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
2279 -
2280 - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
2281 - eerror "Rust >=${rustc_wanted} is required"
2282 - eerror "please run 'eselect rust' and set correct rust version"
2283 - die "selected rust version is too old"
2284 - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
2285 - eerror "Rust <${rustc_toonew} is required"
2286 - eerror "please run 'eselect rust' and set correct rust version"
2287 - die "selected rust version is too new"
2288 - else
2289 - einfo "Using rust ${rustc_version} to build"
2290 - fi
2291 -}
2292 -
2293 -pre_build_checks() {
2294 - local M=4096
2295 - # multiply requirements by 1.5 if we are doing x86-multilib
2296 - if use amd64; then
2297 - M=$(( $(usex abi_x86_32 15 10) * ${M} / 10 ))
2298 - fi
2299 - M=$(( $(usex clippy 128 0) + ${M} ))
2300 - M=$(( $(usex miri 128 0) + ${M} ))
2301 - M=$(( $(usex rls 512 0) + ${M} ))
2302 - M=$(( $(usex rustfmt 256 0) + ${M} ))
2303 - # add 2G if we compile llvm and 256M per llvm_target
2304 - if ! use system-llvm; then
2305 - M=$(( 2048 + ${M} ))
2306 - local ltarget
2307 - for ltarget in ${ALL_LLVM_TARGETS[@]}; do
2308 - M=$(( $(usex ${ltarget} 256 0) + ${M} ))
2309 - done
2310 - fi
2311 - M=$(( $(usex wasm 256 0) + ${M} ))
2312 - M=$(( $(usex debug 2 1) * ${M} ))
2313 - eshopts_push -s extglob
2314 - if is-flagq '-g?(gdb)?([1-9])'; then
2315 - M=$(( 15 * ${M} / 10 ))
2316 - fi
2317 - eshopts_pop
2318 - M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
2319 - M=$(( $(usex doc 256 0) + ${M} ))
2320 - CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
2321 -}
2322 -
2323 -llvm_check_deps() {
2324 - has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
2325 -}
2326 -
2327 -pkg_pretend() {
2328 - pre_build_checks
2329 -}
2330 -
2331 -pkg_setup() {
2332 - pre_build_checks
2333 - python-any-r1_pkg_setup
2334 -
2335 - export LIBGIT2_NO_PKG_CONFIG=1 #749381
2336 -
2337 - use system-bootstrap && bootstrap_rust_version_check
2338 -
2339 - if use system-llvm; then
2340 - llvm_pkg_setup
2341 -
2342 - local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
2343 - export LLVM_LINK_SHARED=1
2344 - export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
2345 - fi
2346 -}
2347 -
2348 -src_prepare() {
2349 - if ! use system-bootstrap; then
2350 - local rust_stage0_root="${WORKDIR}"/rust-stage0
2351 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
2352 -
2353 - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
2354 - --without=rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
2355 - fi
2356 -
2357 - default
2358 -}
2359 -
2360 -src_configure() {
2361 - local rust_target="" rust_targets="" arch_cflags
2362 -
2363 - # Collect rust target names to compile standard libs for all ABIs.
2364 - for v in $(multilib_get_enabled_abi_pairs); do
2365 - rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
2366 - done
2367 - if use wasm; then
2368 - rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
2369 - if use system-llvm; then
2370 - # un-hardcode rust-lld linker for this target
2371 - # https://bugs.gentoo.org/715348
2372 - sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
2373 - fi
2374 - fi
2375 - rust_targets="${rust_targets#,}"
2376 -
2377 - local tools="\"cargo\","
2378 - if use clippy; then
2379 - tools="\"clippy\",$tools"
2380 - fi
2381 - if use miri; then
2382 - tools="\"miri\",$tools"
2383 - fi
2384 - if use rls; then
2385 - tools="\"rls\",\"analysis\",\"src\",$tools"
2386 - fi
2387 - if use rustfmt; then
2388 - tools="\"rustfmt\",$tools"
2389 - fi
2390 -
2391 - local rust_stage0_root
2392 - if use system-bootstrap; then
2393 - local printsysroot
2394 - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
2395 - rust_stage0_root="${printsysroot}"
2396 - else
2397 - rust_stage0_root="${WORKDIR}"/rust-stage0
2398 - fi
2399 - # in case of prefix it will be already prefixed, as --print sysroot returns full path
2400 - [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
2401 -
2402 - rust_target="$(rust_abi)"
2403 -
2404 - cat <<- _EOF_ > "${S}"/config.toml
2405 - changelog-seen = 2
2406 - [llvm]
2407 - download-ci-llvm = false
2408 - optimize = $(toml_usex !debug)
2409 - release-debuginfo = $(toml_usex debug)
2410 - assertions = $(toml_usex debug)
2411 - ninja = true
2412 - targets = "${LLVM_TARGETS// /;}"
2413 - experimental-targets = ""
2414 - link-shared = $(toml_usex system-llvm)
2415 - [build]
2416 - build-stage = 2
2417 - test-stage = 2
2418 - doc-stage = 2
2419 - build = "${rust_target}"
2420 - host = ["${rust_target}"]
2421 - target = [${rust_targets}]
2422 - cargo = "${rust_stage0_root}/bin/cargo"
2423 - rustc = "${rust_stage0_root}/bin/rustc"
2424 - rustfmt = "${rust_stage0_root}/bin/rustfmt"
2425 - docs = $(toml_usex doc)
2426 - compiler-docs = false
2427 - submodules = false
2428 - python = "${EPYTHON}"
2429 - locked-deps = true
2430 - vendor = true
2431 - extended = true
2432 - tools = [${tools}]
2433 - verbose = 2
2434 - sanitizers = false
2435 - profiler = false
2436 - cargo-native-static = false
2437 - [install]
2438 - prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
2439 - sysconfdir = "etc"
2440 - docdir = "share/doc/rust"
2441 - bindir = "bin"
2442 - libdir = "lib"
2443 - mandir = "share/man"
2444 - [rust]
2445 - # https://github.com/rust-lang/rust/issues/54872
2446 - codegen-units-std = 1
2447 - optimize = true
2448 - debug = $(toml_usex debug)
2449 - debug-assertions = $(toml_usex debug)
2450 - debug-assertions-std = $(toml_usex debug)
2451 - debuginfo-level = $(usex debug 2 0)
2452 - debuginfo-level-rustc = $(usex debug 2 0)
2453 - debuginfo-level-std = $(usex debug 2 0)
2454 - debuginfo-level-tools = $(usex debug 2 0)
2455 - debuginfo-level-tests = 0
2456 - backtrace = true
2457 - incremental = false
2458 - default-linker = "$(tc-getCC)"
2459 - parallel-compiler = $(toml_usex parallel-compiler)
2460 - channel = "$(usex nightly nightly stable)"
2461 - description = "gentoo"
2462 - rpath = false
2463 - verbose-tests = true
2464 - optimize-tests = $(toml_usex !debug)
2465 - codegen-tests = true
2466 - dist-src = false
2467 - remap-debuginfo = true
2468 - lld = $(usex system-llvm false $(toml_usex wasm))
2469 - # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
2470 - # https://github.com/rust-lang/rust/issues/74976
2471 - # https://github.com/rust-lang/rust/issues/76526
2472 - deny-warnings = $(usex wasm $(usex doc false true) true)
2473 - backtrace-on-ice = true
2474 - jemalloc = false
2475 - [dist]
2476 - src-tarball = false
2477 - compression-formats = ["gz"]
2478 - _EOF_
2479 -
2480 - for v in $(multilib_get_enabled_abi_pairs); do
2481 - rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
2482 - arch_cflags="$(get_abi_CFLAGS ${v##*.})"
2483 -
2484 - cat <<- _EOF_ >> "${S}"/config.env
2485 - CFLAGS_${rust_target}=${arch_cflags}
2486 - _EOF_
2487 -
2488 - cat <<- _EOF_ >> "${S}"/config.toml
2489 - [target.${rust_target}]
2490 - cc = "$(tc-getBUILD_CC)"
2491 - cxx = "$(tc-getBUILD_CXX)"
2492 - linker = "$(tc-getCC)"
2493 - ar = "$(tc-getAR)"
2494 - _EOF_
2495 - # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
2496 - if use elibc_musl; then
2497 - cat <<- _EOF_ >> "${S}"/config.toml
2498 - crt-static = false
2499 - _EOF_
2500 - fi
2501 - if use system-llvm; then
2502 - cat <<- _EOF_ >> "${S}"/config.toml
2503 - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
2504 - _EOF_
2505 - fi
2506 - done
2507 - if use wasm; then
2508 - cat <<- _EOF_ >> "${S}"/config.toml
2509 - [target.wasm32-unknown-unknown]
2510 - linker = "$(usex system-llvm lld rust-lld)"
2511 - _EOF_
2512 - fi
2513 -
2514 - if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
2515 - # experimental cross support
2516 - # discussion: https://bugs.gentoo.org/679878
2517 - # TODO: c*flags, clang, system-llvm, cargo.eclass target support
2518 - # it would be much better if we could split out stdlib
2519 - # complilation to separate ebuild and abuse CATEGORY to
2520 - # just install to /usr/lib/rustlib/<target>
2521 -
2522 - # extra targets defined as a bash array
2523 - # spec format: <LLVM target>:<rust-target>:<CTARGET>
2524 - # best place would be /etc/portage/env/dev-lang/rust
2525 - # Example:
2526 - # RUST_CROSS_TARGETS=(
2527 - # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
2528 - # )
2529 - # no extra hand holding is done, no target transformations, all
2530 - # values are passed as-is with just basic checks, so it's up to user to supply correct values
2531 - # valid rust targets can be obtained with
2532 - # rustc --print target-list
2533 - # matching cross toolchain has to be installed
2534 - # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
2535 - # only gcc toolchains installed with crossdev are checked for now.
2536 -
2537 - # BUG: we can't pass host flags to cross compiler, so just filter for now
2538 - # BUG: this should be more fine-grained.
2539 - filter-flags '-mcpu=*' '-march=*' '-mtune=*'
2540 -
2541 - local cross_target_spec
2542 - for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
2543 - # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
2544 - local cross_llvm_target="${cross_target_spec%%:*}"
2545 - # extracts toolchain triples, <rust-target>:<CTARGET>
2546 - local cross_triples="${cross_target_spec#*:}"
2547 - # extracts first element after before : separator
2548 - local cross_rust_target="${cross_triples%%:*}"
2549 - # extracts last element after : separator
2550 - local cross_toolchain="${cross_triples##*:}"
2551 - use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
2552 - command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
2553 -
2554 - cat <<- _EOF_ >> "${S}"/config.toml
2555 - [target.${cross_rust_target}]
2556 - cc = "${cross_toolchain}-gcc"
2557 - cxx = "${cross_toolchain}-g++"
2558 - linker = "${cross_toolchain}-gcc"
2559 - ar = "${cross_toolchain}-ar"
2560 - _EOF_
2561 - if use system-llvm; then
2562 - cat <<- _EOF_ >> "${S}"/config.toml
2563 - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
2564 - _EOF_
2565 - fi
2566 - if [[ "${cross_toolchain}" == *-musl* ]]; then
2567 - cat <<- _EOF_ >> "${S}"/config.toml
2568 - musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
2569 - _EOF_
2570 - fi
2571 -
2572 - # append cross target to "normal" target list
2573 - # example 'target = ["powerpc64le-unknown-linux-gnu"]'
2574 - # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
2575 -
2576 - rust_targets="${rust_targets},\"${cross_rust_target}\""
2577 - sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
2578 -
2579 - ewarn
2580 - ewarn "Enabled ${cross_rust_target} rust target"
2581 - ewarn "Using ${cross_toolchain} cross toolchain"
2582 - ewarn
2583 - if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
2584 - ewarn "'sys-devel/binutils[multitarget]' is not installed"
2585 - ewarn "'strip' will be unable to strip cross libraries"
2586 - ewarn "cross targets will be installed with full debug information"
2587 - ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
2588 - ewarn
2589 - ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
2590 - ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
2591 - ewarn
2592 - fi
2593 - done
2594 - fi # I_KNOW_WHAT_I_AM_DOING_CROSS
2595 -
2596 - einfo "Rust configured with the following flags:"
2597 - echo
2598 - echo RUSTFLAGS="${RUSTFLAGS:-}"
2599 - echo RUSTFLAGS_BOOTSTRAP="${RUSTFLAGS_BOOTSTRAP:-}"
2600 - echo RUSTFLAGS_NOT_BOOTSTRAP="${RUSTFLAGS_NOT_BOOTSTRAP:-}"
2601 - env | grep "CARGO_TARGET_.*_RUSTFLAGS="
2602 - cat "${S}"/config.env || die
2603 - echo
2604 - einfo "config.toml contents:"
2605 - cat "${S}"/config.toml || die
2606 - echo
2607 -}
2608 -
2609 -src_compile() {
2610 - # we need \n IFS to have config.env with spaces loaded properly. #734018
2611 - (
2612 - IFS=$'\n'
2613 - env $(cat "${S}"/config.env) RUST_BACKTRACE=1\
2614 - "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
2615 - )
2616 -}
2617 -
2618 -src_test() {
2619 - # https://rustc-dev-guide.rust-lang.org/tests/intro.html
2620 -
2621 - # those are basic and codegen tests.
2622 - local tests=(
2623 - codegen
2624 - codegen-units
2625 - compile-fail
2626 - incremental
2627 - mir-opt
2628 - pretty
2629 - run-make
2630 - )
2631 -
2632 - # fails if llvm is not built with ALL targets.
2633 - # and known to fail with system llvm sometimes.
2634 - use system-llvm || tests+=( assembly )
2635 -
2636 - # fragile/expensive/less important tests
2637 - # or tests that require extra builds
2638 - # TODO: instead of skipping, just make some nonfatal.
2639 - if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
2640 - tests+=(
2641 - rustdoc
2642 - rustdoc-js
2643 - rustdoc-js-std
2644 - rustdoc-ui
2645 - run-make-fulldeps
2646 - ui
2647 - ui-fulldeps
2648 - )
2649 - fi
2650 -
2651 - local i failed=()
2652 - einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
2653 - for i in "${tests[@]}"; do
2654 - local t="src/test/${i}"
2655 - einfo "rust_src_test: running ${t}"
2656 - if ! (
2657 - IFS=$'\n'
2658 - env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \
2659 - "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
2660 - -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
2661 - )
2662 - then
2663 - failed+=( "${t}" )
2664 - eerror "rust_src_test: ${t} failed"
2665 - fi
2666 - done
2667 -
2668 - if [[ ${#failed[@]} -ne 0 ]]; then
2669 - eerror "rust_src_test: failure summary: ${failed[@]}"
2670 - die "aborting due to test failures"
2671 - fi
2672 -}
2673 -
2674 -src_install() {
2675 - (
2676 - IFS=$'\n'
2677 - env $(cat "${S}"/config.env) DESTDIR="${D}" \
2678 - "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
2679 - )
2680 -
2681 - # bug #689562, #689160
2682 - rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
2683 - rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
2684 - newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
2685 -
2686 - local symlinks=(
2687 - cargo
2688 - rustc
2689 - rustdoc
2690 - rust-gdb
2691 - rust-gdbgui
2692 - rust-lldb
2693 - )
2694 -
2695 - use clippy && symlinks+=( clippy-driver cargo-clippy )
2696 - use miri && symlinks+=( miri cargo-miri )
2697 - use rls && symlinks+=( rls )
2698 - use rustfmt && symlinks+=( rustfmt cargo-fmt )
2699 -
2700 - einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
2701 - local i
2702 - for i in "${symlinks[@]}"; do
2703 - # we need realpath on /usr/bin/* symlink return version-appended binary path.
2704 - # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
2705 - # need to fix eselect-rust to remove this hack.
2706 - local ver_i="${i}-${PV}"
2707 - if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
2708 - einfo "Installing ${i} symlink"
2709 - ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
2710 - else
2711 - ewarn "${i} symlink requested, but source file not found"
2712 - ewarn "please report this"
2713 - fi
2714 - dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
2715 - done
2716 -
2717 - # symlinks to switch components to active rust in eselect
2718 - dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
2719 - dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
2720 - dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
2721 - dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
2722 - dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
2723 -
2724 - newenvd - "50${P}" <<-_EOF_
2725 - LDPATH="${EPREFIX}/usr/lib/rust/lib"
2726 - MANPATH="${EPREFIX}/usr/lib/rust/man"
2727 - $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
2728 - $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
2729 - _EOF_
2730 -
2731 - rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
2732 - rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
2733 -
2734 - # note: eselect-rust adds EROOT to all paths below
2735 - cat <<-_EOF_ > "${T}/provider-${P}"
2736 - /usr/bin/cargo
2737 - /usr/bin/rustdoc
2738 - /usr/bin/rust-gdb
2739 - /usr/bin/rust-gdbgui
2740 - /usr/bin/rust-lldb
2741 - /usr/lib/rustlib
2742 - /usr/lib/rust/lib
2743 - /usr/lib/rust/libexec
2744 - /usr/lib/rust/man
2745 - /usr/share/doc/rust
2746 - _EOF_
2747 -
2748 - if use clippy; then
2749 - echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
2750 - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
2751 - fi
2752 - if use miri; then
2753 - echo /usr/bin/miri >> "${T}/provider-${P}"
2754 - echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
2755 - fi
2756 - if use rls; then
2757 - echo /usr/bin/rls >> "${T}/provider-${P}"
2758 - fi
2759 - if use rustfmt; then
2760 - echo /usr/bin/rustfmt >> "${T}/provider-${P}"
2761 - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
2762 - fi
2763 -
2764 - insinto /etc/env.d/rust
2765 - doins "${T}/provider-${P}"
2766 -}
2767 -
2768 -pkg_postinst() {
2769 - eselect rust update
2770 -
2771 - if has_version sys-devel/gdb || has_version dev-util/lldb; then
2772 - elog "Rust installs a helper script for calling GDB and LLDB,"
2773 - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
2774 - fi
2775 -
2776 - if has_version app-editors/emacs; then
2777 - elog "install app-emacs/rust-mode to get emacs support for rust."
2778 - fi
2779 -
2780 - if has_version app-editors/gvim || has_version app-editors/vim; then
2781 - elog "install app-vim/rust-vim to get vim support for rust."
2782 - fi
2783 -}
2784 -
2785 -pkg_postrm() {
2786 - eselect rust cleanup
2787 -}
2788
2789 diff --git a/dev-lang/rust/rust-1.56.1.ebuild b/dev-lang/rust/rust-1.56.1.ebuild
2790 deleted file mode 100644
2791 index c9a8ac4881ee..000000000000
2792 --- a/dev-lang/rust/rust-1.56.1.ebuild
2793 +++ /dev/null
2794 @@ -1,686 +0,0 @@
2795 -# Copyright 1999-2021 Gentoo Authors
2796 -# Distributed under the terms of the GNU General Public License v2
2797 -
2798 -EAPI=7
2799 -
2800 -PYTHON_COMPAT=( python3_{7..10} )
2801 -
2802 -inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
2803 - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
2804 -
2805 -if [[ ${PV} = *beta* ]]; then
2806 - betaver=${PV//*beta}
2807 - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
2808 - MY_P="rustc-beta"
2809 - SLOT="beta/${PV}"
2810 - SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
2811 -else
2812 - ABI_VER="$(ver_cut 1-2)"
2813 - SLOT="stable/${ABI_VER}"
2814 - MY_P="rustc-${PV}"
2815 - SRC="${MY_P}-src.tar.xz"
2816 - KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86"
2817 -fi
2818 -
2819 -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
2820 -
2821 -DESCRIPTION="Systems programming language from Mozilla"
2822 -HOMEPAGE="https://www.rust-lang.org/"
2823 -
2824 -SRC_URI="
2825 - https://static.rust-lang.org/dist/${SRC}
2826 - verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
2827 - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
2828 -"
2829 -
2830 -# keep in sync with llvm ebuild of the same version as bundled one.
2831 -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430
2832 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore )
2833 -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
2834 -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
2835 -
2836 -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
2837 -
2838 -IUSE="clippy cpu_flags_x86_sse2 debug doc miri nightly parallel-compiler rls rustfmt rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
2839 -
2840 -# Please keep the LLVM dependency block separate. Since LLVM is slotted,
2841 -# we need to *really* make sure we're not pulling more than one slot
2842 -# simultaneously.
2843 -
2844 -# How to use it:
2845 -# List all the working slots in LLVM_VALID_SLOTS, newest first.
2846 -LLVM_VALID_SLOTS=( 13 )
2847 -LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
2848 -
2849 -# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
2850 -# (-) usedep needed because we may build with older llvm without that target
2851 -LLVM_DEPEND="|| ( "
2852 -for _s in ${LLVM_VALID_SLOTS[@]}; do
2853 - LLVM_DEPEND+=" ( "
2854 - for _x in ${ALL_LLVM_TARGETS[@]}; do
2855 - LLVM_DEPEND+="
2856 - ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )"
2857 - done
2858 - LLVM_DEPEND+=" )"
2859 -done
2860 -unset _s _x
2861 -LLVM_DEPEND+=" )
2862 - <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
2863 - wasm? ( sys-devel/lld )
2864 -"
2865 -
2866 -# to bootstrap we need at least exactly previous version, or same.
2867 -# most of the time previous versions fail to bootstrap with newer
2868 -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
2869 -# but it fails to bootstrap with 1.48.x
2870 -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt
2871 -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
2872 -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
2873 -BOOTSTRAP_DEPEND="||
2874 - (
2875 - =dev-lang/rust-"${RUST_DEP_PREV}"
2876 - =dev-lang/rust-bin-"${RUST_DEP_PREV}"
2877 - =dev-lang/rust-"${RUST_DEP_CURR}"
2878 - =dev-lang/rust-bin-"${RUST_DEP_CURR}"
2879 - )
2880 -"
2881 -
2882 -BDEPEND="${PYTHON_DEPS}
2883 - app-eselect/eselect-rust
2884 - || (
2885 - >=sys-devel/gcc-4.7
2886 - >=sys-devel/clang-3.5
2887 - )
2888 - system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
2889 - !system-llvm? (
2890 - >=dev-util/cmake-3.13.4
2891 - dev-util/ninja
2892 - )
2893 - test? ( sys-devel/gdb )
2894 - verify-sig? ( sec-keys/openpgp-keys-rust )
2895 -"
2896 -
2897 -DEPEND="
2898 - >=app-arch/xz-utils-5.2
2899 - net-misc/curl:=[http2,ssl]
2900 - sys-libs/zlib:=
2901 - dev-libs/openssl:0=
2902 - elibc_musl? ( sys-libs/libunwind:= )
2903 - system-llvm? ( ${LLVM_DEPEND} )
2904 -"
2905 -
2906 -# we need to block older versions due to layout changes.
2907 -RDEPEND="${DEPEND}
2908 - app-eselect/eselect-rust
2909 - !<dev-lang/rust-1.47.0-r1
2910 - !<dev-lang/rust-bin-1.47.0-r1
2911 -"
2912 -
2913 -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
2914 - miri? ( nightly )
2915 - parallel-compiler? ( nightly )
2916 - rls? ( rust-src )
2917 - test? ( ${ALL_LLVM_TARGETS[*]} )
2918 - wasm? ( llvm_targets_WebAssembly )
2919 - x86? ( cpu_flags_x86_sse2 )
2920 -"
2921 -
2922 -# we don't use cmake.eclass, but can get a warnings
2923 -CMAKE_WARN_UNUSED_CLI=no
2924 -
2925 -QA_FLAGS_IGNORED="
2926 - usr/lib/${PN}/${PV}/bin/.*
2927 - usr/lib/${PN}/${PV}/libexec/.*
2928 - usr/lib/${PN}/${PV}/lib/lib.*.so
2929 - usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
2930 - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
2931 -"
2932 -
2933 -QA_SONAME="
2934 - usr/lib/${PN}/${PV}/lib/lib.*.so.*
2935 - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
2936 -"
2937 -
2938 -# An rmeta file is custom binary format that contains the metadata for the crate.
2939 -# rmeta files do not support linking, since they do not contain compiled object files.
2940 -# so we can safely silence the warning for this QA check.
2941 -QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
2942 -
2943 -# causes double bootstrap
2944 -RESTRICT="test"
2945 -
2946 -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc
2947 -
2948 -PATCHES=(
2949 - "${FILESDIR}"/1.55.0-ignore-broken-and-non-applicable-tests.patch
2950 - "${FILESDIR}"/1.49.0-gentoo-musl-target-specs.patch
2951 -)
2952 -
2953 -S="${WORKDIR}/${MY_P}-src"
2954 -
2955 -toml_usex() {
2956 - usex "${1}" true false
2957 -}
2958 -
2959 -bootstrap_rust_version_check() {
2960 - # never call from pkg_pretend. eselect-rust may be not installed yet.
2961 - [[ ${MERGE_TYPE} == binary ]] && return
2962 - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
2963 - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
2964 - local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
2965 - rustc_version=${rustc_version[0]#rust-bin-}
2966 - rustc_version=${rustc_version#rust-}
2967 -
2968 - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
2969 -
2970 - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
2971 - eerror "Rust >=${rustc_wanted} is required"
2972 - eerror "please run 'eselect rust' and set correct rust version"
2973 - die "selected rust version is too old"
2974 - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
2975 - eerror "Rust <${rustc_toonew} is required"
2976 - eerror "please run 'eselect rust' and set correct rust version"
2977 - die "selected rust version is too new"
2978 - else
2979 - einfo "Using rust ${rustc_version} to build"
2980 - fi
2981 -}
2982 -
2983 -pre_build_checks() {
2984 - local M=4096
2985 - # multiply requirements by 1.5 if we are doing x86-multilib
2986 - if use amd64; then
2987 - M=$(( $(usex abi_x86_32 15 10) * ${M} / 10 ))
2988 - fi
2989 - M=$(( $(usex clippy 128 0) + ${M} ))
2990 - M=$(( $(usex miri 128 0) + ${M} ))
2991 - M=$(( $(usex rls 512 0) + ${M} ))
2992 - M=$(( $(usex rustfmt 256 0) + ${M} ))
2993 - # add 2G if we compile llvm and 256M per llvm_target
2994 - if ! use system-llvm; then
2995 - M=$(( 2048 + ${M} ))
2996 - local ltarget
2997 - for ltarget in ${ALL_LLVM_TARGETS[@]}; do
2998 - M=$(( $(usex ${ltarget} 256 0) + ${M} ))
2999 - done
3000 - fi
3001 - M=$(( $(usex wasm 256 0) + ${M} ))
3002 - M=$(( $(usex debug 2 1) * ${M} ))
3003 - eshopts_push -s extglob
3004 - if is-flagq '-g?(gdb)?([1-9])'; then
3005 - M=$(( 15 * ${M} / 10 ))
3006 - fi
3007 - eshopts_pop
3008 - M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
3009 - M=$(( $(usex doc 256 0) + ${M} ))
3010 - CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
3011 -}
3012 -
3013 -llvm_check_deps() {
3014 - has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
3015 -}
3016 -
3017 -pkg_pretend() {
3018 - pre_build_checks
3019 -}
3020 -
3021 -pkg_setup() {
3022 - pre_build_checks
3023 - python-any-r1_pkg_setup
3024 -
3025 - export LIBGIT2_NO_PKG_CONFIG=1 #749381
3026 -
3027 - use system-bootstrap && bootstrap_rust_version_check
3028 -
3029 - if use system-llvm; then
3030 - llvm_pkg_setup
3031 -
3032 - local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
3033 - export LLVM_LINK_SHARED=1
3034 - export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
3035 - fi
3036 -}
3037 -
3038 -src_prepare() {
3039 - if ! use system-bootstrap; then
3040 - local rust_stage0_root="${WORKDIR}"/rust-stage0
3041 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
3042 -
3043 - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
3044 - --without=rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
3045 - fi
3046 -
3047 - default
3048 -}
3049 -
3050 -src_configure() {
3051 - local rust_target="" rust_targets="" arch_cflags
3052 -
3053 - # Collect rust target names to compile standard libs for all ABIs.
3054 - for v in $(multilib_get_enabled_abi_pairs); do
3055 - rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
3056 - done
3057 - if use wasm; then
3058 - rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
3059 - if use system-llvm; then
3060 - # un-hardcode rust-lld linker for this target
3061 - # https://bugs.gentoo.org/715348
3062 - sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
3063 - fi
3064 - fi
3065 - rust_targets="${rust_targets#,}"
3066 -
3067 - local tools="\"cargo\","
3068 - if use clippy; then
3069 - tools="\"clippy\",$tools"
3070 - fi
3071 - if use miri; then
3072 - tools="\"miri\",$tools"
3073 - fi
3074 - if use rls; then
3075 - tools="\"rls\",\"analysis\",$tools"
3076 - fi
3077 - if use rustfmt; then
3078 - tools="\"rustfmt\",$tools"
3079 - fi
3080 - if use rust-src; then
3081 - tools="\"src\",$tools"
3082 - fi
3083 -
3084 - local rust_stage0_root
3085 - if use system-bootstrap; then
3086 - local printsysroot
3087 - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
3088 - rust_stage0_root="${printsysroot}"
3089 - else
3090 - rust_stage0_root="${WORKDIR}"/rust-stage0
3091 - fi
3092 - # in case of prefix it will be already prefixed, as --print sysroot returns full path
3093 - [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
3094 -
3095 - rust_target="$(rust_abi)"
3096 -
3097 - cat <<- _EOF_ > "${S}"/config.toml
3098 - changelog-seen = 2
3099 - [llvm]
3100 - download-ci-llvm = false
3101 - optimize = $(toml_usex !debug)
3102 - release-debuginfo = $(toml_usex debug)
3103 - assertions = $(toml_usex debug)
3104 - ninja = true
3105 - targets = "${LLVM_TARGETS// /;}"
3106 - experimental-targets = ""
3107 - link-shared = $(toml_usex system-llvm)
3108 - [build]
3109 - build-stage = 2
3110 - test-stage = 2
3111 - doc-stage = 2
3112 - build = "${rust_target}"
3113 - host = ["${rust_target}"]
3114 - target = [${rust_targets}]
3115 - cargo = "${rust_stage0_root}/bin/cargo"
3116 - rustc = "${rust_stage0_root}/bin/rustc"
3117 - rustfmt = "${rust_stage0_root}/bin/rustfmt"
3118 - docs = $(toml_usex doc)
3119 - compiler-docs = false
3120 - submodules = false
3121 - python = "${EPYTHON}"
3122 - locked-deps = true
3123 - vendor = true
3124 - extended = true
3125 - tools = [${tools}]
3126 - verbose = 2
3127 - sanitizers = false
3128 - profiler = false
3129 - cargo-native-static = false
3130 - [install]
3131 - prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
3132 - sysconfdir = "etc"
3133 - docdir = "share/doc/rust"
3134 - bindir = "bin"
3135 - libdir = "lib"
3136 - mandir = "share/man"
3137 - [rust]
3138 - # https://github.com/rust-lang/rust/issues/54872
3139 - codegen-units-std = 1
3140 - optimize = true
3141 - debug = $(toml_usex debug)
3142 - debug-assertions = $(toml_usex debug)
3143 - debug-assertions-std = $(toml_usex debug)
3144 - debuginfo-level = $(usex debug 2 0)
3145 - debuginfo-level-rustc = $(usex debug 2 0)
3146 - debuginfo-level-std = $(usex debug 2 0)
3147 - debuginfo-level-tools = $(usex debug 2 0)
3148 - debuginfo-level-tests = 0
3149 - backtrace = true
3150 - incremental = false
3151 - default-linker = "$(tc-getCC)"
3152 - parallel-compiler = $(toml_usex parallel-compiler)
3153 - channel = "$(usex nightly nightly stable)"
3154 - description = "gentoo"
3155 - rpath = false
3156 - verbose-tests = true
3157 - optimize-tests = $(toml_usex !debug)
3158 - codegen-tests = true
3159 - dist-src = false
3160 - remap-debuginfo = true
3161 - lld = $(usex system-llvm false $(toml_usex wasm))
3162 - # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
3163 - # https://github.com/rust-lang/rust/issues/74976
3164 - # https://github.com/rust-lang/rust/issues/76526
3165 - deny-warnings = $(usex wasm $(usex doc false true) true)
3166 - backtrace-on-ice = true
3167 - jemalloc = false
3168 - [dist]
3169 - src-tarball = false
3170 - compression-formats = ["gz"]
3171 - _EOF_
3172 -
3173 - for v in $(multilib_get_enabled_abi_pairs); do
3174 - rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
3175 - arch_cflags="$(get_abi_CFLAGS ${v##*.})"
3176 -
3177 - cat <<- _EOF_ >> "${S}"/config.env
3178 - CFLAGS_${rust_target}=${arch_cflags}
3179 - _EOF_
3180 -
3181 - cat <<- _EOF_ >> "${S}"/config.toml
3182 - [target.${rust_target}]
3183 - cc = "$(tc-getBUILD_CC)"
3184 - cxx = "$(tc-getBUILD_CXX)"
3185 - linker = "$(tc-getCC)"
3186 - ar = "$(tc-getAR)"
3187 - _EOF_
3188 - # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
3189 - if use elibc_musl; then
3190 - cat <<- _EOF_ >> "${S}"/config.toml
3191 - crt-static = false
3192 - _EOF_
3193 - fi
3194 - if use system-llvm; then
3195 - cat <<- _EOF_ >> "${S}"/config.toml
3196 - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
3197 - _EOF_
3198 - fi
3199 - done
3200 - if use wasm; then
3201 - cat <<- _EOF_ >> "${S}"/config.toml
3202 - [target.wasm32-unknown-unknown]
3203 - linker = "$(usex system-llvm lld rust-lld)"
3204 - _EOF_
3205 - fi
3206 -
3207 - if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
3208 - # experimental cross support
3209 - # discussion: https://bugs.gentoo.org/679878
3210 - # TODO: c*flags, clang, system-llvm, cargo.eclass target support
3211 - # it would be much better if we could split out stdlib
3212 - # complilation to separate ebuild and abuse CATEGORY to
3213 - # just install to /usr/lib/rustlib/<target>
3214 -
3215 - # extra targets defined as a bash array
3216 - # spec format: <LLVM target>:<rust-target>:<CTARGET>
3217 - # best place would be /etc/portage/env/dev-lang/rust
3218 - # Example:
3219 - # RUST_CROSS_TARGETS=(
3220 - # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
3221 - # )
3222 - # no extra hand holding is done, no target transformations, all
3223 - # values are passed as-is with just basic checks, so it's up to user to supply correct values
3224 - # valid rust targets can be obtained with
3225 - # rustc --print target-list
3226 - # matching cross toolchain has to be installed
3227 - # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
3228 - # only gcc toolchains installed with crossdev are checked for now.
3229 -
3230 - # BUG: we can't pass host flags to cross compiler, so just filter for now
3231 - # BUG: this should be more fine-grained.
3232 - filter-flags '-mcpu=*' '-march=*' '-mtune=*'
3233 -
3234 - local cross_target_spec
3235 - for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
3236 - # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
3237 - local cross_llvm_target="${cross_target_spec%%:*}"
3238 - # extracts toolchain triples, <rust-target>:<CTARGET>
3239 - local cross_triples="${cross_target_spec#*:}"
3240 - # extracts first element after before : separator
3241 - local cross_rust_target="${cross_triples%%:*}"
3242 - # extracts last element after : separator
3243 - local cross_toolchain="${cross_triples##*:}"
3244 - use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
3245 - command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
3246 -
3247 - cat <<- _EOF_ >> "${S}"/config.toml
3248 - [target.${cross_rust_target}]
3249 - cc = "${cross_toolchain}-gcc"
3250 - cxx = "${cross_toolchain}-g++"
3251 - linker = "${cross_toolchain}-gcc"
3252 - ar = "${cross_toolchain}-ar"
3253 - _EOF_
3254 - if use system-llvm; then
3255 - cat <<- _EOF_ >> "${S}"/config.toml
3256 - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
3257 - _EOF_
3258 - fi
3259 - if [[ "${cross_toolchain}" == *-musl* ]]; then
3260 - cat <<- _EOF_ >> "${S}"/config.toml
3261 - musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
3262 - _EOF_
3263 - fi
3264 -
3265 - # append cross target to "normal" target list
3266 - # example 'target = ["powerpc64le-unknown-linux-gnu"]'
3267 - # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
3268 -
3269 - rust_targets="${rust_targets},\"${cross_rust_target}\""
3270 - sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
3271 -
3272 - ewarn
3273 - ewarn "Enabled ${cross_rust_target} rust target"
3274 - ewarn "Using ${cross_toolchain} cross toolchain"
3275 - ewarn
3276 - if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
3277 - ewarn "'sys-devel/binutils[multitarget]' is not installed"
3278 - ewarn "'strip' will be unable to strip cross libraries"
3279 - ewarn "cross targets will be installed with full debug information"
3280 - ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
3281 - ewarn
3282 - ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
3283 - ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
3284 - ewarn
3285 - fi
3286 - done
3287 - fi # I_KNOW_WHAT_I_AM_DOING_CROSS
3288 -
3289 - einfo "Rust configured with the following flags:"
3290 - echo
3291 - echo RUSTFLAGS="${RUSTFLAGS:-}"
3292 - echo RUSTFLAGS_BOOTSTRAP="${RUSTFLAGS_BOOTSTRAP:-}"
3293 - echo RUSTFLAGS_NOT_BOOTSTRAP="${RUSTFLAGS_NOT_BOOTSTRAP:-}"
3294 - env | grep "CARGO_TARGET_.*_RUSTFLAGS="
3295 - cat "${S}"/config.env || die
3296 - echo
3297 - einfo "config.toml contents:"
3298 - cat "${S}"/config.toml || die
3299 - echo
3300 -}
3301 -
3302 -src_compile() {
3303 - # we need \n IFS to have config.env with spaces loaded properly. #734018
3304 - (
3305 - IFS=$'\n'
3306 - env $(cat "${S}"/config.env) RUST_BACKTRACE=1\
3307 - "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
3308 - )
3309 -}
3310 -
3311 -src_test() {
3312 - # https://rustc-dev-guide.rust-lang.org/tests/intro.html
3313 -
3314 - # those are basic and codegen tests.
3315 - local tests=(
3316 - codegen
3317 - codegen-units
3318 - compile-fail
3319 - incremental
3320 - mir-opt
3321 - pretty
3322 - run-make
3323 - )
3324 -
3325 - # fails if llvm is not built with ALL targets.
3326 - # and known to fail with system llvm sometimes.
3327 - use system-llvm || tests+=( assembly )
3328 -
3329 - # fragile/expensive/less important tests
3330 - # or tests that require extra builds
3331 - # TODO: instead of skipping, just make some nonfatal.
3332 - if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
3333 - tests+=(
3334 - rustdoc
3335 - rustdoc-js
3336 - rustdoc-js-std
3337 - rustdoc-ui
3338 - run-make-fulldeps
3339 - ui
3340 - ui-fulldeps
3341 - )
3342 - fi
3343 -
3344 - local i failed=()
3345 - einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
3346 - for i in "${tests[@]}"; do
3347 - local t="src/test/${i}"
3348 - einfo "rust_src_test: running ${t}"
3349 - if ! (
3350 - IFS=$'\n'
3351 - env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \
3352 - "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
3353 - -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
3354 - )
3355 - then
3356 - failed+=( "${t}" )
3357 - eerror "rust_src_test: ${t} failed"
3358 - fi
3359 - done
3360 -
3361 - if [[ ${#failed[@]} -ne 0 ]]; then
3362 - eerror "rust_src_test: failure summary: ${failed[@]}"
3363 - die "aborting due to test failures"
3364 - fi
3365 -}
3366 -
3367 -src_install() {
3368 - (
3369 - IFS=$'\n'
3370 - env $(cat "${S}"/config.env) DESTDIR="${D}" \
3371 - "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
3372 - )
3373 -
3374 - # bug #689562, #689160
3375 - rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
3376 - rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
3377 - newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
3378 -
3379 - local symlinks=(
3380 - cargo
3381 - rustc
3382 - rustdoc
3383 - rust-gdb
3384 - rust-gdbgui
3385 - rust-lldb
3386 - )
3387 -
3388 - use clippy && symlinks+=( clippy-driver cargo-clippy )
3389 - use miri && symlinks+=( miri cargo-miri )
3390 - use rls && symlinks+=( rls )
3391 - use rustfmt && symlinks+=( rustfmt cargo-fmt )
3392 -
3393 - einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
3394 - local i
3395 - for i in "${symlinks[@]}"; do
3396 - # we need realpath on /usr/bin/* symlink return version-appended binary path.
3397 - # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
3398 - # need to fix eselect-rust to remove this hack.
3399 - local ver_i="${i}-${PV}"
3400 - if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
3401 - einfo "Installing ${i} symlink"
3402 - ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
3403 - else
3404 - ewarn "${i} symlink requested, but source file not found"
3405 - ewarn "please report this"
3406 - fi
3407 - dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
3408 - done
3409 -
3410 - # symlinks to switch components to active rust in eselect
3411 - dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
3412 - dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
3413 - dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
3414 - dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
3415 - dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
3416 -
3417 - newenvd - "50${P}" <<-_EOF_
3418 - LDPATH="${EPREFIX}/usr/lib/rust/lib"
3419 - MANPATH="${EPREFIX}/usr/lib/rust/man"
3420 - $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
3421 - $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
3422 - _EOF_
3423 -
3424 - rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
3425 - rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
3426 -
3427 - # note: eselect-rust adds EROOT to all paths below
3428 - cat <<-_EOF_ > "${T}/provider-${P}"
3429 - /usr/bin/cargo
3430 - /usr/bin/rustdoc
3431 - /usr/bin/rust-gdb
3432 - /usr/bin/rust-gdbgui
3433 - /usr/bin/rust-lldb
3434 - /usr/lib/rustlib
3435 - /usr/lib/rust/lib
3436 - /usr/lib/rust/libexec
3437 - /usr/lib/rust/man
3438 - /usr/share/doc/rust
3439 - _EOF_
3440 -
3441 - if use clippy; then
3442 - echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
3443 - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
3444 - fi
3445 - if use miri; then
3446 - echo /usr/bin/miri >> "${T}/provider-${P}"
3447 - echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
3448 - fi
3449 - if use rls; then
3450 - echo /usr/bin/rls >> "${T}/provider-${P}"
3451 - fi
3452 - if use rustfmt; then
3453 - echo /usr/bin/rustfmt >> "${T}/provider-${P}"
3454 - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
3455 - fi
3456 -
3457 - insinto /etc/env.d/rust
3458 - doins "${T}/provider-${P}"
3459 -}
3460 -
3461 -pkg_postinst() {
3462 - eselect rust update
3463 -
3464 - if has_version sys-devel/gdb || has_version dev-util/lldb; then
3465 - elog "Rust installs a helper script for calling GDB and LLDB,"
3466 - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
3467 - fi
3468 -
3469 - if has_version app-editors/emacs; then
3470 - elog "install app-emacs/rust-mode to get emacs support for rust."
3471 - fi
3472 -
3473 - if has_version app-editors/gvim || has_version app-editors/vim; then
3474 - elog "install app-vim/rust-vim to get vim support for rust."
3475 - fi
3476 -}
3477 -
3478 -pkg_postrm() {
3479 - eselect rust cleanup
3480 -}
3481
3482 diff --git a/dev-lang/rust/rust-1.57.0.ebuild b/dev-lang/rust/rust-1.57.0.ebuild
3483 deleted file mode 100644
3484 index 39b05b5407cd..000000000000
3485 --- a/dev-lang/rust/rust-1.57.0.ebuild
3486 +++ /dev/null
3487 @@ -1,687 +0,0 @@
3488 -# Copyright 1999-2021 Gentoo Authors
3489 -# Distributed under the terms of the GNU General Public License v2
3490 -
3491 -EAPI=7
3492 -
3493 -PYTHON_COMPAT=( python3_{7..10} )
3494 -
3495 -inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
3496 - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
3497 -
3498 -if [[ ${PV} = *beta* ]]; then
3499 - betaver=${PV//*beta}
3500 - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
3501 - MY_P="rustc-beta"
3502 - SLOT="beta/${PV}"
3503 - SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
3504 -else
3505 - ABI_VER="$(ver_cut 1-2)"
3506 - SLOT="stable/${ABI_VER}"
3507 - MY_P="rustc-${PV}"
3508 - SRC="${MY_P}-src.tar.xz"
3509 - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
3510 -fi
3511 -
3512 -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
3513 -
3514 -DESCRIPTION="Systems programming language from Mozilla"
3515 -HOMEPAGE="https://www.rust-lang.org/"
3516 -
3517 -SRC_URI="
3518 - https://static.rust-lang.org/dist/${SRC}
3519 - verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
3520 - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
3521 -"
3522 -
3523 -# keep in sync with llvm ebuild of the same version as bundled one.
3524 -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430
3525 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore )
3526 -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
3527 -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
3528 -
3529 -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
3530 -
3531 -IUSE="clippy cpu_flags_x86_sse2 debug doc miri nightly parallel-compiler rls rustfmt rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
3532 -
3533 -# Please keep the LLVM dependency block separate. Since LLVM is slotted,
3534 -# we need to *really* make sure we're not pulling more than one slot
3535 -# simultaneously.
3536 -
3537 -# How to use it:
3538 -# List all the working slots in LLVM_VALID_SLOTS, newest first.
3539 -LLVM_VALID_SLOTS=( 13 )
3540 -LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
3541 -
3542 -# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
3543 -# (-) usedep needed because we may build with older llvm without that target
3544 -LLVM_DEPEND="|| ( "
3545 -for _s in ${LLVM_VALID_SLOTS[@]}; do
3546 - LLVM_DEPEND+=" ( "
3547 - for _x in ${ALL_LLVM_TARGETS[@]}; do
3548 - LLVM_DEPEND+="
3549 - ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )"
3550 - done
3551 - LLVM_DEPEND+=" )"
3552 -done
3553 -unset _s _x
3554 -LLVM_DEPEND+=" )
3555 - <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
3556 - wasm? ( sys-devel/lld )
3557 -"
3558 -
3559 -# to bootstrap we need at least exactly previous version, or same.
3560 -# most of the time previous versions fail to bootstrap with newer
3561 -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
3562 -# but it fails to bootstrap with 1.48.x
3563 -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt
3564 -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
3565 -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
3566 -BOOTSTRAP_DEPEND="||
3567 - (
3568 - =dev-lang/rust-"${RUST_DEP_PREV}"
3569 - =dev-lang/rust-bin-"${RUST_DEP_PREV}"
3570 - =dev-lang/rust-"${RUST_DEP_CURR}"
3571 - =dev-lang/rust-bin-"${RUST_DEP_CURR}"
3572 - )
3573 -"
3574 -
3575 -BDEPEND="${PYTHON_DEPS}
3576 - app-eselect/eselect-rust
3577 - || (
3578 - >=sys-devel/gcc-4.7
3579 - >=sys-devel/clang-3.5
3580 - )
3581 - system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
3582 - !system-llvm? (
3583 - >=dev-util/cmake-3.13.4
3584 - dev-util/ninja
3585 - )
3586 - test? ( sys-devel/gdb )
3587 - verify-sig? ( sec-keys/openpgp-keys-rust )
3588 -"
3589 -
3590 -DEPEND="
3591 - >=app-arch/xz-utils-5.2
3592 - net-misc/curl:=[http2,ssl]
3593 - sys-libs/zlib:=
3594 - dev-libs/openssl:0=
3595 - elibc_musl? ( sys-libs/libunwind:= )
3596 - system-llvm? ( ${LLVM_DEPEND} )
3597 -"
3598 -
3599 -# we need to block older versions due to layout changes.
3600 -RDEPEND="${DEPEND}
3601 - app-eselect/eselect-rust
3602 - !<dev-lang/rust-1.47.0-r1
3603 - !<dev-lang/rust-bin-1.47.0-r1
3604 -"
3605 -
3606 -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
3607 - miri? ( nightly )
3608 - parallel-compiler? ( nightly )
3609 - rls? ( rust-src )
3610 - test? ( ${ALL_LLVM_TARGETS[*]} )
3611 - wasm? ( llvm_targets_WebAssembly )
3612 - x86? ( cpu_flags_x86_sse2 )
3613 -"
3614 -
3615 -# we don't use cmake.eclass, but can get a warnings
3616 -CMAKE_WARN_UNUSED_CLI=no
3617 -
3618 -QA_FLAGS_IGNORED="
3619 - usr/lib/${PN}/${PV}/bin/.*
3620 - usr/lib/${PN}/${PV}/libexec/.*
3621 - usr/lib/${PN}/${PV}/lib/lib.*.so
3622 - usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
3623 - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
3624 -"
3625 -
3626 -QA_SONAME="
3627 - usr/lib/${PN}/${PV}/lib/lib.*.so.*
3628 - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
3629 -"
3630 -
3631 -# An rmeta file is custom binary format that contains the metadata for the crate.
3632 -# rmeta files do not support linking, since they do not contain compiled object files.
3633 -# so we can safely silence the warning for this QA check.
3634 -QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
3635 -
3636 -# causes double bootstrap
3637 -RESTRICT="test"
3638 -
3639 -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc
3640 -
3641 -PATCHES=(
3642 - "${FILESDIR}"/1.55.0-ignore-broken-and-non-applicable-tests.patch
3643 - "${FILESDIR}"/1.49.0-gentoo-musl-target-specs.patch
3644 - "${FILESDIR}"/1.57.0-selfbootstrap.patch
3645 -)
3646 -
3647 -S="${WORKDIR}/${MY_P}-src"
3648 -
3649 -toml_usex() {
3650 - usex "${1}" true false
3651 -}
3652 -
3653 -bootstrap_rust_version_check() {
3654 - # never call from pkg_pretend. eselect-rust may be not installed yet.
3655 - [[ ${MERGE_TYPE} == binary ]] && return
3656 - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
3657 - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
3658 - local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
3659 - rustc_version=${rustc_version[0]#rust-bin-}
3660 - rustc_version=${rustc_version#rust-}
3661 -
3662 - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
3663 -
3664 - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
3665 - eerror "Rust >=${rustc_wanted} is required"
3666 - eerror "please run 'eselect rust' and set correct rust version"
3667 - die "selected rust version is too old"
3668 - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
3669 - eerror "Rust <${rustc_toonew} is required"
3670 - eerror "please run 'eselect rust' and set correct rust version"
3671 - die "selected rust version is too new"
3672 - else
3673 - einfo "Using rust ${rustc_version} to build"
3674 - fi
3675 -}
3676 -
3677 -pre_build_checks() {
3678 - local M=4096
3679 - # multiply requirements by 1.5 if we are doing x86-multilib
3680 - if use amd64; then
3681 - M=$(( $(usex abi_x86_32 15 10) * ${M} / 10 ))
3682 - fi
3683 - M=$(( $(usex clippy 128 0) + ${M} ))
3684 - M=$(( $(usex miri 128 0) + ${M} ))
3685 - M=$(( $(usex rls 512 0) + ${M} ))
3686 - M=$(( $(usex rustfmt 256 0) + ${M} ))
3687 - # add 2G if we compile llvm and 256M per llvm_target
3688 - if ! use system-llvm; then
3689 - M=$(( 2048 + ${M} ))
3690 - local ltarget
3691 - for ltarget in ${ALL_LLVM_TARGETS[@]}; do
3692 - M=$(( $(usex ${ltarget} 256 0) + ${M} ))
3693 - done
3694 - fi
3695 - M=$(( $(usex wasm 256 0) + ${M} ))
3696 - M=$(( $(usex debug 2 1) * ${M} ))
3697 - eshopts_push -s extglob
3698 - if is-flagq '-g?(gdb)?([1-9])'; then
3699 - M=$(( 15 * ${M} / 10 ))
3700 - fi
3701 - eshopts_pop
3702 - M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
3703 - M=$(( $(usex doc 256 0) + ${M} ))
3704 - CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
3705 -}
3706 -
3707 -llvm_check_deps() {
3708 - has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
3709 -}
3710 -
3711 -pkg_pretend() {
3712 - pre_build_checks
3713 -}
3714 -
3715 -pkg_setup() {
3716 - pre_build_checks
3717 - python-any-r1_pkg_setup
3718 -
3719 - export LIBGIT2_NO_PKG_CONFIG=1 #749381
3720 -
3721 - use system-bootstrap && bootstrap_rust_version_check
3722 -
3723 - if use system-llvm; then
3724 - llvm_pkg_setup
3725 -
3726 - local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
3727 - export LLVM_LINK_SHARED=1
3728 - export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
3729 - fi
3730 -}
3731 -
3732 -src_prepare() {
3733 - if ! use system-bootstrap; then
3734 - local rust_stage0_root="${WORKDIR}"/rust-stage0
3735 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
3736 -
3737 - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
3738 - --without=rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
3739 - fi
3740 -
3741 - default
3742 -}
3743 -
3744 -src_configure() {
3745 - local rust_target="" rust_targets="" arch_cflags
3746 -
3747 - # Collect rust target names to compile standard libs for all ABIs.
3748 - for v in $(multilib_get_enabled_abi_pairs); do
3749 - rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
3750 - done
3751 - if use wasm; then
3752 - rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
3753 - if use system-llvm; then
3754 - # un-hardcode rust-lld linker for this target
3755 - # https://bugs.gentoo.org/715348
3756 - sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
3757 - fi
3758 - fi
3759 - rust_targets="${rust_targets#,}"
3760 -
3761 - local tools="\"cargo\","
3762 - if use clippy; then
3763 - tools="\"clippy\",$tools"
3764 - fi
3765 - if use miri; then
3766 - tools="\"miri\",$tools"
3767 - fi
3768 - if use rls; then
3769 - tools="\"rls\",\"analysis\",$tools"
3770 - fi
3771 - if use rustfmt; then
3772 - tools="\"rustfmt\",$tools"
3773 - fi
3774 - if use rust-src; then
3775 - tools="\"src\",$tools"
3776 - fi
3777 -
3778 - local rust_stage0_root
3779 - if use system-bootstrap; then
3780 - local printsysroot
3781 - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
3782 - rust_stage0_root="${printsysroot}"
3783 - else
3784 - rust_stage0_root="${WORKDIR}"/rust-stage0
3785 - fi
3786 - # in case of prefix it will be already prefixed, as --print sysroot returns full path
3787 - [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
3788 -
3789 - rust_target="$(rust_abi)"
3790 -
3791 - cat <<- _EOF_ > "${S}"/config.toml
3792 - changelog-seen = 2
3793 - [llvm]
3794 - download-ci-llvm = false
3795 - optimize = $(toml_usex !debug)
3796 - release-debuginfo = $(toml_usex debug)
3797 - assertions = $(toml_usex debug)
3798 - ninja = true
3799 - targets = "${LLVM_TARGETS// /;}"
3800 - experimental-targets = ""
3801 - link-shared = $(toml_usex system-llvm)
3802 - [build]
3803 - build-stage = 2
3804 - test-stage = 2
3805 - doc-stage = 2
3806 - build = "${rust_target}"
3807 - host = ["${rust_target}"]
3808 - target = [${rust_targets}]
3809 - cargo = "${rust_stage0_root}/bin/cargo"
3810 - rustc = "${rust_stage0_root}/bin/rustc"
3811 - rustfmt = "${rust_stage0_root}/bin/rustfmt"
3812 - docs = $(toml_usex doc)
3813 - compiler-docs = false
3814 - submodules = false
3815 - python = "${EPYTHON}"
3816 - locked-deps = true
3817 - vendor = true
3818 - extended = true
3819 - tools = [${tools}]
3820 - verbose = 2
3821 - sanitizers = false
3822 - profiler = false
3823 - cargo-native-static = false
3824 - [install]
3825 - prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
3826 - sysconfdir = "etc"
3827 - docdir = "share/doc/rust"
3828 - bindir = "bin"
3829 - libdir = "lib"
3830 - mandir = "share/man"
3831 - [rust]
3832 - # https://github.com/rust-lang/rust/issues/54872
3833 - codegen-units-std = 1
3834 - optimize = true
3835 - debug = $(toml_usex debug)
3836 - debug-assertions = $(toml_usex debug)
3837 - debug-assertions-std = $(toml_usex debug)
3838 - debuginfo-level = $(usex debug 2 0)
3839 - debuginfo-level-rustc = $(usex debug 2 0)
3840 - debuginfo-level-std = $(usex debug 2 0)
3841 - debuginfo-level-tools = $(usex debug 2 0)
3842 - debuginfo-level-tests = 0
3843 - backtrace = true
3844 - incremental = false
3845 - default-linker = "$(tc-getCC)"
3846 - parallel-compiler = $(toml_usex parallel-compiler)
3847 - channel = "$(usex nightly nightly stable)"
3848 - description = "gentoo"
3849 - rpath = false
3850 - verbose-tests = true
3851 - optimize-tests = $(toml_usex !debug)
3852 - codegen-tests = true
3853 - dist-src = false
3854 - remap-debuginfo = true
3855 - lld = $(usex system-llvm false $(toml_usex wasm))
3856 - # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
3857 - # https://github.com/rust-lang/rust/issues/74976
3858 - # https://github.com/rust-lang/rust/issues/76526
3859 - deny-warnings = $(usex wasm $(usex doc false true) true)
3860 - backtrace-on-ice = true
3861 - jemalloc = false
3862 - [dist]
3863 - src-tarball = false
3864 - compression-formats = ["gz"]
3865 - _EOF_
3866 -
3867 - for v in $(multilib_get_enabled_abi_pairs); do
3868 - rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
3869 - arch_cflags="$(get_abi_CFLAGS ${v##*.})"
3870 -
3871 - cat <<- _EOF_ >> "${S}"/config.env
3872 - CFLAGS_${rust_target}=${arch_cflags}
3873 - _EOF_
3874 -
3875 - cat <<- _EOF_ >> "${S}"/config.toml
3876 - [target.${rust_target}]
3877 - cc = "$(tc-getBUILD_CC)"
3878 - cxx = "$(tc-getBUILD_CXX)"
3879 - linker = "$(tc-getCC)"
3880 - ar = "$(tc-getAR)"
3881 - _EOF_
3882 - # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
3883 - if use elibc_musl; then
3884 - cat <<- _EOF_ >> "${S}"/config.toml
3885 - crt-static = false
3886 - _EOF_
3887 - fi
3888 - if use system-llvm; then
3889 - cat <<- _EOF_ >> "${S}"/config.toml
3890 - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
3891 - _EOF_
3892 - fi
3893 - done
3894 - if use wasm; then
3895 - cat <<- _EOF_ >> "${S}"/config.toml
3896 - [target.wasm32-unknown-unknown]
3897 - linker = "$(usex system-llvm lld rust-lld)"
3898 - _EOF_
3899 - fi
3900 -
3901 - if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
3902 - # experimental cross support
3903 - # discussion: https://bugs.gentoo.org/679878
3904 - # TODO: c*flags, clang, system-llvm, cargo.eclass target support
3905 - # it would be much better if we could split out stdlib
3906 - # complilation to separate ebuild and abuse CATEGORY to
3907 - # just install to /usr/lib/rustlib/<target>
3908 -
3909 - # extra targets defined as a bash array
3910 - # spec format: <LLVM target>:<rust-target>:<CTARGET>
3911 - # best place would be /etc/portage/env/dev-lang/rust
3912 - # Example:
3913 - # RUST_CROSS_TARGETS=(
3914 - # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
3915 - # )
3916 - # no extra hand holding is done, no target transformations, all
3917 - # values are passed as-is with just basic checks, so it's up to user to supply correct values
3918 - # valid rust targets can be obtained with
3919 - # rustc --print target-list
3920 - # matching cross toolchain has to be installed
3921 - # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
3922 - # only gcc toolchains installed with crossdev are checked for now.
3923 -
3924 - # BUG: we can't pass host flags to cross compiler, so just filter for now
3925 - # BUG: this should be more fine-grained.
3926 - filter-flags '-mcpu=*' '-march=*' '-mtune=*'
3927 -
3928 - local cross_target_spec
3929 - for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
3930 - # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
3931 - local cross_llvm_target="${cross_target_spec%%:*}"
3932 - # extracts toolchain triples, <rust-target>:<CTARGET>
3933 - local cross_triples="${cross_target_spec#*:}"
3934 - # extracts first element after before : separator
3935 - local cross_rust_target="${cross_triples%%:*}"
3936 - # extracts last element after : separator
3937 - local cross_toolchain="${cross_triples##*:}"
3938 - use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
3939 - command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
3940 -
3941 - cat <<- _EOF_ >> "${S}"/config.toml
3942 - [target.${cross_rust_target}]
3943 - cc = "${cross_toolchain}-gcc"
3944 - cxx = "${cross_toolchain}-g++"
3945 - linker = "${cross_toolchain}-gcc"
3946 - ar = "${cross_toolchain}-ar"
3947 - _EOF_
3948 - if use system-llvm; then
3949 - cat <<- _EOF_ >> "${S}"/config.toml
3950 - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
3951 - _EOF_
3952 - fi
3953 - if [[ "${cross_toolchain}" == *-musl* ]]; then
3954 - cat <<- _EOF_ >> "${S}"/config.toml
3955 - musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
3956 - _EOF_
3957 - fi
3958 -
3959 - # append cross target to "normal" target list
3960 - # example 'target = ["powerpc64le-unknown-linux-gnu"]'
3961 - # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
3962 -
3963 - rust_targets="${rust_targets},\"${cross_rust_target}\""
3964 - sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
3965 -
3966 - ewarn
3967 - ewarn "Enabled ${cross_rust_target} rust target"
3968 - ewarn "Using ${cross_toolchain} cross toolchain"
3969 - ewarn
3970 - if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
3971 - ewarn "'sys-devel/binutils[multitarget]' is not installed"
3972 - ewarn "'strip' will be unable to strip cross libraries"
3973 - ewarn "cross targets will be installed with full debug information"
3974 - ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
3975 - ewarn
3976 - ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
3977 - ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
3978 - ewarn
3979 - fi
3980 - done
3981 - fi # I_KNOW_WHAT_I_AM_DOING_CROSS
3982 -
3983 - einfo "Rust configured with the following flags:"
3984 - echo
3985 - echo RUSTFLAGS="${RUSTFLAGS:-}"
3986 - echo RUSTFLAGS_BOOTSTRAP="${RUSTFLAGS_BOOTSTRAP:-}"
3987 - echo RUSTFLAGS_NOT_BOOTSTRAP="${RUSTFLAGS_NOT_BOOTSTRAP:-}"
3988 - env | grep "CARGO_TARGET_.*_RUSTFLAGS="
3989 - cat "${S}"/config.env || die
3990 - echo
3991 - einfo "config.toml contents:"
3992 - cat "${S}"/config.toml || die
3993 - echo
3994 -}
3995 -
3996 -src_compile() {
3997 - # we need \n IFS to have config.env with spaces loaded properly. #734018
3998 - (
3999 - IFS=$'\n'
4000 - env $(cat "${S}"/config.env) RUST_BACKTRACE=1\
4001 - "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
4002 - )
4003 -}
4004 -
4005 -src_test() {
4006 - # https://rustc-dev-guide.rust-lang.org/tests/intro.html
4007 -
4008 - # those are basic and codegen tests.
4009 - local tests=(
4010 - codegen
4011 - codegen-units
4012 - compile-fail
4013 - incremental
4014 - mir-opt
4015 - pretty
4016 - run-make
4017 - )
4018 -
4019 - # fails if llvm is not built with ALL targets.
4020 - # and known to fail with system llvm sometimes.
4021 - use system-llvm || tests+=( assembly )
4022 -
4023 - # fragile/expensive/less important tests
4024 - # or tests that require extra builds
4025 - # TODO: instead of skipping, just make some nonfatal.
4026 - if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
4027 - tests+=(
4028 - rustdoc
4029 - rustdoc-js
4030 - rustdoc-js-std
4031 - rustdoc-ui
4032 - run-make-fulldeps
4033 - ui
4034 - ui-fulldeps
4035 - )
4036 - fi
4037 -
4038 - local i failed=()
4039 - einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
4040 - for i in "${tests[@]}"; do
4041 - local t="src/test/${i}"
4042 - einfo "rust_src_test: running ${t}"
4043 - if ! (
4044 - IFS=$'\n'
4045 - env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \
4046 - "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
4047 - -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
4048 - )
4049 - then
4050 - failed+=( "${t}" )
4051 - eerror "rust_src_test: ${t} failed"
4052 - fi
4053 - done
4054 -
4055 - if [[ ${#failed[@]} -ne 0 ]]; then
4056 - eerror "rust_src_test: failure summary: ${failed[@]}"
4057 - die "aborting due to test failures"
4058 - fi
4059 -}
4060 -
4061 -src_install() {
4062 - (
4063 - IFS=$'\n'
4064 - env $(cat "${S}"/config.env) DESTDIR="${D}" \
4065 - "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
4066 - )
4067 -
4068 - # bug #689562, #689160
4069 - rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
4070 - rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
4071 - newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
4072 -
4073 - local symlinks=(
4074 - cargo
4075 - rustc
4076 - rustdoc
4077 - rust-gdb
4078 - rust-gdbgui
4079 - rust-lldb
4080 - )
4081 -
4082 - use clippy && symlinks+=( clippy-driver cargo-clippy )
4083 - use miri && symlinks+=( miri cargo-miri )
4084 - use rls && symlinks+=( rls )
4085 - use rustfmt && symlinks+=( rustfmt cargo-fmt )
4086 -
4087 - einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
4088 - local i
4089 - for i in "${symlinks[@]}"; do
4090 - # we need realpath on /usr/bin/* symlink return version-appended binary path.
4091 - # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
4092 - # need to fix eselect-rust to remove this hack.
4093 - local ver_i="${i}-${PV}"
4094 - if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
4095 - einfo "Installing ${i} symlink"
4096 - ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
4097 - else
4098 - ewarn "${i} symlink requested, but source file not found"
4099 - ewarn "please report this"
4100 - fi
4101 - dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
4102 - done
4103 -
4104 - # symlinks to switch components to active rust in eselect
4105 - dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
4106 - dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
4107 - dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
4108 - dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
4109 - dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
4110 -
4111 - newenvd - "50${P}" <<-_EOF_
4112 - LDPATH="${EPREFIX}/usr/lib/rust/lib"
4113 - MANPATH="${EPREFIX}/usr/lib/rust/man"
4114 - $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
4115 - $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
4116 - _EOF_
4117 -
4118 - rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
4119 - rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
4120 -
4121 - # note: eselect-rust adds EROOT to all paths below
4122 - cat <<-_EOF_ > "${T}/provider-${P}"
4123 - /usr/bin/cargo
4124 - /usr/bin/rustdoc
4125 - /usr/bin/rust-gdb
4126 - /usr/bin/rust-gdbgui
4127 - /usr/bin/rust-lldb
4128 - /usr/lib/rustlib
4129 - /usr/lib/rust/lib
4130 - /usr/lib/rust/libexec
4131 - /usr/lib/rust/man
4132 - /usr/share/doc/rust
4133 - _EOF_
4134 -
4135 - if use clippy; then
4136 - echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
4137 - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
4138 - fi
4139 - if use miri; then
4140 - echo /usr/bin/miri >> "${T}/provider-${P}"
4141 - echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
4142 - fi
4143 - if use rls; then
4144 - echo /usr/bin/rls >> "${T}/provider-${P}"
4145 - fi
4146 - if use rustfmt; then
4147 - echo /usr/bin/rustfmt >> "${T}/provider-${P}"
4148 - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
4149 - fi
4150 -
4151 - insinto /etc/env.d/rust
4152 - doins "${T}/provider-${P}"
4153 -}
4154 -
4155 -pkg_postinst() {
4156 - eselect rust update
4157 -
4158 - if has_version sys-devel/gdb || has_version dev-util/lldb; then
4159 - elog "Rust installs a helper script for calling GDB and LLDB,"
4160 - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
4161 - fi
4162 -
4163 - if has_version app-editors/emacs; then
4164 - elog "install app-emacs/rust-mode to get emacs support for rust."
4165 - fi
4166 -
4167 - if has_version app-editors/gvim || has_version app-editors/vim; then
4168 - elog "install app-vim/rust-vim to get vim support for rust."
4169 - fi
4170 -}
4171 -
4172 -pkg_postrm() {
4173 - eselect rust cleanup
4174 -}
4175
4176 diff --git a/dev-lang/rust/rust-1.58.0.ebuild b/dev-lang/rust/rust-1.58.0.ebuild
4177 deleted file mode 100644
4178 index 05df5cfc5f9d..000000000000
4179 --- a/dev-lang/rust/rust-1.58.0.ebuild
4180 +++ /dev/null
4181 @@ -1,699 +0,0 @@
4182 -# Copyright 1999-2022 Gentoo Authors
4183 -# Distributed under the terms of the GNU General Public License v2
4184 -
4185 -EAPI=7
4186 -
4187 -PYTHON_COMPAT=( python3_{7..10} )
4188 -
4189 -inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
4190 - multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
4191 -
4192 -if [[ ${PV} = *beta* ]]; then
4193 - betaver=${PV//*beta}
4194 - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
4195 - MY_P="rustc-beta"
4196 - SLOT="beta/${PV}"
4197 - SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
4198 -else
4199 - ABI_VER="$(ver_cut 1-2)"
4200 - SLOT="stable/${ABI_VER}"
4201 - MY_P="rustc-${PV}"
4202 - SRC="${MY_P}-src.tar.xz"
4203 - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
4204 -fi
4205 -
4206 -RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
4207 -
4208 -DESCRIPTION="Systems programming language from Mozilla"
4209 -HOMEPAGE="https://www.rust-lang.org/"
4210 -
4211 -SRC_URI="
4212 - https://static.rust-lang.org/dist/${SRC}
4213 - verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
4214 - !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
4215 -"
4216 -
4217 -# keep in sync with llvm ebuild of the same version as bundled one.
4218 -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430
4219 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore )
4220 -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
4221 -LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
4222 -
4223 -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
4224 -
4225 -IUSE="clippy cpu_flags_x86_sse2 debug doc miri nightly parallel-compiler rls rustfmt rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
4226 -
4227 -# Please keep the LLVM dependency block separate. Since LLVM is slotted,
4228 -# we need to *really* make sure we're not pulling more than one slot
4229 -# simultaneously.
4230 -
4231 -# How to use it:
4232 -# List all the working slots in LLVM_VALID_SLOTS, newest first.
4233 -LLVM_VALID_SLOTS=( 13 )
4234 -LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
4235 -
4236 -# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
4237 -# (-) usedep needed because we may build with older llvm without that target
4238 -LLVM_DEPEND="|| ( "
4239 -for _s in ${LLVM_VALID_SLOTS[@]}; do
4240 - LLVM_DEPEND+=" ( "
4241 - for _x in ${ALL_LLVM_TARGETS[@]}; do
4242 - LLVM_DEPEND+="
4243 - ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )"
4244 - done
4245 - LLVM_DEPEND+=" )"
4246 -done
4247 -unset _s _x
4248 -LLVM_DEPEND+=" )
4249 - <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
4250 - wasm? ( sys-devel/lld )
4251 -"
4252 -
4253 -# to bootstrap we need at least exactly previous version, or same.
4254 -# most of the time previous versions fail to bootstrap with newer
4255 -# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
4256 -# but it fails to bootstrap with 1.48.x
4257 -# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt
4258 -RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
4259 -RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
4260 -BOOTSTRAP_DEPEND="||
4261 - (
4262 - =dev-lang/rust-"${RUST_DEP_PREV}"
4263 - =dev-lang/rust-bin-"${RUST_DEP_PREV}"
4264 - =dev-lang/rust-"${RUST_DEP_CURR}"
4265 - =dev-lang/rust-bin-"${RUST_DEP_CURR}"
4266 - )
4267 -"
4268 -
4269 -BDEPEND="${PYTHON_DEPS}
4270 - app-eselect/eselect-rust
4271 - || (
4272 - >=sys-devel/gcc-4.7
4273 - >=sys-devel/clang-3.5
4274 - )
4275 - system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
4276 - !system-llvm? (
4277 - >=dev-util/cmake-3.13.4
4278 - dev-util/ninja
4279 - )
4280 - test? ( sys-devel/gdb )
4281 - verify-sig? ( sec-keys/openpgp-keys-rust )
4282 -"
4283 -
4284 -DEPEND="
4285 - >=app-arch/xz-utils-5.2
4286 - net-misc/curl:=[http2,ssl]
4287 - sys-libs/zlib:=
4288 - dev-libs/openssl:0=
4289 - elibc_musl? ( sys-libs/libunwind:= )
4290 - system-llvm? ( ${LLVM_DEPEND} )
4291 -"
4292 -
4293 -# we need to block older versions due to layout changes.
4294 -RDEPEND="${DEPEND}
4295 - app-eselect/eselect-rust
4296 - !<dev-lang/rust-1.47.0-r1
4297 - !<dev-lang/rust-bin-1.47.0-r1
4298 -"
4299 -
4300 -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
4301 - miri? ( nightly )
4302 - parallel-compiler? ( nightly )
4303 - rls? ( rust-src )
4304 - test? ( ${ALL_LLVM_TARGETS[*]} )
4305 - wasm? ( llvm_targets_WebAssembly )
4306 - x86? ( cpu_flags_x86_sse2 )
4307 -"
4308 -
4309 -# we don't use cmake.eclass, but can get a warning
4310 -CMAKE_WARN_UNUSED_CLI=no
4311 -
4312 -QA_FLAGS_IGNORED="
4313 - usr/lib/${PN}/${PV}/bin/.*
4314 - usr/lib/${PN}/${PV}/libexec/.*
4315 - usr/lib/${PN}/${PV}/lib/lib.*.so
4316 - usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
4317 - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
4318 -"
4319 -
4320 -QA_SONAME="
4321 - usr/lib/${PN}/${PV}/lib/lib.*.so.*
4322 - usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
4323 -"
4324 -
4325 -QA_PRESTRIPPED="
4326 - usr/lib/rust/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
4327 -"
4328 -# An rmeta file is custom binary format that contains the metadata for the crate.
4329 -# rmeta files do not support linking, since they do not contain compiled object files.
4330 -# so we can safely silence the warning for this QA check.
4331 -QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
4332 -
4333 -# causes double bootstrap
4334 -RESTRICT="test"
4335 -
4336 -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc
4337 -
4338 -PATCHES=(
4339 - "${FILESDIR}"/1.55.0-ignore-broken-and-non-applicable-tests.patch
4340 - "${FILESDIR}"/1.49.0-gentoo-musl-target-specs.patch
4341 -)
4342 -
4343 -S="${WORKDIR}/${MY_P}-src"
4344 -
4345 -toml_usex() {
4346 - usex "${1}" true false
4347 -}
4348 -
4349 -bootstrap_rust_version_check() {
4350 - # never call from pkg_pretend. eselect-rust may be not installed yet.
4351 - [[ ${MERGE_TYPE} == binary ]] && return
4352 - local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
4353 - local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
4354 - local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
4355 - rustc_version=${rustc_version[0]#rust-bin-}
4356 - rustc_version=${rustc_version#rust-}
4357 -
4358 - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
4359 -
4360 - if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
4361 - eerror "Rust >=${rustc_wanted} is required"
4362 - eerror "please run 'eselect rust' and set correct rust version"
4363 - die "selected rust version is too old"
4364 - elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
4365 - eerror "Rust <${rustc_toonew} is required"
4366 - eerror "please run 'eselect rust' and set correct rust version"
4367 - die "selected rust version is too new"
4368 - else
4369 - einfo "Using rust ${rustc_version} to build"
4370 - fi
4371 -}
4372 -
4373 -pre_build_checks() {
4374 - local M=4096
4375 - # multiply requirements by 1.5 if we are doing x86-multilib
4376 - if use amd64; then
4377 - M=$(( $(usex abi_x86_32 15 10) * ${M} / 10 ))
4378 - fi
4379 - M=$(( $(usex clippy 128 0) + ${M} ))
4380 - M=$(( $(usex miri 128 0) + ${M} ))
4381 - M=$(( $(usex rls 512 0) + ${M} ))
4382 - M=$(( $(usex rustfmt 256 0) + ${M} ))
4383 - # add 2G if we compile llvm and 256M per llvm_target
4384 - if ! use system-llvm; then
4385 - M=$(( 2048 + ${M} ))
4386 - local ltarget
4387 - for ltarget in ${ALL_LLVM_TARGETS[@]}; do
4388 - M=$(( $(usex ${ltarget} 256 0) + ${M} ))
4389 - done
4390 - fi
4391 - M=$(( $(usex wasm 256 0) + ${M} ))
4392 - M=$(( $(usex debug 2 1) * ${M} ))
4393 - eshopts_push -s extglob
4394 - if is-flagq '-g?(gdb)?([1-9])'; then
4395 - M=$(( 15 * ${M} / 10 ))
4396 - fi
4397 - eshopts_pop
4398 - M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
4399 - M=$(( $(usex doc 256 0) + ${M} ))
4400 - CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
4401 -}
4402 -
4403 -llvm_check_deps() {
4404 - has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
4405 -}
4406 -
4407 -pkg_pretend() {
4408 - pre_build_checks
4409 -}
4410 -
4411 -pkg_setup() {
4412 - pre_build_checks
4413 - python-any-r1_pkg_setup
4414 -
4415 - export LIBGIT2_NO_PKG_CONFIG=1 #749381
4416 -
4417 - use system-bootstrap && bootstrap_rust_version_check
4418 -
4419 - if use system-llvm; then
4420 - llvm_pkg_setup
4421 -
4422 - local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
4423 - export LLVM_LINK_SHARED=1
4424 - export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
4425 - fi
4426 -}
4427 -
4428 -src_prepare() {
4429 - if ! use system-bootstrap; then
4430 - local rust_stage0_root="${WORKDIR}"/rust-stage0
4431 - local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
4432 -
4433 - "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
4434 - --without=rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
4435 - fi
4436 -
4437 - default
4438 -}
4439 -
4440 -src_configure() {
4441 - local rust_target="" rust_targets="" arch_cflags
4442 -
4443 - # Collect rust target names to compile standard libs for all ABIs.
4444 - for v in $(multilib_get_enabled_abi_pairs); do
4445 - rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
4446 - done
4447 - if use wasm; then
4448 - rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
4449 - if use system-llvm; then
4450 - # un-hardcode rust-lld linker for this target
4451 - # https://bugs.gentoo.org/715348
4452 - sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
4453 - fi
4454 - fi
4455 - rust_targets="${rust_targets#,}"
4456 -
4457 - local tools="\"cargo\","
4458 - if use clippy; then
4459 - tools="\"clippy\",$tools"
4460 - fi
4461 - if use miri; then
4462 - tools="\"miri\",$tools"
4463 - fi
4464 - if use rls; then
4465 - tools="\"rls\",\"analysis\",$tools"
4466 - fi
4467 - if use rustfmt; then
4468 - tools="\"rustfmt\",$tools"
4469 - fi
4470 - if use rust-src; then
4471 - tools="\"src\",$tools"
4472 - fi
4473 -
4474 - local rust_stage0_root
4475 - if use system-bootstrap; then
4476 - local printsysroot
4477 - printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
4478 - rust_stage0_root="${printsysroot}"
4479 - else
4480 - rust_stage0_root="${WORKDIR}"/rust-stage0
4481 - fi
4482 - # in case of prefix it will be already prefixed, as --print sysroot returns full path
4483 - [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
4484 -
4485 - rust_target="$(rust_abi)"
4486 -
4487 - cat <<- _EOF_ > "${S}"/config.toml
4488 - changelog-seen = 2
4489 - [llvm]
4490 - download-ci-llvm = false
4491 - optimize = $(toml_usex !debug)
4492 - release-debuginfo = $(toml_usex debug)
4493 - assertions = $(toml_usex debug)
4494 - ninja = true
4495 - targets = "${LLVM_TARGETS// /;}"
4496 - experimental-targets = ""
4497 - link-shared = $(toml_usex system-llvm)
4498 - $(case "${rust_target}" in
4499 - i586-*-linux-*)
4500 - # https://github.com/rust-lang/rust/issues/93059
4501 - echo 'cflags = "-fcf-protection=none"'
4502 - echo 'cxxflags = "-fcf-protection=none"'
4503 - echo 'ldflags = "-fcf-protection=none"'
4504 - ;;
4505 - esac)
4506 - [build]
4507 - build-stage = 2
4508 - test-stage = 2
4509 - doc-stage = 2
4510 - build = "${rust_target}"
4511 - host = ["${rust_target}"]
4512 - target = [${rust_targets}]
4513 - cargo = "${rust_stage0_root}/bin/cargo"
4514 - rustc = "${rust_stage0_root}/bin/rustc"
4515 - rustfmt = "${rust_stage0_root}/bin/rustfmt"
4516 - docs = $(toml_usex doc)
4517 - compiler-docs = false
4518 - submodules = false
4519 - python = "${EPYTHON}"
4520 - locked-deps = true
4521 - vendor = true
4522 - extended = true
4523 - tools = [${tools}]
4524 - verbose = 2
4525 - sanitizers = false
4526 - profiler = false
4527 - cargo-native-static = false
4528 - [install]
4529 - prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
4530 - sysconfdir = "etc"
4531 - docdir = "share/doc/rust"
4532 - bindir = "bin"
4533 - libdir = "lib"
4534 - mandir = "share/man"
4535 - [rust]
4536 - # https://github.com/rust-lang/rust/issues/54872
4537 - codegen-units-std = 1
4538 - optimize = true
4539 - debug = $(toml_usex debug)
4540 - debug-assertions = $(toml_usex debug)
4541 - debug-assertions-std = $(toml_usex debug)
4542 - debuginfo-level = $(usex debug 2 0)
4543 - debuginfo-level-rustc = $(usex debug 2 0)
4544 - debuginfo-level-std = $(usex debug 2 0)
4545 - debuginfo-level-tools = $(usex debug 2 0)
4546 - debuginfo-level-tests = 0
4547 - backtrace = true
4548 - incremental = false
4549 - default-linker = "$(tc-getCC)"
4550 - parallel-compiler = $(toml_usex parallel-compiler)
4551 - channel = "$(usex nightly nightly stable)"
4552 - description = "gentoo"
4553 - rpath = false
4554 - verbose-tests = true
4555 - optimize-tests = $(toml_usex !debug)
4556 - codegen-tests = true
4557 - dist-src = false
4558 - remap-debuginfo = true
4559 - lld = $(usex system-llvm false $(toml_usex wasm))
4560 - # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
4561 - # https://github.com/rust-lang/rust/issues/74976
4562 - # https://github.com/rust-lang/rust/issues/76526
4563 - deny-warnings = $(usex wasm $(usex doc false true) true)
4564 - backtrace-on-ice = true
4565 - jemalloc = false
4566 - [dist]
4567 - src-tarball = false
4568 - compression-formats = ["gz"]
4569 - _EOF_
4570 -
4571 - for v in $(multilib_get_enabled_abi_pairs); do
4572 - rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
4573 - arch_cflags="$(get_abi_CFLAGS ${v##*.})"
4574 -
4575 - cat <<- _EOF_ >> "${S}"/config.env
4576 - CFLAGS_${rust_target}=${arch_cflags}
4577 - _EOF_
4578 -
4579 - cat <<- _EOF_ >> "${S}"/config.toml
4580 - [target.${rust_target}]
4581 - ar = "$(tc-getAR)"
4582 - cc = "$(tc-getCC)"
4583 - cxx = "$(tc-getCXX)"
4584 - linker = "$(tc-getCC)"
4585 - ranlib = "$(tc-getRANLIB)"
4586 - _EOF_
4587 - # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
4588 - if use elibc_musl; then
4589 - cat <<- _EOF_ >> "${S}"/config.toml
4590 - crt-static = false
4591 - _EOF_
4592 - fi
4593 - if use system-llvm; then
4594 - cat <<- _EOF_ >> "${S}"/config.toml
4595 - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
4596 - _EOF_
4597 - fi
4598 - done
4599 - if use wasm; then
4600 - cat <<- _EOF_ >> "${S}"/config.toml
4601 - [target.wasm32-unknown-unknown]
4602 - linker = "$(usex system-llvm lld rust-lld)"
4603 - _EOF_
4604 - fi
4605 -
4606 - if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
4607 - # experimental cross support
4608 - # discussion: https://bugs.gentoo.org/679878
4609 - # TODO: c*flags, clang, system-llvm, cargo.eclass target support
4610 - # it would be much better if we could split out stdlib
4611 - # complilation to separate ebuild and abuse CATEGORY to
4612 - # just install to /usr/lib/rustlib/<target>
4613 -
4614 - # extra targets defined as a bash array
4615 - # spec format: <LLVM target>:<rust-target>:<CTARGET>
4616 - # best place would be /etc/portage/env/dev-lang/rust
4617 - # Example:
4618 - # RUST_CROSS_TARGETS=(
4619 - # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
4620 - # )
4621 - # no extra hand holding is done, no target transformations, all
4622 - # values are passed as-is with just basic checks, so it's up to user to supply correct values
4623 - # valid rust targets can be obtained with
4624 - # rustc --print target-list
4625 - # matching cross toolchain has to be installed
4626 - # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
4627 - # only gcc toolchains installed with crossdev are checked for now.
4628 -
4629 - # BUG: we can't pass host flags to cross compiler, so just filter for now
4630 - # BUG: this should be more fine-grained.
4631 - filter-flags '-mcpu=*' '-march=*' '-mtune=*'
4632 -
4633 - local cross_target_spec
4634 - for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
4635 - # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
4636 - local cross_llvm_target="${cross_target_spec%%:*}"
4637 - # extracts toolchain triples, <rust-target>:<CTARGET>
4638 - local cross_triples="${cross_target_spec#*:}"
4639 - # extracts first element after before : separator
4640 - local cross_rust_target="${cross_triples%%:*}"
4641 - # extracts last element after : separator
4642 - local cross_toolchain="${cross_triples##*:}"
4643 - use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
4644 - command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
4645 -
4646 - cat <<- _EOF_ >> "${S}"/config.toml
4647 - [target.${cross_rust_target}]
4648 - ar = "${cross_toolchain}-ar"
4649 - cc = "${cross_toolchain}-gcc"
4650 - cxx = "${cross_toolchain}-g++"
4651 - linker = "${cross_toolchain}-gcc"
4652 - ranlib = "${cross_toolchain}-ranlib"
4653 - _EOF_
4654 - if use system-llvm; then
4655 - cat <<- _EOF_ >> "${S}"/config.toml
4656 - llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
4657 - _EOF_
4658 - fi
4659 - if [[ "${cross_toolchain}" == *-musl* ]]; then
4660 - cat <<- _EOF_ >> "${S}"/config.toml
4661 - musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
4662 - _EOF_
4663 - fi
4664 -
4665 - # append cross target to "normal" target list
4666 - # example 'target = ["powerpc64le-unknown-linux-gnu"]'
4667 - # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
4668 -
4669 - rust_targets="${rust_targets},\"${cross_rust_target}\""
4670 - sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
4671 -
4672 - ewarn
4673 - ewarn "Enabled ${cross_rust_target} rust target"
4674 - ewarn "Using ${cross_toolchain} cross toolchain"
4675 - ewarn
4676 - if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
4677 - ewarn "'sys-devel/binutils[multitarget]' is not installed"
4678 - ewarn "'strip' will be unable to strip cross libraries"
4679 - ewarn "cross targets will be installed with full debug information"
4680 - ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
4681 - ewarn
4682 - ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
4683 - ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
4684 - ewarn
4685 - fi
4686 - done
4687 - fi # I_KNOW_WHAT_I_AM_DOING_CROSS
4688 -
4689 - einfo "Rust configured with the following flags:"
4690 - echo
4691 - echo RUSTFLAGS="${RUSTFLAGS:-}"
4692 - echo RUSTFLAGS_BOOTSTRAP="${RUSTFLAGS_BOOTSTRAP:-}"
4693 - echo RUSTFLAGS_NOT_BOOTSTRAP="${RUSTFLAGS_NOT_BOOTSTRAP:-}"
4694 - env | grep "CARGO_TARGET_.*_RUSTFLAGS="
4695 - cat "${S}"/config.env || die
4696 - echo
4697 - einfo "config.toml contents:"
4698 - cat "${S}"/config.toml || die
4699 - echo
4700 -}
4701 -
4702 -src_compile() {
4703 - # we need \n IFS to have config.env with spaces loaded properly. #734018
4704 - (
4705 - IFS=$'\n'
4706 - env $(cat "${S}"/config.env) RUST_BACKTRACE=1\
4707 - "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
4708 - )
4709 -}
4710 -
4711 -src_test() {
4712 - # https://rustc-dev-guide.rust-lang.org/tests/intro.html
4713 -
4714 - # those are basic and codegen tests.
4715 - local tests=(
4716 - codegen
4717 - codegen-units
4718 - compile-fail
4719 - incremental
4720 - mir-opt
4721 - pretty
4722 - run-make
4723 - )
4724 -
4725 - # fails if llvm is not built with ALL targets.
4726 - # and known to fail with system llvm sometimes.
4727 - use system-llvm || tests+=( assembly )
4728 -
4729 - # fragile/expensive/less important tests
4730 - # or tests that require extra builds
4731 - # TODO: instead of skipping, just make some nonfatal.
4732 - if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
4733 - tests+=(
4734 - rustdoc
4735 - rustdoc-js
4736 - rustdoc-js-std
4737 - rustdoc-ui
4738 - run-make-fulldeps
4739 - ui
4740 - ui-fulldeps
4741 - )
4742 - fi
4743 -
4744 - local i failed=()
4745 - einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
4746 - for i in "${tests[@]}"; do
4747 - local t="src/test/${i}"
4748 - einfo "rust_src_test: running ${t}"
4749 - if ! (
4750 - IFS=$'\n'
4751 - env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \
4752 - "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
4753 - -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
4754 - )
4755 - then
4756 - failed+=( "${t}" )
4757 - eerror "rust_src_test: ${t} failed"
4758 - fi
4759 - done
4760 -
4761 - if [[ ${#failed[@]} -ne 0 ]]; then
4762 - eerror "rust_src_test: failure summary: ${failed[@]}"
4763 - die "aborting due to test failures"
4764 - fi
4765 -}
4766 -
4767 -src_install() {
4768 - (
4769 - IFS=$'\n'
4770 - env $(cat "${S}"/config.env) DESTDIR="${D}" \
4771 - "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
4772 - )
4773 -
4774 - # bug #689562, #689160
4775 - rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
4776 - rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
4777 - newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
4778 -
4779 - local symlinks=(
4780 - cargo
4781 - rustc
4782 - rustdoc
4783 - rust-gdb
4784 - rust-gdbgui
4785 - rust-lldb
4786 - )
4787 -
4788 - use clippy && symlinks+=( clippy-driver cargo-clippy )
4789 - use miri && symlinks+=( miri cargo-miri )
4790 - use rls && symlinks+=( rls )
4791 - use rustfmt && symlinks+=( rustfmt cargo-fmt )
4792 -
4793 - einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
4794 - local i
4795 - for i in "${symlinks[@]}"; do
4796 - # we need realpath on /usr/bin/* symlink return version-appended binary path.
4797 - # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
4798 - # need to fix eselect-rust to remove this hack.
4799 - local ver_i="${i}-${PV}"
4800 - if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
4801 - einfo "Installing ${i} symlink"
4802 - ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
4803 - else
4804 - ewarn "${i} symlink requested, but source file not found"
4805 - ewarn "please report this"
4806 - fi
4807 - dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
4808 - done
4809 -
4810 - # symlinks to switch components to active rust in eselect
4811 - dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
4812 - dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
4813 - dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
4814 - dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
4815 - dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
4816 -
4817 - newenvd - "50${P}" <<-_EOF_
4818 - LDPATH="${EPREFIX}/usr/lib/rust/lib"
4819 - MANPATH="${EPREFIX}/usr/lib/rust/man"
4820 - $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
4821 - $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
4822 - _EOF_
4823 -
4824 - rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
4825 - rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
4826 -
4827 - # note: eselect-rust adds EROOT to all paths below
4828 - cat <<-_EOF_ > "${T}/provider-${P}"
4829 - /usr/bin/cargo
4830 - /usr/bin/rustdoc
4831 - /usr/bin/rust-gdb
4832 - /usr/bin/rust-gdbgui
4833 - /usr/bin/rust-lldb
4834 - /usr/lib/rustlib
4835 - /usr/lib/rust/lib
4836 - /usr/lib/rust/libexec
4837 - /usr/lib/rust/man
4838 - /usr/share/doc/rust
4839 - _EOF_
4840 -
4841 - if use clippy; then
4842 - echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
4843 - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
4844 - fi
4845 - if use miri; then
4846 - echo /usr/bin/miri >> "${T}/provider-${P}"
4847 - echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
4848 - fi
4849 - if use rls; then
4850 - echo /usr/bin/rls >> "${T}/provider-${P}"
4851 - fi
4852 - if use rustfmt; then
4853 - echo /usr/bin/rustfmt >> "${T}/provider-${P}"
4854 - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
4855 - fi
4856 -
4857 - insinto /etc/env.d/rust
4858 - doins "${T}/provider-${P}"
4859 -}
4860 -
4861 -pkg_postinst() {
4862 - eselect rust update
4863 -
4864 - if has_version sys-devel/gdb || has_version dev-util/lldb; then
4865 - elog "Rust installs a helper script for calling GDB and LLDB,"
4866 - elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
4867 - fi
4868 -
4869 - if has_version app-editors/emacs; then
4870 - elog "install app-emacs/rust-mode to get emacs support for rust."
4871 - fi
4872 -
4873 - if has_version app-editors/gvim || has_version app-editors/vim; then
4874 - elog "install app-vim/rust-vim to get vim support for rust."
4875 - fi
4876 -}
4877 -
4878 -pkg_postrm() {
4879 - eselect rust cleanup
4880 -}