summaryrefslogtreecommitdiff
path: root/dev-lang
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-12-10 02:01:16 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-12-10 02:01:16 +0000
commit59437d191de3ff33f9bfa37f8656d849184fcaf0 (patch)
tree7d5e645c0aac6d8b71229a0e53d7a93136f83781 /dev-lang
parent1a95f960273f276a4fdefb824336b073d83bcb5e (diff)
gentoo auto-resync : 10:12:2024 - 02:01:16
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/Manifest.gzbin22141 -> 22140 bytes
-rw-r--r--dev-lang/python/Manifest2
-rw-r--r--dev-lang/python/python-3.11.11_p1.ebuild2
-rw-r--r--dev-lang/rust-bin/Manifest34
-rw-r--r--dev-lang/rust-bin/metadata.xml1
-rw-r--r--dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild2
-rw-r--r--dev-lang/rust-bin/rust-bin-1.71.1-r101.ebuild (renamed from dev-lang/rust-bin/rust-bin-1.71.1.ebuild)41
-rw-r--r--dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild2
-rw-r--r--dev-lang/rust-bin/rust-bin-1.74.1-r101.ebuild (renamed from dev-lang/rust-bin/rust-bin-1.74.1.ebuild)41
-rw-r--r--dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild2
-rw-r--r--dev-lang/rust-bin/rust-bin-1.75.0-r101.ebuild (renamed from dev-lang/rust-bin/rust-bin-1.75.0.ebuild)41
-rw-r--r--dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild2
-rw-r--r--dev-lang/rust-bin/rust-bin-1.77.1-r101.ebuild (renamed from dev-lang/rust-bin/rust-bin-1.77.1.ebuild)50
-rw-r--r--dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild2
-rw-r--r--dev-lang/rust-bin/rust-bin-1.79.0-r101.ebuild (renamed from dev-lang/rust-bin/rust-bin-1.79.0.ebuild)50
-rw-r--r--dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild2
-rw-r--r--dev-lang/rust-bin/rust-bin-1.80.1-r101.ebuild (renamed from dev-lang/rust-bin/rust-bin-1.80.1.ebuild)50
-rw-r--r--dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild2
-rw-r--r--dev-lang/rust-bin/rust-bin-1.81.0-r101.ebuild (renamed from dev-lang/rust-bin/rust-bin-1.81.0.ebuild)39
-rw-r--r--dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild2
-rw-r--r--dev-lang/rust-bin/rust-bin-1.82.0-r101.ebuild (renamed from dev-lang/rust-bin/rust-bin-1.82.0.ebuild)37
-rw-r--r--dev-lang/rust/Manifest240
-rw-r--r--dev-lang/rust/metadata.xml2
-rw-r--r--dev-lang/rust/rust-1.71.1.ebuild748
-rw-r--r--dev-lang/rust/rust-1.74.1.ebuild784
-rw-r--r--dev-lang/rust/rust-1.75.0-r1.ebuild787
-rw-r--r--dev-lang/rust/rust-1.77.1.ebuild786
-rw-r--r--dev-lang/rust/rust-1.79.0.ebuild789
-rw-r--r--dev-lang/rust/rust-1.80.1.ebuild787
-rw-r--r--dev-lang/rust/rust-1.81.0.ebuild785
-rw-r--r--dev-lang/rust/rust-1.82.0.ebuild792
-rw-r--r--dev-lang/spidermonkey/Manifest8
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-128-known-test-failures.txt113
-rw-r--r--dev-lang/spidermonkey/spidermonkey-128.4.0-r1.ebuild2
-rw-r--r--dev-lang/spidermonkey/spidermonkey-128.5.0.ebuild478
-rw-r--r--dev-lang/yasm/Manifest2
-rw-r--r--dev-lang/yasm/yasm-1.3.0-r2.ebuild5
37 files changed, 862 insertions, 6650 deletions
diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz
index 7a616c0f05d5..95c78906a57a 100644
--- a/dev-lang/Manifest.gz
+++ b/dev-lang/Manifest.gz
Binary files differ
diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest
index 54dfdfc8d236..66da87c8fb38 100644
--- a/dev-lang/python/Manifest
+++ b/dev-lang/python/Manifest
@@ -55,7 +55,7 @@ EBUILD python-3.10.15_p1.ebuild 15523 BLAKE2B a1508c8905c930ce888e70a076feee030a
EBUILD python-3.10.15_p2.ebuild 15523 BLAKE2B a1508c8905c930ce888e70a076feee030acdc90662bd5642a299048d12f9440d471c07c2796491aeb0782b245126d815b356f58e9a35157f1ca7d4d3cb894e0b SHA512 f602b8dbfe520768454f7af99394fedcafa4b3b508c98a09c037e47d6e1454679a48c874142f833285472afcc9f836f797941e2e2fdf5f931a39283ddabf192b
EBUILD python-3.10.16_p1.ebuild 15525 BLAKE2B bcd49a8f730d96ba4da59b285cf4bcc4b6e2ea2d589c28b3da8088fc7dd224d53519c00966909f56ef6a87031eee87a5ded96a1ae515a7bf42263332f30bc6bc SHA512 9448cf612a059bef702ceb4d1898c6307e5684d8ecc0c4edda6373a1e8ab6ca17957c442366d15054fc668a6acfae2a67aac404ddefc287d0fffb5800c110c87
EBUILD python-3.11.10_p1.ebuild 16744 BLAKE2B 67c6f7bb0379c0c787f626baf541f34b043020ddffd6e5c2105f8a14bfd7bcf1347ae8ea33f75f62fa7f1b2c3924fe4e62911fdd2f8dd042bdac9cd3db3c38e9 SHA512 0b42f9a994b0ffef790f45a19a5aa85d875a070a3c5eb862c1a045db42b06b9c37a6ef1fe87503a4727153ca9d06d497da789e68f126e43b1e89b3231075d24d
-EBUILD python-3.11.11_p1.ebuild 16757 BLAKE2B a9338d4b12a21b56b9450cd6254241c4a0b5a119b4b90637b57c54b88f67d2b7092e91cab8e70a9c74c48eedf2c3a31840cfe7aaae94e8d4d2dec13a7b2a003a SHA512 e70977a6da206b65beb6d14fd198133d60f6eaf61f76f5555c54517af06ca73a83e0111671f319318ef616182e7f57f14f22473980426a3e60dd4661352c7e4f
+EBUILD python-3.11.11_p1.ebuild 16756 BLAKE2B 3000163c043e2990f760948d6bbdc7e9e5f8207218136a99c390a98930c03af2b1e32cd55ee7828e9553a439afc459244c2477160270626b85905f507ed7c874 SHA512 3f8675ee90f9742a323c1db19d6e8b33dab0b9334800ed5c090db090fee60982071a37c74e92186ac84918910d1279df3e3680b303223b876d265dc9d57966b5
EBUILD python-3.12.6_p2.ebuild 15689 BLAKE2B efdee37be4d2d2f6dbe4c697d5b468b50f254d7d77d9b7cab10591fb17a20d4e18cd96dce12a3e9477728c125fdd2693a86aebec556e139041980b402bad8b40 SHA512 f9d7eb72d5426519bc83873aca8125de6177fce7d4ed79233670f9c8a312ee3f9264ee96e0cfb41c702e20391cdc44d42d4d90037e34b861a93fd15371744820
EBUILD python-3.12.6_p4.ebuild 15626 BLAKE2B 6c6ee6f42200236bbb9bb517fe42b8023cbea4a9e56b87ff256c9b3446f76b12a59ef908677c6b27c7b8ca96ed29ea335f92b50533568f2e3b7209ffe132a5ca SHA512 f4cb2fe15a211d2bc66314ff389a9b48d43833844a91abb67f9c95e0cdc8d50d63093c6db32a70133803775373e32aa4bafc5de54753001640235c814a92aceb
EBUILD python-3.12.7_p1.ebuild 15667 BLAKE2B 845e609c929435d1e5085cd762904ec7d8b0df026bfb5a75656d0dc79d10171c6af7cb1166c408fdbb6c6cdddb8be5a00f5811f633d842e6bfa29c48646281cc SHA512 673b79119d767ab495b160ece8468b55199f8fa6f2b65b0747a354cc5f20f93a1032a238c8276ce91c54f5f9eab8475d2fbbf320adcbe51fe6d348f1e53928b3
diff --git a/dev-lang/python/python-3.11.11_p1.ebuild b/dev-lang/python/python-3.11.11_p1.ebuild
index 1ada0df25e26..68c865b5b322 100644
--- a/dev-lang/python/python-3.11.11_p1.ebuild
+++ b/dev-lang/python/python-3.11.11_p1.ebuild
@@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="PSF-2"
SLOT="${PYVER}"
-KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc ~x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc ~x86"
IUSE="
bluetooth build debug +ensurepip examples gdbm libedit
+ncurses pgo +readline +sqlite +ssl test tk valgrind
diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest
index ee584aee1045..d230a3a59fb5 100644
--- a/dev-lang/rust-bin/Manifest
+++ b/dev-lang/rust-bin/Manifest
@@ -342,21 +342,21 @@ DIST rust-src-1.81.0.tar.xz 2901440 BLAKE2B 7ad2855c21728cc323108f7e45416a425a22
DIST rust-src-1.82.0.tar.xz 2966368 BLAKE2B 4162e7393ac21a095ac1541ea7b62fafa561ce2153bdd2b3723d0f2e0130fb2fb1325ac8583d87d64b6cf6b76400d12aaac144c781e89a177483adb46854c81b SHA512 4f7817eb16dbddf15ab09206738569370c42abe117086b085a7cc8f7174f9c2b42571707558642c72597236610eeeca32575b665acbc2cbc4f7709e624c16cc4
DIST rust-src-1.83.0.tar.xz 2998424 BLAKE2B de758c5bfb29865a3ab7ab02d17b0282272fa7d1cf5da333a6a19d6a16813320317785e9bab02e3ba9ca6ee9f26e0c96b00a117f33b74c82b13ece44133e3130 SHA512 e1f0ccae1fd4202d86cde1f1e2f4491983ec49fafb2b9eaca6260e9173bea0e0cc2567946e48e3ce48f0a620f63dc44d30334f06c935628158de110d43c7d53b
EBUILD rust-bin-1.54.0.ebuild 5533 BLAKE2B d6e9c37a4ba322c4fa86d658eb3517a3c45bfa3341869ffb040c6ca350c16a892f26abe3c51cdea52d42c453a837f3204256285170729ae301d16e63db8bb8d4 SHA512 7ed26906372c87134263d00cecd62ad51731a906529eb23765dbca78efd921f1713d23d2f46ee0f2a5a2cedc2554fa60749b25f3a23f9a030821b90d7999adcf
-EBUILD rust-bin-1.71.1-r100.ebuild 7158 BLAKE2B 27c1760199973c531684c00cfbfca9c33d0537229aad58be007748568cfd8d8e5c42b91d98237b6bb1bc11442ed6b58c6d749a873b78fae81aa4d3b13ee7f323 SHA512 998df612f2e5ceeb9241bc8d87dee62e7ed8f2deb696ae0a24f030e05f5a2da43cb872c52c551deeb14c566d87bfe79a5c63c91ad74f71249db412bde88fb44e
-EBUILD rust-bin-1.71.1.ebuild 6976 BLAKE2B ab06c32b5859fd3898d88dc3d296d890556849078f1cfb2cb76a56d1437abbde406ef394b07e410ca0965671714b45b8eae832b93e2911ac8bc2aed2d84dee23 SHA512 aeb25676217956ddb976237888c3b6a9891360c39b9acb802e8e9070881d16b34f3dc5c2b884e21554a9986913f8443ffa4aa9cbdaff6ca5600abad3f298c4c7
-EBUILD rust-bin-1.74.1-r100.ebuild 7501 BLAKE2B a518a84b9875e1620251817d3b40b522f793f344220d97c6a2bc3166394fb961ac68994acc18701e6a47586cf3cf1f3c38b76c0be45f58407b2734a6b03668a7 SHA512 5d9e28bebf3f3f1476ba8b4b60fff0ec4b7e679ebdde60f9ed90fc2d67cda1e1908dc46fbda7d86b8caeb76256ddc5a7b07a53b372db7ef1fcb74d1fc7c17471
-EBUILD rust-bin-1.74.1.ebuild 7319 BLAKE2B 49f5ea1f31bf27205c21ab47681ea0cfd0eb834533b47fd85564ae2d8ed012b5f3b50458c75b5fd73817ee067f255481ebb592b173e0a7e7d8e0be1da3dfd183 SHA512 ddcaa062ce63cd66fd3f633a4866957f7ad85f67ca239a70f4719a8cf1c5de5a8b181ea5322e1733c1e158241dcdbf9ae126bc4fdb1e96c9d1472d8cfb5495b1
-EBUILD rust-bin-1.75.0-r100.ebuild 7501 BLAKE2B 49c18f7650b993e09940dfb3723a86259d666b0d978bc4f02936d3375456866eb7c1b637fcc4d6946465a2d39952c3d5b1233e39abb1517342d393bf30b3b175 SHA512 887e0bd1948b4ee21a7861b730b3ff139902bbb713d917551d0a2d6133b83c5767f2aa7ff75353d0ccbd8ae3d7ca36902bd5b4f3c9d9c5ff68f18a6000faf55d
-EBUILD rust-bin-1.75.0.ebuild 7319 BLAKE2B 6d651ee302620a28e8c9312af50eacb4638b5275c432909b061fa9aa5a38660b29a9e519409a5aa9a9f706ac7e2560266816c22b61c4f684ff5ccf23d715de22 SHA512 b9ba5e15c1cded9ea67a42fd22bc11680fa5622354140bafe663f20ce5de953a91d36b5f8f7d6acae9c3b4ed223748471672d0d45d8efd02c139f76698508baf
-EBUILD rust-bin-1.77.1-r100.ebuild 7540 BLAKE2B 5c6f0bbe41f7a6685dc45cddac28cf5b7ec59e081518e58e0cfa49bf231233a82f9aaa31d93f38282fdf019154923bc8a95da1512e3f6acf422cbacd7db3d256 SHA512 b66e1ee9c6a8d18f274e44af1d976a52fc53d35d08f9fdadffc00a1c24e00c993950f4213c666498ad59e6d7ee5384964ab0460499fa299b684faf1b7eb5df49
-EBUILD rust-bin-1.77.1.ebuild 7497 BLAKE2B fb9a25879a8886086486ba5e2010021c01e16ea2c525bf3d36d23e72c7a24eb6f196fd96d3d29231070f5a1db807865e135915224d37eebdffdf485ecc4ca83f SHA512 7ae2fb17a2fcd2d76ae85d1b0420429544a005e2c5ce1cd18a5351353b840d4048d491a316a7a97197198045f4af5f98681b4fa7b5b47df060e0ea6112b3512f
-EBUILD rust-bin-1.79.0-r100.ebuild 7647 BLAKE2B f36132a2fe2294d2fdbd01b3a295117280c06d7336c0647da367ac85f5929624f082e51a8fb686fe7abf57dff96b659b298a57be91aa9c7397acfd39406948e0 SHA512 6577632592060e89d24c8413f14889ebef75b31d971da1f3f501508b5ca010d20c44d6d06f4da00f6056c7e0c0d342ad5801ab5fa0e3dc163cb5202c8767281b
-EBUILD rust-bin-1.79.0.ebuild 7604 BLAKE2B 99c532442ff6e40c70a391d777122c32deec8ba8cf45f19d1abdf8e19f75a8776c9741ef54915995e24a646ff94b6e7ed76b2d27ac6631645179109915903d90 SHA512 b64087f5de9753a1476ec0ab72151309e75f4aa847ef0556bff0848a15b473fbb0a535ef1e957d19c92f416ad159d519c97764eb55802fc0c466930002e7e671
-EBUILD rust-bin-1.80.1-r100.ebuild 7856 BLAKE2B 042a6bdee5fd30fa3a060314f835be9c1cb713bba276e9b6ff54d08c03a5de5b4cf026a7b684bd90b37e50f00628b2181627f26236ac8238507f208c993ceeee SHA512 86536d61eec44ee55f14770edbf7d5c9c37b7fdbd3f7f58b36d234ba95ea32a0304d62a32c17fb114aef485f3e2b0aa7dec296acbd320857f800237184ee48a5
-EBUILD rust-bin-1.80.1.ebuild 7813 BLAKE2B 188d7efcdd2e6a0b688de4520db2d179f91bd51ff2a8191b44a5d5cb8be12f668a47cff5035c22b3cab7b00f5043f622b2fa0d80bb642aa1403faa10bb362f4b SHA512 8e53e1c781196eca1b2488602b2a3f2c81ff82a7bdd0a09836783c1fa82e4c34f2d073274186eb57683741d8bc69b870bd9921aeee31a29a8717e1350e3d6e03
-EBUILD rust-bin-1.81.0-r100.ebuild 7782 BLAKE2B e7758165904e80b42c4c06e452938354a0bf56e545fdfdbe521adb8e53b72b8fce84604bf54d81989e47d77f978609eb2717f7aa21b659b3ec0c0657e1dff532 SHA512 f81cca87968303baf11591f7682bd6f317047723cac661fe7621c5516470e803e363db1fc5edc9fe8ed71b96f723f79e066e1c445e6d7976a99006ed0c08f6aa
-EBUILD rust-bin-1.81.0.ebuild 7589 BLAKE2B 2cc70b0f0fcbd43b23a94c34f2453051b55bf7aa0081a64dcc64fc0da9edcedf780b3be55e8d56ceb0afd6c66f91d8a82e7f91d51ea76a876fee320132c83d10 SHA512 bbb441806791c0816e5216c812f07e0a5269886cf82edd5411bf908dccff68aa8ed06f39052086c48ae6066c982deea521621d98272dc586917e6b271104ff8e
-EBUILD rust-bin-1.82.0-r100.ebuild 7810 BLAKE2B ca3be6524a800b0e93e2828019664d2fb37b766076f9e7079ec29d580e5ff55b36c15008779b5d6544fd6c967e074d997c39d6f7383e5a29b31090dcf8531209 SHA512 287d2e942abe3598d2e9fa2802a12d2cb436ef2cd1b8d0087fa4d7be32e6d16a8a8a5c0e2750dfbbf0fd20034a056796523474e5e90ca02ded2da17e1708f225
-EBUILD rust-bin-1.82.0.ebuild 7624 BLAKE2B 2706be9714c3f62fb9c18d176ab3abc31dce8305cdc137e7d63cf616ea0a7315d4988659ddd10f67dec9c732cf17aec623df9a7c0781f2baf73d4db24689834c SHA512 0ce02301710e059bcca5e6f079ead6a9e9f5642f3fa6a6713615c68f0d0c65dd1b509d65a372cc64d9022287d41a0558a8632d026e4664d0429a9210e527291b
+EBUILD rust-bin-1.71.1-r100.ebuild 7172 BLAKE2B 45f50d3ed8a50c6b7fc6631c913823b8c5eb8da7a01df8de72e37321cb57166abaed860c8569472c75387fa77bca1819f5c8c0c8ea11b76a0a5c4544e60a238b SHA512 817fd9de70801b0fa0e7bba181f2cd18e2c4166efc1932ce896199f23ec5236881e22d5af91c0921e777a5dadab70aa27fbe17d738abe3913be13007963557bb
+EBUILD rust-bin-1.71.1-r101.ebuild 7624 BLAKE2B d39a05b4a4dc6d6c7b95c4bcbe7651617a2414a6099027081997dc4e76bc74d3528a6b072fb3b383139d6565a31f16b00dadcc0dbab58fce2db82be6484b51f5 SHA512 8fa9685a420c63f3aa52c1988e2d0c4a5e10c42c6c3628bbc822d4241d90995062f2fd43df347f7b4222d7ad7281640130df9ac362f6ae87ddb3397235219139
+EBUILD rust-bin-1.74.1-r100.ebuild 7515 BLAKE2B 1b032dbeea836cb41bc19dbfb22fec5e6d3caf901274a7ad685873d732e853358c10c4b4a6f28e125af27d686db15ac38e186fe5375457147b44784d9057dc55 SHA512 de882f58d3721a79b35b5b7401ccac44e243e43d8b4326ee22d150f7d55641ac109c30873ffe23c02b47c3499fa7c46ca1ea6800ab19497f6f8b2a512f9289af
+EBUILD rust-bin-1.74.1-r101.ebuild 7967 BLAKE2B 6a1712de1d33abb0b46b993871c55d04fc38fe3242da7d5f2fe3de7f08ab8d963a7825ba7ae4b6aa52b6e3bc97cef0647392da062c52f903286f3cc1745151be SHA512 0f2a42d7a647aab723b1aa825d91f6e74a7b41a1fde8904ca8a070e674acf27ca909ddfab51f085e156797a46e54882c01bad674811d00d43888302e6fb2d908
+EBUILD rust-bin-1.75.0-r100.ebuild 7515 BLAKE2B ad881d6edd0ed444b4b9ab3a4af289034dfb2fd32c1a4c0919de1067e0009551bc968d5268f8ccdee30d0823bfd3b0e15c2d760b24399b870fd0871ee0818f36 SHA512 913b0af01c958368b3779926b1a6e01f4bc51239613d66158a67483ce71fdc2d3932fde86eedd0b10b9c96c7d2dfc199f41f1d6747adb70b33dcbc304a48df6b
+EBUILD rust-bin-1.75.0-r101.ebuild 7967 BLAKE2B 2ce384dbb1d1d5e26116d2c5296cd5dd865c1722020ad53cbae9ad95d5ad1b7ccb22659c4823b4cc5969204af1d1e78520333b25a3cbdd39dfcf2e8e2ff6abb3 SHA512 efc0d1271aeb1d4c7c12fe4fa5b45f67af786e6ec9734ba5599baa8fa8090d3fc5e40105c3a1077c4e30e5055e660973bf52ed71172e0b607532ea415567193b
+EBUILD rust-bin-1.77.1-r100.ebuild 7554 BLAKE2B 140eeeb5081f663d02120408b1312314c18ddeb0d602320c515f042cc2ba229af1e412616b41804edae234cb9f554fe32b3a6d08d98274bb868a98ec84b5eb71 SHA512 bed261877e8afcd8eff7c7e13f94af3563a1922a99171bef33fb8d680f81c237e67622403784c14a51b4249818ba2d34febefe9e4c9c64211f3761d698fa707e
+EBUILD rust-bin-1.77.1-r101.ebuild 8006 BLAKE2B 8e1c0a9ecfbf4e51a5e076864f22a8bded6d0b1e1324498c3d5af9f3ee0f7420e3c33a1e01076e53d42b69d323faa7daabcb2cfa67224edd5eec8707328506f5 SHA512 28c5bc94b714007560a100eb972c34f306b2dcecb6c7d9a172b759419a58ff5bd96f4285353acb363481cbb7f3f3123c19cb1476299fb9f5f23cae15c27b618d
+EBUILD rust-bin-1.79.0-r100.ebuild 7661 BLAKE2B 4955ac2f1a30b057998979d75325f48e814e98da9ba3c02db49c20b7a756c1a32275a91e661fe8d34d585abc5581f0a8818e41ccc958c9738ea7f6c8e79fb131 SHA512 0f45e0b3a1ac6b732f3e5818bf0ecbdc5af9e32273ce4b7ea52943d6da82c4dffbf328abd1853f732c023be22fc69eb5fc2046d4eee13fb35151ca8cb78c18f4
+EBUILD rust-bin-1.79.0-r101.ebuild 8113 BLAKE2B d6d123890f93ba99e0e65466e5d4c9a80c0e68f3e321a4c401006f9f03b3aab5bfff5d00dbf2516ec7a413703ce94c08d1043f090341b8b6b644e750fee2d0eb SHA512 f9352dddafc0086f7c7816a2618f70b59e5bc15457f25bd558a13db2f8a4b6e68e2d4c9f1c007d7c7547809dc1f621bb040e165d88bd53be0ddcdaa415d1e3c3
+EBUILD rust-bin-1.80.1-r100.ebuild 7870 BLAKE2B 92261bc94f05136c4971c3d3979c31d2e626a39ecb446708076ca5eb896ea6e854bdfa47578b3cc053ebe4f8559ada84e3a8b406150fdace387cecdfa1db0557 SHA512 ebc84766889156afca927c7c11ee6f103b64f92c1cce4d8cdf241566248b1a7cc1c92efe498c69a1240b3ecb725873733d0afa4c015b69acd637d6bd46740237
+EBUILD rust-bin-1.80.1-r101.ebuild 8322 BLAKE2B 7a8746ebcac8ffa87136b6b2021e70896eeb866e5326c5ae1e45adb83c6f87e7df4e1f6fe2e0f5188a7369471831efa80db9210d2285ba61fc64b437acf947c0 SHA512 c57221386656702d51b886748511d43761aa2585027fa9da4320048951332eb2fc71e77d540efd7b569911964ec63d1101c39c7dce8d7ec6cd487090d47ce887
+EBUILD rust-bin-1.81.0-r100.ebuild 7796 BLAKE2B abfb9da9dcd3fb1e2ff045c2d5427eac2c08a79c02dff00d588b4978156e2478b430248454776269bf4c22d2afdbd6c21e07c94a7148f16537c0fba79fe8abbb SHA512 34b9cfb3daa201411c15396227e5b61507a42b71edb956ce992a70341936e01a8995b5e22b04d3f2a053f1846504d5ed33567310a149283566c21d12e4b9296e
+EBUILD rust-bin-1.81.0-r101.ebuild 8248 BLAKE2B 6ca8301f85eae0745cb11cb34ba48b5ce78d16aa02477c68e0febca5a5187e64e3f360829fa26b4c09cba7c6d68a7032c22ba6bbbb7a331b70bee9966483282c SHA512 fc0495ea1986c063dbd91a4bb4d720de7a3cc1deaae8206fb47bd07d38f88171c9ea0062a4c7acb2b7bc1fbcbbae7595cc1c3ae36665962a8edbca363714dcdd
+EBUILD rust-bin-1.82.0-r100.ebuild 7824 BLAKE2B f0bba4862cdf898d8441d749d2d0316b0be64e9a0898f750fe59a79c18e42d1c6a7495482ae1889e6a0925e294d88d7c4a4c3792c0ed2a571b73328549907d5b SHA512 17bf2bf8c81395123ae4b785f13f500185454dad74a6f7e9c7485798d415c0e3bf2a637050a52be3381caac58a4daf983875621b4981cced28b27a9c5fe9cfbd
+EBUILD rust-bin-1.82.0-r101.ebuild 8276 BLAKE2B 39de6d0cca689ea4276afa20fc7ed586fa67386bef4c1304650f582e6804eb551ea20dedf1322a6a4a90814eb0a739261ff6b41f6c610155bbeae860877b73cb SHA512 2aa3bebc25247d0ba42e1c28ac4b356033e9643f52bfde42071310f76c38d41c696a8324e85112c6f83b8cc282d228021d3c0414e9a1be878b0eaf551bca975c
EBUILD rust-bin-1.83.0.ebuild 7825 BLAKE2B 2c7d79de6b6147847df63cfb95a6e418ddfbc84c9a6c28be27aed2c3892083fea65a1423b37f5bab4f2f0a1dafbe316d473b8e31d3a0ef621c96940225e140fd SHA512 039e598f9c107c61550ea0fedd819ce4e074bd9a0f9407b4f715c6576f9343df9c87a3b11aef677bd609f82dd1bc668a359a4d1202287f08b43998c5724890c1
-MISC metadata.xml 1220 BLAKE2B 5c4d286e569c929913317d15d37de08db51655ec41c1d3b1d84aeb6982b53afd7ebf3f9adbcd4e3c76fc9b82056648b6af1507a5728388fd2d2e8d743e5225db SHA512 72d32987894268a7b3ac8e8606428cf8315fcf29ce1945c9e55527a5c696742f6f2a44dcfe01bf5abb0cad60b5881a59dedecdc07db4ef2df22ef13e3b2732a8
+MISC metadata.xml 1062 BLAKE2B de2d2adcb691a3e614457dd9a7f5d4a8eddffd548b2de8a229b6d397ae79f7e24484512a1fb2a85e02aa98c240ae73420dbe48e45790c0cd3f6381ef5a4ac24b SHA512 ee4d08b8eec8abd89e051ee5ec6cc928bfde7039b815d4539558d71d7c0576aea939b7781b4998d3fcf2c2e8752791d53c0ba6115df07fc2243c470b2a7467b9
diff --git a/dev-lang/rust-bin/metadata.xml b/dev-lang/rust-bin/metadata.xml
index 2f9b2fef5b94..bc1f3f39e1de 100644
--- a/dev-lang/rust-bin/metadata.xml
+++ b/dev-lang/rust-bin/metadata.xml
@@ -19,7 +19,6 @@
</maintainer>
<use>
<flag name="clippy">Install clippy, Rust code linter</flag>
- <flag name="profiler">Build the profiler runtime and rust-demangler tool (needed for '-C profile-generate' or '-C instrument-coverage' codegen opts)</flag>
<flag name="rustfmt">Install rustfmt, Rust code formatter</flag>
<flag name="rust-analyzer">Install rust-analyzer, A Rust compiler front-end for IDEs (language server)</flag>
<flag name="rust-src">Install rust-src, needed by developer tools and for build-std (cross)</flag>
diff --git a/dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild
index 50dd03400a4a..510f9ce2d5f7 100644
--- a/dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.71.1-r100.ebuild
@@ -127,7 +127,7 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
diff --git a/dev-lang/rust-bin/rust-bin-1.71.1.ebuild b/dev-lang/rust-bin/rust-bin-1.71.1-r101.ebuild
index f33217b15132..24a7ad979aca 100644
--- a/dev-lang/rust-bin/rust-bin-1.71.1.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.71.1-r101.ebuild
@@ -3,7 +3,10 @@
EAPI=8
-inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
+LLVM_COMPAT=( 16 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
MY_P="rust-${PV}"
# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
@@ -19,21 +22,21 @@ SRC_URI="$(rust_all_arch_uris ${MY_P})
SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz -> ${MY_P}-sparc64-unknown-linux-gnu.sam.tar.xz ) "
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
-SLOT="stable"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
-
-DEPEND=""
+SLOT="${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix llvm-libunwind rust-analyzer rust-src rustfmt"
RDEPEND="
>=app-eselect/eselect-rust-20190311
dev-libs/openssl
sys-apps/lsb-release
- sys-devel/gcc:*
+ !llvm-libunwind? ( sys-devel/gcc:* )
+ !dev-lang/rust:stable
+ !dev-lang/rust-bin:stable
"
-
BDEPEND="
prefix? ( dev-util/patchelf )
+ llvm-libunwind? ( dev-util/patchelf )
verify-sig? ( sec-keys/openpgp-keys-rust )
"
@@ -125,7 +128,17 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
+ fi
+
+ if use llvm-libunwind; then
+ ebegin "Replacing libgcc_s with libunwind"
+ find "${ED}/opt/${P}"/{bin,lib,libexec} -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ # just ignore wrong filetype error, instead of checking redundantly
+ patchelf --replace-needed libgcc_s.so.1 libunwind.so.1 ${filename} 2>/dev/null
+ done
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
@@ -162,8 +175,8 @@ multilib_src_install() {
CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
CARGO_TRIPLET="${CARGO_TRIPLET^^}"
cat <<-_EOF_ > "${T}/50${P}"
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
$(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
_EOF_
doenvd "${T}/50${P}"
@@ -213,8 +226,10 @@ multilib_src_install() {
pkg_postinst() {
eselect rust update
- elog "Rust installs a helper script for calling GDB now,"
- elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs helper scripts for calling GDB and LLDB,"
+ elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
if has_version app-editors/emacs; then
elog "install app-emacs/rust-mode to get emacs support for rust."
diff --git a/dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild
index 78aa2f6cfdbd..576701dfd9a3 100644
--- a/dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.74.1-r100.ebuild
@@ -137,7 +137,7 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
diff --git a/dev-lang/rust-bin/rust-bin-1.74.1.ebuild b/dev-lang/rust-bin/rust-bin-1.74.1-r101.ebuild
index d2bd0f6eb5a1..e0d8ca8a8c96 100644
--- a/dev-lang/rust-bin/rust-bin-1.74.1.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.74.1-r101.ebuild
@@ -3,7 +3,10 @@
EAPI=8
-inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
+LLVM_COMPAT=( 17 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
MY_P="rust-${PV}"
# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
@@ -29,21 +32,21 @@ SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.
#)"
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-SLOT="stable"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
-
-DEPEND=""
+SLOT="${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix llvm-libunwind rust-analyzer rust-src rustfmt"
RDEPEND="
>=app-eselect/eselect-rust-20190311
dev-libs/openssl
sys-apps/lsb-release
- sys-devel/gcc:*
+ !llvm-libunwind? ( sys-devel/gcc:* )
+ !dev-lang/rust:stable
+ !dev-lang/rust-bin:stable
"
-
BDEPEND="
prefix? ( dev-util/patchelf )
+ llvm-libunwind? ( dev-util/patchelf )
verify-sig? ( sec-keys/openpgp-keys-rust )
"
@@ -135,7 +138,17 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
+ fi
+
+ if use llvm-libunwind; then
+ ebegin "Replacing libgcc_s with libunwind"
+ find "${ED}/opt/${P}"/{bin,lib,libexec} -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ # just ignore wrong filetype error, instead of checking redundantly
+ patchelf --replace-needed libgcc_s.so.1 libunwind.so.1 ${filename} 2>/dev/null
+ done
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
@@ -172,8 +185,8 @@ multilib_src_install() {
CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
CARGO_TRIPLET="${CARGO_TRIPLET^^}"
cat <<-_EOF_ > "${T}/50${P}"
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
$(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
_EOF_
doenvd "${T}/50${P}"
@@ -223,8 +236,10 @@ multilib_src_install() {
pkg_postinst() {
eselect rust update
- elog "Rust installs a helper script for calling GDB now,"
- elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs helper scripts for calling GDB and LLDB,"
+ elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
if has_version app-editors/emacs; then
elog "install app-emacs/rust-mode to get emacs support for rust."
diff --git a/dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild
index d2250c3b37a1..9c67001aa284 100644
--- a/dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.75.0-r100.ebuild
@@ -137,7 +137,7 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
diff --git a/dev-lang/rust-bin/rust-bin-1.75.0.ebuild b/dev-lang/rust-bin/rust-bin-1.75.0-r101.ebuild
index 30174fe2be2c..a1de6b232931 100644
--- a/dev-lang/rust-bin/rust-bin-1.75.0.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.75.0-r101.ebuild
@@ -3,7 +3,10 @@
EAPI=8
-inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
+LLVM_COMPAT=( 17 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
MY_P="rust-${PV}"
# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
@@ -29,21 +32,21 @@ SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.
#)"
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-SLOT="stable"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
-
-DEPEND=""
+SLOT="${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix llvm-libunwind rust-analyzer rust-src rustfmt"
RDEPEND="
>=app-eselect/eselect-rust-20190311
dev-libs/openssl
sys-apps/lsb-release
- sys-devel/gcc:*
+ !llvm-libunwind? ( sys-devel/gcc:* )
+ !dev-lang/rust:stable
+ !dev-lang/rust-bin:stable
"
-
BDEPEND="
prefix? ( dev-util/patchelf )
+ llvm-libunwind? ( dev-util/patchelf )
verify-sig? ( sec-keys/openpgp-keys-rust )
"
@@ -135,7 +138,17 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
+ fi
+
+ if use llvm-libunwind; then
+ ebegin "Replacing libgcc_s with libunwind"
+ find "${ED}/opt/${P}"/{bin,lib,libexec} -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ # just ignore wrong filetype error, instead of checking redundantly
+ patchelf --replace-needed libgcc_s.so.1 libunwind.so.1 ${filename} 2>/dev/null
+ done
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
@@ -172,8 +185,8 @@ multilib_src_install() {
CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
CARGO_TRIPLET="${CARGO_TRIPLET^^}"
cat <<-_EOF_ > "${T}/50${P}"
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
$(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
_EOF_
doenvd "${T}/50${P}"
@@ -223,8 +236,10 @@ multilib_src_install() {
pkg_postinst() {
eselect rust update
- elog "Rust installs a helper script for calling GDB now,"
- elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs helper scripts for calling GDB and LLDB,"
+ elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
if has_version app-editors/emacs; then
elog "install app-emacs/rust-mode to get emacs support for rust."
diff --git a/dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild
index 0e64474657e5..f5be8d46db5a 100644
--- a/dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.77.1-r100.ebuild
@@ -137,7 +137,7 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
diff --git a/dev-lang/rust-bin/rust-bin-1.77.1.ebuild b/dev-lang/rust-bin/rust-bin-1.77.1-r101.ebuild
index 3849d0136667..45ddf4664654 100644
--- a/dev-lang/rust-bin/rust-bin-1.77.1.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.77.1-r101.ebuild
@@ -3,7 +3,10 @@
EAPI=8
-inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
+LLVM_COMPAT=( 17 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
MY_P="rust-${PV}"
# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
@@ -29,21 +32,21 @@ SRC_URI+=" mips? (
)"
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-SLOT="stable"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix profiler rust-analyzer rust-src rustfmt"
-
-DEPEND=""
+SLOT="${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix llvm-libunwind rust-analyzer rust-src rustfmt"
RDEPEND="
>=app-eselect/eselect-rust-20190311
dev-libs/openssl
sys-apps/lsb-release
- sys-devel/gcc:*
+ !llvm-libunwind? ( sys-devel/gcc:* )
+ !dev-lang/rust:stable
+ !dev-lang/rust-bin:stable
"
-
BDEPEND="
prefix? ( dev-util/patchelf )
+ llvm-libunwind? ( dev-util/patchelf )
verify-sig? ( sec-keys/openpgp-keys-rust )
"
@@ -108,10 +111,9 @@ multilib_src_install() {
local analysis std
analysis="$(grep 'analysis' ./components)"
std="$(grep 'std' ./components)"
- local components="rustc,cargo,${std}"
+ local components="rustc,cargo,rust-demangler-preview,${std}"
use doc && components="${components},rust-docs"
use clippy && components="${components},clippy-preview"
- use profiler && components="${components},rust-demangler-preview"
use rustfmt && components="${components},rustfmt-preview"
use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
# Rust component 'rust-src' is extracted from separate archive
@@ -136,20 +138,30 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
+ fi
+
+ if use llvm-libunwind; then
+ ebegin "Replacing libgcc_s with libunwind"
+ find "${ED}/opt/${P}"/{bin,lib,libexec} -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ # just ignore wrong filetype error, instead of checking redundantly
+ patchelf --replace-needed libgcc_s.so.1 libunwind.so.1 ${filename} 2>/dev/null
+ done
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
cargo
rustc
rustdoc
+ rust-demangler
rust-gdb
rust-gdbgui
rust-lldb
)
use clippy && symlinks+=( clippy-driver cargo-clippy )
- use profiler && symlinks+=( rust-demangler )
use rustfmt && symlinks+=( rustfmt cargo-fmt )
use rust-analyzer && symlinks+=( rust-analyzer )
@@ -174,8 +186,8 @@ multilib_src_install() {
CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
CARGO_TRIPLET="${CARGO_TRIPLET^^}"
cat <<-_EOF_ > "${T}/50${P}"
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
$(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
_EOF_
doenvd "${T}/50${P}"
@@ -184,6 +196,7 @@ multilib_src_install() {
cat <<-_EOF_ > "${T}/provider-${P}"
/usr/bin/cargo
/usr/bin/rustdoc
+ /usr/bin/rust-demangler
/usr/bin/rust-gdb
/usr/bin/rust-gdbgui
/usr/bin/rust-lldb
@@ -197,9 +210,6 @@ multilib_src_install() {
echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
fi
- if use profiler; then
- echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
- fi
if use rustfmt; then
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
@@ -228,8 +238,10 @@ multilib_src_install() {
pkg_postinst() {
eselect rust update
- elog "Rust installs a helper script for calling GDB now,"
- elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs helper scripts for calling GDB and LLDB,"
+ elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
if has_version app-editors/emacs; then
elog "install app-emacs/rust-mode to get emacs support for rust."
diff --git a/dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild
index 08058a9d05c7..ed6ccb20282c 100644
--- a/dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.79.0-r100.ebuild
@@ -140,7 +140,7 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
diff --git a/dev-lang/rust-bin/rust-bin-1.79.0.ebuild b/dev-lang/rust-bin/rust-bin-1.79.0-r101.ebuild
index aedec2e6829f..7915bafa7dde 100644
--- a/dev-lang/rust-bin/rust-bin-1.79.0.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.79.0-r101.ebuild
@@ -3,7 +3,10 @@
EAPI=8
-inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
+LLVM_COMPAT=( 18 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
MY_P="rust-${PV}"
# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
@@ -32,21 +35,21 @@ SRC_URI+=" riscv? (
)"
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-SLOT="stable"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix profiler rust-analyzer rust-src rustfmt"
-
-DEPEND=""
+SLOT="${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix llvm-libunwind rust-analyzer rust-src rustfmt"
RDEPEND="
>=app-eselect/eselect-rust-20190311
dev-libs/openssl
sys-apps/lsb-release
- sys-devel/gcc:*
+ !llvm-libunwind? ( sys-devel/gcc:* )
+ !dev-lang/rust:stable
+ !dev-lang/rust-bin:stable
"
-
BDEPEND="
prefix? ( dev-util/patchelf )
+ llvm-libunwind? ( dev-util/patchelf )
verify-sig? ( sec-keys/openpgp-keys-rust )
"
@@ -111,10 +114,9 @@ multilib_src_install() {
local analysis std
analysis="$(grep 'analysis' ./components)"
std="$(grep 'std' ./components)"
- local components="rustc,cargo,${std}"
+ local components="rustc,cargo,rust-demangler-preview,${std}"
use doc && components="${components},rust-docs"
use clippy && components="${components},clippy-preview"
- use profiler && components="${components},rust-demangler-preview"
use rustfmt && components="${components},rustfmt-preview"
use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
# Rust component 'rust-src' is extracted from separate archive
@@ -139,20 +141,30 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
+ fi
+
+ if use llvm-libunwind; then
+ ebegin "Replacing libgcc_s with libunwind"
+ find "${ED}/opt/${P}"/{bin,lib,libexec} -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ # just ignore wrong filetype error, instead of checking redundantly
+ patchelf --replace-needed libgcc_s.so.1 libunwind.so.1 ${filename} 2>/dev/null
+ done
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
cargo
rustc
rustdoc
+ rust-demangler
rust-gdb
rust-gdbgui
rust-lldb
)
use clippy && symlinks+=( clippy-driver cargo-clippy )
- use profiler && symlinks+=( rust-demangler )
use rustfmt && symlinks+=( rustfmt cargo-fmt )
use rust-analyzer && symlinks+=( rust-analyzer )
@@ -177,8 +189,8 @@ multilib_src_install() {
CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
CARGO_TRIPLET="${CARGO_TRIPLET^^}"
cat <<-_EOF_ > "${T}/50${P}"
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
$(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
_EOF_
doenvd "${T}/50${P}"
@@ -187,6 +199,7 @@ multilib_src_install() {
cat <<-_EOF_ > "${T}/provider-${P}"
/usr/bin/cargo
/usr/bin/rustdoc
+ /usr/bin/rust-demangler
/usr/bin/rust-gdb
/usr/bin/rust-gdbgui
/usr/bin/rust-lldb
@@ -200,9 +213,6 @@ multilib_src_install() {
echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
fi
- if use profiler; then
- echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
- fi
if use rustfmt; then
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
@@ -231,8 +241,10 @@ multilib_src_install() {
pkg_postinst() {
eselect rust update
- elog "Rust installs a helper script for calling GDB now,"
- elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs helper scripts for calling GDB and LLDB,"
+ elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
if has_version app-editors/emacs; then
elog "install app-emacs/rust-mode to get emacs support for rust."
diff --git a/dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild
index 80683713c412..37a443321e80 100644
--- a/dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.80.1-r100.ebuild
@@ -144,7 +144,7 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
diff --git a/dev-lang/rust-bin/rust-bin-1.80.1.ebuild b/dev-lang/rust-bin/rust-bin-1.80.1-r101.ebuild
index 47fc367f2947..93050557fa6d 100644
--- a/dev-lang/rust-bin/rust-bin-1.80.1.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.80.1-r101.ebuild
@@ -3,7 +3,10 @@
EAPI=8
-inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
+LLVM_COMPAT=( 18 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
MY_P="rust-${PV}"
# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
@@ -36,21 +39,21 @@ SRC_URI+=" ppc64? ( elibc_musl? (
) )"
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-SLOT="stable"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix profiler rust-analyzer rust-src rustfmt"
-
-DEPEND=""
+SLOT="${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix llvm-libunwind rust-analyzer rust-src rustfmt"
RDEPEND="
>=app-eselect/eselect-rust-20190311
dev-libs/openssl
sys-apps/lsb-release
- sys-devel/gcc:*
+ !llvm-libunwind? ( sys-devel/gcc:* )
+ !dev-lang/rust:stable
+ !dev-lang/rust-bin:stable
"
-
BDEPEND="
prefix? ( dev-util/patchelf )
+ llvm-libunwind? ( dev-util/patchelf )
verify-sig? ( sec-keys/openpgp-keys-rust )
"
@@ -115,10 +118,9 @@ multilib_src_install() {
local analysis std
analysis="$(grep 'analysis' ./components)"
std="$(grep 'std' ./components)"
- local components="rustc,cargo,${std}"
+ local components="rustc,cargo,rust-demangler-preview,${std}"
use doc && components="${components},rust-docs"
use clippy && components="${components},clippy-preview"
- use profiler && components="${components},rust-demangler-preview"
use rustfmt && components="${components},rustfmt-preview"
use rust-analyzer && components="${components},rust-analyzer-preview,${analysis}"
# Rust component 'rust-src' is extracted from separate archive
@@ -143,20 +145,30 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
+ fi
+
+ if use llvm-libunwind; then
+ ebegin "Replacing libgcc_s with libunwind"
+ find "${ED}/opt/${P}"/{bin,lib,libexec} -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ # just ignore wrong filetype error, instead of checking redundantly
+ patchelf --replace-needed libgcc_s.so.1 libunwind.so.1 ${filename} 2>/dev/null
+ done
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
cargo
rustc
rustdoc
+ rust-demangler
rust-gdb
rust-gdbgui
rust-lldb
)
use clippy && symlinks+=( clippy-driver cargo-clippy )
- use profiler && symlinks+=( rust-demangler )
use rustfmt && symlinks+=( rustfmt cargo-fmt )
use rust-analyzer && symlinks+=( rust-analyzer )
@@ -181,8 +193,8 @@ multilib_src_install() {
CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
CARGO_TRIPLET="${CARGO_TRIPLET^^}"
cat <<-_EOF_ > "${T}/50${P}"
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
$(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
_EOF_
doenvd "${T}/50${P}"
@@ -191,6 +203,7 @@ multilib_src_install() {
cat <<-_EOF_ > "${T}/provider-${P}"
/usr/bin/cargo
/usr/bin/rustdoc
+ /usr/bin/rust-demangler
/usr/bin/rust-gdb
/usr/bin/rust-gdbgui
/usr/bin/rust-lldb
@@ -204,9 +217,6 @@ multilib_src_install() {
echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
fi
- if use profiler; then
- echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
- fi
if use rustfmt; then
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
@@ -235,8 +245,10 @@ multilib_src_install() {
pkg_postinst() {
eselect rust update
- elog "Rust installs a helper script for calling GDB now,"
- elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs helper scripts for calling GDB and LLDB,"
+ elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
if has_version app-editors/emacs; then
elog "install app-emacs/rust-mode to get emacs support for rust."
diff --git a/dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild
index 7d63e6e075b8..6fb4f440b806 100644
--- a/dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.81.0-r100.ebuild
@@ -144,7 +144,7 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
diff --git a/dev-lang/rust-bin/rust-bin-1.81.0.ebuild b/dev-lang/rust-bin/rust-bin-1.81.0-r101.ebuild
index 73ab615c566f..11a6951c47d4 100644
--- a/dev-lang/rust-bin/rust-bin-1.81.0.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.81.0-r101.ebuild
@@ -3,7 +3,10 @@
EAPI=8
-inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature
+LLVM_COMPAT=( 18 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature
MY_P="rust-${PV}"
# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
@@ -36,19 +39,21 @@ SRC_URI+=" ppc64? ( elibc_musl? (
) )"
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-SLOT="stable"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+SLOT="${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix llvm-libunwind rust-analyzer rust-src rustfmt"
RDEPEND="
>=app-eselect/eselect-rust-20190311
dev-libs/openssl
sys-apps/lsb-release
- sys-devel/gcc:*
+ !llvm-libunwind? ( sys-devel/gcc:* )
+ !dev-lang/rust:stable
+ !dev-lang/rust-bin:stable
"
-
BDEPEND="
prefix? ( dev-util/patchelf )
+ llvm-libunwind? ( dev-util/patchelf )
verify-sig? ( sec-keys/openpgp-keys-rust )
"
@@ -140,7 +145,17 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
+ fi
+
+ if use llvm-libunwind; then
+ ebegin "Replacing libgcc_s with libunwind"
+ find "${ED}/opt/${P}"/{bin,lib,libexec} -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ # just ignore wrong filetype error, instead of checking redundantly
+ patchelf --replace-needed libgcc_s.so.1 libunwind.so.1 ${filename} 2>/dev/null
+ done
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
@@ -177,8 +192,8 @@ multilib_src_install() {
CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
CARGO_TRIPLET="${CARGO_TRIPLET^^}"
cat <<-_EOF_ > "${T}/50${P}"
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
$(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
_EOF_
doenvd "${T}/50${P}"
@@ -228,8 +243,10 @@ multilib_src_install() {
pkg_postinst() {
eselect rust update
- elog "Rust installs a helper script for calling GDB now,"
- elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs helper scripts for calling GDB and LLDB,"
+ elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
if has_version app-editors/emacs; then
optfeature "emacs support for rust" app-emacs/rust-mode
diff --git a/dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild b/dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild
index fcc3e706b79d..33133e19a43a 100644
--- a/dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.82.0-r100.ebuild
@@ -146,7 +146,7 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
diff --git a/dev-lang/rust-bin/rust-bin-1.82.0.ebuild b/dev-lang/rust-bin/rust-bin-1.82.0-r101.ebuild
index 5ed18f6e45df..a37c975a3e4f 100644
--- a/dev-lang/rust-bin/rust-bin-1.82.0.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.82.0-r101.ebuild
@@ -3,7 +3,10 @@
EAPI=8
-inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature
+LLVM_COMPAT=( 19 )
+LLVM_OPTIONAL="yes"
+
+inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature
MY_P="rust-${PV}"
# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
@@ -36,19 +39,21 @@ SRC_URI+=" ppc64? ( elibc_musl? (
) )"
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-SLOT="stable"
+SLOT="${PV}"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix llvm-libunwind rust-analyzer rust-src rustfmt"
RDEPEND="
>=app-eselect/eselect-rust-20190311
dev-libs/openssl
sys-apps/lsb-release
- sys-devel/gcc:*
+ !llvm-libunwind? ( sys-devel/gcc:* )
+ !dev-lang/rust:stable
+ !dev-lang/rust-bin:stable
"
-
BDEPEND="
prefix? ( dev-util/patchelf )
+ llvm-libunwind? ( dev-util/patchelf )
verify-sig? ( sec-keys/openpgp-keys-rust )
"
@@ -142,7 +147,17 @@ multilib_src_install() {
while IFS= read -r -d '' filename; do
patchelf_for_bin ${filename} ${interpreter} \; || die
done
- eend $?
+ eend ${PIPESTATUS[0]}
+ fi
+
+ if use llvm-libunwind; then
+ ebegin "Replacing libgcc_s with libunwind"
+ find "${ED}/opt/${P}"/{bin,lib,libexec} -type f -print0 | \
+ while IFS= read -r -d '' filename; do
+ # just ignore wrong filetype error, instead of checking redundantly
+ patchelf --replace-needed libgcc_s.so.1 libunwind.so.1 ${filename} 2>/dev/null
+ done
+ eend ${PIPESTATUS[0]}
fi
local symlinks=(
@@ -179,8 +194,8 @@ multilib_src_install() {
CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
CARGO_TRIPLET="${CARGO_TRIPLET^^}"
cat <<-_EOF_ > "${T}/50${P}"
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
+ LDPATH="${EPREFIX}/usr/lib/rust/lib-bin-${PV}"
+ MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
$(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
_EOF_
doenvd "${T}/50${P}"
@@ -230,8 +245,10 @@ multilib_src_install() {
pkg_postinst() {
eselect rust update
- elog "Rust installs a helper script for calling GDB now,"
- elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
+ if has_version dev-debug/gdb || has_version dev-debug/lldb; then
+ elog "Rust installs helper scripts for calling GDB and LLDB,"
+ elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
if has_version app-editors/emacs; then
optfeature "emacs support for rust" app-emacs/rust-mode
diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest
index 32e999af0f4c..e054f68d645d 100644
--- a/dev-lang/rust/Manifest
+++ b/dev-lang/rust/Manifest
@@ -23,236 +23,6 @@ AUX 1.83.0-cross-compile-libz.patch 915 BLAKE2B dbb726de09c9c957f245ecce29c597f4
AUX llvm/12/cstdint-signals-h.patch 993 BLAKE2B f771a4f0bbe1cef4001e471b55d9849999e53ea9eaf20b7cde76495faaa8b34f920c011d4ef1fb19c23b41b86c2fd46c9fdce068314d3450a99ef76b60173bc2 SHA512 4d7f2f90654eaa4132088dfc1541b9e804cd67f1889317c05bd7c2ebc65205388c3c128c749d864ca3b1e04e170f5aad5964e7eb331867043beb5b3f07548730
DIST openssl-0.10.35.crate 204462 BLAKE2B fb58a3be883bac3d5aa3e971172a281a80e9e100c51585db3d2828ecfd89d0b3b19edfacba2039056fa3aefb79717e03cd2ecbf932afb1acac2e74e1c29d3551 SHA512 5ebe4626a894ccc6e5c159cef72357654aa1a20dcc863fdab495f10a574b49b0b9d4e85a069b8b9297544ea0d09fd88a976396c3a8e8faaee9d01d79d943126f
DIST openssl-sys-0.9.65.crate 54405 BLAKE2B f0e09accf076653f172199d36bfe0b7547a738f962e9ee8c15563c4d27587aade3e44830022a1787dfc932ae1f162336e3a110a34b1459656631c7ea50e58b75 SHA512 4c14ff5258a35b86e35d352c5702c90e1f70954c8f33d17160694b63305057b97da3ac6846d3e8f8e7293c40f15b76effd1e34fad4be613b8d815b90148406f7
-DIST rust-1.70.0-aarch64-unknown-linux-gnu.tar.xz 212261108 BLAKE2B 56e15d01ea0e84c51ca3d4fc292c124536472e9c3e6d9ae13ab524e520865117b36621eca5072b961831ee6ad3077abd84afa9e092483095234b7ab2ddcae769 SHA512 d64eb19417a03452f591bb779042b2b3ff16d2ac48a9a74d293bc7265980280801784f92cdd0ae0dbc21743433388149557da7642871c72f3bb4b3061cf7eeba
-DIST rust-1.70.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 435383da02632d404ce95ecfc0b0690f18447f22cd82e67cd08e6e8aab072539b33a49c2712bdc35f34a811f8e66bda6bcf9505b41dcdaf4cc66e358df9d7f02 SHA512 634c35b52d85c524a954d0663b6f1507c5aec826768c1a51394bf72bae585afadd3d3af985a9d165a65d178e04813fd592a78d058ed1400bb0fc43b0a1614a27
-DIST rust-1.70.0-aarch64-unknown-linux-musl.tar.xz 195626092 BLAKE2B df5ca11b64513c86dbcab93bbc5eee37a1f2c6307ca479c07ef62d683ec1b1f56bd596284b11695d80c8483ba5ffaacb0bf060d7618f5e79f3957bfe8bae042b SHA512 5bcc47e2e791603b419c2d1f3503a60cc9a4a7351d3e8a61e6f3823c53195f58795cfcdc56c0c2011ae40a21ec7819d7dad32f5f9981f3d39e5f28ba85083d07
-DIST rust-1.70.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 06e279acca2308599b367cfcc105e9a1a9b129c1ce8d70e9c64f34f471fb9f28ba0b3ffc71ba389a8268d7f35fbaeadafb3275be29e7db8e8167ce1a828a3fbc SHA512 945a1679eea5fc89debe6c840b95314fd7be3f5ded9897965584cb53c3571b9ad18b1894fe4f8f82cd2373ee473c002c290ff943466f7d467357a6d56b62ce2b
-DIST rust-1.70.0-arm-unknown-linux-gnueabi.tar.xz 175940376 BLAKE2B 101b06523554df9f115f33dbace6a045fdad5ede100c7ed70a50da8a522e271708223f2cd5600fc4c2d5aa920e8179c9d60c24649dd234afc3fffe20d06935f8 SHA512 b1c3bd1c80437fda5e605aebbedc3f03f13223ab7fb37cf5808c8ccad00f015dd4656979e6f47ae65ef42dd158ffe18e9fa74aa17e80de76e73a8065efdf0760
-DIST rust-1.70.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 1e901439a083b6da2e62df19829c76a3cd2486115f855407f329b9cae0dff7a0c24b31dc48c13b28c17975cbc7f3c8d6073d7cc5629e78182f891d01e93d09a1 SHA512 c32b7f12c1c5cb5263444f6ccc5facf69e78a63816915babfe68e81be33bbf8a922618fc47fe2ec7142f8f04127fac89504b332cab5e0b29e028011ec5d2927c
-DIST rust-1.70.0-arm-unknown-linux-gnueabihf.tar.xz 176229396 BLAKE2B 4c3be748a110a0db483b5cc8baff433ef7b67af0c21be41a68a72b4307ac8dfa9717e066db3768204b03550484ebb4d7e6d45345f33ba797844132e1dbdb16dd SHA512 847602b101fe68e639598fd15592e60c8b4b2482077aad62b60918fd09c1928f1ed251197bbbbe3fbc5578a0e1e2abcdfe838e9c54cacba30e3ef2fa3d6e9557
-DIST rust-1.70.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B f8d920f2f3c1021ac207b1e3c0004e07bedaa207d463a60c9f2556d057a8e80eeec00565fc61ec9fae67e435bbfd902c4b54d2df0a710fd9f63594e7852498dd SHA512 0b7983572502d918241510abbe23ff913e5757f9a7d64e00701b23666a188a2324d70fd1840cb2b604fec813ce1883e1aa30bb421e1648497f3b165b9ccf4e89
-DIST rust-1.70.0-armv7-unknown-linux-gnueabihf.tar.xz 180820156 BLAKE2B dcaf472e5bce185f56a8ecd509ca0b829afe8203c5f3154c8065b0e3d9848f9f2cb6f6ee30568a52deebb21bec9aa8d05f7f2c2f42d584833a4f998ade707c94 SHA512 adb7d0fbabf14fc654e020bc8f7a2071d3aec7cdc64edb82739e78f0bd6f02d3d0cbcd18a648be24947a80008a1f45a1e35b9ad098b7cd31272ef985a502e25a
-DIST rust-1.70.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 3f42c11e20e1e86b0f934954c7d59b7b09af1613f0f10ff3295a3105c4f90554ff67c5c300f4d8bc1e113cd7631f10a4a1b9bc4f18049c97d6a3a66e6f1d0790 SHA512 981df55ff730f20ec415dd86f9fe035cbdb280d4cf742734db0270311f800db28e0688115937f7a9e525a8ee15adb61787a91d0a89bdefe950cd7489a7a09258
-DIST rust-1.70.0-i686-unknown-linux-gnu.tar.xz 204795680 BLAKE2B 9cf9b73b388145589fab8580bb6efb60cf731ae2dc98eec50abe819771778c9c27277bd62f89c4fc89c70089f499b7c0d02e4e4ba60bbdc31f48a3d534a4ef52 SHA512 a8001d2df7384f29783b4811896a3634d4daa5310d2b3b881e347c9dd727a621417e6e59ac30c6556e123850d1bfe557f8fc57955f4e8ea7b541cf2dde4735b2
-DIST rust-1.70.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 002ee6ebeb71b5178ce6e88d5a95db6e176b4262ffde775383187ce705d3a6bf3c756ccf975d8642efc71ab9c90c8540cf6cd20501f6d2b668d91943d5a6cd06 SHA512 ccd6b486a000ccbf4f78ba0863e926c621d06214452a2730da8d05c70972d84bbcb3f49005b23a9acf82e31cec32ea1672fda8c091c04cb70224cdb5740d7bfa
-DIST rust-1.70.0-mips-unknown-linux-gnu.tar.xz 155096952 BLAKE2B c19219093ae7ea268b847b5fe0f20343d16e035c7666a545420473214fca6e5a43201421de693deec721ecf94c8d0ca44148ff7359184f5d07f94fadcddfa8b2 SHA512 8c5178fd56ca57af90ad4efc1dc2265b185858d6fed1e7494bfbd054c4849337af08c0b4d8e99eb126b9c8551800ab5986764faa4fd782abb56ae85b5a6169b5
-DIST rust-1.70.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 49e8717adc826756bd7439cb8b8a5d62d7aaaba7ef5ace3f8cf1766d04cf8831a69345ba10a9804abb179fc23a6cd9b2f88fe3277de603ba2e9ebbb7e2c919ba SHA512 02c33b2d80c2b40f013b4a44553e6e8bd84b9df748718ac3cf7b2d6a0b33a1723cac2e142ba80c38195533cbc907b621c4b89cb7790612a175f2cccfd3d508cd
-DIST rust-1.70.0-mips64-unknown-linux-gnuabi64.tar.xz 152952764 BLAKE2B a65bab1e6284cb81d2e6c03d82ca103a6b7984925f85d45caef0cf2735eb8156f9bbff31e9265b7a94827f5098895f7a09e05360e808013779fbe34ebb4de32b SHA512 4ecd8a3155ad2734bb996473d03b346dc8022b89943e1accf8a81348eaa1965fe9d289c5431196c7fc387a945a9fa89c9c2d9ca244723970b6dacdc2b978c453
-DIST rust-1.70.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B aef454db1e0952174c78d0341aa8fc3d1aa3f4bb16019151589d0c377443d61929a03d8b5891133cc4a29d93b6ca5195a0adead6ced96af6a0eeee88dddd8e91 SHA512 6f50a9f0b32e3f6d14039b3f1a2bd13a912d45cb1c297a8af8836c4be6dc9a5590f3f09c2f30132e7aaf9b0e2ea5d356c180462c6054888f6e6ec58b0e99f20f
-DIST rust-1.70.0-mips64el-unknown-linux-gnuabi64.tar.xz 156871924 BLAKE2B 254910113b718725dde06d4350a366aef669662c7a52c3c1f13d2bb8cbb59a6d03bd04def02c9f3e6bcfa0119aa994e708ab8a808e6f4abdfe444af3cea6d5c3 SHA512 333dca6baf1bf580fe028cb5a2c261beebbb906a027142e36a9e93b7eb0728f01320c8a143473829e412524a6d958659775cf0972f40b87ebe3c664e44ef38a8
-DIST rust-1.70.0-mips64el-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 2ad85a65706830973b380eebf6807092853f4916e44d265b5822f286541981895519ddf863221bcfd7c5789737ea8e553c50dc83ec3e8b43cb8d04d4fcbe574f SHA512 cbc2d658d041d5437db9e8b564fd5e6d8f7ef130157f79aa4a92000f562b40dfd40cbc350553554f5e6bbeac347c9704f72a75ab06cd1f1f3a7031ab64764f9f
-DIST rust-1.70.0-mipsel-unknown-linux-gnu.tar.xz 158491280 BLAKE2B 299065eb46c14e5243450b5a4bd4d6bd18a3cd80331001bbccc563b4d2a52dd051d1791b5bb564c648b0fe4df4fdccf472d43805bd71c3e7cbc1bd424a857758 SHA512 0adbb98062cac36bf3a59218b892a3e85917a230ff07fe371069e1eca0a62169874655e53f607ae100ed998f6c91579faa1cf36f5944ccc5d1b28fa2ad456b54
-DIST rust-1.70.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9774d50e76700cae25ee51ad9d1a3b718dab9a4be04d0006ff55dafd9918f07cfe2fe5a83b45ee4934a7e0f0b661c4d3838331738a9e69cc77e6331d1b3e489a SHA512 586f3e7e09226d9e5bff379261b107a4ce75614aa53e196cbbb68b7828b25eb9a1743c4e667c4f57b6269f93074394c97acac88854fe89f545a5acd6a233128f
-DIST rust-1.70.0-powerpc-unknown-linux-gnu.tar.xz 174738376 BLAKE2B acac25164e9b5bd7335dfb0249588abb54ff02b012539f540392cac3ddbfd064e9ab000a8790c1d7f980cbf7a9a38e19574aa83297448a48fe42ee1aeaaecd8f SHA512 1a369e3a63e658a86588c6565f36740069417b0e2a207584da5b32994c801362eda463d8a7de9676adf42a8476a5def4c7363150eea7d1a09fd6f3c298279c1a
-DIST rust-1.70.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ee5c4079fc9493e78713c54540e69047a05f41246f9f88d3da422216fb04d3e876b25ec61f19b7de02f1cbb5dc3aeb7e5c5cd03a5c1d7ff9717d7e49f660b245 SHA512 1b7cb72919453ef5c272ef62c8b76937362dd56a70e292439da1f28f6803ecd3794bdca3c433ce3155823d524ac70a9873c0aa5b7fe8b59f06abc67935cd8450
-DIST rust-1.70.0-powerpc64-unknown-linux-gnu.tar.xz 172874164 BLAKE2B d0c718cfcd533b5aca653144831c50aabd6d292e7cdb8b53be768fd946de91f3274eb07e9c741145fb9a5f632d626629b6d4989f9cef203e240382fdac3ed8f2 SHA512 645c39d447e92c18705be0db6e5e53449fdac6fd0cd2262b8c33dc9fedb596ad3fb3f2a172ca5de019fbaa6d48acdc98c6c742e925c23859a58f27094db82179
-DIST rust-1.70.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fc97b83827d351e0ddb95e3f844bdb8458232c374d23fa656ae6ca35a8db34b54b8ec47d18cb316410698970d63caf4bc028d9ea68825f83349320b28a7b1270 SHA512 a21553e7c4b28575f15cc28536d5af6bbc0be6992fbd7c6cf086b5318fd87de60181bc019ad264dca1dc3e59d1091ea0df233db83d69a267a91db9e22847a4ea
-DIST rust-1.70.0-powerpc64le-unknown-linux-gnu.tar.xz 182570028 BLAKE2B 2ae544c9006a850d457ebe240fbdca58905c86cb26be3edeaa95aea02a3201c94852936cf3e91c052f2bfb5960cf923f3bb4ae6d6d92493733f4acf9e70c71b4 SHA512 89cd4d1118ff8f5fec5e148f41ac9cd7dcb76b21b67b1733679c8fd9ed6f726239a22fcb45faf2ba45bb16e04f679bda9e29fdc8d3da3a6ec03f7a6ec85b1927
-DIST rust-1.70.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 234a2051888eeccf772d9b7f41ac6757453c29cd736a2abf1b3d1fe22dd45fa9929efbc501ad429b6e44de13fccfa17d64ce4beb86879498c157b0856bb3eae6 SHA512 48ccff718902cb4d78663b69efdd16925b4df21b735c373db25eccd8baaff3c6dcc5c49ae37d583cdd22f44df91244e34e8463e65db69f8ee6ee96fba90f1cf0
-DIST rust-1.70.0-riscv64gc-unknown-linux-gnu.tar.xz 167304092 BLAKE2B 977fdd1fd305d4cb405d18a21719e37928c5ad0934a62c53ef395c067afa75eb7bf6fba5c9c7004d1413cfb78496809d1425fea9f38fc33916fa7571cc9f687f SHA512 2b19f66ce4702a19f7ebb8329569031c4a5e2deaacd161ba231114780a565fd8f1ae0b3970e021da6b7b0a23b1f41ffe3296f2f2b1dadd5de3f533308ab02d95
-DIST rust-1.70.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 26af74d00f9f7c53a15f9c39acef5364a1cbc7df2380ebf43cab3b02240b8fe446c200ef4652ea8684f0470035d8352accf5e0ab5b34dd9632b471458aad2516 SHA512 93ffd6214db7e04e2692f4e05bccb7140c81378da039317f2e04587f1403935abd57b8b9bd5e12b1befc5dec10898c06a508b1ebf83b845564b9b8a42d7041ac
-DIST rust-1.70.0-s390x-unknown-linux-gnu.tar.xz 197741656 BLAKE2B 7d31b09ad69eba9ad1a2b7196679a439907ee80fa3ddee9014f0c78505ee9e1c93514e7f44f83b0ac5ad442c6e7f05568b0ea928a89c5a69601a1a935d2d253b SHA512 3fa31674a3ba33d41c7db2b33e176edac1bd67713b7b52dc51eca73d4ed1821a2a4ecfd2545734fecb57271828ae0bcc7e1c4d0883821b650bff99544484db07
-DIST rust-1.70.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9dac941acb317914f4eac12df601b442e9d9c74f13048dd8120d23c3297e7f5bc77618fa8eb29d4401b141acd59d20e87e1b198f9997041d4113de9ad39b59cf SHA512 64b8658b275a53b52986aa967535ade73009e833fdc89c4e225f3139262fedbeef902702e8e71b18380a0826afbe7dfb1afdd5800bd5f810e66f2193c4de6501
-DIST rust-1.70.0-x86_64-unknown-linux-gnu.tar.xz 163456784 BLAKE2B 49a8397a7129aa70f5ab3876613c9c3f25abe2a48fcdfaeec0bf030529f558dd6ee221bef18ab135b95b2e8bdd61349e3357674a794bd08e4539c0fbbf51bb3e SHA512 8950c85f03f2e7af23c18e9be0ca1cdf7074b9be8d8c7b26102277c150c598bb7d5f1f74400bd70efcd42b38f68c96c7701239719f320311e8b131191ee77512
-DIST rust-1.70.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e5fae8b3c87f54b39d922fe0c7694e0ba115ae34a668cc873390fc9e4638baaff5b6d1b4c67228c6bfc57b4da9bf77d6a452ca12bf6653d5610895b8ba19d64d SHA512 352749df741287107b966fd603113c51e82a426a7151e224e3a8d1cc7bd4658ef86147f6fce62caccd7b5779d9961be72cbb618db79a2850e8a8c4b0bc229ad3
-DIST rust-1.70.0-x86_64-unknown-linux-musl.tar.xz 233692884 BLAKE2B 295e815bbee6dc135ad17dd78801999afa7880a7a8f5ad4932a7580f1b03d50b850bcc3eb68e9d679e0a2d68392d446423ea752e47bb22d64823bf3222e0b377 SHA512 5e42224e109d525a321c107005660059ddcb0414392abc660b80fb09a55c936c79215989646be0aff6b0427b2f5d82a2a19ec3bd3235883a2037575808aeb69b
-DIST rust-1.70.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 7c5be81109607f191f339cfef87c736e2d35d4a045511036ee6e9bd68f22fbaae825ad5c463b0a5bf29606a8b9cf488172d1338aa4d034767b0f59243613c250 SHA512 241863164ee1a0d702080c9967e2ec5bb7af9222236316c8857b89b517fcbdc362b26ff3e362c4be7fd2989d3fd2aad0a0476feacecd2604855dfa53f5f1af27
-DIST rust-1.73.0-aarch64-unknown-linux-gnu.tar.xz 216033148 BLAKE2B 78bac094c78d68102cd5ca6a7bc9ac8a51ecd3e14cc5c66fefca0a0597b5ba439c22d69a323a6e7cafdfec60cadf0672c91ca5f85065ac8d7913c83437ec0256 SHA512 58198ebecaa4652e0477eed6ad2c29524e7a3e991ed437775281ce526c8485b2a1a49c75ac6fd5bdcc6cb997cee4d1b4d82fba49c03ad38bcafa764f5a9bdfb1
-DIST rust-1.73.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d4b85efab3aef10fd6940630ed3cbf6cca12961228482ce42cdbd4c0c185c55b9ccecb1ca386e7a5c02fa33b77685dc8e2d619ecdec0cb5afc7a01402be5a22e SHA512 b7392e301c00e2ee1be692e6b5a44fdadc4b442979bf8f09fe71f80d82b6f395d0505621ba8eb54fe6145812f7f9c0d2b278e474d6edde51a2318cf27f5080bc
-DIST rust-1.73.0-aarch64-unknown-linux-musl.tar.xz 197525740 BLAKE2B ed84c438426bb0fc9a5a320731ae448f242b70a764d67e46e53a37f0e76262a183886e83fb27166e030740a27e6a79ef1c8f50bfc4a2c9c5d915ee5fa74a251f SHA512 b1a3007217dbb771e459b92a2ce0efca3babb34e9901cd44006d7c8ca92f48f67bdb877d3ec4710c58ad1645da4830a52cc2062b6b5a9827b8d57d508f4029a6
-DIST rust-1.73.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 2e2a965b37bdeec12fbe3f605c4bd10bb51adc7dd1c2e2d185b7306e8c75415d678b1bd83eb68e8a05099eb77958a928e867f87b0a4f05b5315b89869f120a64 SHA512 b65b08a68571cd0cf17f4469c1eb95868e00e6244e30ac0d3c30e0ad6abcaed143a7389002c0f90b2ddbd79b9c9c3856d66387f701a8d0eb9f1683ce456e4910
-DIST rust-1.73.0-arm-unknown-linux-gnueabi.tar.xz 180327600 BLAKE2B f28725f19259806f934298d2b6dde6bf59e5f8bc3ee0ad9b1cf0565a5383a31189170f26495b3103bbc9d86d2ac9b83147b3803508a53b96eebd214d2b0aff90 SHA512 27900c5faa9076db40cc85d973274a09ff44a76936312f905a3d9751d0b7480dc260ed3cec91a65bb78382c67208b28978e2079e28a47a25aa6279d09adcc045
-DIST rust-1.73.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 03ad365e06dbaf30d4ca2d8d2d3066d4f956ba5426f2c5b601c3830d9b0741b3655d26eafb3853b41ab01dc377065ca330f9d6fcf89de066c50adb0c9c9fe3bd SHA512 ecef5fe8359d8dbf23337398c1cb90a269ae169a1cd08525361d6f39e0a24dd22c1819c7ee0fe3828431ad492af89d19bf8c3c7b111f7925831362e2050d1040
-DIST rust-1.73.0-arm-unknown-linux-gnueabihf.tar.xz 180870680 BLAKE2B fea49832d8eefa7545b76114874de3d653ed888f753b68cd7636b7a1462bb564e19bbe37a5f3b94cf9a06640bf81f6fcc97f224f0f3e1745eb19f99ae193d3af SHA512 3648672256182cf6c73e31a05af3084b996bf25e1ccad8b96d68501e57a4ae4cf57befdf84db27e3e1a9fa3af051117e94ffcefd14246794e7528020bc26f4d5
-DIST rust-1.73.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 7046fad305aabf192a1084328d739754bf76c27fd3f1efcc4be36047ef6c4bf899ef8ae7e3cb359e23578af4c9a25d4e1f453ed8695ba33c630d46351234de69 SHA512 7e046b79d4d0a1bee3c7c5f6b8e3020a342a39e9913a24ef672aa1d197e63905653acc24652b720a4b996029661503e2dfc3b678f297ce15c548281ed772ac23
-DIST rust-1.73.0-armv7-unknown-linux-gnueabihf.tar.xz 184898496 BLAKE2B d0b2ce03ce7ab5e2c843989958a00524fc59000f62dc07f9783f4b9f22c734b67b33e403e3300fe3350322e1ad2b59e64e41b339d5f5c258b29dcdd98dec9c61 SHA512 ca48bb9b683058321b0ae770faf2fd607e03ff5e9291626ccbeba707f5ef8c211c29b9ddf52dfa11958691a127f95dedb742010018bbd6be2fc1d7ddced44190
-DIST rust-1.73.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 12e19ff5f586a7f67bf7e4f6ee96d919293500bbfb3bec306b412a423a3dafe94fe63939f371a644e1d3a1575a6a21df78f11ee63a8dbae9af3a2ce6b03d5104 SHA512 9e1f316abb8f7861fe1188aba1880732b957514fe58de3f10e340c430c1ce64e9627feec1a655335d33605cc6f5ee32830159a8215c5a233f25ebff18e2c7bf7
-DIST rust-1.73.0-i686-unknown-linux-gnu.tar.xz 209918920 BLAKE2B 545c48dce0e275228e260669d0f5b93977a9c7a02237d4ae9d84ed69236f5e412c5980e2c5823478949214c2b775c89c836bbd43e25406c20fbdc52cee328240 SHA512 a80742d14acc1d018ac35b77abba4491b5eafe28bc3173527c865b0e930572f2a92d4fc459db51c34600f8288b20b5790346b5f8e6fbdfcb080f1f14f44a2db4
-DIST rust-1.73.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9800a96cf8484b0370f343c2fdda0762bab534fa7551a7716e7665bc90b651207c471ef5e06b2d7acb766959155b5d593b375487b01cf65e980ebc721c3a4042 SHA512 dc0c25c270701ff6509bbff3fd173178ec8aa3e5cf606fe87b803e6f1279dde3571d22cf0c7f28bb0ba5410c08a491f9b9b937d0aa796c0ba30fe43f7e381c1e
-DIST rust-1.73.0-loongarch64-unknown-linux-gnu.tar.xz 161763960 BLAKE2B 1ae7019055a4fb457733826750d2c20708e7d8bfeb8532ac1af5027387bd1f992c2ab1fe08d088b07581b0a81d7ea7ac8e44ff077887297a4d4da2a633089de0 SHA512 9840e1454506e3f0880e8113040eecd1b363bb78371386aa069271e18e70600f81e19358539785a3bd1ada7244b4830362e6f0b466798cda7647ed795072342d
-DIST rust-1.73.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B cacbbd7793d6f693cf2c1211529cb4a0c888f3ed4d8674f610e034a7216fcf7f4ecc85331aaeaa89ec02c1412a62fdbda29a3bca6faa64dee0f8d419d055b41d SHA512 64b8594f2f19151927f5b74584822a78b15da97fc8f5e4823dfc222056a203ed68ced70cca915e1694ea6b36fdef5697e5b56062cb761a0d9557e5c08ec8ea07
-DIST rust-1.73.0-powerpc-unknown-linux-gnu.tar.xz 176694620 BLAKE2B e8b43ea4b9ad78ece530985afdeb140e0e960213272857cedcfe4e9262c190c7d26ce77d46fd113d2742cb159442c256a081bb6cf23e6977fa5ca8c6cf21ec30 SHA512 03f889dad45d1bd9ee4af52209af3d763ad5362cf1a617c86b050e0d2fe00c39edc716fc32a83c6e45c118b97d828c32f682ffec5b32f215d6694509a885772f
-DIST rust-1.73.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e63cf87a2fb0584f2fc5c01a98dbb12bd9a7f4aace54a08505a0b4f9e7141705409d8bff1cd3a2d7cf40504ea274f29e11624ba050d56e4ec2a4e794fdf188f1 SHA512 a86db43be2a2fd92638e6355ac4117e707073fbb98631a8b41064e5b01e12bc1d2c594547778d9c99ec3e24c5c4dce6603cbfcb3715b11aef9d2c2758ee8b7d6
-DIST rust-1.73.0-powerpc64-unknown-linux-gnu.tar.xz 176165132 BLAKE2B 3750ef413de00047fa957ecc6c832995e072b58b78f994bdd6b8291583acd0a4ab54634d4e4778456bce6420135c83e9961aef5e615fd62806531686e33a31d8 SHA512 9f1a669f7d532a831df76292916493e1bcd4a56d95d3819c477898eb0510bc8760d008fc1e7d383927f8afbeff826b0598f9bc4067f692f530856c8e444f44df
-DIST rust-1.73.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a1c1db86107b48a554d815811b518f7b28abac90cd08920362643a538670e7859ce43d179de24551b5e4409e0a421029e66b8374b27ddd699ca68fe0f47b8904 SHA512 04604baa0f13693d4bc7a0729df7041a55c0cb9efa11ef511d29d2b5a50c3575867c1ecbb6a23a030dc014876bc9c02e370c8d0eb531249833fbb52dd964f2b4
-DIST rust-1.73.0-powerpc64le-unknown-linux-gnu.tar.xz 187628140 BLAKE2B 1ab716a7d2e536ca3447fc0aa2751d774259ea2e39ee3cc150bfe11967e57bd85b484cf050a39cba717a0552dabe6d1aa79ca7dc24abe4b43d4802fb9cc1bc85 SHA512 d6566978f47067b84715ef39756721ced5f5430d5c92f51b673db39d1e1666a8dd933e998d4fe3ccbc36ec47c62b4fe7e335c4e3b830d27571dcf9e534446d0d
-DIST rust-1.73.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6b3a29cf580d750a17436036d6bdb2457cafde123c289205aa239457afa4de10b4b97c9f3ccc23cd296a1a388802ac4f696c71e45a2ff7c97d15d63f2a04cba3 SHA512 5840b7986e9472a4907ae01eee0c4a40664ce1a29ff159557766bcf50da773d246a74ffed2bc5bc735d255514e0daba55d10bdbf7d8d2c3a6aeebd704f3009b3
-DIST rust-1.73.0-riscv64gc-unknown-linux-gnu.tar.xz 182202208 BLAKE2B 836d89e6ce276d100edce8016f5a466b99e8aff2646be7e58dea2f38678e4fdb9b93fff1126573a112e19cdb32ee5290fa58df0e5cbb1c309e65927ae1439b52 SHA512 c49031996ecde5dfda4b8bf3869b37ecb51c89e3fb8f69d3d43d865bf2ed6dfa928f0239460f0f3c7b7168eedee9b5a957d956f39ad42fc7276fe64a649ee501
-DIST rust-1.73.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 119d6cf2b0b4f8950d51aac6eb865619412e513c6c87f31702572cb2120a20cb23133a763036cbac0a9977a20dccfb58a8b034d19d13892ffbde05c01970ec92 SHA512 578c2576f66d0ad344549a94cf83f80551dbec7ecf2ff8616d81cd1eb3a7154b89701a05caf6a21649361ccdd1abfd37b33de935e91dba02dd914945de3930b5
-DIST rust-1.73.0-s390x-unknown-linux-gnu.tar.xz 201224624 BLAKE2B 5f9f28c5f511a3bd119233e4a2b882119b18a42a8c235bafc57f35e365496fe9d6d88c6278e014345f76a98a235ecec31335178a6b047e5b2188d391ba465e70 SHA512 e946192961623be1e3ab4b3e2c86f16f9fd716ee3ccf88137e6ed7ca92b9e8376552a9b46b48c127f6be76a1fc7b240d9b8db568390fd7d81605634ebb431ea4
-DIST rust-1.73.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d05fc43c55e47b3a32e8be8f97b072961e920ed09d368968d1121dfaa0dc36e11ca61a0b03df2f708d0eff31a80367b5d465434b851da4c8ff00ce9ecd577bce SHA512 5950cfd08f49bfd0f1277e2f07e333e7188d65d6a61d738dbe586bde8f3647862ef6d6ca5f52d74f357ae3997f1554a2c7cd0399392cde7ec32b1f2aaf8a4c6b
-DIST rust-1.73.0-x86_64-unknown-linux-gnu.tar.xz 161588916 BLAKE2B 10c1c57641e2ae076c55826985d8ef43034a3e4b6fd15d109f949e8bc655dfb16d45ce86482992cc2aa3f4000f3432b8be17019f9f5d29a92fb42c37cd7df72e SHA512 b70886b5ecac41a7e6ea85d1b2d1aa557a0395d3f8abe4b8d1ad91f3b32ac9ae73bebfd7a9c48ebef4141be041cf5bdfab8bdb78e1b4969afb439daca203d5a3
-DIST rust-1.73.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 22e68ec4e6bfa49c15344675abd20ef9449d928943dafc64bfa1cf78dd36ccbce4802af8d4adb84762194dabc512efa74655a93785c127e6942ebeca8f6e3303 SHA512 56e53a1047a23a7f37250a785de2422ee2a3a72fdedb9a02530b3cc1cd978370cbbfc0e67d75f3d537f48c6c78f91d3de949ac2c9392a79404609b169cedaa40
-DIST rust-1.73.0-x86_64-unknown-linux-musl.tar.xz 236190528 BLAKE2B 062b54b31742bc846bdff63fb38be3a3a1f6d2f061da26cee6a0b089feee995fe3dbea536675495ed75d47d657c3d4bf04e36f6752f59f8308f7eb9a397d6e38 SHA512 abd01e0c98a8aa447d01613e24302ca81a8cce7d41179ed60834a39ed1942de0459add3c498a63f94bb1ee8662a2750b375b49894e3108da45f47d3a643cfdba
-DIST rust-1.73.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 9822879d0f14eb5387a623d111ed7a3b1ff038522c071608bd254c4b3479da8a1e9ed78c69c267c1156c45a9cbb2f7db00d123b85f28021a743d392d1cb65c75 SHA512 ff65fd3ca47afeb10f7434d8d4f91b6649739167639c3eadf178aa1339553c5316bd0bb393cd53fcce17c126dcf8db1f1dca6e87044b14762bb20ed8f5a500b7
-DIST rust-1.74.0-aarch64-unknown-linux-gnu.tar.xz 216169516 BLAKE2B 830b97f710a3249c4d1df6b37dc9c429cd8d8c8edb0a77de8d04460bc2132ababa6777dc92b82b8a3b3839256f2dc522128d31a81c8b5ae9820a483368292cc2 SHA512 40a98f9238af1a60a0506e3e1b88e1d61ce68ed6380c78c77b638b1fccbc8cd0e39d7c042a70dcde454a3fe95b6c49950820f728b847dda218fdd91fef7066de
-DIST rust-1.74.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6b15fd93514659cc64759b7c7c3e26781b87f58022d91bbeacc64906c681ed37b825031e9fd78051671b35c5abbf4d76c11e320742d5b482f36e98ed9d8691e7 SHA512 2480367abacb766e015c3287568cc2ea2f186b48cafe709595641e40471b4da1e29b5e41d2a3b5eb7d9f9329725e46e4110800952e554e84212e3a1ad36f06c5
-DIST rust-1.74.0-aarch64-unknown-linux-musl.tar.xz 196821888 BLAKE2B aa8444b243a670ce5130a0436bbe100b75912a03bf8b3f99f5dbef9b3459fbb3b6e0d0fae6e9d9ec368e95b20f563a8821ed7698cf699b169887dbc63a7a71f4 SHA512 22255c52052977b272dc740853359c15e2764164b38afd473830dd69830d4897d60dc037f0e6190df8a31ee22f80d69f60d7dad968a41b91f23368328e11eef5
-DIST rust-1.74.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B f3ab9235640f5314de7a01564fa60563f123d7d4d8755b4263a687fb22b4d874cbaaf9184436e62c8e65d23c64685d33333f3585dcc518fa90229d1a045186e8 SHA512 2ba35243e3d626347a442bb9b798e698e654d65d81d3d2391b791f33636a74e51b2c5f6270d37abe641f6e243dc70169e990e9fe1ed0392936f272b65216bd08
-DIST rust-1.74.0-arm-unknown-linux-gnueabi.tar.xz 180475660 BLAKE2B 33ac40eec4641d71ed03226dcc0cef62fb4b108835ca8532110237c41c5c1eaf5f2a78ae3b97fd69043898439816702df6d1ce8bbfea36622736b62db1de7d7c SHA512 4f90237267516870a9d236add52b70c4e3ffe2b12ce0280faea4f740aa81b0ab8fdbb0e6e58425c8e33a0795a4bd18cf766d222b9d6f8ec9e972d4ce10ac0640
-DIST rust-1.74.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B cb1c623548cd2dad04ba2130883fe6ca70466ad8e8d10a0bcbe42ecbf7f3e10c5f62eeccb5300d133458e26c9b340ea9f5aeb3b3bd35420e39ca4c2a751946d9 SHA512 eccee9e6ec905d4b30b620236bb2c3648f4c5e00518c2e1b0ad5d009865d56abfc866f1a100acc8c7ef559590052cd858cd247bd091d31821b27bfef00b9487f
-DIST rust-1.74.0-arm-unknown-linux-gnueabihf.tar.xz 180651920 BLAKE2B 34be0e8e7621bae3a7ae0c0c5fb94df55b42035d4a6219d773e109cf8e17082c81e0b8e831421f702bf269e095b0fd6bb798a8ccd78f12b099e5cfa638458572 SHA512 c6f7f9aa592985206a3af47f8d61e094e0fe3c714deb6c569a8a0bef8f5dd897f8f27ab33dd184eb28a9267c877f21527dd421baa312bbdf08994cb69aeb6ba0
-DIST rust-1.74.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 81703b2035f44dd3272cce97671205d6f838f1ef09dc22e25316567119da12ecae6c38d5cd54a82f70253a65357c60cac3d2c6c91ceb90614baedb5fb3707306 SHA512 aa7d6320d868f4b05274a964570f6d1e5bb4b0f72da0875d43356ff2a48a4d1a2605dce1097e88fdb3cae502c05373540799175bf205676088654a0288718995
-DIST rust-1.74.0-armv7-unknown-linux-gnueabihf.tar.xz 184856340 BLAKE2B 5002309dbc31916ff4984637c646136c0be0ff682d105f579f3e66dc3aac51feffd9fe70e1e4020bf554155bab88fceafd0a223ff6f2d8d3c885233b4592303e SHA512 8beb260a0f07b11b91a21ff7a6bc863d412006a4b7a582c769ac6991ef8d93ccbdf3b3e9921ba16fd2d3c4354aec706298fce182c910c26e4fcc61575e6f6213
-DIST rust-1.74.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 6945a1ad0917f5cca07e1d8e292644054a613ccbc7d6d8d8b4bbe1d0e580bd1e7e40c62383fd9ec3a465d9af1db02f28eacb98bfcd5bd9f4c4431f74824f1a7e SHA512 c3652f8a7336e5ba4c45a31a089d99fd9e36bf8f7b593a3bcbb728a24d3d76f81ac908b0ae97905b27ec0697364ce01ef6adcc1853756da300989b4ab4bc6d15
-DIST rust-1.74.0-i686-unknown-linux-gnu.tar.xz 211708688 BLAKE2B ef83549b86e4da0c8ea61d14dc302dd10459798fccabaafaec7e8f24ff2a4695e4378706c48092b8afd3dffac7d995e53100bf0d5f3caf73dcdfda764cd3e656 SHA512 b97e1ee46d8ea20af6a61ee933c66b5314f55c3c3879bd8101943a769dda3ded7c91899fb7eb26ecdbe1f01f35e9784398cb85d494b03bf0673d2c1c8ed27f9a
-DIST rust-1.74.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9a0916d77499972812edda89c04563d41e899a68f73fc8867d878e938ef6b37057e97e7209b033d6624674f472b9e8441fd89bc0a82a9ec17c85381b07809367 SHA512 562931b7a78a92ae6f07e502fb044c1ed45ffca94690cf8316c55c85ed37ce426ec72b526a10c4da8bbe947f1b253e618338028ea064eab8bc446ffb291b5aa6
-DIST rust-1.74.0-loongarch64-unknown-linux-gnu.tar.xz 161629420 BLAKE2B da3b11b1c8ce2d3e1f30885279e4524f795bb8680f0f076fc154c7ffcf067d5933f2a89c2c5dc142859adebeda9eebd9559193a5829a114bc670262872069fa1 SHA512 a3d75491371d74d14d5ea3e1578040b1baf67166c899e0c590599d1a5efe5d6fa11c6efa9f2525ef2011650cf62d7e1384f71f9bd33357296915a9564b2f0c3a
-DIST rust-1.74.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 58d483bd3f21344f3a2da5ee4a88b2a536baab0503d0fa52f7c97ac7f6cee308401246cedc5b2c38d7d6ecf57290e2e0f48f8a84c72cfd5aca7e2d2310723963 SHA512 28fc0773a95b0822b262dbd48f37b637ec95cfe7694b2b2c9d5b18e0492c802d29dbb0013382fadf2037250faf9b3019cd38882102f864136be1e64623c89882
-DIST rust-1.74.0-powerpc-unknown-linux-gnu.tar.xz 174911076 BLAKE2B 3539adb3fdcdaf6163a58aeaa2d5f1a7ca5e13119d19a559b328d2e994ea5c0147ffc410391c6a7d2714f814b4254d847791a3737596e4fdc97defc7e3838000 SHA512 95b76ca4f0667ed63e76b99ef7b3667d88e13592de941a6cdb85e970ac766667c2d1f7161e20e1d8d63d5968fd5c82f2c0bce5d84f11d59b438b0ef16679faf6
-DIST rust-1.74.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 58262a22b6a589bebf51a494e4bf0217b58cdf214c2eb0bbfa9d9fea20f0a21ab0ce76271772c452fc2d5a0b049bf09c84b342eced0995b9456e68747aaf4c63 SHA512 3c694d9ec22c03d07cbd64dde1bf5f532beafdf3d974e77e5fc09adc1484bb1572625d62fd1e0d13613c4b63c2efd82f58ec9e4a2a8ff87b2527b2da7896e703
-DIST rust-1.74.0-powerpc64-unknown-linux-gnu.tar.xz 176265620 BLAKE2B 2885cb229d612e702e47e7fcbb18a60c9b5aefaacbf14ae146b3078b53e3e64d05273268d4e2e0c61dac1f7f1a5238f82c0ab7e0a05aca25478e661e6f5c7600 SHA512 ce6c5eab3de7ce6800137aa02c19a9c1513738af140c9cb1cf1c89f33f71de50d022a6af92eaadb26898422c7beebb6d6870f2d766e3eb4e363afcffe75a2627
-DIST rust-1.74.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e3c29be027c55bd51b1520c9d573b2e3c6b8c094568d57b940db9b895532405717676cfbbb7486b78fed6d3c79453a760132ffe2b2b86bfbf67a7872809cc5ff SHA512 baed4414207068429bf5c4bf445650936bd1ace3bde19f8fdede269a4204e37964c6b172d2d347fa93e472128fbe7ae5696be82d5ef873aa6a3c588a1621f1e2
-DIST rust-1.74.0-powerpc64le-unknown-linux-gnu.tar.xz 187255560 BLAKE2B 29fd06bd7a3f0229b0c1513045932a7786ce10501469f46ffaa9d747d7badb63c69a0d1f13ece3b09ee811b492e1214ad4bf2b875269caf829e5a6eea449f0f1 SHA512 96a18b9938f8e7c6772a7215d866f6bbbb28d379ebfe4f0fe0e32fcb4fdc5f3b7441edbdce3b04fa30ef91f8d5c2a2c1fe75ad0cce1ce1f2ed75cbbeceb1e64e
-DIST rust-1.74.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0cd802412a19cb27510c91831f953ece98b0ac65c8ad6f91e1b136694403b71b1fd29aa8eccf45384eb59ed72e7a6e4218226826e243d1bd232444c277f8f0e2 SHA512 a73c22b8b0a319c3b0997e463f4cafbae8ce3fd5e66d42db07aa60b6e366a92afe640ac36b0a941879df3510d9341b3cb3c895e2c864c0ebd4b2bab7c5426dd9
-DIST rust-1.74.0-riscv64gc-unknown-linux-gnu.tar.xz 181305504 BLAKE2B 708e30456c32d7fd6d8d07e18bfcc73d339e5c6f5ea92fb3958b538c8a3bc4b79d02c79e2de9a5e2480ec7ae6cab6a36d345cb183a811d738aef0536fd143701 SHA512 050ac10adbed179c646c6348fa43a1bcfa18084de444032d8c064b5f1a7b059aeadbf9e06a75079b2dd9170e1cb078205c2a675e0c39fa694c813f2da2d616dd
-DIST rust-1.74.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a3be1f47f23d62f46b6c2b1dae6d07243c90690f3d097b24b4f7b2a22471d39160593e2703b5baf6a3c701f167d8941241511bca5c78ba79a25da37387ea1cf0 SHA512 a9c4c3e22bafb1c53c71d9836873e84c6a1b3adffeb361394d584b829b5239df39cfacfbddb96c93f4ecf48c4ea98421da3c46245f32659aed49961198db18de
-DIST rust-1.74.0-s390x-unknown-linux-gnu.tar.xz 201169576 BLAKE2B c8d5b9d621fe3a1f3ffe28a09cc0660636d33c6aba5463a99570d4061d736847b95cbb7bb3cd0c2d6a007aa8c4b08364867a5b6d4d12b7f34887327ecfdf041a SHA512 96c00ceb9bea19637d92151ff8ac289e0bc62f05e08a4ebe0221d08271a4e80e0fd628ef2c59240796dd289b6d16efa6d6191aafad1adb11f2d8fff92df3084d
-DIST rust-1.74.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 779fef510b53e24a6b20d868a3dcb349ececfb35f5e7059ccb0ef125d24361a8732e8459051a8b1e4da2ad1c6de342f15f857d4973ac4a1b9c19236cb66c4040 SHA512 bd266f3b6c09c73d400541a436890c85fd7d7b82241ed9952ab41481a1f19df8b477228a54ea4c215f0313aa7515d6b659e8ebc78f6186ac2b9fb2ec04cfa902
-DIST rust-1.74.0-x86_64-unknown-linux-gnu.tar.xz 155920616 BLAKE2B 6213da724e5052fd72aa35816aeded0136c873bdac5536b8d6efd8e830d1db6b909313f58462b5ebeeab148ded4d29a36f2dd5439ac6c1d1c68f73d137928376 SHA512 27dace338e78e437d5b8214778f75e79dec604ca54023ac6046c6761ad02db4790f3df902589a934ef2ec7e162ae201f9a5f6b0bb2e688d5c1eca90462cd75b1
-DIST rust-1.74.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9d81f9c2861963a34b0bf9bb15a584db502d388b15f73ce98f78cae6bea0357403d9bd0e6f8ea427a9f4db5946ba7dbb4242e7fb4400b561b7431235f0dbe2d5 SHA512 e1e5e3850715379d30c557791a4eeba2bea090ac85e09a982579a703b2582eddfbc060e21420f418cb492e8d4abe87d5bd81b5acf6ee8bd17b80bb6e0f65b721
-DIST rust-1.74.0-x86_64-unknown-linux-musl.tar.xz 235589268 BLAKE2B d695695ebbb3bf0dea28b9d337f82d5828e6ee70cf7220c849a6008b32f2b590ff57ee35efd58d9a38cd17e0f77ac1187765e8fd6470e0ee2c6cf75f3e3f1489 SHA512 3a8d4cb87d1295b07f0ed48f6e01e69801be3c93744948ef0145217b0cb17581c11c618a07b72edb0945c2ffbe85c59ec1cfd99ef6a60c2e96486f9d5d04d38a
-DIST rust-1.74.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 0ba1390f67b88fc694df26df22c99ae40f56ccdffb479d9228a17a153de965f8c31dfb4d2c65dad4819d42a0b66b96ff9d3e2c404848dd91141220fdce40710f SHA512 efc779bd0e6fb41297a67efdf731abe3857dace889be284d8ac1e6c239a35749185ad5ac3b82c3b2e55edab3f0e51754c8e53e07d207cf8b4b68ede20cdb8591
-DIST rust-1.76.0-aarch64-unknown-linux-gnu.tar.xz 217392212 BLAKE2B aa587d69b5acc389a8d1431875f10f6261bbedb259a9009092e663a345fb0ac0cf3ad3459ca549a496853b8d760c7fc56b797ee269bcd15d54bc735cd1100fbf SHA512 ad95566ca7597ef64a03f614cc20b9c8d9b2fe67f33141b817973fa160c2be978511509fee79bdbfc74c50076a607e8543ad5bb4b56723704df27b5573b8d606
-DIST rust-1.76.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 86834b999cb0ad9de02a32a79f801d28268c986c830ad3f16274cd4c404a4305267c90b677f7a8637f2de08c766ad3555945f77da181906358e3d51b35e258b1 SHA512 79c1b258267d6feaecba18648a7eb620a570c99fb75e422d0a5b946a66f3a5bf6d2b41dca89b4ae79feed704d498674f36de368e4b228b1e38e3499ac8cd4f21
-DIST rust-1.76.0-aarch64-unknown-linux-musl.tar.xz 197852572 BLAKE2B 93985909e049957f80d4a14842c85dd14e5eec6d74e4e439479f353b44b123947c782856de86555262829d755a344ad01a94c41e8852818e727fba74620e1d68 SHA512 1f36245932d3b9bab0b99604085d886d9fd2e575e896e1c28b1771ae916466c060f4d70486e47200d58947147eb5571b922e175b1a450a36388c3c95e6537655
-DIST rust-1.76.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 50326fb881308300aa01f3783ec6856b7ab9ef80e986cc4e64fc5d6d0bcd246add9330ee5459a3ab5c0bd417d75c2b9486bdbdc19edf5a899dfd9e1ecf31028e SHA512 0e775d73bee5cfc70035db1d0fc4506d022d593cf847e01c3f09ddc48a02c4eb24eabd42391c3241cc05ca49b15e38eea0f56786a4f800df724753ee7c557ab4
-DIST rust-1.76.0-arm-unknown-linux-gnueabi.tar.xz 181085440 BLAKE2B 024b82d285208635dda1c6dd66f634d1b921657d3921c402b7adeb7ac9b495628c31b248ed480d4e52e55293815a686f9ee52a84c2407763de5b961962ca9cc4 SHA512 c6840b3368bed511976c32dd3b22a8d1341c002843958a8cc8666c4f19547eb71d8a90946c1c075cf8af50187c1f14fcad2df488d186941d00cfd6b638b27dde
-DIST rust-1.76.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 71f2d3a9de1343eb96a75a7eec3d8d4ca9a02e7ed01a1cd2f4f352855dc6d58cae5ffbd70944d7d1e0c7559c74f8d8a25f3c1c3a14c2f00e5797d0f142b25a12 SHA512 b3dcd4b3e2fb5e5039b7fe654421f7a2f72ec5ebfa841589be715bf0a8ff4ff0a3c46a25d0978b4206678a2f2410c5ca69146f6e3eaa4b02a6231589bb099ed7
-DIST rust-1.76.0-arm-unknown-linux-gnueabihf.tar.xz 181168340 BLAKE2B 8d48ed7c79f87aeb91676c3f90877fbd396341130276e27adf42a0a0e5d3f7ded34a271cca34f1c0fa7f37d5666ba3f2f16eeccd91aa37859adc34077dd2a000 SHA512 6beba28be79a563eab4567ca33dbcaa7cba5f4389fa480ef4e16e528fcdc1ed6a2c7ccce1ee527afbaaa43545bfd80fa47ccd3ca2ea4c38ca2b397bdbee47a3a
-DIST rust-1.76.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 534e5f05848e5f6c05f2de69e0c974f5e4860c9ab4501491a651f5d2200aff69c9ece29010aa732d0eac3173b1f148afc3096b5f05146f7be7df14e5d9ecc44f SHA512 fba15a41ffc9202ae27a6c2884bac7367219fc5b1892287a599a1c8d2251bbe763df07da4b9719d73bb6d93fbac3dd1b8c4d8af75acb942200c9d7b1050be009
-DIST rust-1.76.0-armv7-unknown-linux-gnueabihf.tar.xz 184387332 BLAKE2B 7b9b03332f19859d43629d4e65815619fab1845c129a254643f164c025c5d574e71f6001899deec470e93c97fa6ac8c9d71cde5320b6f4cd822c2ab113e4b827 SHA512 3fbb7300e4dbe855207671ad309b71cdbad9cdc41b1c8144734f9de85c904918b137a2fe7284e9046f00526c7fce8b68dcbb40ab8d6543ef31ca0bbbfb396431
-DIST rust-1.76.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 050c4eead78d8161d46acd4ae47b69612706d8053bdfb5e4cfc0fe20ccbf4544643c1850f14cf93f7d17602849770857551b64c7f8f8db45594b7dbe267ecb41 SHA512 32e72430c4c9a5970994bcc6034d3be1a2a915adc6aa45a0c1cba403f6c44206af3e024afc42fe39a8501322fe46deea9921c9760f8e1f65422960baa88abafb
-DIST rust-1.76.0-i686-unknown-linux-gnu.tar.xz 211679020 BLAKE2B 06c9e52a1b6c802be3c4b0cb424dcf243f08fd5345e4b3977cca82093839cec885f6f491179e9e1f8e64c971bd7bfdbb6c551e463874b44c8b89ea649e8c9f40 SHA512 64605e0c981df2c805ba8cb31a89fabd00332faeea6d04ac57cb4898b7cedc66e4043ca3eeca799a204ffb93ecfa770150f09b99da3a7dc913d4e97331554e8f
-DIST rust-1.76.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 72d87215c5ddf03ed0cab99adb97b6f15fa8048fca68b44bdb77cd0df09cb1784cecb80f6618ad43d1b6f41a5848ddc84126ad576ff1ff08a3928cec9811a4d2 SHA512 a6d52e452a7afabb329b75155db9da91d51f809e913b19cde1c51c4d0f79831e962e698cf8e86079649e31a662d13743da23b13d16df6530427eec3e4269be7a
-DIST rust-1.76.0-loongarch64-unknown-linux-gnu.tar.xz 162940496 BLAKE2B 4c3b66199339262ea93de6785980795e493ce4e7de9d7ddf3e7c9fe38ad404f980abf408e979780905c149bb3de65d26cdc654f8b3ad0823a3d5067809fc4944 SHA512 64fac030d7edf9677757b883d1664b7e06ab9d5007d87a78d449acac359d7d6ba694bf4a6635c8bca51f274f842dad0612377aef655bb430f6290459343aa6e2
-DIST rust-1.76.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f52e951657308df5a944d35e2f9c19278f6f250474c070593f3b2072f372b8f6c32d379d144c8ae5a3ee31f7de21c00ec1da097f2c8c9a54759d9440ec5eb822 SHA512 d5ed37fd844715daa5d9901b388cbf39854fce3408c1d572f18e83d6207a20345e5e2c2b49b9c1523097245c73e1a448df8ecef2ae5b344e57bbe646b1266af6
-DIST rust-1.76.0-powerpc-unknown-linux-gnu.tar.xz 176795548 BLAKE2B 77e102e4d3821557895f3e24059b65847dc46ce3b81ce73f15063e9a6d383ba12f4c905fcbc85b79c39f00e9cb011fd2831737bb3ee9bb53103b4a7361aa312b SHA512 05ccb4294d788e948b69c9e38abf28454604f6b5bdd04704d6dd5231445e2f791cb18ea5149b4324a152ce9ae356b55036d2f74a5d9dc3aaaa05f5c7e4e69e1f
-DIST rust-1.76.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6d2fe65e5840cd7ddbf1b18ef89cd337b16e3424b6e20d21e199b274fbbc4d9fd88406c2a119d5b0bd48fc9e47145dade3f37bbf99faff68905e57bd41937c1a SHA512 a1e45e41f901513e97956d336910927d7357cb8c2362be69989528fa5ae7087da409853adfd86354b4b7faec3e8542e400838df1d195843c030d9c6fffed7557
-DIST rust-1.76.0-powerpc64-unknown-linux-gnu.tar.xz 177409476 BLAKE2B 7c9829c8e8ecf2a162663a2c382bff49739ca2bb02b785ffdbcf632edf55a3ea37ea3be09298b0a0a984512aef290123d3b0ca9ae0d088a2a816f38778aec79b SHA512 1f29f66d8e64d4c191bc90b05d791f08317aeec042ced815fd353beef6a7a4f6d5f91755481114e707728bd9a02ed9094b2a75d91d61ddb12748d9d40b211e17
-DIST rust-1.76.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3087eda9eec862455906510d38f43b81644243ff7afbd5ddf221cfb2c12408b8ac9a0bd2a269a9499776e04b56b3d52c890e056af544aa56cc06b399614f83b5 SHA512 8a90d5acea677a02b2c5eec93157ee2c47bab895e16408123a0e2c3d44b0f9a9d95fe56dfa903fa1cd2fd298f17050110793e94d60510283c8e3cc120770ce9d
-DIST rust-1.76.0-powerpc64le-unknown-linux-gnu.tar.xz 187967776 BLAKE2B 0ffbbb4e4ca44285d8387fa66c58df72971bba6410faa96f6cfd80c223f4996285fac27672104f25ae2a20cb81a0ec6be0bea1d6893d95eab0d017fbae896509 SHA512 eb8be647651b02f1e9287d075d76c288e34e66514305a68ac118ef41dc14a16e5e1a3f2c5cb8512c4565a2eef3e5063dc4eb11272fa91c01d8313a323c20755c
-DIST rust-1.76.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5f41ec8841f4004df7b65b50a451027489e303bb2863ece09a14900a229d3180ba23bbf5c770c2939399eb157e97b4a08ccc0632a66eca5ca5cf4c29a1523186 SHA512 929e415a66d8777e2509c25a780b4963b8991adb905a9841dca19a5412a5f86326fd73c43f79c304a48a2898f863b76024b0144109343933a0c5f3f1fb8ed287
-DIST rust-1.76.0-riscv64gc-unknown-linux-gnu.tar.xz 183161264 BLAKE2B 9a0b579bc076b8cc55414c95456caa2146fd0597091d2332c1033d03ac7495684b7b7989ec6a8a108953c681ed88d4b62a9a7fbb39c0300128189a91b035d2df SHA512 29fe21df7b99b9a9483af6f2370e2b5a403c12aee94a1285bfb2d2efa631f9d284c70caf863247843ab1418bc78a26c6f6d5de4e8606456a9ebd265ea3bb504f
-DIST rust-1.76.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7a380f9d2f2f7083afe7abcd81a15d34df703f076c2c842fee2433c6c40d629bc5b0818fc186b462d653aafeb1fe767de3c01b7a014ec3220d77725bf1074fed SHA512 53e4942d74f42f4a7c35ef4a33833d23a955af157d80588c277f32f30cae63e8543fd4ffb569693ad00a6a20ebdb2d8422ca078ebc85bbf98814815e32791894
-DIST rust-1.76.0-s390x-unknown-linux-gnu.tar.xz 202133724 BLAKE2B d6d68392b9b9b69914cb6986cc1501246e0461a6eb5d18eb0ffe71e0a2a7be20d27e90b117c520723254b4709d08c4fb33d145e5ab559802ba6592dfabf81317 SHA512 fa74e1605eea945445f8ea621a667d50907d8b3ceed700e6b05dbcbf58dc7fec62c1e50247ad9688a5b9c5b78c4a140d93557d494260f8a21b1eb25baa315bec
-DIST rust-1.76.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 574df1144e6e79710a73962511fc73215b3a4d1c3b6623190180c7ec13aa8295e13329c4bc66710013f874054dd756e02bfb2c5f6ce1fc8a07ae0717f958b244 SHA512 17938b3f4671127c9c46a5c51703d430938b73b2e30cd497cbc159ed372889af42e651479d1ca69c000974e21d4d34cfb9e3cf28b79ec8e35540ac319e1b8b9d
-DIST rust-1.76.0-x86_64-unknown-linux-gnu.tar.xz 159385660 BLAKE2B 0846999358aba95a2bebd2ff35ccc9e1954ff4fca66227d1c8c1985c08e91159f2acaa1357544b81e92065a2f9ddf6aee41a2d9199d71d8de1655f9b16ba2ed3 SHA512 1cf0ffb44aee4da9768e27daf5ab3b20e67fc9e8eba5a1718b700c85ecdb61cdef129cb571633294f9c826b6e7bd2958086eec371922ca31af332266d3632609
-DIST rust-1.76.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 88e6b124812b409372ee05e2872cb4dfacbc638f8e3b4fb0d5fa4ea63f4594333a9788732502f8bd41e34b5cbc404d7ac08e7690d095a6c37c80b0043dd2be88 SHA512 f7ddca81da468d5617f48240b6d3e8d7d09336ac58f515acd3a20f2d315468ba1d53508dd3264a088ffc0141cb3fbcd8d3c17379f9628270d39c7d44f7727291
-DIST rust-1.76.0-x86_64-unknown-linux-musl.tar.xz 237333892 BLAKE2B e95b92c68e3c2df49fa0d5d84e35f6575fb80571db290b5969441cc09b6c07dee6b2b887f41a2b1ff1e3c099cda2ce2a4a8c05afbcf9f4dc8acbaed5245b69e4 SHA512 04bbbb9a6891c3bb7a20845010029e6ca979548ff70324c08d3162ebc1fa3a84e8c7e2d453495edd34aba19b7a685f048d5047993103bbf221c88ea36350370c
-DIST rust-1.76.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B cd4334fecc17cf03b7333659393004fed4bb895f9b75f93520d1c3e3ee0ce4fcd17d75d748c4a35d31984215c7aec8904ebe3a4ad8bafcd625aef30688a473f7 SHA512 a458372b41c2833bdbd3d6678c35fc23397817b406c409d1ba5e19b4c6246072afff3f938f111382de56f7ff57e660c3eaf3fea0e54871d9af50b52a54f39e41
-DIST rust-1.78.0-aarch64-unknown-linux-gnu.tar.xz 223523772 BLAKE2B 734416f447462f2778b74f12ffdda13374c95cc399e8728afbeb61b06c0db2e522e760a257d2ce26ce8190cb9c8292880bf02da52df04c3cf205841b95825767 SHA512 80adc842a56ac95d472dcd94aab199dbcfb3d3a5e7a8cb32b8334b038c58a66b8d4f3848ab62a3e799d7c35e6a32abb1f2738a784da8cfa3272ea299c528d5cd
-DIST rust-1.78.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b6cf17229559a845cf63a22043b1ecb9d7e142b536d0fdb0b44f36f05fe1238096c48dd61becac58275d60401a4f0ce623fed9593290d1f659d31976bb0c42ab SHA512 d03a380d0481b4ec19cfd8026d262ed19b7f6f4f40287b0e23127460029b30c47336232a488dc8d19d22df98f356cbd62d7d44f4a3e1cabb6f575531be8916f7
-DIST rust-1.78.0-aarch64-unknown-linux-musl.tar.xz 204806408 BLAKE2B 08abcef8a38d2d1e463971613481806e897ad4aa48a6e3306c23cf7b906807c944809ec60647c5a80e80978cf8aa8bb1b8e990d69769f94f44022b0f764cead4 SHA512 4ec03b17e2f016fc5449431c4d81d113c12227e6e11553f9fb4fb61e4ba3ca4216aad776e7e3c1e88ac42b797c07f5daa23cac90c3eaebc6d360602f026f9dac
-DIST rust-1.78.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 1b51cb7337d71930d4d455d7d018a32de858b6627f0ca3cd636420bfdf0d608f550d41985a93b09575e5ac853361c3362a5c0b85366ff19712a4488b79b706c8 SHA512 a9e28326f91009ca248297ba1b099b718f577c030ae3c75daaeb4798cec4e4de585f1652f18ac170228c32e3784d38e328c3821d6735ea1c083bc4d5b80c426f
-DIST rust-1.78.0-arm-unknown-linux-gnueabi.tar.xz 188301776 BLAKE2B e227ecff233f42b9b8dd7b5807de8fbc972107e7099612986b275ba0391c8fc074344db0764d96d00c34a099380354ddc5e7beaad1d5444fc3300481f7504a2e SHA512 624eef628d9ac6e1eaa376677296cda0cecf4ff7efd4763e40735ec69788fcd34b4a4e05c34046e2b57b916285acdfa04f5b122142ed661032e9c0d713e8fd37
-DIST rust-1.78.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 43df87950eb9a8a0d2410c861e08ccb90a28c815d50cffbc310fef063e5b6b8b3246f5dc96ad34343a7107b025e863a87021e6d59e0826386e4864b68e3d693a SHA512 85f8822c493a1499e6404400b4c9ac293266533c49c5b0b4fab470d2acaf93078aff4d0c3cc59b9117ae9dcd4c47291a1197de44b56214146fd06e708479a191
-DIST rust-1.78.0-arm-unknown-linux-gnueabihf.tar.xz 188746984 BLAKE2B 567ba5298d6b5a4734d126e0b9e5df24460f6204b32ecf3892b45a26689bafe7ccf15f4a6a098a6a6ec7c3f15cf80d314e682f2d8c784a60d9847056be1885e1 SHA512 f9b5b48042868e91d73e3466f7529e2bb2b72d2489b2d0ff1fc83ec1b1cb035c88e57d48b0ed7298d5f50db0cf9da2681e9a4862c185a2bd241356632516c93a
-DIST rust-1.78.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 4d4e6f113e18870a654bc175eba1ea8ae0129803503deba03d144be4f434b1b5651288e8e1cfaa51bf603f5bf51a959b584e2932c025c3474575dc282ec14d84 SHA512 6c682f710fc26e94f233ae27dab6be27fc132825c3604789671170c040b689bc1871d9a74436832fd07a0da50654d06f0c2b31dd8dd9787f1563e2085a51c14e
-DIST rust-1.78.0-armv7-unknown-linux-gnueabihf.tar.xz 194117584 BLAKE2B 5a62e628f06ba370b5ca2b11d8c657fe9c0885e4d36b14f49ab0b7759af0317f1c79ae92dbd5685c57de58c4f6c31fbe3f1c8b4e1721c91d67ed45232dbed5a8 SHA512 877c13fc97c5ed0785dd005c34e5d37763cee9b7c0b5c2217246d173d952301b1b6b590c3ca441269ec8d341a0cf5f2eb83db63517385bbecb0cf08167a3948e
-DIST rust-1.78.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B a3ba9914c74373835ea6900f97100f631d0d5133adf6f1f938734be0d58484c72372b933e9c42fa37856efc6ade7650d969b412d66edd854ffff4918e8aecfed SHA512 6df8b791841f7bac8539e2ba9fd8d22d516a5906152861baef8ac3256136ef72f8fdb7cc9f843127311a8eeeb7911d058fb377db52ef4fe9a3cdc21396495ea6
-DIST rust-1.78.0-i686-unknown-linux-gnu.tar.xz 219666344 BLAKE2B 9302eae6c99af5598f9952255ca8bb3f0288a03b385f77b79323e725bbe398e722baf5ed2de7fd74caa452248800948aad33954a82cbdab97d1935785e6d4437 SHA512 15b6ab20665af6ac7df6e9c9078b9565b3f2e0d493c0b58cb06c682d9368917b2dbc509dfd23fac09dfddc9c60c5f89bdd8321dbada77958ca5a6261ec54d203
-DIST rust-1.78.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8c23ee14f8db7c4a776f4b5b986384c9e2c79e6449e019c67b526ec219e92e35be5c46a4a2d8187aee0ab958c7ba5f2e10ae40f4c7cd083cbef59bbfc96b0c13 SHA512 ea13084528d4b8d558309a0d5c392c734140a854d9543beb0c9b3c5bd2fb530ba154c608920ad125683e1e9888228422352c3b1c1fdfa9d70df1bd4728193944
-DIST rust-1.78.0-loongarch64-unknown-linux-gnu.tar.xz 170256096 BLAKE2B 07507d4517a9e421bcaa763cc93956d5c57d458f7b20f97f186f902702675b305e79c89142f5c9774b11e0842a82c8cb63247b71dacf1c362c0588b52dd86d3d SHA512 fc21d32b4ec72a3a5a353cbabb902df2676e3341a1f38ee45654eaf960bc677b0316af0474e5ce9d346d285a6f7f03ebeda7302b49650cd1ff8371c27166fd25
-DIST rust-1.78.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f99580babc5356c579b81fc0a4168dc1a57432d898e8e2422f00f9027477d704421cb217b5d56fa15a6fe9c01cbf8d4a727c6b01eedddbbcfe9d78e3cdfd24b5 SHA512 ab1ac741f6d71517a510a48fff1b903f325a35b83e35b7b73f4751c1f22e6944044d7a46f21e018659d7cf4ab5b430f6a4ff79971712af46a0d7705faf60e506
-DIST rust-1.78.0-powerpc-unknown-linux-gnu.tar.xz 183422544 BLAKE2B a37b4b4c3ba381e0456f46ac7d311ff6b11701026d568653f86d08e5170f9f21177e87efe329ea8fe259a6ab7991f096bb716af2bf3000569c9797db61a41c72 SHA512 eacce0850bbd9dd9a8a94177234d867dcf8d94c7c2e9f4260207b25364abffc8523e2b85e868b9dd9d4bd02ea4be06fb0c5fbcf5621ace2c0e93041a96cf7ad3
-DIST rust-1.78.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ad0201eb1760590381c0e7ee30f612a44157e10a634eb585f253788702653b3658c636c3f8c971a0c96de8944cb4c6960fd555f35dc1ee45fad18c7410ab4b7d SHA512 de5026257f1bd95146cb8057569d643a79ba440aab21efb4ea7df985a527654234c499f16cf75a29eb29cf9d7771893f0d4cfabc3483435ab73ce781aa573ebd
-DIST rust-1.78.0-powerpc64-unknown-linux-gnu.tar.xz 181366112 BLAKE2B c6edeeddc3934e6b93e65776a01c7f19c5e560716490eac2f52b56ba0ff58b974ee2be8e858265c4242d017106880a368244f5565e6f0438258b0cb0bfaa9a0e SHA512 7e0182680d216757d62627b07041d1e36eaae47ed341a548e29d6fe192f5e99a7f933461da025f4341d4c9b816ed3d8d3224bee12e29a0e7fc8bcd9a93c5069c
-DIST rust-1.78.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B eb94775f878935e94b7a678d4588dd586de8ddd47120670326b6b9ed891edb009d637a2c99b0548e8d74d07960a02558f8421e0754d487e93b57bc2bfc19f052 SHA512 490b0ff842eafdf23adf754051c0f4abec2bfda438bc2e3f57cfe5232f1358318c31bcf6a9ea89284f26389f2f1212dc3ad467b14da465d655bbc6974981cd58
-DIST rust-1.78.0-powerpc64le-unknown-linux-gnu.tar.xz 192130524 BLAKE2B ca961dcd50d9071f0bf7b8f354aa0e78b4e3d4c9bd0b6c72f7a712bbe906833aa8982eb87d9065644c65e57e395ab09ed85bd24cf43477071e0c5cd8ed8590e7 SHA512 c890386b3a82ea36aca2f8753b0fc81a956ce3157b89ccd573403ec99b257299f84c976dc7972278371cca1b3945b21a50d276e10b4cd42647a9d26e0ebdd947
-DIST rust-1.78.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2bf8596c462d1231ad884a417c5b676447b8474023b5769343ec5a7788cb42c89b937987226db9bd526b3f4ff0a39648e4ee1136c3733d316e35b8ff7295b6ea SHA512 6bc9965d32420bd86422e4d5fefd82a46a169d5d80d298ccca08fb421858d5bc077f785a52f3404f29f394f2dc471a747fec208931d19358aebadab6d9952e0f
-DIST rust-1.78.0-riscv64gc-unknown-linux-gnu.tar.xz 194762504 BLAKE2B b3a802e4b6efcd6c0c3155258b57483c24731e0564d0077f65706ac46898828c4e4d612996c16b63f9dbd5770ac6ab05cad27a27f1083f431e13aeb68e1e77be SHA512 530e5409755dcef86a9d074a3d387dedb5966689d7f47706e43daa5a9a8c65249f4d2b42916363b14924c11e1a5f5d934e9a1d9b47b1ed7206e85496fee27604
-DIST rust-1.78.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6b8f4a535ae61cf04523254267c2f816e51e459a670b5c2aaa1a28d44092745d7c64baa399583a18cf84e03df2a910409cf99140e3337654a1a051e84d3865a1 SHA512 b226ead3b0dd067eea71d3b5088925f0cfa381aaab6f809e58dff83d00c17da4d99a9d241d49eb66e5db381cd9c63a21c2f5be3ab85658b0bf00b91e970c271a
-DIST rust-1.78.0-s390x-unknown-linux-gnu.tar.xz 207632244 BLAKE2B dd548d618a050991121afe1d8ec7d9fa5eab19d9fead94440f34627562bda9b5f544cbb03a06cd6e85eec4c8d5279b4237cd14c9754f95795e7a26f0b20036e6 SHA512 f17a472ba144efd41f791854931e1e2eb566f126037a1f234b0b54191941a77d8c340687c4c47e0bd4fbe306079cddb36637e998439845ec82206e4c567979af
-DIST rust-1.78.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5ea16c70fbdcce4cc17c37e9c3b642fc6deae9e2033821d21d3598652b8ed2dbab58cf09dec4e5b2f913cb9fb25820ccf3511af5eb84441e9bee6ba702005def SHA512 8384b20c9f9b6654fd69e90a91aa8572d22b4abbf83ca3b349b7672a5d8db131053ad1b6f8a48881be0060d3db2eaef52075d3a9b15a3c9ef9bb366d592fbcf0
-DIST rust-1.78.0-x86_64-unknown-linux-gnu.tar.xz 163959816 BLAKE2B 1987a6a0ea169d67214bf403cb1e6ada022eed163be6ac72e6e46d1596eba6f282cf87e0581e9ac1b264dee4c59edececc9085b0d16cacabc79f9375da652a24 SHA512 6bb0481804a1de8ee9fde7d4793d45e80f071534f2c3756867d95e99bfc4766de2618b5fd6b1d5e8f4794e54c7056124538fd301c5ec20351f8dada54ef4c20b
-DIST rust-1.78.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1b6b8e54c0eebbde2a803d14db3d75363c306c621845cad89c927a51a5df0ccb5d1406c8806a82d5d611d0a12c6d6c5ed0f113fe802e4b6a8e504e64562e168c SHA512 10072d0684b40a71176f36ad85b7161e1392b3f52c035bfd0c6bbf5889599234a7201d85a13f04de0269ef9d8e0c51d15a4e9a9151b3fa27cf9a6e8663203786
-DIST rust-1.78.0-x86_64-unknown-linux-musl.tar.xz 245914600 BLAKE2B 66cc40b70ca70eebee5c173eefb07758a8a7421cbf421329b3b405bdab1651334a5ff1202b450139c89039a4c3fd6ecf8b78ed218c62e81c983e6bb7353a335c SHA512 21190a0034aab2757cdcbc2e456fdacc972634f25f5c75daa089030a82b407037d3c7d3528c8d126d48d2a6840edf97526007bef41689a86ef1eec8f8c569f08
-DIST rust-1.78.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 2ebc83f961f3bb1681bfd2e3f08b2c394bd8701c68b873eb524a9f9a79f3d3858ae75f76c0e0bc452cbdde9466b1d1b2723d04a8d41f68902355150c86d41042 SHA512 a32e7706ab9483a464e3001aebda8975ced4ef66a64f534d67c0a0e2b508f8db0523cfef4a66bb2b264bad486566c7f684d01ba96055133eccf0e9da4abfa46e
-DIST rust-1.79.0-aarch64-unknown-linux-gnu.tar.xz 224366944 BLAKE2B bd890cfad2348f7bf1d97adde1a5ab244665474ea4d77dfc2cec60679829f84c30378f2a979acc3dddc51ce563b03ff86d04903602a079a85684d98a86ffa4ce SHA512 0cf80ea35cb501f406323a438ecca348fb957cd4a57a4c7ff42bbaa0c736d16a99187b821e29d2e51519e1cb76e533af7c5893c6204fc0736f8e2186235742e3
-DIST rust-1.79.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c249d0badfd29130477841602b385e1d152488d43799e9e3b77cf92234b197501182edf59536f77b02b49f806a7dcd748f352458f97f15af6c8f0580659d3eb4 SHA512 2cd2fdde6ad1acd769af2a3ca97bff3e4cf3b57a3a7d1890ab592d2abb85be17f7c3f27cc1b994e70f9f6cd52e8e44314d1d182aafbf68fea4d52df1c9482afd
-DIST rust-1.79.0-aarch64-unknown-linux-musl.tar.xz 205404384 BLAKE2B 21dd98d62bc965e24b3a60c0e48fdc907e2bd6919a90923f26cb833218d6e1f23d3385c7e67d96d7651d65ef963f668abd9f1c9e4d3e80aeb726b50d09a2ca80 SHA512 358e8b8a76e1a48d6829735f04b2d3cd3ddae86684ba10c778a9f96ce4bb0f080c0d706bcf5c6d141d1d52685a8e92a48d8020008320ec8aa158fa911745678a
-DIST rust-1.79.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 99fcb4bb3818cf56ab9686aaede04dc104d156cb8c7989c3355974901cf7b84d9182239b526bc0208d7f4bbd80f959f896934796d1d431336820e10477c271c6 SHA512 9ce170419411e08bdb80aaad72c559fd0d81d7e5c2f088359ba2994dbc9a1f25bd6a35b2e3a02ac2ead12be6dac3d8cdb48764e85f8aea3babc031e242d66a5d
-DIST rust-1.79.0-arm-unknown-linux-gnueabi.tar.xz 189377704 BLAKE2B 6d2e12a9fd86d41dce2946404130fc314ce291e1610f1bdbe13214e04ccf91ef36b373d49bb06d4f871da1bf99568d194d27aaecde841634fab1fd222e44563f SHA512 630973e33a82d4dc27ef6ec07084bbb0c6555add6fe1324b0a743c39902ce02ad1b3142b3e56b6b37678b523ff37fdaf0f60518a83500ceb4db9544e7f60ac7d
-DIST rust-1.79.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 26045e38094ef9e424bd7050819c43998f9ddcd54f52c08b2f9d538e2729b1af1015847b55501a55d43db073f63324aaa594ba3ac27989665cb0855f58275b22 SHA512 73a365ab6ba6938f21e2f29d2ee8992e32998d159572a137621d451837dfb05b6f0bea8985165c6c22f16ce66d6f732393c8dc7680f2ac31df006b0cc2d26533
-DIST rust-1.79.0-arm-unknown-linux-gnueabihf.tar.xz 189222624 BLAKE2B c9ce961bd7f7bd8fdb05781096162f89bb2aa374963dad03f764a69570efb634a5c0fb3f776755869649a69ac1a95830a78e638f6e06d4840f1b2c2dadcac2fc SHA512 787e02c3b6415ed337964ff4db0d0e8cf5642f65ff733c6d70119c3ef328e9507ff66c5b2e4191bc0bcd1dd6755b656efd3d46b7629f3d20079f06d8fadcc10d
-DIST rust-1.79.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B c5729c56ee5a3efed7f8f5af46e459a844f67a87c71c9e280efc07771964fd06838263f254a19801bd6d072d98f3d326691add5495c62a8d06f74a39375557eb SHA512 0b1d5c144d8a9bc8d370052ddafe7d6a5b8fdc00038bcb2581c5e4787a1c8419c628bdd12398cdac94178cd6c876f10e23b5660755274e0f1648b86e54d78477
-DIST rust-1.79.0-armv7-unknown-linux-gnueabihf.tar.xz 194892388 BLAKE2B 82113120753281bab2e52dde18b399e878bc1c055e2a1123c7bf5e0432c39ce04cb24886ebfde6094683046af94a8e80d456647980632df8da65268c4461e857 SHA512 d923042c4c9db09ff62444e6222bb4c404f322b2c43722514bc4c126fe1f9988cc8c38191bd66f8f24c535509c683e9fa30b3091d40a118b3366062135aef7e3
-DIST rust-1.79.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 2cc6281091bd0dd012fe0d229aa0691fc3698ebac5bd77d8c2d811907d1a6d8fe73f19d4b456bc9619f6e7cc403e8d55c46fd02140103a72f5b82c2c2c3986a0 SHA512 4aa5854d7430b07550d72f3aa3d8b5f27d8d11542c9bc22c8088624fa1dcb2a6d194cf058e741b1a0eebbf04874aa844ee89511ca14ddf73568eccbc404d6a43
-DIST rust-1.79.0-i686-unknown-linux-gnu.tar.xz 220956232 BLAKE2B ab8bfc213938a0c512177765f4d5bb2333f5533506fb28ecc70744c545595a7e534d7e5dad5afdd6b7d6570bc0602ed7ed68de7df4d7a210c606e23cde5fb6e2 SHA512 7238d0102625d82f7595bf4346dc49cb83daa0ea0ab456b6526f4995d20e5ce7f10517bbc3de09937eb10a4c537edeb2636127f9f8aa7d45c7577a665d70820f
-DIST rust-1.79.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 838bd51b74f1f6c77a5ad10cf992f3e398f2f68510685d1146ea3b15bdb2ab7a994aec3e96b5b3a1a14a82c082a87c8cbfc77f01609bde2e096f1934a1fa61eb SHA512 f8a2aa8271348761c5c8c93406c65fdc05502c8d21d67fff82f1a706770891a820bd05acf8d3e8401a44a66c35a11f40e3594d5b42b6554060b3bb58a0dc6afd
-DIST rust-1.79.0-loongarch64-unknown-linux-gnu.tar.xz 171612592 BLAKE2B d06003c1817a191d8aea38068ad03449090538962aa9ae74423343032b2e1aae4784daa702fdee4f4b089341fcbac1d03048783b7cf082eee46df1a2b6323b31 SHA512 86c39ca2b43fd58893e490008c99ce7f8e8c8e087701b90838de8f589a3e5b5b0d3b20c86ea9803da2ed72301d44b68866fe219b65a5af9f0e7e3120b3d9b994
-DIST rust-1.79.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6f826cc05d126b8c6422674c9dfb496a61424144d7a76bf4e5225d7bc782c0d63dd55ea03c534494b633601bd027a922458d9f06dec5f5cf701c8907fe53cbf6 SHA512 c443a8a08ae2e65e3ff46e4b5f910ac24b8dda0ba62b67dd41888cf1504a78e9a6ff9415480b8c684a7f9390bf7b279e3fb7a7a22bc4139d6a91457753df4131
-DIST rust-1.79.0-powerpc-unknown-linux-gnu.tar.xz 184251688 BLAKE2B 372338527063379f922bb3ea83c98f21b2201cf0e75f61cb0a42c1c1c6b651eeab1532d972af72a2afdc7afb5e7a96c40b0482c248350b7886a1274c869d2a08 SHA512 e1a26ddaf53b070edaa630bfcf6ba94659f841804e2feb90fab05e8856cc616d413f5af45b67cab57fea2483221c8caa52e373e7e7d29039541ab2142c4187a3
-DIST rust-1.79.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 22c2867d40f0fe13888112294ea2571718064a30983903f7ce8b13a4a13684c34ac224990ebb0254e262686c097bed6e46d9a70e86bb282c447c9e690ef551d8 SHA512 68ea8142bb72430fadf274549d1830a8348ba74a02a52bdab1cf1b811e70592896f8cf9d34687bacc34aaa06603f89e5794211227c573a4f29ed34744b0f5a2d
-DIST rust-1.79.0-powerpc64-unknown-linux-gnu.tar.xz 182063040 BLAKE2B 0bf5d662cf69bff1a345dc54525319dfec98b2743744eb03712e9a2cce8cd45d968b9cc67ffa33a5b5a5a47f3a0a5568103d4e3de3efc7c2d837453dcdc077c7 SHA512 f65745bdb3c98f20c37c7bbe737ebd3b1107868fd56f1a9c42a4adfc14592e853cdd19217354070e5d18d31145be18c3b10681768d9f025b5846488937bd8a78
-DIST rust-1.79.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 80be893561f5021b4e57843a5a6c9db7f97d9e31a0748c2ef1768fe0074f29401a39de781d1eadadfe760e8d7f9a286045c6bec2bee1b2a889ccfb9625ae8477 SHA512 843e1cdda3dbceb93cd0b345ef0f551946cc37dc5085f52cfcc3c9f6e31f8d4d6b176afdf1c255f5bd7283473b717963aa0e6bd905c2eb89f3543cf5e88dfff0
-DIST rust-1.79.0-powerpc64le-unknown-linux-gnu.tar.xz 192753084 BLAKE2B ba53cdb229484dca210de50bc7cd493fae04b4c664551fb5b7f7bd6bc7dc3bbb59b79d183f20a9dada393d586eb49956fda1a358bb5b5761fe8d65f7ab58b3a1 SHA512 d8db247ecfb154247d7243e8caaab0680bb81e11aa0ed3e627b6a0d96a21a0a2099a7bdcdacb57a8b84910d6716754843d80a9149a8ee02fdbb6bc411a352112
-DIST rust-1.79.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3e5ce77c7a2afdf0ddc4d8d53bf7ccaf8506986c1cf196837a3a6d82d648b4515b4c8cbeedb2998df233a1c5428ccfd82865482c0d0493248fb0631e100d4986 SHA512 5e63caeb8b20c7dde37099cdc0c246694b67dc2380104c83d3cbff7810cac521104d4d6cf6763559e13cc9e4bb5387bad761e79fc7bacf48536db1918b59246d
-DIST rust-1.79.0-riscv64gc-unknown-linux-gnu.tar.xz 195616336 BLAKE2B a17b0f9022681233e23ae3c3eaaf93da6d730ba604a9d327cd4a2553cd8c7321929e294de27866e995a591554db4f31f2b9f371747e4b45e473ac2c2a466ba63 SHA512 8a8c6be44ecf5d4cf35bdb32c2a56136fb007e9502f7f42980b5cec135bc481252b890be74d6ba638c2d885d1fb9bea58349e6ba67dbbb8efccdfe7bd6c7009d
-DIST rust-1.79.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a20afcbcc4814988594537e0ef1ded539c29987941044d2174c5f16b84286d3d8b29321bcd205f5081dcc8ed487d21f88396a0420a7fc3626748b8ad1e0ca2be SHA512 cee5e0ebd5e7fd00ddda6549f749603376284071db7f806175b1913b39a94a5540cf535f30d45afd06ae95ea42b0fc6b71517bede7f09dc0221d5516abf32450
-DIST rust-1.79.0-s390x-unknown-linux-gnu.tar.xz 208109368 BLAKE2B 8c110bff01f7a7456a6044a782198c74a793af0fe4acf6881fb9af4c8193cb6c513cbcc8113320fee027a6eb046a0ca4319d014379c6f670f915314448fb927a SHA512 07de1f7da8d8d23c63ed081cd56c96a9becbd4b7149f87636918bce8155a25ea95579ef8694adf6e455ba6cdc19776677f430713a6ef6c607a7efd26db4658a8
-DIST rust-1.79.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 28a2586c96e2ee2263cae8c2dcd21a0017d09969114cc905a37408717c412a162fed12023df801497906a6aa77b294121699a56d05e270b28e2831796a15f4e8 SHA512 64c85ecf772b73e2e6f2002053a8bf659d518e7be2a9d0056fe38e991e47304471372206a8e45250d6a143086b3b1f4fc68f4e19388c040735e8475c981fd8a0
-DIST rust-1.79.0-x86_64-unknown-linux-gnu.tar.xz 165014992 BLAKE2B abd9f73c8439f6f4f9ea1b586cb0b2d3ddf3351e42dd49e01e2267d1bc2f9dc27dbbe9b866d5a571a983e3c537f003ea9a6570258af64edc26cb86fdd8e64d86 SHA512 c027a015cc6544d288b51bad6ebf8a9afd40932a06972cf61bf64bfe4997dda7ecaa2d53c4f4fb2200bcf1a7df16c3a44ade1b8366a32ce9a4c85357cc76dd0c
-DIST rust-1.79.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9cd1a51580d9f70f96c83b603716a5edbd8e1c4d4c2f53c07aa9d37c6c47f3bd252c0a1cf26b77bcd60842fb83ed74cd7b6e4ab3a039c3938423372485f8c1f4 SHA512 b65621f91085f4a5c6f84ed5e530fe56502ca12c5b18486afb1197156c5f6087110578647d428a58a1a6c04765569a28c38ae40a14c72fd41f39948349e8115d
-DIST rust-1.79.0-x86_64-unknown-linux-musl.tar.xz 247326760 BLAKE2B 36bf6787c69971ba7c445d1895001c005af0aeb48aaa3309e971237125a2b6de3ef5f1534572f8a3f4c1bc024962a8fd030e91b63c02f03444b5aec1a3ed2e5a SHA512 02e5c2a67f5470f3320b04e7c4f0a6f5dbd361d5a97aee7e5860d04224683166b21375794c94ae040a2cc6fc119380be9d3465b8c5e1798abd4142d621cf9f99
-DIST rust-1.79.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 6dde2d3096f7e47d31b1e13e7e5f41cf278e770dcb8a222d76ab5b93b2ca8a6d9e5b45515e097e5285bd2d76130546b3eb302a8391102460c4564e654c88f03c SHA512 4618852fdd81684ddf5bd8758d2551f1c800ef1614fed8ba91a9a1d29b3b51a0b9bf169c499dd8890347f999d002e5aba7b49a98eb819f20bdfe82fa375ed45a
-DIST rust-1.80.1-aarch64-unknown-linux-gnu.tar.xz 226220216 BLAKE2B 41c7a5ba5108da3ae79fc6d6fa229d2a91e6e217c92bbcbe37fe35d48418e0c787a29c43ffb406acabd410efcca0464da325120f925dfd6d1ee0822f0041f517 SHA512 4279028abc347ff1436d055f79523a24f98d94938dd7eb73516bcf39dbbfbd941418d4b1227576870c75a7c0b4c23c74b0528e1c5b8a39d54422af1ee2abb74f
-DIST rust-1.80.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 20c46e31535278145d143f619851edf151feb786b6d3112022b63e9dc882aad300665af16ba9dc600554f3d8f95d4ed7715bab5b57fab3e33a2c81fd7cd664a7 SHA512 dc104a9a30945d8f3d3a74cbc31b87ac4cffb81b4dd80a53b3e86432058830d4287542166db273895d9758bbfc36814c384c35a98b360ecf18938c6ebf6beb05
-DIST rust-1.80.1-aarch64-unknown-linux-musl.tar.xz 206752364 BLAKE2B 924f6c1f6b01c048ee9f1fc632e74abf1f5c11936effeb797d45fd500b1ce5a1638cc8061226018dd3e5a910e1d20a7645efbd25dbc5e3b2336cb3d20817fece SHA512 74a9846b328f2a79a75f7cb4c795a78c40ec1c30ac864e20046fa39324800e40ec13737bc580d5949dca92472c1512c747f67d8b67cd5e3e9048b22e2a8b7866
-DIST rust-1.80.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 49100a62a57a4147c13379bee868f5725b96f4dfa59c83c6d3a1a67eed86b0ed02bb0684b096dd557d07f54d0c3fb32bace38c81aed55cea7a0c001d53049897 SHA512 955d39f554413d51da50d2c66a8e9dd57aa28c850f12410b58a8ae1d8d768b7b5d2687bc6b88218f800f3e4242e282d6fc8d2e76616c30c926af1f9a461b2d9e
-DIST rust-1.80.1-arm-unknown-linux-gnueabi.tar.xz 190441552 BLAKE2B 2907546fe513550e8bb79eb60382503ae55dab8420be41be6d57ef04e9582362324de8639a43671181e439223cf2c677ee4f4819455a264c2eb34ce6e79bfef1 SHA512 1ec38d348e1c888cbbc7b391571e84a3026a5c59fe065d79e5769241c6af9f39c0f689c981695846a9109ab3c9baee9b225316868dd2fed18d15f4f1c81cb5f2
-DIST rust-1.80.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 106a856965e94aa260258aa8bb973a513cd13aef7b15f0c5794a699fbfa5445dbdd3628084d7a913849f0dd274075a28bad25a758e031ce851a6afe463dcc882 SHA512 ce34d38c05e8b4a7df9f0a79fe107b7d313bc467b1cf82cac43b8ab9b6ae3e4d3c1f4428f3a627110ce3b66f89086982cc95d0b2b2e85187095f66338aa92d0c
-DIST rust-1.80.1-arm-unknown-linux-gnueabihf.tar.xz 190747600 BLAKE2B 481473bfac35b8a45c4c3a5593b76abf88fe6eb50f0b2a424b1c5ed846e56234c2faa22910623514d0f6804d13f78d28cc3e4cff956ae558ac1dd655a0b62057 SHA512 540f74fe1f43ad8c407620ec47eae1ac4a3c4ddc8497cb79d0784393d17581c41576df7e114efbd6541a8626802c7961c998cd0895618b254814b66efc3bb01d
-DIST rust-1.80.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B f1d4aa5cbe123f566d63c3f9165766622048f463c78c0d9635949ac46d6910c1b9c59b0d8c7fce034c1b070416e1ac3f998c4b0c91c796e18669f9294a75bc89 SHA512 f4a75d28a245eaea7deabbbe282cad493175c303f9f0744a248728a7753603ba7e4acf488b3e8e3478a8f7160ed92963d255f0216b1fb598b66a91eb51c30a6f
-DIST rust-1.80.1-armv7-unknown-linux-gnueabihf.tar.xz 195804620 BLAKE2B f279fd6944aaa76a7a35007e0521003140e4a3569cd36e57d7fa4ed7f72b37ffb7d03412588d1b0671677fd95bd6b6626eb9603d55b81971e148ad0137bbbc2d SHA512 487aa0be4230659db1c5cf2436c65062f1c3061fa085f38ec84dce029a6ef3614657ba407d1aa13c1e5ff2cf6e87f7ffc0c1a1947c3dc641a5b6843cdde85615
-DIST rust-1.80.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 15b450c4743e45c4c2eb9a1ec6afd448a30ad64e9a885bbedd7f8a7f59db45926e7ae4b1b0f350a783adafe93ccecec40f6436b62c8063eac5ad4e91c5418576 SHA512 b5ce5e78cacafd3f0ccfa2797aebecb360bbf56140cf1a1f3dc6c200e7a6ac7d3eceefc0f3cd3fd109ff1b8755b7828c2808ac9bf53f23a3e49c27d6c6050e8c
-DIST rust-1.80.1-i686-unknown-linux-gnu.tar.xz 221151480 BLAKE2B 01c4a29b5cdc47b0070b031984daa5d6f77844cb3ab9a82a40440b5c4a7a1f6bdccd4b8f46e3ab13bc194997c4a1341de484319ad3e8f642c67f7b8d8481c846 SHA512 2c0cc27407265f686d5b3a5e9f00f751924ae47f3d6a5cc044c56278843ee76ba3cedd63575447feb5cda0a2b1d2a26d7a78e0c558e2f47b7cb09f40aa6b8425
-DIST rust-1.80.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 549b27298fbed09727ae6c6086127aab9c0ebf9a6fce70c2e102fd29e983e31b1907f3a2e7c18800ff7b2efcd6f49c36aa11a5021fb9f57e6148e62628cc56a2 SHA512 c20ea2b577aa263e70211198a9fe896b9d560b737d74d640ee107a89dd9d5b31bc843e2fdda75bf21318fd3aaaea58c4ee918d003f7bf7636aa5636fb657133a
-DIST rust-1.80.1-loongarch64-unknown-linux-gnu.tar.xz 172528232 BLAKE2B d308b0aab1ef8dc338025d9a106920f507035efdc04390e9618b6a936ec117b70c791d14d5a73aeb0533f1e8d1952ae36bc3d4e624239d5a64ecfaefa70aa5ab SHA512 1c6d689e43cad549f2f8aa96fd5bf52080276c1de386b771206c7533feb11a47bf515ea72dc7f406852ca7dc5632f1436dde69014d8bf35bd0f25bcc85c3cfa0
-DIST rust-1.80.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 92b347907616b18ae06d85a1380d01bd078c3ea4a03fdf808b79794ffeb1d6661057688050130aec61d29062f07a030ebcf15fe3d866cb411325c44a2c393a33 SHA512 7245d91fc398d787e8bfa2e0bbceda9aa30665699f01bc5490f29f690fc1f8fd5d5ee8d4a941d38f0dc5c4cb7c275bf4b6d4bd3727b1bad65326594101f90cf4
-DIST rust-1.80.1-powerpc-unknown-linux-gnu.tar.xz 185400364 BLAKE2B 2b37d052d0fc4f612c298e87be9a0afcac3ef8548f3914530737d0435cbdf270e0c3b8422c08f84f96192f89805a9bff9d3fe570eb056afc1fd902202a806025 SHA512 1350aa8c105555778231b4ef7ce1c4c8850cc112ccc2f72621bbb3c011a0733da91df7521bbab0aa3269b4ad61231a631660593d7608d017083cd7af375fde30
-DIST rust-1.80.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B da5dfb8d287b7a30a32443b0edb80a3994c68f732ce02a6f6d735d589db2c273962e02925fa88311698672eca10441850066c2f1ab2e48ded8ca33109e298509 SHA512 f0d381594d6b164e068cb80e39a508774633db64abd4a9ba68eba48fd627fbda6c0cdf849137f61e196ab44e0f93eba5d08f3dd60fe5820259b8d9fafdd51407
-DIST rust-1.80.1-powerpc64-unknown-linux-gnu.tar.xz 183179096 BLAKE2B 0b7b7af392b8aa1a1df14ea4f53fd231c5c475eddbadd2105a5222393162b187109201f96dbb30c9877ff1c684af48b9868d17dbf26113193cab572d8ea40852 SHA512 67ce98a6f89997c13f576493644634f8ee5055952500e4f6d6ae096fee9570d6e5938c483892e76325905fec35184ff7f7edc21e4ec30199e821017890825289
-DIST rust-1.80.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b5b296291d031d254a4be6f000abade2b5d67cea8cecb332505469af3ec3ed1e21454ba41f96ed4e77dc2324c339f136ad04f034191a639394e6d9390065ac19 SHA512 9ddacb0ccd9da29fb93c66a2d701a03af6a4a2e9911c06a09d9fd5bde2647931e6c61e623d418200038e232227010206561e431331ef866324e9020dfba4597b
-DIST rust-1.80.1-powerpc64le-unknown-linux-gnu.tar.xz 194097292 BLAKE2B 1134beec940443b111594c86f912b2bf26bf3ace83cab3f0176175a6e891d047701e08e8ebc62094fdb4bd7b4d2de115ba0125ecd5ff6b3a20906db30c86c480 SHA512 4275343153b6acec8ba3a25dd4e85abc3ea7872a9cca4cea6f394fc24db6461db7fe7c047d158b61bb0635983a6a033f25da39f5fa1d6d9ee6d3eb956799dafa
-DIST rust-1.80.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 280558f7b575a5b79c7367715e74f333b7e9bb0d4f6ffd9939ed9daf33899dfc19cf59eca2cfafdd2ad1d6d71ea58486d04931fc3d089c9c491c8374985a1960 SHA512 6c784aa10878531b44e5927b2cab5a81efd4767a5e723747e4a9c506b4c48141b44c98ce364459db47ad8f03f4f066fe96d070806695d76a6abc9e0c7a53a09c
-DIST rust-1.80.1-riscv64gc-unknown-linux-gnu.tar.xz 194141700 BLAKE2B e174c185d35d3974c923233807ff1a27f6736af2a8b97f92153c0518aad4f46653d5e5bab219b51ee1b58cac7216a29e5ad6499a982de8f52f6871903a307b71 SHA512 4d69bfd0fdd2de634a3ab873e8e2929c53baec12e4edcb220b8054c672324dba7a94d06a9c35474b8ba74b2e408d7b42a857ad11a4b7a346509b5fde23e8c779
-DIST rust-1.80.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 274048978581a816fd8a9c396e7adffa509004121d5e9dc8df53a9f4a850dc7a0bca8652760c1f27c1c0dd57be5a91ff60e2d39ad7681b17efdea91312d0fc40 SHA512 5c34ff90acd4307a57733f8371abf4712c3ca06bf9db88f1d3e3ed9dda1c16a7775d713804ec4f1bc46089428b6b5472ab7e416f10e21d33f10b84b1a33d1957
-DIST rust-1.80.1-s390x-unknown-linux-gnu.tar.xz 209785288 BLAKE2B 01792daab79e7abed8bdeca53295928429b6814672aa4e0426316ec790d22b22abf25d3d5513582206d18f53147e60d252a0557ab9cca3b594c89ad603d94ea7 SHA512 66b20f5d001e978e2db5277da5f01271f0500a59877a849ccadebd5823eaeee35066abdd5d449e024cd5ae8ee41dd60fad77a00648cac1db62137d6722729fd6
-DIST rust-1.80.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5c0a1a6036d3c3e9af835c281fd347a842cea15bea5f3d5f109f4080a2f93020d5e1c1a7de1894c03e8a2c87c6560f792a0c8024e68eb55d10e50da098f1e621 SHA512 7bbc3e8d3b039b522e62101714f5edb85046cfc06375df4b49c9ece891f8fc57e86027e1fd12a5837be7623c9137840551389e7dec4b2700e1dac0ae69121729
-DIST rust-1.80.1-x86_64-unknown-linux-gnu.tar.xz 167553060 BLAKE2B abc6430cfbbea5dd0ea42a6a3e2796b6f499d5a8343616d310ed22b541bdb15803d882dca9be743a81768bdf55f78c7a803bb594844d7dc3d2bdf09bd3f3d312 SHA512 73e6000af98efe5d90ab484ad88f455f07ccdabe49400d25ac16eeaa51327a5d17eaaae5ef3eb0b04b9aba2015c379eeb2a00076d82ba959e53e3dba470a228b
-DIST rust-1.80.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bb52100a14bfa2775ca7cab5cd0f9dbc489ec3b26a8687876c97b666435c44ce58d86fd9f11d4f4832e79c05fa3ddefd7157edc91a3da25ffeba07da61fbddf9 SHA512 08aad912e47341bff29ee1d1b52cd02df8e609747f7061e61ed6a401d798140a8587378aa992b0d52af955a44d2284eefa00f27a6e94b4ed561c06eed60ad6fe
-DIST rust-1.80.1-x86_64-unknown-linux-musl.tar.xz 248220632 BLAKE2B 7f0954379658df0a5cb0bb4bd49fdd1d216bfa5a200789124667d13ad97f0a5278f57e5b6278a969558c834de43a5d7e3f5ad3e331cc5a4c428dc097453a9394 SHA512 079cd3384c0b7f85d5fb2f02f27febe423ff533d71463097fbaa90449a955699fc25d8e4ae16489f7d7920c34c318c0f2e8185eeb9c6fd64c0851e4366c5eca2
-DIST rust-1.80.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B bad9fdebe33c251b8802ecb0150a074e86becac00874137f793b1805bf36373903fbcfd4744b1086851fd1357c6c81262a7eb321685640d856dc2ee3a37917a7 SHA512 405de0a8676755a63a4fc1e61dd358960efc90e4fd2417cfb4311bfaab5a744397e1f751afbe6a9515c1d92626a79fc782272261eed2f72b37b88fd77a84d7c0
-DIST rust-1.81.0-aarch64-unknown-linux-gnu.tar.xz 230690876 BLAKE2B b037b62f61558f1e26a2d56042a8423480e79f582f9f20248181730518782f55371e6bac982bce532310f939f1c562541fcc93f6f5ea17f6f9a03972fa4c52d0 SHA512 de2e9da3461eba35fef1f22dd4ea90668b8e3d121b1acb3a9d862c291c6784ce6b2ffd9dc5f1bed99625e746ef9ad7a65d74142479fe1d6bd6b678fdeee6cc15
-DIST rust-1.81.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1979ad9d4c2aa30f963565a7058b3251edabd972d80d368d69074d975606962991b23a2ae9f7ebe7225adf06789b0090da48b0a6418e82ae45b2a3e67065714d SHA512 cf6a64e759b2118ce5fc5489f543cbef34900aec37f5416c0836f8990a589677a02f3fe8ca02898089c770507fb61c36a48b21a4f50acd38f1350f077a95a44d
-DIST rust-1.81.0-aarch64-unknown-linux-musl.tar.xz 208644312 BLAKE2B e732d3a4d3ddf0b1fdaac1324567bcea86bbb36dcdc921409bf8484a116dab346e3e5d6cdba0bed82d29f6d144a97db8b471c5c4bf2b339ef0ff86109dda66af SHA512 874cd6bcf870a3f416768a029ee2a32a88fd396e4fbf1150214281379db9f599f68b3dc9eb7c9152e9c17933ab11cfbbc80e19c1a8083343e583bc3994feca17
-DIST rust-1.81.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B ded7ede2657f16f9e054aae69b8bf2f50606674259b258f1acae75c5275966cbde256d957028b7220ff23ee83ea366aa80e6ad059e5880a76031a466aba4e528 SHA512 b31e6a06c8bec7d955bc73a6275535bbf6bf864f55abb1604ff3a78d26bc2a5d384f34df36336164b0dd3a475281949429bca75e736f1e8dccd48d7f84174ee7
-DIST rust-1.81.0-arm-unknown-linux-gnueabi.tar.xz 192297828 BLAKE2B d1ac0b2649039f3b13568906b97627e6dc0e9e0df4c9d784192240e86e1424fb0fc0816c88d45b7baa6c473f175d4765e62a64994bf5b58031a40a6a1fa864ae SHA512 bd64fbac076bf31da5acadd1d3a85adb692d58644c3fcc1f338473eb6ead3bcf4463ec1d7d46b5fb1d55498ff7684958f4b1591425c2aa8184405d01fae261a4
-DIST rust-1.81.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B d2c507d2480665a8a983b5eb2f2eb85265ab1e8aecf278ca44d9f2ca7b5b2cb76577962df6866e81e6daa3912942df3fe0c4bfa75fe18173c4a6c05284bd0393 SHA512 6ca22e556388877bb9be06144ffcafad07126cfedbf77a27c6c3ede0be3ab6803df7d6d3e55cbdb0f210c02a02c7dfd26a3c3e5fd48338b4b7fc71fcb469242e
-DIST rust-1.81.0-arm-unknown-linux-gnueabihf.tar.xz 192357588 BLAKE2B 5236afdc2fb725b2be3a2cab4d66a6ec518038e1a557ea4950f683fe3ec716a6ca0e6ebdf99b8068856c90c3e60220a5f8d1140c23c1c6a5e1f8d0c96fc80d9c SHA512 03d2709ad7ccb87161b65771b4b7882163c9a80a814684ac8687780d5f9da031c9e667bd35baa3af89c3d7275e377c50d36b47fac585454c623acf6f8bab8cf7
-DIST rust-1.81.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B e819b6a30627c1af87f18dcdeff40eccd70249509f07b8157cceee047f756afe0ede798243a0b7a0b9842e42af5833e5a23c3b31771a1f4371711942b744b6ce SHA512 8eeaa15f932b9202acfd4d9210207d231a63cd5f3b77da4001e0d04a2e4f004c259150c83b608a5f84f59b29fe7933455409eb20b66739e3c238e13332e2273a
-DIST rust-1.81.0-armv7-unknown-linux-gnueabihf.tar.xz 197884288 BLAKE2B 060bc7c00c438011ecaad2a51b9edd2e96ac46bb1be602f14fd0eafebb2ef6d4bce979678d9ee7f99c6490565bb57b3f1abd1b3e2f387d247957763762b19082 SHA512 ad149183fa630b3b5c5258fb5b6ad993960c1fee979c4586206463bf76694ddba4854e451b79139a9455503bb3839b1efc92e9c27996f6557b7416078708b1a2
-DIST rust-1.81.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B f61a7fc711100cba3ae558eab15f165ac5c539c7adb1f82b4c83bc82b7a6c5eb294bcc43e351cb28e7886582b9f996b909e55896c267fa1456bc97d9accf34e2 SHA512 fb6851bf3cdc3c3c83ae9e3fdd04cdccbc6f1661c0656f4d9562c1d911c2e82f16854e88ac434d93804587697319545b6c659b68712198d7a62ba3877b4dedde
-DIST rust-1.81.0-i686-unknown-linux-gnu.tar.xz 224016868 BLAKE2B cbc147e42563ba1cd9e39e313d824c78d20e308c95e02bffef02d25b08e92309d5db0e5c0d5e0bfb30d593235bd3a58e6b4614043b3c12a6619406861c48a25b SHA512 b48d934b6644cce7f34db35ae69a4ddc9c9e71851dd1ca221e86d3a6cc107f29e0070515cec3d548e422161a031528927b93d4499e47eeefa87488dfb23591bf
-DIST rust-1.81.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3cfb29d5ff9f00e5f14631466a3a5bc5ae0a3dadeed3e2b22ee000ebc57bf02ca6db5f2ac01756a6fdc753bb4cd83e5e6ed8fd9e356b6325f5b7eb17e7714d7e SHA512 1fd1ca2016876f2456eb832bc9c6d1ab2be237a619d5f6fd4e1ee0f31bdad3d3c1c95d5f45069512d0c8a140115a594be3d1f888fd9b5a342ddd7cda1d5e5ce7
-DIST rust-1.81.0-loongarch64-unknown-linux-gnu.tar.xz 200885152 BLAKE2B 46b23442632d7c3368454a031643a795cf54b732d2c180960008e38be97070708a433d1094f529aa78479fbd89adf1c4ceac38af919f28577e8f766029cf40c3 SHA512 2e090423c8c5ddc1dc29d5ad19cdaebb9abad45bc7a229f911385f50cd2951b587a187ed8deb01aa41aa643465d7c7ac2b91d94c80265c03362de39b99eba82e
-DIST rust-1.81.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 70aa0a550992b32ef666751336ebe2c81f3834d4117942cdc7f8b1eeadb1e5efa5fc63e283517e5535f406ff0e36b4577e559e24281e388a362463ed046fa340 SHA512 70c85d06e5b29968b6efb10efbece2761f81697395bf037581adf9e3aec0141266ae59644b6951e646749bcc23b038d5601b804c6d389b64c87b4be24847db42
-DIST rust-1.81.0-powerpc-unknown-linux-gnu.tar.xz 213304904 BLAKE2B b9d126cc787323ec18e978aaccbb8f92ccf753314fcc6a5d2d496400f4bc7885b543bd7ecae782a6c1dba737708358be26be68f69b47e982617e9a80af47d279 SHA512 a84bdad9877f7c8df2cd495447cca2a0e1448a8a13ee0fbcd2ca6f662317cbebf9425238edf3b5a1277b723b9c44eb4d363339c00a35e0ff86b6a568b61ec2f2
-DIST rust-1.81.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d2fba08b5be0026227e071993272a12e0d27af3b8e3b2fbd039a9c9a229317e9014d2e0f2c981387e6b46907e258e309424c2aef22d3512743d28ce035a85dc3 SHA512 156319d1904834794476d80a3b047a4099b983cb950ab3e9882ff34c0451eddff7cad8b160406abf23df40d195fdce925052177de2243ec8e8415edaac3c643c
-DIST rust-1.81.0-powerpc64-unknown-linux-gnu.tar.xz 210257620 BLAKE2B 686cb5e08befb0d4a19a7e34478c6916abd6aa7a05f09d83a7f8c4fcf59e144371a7442a1f14cd34b149dd056df119d5748ece4311d69af79725cb9b3b662126 SHA512 14f5feaeba8cb9e0a3326e5d74cba9be832fe6570308d5735f7fe7486fe240ef0f3cd2396c853bf34cc784f05fedd7a975dcb922775c59f3262a67fac1383839
-DIST rust-1.81.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d30e35436bbe3869278f4936b2b132d0a243bf0288470e837246a59239c2813025757f684f23c639517836e25895835a7ab0fd488834e2f53cfd1155e1c8a2fd SHA512 3b302c6c999df3e9aa0ab1a0638692cb6f88d44598e00bc862ecd2c384afffb259b8072738055800efc9f0c5b8de07a0fe3de1cab1bde28a9faf1951411a9bf6
-DIST rust-1.81.0-powerpc64le-unknown-linux-gnu.tar.xz 224307656 BLAKE2B 3891f93aa2bfb62fe23b463cdbd7db50182bb175cfadf2969b32d093897f517afb7dd97ecaefe90f220998f7436d41651c32e5a46957c2114d1ebc70834dd917 SHA512 9f6fa6bf0d5ba935b9ad5661287ad8aad5fc8d6b28fdbce6cd81730539d087ea512dba7b0133de08761d12b580b8b1c5d7ca35a4f1277a8bb683c109177ce83a
-DIST rust-1.81.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e96b56de2542596db2db9030382e8d87a9fee884888b58c0050b81487eaf22c2e6d62d11dfc7763a1f647318c2bd0b29e03dcbbe1809ea8162432874758caa7c SHA512 0e568a763276ca4e9c359d6dfc32d1f369ee04e160026c7660ff5f14175022175d23589df9c03c0c8c270d7e74a5e54754d23c8a1b0545b67b6d6c3d3ee82628
-DIST rust-1.81.0-riscv64gc-unknown-linux-gnu.tar.xz 223006516 BLAKE2B 5627ee83ed51726bcdb50757393f2333d76d705e18d65681c1872df6dd3e2beb9a18910b4d5e7da5c30f83b4c9f80117f2ef9c212cdd92eebc6cfce182ef579f SHA512 57cf209d364d43164402cddeed0ebe41b3e3ca69f79cec4f83055cf999493ed1cd87bc852b90707b2809cacceb39a83c4236712220105cd6a71be30250d4ae6e
-DIST rust-1.81.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0eaff43543493165dd86a2ffa30a4039b599302970e5c4380e8640c8c61881480c86b2ef98159ccf464c2fe39e23d14191aa11fccecb8ea8f56feebabfcd0d2a SHA512 4b5b7f01801692aa4087b5f010993d4b14b73be9c2dc964555ba140a939e434400cb4ed4756238725dcb2ab66e5ed67bb1d4688a92fcbc6c8af23f21fdaee568
-DIST rust-1.81.0-s390x-unknown-linux-gnu.tar.xz 212322092 BLAKE2B 11237159a0e70c84e296cd54ac52721a887057ad12269328cf67483d55e603df3f55381c4413871b83fe58a26a52c32ba5e77e7b3426016eb35a207275598c29 SHA512 1ca177d52cd897da497191c4ff869ad9e22047d37f4955e134d51a8ac5a5c24d9ff109a6e955e71df0ac0fa1776939ee39ae384f2fa12ac4740e2aecf92dfd61
-DIST rust-1.81.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a982e7308aca7fac8a93d299a9dcb00f5bea71e1b7061fada84fdf2cbe1cc5bf7ea65abff857a234896b950e06e1bc76c0e796a9570039b2314ac17dc4e9f4ea SHA512 cf8cfdecaeb589db64df6ff0418d68332c8b516d401f0e9bccf9651bb085f57d3bef4941fa60788ca372a9a2407a406dfb24c153a64549925a47c15196815683
-DIST rust-1.81.0-x86_64-unknown-linux-gnu.tar.xz 170439044 BLAKE2B 5377d8972a729b0135c2461adcdc179719a0af99e8e9656b3c9eb487144c306d49dd42737d71195773e4b03e4287215955a7bab34094c19a9f07fba04a706a62 SHA512 a648b735d91348dfda6a66b4ca09f3449ff4abbd1d727fce8c91ec409a82bfc873988b06aa0907e145c486d035df12c68fa14466ccd2148ac0a99d5934335ae2
-DIST rust-1.81.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9f39dedf33efd6fe4d66e10e3cb064851b1637a50e97d3bc19c48bf989e1e94d694df493eb437d2c2e58989933dbb05a7d25c276b26331475f44ea2d9d52909c SHA512 37908051e511cf223e92379ecf577ee1644d6aa13583b622b78d445367ca9e8a4253d77a5237831eeef15607c71e99ae3ef42451803466fad303bb523e13475c
-DIST rust-1.81.0-x86_64-unknown-linux-musl.tar.xz 251142276 BLAKE2B da30177914f8574ff896b64a60279913d48330818c6e96e10d3180964ed542697f29c6ca7e7c81fb1b814e1d9ceb8bbf6e119596b59564a64a08e30ce72ce4b8 SHA512 3b772269362556bebbff72a13abf05f745fd88128367ab1e5879ed3c0f3f5a1f7370faec1b2bce521a38662d58d94a8e4eb6b085c8e0f166979af490492e17c8
-DIST rust-1.81.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B e13afc29a5a06bd9453db22a6bc6894d8fb671ad9e3989852c9348ded5a22c908ec58ddc20b0f2d94e6bd291eb0e9fec09277f95ba9528bb7d333748ebb79959 SHA512 da0689376503be19af92d88e2731296c6a5286cec60d42dcebd4738b23e3e1a1bb303982e2a9e6bc14a8f7a8872321b9e9c25915cde43fa1772ddfdb149997c7
DIST rustc-1.54.0-src.tar.xz 116286856 BLAKE2B 5ac47822646a0b6205f09282168b4d4ddcace9f6bc8f242c890327ca4074626f129514f8bcae5c5556015745f718990cce490658076f5cd3526623439540416b SHA512 5162f85b43ca2c5af93fdbfb2597d75df8a838f7fcc025a5298499ce1043db50f1ea2fbba753e47ce5daad3d80d4b612acf6527ef902c34117763e687fdbbcfa
DIST rustc-1.54.0-src.tar.xz.asc 801 BLAKE2B 5ee9166eaa00e4ffec10fb82b18946d403bc2030c6e04de6449311cbccc2ef1b017044f451a1c19be3a0a9640c4a9a9e4bd22d28e2115509f333ae38eb25e9d4 SHA512 5ad91f43515de14114964db0348cd28c08adc6dc935f110bf339053414b8eab8a40f1074ceffa44ed2df61254f8368d867479400618c44efaa0333642ab49d07
DIST rustc-1.71.1-src.tar.xz 151983068 BLAKE2B 3dfdbc246feb84a79ae94c2de978c5585ee06cf6b683d2245869b62e28f7c79f89cc589f5431537713bf088236a0b824acefc1b68e418e9eb72e1eea98054e3f SHA512 fd0e5a16bdbeb539184513583089e55f681cb772810df357b6b1464853f7022ac02edab3dd155b2262ed0047e2a25dea3808dd078dcdfce9d399384465009db4
@@ -279,23 +49,15 @@ DIST rustc-1.83.0-src.tar.xz 353808388 BLAKE2B 217c85f7351a7c57a2684da2c7c81a320
DIST rustc-1.83.0-src.tar.xz.asc 801 BLAKE2B 3bacb43d50ebba579dc2d4f1726298a7887e303e15f039ef72b840e30d90bc2cf9cdbe4617a9ee113a2b1a48f1982e72cf30323d72cdfb9a65b5b4d734ca0024 SHA512 84b252ccaddc06cb05858ff64f582dd25823818c81b1e3a00362deeda06f09e6c36948fd316d5f0ca5e24949e6f99bb14a14dbd2af1cfbb85e679e27ab0a813c
EBUILD rust-1.54.0.ebuild 16326 BLAKE2B 231bae518a4809defcfdb489c8559437ad81be0b8474610f310ec7213b57ee1a5aefe9ded2f280d18c26f7ab46b51f40ee3adfb4618a3f244961fd16a5c4900e SHA512 e82b2fb84b7a519697b401be81bf1f9feb4dd76b96c70486593fa7d78970d46235e30dad0293d0a2a76f6ac9ffbecfb9d45ae657689eaf35166be09442299e0f
EBUILD rust-1.71.1-r100.ebuild 21745 BLAKE2B 2ade19fa2b8201f4280fd1575ca5342c71dcd7d1fc75b145c519dca7dd7ce359e64246289c90c9c6efbde4676361e8b6c618476bb555200da89e20fb9a41c647 SHA512 511066717bd0973cf756fc503acade2dd026b6ced937623b186ce5e83f885eacef6189b23a0c7d40e0844cbe782628331955196e9fa7adbf94c5f0b8ad0c3a87
-EBUILD rust-1.71.1.ebuild 23467 BLAKE2B cc179525f8be2375e4bb0651b3210986254d027414bdef178a33309a7d99deba0a656454b5f1c84a852be104c93edaf5eec24c6f65f067365ed0a202d140fde0 SHA512 2a81e2a2c49d19d88c7794d809648a4630ca476410ea3270a772fa8d315b56c1b1698fc523ff5451a4336e23993f76d444c6c3b12d491ed89019f075a6fceb83
EBUILD rust-1.74.1-r100.ebuild 23089 BLAKE2B 7ec3327093c79fec12f3d135d4d17d662d72c9a5bc28490a7a1b7c3d510544a2cb0bdd3589fc63bd9847041b99423b1235665056321f68a335db8b157be24c05 SHA512 61bf06c6f5add280d2e2cbce15bb1610fdb585a8f0d10aff218deca430f8dc4e861f748dca067b5bdc4df3a134ec89285fe75e5de540204f3c9a0c1fec58a000
-EBUILD rust-1.74.1.ebuild 25118 BLAKE2B 4de0c3973eb9fff948c6254f6696f0de0b36f4d507fba035ef3873de2cbb92842bf409b371036fda337f6c66fb89fd156f4fbe21c12a72b3ef5ccada586ecfae SHA512 c24a3a85ba60916f12be526f0641546e921b5433f883516bf8e7c5b74362b0c8205c27533094911edc1eca8235bfebfeb820fb316d954509a96d200cf2574151
-EBUILD rust-1.75.0-r1.ebuild 25282 BLAKE2B eebe5ea3b922221821b6dba77dea369248e5c6d952c45d1ca70d6952596b97c891fc29f502dad0192a690939a8f3fad6b5b2538daf72365b0113e8669a7f43d2 SHA512 96aaaccaf93d27b099ba0ec85882ff26b2eaa2021ca17768f607b5043b872a36e4c9d3ac13b4a7b8cbda6f3d7084edb1db11173d081a8972c51aa71a0e506935
EBUILD rust-1.75.0-r100.ebuild 23252 BLAKE2B 7e43ef8c38ca673d308d9ad497cf795523f8225ae5f66ce25e7c7f642c761828d745679a075938d4fb0510124e47ea9203f313b3b5587c252ce657d5cf086233 SHA512 de4bf66f616dc6ee415d40c65bc1afe8581ce0bbda27a5a2ba61cd4e714498857c3485bedfaa1fb9cc1df6a35da70173cc35fe586928b33b5a097f1ba9fac4e5
EBUILD rust-1.76.0-r100.ebuild 19759 BLAKE2B f45ded968ca55883b4c4cd3b166ddb683dcb6b77c6fe2fddc5705474f2f6545294d4876402445e1a9d8f288544686d3e572c83f30aaa0140a0a96180b27c8015 SHA512 71f29b6e508652f7c18f9cf5d4932d2a6a39db11d714cecc229007cde0b33c6aa50f84598c55c45b647e27f62b41ef4659c5cfddcd437e15dae40babd2e50114
EBUILD rust-1.77.1-r100.ebuild 23215 BLAKE2B fc9955ad9d4f22d3186870dae004c1e21d76fd481a1af60c5a68dc7dd0639f818f31b2a5e30ab14add57424888e41f40fc0cb91a50acd646bcb70d49ba69756b SHA512 ecc7fb5b4f9bdc03e8eb9b395e477e347eba0eef1f0561c48f7bbb32646988b2e94f0ad5d5f909873fa881a436cab65027f3c2da34dbc72292df4ad71626d5b3
-EBUILD rust-1.77.1.ebuild 25245 BLAKE2B d514569674cc230e4959a9e73d38f14b263dac22fa7ec3f91c417d142caf65f5920ab44bc28e0e23c32bc7113f73c1b27fbf74a82215e35c33dd97ac4b3f2ee4 SHA512 b36d066101a248f31560fd7db39f9367e42618ba882c43df3807fc70823ec319365096623e2d41dd37a9babd83d2d55c007145ae7185a1818bd926783ad3eb5c
EBUILD rust-1.78.0-r100.ebuild 23450 BLAKE2B e151454124b50ac83e7f285cd5bb17d4815ac3333cca0c503f293bc3247e3889d126ab87cfd3eb49effaff0ba5bafe3797b24a7a84f33a481bb44280ec6f2b87 SHA512 9bab2222afddf712b5cdaed9c90fccf5510f61cb87ad00762167f69e23db4b5b2052b62371cd82c58abfa06f1c1a9624371b4f765bf0362d3147758123f655b8
EBUILD rust-1.79.0-r100.ebuild 23450 BLAKE2B e151454124b50ac83e7f285cd5bb17d4815ac3333cca0c503f293bc3247e3889d126ab87cfd3eb49effaff0ba5bafe3797b24a7a84f33a481bb44280ec6f2b87 SHA512 9bab2222afddf712b5cdaed9c90fccf5510f61cb87ad00762167f69e23db4b5b2052b62371cd82c58abfa06f1c1a9624371b4f765bf0362d3147758123f655b8
-EBUILD rust-1.79.0.ebuild 25480 BLAKE2B d2087cce728db5d5383e324476ba5380f95776d0d4742917742d9bd332b643c498f7a30ae32045d44a7aaeba7f235a614add12aa739765e4c308a02027ef02b4 SHA512 04ca9c5dcf088a0398ab05a39eb77119dd495248217fffe7451736cdee3c3ab1a274a54c4b6257384d39678cc87102d3e2ea3f0dcb40cbd657a0e07b7b93eaac
EBUILD rust-1.80.1-r100.ebuild 23322 BLAKE2B db70df6663ce1ddceb947f19c4df11498fc055f3e380e52ae683922a7399953c2cb679bffba4f8dcd7e08af9afe36c86316745d528c331aa502c87da9f4adccd SHA512 032506f4acfa88b543fd2c96ca164adb3272fa5ae4b3c9a6ba223cd572dd32a71315cad77ae2af86b760c2b26cd865f9be126b9ea6fd43965e91375842032b82
-EBUILD rust-1.80.1.ebuild 25412 BLAKE2B 4905111b95c2710d39f414f7eb645a5906e24258608a3fd4b3e4d160846ca0a546a113474079ff8772012469bda7d7b915dc3de0ebd7c3f8038df3e35ef5efe2 SHA512 e10c2e029100faa54caec1fe98fb19c23c8b06a1f6b1a52b899eb1761945e7de1a835e4aa2526c060b952cd12d52f70a28118bff80d2ba51053cf88eef460dde
EBUILD rust-1.81.0-r100.ebuild 23519 BLAKE2B a4dc37ae3972353f19dc803a7a3a0d08db29b25227c0c27ff8c409bd97e9af5c17acd8cc3d92de58ff302eddffb4a4583518f959959a534f31ca04461d2397ef SHA512 1676af16f4273d23ac2bad14d8b0ff47b1f6c66d379c688907cc0646b4866fe7c45bf4a4129ec1fc910970d7027d814d7f524a7860afa852d138bbfe2bf920ae
-EBUILD rust-1.81.0.ebuild 25380 BLAKE2B c213ba368f9f49be7e3c6f0260684f9b7c7f1afa7727ca7a7db7802b5a40a9009756464f9fb5a3165cbb5161e3e18181973a67d97a2e1cde13e4d6733ac5f2b9 SHA512 56501ddc2d06c2e7ff98e704a255d850897028d115588bca21ba43530f6d8a39ad684642e802faded8ae83da06dd6d6e503c76759e6d1df9f0fdebc0f6d6ec6c
EBUILD rust-1.82.0-r100.ebuild 23665 BLAKE2B b8f5f4b29652843825b5bb9a8522d7f86260bf6e2a9901e307173885e35df5c3445d0e1fc04520a8c6f89cb42d038504a661fe3f9c6d9d913e6f83784e1d2092 SHA512 79c3a343e555fafe21eb016bd86af5525fae9b8d4c5ac44960c70fb129688fa1dc1aba3ed997d1e5ef238530d52943edf48475a0364e73a36ebe87f746abf29f
EBUILD rust-1.82.0-r101.ebuild 23714 BLAKE2B cf0423e0b6bb36132d7cf3a2e182f015c4f91a47cded2b852128a23f098032eb2f62fedbbc1d14ec6754d9c32aff193a871d480d017c8323a6f4118d8955d311 SHA512 aaf6cf387e689a6e7aee3f64dfaf5b5ab5644b8e64599c8d08e3ffa3ea7280c17d666c55fbbae1e9bd455bf92e84ad0251adcf0e06bfadc4c7ba69174dedf3f2
-EBUILD rust-1.82.0.ebuild 25639 BLAKE2B 276ef627db58d7d7cb85f4f84f0c68ef36da91822d75c83f13c14ac73b35729b2ce354f79506122449cdb8517bb34a6c1f13dc158987e05b088ae96e1ec33f11 SHA512 8dd95a85eff44f5567ab6f038399cddbd111213810a1390dbef0ed9d68284c46368511006158935db3d9b70f06851e7e3a562a9c0044f85a532dc6c812a38c24
EBUILD rust-1.83.0.ebuild 22905 BLAKE2B 0ba626df3d0cde5727a5c1511db8a39f23b5ba032830044c0e5d9a3844d4a3efd7814494bde9923543bb873203ca62f5c9bce5a727227f2e9e9c4be6839de6c8 SHA512 f9b958dbf0e845e16f72c9dce45c3632bab68d66251ea5580de78ae2dbaa3c0efb7dfa2a3689a9645567d92f5cd8d9bf518555aadc69cfbac64f635574388435
-MISC metadata.xml 1945 BLAKE2B cf3ed0b2550564faee94e53e21deb0e905b38cd45c503ba18f55c36f13093fa65c4dac8e544c891c9378b2ce32912cab1a1a0b61a277ff29f5288b672f4a218d SHA512 a28dc5b78e15aaeec5ccf028a053c3df6a12b24bcfb6e8948e2e25b3c04cc8ede5973f1e57c723081355853152baa8c8219e36bb603b714628e71587d2bba45e
+MISC metadata.xml 1708 BLAKE2B ab2730e5846922c119865b26cf317a9d150321dca15500b2254fe6d0580e939a67d3b42ef1b74268ea629e843c251c5d1edc2e88edfe590c0c6e7d1b98b38b04 SHA512 6b7c99fed72711e3bdb024e6873ef0a372c7456ddcc56af239c6f8bacfff688ad8246ded6b6489172f94dbe5921159be42021248200afea2b304a529dcff7485
diff --git a/dev-lang/rust/metadata.xml b/dev-lang/rust/metadata.xml
index 85c7e7cb871e..c634998b3552 100644
--- a/dev-lang/rust/metadata.xml
+++ b/dev-lang/rust/metadata.xml
@@ -23,11 +23,9 @@
<flag name="miri">Install miri, an interpreter for Rust's mid-level intermediate representation (requires USE=nightly, sometimes is broken)</flag>
<flag name="nightly">Enable nightly (UNSTABLE) features (NOTE: it does not install nightly version, just enables features marked as nightly at time of release)</flag>
<flag name="parallel-compiler">Build a multi-threaded rustc (experimental, not tested by upstream)</flag>
- <flag name="profiler">Build the profiler runtime and rust-demangler tool (needed for '-C profile-generate' or '-C instrument-coverage' codegen opts)</flag>
<flag name="rustfmt">Install rustfmt, Rust code formatter</flag>
<flag name="rust-analyzer">Install rust-analyzer, A Rust compiler front-end for IDEs (language server)</flag>
<flag name="rust-src">Install rust-src, needed by developer tools and for build-std (cross)</flag>
- <flag name="system-bootstrap">Bootstrap using installed rust compiler</flag>
<flag name="system-llvm">Use the system LLVM installation</flag>
<flag name="wasm">Build support for the wasm32-unknown-unknown target</flag>
</use>
diff --git a/dev-lang/rust/rust-1.71.1.ebuild b/dev-lang/rust/rust-1.71.1.ebuild
deleted file mode 100644
index 97c920a7799f..000000000000
--- a/dev-lang/rust/rust-1.71.1.ebuild
+++ /dev/null
@@ -1,748 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..12} )
-
-inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
- multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
-
-if [[ ${PV} = *beta* ]]; then
- betaver=${PV//*beta}
- BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
- MY_P="rustc-beta"
- SLOT="beta/${PV}"
- SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
-else
- ABI_VER="$(ver_cut 1-2)"
- SLOT="stable/${ABI_VER}"
- MY_P="rustc-${PV}"
- SRC="${MY_P}-src.tar.xz"
- KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
-fi
-
-RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
-
-DESCRIPTION="Language empowering everyone to build reliable and efficient software"
-HOMEPAGE="https://www.rust-lang.org/"
-
-SRC_URI="
- https://static.rust-lang.org/dist/${SRC}
- verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
- !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
-"
-
-# keep in sync with llvm ebuild of the same version as bundled one.
-ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai LoongArch Mips MSP430
- NVPTX PowerPC RISCV Sparc SystemZ VE WebAssembly X86 XCore )
-ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
-LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
-
-LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
-
-IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler profiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
-
-# Please keep the LLVM dependency block separate. Since LLVM is slotted,
-# we need to *really* make sure we're not pulling more than one slot
-# simultaneously.
-
-# How to use it:
-# List all the working slots in LLVM_VALID_SLOTS, newest first.
-LLVM_VALID_SLOTS=( 16 )
-LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
-
-# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
-# (-) usedep needed because we may build with older llvm without that target
-LLVM_DEPEND="|| ( "
-for _s in ${LLVM_VALID_SLOTS[@]}; do
- LLVM_DEPEND+=" ( "
- for _x in ${ALL_LLVM_TARGETS[@]}; do
- LLVM_DEPEND+="
- ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )
- wasm? ( sys-devel/lld:${_s} )"
- done
- LLVM_DEPEND+=" )"
-done
-unset _s _x
-LLVM_DEPEND+=" )
- <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
-"
-
-# to bootstrap we need at least exactly previous version, or same.
-# most of the time previous versions fail to bootstrap with newer
-# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
-# but it fails to bootstrap with 1.48.x
-# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
-RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
-RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
-BOOTSTRAP_DEPEND="||
- (
- =dev-lang/rust-"${RUST_DEP_PREV}"
- =dev-lang/rust-bin-"${RUST_DEP_PREV}"
- =dev-lang/rust-"${RUST_DEP_CURR}"
- =dev-lang/rust-bin-"${RUST_DEP_CURR}"
- )
-"
-
-BDEPEND="${PYTHON_DEPS}
- app-eselect/eselect-rust
- || (
- >=sys-devel/gcc-4.7
- >=sys-devel/clang-3.5
- )
- system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
- !system-llvm? (
- >=dev-build/cmake-3.13.4
- app-alternatives/ninja
- )
- test? ( dev-debug/gdb )
- verify-sig? ( sec-keys/openpgp-keys-rust )
-"
-
-DEPEND="
- >=app-arch/xz-utils-5.2
- net-misc/curl:=[http2,ssl]
- sys-libs/zlib:=
- dev-libs/openssl:0=
- system-llvm? (
- ${LLVM_DEPEND}
- llvm-libunwind? ( sys-libs/llvm-libunwind:= )
- )
- !system-llvm? (
- !llvm-libunwind? (
- elibc_musl? ( sys-libs/libunwind:= )
- )
- )
-"
-
-RDEPEND="${DEPEND}
- app-eselect/eselect-rust
- sys-apps/lsb-release
-"
-
-REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
- miri? ( nightly )
- parallel-compiler? ( nightly )
- rust-analyzer? ( rust-src )
- test? ( ${ALL_LLVM_TARGETS[*]} )
- wasm? ( llvm_targets_WebAssembly )
- x86? ( cpu_flags_x86_sse2 )
-"
-
-# we don't use cmake.eclass, but can get a warning
-CMAKE_WARN_UNUSED_CLI=no
-
-QA_FLAGS_IGNORED="
- usr/lib/${PN}/${PV}/bin/.*
- usr/lib/${PN}/${PV}/libexec/.*
- usr/lib/${PN}/${PV}/lib/lib.*.so
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_SONAME="
- usr/lib/${PN}/${PV}/lib/lib.*.so.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_PRESTRIPPED="
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
-"
-
-# An rmeta file is custom binary format that contains the metadata for the crate.
-# rmeta files do not support linking, since they do not contain compiled object files.
-# so we can safely silence the warning for this QA check.
-QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
-
-# causes double bootstrap
-RESTRICT="test"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
-
-PATCHES=(
- "${FILESDIR}"/1.71.1-fix-bootstrap-version-comparison.patch
- "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
- "${FILESDIR}"/1.62.1-musl-dynamic-linking.patch
- "${FILESDIR}"/1.67.0-doc-wasm.patch
-)
-
-S="${WORKDIR}/${MY_P}-src"
-
-toml_usex() {
- usex "${1}" true false
-}
-
-bootstrap_rust_version_check() {
- # never call from pkg_pretend. eselect-rust may be not installed yet.
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
- local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
- local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
- eerror "Rust >=${rustc_wanted} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too old"
- elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
- eerror "Rust <${rustc_toonew} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too new"
- else
- einfo "Using rust ${rustc_version} to build"
- fi
-}
-
-pre_build_checks() {
- local M=8192
- # multiply requirements by 1.3 if we are doing x86-multilib
- if use amd64; then
- M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
- fi
- M=$(( $(usex clippy 128 0) + ${M} ))
- M=$(( $(usex miri 128 0) + ${M} ))
- M=$(( $(usex rustfmt 256 0) + ${M} ))
- # add 2G if we compile llvm and 256M per llvm_target
- if ! use system-llvm; then
- M=$(( 2048 + ${M} ))
- local ltarget
- for ltarget in ${ALL_LLVM_TARGETS[@]}; do
- M=$(( $(usex ${ltarget} 256 0) + ${M} ))
- done
- fi
- M=$(( $(usex wasm 256 0) + ${M} ))
- M=$(( $(usex debug 2 1) * ${M} ))
- eshopts_push -s extglob
- if is-flagq '-g?(gdb)?([1-9])'; then
- M=$(( 15 * ${M} / 10 ))
- fi
- eshopts_pop
- M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
- M=$(( $(usex doc 256 0) + ${M} ))
- CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
-}
-
-llvm_check_deps() {
- has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
-}
-
-# Is LLVM being linked against libc++?
-is_libcxx_linked() {
- local code='#include <ciso646>
-#if defined(_LIBCPP_VERSION)
- HAVE_LIBCXX
-#endif
-'
- local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
- [[ ${out} == *HAVE_LIBCXX* ]]
-}
-
-pkg_pretend() {
- pre_build_checks
-}
-
-pkg_setup() {
- pre_build_checks
- python-any-r1_pkg_setup
-
- export LIBGIT2_NO_PKG_CONFIG=1 #749381
-
- use system-bootstrap && bootstrap_rust_version_check
-
- if use system-llvm; then
- llvm_pkg_setup
-
- local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- export LLVM_LINK_SHARED=1
- export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
- fi
-}
-
-esetup_unwind_hack() {
- # https://bugs.gentoo.org/870280
- # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
- # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
- # the whole idea is for stage0 to bootstrap with fake libgcc_s.
- # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
- local fakelib="${T}/fakelib"
- mkdir -p "${fakelib}" || die
- # we need both symlinks, one for cargo runtime, other for linker.
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
- export LD_LIBRARY_PATH="${fakelib}"
- export RUSTFLAGS+=" -L${fakelib}"
- # this is a literally magic variable that gets through cargo cache, without it some
- # crates ignore RUSTFLAGS.
- # this variable can not contain leading space.
- export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
-}
-
-src_prepare() {
- if ! use system-bootstrap; then
- has_version sys-devel/gcc || esetup_unwind_hack
- local rust_stage0_root="${WORKDIR}"/rust-stage0
- local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
-
- "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
- --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
- fi
-
- default
-}
-
-src_configure() {
- filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
-
- local rust_target="" rust_targets="" arch_cflags
-
- # Collect rust target names to compile standard libs for all ABIs.
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
- done
- if use wasm; then
- rust_targets+=",\"wasm32-unknown-unknown\""
- if use system-llvm; then
- # un-hardcode rust-lld linker for this target
- # https://bugs.gentoo.org/715348
- sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
- fi
- fi
- rust_targets="${rust_targets#,}"
-
- # cargo and rustdoc are mandatory and should always be included
- local tools='"cargo","rustdoc"'
- use clippy && tools+=',"clippy"'
- use miri && tools+=',"miri"'
- use profiler && tools+=',"rust-demangler"'
- use rustfmt && tools+=',"rustfmt"'
- use rust-analyzer && tools+=',"rust-analyzer"'
- use rust-src && tools+=',"src"'
-
- local rust_stage0_root
- if use system-bootstrap; then
- local printsysroot
- printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
- rust_stage0_root="${printsysroot}"
- else
- rust_stage0_root="${WORKDIR}"/rust-stage0
- fi
- # in case of prefix it will be already prefixed, as --print sysroot returns full path
- [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
-
- rust_target="$(rust_abi)"
-
- local cm_btype="$(usex debug DEBUG RELEASE)"
- cat <<- _EOF_ > "${S}"/config.toml
- changelog-seen = 2
- [llvm]
- download-ci-llvm = false
- optimize = $(toml_usex !debug)
- release-debuginfo = $(toml_usex debug)
- assertions = $(toml_usex debug)
- ninja = true
- targets = "${LLVM_TARGETS// /;}"
- experimental-targets = ""
- link-shared = $(toml_usex system-llvm)
- $(if is_libcxx_linked; then
- # https://bugs.gentoo.org/732632
- echo "use-libcxx = true"
- echo "static-libstdcpp = false"
- fi)
- $(case "${rust_target}" in
- i586-*-linux-*)
- # https://github.com/rust-lang/rust/issues/93059
- echo 'cflags = "-fcf-protection=none"'
- echo 'cxxflags = "-fcf-protection=none"'
- echo 'ldflags = "-fcf-protection=none"'
- ;;
- *)
- ;;
- esac)
- enable-warnings = false
- [llvm.build-config]
- CMAKE_VERBOSE_MAKEFILE = "ON"
- CMAKE_C_FLAGS_${cm_btype} = "${CFLAGS}"
- CMAKE_CXX_FLAGS_${cm_btype} = "${CXXFLAGS}"
- CMAKE_EXE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}"
- CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}"
- CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}"
- CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = "${ARFLAGS}"
- [build]
- build-stage = 2
- test-stage = 2
- build = "${rust_target}"
- host = ["${rust_target}"]
- target = [${rust_targets}]
- cargo = "${rust_stage0_root}/bin/cargo"
- rustc = "${rust_stage0_root}/bin/rustc"
- rustfmt = "${rust_stage0_root}/bin/rustfmt"
- docs = $(toml_usex doc)
- compiler-docs = false
- submodules = false
- python = "${EPYTHON}"
- locked-deps = true
- vendor = true
- extended = true
- tools = [${tools}]
- verbose = 2
- sanitizers = false
- profiler = $(toml_usex profiler)
- cargo-native-static = false
- [install]
- prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
- sysconfdir = "etc"
- docdir = "share/doc/rust"
- bindir = "bin"
- libdir = "lib"
- mandir = "share/man"
- [rust]
- # https://github.com/rust-lang/rust/issues/54872
- codegen-units-std = 1
- optimize = true
- debug = $(toml_usex debug)
- debug-assertions = $(toml_usex debug)
- debug-assertions-std = $(toml_usex debug)
- debuginfo-level = $(usex debug 2 0)
- debuginfo-level-rustc = $(usex debug 2 0)
- debuginfo-level-std = $(usex debug 2 0)
- debuginfo-level-tools = $(usex debug 2 0)
- debuginfo-level-tests = 0
- backtrace = true
- incremental = false
- default-linker = "$(tc-getCC)"
- parallel-compiler = $(toml_usex parallel-compiler)
- channel = "$(usex nightly nightly stable)"
- description = "gentoo"
- rpath = false
- verbose-tests = true
- optimize-tests = $(toml_usex !debug)
- codegen-tests = true
- dist-src = false
- remap-debuginfo = true
- lld = $(usex system-llvm false $(toml_usex wasm))
- # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
- # https://github.com/rust-lang/rust/issues/74976
- # https://github.com/rust-lang/rust/issues/76526
- deny-warnings = $(usex wasm $(usex doc false true) true)
- backtrace-on-ice = true
- jemalloc = false
- lto = "$(usex lto fat off)"
- [dist]
- src-tarball = false
- compression-formats = ["xz"]
- compression-profile = "balanced"
- _EOF_
-
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
- arch_cflags="$(get_abi_CFLAGS ${v##*.})"
-
- export CFLAGS_${rust_target//-/_}="${arch_cflags}"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${rust_target}]
- ar = "$(tc-getAR)"
- cc = "$(tc-getCC)"
- cxx = "$(tc-getCXX)"
- linker = "$(tc-getCC)"
- ranlib = "$(tc-getRANLIB)"
- llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
- # but we patch it and set to false here as well
- if use elibc_musl; then
- cat <<- _EOF_ >> "${S}"/config.toml
- crt-static = false
- _EOF_
- fi
- done
- if use wasm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.wasm32-unknown-unknown]
- linker = "$(usex system-llvm lld rust-lld)"
- # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
- profiler = false
- _EOF_
- fi
-
- if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
- # experimental cross support
- # discussion: https://bugs.gentoo.org/679878
- # TODO: c*flags, clang, system-llvm, cargo.eclass target support
- # it would be much better if we could split out stdlib
- # complilation to separate ebuild and abuse CATEGORY to
- # just install to /usr/lib/rustlib/<target>
-
- # extra targets defined as a bash array
- # spec format: <LLVM target>:<rust-target>:<CTARGET>
- # best place would be /etc/portage/env/dev-lang/rust
- # Example:
- # RUST_CROSS_TARGETS=(
- # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
- # )
- # no extra hand holding is done, no target transformations, all
- # values are passed as-is with just basic checks, so it's up to user to supply correct values
- # valid rust targets can be obtained with
- # rustc --print target-list
- # matching cross toolchain has to be installed
- # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
- # only gcc toolchains installed with crossdev are checked for now.
-
- # BUG: we can't pass host flags to cross compiler, so just filter for now
- # BUG: this should be more fine-grained.
- filter-flags '-mcpu=*' '-march=*' '-mtune=*'
-
- local cross_target_spec
- for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
- # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
- local cross_llvm_target="${cross_target_spec%%:*}"
- # extracts toolchain triples, <rust-target>:<CTARGET>
- local cross_triples="${cross_target_spec#*:}"
- # extracts first element after before : separator
- local cross_rust_target="${cross_triples%%:*}"
- # extracts last element after : separator
- local cross_toolchain="${cross_triples##*:}"
- use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
- command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${cross_rust_target}]
- ar = "${cross_toolchain}-ar"
- cc = "${cross_toolchain}-gcc"
- cxx = "${cross_toolchain}-g++"
- linker = "${cross_toolchain}-gcc"
- ranlib = "${cross_toolchain}-ranlib"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- if [[ "${cross_toolchain}" == *-musl* ]]; then
- cat <<- _EOF_ >> "${S}"/config.toml
- musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
- _EOF_
- fi
-
- # append cross target to "normal" target list
- # example 'target = ["powerpc64le-unknown-linux-gnu"]'
- # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
-
- rust_targets="${rust_targets},\"${cross_rust_target}\""
- sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
-
- ewarn
- ewarn "Enabled ${cross_rust_target} rust target"
- ewarn "Using ${cross_toolchain} cross toolchain"
- ewarn
- if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
- ewarn "'sys-devel/binutils[multitarget]' is not installed"
- ewarn "'strip' will be unable to strip cross libraries"
- ewarn "cross targets will be installed with full debug information"
- ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
- ewarn
- ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
- ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
- ewarn
- fi
- done
- fi # I_KNOW_WHAT_I_AM_DOING_CROSS
-
- einfo "Rust configured with the following flags:"
- echo
- echo RUSTFLAGS="\"${RUSTFLAGS}\""
- echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
- echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
- echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
- env | grep "CARGO_TARGET_.*_RUSTFLAGS="
- env | grep "CFLAGS_.*"
- echo
- einfo "config.toml contents:"
- cat "${S}"/config.toml || die
- echo
-}
-
-src_compile() {
- RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-}
-
-src_test() {
- # https://rustc-dev-guide.rust-lang.org/tests/intro.html
-
- # those are basic and codegen tests.
- local tests=(
- codegen
- codegen-units
- compile-fail
- incremental
- mir-opt
- pretty
- run-make
- )
-
- # fails if llvm is not built with ALL targets.
- # and known to fail with system llvm sometimes.
- use system-llvm || tests+=( assembly )
-
- # fragile/expensive/less important tests
- # or tests that require extra builds
- # TODO: instead of skipping, just make some nonfatal.
- if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
- tests+=(
- rustdoc
- rustdoc-js
- rustdoc-js-std
- rustdoc-ui
- run-make-fulldeps
- ui
- ui-fulldeps
- )
- fi
-
- local i failed=()
- einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
- for i in "${tests[@]}"; do
- local t="src/test/${i}"
- einfo "rust_src_test: running ${t}"
- if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
- -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
- then
- failed+=( "${t}" )
- eerror "rust_src_test: ${t} failed"
- fi
- done
-
- if [[ ${#failed[@]} -ne 0 ]]; then
- eerror "rust_src_test: failure summary: ${failed[@]}"
- die "aborting due to test failures"
- fi
-}
-
-src_install() {
- DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-
- # bug #689562, #689160
- rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
- rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
- newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
-
- local symlinks=(
- cargo
- rustc
- rustdoc
- rust-gdb
- rust-gdbgui
- rust-lldb
- )
-
- use clippy && symlinks+=( clippy-driver cargo-clippy )
- use miri && symlinks+=( miri cargo-miri )
- use profiler && symlinks+=( rust-demangler )
- use rustfmt && symlinks+=( rustfmt cargo-fmt )
- use rust-analyzer && symlinks+=( rust-analyzer )
-
- einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
- local i
- for i in "${symlinks[@]}"; do
- # we need realpath on /usr/bin/* symlink return version-appended binary path.
- # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
- # need to fix eselect-rust to remove this hack.
- local ver_i="${i}-${PV}"
- if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
- einfo "Installing ${i} symlink"
- ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
- else
- ewarn "${i} symlink requested, but source file not found"
- ewarn "please report this"
- fi
- dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
- done
-
- # symlinks to switch components to active rust in eselect
- dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
- dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
- dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
- dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
- dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
-
- newenvd - "50${P}" <<-_EOF_
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
- _EOF_
-
- rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
-
- # note: eselect-rust adds EROOT to all paths below
- cat <<-_EOF_ > "${T}/provider-${P}"
- /usr/bin/cargo
- /usr/bin/rustdoc
- /usr/bin/rust-gdb
- /usr/bin/rust-gdbgui
- /usr/bin/rust-lldb
- /usr/lib/rustlib
- /usr/lib/rust/lib
- /usr/lib/rust/libexec
- /usr/lib/rust/man
- /usr/share/doc/rust
- _EOF_
-
- if use clippy; then
- echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
- echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
- fi
- if use miri; then
- echo /usr/bin/miri >> "${T}/provider-${P}"
- echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
- fi
- if use profiler; then
- echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
- fi
- if use rustfmt; then
- echo /usr/bin/rustfmt >> "${T}/provider-${P}"
- echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
- fi
- if use rust-analyzer; then
- echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
- fi
-
- insinto /etc/env.d/rust
- doins "${T}/provider-${P}"
-
- if use dist; then
- insinto "/usr/lib/${PN}/${PV}/dist"
- doins -r "${S}/build/dist/."
- fi
-}
-
-pkg_postinst() {
- eselect rust update
-
- if has_version dev-debug/gdb || has_version dev-debug/lldb; then
- elog "Rust installs a helper script for calling GDB and LLDB,"
- elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
- fi
-
- if has_version app-editors/emacs; then
- elog "install app-emacs/rust-mode to get emacs support for rust."
- fi
-
- if has_version app-editors/gvim || has_version app-editors/vim; then
- elog "install app-vim/rust-vim to get vim support for rust."
- fi
-}
-
-pkg_postrm() {
- eselect rust cleanup
-}
diff --git a/dev-lang/rust/rust-1.74.1.ebuild b/dev-lang/rust/rust-1.74.1.ebuild
deleted file mode 100644
index 21458614c151..000000000000
--- a/dev-lang/rust/rust-1.74.1.ebuild
+++ /dev/null
@@ -1,784 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..12} )
-
-inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
- multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
-
-if [[ ${PV} = *beta* ]]; then
- betaver=${PV//*beta}
- BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
- MY_P="rustc-beta"
- SLOT="beta/${PV}"
- SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
-else
- ABI_VER="$(ver_cut 1-2)"
- SLOT="stable/${ABI_VER}"
- MY_P="rustc-${PV}"
- SRC="${MY_P}-src.tar.xz"
- KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86"
-fi
-
-RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
-
-DESCRIPTION="Language empowering everyone to build reliable and efficient software"
-HOMEPAGE="https://www.rust-lang.org/"
-
-SRC_URI="
- https://static.rust-lang.org/dist/${SRC}
- verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
- !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
-"
-
-# keep in sync with llvm ebuild of the same version as bundled one.
-ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
- LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
- WebAssembly X86 XCore Xtensa )
-ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
-LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
-
-LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-
-IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler profiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
-
-# Please keep the LLVM dependency block separate. Since LLVM is slotted,
-# we need to *really* make sure we're not pulling more than one slot
-# simultaneously.
-
-# How to use it:
-# List all the working slots in LLVM_VALID_SLOTS, newest first.
-LLVM_VALID_SLOTS=( 17 )
-LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
-
-# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
-# (-) usedep needed because we may build with older llvm without that target
-LLVM_DEPEND="|| ( "
-for _s in ${LLVM_VALID_SLOTS[@]}; do
- LLVM_DEPEND+=" ( "
- for _x in ${ALL_LLVM_TARGETS[@]}; do
- LLVM_DEPEND+="
- ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )
- wasm? ( sys-devel/lld:${_s} )"
- done
- LLVM_DEPEND+=" )"
-done
-unset _s _x
-LLVM_DEPEND+=" )
- <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
-"
-
-# to bootstrap we need at least exactly previous version, or same.
-# most of the time previous versions fail to bootstrap with newer
-# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
-# but it fails to bootstrap with 1.48.x
-# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
-RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
-RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
-BOOTSTRAP_DEPEND="||
- (
- =dev-lang/rust-"${RUST_DEP_PREV}"
- =dev-lang/rust-bin-"${RUST_DEP_PREV}"
- =dev-lang/rust-"${RUST_DEP_CURR}"
- =dev-lang/rust-bin-"${RUST_DEP_CURR}"
- )
-"
-
-BDEPEND="${PYTHON_DEPS}
- app-eselect/eselect-rust
- || (
- >=sys-devel/gcc-4.7
- >=sys-devel/clang-3.5
- )
- system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
- !system-llvm? (
- >=dev-build/cmake-3.13.4
- app-alternatives/ninja
- )
- test? ( dev-debug/gdb )
- verify-sig? ( sec-keys/openpgp-keys-rust )
-"
-
-DEPEND="
- >=app-arch/xz-utils-5.2
- net-misc/curl:=[http2,ssl]
- sys-libs/zlib:=
- dev-libs/openssl:0=
- system-llvm? (
- ${LLVM_DEPEND}
- llvm-libunwind? ( sys-libs/llvm-libunwind:= )
- )
- !system-llvm? (
- !llvm-libunwind? (
- elibc_musl? ( sys-libs/libunwind:= )
- )
- )
-"
-
-RDEPEND="${DEPEND}
- app-eselect/eselect-rust
- sys-apps/lsb-release
-"
-
-REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
- miri? ( nightly )
- parallel-compiler? ( nightly )
- rust-analyzer? ( rust-src )
- test? ( ${ALL_LLVM_TARGETS[*]} )
- wasm? ( llvm_targets_WebAssembly )
- x86? ( cpu_flags_x86_sse2 )
-"
-
-# we don't use cmake.eclass, but can get a warning
-CMAKE_WARN_UNUSED_CLI=no
-
-QA_FLAGS_IGNORED="
- usr/lib/${PN}/${PV}/bin/.*
- usr/lib/${PN}/${PV}/libexec/.*
- usr/lib/${PN}/${PV}/lib/lib.*.so
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_SONAME="
- usr/lib/${PN}/${PV}/lib/lib.*.so.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_PRESTRIPPED="
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
-"
-
-# An rmeta file is custom binary format that contains the metadata for the crate.
-# rmeta files do not support linking, since they do not contain compiled object files.
-# so we can safely silence the warning for this QA check.
-QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
-
-# causes double bootstrap
-RESTRICT="test"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
-
-PATCHES=(
- "${FILESDIR}"/1.74.1-cross-compile-libz.patch
- #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
- "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
- "${FILESDIR}"/1.62.1-musl-dynamic-linking.patch
- "${FILESDIR}"/1.67.0-doc-wasm.patch
-)
-
-S="${WORKDIR}/${MY_P}-src"
-
-clear_vendor_checksums() {
- sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
-}
-
-toml_usex() {
- usex "${1}" true false
-}
-
-bootstrap_rust_version_check() {
- # never call from pkg_pretend. eselect-rust may be not installed yet.
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
- local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
- local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
- eerror "Rust >=${rustc_wanted} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too old"
- elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
- eerror "Rust <${rustc_toonew} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too new"
- else
- einfo "Using rust ${rustc_version} to build"
- fi
-}
-
-pre_build_checks() {
- local M=8192
- # multiply requirements by 1.3 if we are doing x86-multilib
- if use amd64; then
- M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
- fi
- M=$(( $(usex clippy 128 0) + ${M} ))
- M=$(( $(usex miri 128 0) + ${M} ))
- M=$(( $(usex rustfmt 256 0) + ${M} ))
- # add 2G if we compile llvm and 256M per llvm_target
- if ! use system-llvm; then
- M=$(( 2048 + ${M} ))
- local ltarget
- for ltarget in ${ALL_LLVM_TARGETS[@]}; do
- M=$(( $(usex ${ltarget} 256 0) + ${M} ))
- done
- fi
- M=$(( $(usex wasm 256 0) + ${M} ))
- M=$(( $(usex debug 2 1) * ${M} ))
- eshopts_push -s extglob
- if is-flagq '-g?(gdb)?([1-9])'; then
- M=$(( 15 * ${M} / 10 ))
- fi
- eshopts_pop
- M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
- M=$(( $(usex doc 256 0) + ${M} ))
- CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
-}
-
-llvm_check_deps() {
- has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
-}
-
-# Is LLVM being linked against libc++?
-is_libcxx_linked() {
- local code='#include <ciso646>
-#if defined(_LIBCPP_VERSION)
- HAVE_LIBCXX
-#endif
-'
- local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
- [[ ${out} == *HAVE_LIBCXX* ]]
-}
-
-pkg_pretend() {
- pre_build_checks
-}
-
-pkg_setup() {
- pre_build_checks
- python-any-r1_pkg_setup
-
- export LIBGIT2_NO_PKG_CONFIG=1 #749381
- if tc-is-cross-compiler; then
- export PKG_CONFIG_ALLOW_CROSS=1
- export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
- export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
- export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
-
- use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
- use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
- local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
- use "llvm_targets_${cross_llvm_target}" || \
- die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
- fi
-
- use system-bootstrap && bootstrap_rust_version_check
-
- if use system-llvm; then
- llvm_pkg_setup
-
- local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- export LLVM_LINK_SHARED=1
- export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
- fi
-}
-
-esetup_unwind_hack() {
- # https://bugs.gentoo.org/870280
- # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
- # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
- # the whole idea is for stage0 to bootstrap with fake libgcc_s.
- # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
- local fakelib="${T}/fakelib"
- mkdir -p "${fakelib}" || die
- # we need both symlinks, one for cargo runtime, other for linker.
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
- export LD_LIBRARY_PATH="${fakelib}"
- export RUSTFLAGS+=" -L${fakelib}"
- # this is a literally magic variable that gets through cargo cache, without it some
- # crates ignore RUSTFLAGS.
- # this variable can not contain leading space.
- export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
-}
-
-src_prepare() {
- # Clear vendor checksums for crates that we patched to bump libc.
- # NOTE: refresh this on each bump.
- #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
- # terminal_size tracing-tree; do
- # clear_vendor_checksums "${i}"
- #done
-
- if ! use system-bootstrap; then
- has_version sys-devel/gcc || esetup_unwind_hack
- local rust_stage0_root="${WORKDIR}"/rust-stage0
- local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
-
- "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
- --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
- fi
-
- default
-}
-
-src_configure() {
- filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
-
- local rust_target="" rust_targets="" arch_cflags
-
- # Collect rust target names to compile standard libs for all ABIs.
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
- done
- if use wasm; then
- rust_targets+=",\"wasm32-unknown-unknown\""
- if use system-llvm; then
- # un-hardcode rust-lld linker for this target
- # https://bugs.gentoo.org/715348
- sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
- fi
- fi
- rust_targets="${rust_targets#,}"
-
- # cargo and rustdoc are mandatory and should always be included
- local tools='"cargo","rustdoc"'
- use clippy && tools+=',"clippy"'
- use miri && tools+=',"miri"'
- use profiler && tools+=',"rust-demangler"'
- use rustfmt && tools+=',"rustfmt"'
- use rust-analyzer && tools+=',"rust-analyzer"'
- use rust-src && tools+=',"src"'
-
- local rust_stage0_root
- if use system-bootstrap; then
- local printsysroot
- printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
- rust_stage0_root="${printsysroot}"
- else
- rust_stage0_root="${WORKDIR}"/rust-stage0
- fi
- # in case of prefix it will be already prefixed, as --print sysroot returns full path
- [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
-
- rust_target="$(rust_abi)"
- rust_build="$(rust_abi "${CBUILD}")"
- rust_host="$(rust_abi "${CHOST}")"
-
- local cm_btype="$(usex debug DEBUG RELEASE)"
- cat <<- _EOF_ > "${S}"/config.toml
- changelog-seen = 2
- [llvm]
- download-ci-llvm = false
- optimize = $(toml_usex !debug)
- release-debuginfo = $(toml_usex debug)
- assertions = $(toml_usex debug)
- ninja = true
- targets = "${LLVM_TARGETS// /;}"
- experimental-targets = ""
- link-shared = $(toml_usex system-llvm)
- $(if is_libcxx_linked; then
- # https://bugs.gentoo.org/732632
- echo "use-libcxx = true"
- echo "static-libstdcpp = false"
- fi)
- $(case "${rust_target}" in
- i586-*-linux-*)
- # https://github.com/rust-lang/rust/issues/93059
- echo 'cflags = "-fcf-protection=none"'
- echo 'cxxflags = "-fcf-protection=none"'
- echo 'ldflags = "-fcf-protection=none"'
- ;;
- *)
- ;;
- esac)
- enable-warnings = false
- [llvm.build-config]
- CMAKE_VERBOSE_MAKEFILE = "ON"
- $(if ! tc-is-cross-compiler; then
- # When cross-compiling, LLVM is compiled twice, once for host and
- # once for target. Unfortunately, this build configuration applies
- # to both, which means any flags applicable to one target but not
- # the other will break. Conditionally disable respecting user
- # flags when cross-compiling.
- echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
- echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
- echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
- fi)
- [build]
- build-stage = 2
- test-stage = 2
- build = "${rust_build}"
- host = ["${rust_host}"]
- target = [${rust_targets}]
- cargo = "${rust_stage0_root}/bin/cargo"
- rustc = "${rust_stage0_root}/bin/rustc"
- rustfmt = "${rust_stage0_root}/bin/rustfmt"
- docs = $(toml_usex doc)
- compiler-docs = false
- submodules = false
- python = "${EPYTHON}"
- locked-deps = true
- vendor = true
- extended = true
- tools = [${tools}]
- verbose = 2
- sanitizers = false
- profiler = $(toml_usex profiler)
- cargo-native-static = false
- [install]
- prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
- sysconfdir = "etc"
- docdir = "share/doc/rust"
- bindir = "bin"
- libdir = "lib"
- mandir = "share/man"
- [rust]
- # https://github.com/rust-lang/rust/issues/54872
- codegen-units-std = 1
- optimize = true
- debug = $(toml_usex debug)
- debug-assertions = $(toml_usex debug)
- debug-assertions-std = $(toml_usex debug)
- debuginfo-level = $(usex debug 2 0)
- debuginfo-level-rustc = $(usex debug 2 0)
- debuginfo-level-std = $(usex debug 2 0)
- debuginfo-level-tools = $(usex debug 2 0)
- debuginfo-level-tests = 0
- backtrace = true
- incremental = false
- $(if ! tc-is-cross-compiler; then
- echo "default-linker = \"$(tc-getCC)\""
- fi)
- parallel-compiler = $(toml_usex parallel-compiler)
- channel = "$(usex nightly nightly stable)"
- description = "gentoo"
- rpath = false
- verbose-tests = true
- optimize-tests = $(toml_usex !debug)
- codegen-tests = true
- dist-src = false
- remap-debuginfo = true
- lld = $(usex system-llvm false $(toml_usex wasm))
- # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
- # https://github.com/rust-lang/rust/issues/74976
- # https://github.com/rust-lang/rust/issues/76526
- deny-warnings = $(usex wasm $(usex doc false true) true)
- backtrace-on-ice = true
- jemalloc = false
- lto = "$(usex lto fat off)"
- [dist]
- src-tarball = false
- compression-formats = ["xz"]
- compression-profile = "balanced"
- _EOF_
-
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
- arch_cflags="$(get_abi_CFLAGS ${v##*.})"
-
- export CFLAGS_${rust_target//-/_}="${arch_cflags}"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${rust_target}]
- ar = "$(tc-getAR)"
- cc = "$(tc-getCC)"
- cxx = "$(tc-getCXX)"
- linker = "$(tc-getCC)"
- ranlib = "$(tc-getRANLIB)"
- llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
- # but we patch it and set to false here as well
- if use elibc_musl; then
- cat <<- _EOF_ >> "${S}"/config.toml
- crt-static = false
- _EOF_
- fi
- done
- if use wasm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.wasm32-unknown-unknown]
- linker = "$(usex system-llvm lld rust-lld)"
- # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
- profiler = false
- _EOF_
- fi
-
- if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
- # experimental cross support
- # discussion: https://bugs.gentoo.org/679878
- # TODO: c*flags, clang, system-llvm, cargo.eclass target support
- # it would be much better if we could split out stdlib
- # complilation to separate ebuild and abuse CATEGORY to
- # just install to /usr/lib/rustlib/<target>
-
- # extra targets defined as a bash array
- # spec format: <LLVM target>:<rust-target>:<CTARGET>
- # best place would be /etc/portage/env/dev-lang/rust
- # Example:
- # RUST_CROSS_TARGETS=(
- # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
- # )
- # no extra hand holding is done, no target transformations, all
- # values are passed as-is with just basic checks, so it's up to user to supply correct values
- # valid rust targets can be obtained with
- # rustc --print target-list
- # matching cross toolchain has to be installed
- # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
- # only gcc toolchains installed with crossdev are checked for now.
-
- # BUG: we can't pass host flags to cross compiler, so just filter for now
- # BUG: this should be more fine-grained.
- filter-flags '-mcpu=*' '-march=*' '-mtune=*'
-
- local cross_target_spec
- for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
- # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
- local cross_llvm_target="${cross_target_spec%%:*}"
- # extracts toolchain triples, <rust-target>:<CTARGET>
- local cross_triples="${cross_target_spec#*:}"
- # extracts first element after before : separator
- local cross_rust_target="${cross_triples%%:*}"
- # extracts last element after : separator
- local cross_toolchain="${cross_triples##*:}"
- use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
- command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${cross_rust_target}]
- ar = "${cross_toolchain}-ar"
- cc = "${cross_toolchain}-gcc"
- cxx = "${cross_toolchain}-g++"
- linker = "${cross_toolchain}-gcc"
- ranlib = "${cross_toolchain}-ranlib"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- if [[ "${cross_toolchain}" == *-musl* ]]; then
- cat <<- _EOF_ >> "${S}"/config.toml
- musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
- _EOF_
- fi
-
- # append cross target to "normal" target list
- # example 'target = ["powerpc64le-unknown-linux-gnu"]'
- # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
-
- rust_targets="${rust_targets},\"${cross_rust_target}\""
- sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
-
- ewarn
- ewarn "Enabled ${cross_rust_target} rust target"
- ewarn "Using ${cross_toolchain} cross toolchain"
- ewarn
- if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
- ewarn "'sys-devel/binutils[multitarget]' is not installed"
- ewarn "'strip' will be unable to strip cross libraries"
- ewarn "cross targets will be installed with full debug information"
- ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
- ewarn
- ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
- ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
- ewarn
- fi
- done
- fi # I_KNOW_WHAT_I_AM_DOING_CROSS
-
- einfo "Rust configured with the following flags:"
- echo
- echo RUSTFLAGS="\"${RUSTFLAGS}\""
- echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
- echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
- echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
- env | grep "CARGO_TARGET_.*_RUSTFLAGS="
- env | grep "CFLAGS_.*"
- echo
- einfo "config.toml contents:"
- cat "${S}"/config.toml || die
- echo
-}
-
-src_compile() {
- RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-}
-
-src_test() {
- # https://rustc-dev-guide.rust-lang.org/tests/intro.html
-
- # those are basic and codegen tests.
- local tests=(
- codegen
- codegen-units
- compile-fail
- incremental
- mir-opt
- pretty
- run-make
- )
-
- # fails if llvm is not built with ALL targets.
- # and known to fail with system llvm sometimes.
- use system-llvm || tests+=( assembly )
-
- # fragile/expensive/less important tests
- # or tests that require extra builds
- # TODO: instead of skipping, just make some nonfatal.
- if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
- tests+=(
- rustdoc
- rustdoc-js
- rustdoc-js-std
- rustdoc-ui
- run-make-fulldeps
- ui
- ui-fulldeps
- )
- fi
-
- local i failed=()
- einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
- for i in "${tests[@]}"; do
- local t="src/test/${i}"
- einfo "rust_src_test: running ${t}"
- if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
- -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
- then
- failed+=( "${t}" )
- eerror "rust_src_test: ${t} failed"
- fi
- done
-
- if [[ ${#failed[@]} -ne 0 ]]; then
- eerror "rust_src_test: failure summary: ${failed[@]}"
- die "aborting due to test failures"
- fi
-}
-
-src_install() {
- DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-
- # bug #689562, #689160
- rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
- rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
- newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
-
- local symlinks=(
- cargo
- rustc
- rustdoc
- rust-gdb
- rust-gdbgui
- rust-lldb
- )
-
- use clippy && symlinks+=( clippy-driver cargo-clippy )
- use miri && symlinks+=( miri cargo-miri )
- use profiler && symlinks+=( rust-demangler )
- use rustfmt && symlinks+=( rustfmt cargo-fmt )
- use rust-analyzer && symlinks+=( rust-analyzer )
-
- einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
- local i
- for i in "${symlinks[@]}"; do
- # we need realpath on /usr/bin/* symlink return version-appended binary path.
- # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
- # need to fix eselect-rust to remove this hack.
- local ver_i="${i}-${PV}"
- if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
- einfo "Installing ${i} symlink"
- ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
- else
- ewarn "${i} symlink requested, but source file not found"
- ewarn "please report this"
- fi
- dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
- done
-
- # symlinks to switch components to active rust in eselect
- dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
- dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
- dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
- dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
- dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
-
- newenvd - "50${P}" <<-_EOF_
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
- _EOF_
-
- rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
-
- # note: eselect-rust adds EROOT to all paths below
- cat <<-_EOF_ > "${T}/provider-${P}"
- /usr/bin/cargo
- /usr/bin/rustdoc
- /usr/bin/rust-gdb
- /usr/bin/rust-gdbgui
- /usr/bin/rust-lldb
- /usr/lib/rustlib
- /usr/lib/rust/lib
- /usr/lib/rust/libexec
- /usr/lib/rust/man
- /usr/share/doc/rust
- _EOF_
-
- if use clippy; then
- echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
- echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
- fi
- if use miri; then
- echo /usr/bin/miri >> "${T}/provider-${P}"
- echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
- fi
- if use profiler; then
- echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
- fi
- if use rustfmt; then
- echo /usr/bin/rustfmt >> "${T}/provider-${P}"
- echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
- fi
- if use rust-analyzer; then
- echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
- fi
-
- insinto /etc/env.d/rust
- doins "${T}/provider-${P}"
-
- if use dist; then
- insinto "/usr/lib/${PN}/${PV}/dist"
- doins -r "${S}/build/dist/."
- fi
-}
-
-pkg_postinst() {
- eselect rust update
-
- if has_version dev-debug/gdb || has_version dev-debug/lldb; then
- elog "Rust installs a helper script for calling GDB and LLDB,"
- elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
- fi
-
- if has_version app-editors/emacs; then
- elog "install app-emacs/rust-mode to get emacs support for rust."
- fi
-
- if has_version app-editors/gvim || has_version app-editors/vim; then
- elog "install app-vim/rust-vim to get vim support for rust."
- fi
-}
-
-pkg_postrm() {
- eselect rust cleanup
-}
diff --git a/dev-lang/rust/rust-1.75.0-r1.ebuild b/dev-lang/rust/rust-1.75.0-r1.ebuild
deleted file mode 100644
index a3663c0fb051..000000000000
--- a/dev-lang/rust/rust-1.75.0-r1.ebuild
+++ /dev/null
@@ -1,787 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..12} )
-
-inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
- multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
-
-if [[ ${PV} = *beta* ]]; then
- betaver=${PV//*beta}
- BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
- MY_P="rustc-beta"
- SLOT="beta/${PV}"
- SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
-else
- ABI_VER="$(ver_cut 1-2)"
- SLOT="stable/${ABI_VER}"
- MY_P="rustc-${PV}"
- SRC="${MY_P}-src.tar.xz"
- KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86"
-fi
-
-RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
-
-DESCRIPTION="Language empowering everyone to build reliable and efficient software"
-HOMEPAGE="https://www.rust-lang.org/"
-
-SRC_URI="
- https://static.rust-lang.org/dist/${SRC}
- verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
- !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
-"
-
-# keep in sync with llvm ebuild of the same version as bundled one.
-ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
- LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
- WebAssembly X86 XCore Xtensa )
-ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
-LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
-
-LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-
-IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind +lto miri nightly parallel-compiler profiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
-
-# Please keep the LLVM dependency block separate. Since LLVM is slotted,
-# we need to *really* make sure we're not pulling more than one slot
-# simultaneously.
-
-# How to use it:
-# List all the working slots in LLVM_VALID_SLOTS, newest first.
-LLVM_VALID_SLOTS=( 17 )
-LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
-
-# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
-# (-) usedep needed because we may build with older llvm without that target
-LLVM_DEPEND="|| ( "
-for _s in ${LLVM_VALID_SLOTS[@]}; do
- LLVM_DEPEND+=" ( "
- for _x in ${ALL_LLVM_TARGETS[@]}; do
- LLVM_DEPEND+="
- ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )
- wasm? ( sys-devel/lld:${_s} )"
- done
- LLVM_DEPEND+=" )"
-done
-unset _s _x
-LLVM_DEPEND+=" )
- <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
-"
-
-# to bootstrap we need at least exactly previous version, or same.
-# most of the time previous versions fail to bootstrap with newer
-# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
-# but it fails to bootstrap with 1.48.x
-# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
-RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
-RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
-BOOTSTRAP_DEPEND="||
- (
- =dev-lang/rust-"${RUST_DEP_PREV}"
- =dev-lang/rust-bin-"${RUST_DEP_PREV}"
- =dev-lang/rust-"${RUST_DEP_CURR}"
- =dev-lang/rust-bin-"${RUST_DEP_CURR}"
- )
-"
-
-BDEPEND="${PYTHON_DEPS}
- app-eselect/eselect-rust
- || (
- >=sys-devel/gcc-4.7
- >=sys-devel/clang-3.5
- )
- system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
- !system-llvm? (
- >=dev-build/cmake-3.13.4
- app-alternatives/ninja
- )
- test? ( dev-debug/gdb )
- verify-sig? ( sec-keys/openpgp-keys-rust )
-"
-
-DEPEND="
- >=app-arch/xz-utils-5.2
- net-misc/curl:=[http2,ssl]
- sys-libs/zlib:=
- dev-libs/openssl:0=
- system-llvm? (
- ${LLVM_DEPEND}
- llvm-libunwind? ( sys-libs/llvm-libunwind:= )
- )
- !system-llvm? (
- !llvm-libunwind? (
- elibc_musl? ( sys-libs/libunwind:= )
- )
- )
-"
-
-RDEPEND="${DEPEND}
- app-eselect/eselect-rust
- sys-apps/lsb-release
-"
-
-REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
- miri? ( nightly )
- parallel-compiler? ( nightly )
- rust-analyzer? ( rust-src )
- test? ( ${ALL_LLVM_TARGETS[*]} )
- wasm? ( llvm_targets_WebAssembly )
- x86? ( cpu_flags_x86_sse2 )
-"
-
-# we don't use cmake.eclass, but can get a warning
-CMAKE_WARN_UNUSED_CLI=no
-
-QA_FLAGS_IGNORED="
- usr/lib/${PN}/${PV}/bin/.*
- usr/lib/${PN}/${PV}/libexec/.*
- usr/lib/${PN}/${PV}/lib/lib.*.so
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_SONAME="
- usr/lib/${PN}/${PV}/lib/lib.*.so.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_PRESTRIPPED="
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
-"
-
-# An rmeta file is custom binary format that contains the metadata for the crate.
-# rmeta files do not support linking, since they do not contain compiled object files.
-# so we can safely silence the warning for this QA check.
-QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
-
-# causes double bootstrap
-RESTRICT="test"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
-
-PATCHES=(
- "${FILESDIR}"/1.75.0-musl-dynamic-linking.patch
- "${FILESDIR}"/1.74.1-cross-compile-libz.patch
- #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
- "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
- "${FILESDIR}"/1.67.0-doc-wasm.patch
- # This patch shouldn't be necessary for later versions of Rust because its
- # code was backported from master.
- "${FILESDIR}"/1.75.0-handle-vendored-sources.patch
-)
-
-S="${WORKDIR}/${MY_P}-src"
-
-clear_vendor_checksums() {
- sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
-}
-
-toml_usex() {
- usex "${1}" true false
-}
-
-bootstrap_rust_version_check() {
- # never call from pkg_pretend. eselect-rust may be not installed yet.
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
- local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
- local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
- eerror "Rust >=${rustc_wanted} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too old"
- elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
- eerror "Rust <${rustc_toonew} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too new"
- else
- einfo "Using rust ${rustc_version} to build"
- fi
-}
-
-pre_build_checks() {
- local M=8192
- # multiply requirements by 1.3 if we are doing x86-multilib
- if use amd64; then
- M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
- fi
- M=$(( $(usex clippy 128 0) + ${M} ))
- M=$(( $(usex miri 128 0) + ${M} ))
- M=$(( $(usex rustfmt 256 0) + ${M} ))
- # add 2G if we compile llvm and 256M per llvm_target
- if ! use system-llvm; then
- M=$(( 2048 + ${M} ))
- local ltarget
- for ltarget in ${ALL_LLVM_TARGETS[@]}; do
- M=$(( $(usex ${ltarget} 256 0) + ${M} ))
- done
- fi
- M=$(( $(usex wasm 256 0) + ${M} ))
- M=$(( $(usex debug 2 1) * ${M} ))
- eshopts_push -s extglob
- if is-flagq '-g?(gdb)?([1-9])'; then
- M=$(( 15 * ${M} / 10 ))
- fi
- eshopts_pop
- M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
- M=$(( $(usex doc 256 0) + ${M} ))
- CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
-}
-
-llvm_check_deps() {
- has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
-}
-
-# Is LLVM being linked against libc++?
-is_libcxx_linked() {
- local code='#include <ciso646>
-#if defined(_LIBCPP_VERSION)
- HAVE_LIBCXX
-#endif
-'
- local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
- [[ ${out} == *HAVE_LIBCXX* ]]
-}
-
-pkg_pretend() {
- pre_build_checks
-}
-
-pkg_setup() {
- pre_build_checks
- python-any-r1_pkg_setup
-
- export LIBGIT2_NO_PKG_CONFIG=1 #749381
- if tc-is-cross-compiler; then
- export PKG_CONFIG_ALLOW_CROSS=1
- export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
- export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
- export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
-
- use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
- use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
- local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
- use "llvm_targets_${cross_llvm_target}" || \
- die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
- fi
-
- use system-bootstrap && bootstrap_rust_version_check
-
- if use system-llvm; then
- llvm_pkg_setup
-
- local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- export LLVM_LINK_SHARED=1
- export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
- fi
-}
-
-esetup_unwind_hack() {
- # https://bugs.gentoo.org/870280
- # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
- # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
- # the whole idea is for stage0 to bootstrap with fake libgcc_s.
- # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
- local fakelib="${T}/fakelib"
- mkdir -p "${fakelib}" || die
- # we need both symlinks, one for cargo runtime, other for linker.
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
- export LD_LIBRARY_PATH="${fakelib}"
- export RUSTFLAGS+=" -L${fakelib}"
- # this is a literally magic variable that gets through cargo cache, without it some
- # crates ignore RUSTFLAGS.
- # this variable can not contain leading space.
- export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
-}
-
-src_prepare() {
- # Clear vendor checksums for crates that we patched to bump libc.
- # NOTE: refresh this on each bump.
- #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
- # terminal_size tracing-tree; do
- # clear_vendor_checksums "${i}"
- #done
-
- if ! use system-bootstrap; then
- has_version sys-devel/gcc || esetup_unwind_hack
- local rust_stage0_root="${WORKDIR}"/rust-stage0
- local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
-
- "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
- --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
- fi
-
- default
-}
-
-src_configure() {
- filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
-
- local rust_target="" rust_targets="" arch_cflags
-
- # Collect rust target names to compile standard libs for all ABIs.
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
- done
- if use wasm; then
- rust_targets+=",\"wasm32-unknown-unknown\""
- if use system-llvm; then
- # un-hardcode rust-lld linker for this target
- # https://bugs.gentoo.org/715348
- sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
- fi
- fi
- rust_targets="${rust_targets#,}"
-
- # cargo and rustdoc are mandatory and should always be included
- local tools='"cargo","rustdoc"'
- use clippy && tools+=',"clippy"'
- use miri && tools+=',"miri"'
- use profiler && tools+=',"rust-demangler"'
- use rustfmt && tools+=',"rustfmt"'
- use rust-analyzer && tools+=',"rust-analyzer"'
- use rust-src && tools+=',"src"'
-
- local rust_stage0_root
- if use system-bootstrap; then
- local printsysroot
- printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
- rust_stage0_root="${printsysroot}"
- else
- rust_stage0_root="${WORKDIR}"/rust-stage0
- fi
- # in case of prefix it will be already prefixed, as --print sysroot returns full path
- [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
-
- rust_target="$(rust_abi)"
- rust_build="$(rust_abi "${CBUILD}")"
- rust_host="$(rust_abi "${CHOST}")"
-
- local cm_btype="$(usex debug DEBUG RELEASE)"
- cat <<- _EOF_ > "${S}"/config.toml
- changelog-seen = 2
- [llvm]
- download-ci-llvm = false
- optimize = $(toml_usex !debug)
- release-debuginfo = $(toml_usex debug)
- assertions = $(toml_usex debug)
- ninja = true
- targets = "${LLVM_TARGETS// /;}"
- experimental-targets = ""
- link-shared = $(toml_usex system-llvm)
- $(if is_libcxx_linked; then
- # https://bugs.gentoo.org/732632
- echo "use-libcxx = true"
- echo "static-libstdcpp = false"
- fi)
- $(case "${rust_target}" in
- i586-*-linux-*)
- # https://github.com/rust-lang/rust/issues/93059
- echo 'cflags = "-fcf-protection=none"'
- echo 'cxxflags = "-fcf-protection=none"'
- echo 'ldflags = "-fcf-protection=none"'
- ;;
- *)
- ;;
- esac)
- enable-warnings = false
- [llvm.build-config]
- CMAKE_VERBOSE_MAKEFILE = "ON"
- $(if ! tc-is-cross-compiler; then
- # When cross-compiling, LLVM is compiled twice, once for host and
- # once for target. Unfortunately, this build configuration applies
- # to both, which means any flags applicable to one target but not
- # the other will break. Conditionally disable respecting user
- # flags when cross-compiling.
- echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
- echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
- echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
- fi)
- [build]
- build-stage = 2
- test-stage = 2
- build = "${rust_build}"
- host = ["${rust_host}"]
- target = [${rust_targets}]
- cargo = "${rust_stage0_root}/bin/cargo"
- rustc = "${rust_stage0_root}/bin/rustc"
- rustfmt = "${rust_stage0_root}/bin/rustfmt"
- docs = $(toml_usex doc)
- compiler-docs = false
- submodules = false
- python = "${EPYTHON}"
- locked-deps = true
- vendor = true
- extended = true
- tools = [${tools}]
- verbose = 2
- sanitizers = false
- profiler = $(toml_usex profiler)
- cargo-native-static = false
- [install]
- prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
- sysconfdir = "etc"
- docdir = "share/doc/rust"
- bindir = "bin"
- libdir = "lib"
- mandir = "share/man"
- [rust]
- # https://github.com/rust-lang/rust/issues/54872
- codegen-units-std = 1
- optimize = true
- debug = $(toml_usex debug)
- debug-assertions = $(toml_usex debug)
- debug-assertions-std = $(toml_usex debug)
- debuginfo-level = $(usex debug 2 0)
- debuginfo-level-rustc = $(usex debug 2 0)
- debuginfo-level-std = $(usex debug 2 0)
- debuginfo-level-tools = $(usex debug 2 0)
- debuginfo-level-tests = 0
- backtrace = true
- incremental = false
- $(if ! tc-is-cross-compiler; then
- echo "default-linker = \"$(tc-getCC)\""
- fi)
- parallel-compiler = $(toml_usex parallel-compiler)
- channel = "$(usex nightly nightly stable)"
- description = "gentoo"
- rpath = false
- verbose-tests = true
- optimize-tests = $(toml_usex !debug)
- codegen-tests = true
- dist-src = false
- remap-debuginfo = true
- lld = $(usex system-llvm false $(toml_usex wasm))
- # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
- # https://github.com/rust-lang/rust/issues/74976
- # https://github.com/rust-lang/rust/issues/76526
- deny-warnings = $(usex wasm $(usex doc false true) true)
- backtrace-on-ice = true
- jemalloc = false
- lto = "$(usex lto fat off)"
- [dist]
- src-tarball = false
- compression-formats = ["xz"]
- compression-profile = "balanced"
- _EOF_
-
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
- arch_cflags="$(get_abi_CFLAGS ${v##*.})"
-
- export CFLAGS_${rust_target//-/_}="${arch_cflags}"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${rust_target}]
- ar = "$(tc-getAR)"
- cc = "$(tc-getCC)"
- cxx = "$(tc-getCXX)"
- linker = "$(tc-getCC)"
- ranlib = "$(tc-getRANLIB)"
- llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
- # but we patch it and set to false here as well
- if use elibc_musl; then
- cat <<- _EOF_ >> "${S}"/config.toml
- crt-static = false
- _EOF_
- fi
- done
- if use wasm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.wasm32-unknown-unknown]
- linker = "$(usex system-llvm lld rust-lld)"
- # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
- profiler = false
- _EOF_
- fi
-
- if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
- # experimental cross support
- # discussion: https://bugs.gentoo.org/679878
- # TODO: c*flags, clang, system-llvm, cargo.eclass target support
- # it would be much better if we could split out stdlib
- # complilation to separate ebuild and abuse CATEGORY to
- # just install to /usr/lib/rustlib/<target>
-
- # extra targets defined as a bash array
- # spec format: <LLVM target>:<rust-target>:<CTARGET>
- # best place would be /etc/portage/env/dev-lang/rust
- # Example:
- # RUST_CROSS_TARGETS=(
- # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
- # )
- # no extra hand holding is done, no target transformations, all
- # values are passed as-is with just basic checks, so it's up to user to supply correct values
- # valid rust targets can be obtained with
- # rustc --print target-list
- # matching cross toolchain has to be installed
- # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
- # only gcc toolchains installed with crossdev are checked for now.
-
- # BUG: we can't pass host flags to cross compiler, so just filter for now
- # BUG: this should be more fine-grained.
- filter-flags '-mcpu=*' '-march=*' '-mtune=*'
-
- local cross_target_spec
- for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
- # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
- local cross_llvm_target="${cross_target_spec%%:*}"
- # extracts toolchain triples, <rust-target>:<CTARGET>
- local cross_triples="${cross_target_spec#*:}"
- # extracts first element after before : separator
- local cross_rust_target="${cross_triples%%:*}"
- # extracts last element after : separator
- local cross_toolchain="${cross_triples##*:}"
- use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
- command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${cross_rust_target}]
- ar = "${cross_toolchain}-ar"
- cc = "${cross_toolchain}-gcc"
- cxx = "${cross_toolchain}-g++"
- linker = "${cross_toolchain}-gcc"
- ranlib = "${cross_toolchain}-ranlib"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- if [[ "${cross_toolchain}" == *-musl* ]]; then
- cat <<- _EOF_ >> "${S}"/config.toml
- musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
- _EOF_
- fi
-
- # append cross target to "normal" target list
- # example 'target = ["powerpc64le-unknown-linux-gnu"]'
- # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
-
- rust_targets="${rust_targets},\"${cross_rust_target}\""
- sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
-
- ewarn
- ewarn "Enabled ${cross_rust_target} rust target"
- ewarn "Using ${cross_toolchain} cross toolchain"
- ewarn
- if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
- ewarn "'sys-devel/binutils[multitarget]' is not installed"
- ewarn "'strip' will be unable to strip cross libraries"
- ewarn "cross targets will be installed with full debug information"
- ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
- ewarn
- ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
- ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
- ewarn
- fi
- done
- fi # I_KNOW_WHAT_I_AM_DOING_CROSS
-
- einfo "Rust configured with the following flags:"
- echo
- echo RUSTFLAGS="\"${RUSTFLAGS}\""
- echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
- echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
- echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
- env | grep "CARGO_TARGET_.*_RUSTFLAGS="
- env | grep "CFLAGS_.*"
- echo
- einfo "config.toml contents:"
- cat "${S}"/config.toml || die
- echo
-}
-
-src_compile() {
- RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-}
-
-src_test() {
- # https://rustc-dev-guide.rust-lang.org/tests/intro.html
-
- # those are basic and codegen tests.
- local tests=(
- codegen
- codegen-units
- compile-fail
- incremental
- mir-opt
- pretty
- run-make
- )
-
- # fails if llvm is not built with ALL targets.
- # and known to fail with system llvm sometimes.
- use system-llvm || tests+=( assembly )
-
- # fragile/expensive/less important tests
- # or tests that require extra builds
- # TODO: instead of skipping, just make some nonfatal.
- if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
- tests+=(
- rustdoc
- rustdoc-js
- rustdoc-js-std
- rustdoc-ui
- run-make-fulldeps
- ui
- ui-fulldeps
- )
- fi
-
- local i failed=()
- einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
- for i in "${tests[@]}"; do
- local t="src/test/${i}"
- einfo "rust_src_test: running ${t}"
- if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
- -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
- then
- failed+=( "${t}" )
- eerror "rust_src_test: ${t} failed"
- fi
- done
-
- if [[ ${#failed[@]} -ne 0 ]]; then
- eerror "rust_src_test: failure summary: ${failed[@]}"
- die "aborting due to test failures"
- fi
-}
-
-src_install() {
- DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-
- # bug #689562, #689160
- rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
- rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
- newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
-
- local symlinks=(
- cargo
- rustc
- rustdoc
- rust-gdb
- rust-gdbgui
- rust-lldb
- )
-
- use clippy && symlinks+=( clippy-driver cargo-clippy )
- use miri && symlinks+=( miri cargo-miri )
- use profiler && symlinks+=( rust-demangler )
- use rustfmt && symlinks+=( rustfmt cargo-fmt )
- use rust-analyzer && symlinks+=( rust-analyzer )
-
- einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
- local i
- for i in "${symlinks[@]}"; do
- # we need realpath on /usr/bin/* symlink return version-appended binary path.
- # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
- # need to fix eselect-rust to remove this hack.
- local ver_i="${i}-${PV}"
- if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
- einfo "Installing ${i} symlink"
- ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
- else
- ewarn "${i} symlink requested, but source file not found"
- ewarn "please report this"
- fi
- dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
- done
-
- # symlinks to switch components to active rust in eselect
- dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
- dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
- dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
- dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
- dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
-
- newenvd - "50${P}" <<-_EOF_
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
- _EOF_
-
- rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
-
- # note: eselect-rust adds EROOT to all paths below
- cat <<-_EOF_ > "${T}/provider-${P}"
- /usr/bin/cargo
- /usr/bin/rustdoc
- /usr/bin/rust-gdb
- /usr/bin/rust-gdbgui
- /usr/bin/rust-lldb
- /usr/lib/rustlib
- /usr/lib/rust/lib
- /usr/lib/rust/libexec
- /usr/lib/rust/man
- /usr/share/doc/rust
- _EOF_
-
- if use clippy; then
- echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
- echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
- fi
- if use miri; then
- echo /usr/bin/miri >> "${T}/provider-${P}"
- echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
- fi
- if use profiler; then
- echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
- fi
- if use rustfmt; then
- echo /usr/bin/rustfmt >> "${T}/provider-${P}"
- echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
- fi
- if use rust-analyzer; then
- echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
- fi
-
- insinto /etc/env.d/rust
- doins "${T}/provider-${P}"
-
- if use dist; then
- insinto "/usr/lib/${PN}/${PV}/dist"
- doins -r "${S}/build/dist/."
- fi
-}
-
-pkg_postinst() {
- eselect rust update
-
- if has_version dev-debug/gdb || has_version dev-debug/lldb; then
- elog "Rust installs a helper script for calling GDB and LLDB,"
- elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
- fi
-
- if has_version app-editors/emacs; then
- elog "install app-emacs/rust-mode to get emacs support for rust."
- fi
-
- if has_version app-editors/gvim || has_version app-editors/vim; then
- elog "install app-vim/rust-vim to get vim support for rust."
- fi
-}
-
-pkg_postrm() {
- eselect rust cleanup
-}
diff --git a/dev-lang/rust/rust-1.77.1.ebuild b/dev-lang/rust/rust-1.77.1.ebuild
deleted file mode 100644
index b69b63f5e0ef..000000000000
--- a/dev-lang/rust/rust-1.77.1.ebuild
+++ /dev/null
@@ -1,786 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..12} )
-
-inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
- multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
-
-if [[ ${PV} = *beta* ]]; then
- betaver=${PV//*beta}
- BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
- MY_P="rustc-beta"
- SLOT="beta/${PV}"
- SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
-else
- ABI_VER="$(ver_cut 1-2)"
- SLOT="stable/${ABI_VER}"
- MY_P="rustc-${PV}"
- SRC="${MY_P}-src.tar.xz"
- KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv sparc x86"
-fi
-
-RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
-
-DESCRIPTION="Systems programming language from Mozilla"
-HOMEPAGE="https://www.rust-lang.org/"
-
-SRC_URI="
- https://static.rust-lang.org/dist/${SRC}
- verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
- !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
-"
-
-# keep in sync with llvm ebuild of the same version as bundled one.
-ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
- LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
- WebAssembly X86 XCore Xtensa )
-ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
-LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
-
-LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-
-IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler profiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
-
-# Please keep the LLVM dependency block separate. Since LLVM is slotted,
-# we need to *really* make sure we're not pulling more than one slot
-# simultaneously.
-
-# How to use it:
-# List all the working slots in LLVM_VALID_SLOTS, newest first.
-LLVM_VALID_SLOTS=( 17 )
-LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
-
-# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
-# (-) usedep needed because we may build with older llvm without that target
-LLVM_DEPEND="|| ( "
-for _s in ${LLVM_VALID_SLOTS[@]}; do
- LLVM_DEPEND+=" ( "
- for _x in ${ALL_LLVM_TARGETS[@]}; do
- LLVM_DEPEND+="
- ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )
- wasm? ( sys-devel/lld:${_s} )"
- done
- LLVM_DEPEND+=" )"
-done
-unset _s _x
-LLVM_DEPEND+=" )
- <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
-"
-
-# to bootstrap we need at least exactly previous version, or same.
-# most of the time previous versions fail to bootstrap with newer
-# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
-# but it fails to bootstrap with 1.48.x
-# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
-RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
-RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
-BOOTSTRAP_DEPEND="||
- (
- =dev-lang/rust-"${RUST_DEP_PREV}"
- =dev-lang/rust-bin-"${RUST_DEP_PREV}"
- =dev-lang/rust-"${RUST_DEP_CURR}"
- =dev-lang/rust-bin-"${RUST_DEP_CURR}"
- )
-"
-
-BDEPEND="${PYTHON_DEPS}
- app-eselect/eselect-rust
- || (
- >=sys-devel/gcc-4.7
- >=sys-devel/clang-3.5
- )
- system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
- !system-llvm? (
- >=dev-build/cmake-3.13.4
- app-alternatives/ninja
- )
- test? ( dev-debug/gdb )
- verify-sig? ( sec-keys/openpgp-keys-rust )
-"
-
-DEPEND="
- >=app-arch/xz-utils-5.2
- net-misc/curl:=[http2,ssl]
- sys-libs/zlib:=
- dev-libs/openssl:0=
- system-llvm? (
- ${LLVM_DEPEND}
- llvm-libunwind? ( sys-libs/llvm-libunwind:= )
- )
- !system-llvm? (
- !llvm-libunwind? (
- elibc_musl? ( sys-libs/libunwind:= )
- )
- )
-"
-
-RDEPEND="${DEPEND}
- app-eselect/eselect-rust
- sys-apps/lsb-release
-"
-
-REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
- miri? ( nightly )
- parallel-compiler? ( nightly )
- rust-analyzer? ( rust-src )
- test? ( ${ALL_LLVM_TARGETS[*]} )
- wasm? ( llvm_targets_WebAssembly )
- x86? ( cpu_flags_x86_sse2 )
-"
-
-# we don't use cmake.eclass, but can get a warning
-CMAKE_WARN_UNUSED_CLI=no
-
-QA_FLAGS_IGNORED="
- usr/lib/${PN}/${PV}/bin/.*
- usr/lib/${PN}/${PV}/libexec/.*
- usr/lib/${PN}/${PV}/lib/lib.*.so
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_SONAME="
- usr/lib/${PN}/${PV}/lib/lib.*.so.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_PRESTRIPPED="
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
-"
-
-# An rmeta file is custom binary format that contains the metadata for the crate.
-# rmeta files do not support linking, since they do not contain compiled object files.
-# so we can safely silence the warning for this QA check.
-QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
-
-# causes double bootstrap
-RESTRICT="test"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
-
-PATCHES=(
- "${FILESDIR}"/1.75.0-musl-dynamic-linking.patch
- "${FILESDIR}"/1.74.1-cross-compile-libz.patch
- #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
- "${FILESDIR}"/1.70.0-ignore-broken-and-non-applicable-tests.patch
- "${FILESDIR}"/1.67.0-doc-wasm.patch
- "${FILESDIR}"/1.76.0-loong-code-model.patch # remove for >=1.78.0
-)
-
-S="${WORKDIR}/${MY_P}-src"
-
-clear_vendor_checksums() {
- sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
-}
-
-toml_usex() {
- usex "${1}" true false
-}
-
-bootstrap_rust_version_check() {
- # never call from pkg_pretend. eselect-rust may be not installed yet.
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
- local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
- local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
- eerror "Rust >=${rustc_wanted} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too old"
- elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
- eerror "Rust <${rustc_toonew} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too new"
- else
- einfo "Using rust ${rustc_version} to build"
- fi
-}
-
-pre_build_checks() {
- local M=8192
- # multiply requirements by 1.3 if we are doing x86-multilib
- if use amd64; then
- M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
- fi
- M=$(( $(usex clippy 128 0) + ${M} ))
- M=$(( $(usex miri 128 0) + ${M} ))
- M=$(( $(usex rustfmt 256 0) + ${M} ))
- # add 2G if we compile llvm and 256M per llvm_target
- if ! use system-llvm; then
- M=$(( 2048 + ${M} ))
- local ltarget
- for ltarget in ${ALL_LLVM_TARGETS[@]}; do
- M=$(( $(usex ${ltarget} 256 0) + ${M} ))
- done
- fi
- M=$(( $(usex wasm 256 0) + ${M} ))
- M=$(( $(usex debug 2 1) * ${M} ))
- eshopts_push -s extglob
- if is-flagq '-g?(gdb)?([1-9])'; then
- M=$(( 15 * ${M} / 10 ))
- fi
- eshopts_pop
- M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
- M=$(( $(usex doc 256 0) + ${M} ))
- CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
-}
-
-llvm_check_deps() {
- has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
-}
-
-# Is LLVM being linked against libc++?
-is_libcxx_linked() {
- local code='#include <ciso646>
-#if defined(_LIBCPP_VERSION)
- HAVE_LIBCXX
-#endif
-'
- local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
- [[ ${out} == *HAVE_LIBCXX* ]]
-}
-
-pkg_pretend() {
- pre_build_checks
-}
-
-pkg_setup() {
- pre_build_checks
- python-any-r1_pkg_setup
-
- export LIBGIT2_NO_PKG_CONFIG=1 #749381
- if tc-is-cross-compiler; then
- export PKG_CONFIG_ALLOW_CROSS=1
- export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
- export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
- export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
-
- use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
- use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
- local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
- use "llvm_targets_${cross_llvm_target}" || \
- die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
- fi
-
- use system-bootstrap && bootstrap_rust_version_check
-
- if use system-llvm; then
- llvm_pkg_setup
-
- local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- export LLVM_LINK_SHARED=1
- export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
- fi
-}
-
-esetup_unwind_hack() {
- # https://bugs.gentoo.org/870280
- # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
- # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
- # the whole idea is for stage0 to bootstrap with fake libgcc_s.
- # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
- local fakelib="${T}/fakelib"
- mkdir -p "${fakelib}" || die
- # we need both symlinks, one for cargo runtime, other for linker.
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
- export LD_LIBRARY_PATH="${fakelib}"
- export RUSTFLAGS+=" -L${fakelib}"
- # this is a literally magic variable that gets through cargo cache, without it some
- # crates ignore RUSTFLAGS.
- # this variable can not contain leading space.
- export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
-}
-
-src_prepare() {
- # Clear vendor checksums for crates that we patched to bump libc.
- # NOTE: refresh this on each bump.
- #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
- # terminal_size tracing-tree; do
- # clear_vendor_checksums "${i}"
- #done
-
- if ! use system-bootstrap; then
- has_version sys-devel/gcc || esetup_unwind_hack
- local rust_stage0_root="${WORKDIR}"/rust-stage0
- local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
-
- "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
- --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
- fi
-
- default
-}
-
-src_configure() {
- filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
-
- local rust_target="" rust_targets="" arch_cflags
-
- # Collect rust target names to compile standard libs for all ABIs.
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
- done
- if use wasm; then
- rust_targets+=",\"wasm32-unknown-unknown\""
- if use system-llvm; then
- # un-hardcode rust-lld linker for this target
- # https://bugs.gentoo.org/715348
- sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
- fi
- fi
- rust_targets="${rust_targets#,}"
-
- # cargo and rustdoc are mandatory and should always be included
- local tools='"cargo","rustdoc"'
- use clippy && tools+=',"clippy"'
- use miri && tools+=',"miri"'
- use profiler && tools+=',"rust-demangler"'
- use rustfmt && tools+=',"rustfmt"'
- use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
- use rust-src && tools+=',"src"'
-
- local rust_stage0_root
- if use system-bootstrap; then
- local printsysroot
- printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
- rust_stage0_root="${printsysroot}"
- else
- rust_stage0_root="${WORKDIR}"/rust-stage0
- fi
- # in case of prefix it will be already prefixed, as --print sysroot returns full path
- [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
-
- rust_target="$(rust_abi)"
- rust_build="$(rust_abi "${CBUILD}")"
- rust_host="$(rust_abi "${CHOST}")"
-
- local cm_btype="$(usex debug DEBUG RELEASE)"
- cat <<- _EOF_ > "${S}"/config.toml
- changelog-seen = 2
- [llvm]
- download-ci-llvm = false
- optimize = $(toml_usex !debug)
- release-debuginfo = $(toml_usex debug)
- assertions = $(toml_usex debug)
- ninja = true
- targets = "${LLVM_TARGETS// /;}"
- experimental-targets = ""
- link-shared = $(toml_usex system-llvm)
- $(if is_libcxx_linked; then
- # https://bugs.gentoo.org/732632
- echo "use-libcxx = true"
- echo "static-libstdcpp = false"
- fi)
- $(case "${rust_target}" in
- i586-*-linux-*)
- # https://github.com/rust-lang/rust/issues/93059
- echo 'cflags = "-fcf-protection=none"'
- echo 'cxxflags = "-fcf-protection=none"'
- echo 'ldflags = "-fcf-protection=none"'
- ;;
- *)
- ;;
- esac)
- enable-warnings = false
- [llvm.build-config]
- CMAKE_VERBOSE_MAKEFILE = "ON"
- $(if ! tc-is-cross-compiler; then
- # When cross-compiling, LLVM is compiled twice, once for host and
- # once for target. Unfortunately, this build configuration applies
- # to both, which means any flags applicable to one target but not
- # the other will break. Conditionally disable respecting user
- # flags when cross-compiling.
- echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
- echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
- echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
- fi)
- [build]
- build-stage = 2
- test-stage = 2
- build = "${rust_build}"
- host = ["${rust_host}"]
- target = [${rust_targets}]
- cargo = "${rust_stage0_root}/bin/cargo"
- rustc = "${rust_stage0_root}/bin/rustc"
- rustfmt = "${rust_stage0_root}/bin/rustfmt"
- docs = $(toml_usex doc)
- compiler-docs = false
- submodules = false
- python = "${EPYTHON}"
- locked-deps = true
- vendor = true
- extended = true
- tools = [${tools}]
- verbose = 2
- sanitizers = false
- profiler = $(toml_usex profiler)
- cargo-native-static = false
- [install]
- prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
- sysconfdir = "etc"
- docdir = "share/doc/rust"
- bindir = "bin"
- libdir = "lib"
- mandir = "share/man"
- [rust]
- # https://github.com/rust-lang/rust/issues/54872
- codegen-units-std = 1
- optimize = true
- debug = $(toml_usex debug)
- debug-assertions = $(toml_usex debug)
- debug-assertions-std = $(toml_usex debug)
- debuginfo-level = $(usex debug 2 0)
- debuginfo-level-rustc = $(usex debug 2 0)
- debuginfo-level-std = $(usex debug 2 0)
- debuginfo-level-tools = $(usex debug 2 0)
- debuginfo-level-tests = 0
- backtrace = true
- incremental = false
- $(if ! tc-is-cross-compiler; then
- echo "default-linker = \"$(tc-getCC)\""
- fi)
- parallel-compiler = $(toml_usex parallel-compiler)
- channel = "$(usex nightly nightly stable)"
- description = "gentoo"
- rpath = false
- verbose-tests = true
- optimize-tests = $(toml_usex !debug)
- codegen-tests = true
- dist-src = false
- remap-debuginfo = true
- lld = $(usex system-llvm false $(toml_usex wasm))
- # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
- # https://github.com/rust-lang/rust/issues/74976
- # https://github.com/rust-lang/rust/issues/76526
- deny-warnings = $(usex wasm $(usex doc false true) true)
- backtrace-on-ice = true
- jemalloc = false
- # See https://github.com/rust-lang/rust/issues/121124
- lto = "$(usex lto thin off)"
- [dist]
- src-tarball = false
- compression-formats = ["xz"]
- compression-profile = "balanced"
- _EOF_
-
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
- arch_cflags="$(get_abi_CFLAGS ${v##*.})"
-
- export CFLAGS_${rust_target//-/_}="${arch_cflags}"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${rust_target}]
- ar = "$(tc-getAR)"
- cc = "$(tc-getCC)"
- cxx = "$(tc-getCXX)"
- linker = "$(tc-getCC)"
- ranlib = "$(tc-getRANLIB)"
- llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
- # but we patch it and set to false here as well
- if use elibc_musl; then
- cat <<- _EOF_ >> "${S}"/config.toml
- crt-static = false
- _EOF_
- fi
- done
- if use wasm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.wasm32-unknown-unknown]
- linker = "$(usex system-llvm lld rust-lld)"
- # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
- profiler = false
- _EOF_
- fi
-
- if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
- # experimental cross support
- # discussion: https://bugs.gentoo.org/679878
- # TODO: c*flags, clang, system-llvm, cargo.eclass target support
- # it would be much better if we could split out stdlib
- # complilation to separate ebuild and abuse CATEGORY to
- # just install to /usr/lib/rustlib/<target>
-
- # extra targets defined as a bash array
- # spec format: <LLVM target>:<rust-target>:<CTARGET>
- # best place would be /etc/portage/env/dev-lang/rust
- # Example:
- # RUST_CROSS_TARGETS=(
- # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
- # )
- # no extra hand holding is done, no target transformations, all
- # values are passed as-is with just basic checks, so it's up to user to supply correct values
- # valid rust targets can be obtained with
- # rustc --print target-list
- # matching cross toolchain has to be installed
- # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
- # only gcc toolchains installed with crossdev are checked for now.
-
- # BUG: we can't pass host flags to cross compiler, so just filter for now
- # BUG: this should be more fine-grained.
- filter-flags '-mcpu=*' '-march=*' '-mtune=*'
-
- local cross_target_spec
- for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
- # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
- local cross_llvm_target="${cross_target_spec%%:*}"
- # extracts toolchain triples, <rust-target>:<CTARGET>
- local cross_triples="${cross_target_spec#*:}"
- # extracts first element after before : separator
- local cross_rust_target="${cross_triples%%:*}"
- # extracts last element after : separator
- local cross_toolchain="${cross_triples##*:}"
- use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
- command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${cross_rust_target}]
- ar = "${cross_toolchain}-ar"
- cc = "${cross_toolchain}-gcc"
- cxx = "${cross_toolchain}-g++"
- linker = "${cross_toolchain}-gcc"
- ranlib = "${cross_toolchain}-ranlib"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- if [[ "${cross_toolchain}" == *-musl* ]]; then
- cat <<- _EOF_ >> "${S}"/config.toml
- musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
- _EOF_
- fi
-
- # append cross target to "normal" target list
- # example 'target = ["powerpc64le-unknown-linux-gnu"]'
- # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
-
- rust_targets="${rust_targets},\"${cross_rust_target}\""
- sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
-
- ewarn
- ewarn "Enabled ${cross_rust_target} rust target"
- ewarn "Using ${cross_toolchain} cross toolchain"
- ewarn
- if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
- ewarn "'sys-devel/binutils[multitarget]' is not installed"
- ewarn "'strip' will be unable to strip cross libraries"
- ewarn "cross targets will be installed with full debug information"
- ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
- ewarn
- ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
- ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
- ewarn
- fi
- done
- fi # I_KNOW_WHAT_I_AM_DOING_CROSS
-
- einfo "Rust configured with the following flags:"
- echo
- echo RUSTFLAGS="\"${RUSTFLAGS}\""
- echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
- echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
- echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
- env | grep "CARGO_TARGET_.*_RUSTFLAGS="
- env | grep "CFLAGS_.*"
- echo
- einfo "config.toml contents:"
- cat "${S}"/config.toml || die
- echo
-}
-
-src_compile() {
- RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-}
-
-src_test() {
- # https://rustc-dev-guide.rust-lang.org/tests/intro.html
-
- # those are basic and codegen tests.
- local tests=(
- codegen
- codegen-units
- compile-fail
- incremental
- mir-opt
- pretty
- run-make
- )
-
- # fails if llvm is not built with ALL targets.
- # and known to fail with system llvm sometimes.
- use system-llvm || tests+=( assembly )
-
- # fragile/expensive/less important tests
- # or tests that require extra builds
- # TODO: instead of skipping, just make some nonfatal.
- if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
- tests+=(
- rustdoc
- rustdoc-js
- rustdoc-js-std
- rustdoc-ui
- run-make-fulldeps
- ui
- ui-fulldeps
- )
- fi
-
- local i failed=()
- einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
- for i in "${tests[@]}"; do
- local t="src/test/${i}"
- einfo "rust_src_test: running ${t}"
- if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
- -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
- then
- failed+=( "${t}" )
- eerror "rust_src_test: ${t} failed"
- fi
- done
-
- if [[ ${#failed[@]} -ne 0 ]]; then
- eerror "rust_src_test: failure summary: ${failed[@]}"
- die "aborting due to test failures"
- fi
-}
-
-src_install() {
- DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-
- # bug #689562, #689160
- rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
- rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
- newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
-
- local symlinks=(
- cargo
- rustc
- rustdoc
- rust-gdb
- rust-gdbgui
- rust-lldb
- )
-
- use clippy && symlinks+=( clippy-driver cargo-clippy )
- use miri && symlinks+=( miri cargo-miri )
- use profiler && symlinks+=( rust-demangler )
- use rustfmt && symlinks+=( rustfmt cargo-fmt )
- use rust-analyzer && symlinks+=( rust-analyzer )
-
- einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
- local i
- for i in "${symlinks[@]}"; do
- # we need realpath on /usr/bin/* symlink return version-appended binary path.
- # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
- # need to fix eselect-rust to remove this hack.
- local ver_i="${i}-${PV}"
- if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
- einfo "Installing ${i} symlink"
- ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
- else
- ewarn "${i} symlink requested, but source file not found"
- ewarn "please report this"
- fi
- dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
- done
-
- # symlinks to switch components to active rust in eselect
- dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
- dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
- dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
- dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
- dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
-
- newenvd - "50${P}" <<-_EOF_
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
- _EOF_
-
- rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
-
- # note: eselect-rust adds EROOT to all paths below
- cat <<-_EOF_ > "${T}/provider-${P}"
- /usr/bin/cargo
- /usr/bin/rustdoc
- /usr/bin/rust-gdb
- /usr/bin/rust-gdbgui
- /usr/bin/rust-lldb
- /usr/lib/rustlib
- /usr/lib/rust/lib
- /usr/lib/rust/libexec
- /usr/lib/rust/man
- /usr/share/doc/rust
- _EOF_
-
- if use clippy; then
- echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
- echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
- fi
- if use miri; then
- echo /usr/bin/miri >> "${T}/provider-${P}"
- echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
- fi
- if use profiler; then
- echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
- fi
- if use rustfmt; then
- echo /usr/bin/rustfmt >> "${T}/provider-${P}"
- echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
- fi
- if use rust-analyzer; then
- echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
- fi
-
- insinto /etc/env.d/rust
- doins "${T}/provider-${P}"
-
- if use dist; then
- insinto "/usr/lib/${PN}/${PV}/dist"
- doins -r "${S}/build/dist/."
- fi
-}
-
-pkg_postinst() {
- eselect rust update
-
- if has_version dev-debug/gdb || has_version dev-debug/lldb; then
- elog "Rust installs a helper script for calling GDB and LLDB,"
- elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
- fi
-
- if has_version app-editors/emacs; then
- elog "install app-emacs/rust-mode to get emacs support for rust."
- fi
-
- if has_version app-editors/gvim || has_version app-editors/vim; then
- elog "install app-vim/rust-vim to get vim support for rust."
- fi
-}
-
-pkg_postrm() {
- eselect rust cleanup
-}
diff --git a/dev-lang/rust/rust-1.79.0.ebuild b/dev-lang/rust/rust-1.79.0.ebuild
deleted file mode 100644
index 0c7ace156b58..000000000000
--- a/dev-lang/rust/rust-1.79.0.ebuild
+++ /dev/null
@@ -1,789 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-
-inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
- multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
-
-if [[ ${PV} = *beta* ]]; then
- betaver=${PV//*beta}
- BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
- MY_P="rustc-beta"
- SLOT="beta/${PV}"
- SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
-else
- ABI_VER="$(ver_cut 1-2)"
- SLOT="stable/${ABI_VER}"
- MY_P="rustc-${PV}"
- SRC="${MY_P}-src.tar.xz"
- KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
-fi
-
-RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
-
-DESCRIPTION="Systems programming language from Mozilla"
-HOMEPAGE="https://www.rust-lang.org/"
-
-SRC_URI="
- https://static.rust-lang.org/dist/${SRC}
- verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
- !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
-"
-
-# keep in sync with llvm ebuild of the same version as bundled one.
-ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
- LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
- WebAssembly X86 XCore Xtensa )
-ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
-LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
-
-LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-
-IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler profiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
-
-# Please keep the LLVM dependency block separate. Since LLVM is slotted,
-# we need to *really* make sure we're not pulling more than one slot
-# simultaneously.
-
-# How to use it:
-# List all the working slots in LLVM_VALID_SLOTS, newest first.
-LLVM_VALID_SLOTS=( 18 )
-LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
-
-# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
-# (-) usedep needed because we may build with older llvm without that target
-LLVM_DEPEND="|| ( "
-for _s in ${LLVM_VALID_SLOTS[@]}; do
- LLVM_DEPEND+=" ( "
- for _x in ${ALL_LLVM_TARGETS[@]}; do
- LLVM_DEPEND+="
- ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )
- wasm? ( sys-devel/lld:${_s} )"
- done
- LLVM_DEPEND+=" )"
-done
-unset _s _x
-LLVM_DEPEND+=" )
- <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
-"
-
-# to bootstrap we need at least exactly previous version, or same.
-# most of the time previous versions fail to bootstrap with newer
-# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
-# but it fails to bootstrap with 1.48.x
-# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
-RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
-RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
-BOOTSTRAP_DEPEND="||
- (
- =dev-lang/rust-"${RUST_DEP_PREV}"
- =dev-lang/rust-bin-"${RUST_DEP_PREV}"
- =dev-lang/rust-"${RUST_DEP_CURR}"
- =dev-lang/rust-bin-"${RUST_DEP_CURR}"
- )
-"
-
-BDEPEND="${PYTHON_DEPS}
- app-eselect/eselect-rust
- || (
- >=sys-devel/gcc-4.7
- >=sys-devel/clang-3.5
- )
- system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
- !system-llvm? (
- >=dev-build/cmake-3.13.4
- app-alternatives/ninja
- )
- test? ( dev-debug/gdb )
- verify-sig? ( sec-keys/openpgp-keys-rust )
-"
-
-DEPEND="
- >=app-arch/xz-utils-5.2
- net-misc/curl:=[http2,ssl]
- sys-libs/zlib:=
- dev-libs/openssl:0=
- system-llvm? (
- ${LLVM_DEPEND}
- llvm-libunwind? ( sys-libs/llvm-libunwind:= )
- )
- !system-llvm? (
- !llvm-libunwind? (
- elibc_musl? ( sys-libs/libunwind:= )
- )
- )
-"
-
-RDEPEND="${DEPEND}
- app-eselect/eselect-rust
- sys-apps/lsb-release
-"
-
-REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
- miri? ( nightly )
- parallel-compiler? ( nightly )
- rust-analyzer? ( rust-src )
- test? ( ${ALL_LLVM_TARGETS[*]} )
- wasm? ( llvm_targets_WebAssembly )
- x86? ( cpu_flags_x86_sse2 )
-"
-
-# we don't use cmake.eclass, but can get a warning
-CMAKE_WARN_UNUSED_CLI=no
-
-QA_FLAGS_IGNORED="
- usr/lib/${PN}/${PV}/bin/.*
- usr/lib/${PN}/${PV}/libexec/.*
- usr/lib/${PN}/${PV}/lib/lib.*.so
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_SONAME="
- usr/lib/${PN}/${PV}/lib/lib.*.so.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_PRESTRIPPED="
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
-"
-
-# An rmeta file is custom binary format that contains the metadata for the crate.
-# rmeta files do not support linking, since they do not contain compiled object files.
-# so we can safely silence the warning for this QA check.
-QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
-
-S="${WORKDIR}/${MY_P}-src"
-
-# causes double bootstrap
-RESTRICT="test"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
-
-PATCHES=(
- "${FILESDIR}"/1.78.0-musl-dynamic-linking.patch
- "${FILESDIR}"/1.74.1-cross-compile-libz.patch
- #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
- "${FILESDIR}"/1.78.0-ignore-broken-and-non-applicable-tests.patch
- "${FILESDIR}"/1.67.0-doc-wasm.patch
- "${FILESDIR}"/1.79.0-revert-8c40426.patch
-)
-
-clear_vendor_checksums() {
- sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
-}
-
-toml_usex() {
- usex "${1}" true false
-}
-
-bootstrap_rust_version_check() {
- # never call from pkg_pretend. eselect-rust may be not installed yet.
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
- local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
- local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
- eerror "Rust >=${rustc_wanted} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too old"
- elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
- eerror "Rust <${rustc_toonew} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too new"
- else
- einfo "Using rust ${rustc_version} to build"
- fi
-}
-
-pre_build_checks() {
- local M=8192
- # multiply requirements by 1.3 if we are doing x86-multilib
- if use amd64; then
- M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
- fi
- M=$(( $(usex clippy 128 0) + ${M} ))
- M=$(( $(usex miri 128 0) + ${M} ))
- M=$(( $(usex rustfmt 256 0) + ${M} ))
- # add 2G if we compile llvm and 256M per llvm_target
- if ! use system-llvm; then
- M=$(( 2048 + ${M} ))
- local ltarget
- for ltarget in ${ALL_LLVM_TARGETS[@]}; do
- M=$(( $(usex ${ltarget} 256 0) + ${M} ))
- done
- fi
- M=$(( $(usex wasm 256 0) + ${M} ))
- M=$(( $(usex debug 2 1) * ${M} ))
- eshopts_push -s extglob
- if is-flagq '-g?(gdb)?([1-9])'; then
- M=$(( 15 * ${M} / 10 ))
- fi
- eshopts_pop
- M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
- M=$(( $(usex doc 256 0) + ${M} ))
- CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
-}
-
-llvm_check_deps() {
- has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
-}
-
-# Is LLVM being linked against libc++?
-is_libcxx_linked() {
- local code='#include <ciso646>
-#if defined(_LIBCPP_VERSION)
- HAVE_LIBCXX
-#endif
-'
- local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
- [[ ${out} == *HAVE_LIBCXX* ]]
-}
-
-pkg_pretend() {
- pre_build_checks
-}
-
-pkg_setup() {
- pre_build_checks
- python-any-r1_pkg_setup
-
- export LIBGIT2_NO_PKG_CONFIG=1 #749381
- if tc-is-cross-compiler; then
- export PKG_CONFIG_ALLOW_CROSS=1
- export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
- export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
- export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
-
- use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
- use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
- local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
- use "llvm_targets_${cross_llvm_target}" || \
- die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
- fi
-
- use system-bootstrap && bootstrap_rust_version_check
-
- if use system-llvm; then
- llvm_pkg_setup
-
- local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- export LLVM_LINK_SHARED=1
- export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
- fi
-}
-
-esetup_unwind_hack() {
- # https://bugs.gentoo.org/870280
- # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
- # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
- # the whole idea is for stage0 to bootstrap with fake libgcc_s.
- # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
- local fakelib="${T}/fakelib"
- mkdir -p "${fakelib}" || die
- # we need both symlinks, one for cargo runtime, other for linker.
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
- export LD_LIBRARY_PATH="${fakelib}"
- export RUSTFLAGS+=" -L${fakelib}"
- # this is a literally magic variable that gets through cargo cache, without it some
- # crates ignore RUSTFLAGS.
- # this variable can not contain leading space.
- export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
-}
-
-src_prepare() {
- # Clear vendor checksums for crates that we patched to bump libc.
- # NOTE: refresh this on each bump.
- #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
- # terminal_size tracing-tree; do
- # clear_vendor_checksums "${i}"
- #done
-
- if ! use system-bootstrap; then
- has_version sys-devel/gcc || esetup_unwind_hack
- local rust_stage0_root="${WORKDIR}"/rust-stage0
- local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
-
- "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
- --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
- fi
-
- default
-}
-
-src_configure() {
- filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
-
- local rust_target="" rust_targets="" arch_cflags
-
- # Collect rust target names to compile standard libs for all ABIs.
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
- done
- if use wasm; then
- rust_targets+=",\"wasm32-unknown-unknown\""
- if use system-llvm; then
- # un-hardcode rust-lld linker for this target
- # https://bugs.gentoo.org/715348
- sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
- fi
- fi
- rust_targets="${rust_targets#,}"
-
- # cargo and rustdoc are mandatory and should always be included
- local tools='"cargo","rustdoc"'
- use clippy && tools+=',"clippy"'
- use miri && tools+=',"miri"'
- use profiler && tools+=',"rust-demangler"'
- use rustfmt && tools+=',"rustfmt"'
- use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
- use rust-src && tools+=',"src"'
-
- local rust_stage0_root
- if use system-bootstrap; then
- local printsysroot
- printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
- rust_stage0_root="${printsysroot}"
- else
- rust_stage0_root="${WORKDIR}"/rust-stage0
- fi
- # in case of prefix it will be already prefixed, as --print sysroot returns full path
- [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
-
- rust_target="$(rust_abi)"
- rust_build="$(rust_abi "${CBUILD}")"
- rust_host="$(rust_abi "${CHOST}")"
-
- local cm_btype="$(usex debug DEBUG RELEASE)"
- cat <<- _EOF_ > "${S}"/config.toml
- [llvm]
- download-ci-llvm = false
- optimize = $(toml_usex !debug)
- release-debuginfo = $(toml_usex debug)
- assertions = $(toml_usex debug)
- ninja = true
- targets = "${LLVM_TARGETS// /;}"
- experimental-targets = ""
- link-shared = $(toml_usex system-llvm)
- $(if is_libcxx_linked; then
- # https://bugs.gentoo.org/732632
- echo "use-libcxx = true"
- echo "static-libstdcpp = false"
- fi)
- $(case "${rust_target}" in
- i586-*-linux-*)
- # https://github.com/rust-lang/rust/issues/93059
- echo 'cflags = "-fcf-protection=none"'
- echo 'cxxflags = "-fcf-protection=none"'
- echo 'ldflags = "-fcf-protection=none"'
- ;;
- *)
- ;;
- esac)
- enable-warnings = false
- [llvm.build-config]
- CMAKE_VERBOSE_MAKEFILE = "ON"
- $(if ! tc-is-cross-compiler; then
- # When cross-compiling, LLVM is compiled twice, once for host and
- # once for target. Unfortunately, this build configuration applies
- # to both, which means any flags applicable to one target but not
- # the other will break. Conditionally disable respecting user
- # flags when cross-compiling.
- echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
- echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
- echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
- fi)
- [build]
- build-stage = 2
- test-stage = 2
- build = "${rust_build}"
- host = ["${rust_host}"]
- target = [${rust_targets}]
- cargo = "${rust_stage0_root}/bin/cargo"
- rustc = "${rust_stage0_root}/bin/rustc"
- rustfmt = "${rust_stage0_root}/bin/rustfmt"
- docs = $(toml_usex doc)
- compiler-docs = false
- submodules = false
- python = "${EPYTHON}"
- locked-deps = true
- vendor = true
- extended = true
- tools = [${tools}]
- verbose = 2
- sanitizers = false
- profiler = $(toml_usex profiler)
- cargo-native-static = false
- [install]
- prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
- sysconfdir = "etc"
- docdir = "share/doc/rust"
- bindir = "bin"
- libdir = "lib"
- mandir = "share/man"
- [rust]
- # https://github.com/rust-lang/rust/issues/54872
- codegen-units-std = 1
- optimize = true
- debug = $(toml_usex debug)
- debug-assertions = $(toml_usex debug)
- debug-assertions-std = $(toml_usex debug)
- debuginfo-level = $(usex debug 2 0)
- debuginfo-level-rustc = $(usex debug 2 0)
- debuginfo-level-std = $(usex debug 2 0)
- debuginfo-level-tools = $(usex debug 2 0)
- debuginfo-level-tests = 0
- backtrace = true
- incremental = false
- $(if ! tc-is-cross-compiler; then
- echo "default-linker = \"$(tc-getCC)\""
- fi)
- parallel-compiler = $(toml_usex parallel-compiler)
- channel = "$(usex nightly nightly stable)"
- description = "gentoo"
- rpath = false
- verbose-tests = true
- optimize-tests = $(toml_usex !debug)
- codegen-tests = true
- dist-src = false
- remap-debuginfo = true
- lld = $(usex system-llvm false $(toml_usex wasm))
- # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
- # https://github.com/rust-lang/rust/issues/74976
- # https://github.com/rust-lang/rust/issues/76526
- deny-warnings = $(usex wasm $(usex doc false true) true)
- backtrace-on-ice = true
- jemalloc = false
- # See https://github.com/rust-lang/rust/issues/121124
- lto = "$(usex lto thin off)"
- [dist]
- src-tarball = false
- compression-formats = ["xz"]
- compression-profile = "balanced"
- _EOF_
-
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
- arch_cflags="$(get_abi_CFLAGS ${v##*.})"
-
- export CFLAGS_${rust_target//-/_}="${arch_cflags}"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${rust_target}]
- ar = "$(tc-getAR)"
- cc = "$(tc-getCC)"
- cxx = "$(tc-getCXX)"
- linker = "$(tc-getCC)"
- ranlib = "$(tc-getRANLIB)"
- llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
- # but we patch it and set to false here as well
- if use elibc_musl; then
- cat <<- _EOF_ >> "${S}"/config.toml
- crt-static = false
- musl-root = "$($(tc-getCC) -print-sysroot)/usr"
- _EOF_
- fi
- done
- if use wasm; then
- wasm_target="wasm32-unknown-unknown"
- export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")"
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.wasm32-unknown-unknown]
- linker = "$(usex system-llvm lld rust-lld)"
- # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
- profiler = false
- _EOF_
- fi
-
- if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
- # experimental cross support
- # discussion: https://bugs.gentoo.org/679878
- # TODO: c*flags, clang, system-llvm, cargo.eclass target support
- # it would be much better if we could split out stdlib
- # complilation to separate ebuild and abuse CATEGORY to
- # just install to /usr/lib/rustlib/<target>
-
- # extra targets defined as a bash array
- # spec format: <LLVM target>:<rust-target>:<CTARGET>
- # best place would be /etc/portage/env/dev-lang/rust
- # Example:
- # RUST_CROSS_TARGETS=(
- # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
- # )
- # no extra hand holding is done, no target transformations, all
- # values are passed as-is with just basic checks, so it's up to user to supply correct values
- # valid rust targets can be obtained with
- # rustc --print target-list
- # matching cross toolchain has to be installed
- # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
- # only gcc toolchains installed with crossdev are checked for now.
-
- # BUG: we can't pass host flags to cross compiler, so just filter for now
- # BUG: this should be more fine-grained.
- filter-flags '-mcpu=*' '-march=*' '-mtune=*'
-
- local cross_target_spec
- for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
- # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
- local cross_llvm_target="${cross_target_spec%%:*}"
- # extracts toolchain triples, <rust-target>:<CTARGET>
- local cross_triples="${cross_target_spec#*:}"
- # extracts first element after before : separator
- local cross_rust_target="${cross_triples%%:*}"
- # extracts last element after : separator
- local cross_toolchain="${cross_triples##*:}"
- use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
- command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${cross_rust_target}]
- ar = "${cross_toolchain}-ar"
- cc = "${cross_toolchain}-gcc"
- cxx = "${cross_toolchain}-g++"
- linker = "${cross_toolchain}-gcc"
- ranlib = "${cross_toolchain}-ranlib"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- if [[ "${cross_toolchain}" == *-musl* ]]; then
- cat <<- _EOF_ >> "${S}"/config.toml
- musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
- _EOF_
- fi
-
- # append cross target to "normal" target list
- # example 'target = ["powerpc64le-unknown-linux-gnu"]'
- # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
-
- rust_targets="${rust_targets},\"${cross_rust_target}\""
- sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
-
- ewarn
- ewarn "Enabled ${cross_rust_target} rust target"
- ewarn "Using ${cross_toolchain} cross toolchain"
- ewarn
- if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
- ewarn "'sys-devel/binutils[multitarget]' is not installed"
- ewarn "'strip' will be unable to strip cross libraries"
- ewarn "cross targets will be installed with full debug information"
- ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
- ewarn
- ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
- ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
- ewarn
- fi
- done
- fi # I_KNOW_WHAT_I_AM_DOING_CROSS
-
- einfo "Rust configured with the following flags:"
- echo
- echo RUSTFLAGS="\"${RUSTFLAGS}\""
- echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
- echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
- echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
- env | grep "CARGO_TARGET_.*_RUSTFLAGS="
- env | grep "CFLAGS_.*"
- echo
- einfo "config.toml contents:"
- cat "${S}"/config.toml || die
- echo
-}
-
-src_compile() {
- RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-}
-
-src_test() {
- # https://rustc-dev-guide.rust-lang.org/tests/intro.html
-
- # those are basic and codegen tests.
- local tests=(
- codegen
- codegen-units
- compile-fail
- incremental
- mir-opt
- pretty
- run-make
- )
-
- # fails if llvm is not built with ALL targets.
- # and known to fail with system llvm sometimes.
- use system-llvm || tests+=( assembly )
-
- # fragile/expensive/less important tests
- # or tests that require extra builds
- # TODO: instead of skipping, just make some nonfatal.
- if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
- tests+=(
- rustdoc
- rustdoc-js
- rustdoc-js-std
- rustdoc-ui
- run-make-fulldeps
- ui
- ui-fulldeps
- )
- fi
-
- local i failed=()
- einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
- for i in "${tests[@]}"; do
- local t="src/test/${i}"
- einfo "rust_src_test: running ${t}"
- if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
- -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
- then
- failed+=( "${t}" )
- eerror "rust_src_test: ${t} failed"
- fi
- done
-
- if [[ ${#failed[@]} -ne 0 ]]; then
- eerror "rust_src_test: failure summary: ${failed[@]}"
- die "aborting due to test failures"
- fi
-}
-
-src_install() {
- DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-
- # bug #689562, #689160
- rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
- rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
- newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
-
- local symlinks=(
- cargo
- rustc
- rustdoc
- rust-gdb
- rust-gdbgui
- rust-lldb
- )
-
- use clippy && symlinks+=( clippy-driver cargo-clippy )
- use miri && symlinks+=( miri cargo-miri )
- use profiler && symlinks+=( rust-demangler )
- use rustfmt && symlinks+=( rustfmt cargo-fmt )
- use rust-analyzer && symlinks+=( rust-analyzer )
-
- einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
- local i
- for i in "${symlinks[@]}"; do
- # we need realpath on /usr/bin/* symlink return version-appended binary path.
- # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
- # need to fix eselect-rust to remove this hack.
- local ver_i="${i}-${PV}"
- if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
- einfo "Installing ${i} symlink"
- ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
- else
- ewarn "${i} symlink requested, but source file not found"
- ewarn "please report this"
- fi
- dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
- done
-
- # symlinks to switch components to active rust in eselect
- dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
- dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
- dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
- dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
- dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
-
- newenvd - "50${P}" <<-_EOF_
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
- _EOF_
-
- rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
-
- # note: eselect-rust adds EROOT to all paths below
- cat <<-_EOF_ > "${T}/provider-${P}"
- /usr/bin/cargo
- /usr/bin/rustdoc
- /usr/bin/rust-gdb
- /usr/bin/rust-gdbgui
- /usr/bin/rust-lldb
- /usr/lib/rustlib
- /usr/lib/rust/lib
- /usr/lib/rust/libexec
- /usr/lib/rust/man
- /usr/share/doc/rust
- _EOF_
-
- if use clippy; then
- echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
- echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
- fi
- if use miri; then
- echo /usr/bin/miri >> "${T}/provider-${P}"
- echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
- fi
- if use profiler; then
- echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
- fi
- if use rustfmt; then
- echo /usr/bin/rustfmt >> "${T}/provider-${P}"
- echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
- fi
- if use rust-analyzer; then
- echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
- fi
-
- insinto /etc/env.d/rust
- doins "${T}/provider-${P}"
-
- if use dist; then
- "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
- insinto "/usr/lib/${PN}/${PV}/dist"
- doins -r "${S}/build/dist/."
- fi
-}
-
-pkg_postinst() {
- eselect rust update
-
- if has_version dev-debug/gdb || has_version dev-debug/lldb; then
- elog "Rust installs a helper script for calling GDB and LLDB,"
- elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
- fi
-
- if has_version app-editors/emacs; then
- elog "install app-emacs/rust-mode to get emacs support for rust."
- fi
-
- if has_version app-editors/gvim || has_version app-editors/vim; then
- elog "install app-vim/rust-vim to get vim support for rust."
- fi
-}
-
-pkg_postrm() {
- eselect rust cleanup
-}
diff --git a/dev-lang/rust/rust-1.80.1.ebuild b/dev-lang/rust/rust-1.80.1.ebuild
deleted file mode 100644
index ab3c0a655447..000000000000
--- a/dev-lang/rust/rust-1.80.1.ebuild
+++ /dev/null
@@ -1,787 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-
-inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
- multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
-
-if [[ ${PV} = *beta* ]]; then
- betaver=${PV//*beta}
- BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
- MY_P="rustc-beta"
- SLOT="beta/${PV}"
- SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
-else
- ABI_VER="$(ver_cut 1-2)"
- SLOT="stable/${ABI_VER}"
- MY_P="rustc-${PV}"
- SRC="${MY_P}-src.tar.xz"
- KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
-fi
-
-RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
-
-DESCRIPTION="Systems programming language from Mozilla"
-HOMEPAGE="https://www.rust-lang.org/"
-
-SRC_URI="
- https://static.rust-lang.org/dist/${SRC}
- verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
- !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
-"
-S="${WORKDIR}/${MY_P}-src"
-
-# keep in sync with llvm ebuild of the same version as bundled one.
-ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
- LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
- WebAssembly X86 XCore Xtensa )
-ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
-LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
-
-LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-
-IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler profiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
-
-# Please keep the LLVM dependency block separate. Since LLVM is slotted,
-# we need to *really* make sure we're not pulling more than one slot
-# simultaneously.
-
-# How to use it:
-# List all the working slots in LLVM_VALID_SLOTS, newest first.
-LLVM_VALID_SLOTS=( 18 )
-LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
-
-# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
-# (-) usedep needed because we may build with older llvm without that target
-LLVM_DEPEND="|| ( "
-for _s in ${LLVM_VALID_SLOTS[@]}; do
- LLVM_DEPEND+=" ( "
- for _x in ${ALL_LLVM_TARGETS[@]}; do
- LLVM_DEPEND+="
- ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )
- wasm? ( sys-devel/lld:${_s} )"
- done
- LLVM_DEPEND+=" )"
-done
-unset _s _x
-LLVM_DEPEND+=" )
- <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
-"
-
-# to bootstrap we need at least exactly previous version, or same.
-# most of the time previous versions fail to bootstrap with newer
-# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
-# but it fails to bootstrap with 1.48.x
-# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
-RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
-RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
-BOOTSTRAP_DEPEND="||
- (
- =dev-lang/rust-"${RUST_DEP_PREV}"
- =dev-lang/rust-bin-"${RUST_DEP_PREV}"
- =dev-lang/rust-"${RUST_DEP_CURR}"
- =dev-lang/rust-bin-"${RUST_DEP_CURR}"
- )
-"
-
-BDEPEND="${PYTHON_DEPS}
- app-eselect/eselect-rust
- || (
- >=sys-devel/gcc-4.7
- >=sys-devel/clang-3.5
- )
- system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
- !system-llvm? (
- >=dev-build/cmake-3.13.4
- app-alternatives/ninja
- )
- test? ( dev-debug/gdb )
- verify-sig? ( sec-keys/openpgp-keys-rust )
-"
-
-DEPEND="
- >=app-arch/xz-utils-5.2
- net-misc/curl:=[http2,ssl]
- sys-libs/zlib:=
- dev-libs/openssl:0=
- system-llvm? (
- ${LLVM_DEPEND}
- llvm-libunwind? ( sys-libs/llvm-libunwind:= )
- )
- !system-llvm? (
- !llvm-libunwind? (
- elibc_musl? ( sys-libs/libunwind:= )
- )
- )
-"
-
-RDEPEND="${DEPEND}
- app-eselect/eselect-rust
- sys-apps/lsb-release
-"
-
-REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
- miri? ( nightly )
- parallel-compiler? ( nightly )
- rust-analyzer? ( rust-src )
- test? ( ${ALL_LLVM_TARGETS[*]} )
- wasm? ( llvm_targets_WebAssembly )
- x86? ( cpu_flags_x86_sse2 )
-"
-
-# we don't use cmake.eclass, but can get a warning
-CMAKE_WARN_UNUSED_CLI=no
-
-QA_FLAGS_IGNORED="
- usr/lib/${PN}/${PV}/bin/.*
- usr/lib/${PN}/${PV}/libexec/.*
- usr/lib/${PN}/${PV}/lib/lib.*.so
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_SONAME="
- usr/lib/${PN}/${PV}/lib/lib.*.so.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_PRESTRIPPED="
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
-"
-
-# An rmeta file is custom binary format that contains the metadata for the crate.
-# rmeta files do not support linking, since they do not contain compiled object files.
-# so we can safely silence the warning for this QA check.
-QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
-
-# causes double bootstrap
-RESTRICT="test"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
-
-PATCHES=(
- "${FILESDIR}"/1.78.0-musl-dynamic-linking.patch
- "${FILESDIR}"/1.74.1-cross-compile-libz.patch
- #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
- "${FILESDIR}"/1.67.0-doc-wasm.patch
- "${FILESDIR}"/1.79.0-revert-8c40426.patch
-)
-
-clear_vendor_checksums() {
- sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
-}
-
-toml_usex() {
- usex "${1}" true false
-}
-
-bootstrap_rust_version_check() {
- # never call from pkg_pretend. eselect-rust may be not installed yet.
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
- local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
- local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
- eerror "Rust >=${rustc_wanted} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too old"
- elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
- eerror "Rust <${rustc_toonew} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too new"
- else
- einfo "Using rust ${rustc_version} to build"
- fi
-}
-
-pre_build_checks() {
- local M=8192
- # multiply requirements by 1.3 if we are doing x86-multilib
- if use amd64; then
- M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
- fi
- M=$(( $(usex clippy 128 0) + ${M} ))
- M=$(( $(usex miri 128 0) + ${M} ))
- M=$(( $(usex rustfmt 256 0) + ${M} ))
- # add 2G if we compile llvm and 256M per llvm_target
- if ! use system-llvm; then
- M=$(( 2048 + ${M} ))
- local ltarget
- for ltarget in ${ALL_LLVM_TARGETS[@]}; do
- M=$(( $(usex ${ltarget} 256 0) + ${M} ))
- done
- fi
- M=$(( $(usex wasm 256 0) + ${M} ))
- M=$(( $(usex debug 2 1) * ${M} ))
- eshopts_push -s extglob
- if is-flagq '-g?(gdb)?([1-9])'; then
- M=$(( 15 * ${M} / 10 ))
- fi
- eshopts_pop
- M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
- M=$(( $(usex doc 256 0) + ${M} ))
- CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
-}
-
-llvm_check_deps() {
- has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
-}
-
-# Is LLVM being linked against libc++?
-is_libcxx_linked() {
- local code='#include <ciso646>
-#if defined(_LIBCPP_VERSION)
- HAVE_LIBCXX
-#endif
-'
- local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
- [[ ${out} == *HAVE_LIBCXX* ]]
-}
-
-pkg_pretend() {
- pre_build_checks
-}
-
-pkg_setup() {
- pre_build_checks
- python-any-r1_pkg_setup
-
- export LIBGIT2_NO_PKG_CONFIG=1 #749381
- if tc-is-cross-compiler; then
- export PKG_CONFIG_ALLOW_CROSS=1
- export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
- export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
- export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
-
- use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
- use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
- local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
- use "llvm_targets_${cross_llvm_target}" || \
- die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
- fi
-
- use system-bootstrap && bootstrap_rust_version_check
-
- if use system-llvm; then
- llvm_pkg_setup
-
- local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- export LLVM_LINK_SHARED=1
- export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
- fi
-}
-
-esetup_unwind_hack() {
- # https://bugs.gentoo.org/870280
- # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
- # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
- # the whole idea is for stage0 to bootstrap with fake libgcc_s.
- # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
- local fakelib="${T}/fakelib"
- mkdir -p "${fakelib}" || die
- # we need both symlinks, one for cargo runtime, other for linker.
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
- export LD_LIBRARY_PATH="${fakelib}"
- export RUSTFLAGS+=" -L${fakelib}"
- # this is a literally magic variable that gets through cargo cache, without it some
- # crates ignore RUSTFLAGS.
- # this variable can not contain leading space.
- export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
-}
-
-src_prepare() {
- # Clear vendor checksums for crates that we patched to bump libc.
- # NOTE: refresh this on each bump.
- #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
- # terminal_size tracing-tree; do
- # clear_vendor_checksums "${i}"
- #done
-
- if ! use system-bootstrap; then
- has_version sys-devel/gcc || esetup_unwind_hack
- local rust_stage0_root="${WORKDIR}"/rust-stage0
- local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
-
- "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
- --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
- fi
-
- default
-}
-
-src_configure() {
- filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
-
- local rust_target="" rust_targets="" arch_cflags
-
- # Collect rust target names to compile standard libs for all ABIs.
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
- done
- if use wasm; then
- rust_targets+=",\"wasm32-unknown-unknown\""
- if use system-llvm; then
- # un-hardcode rust-lld linker for this target
- # https://bugs.gentoo.org/715348
- sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
- fi
- fi
- rust_targets="${rust_targets#,}"
-
- # cargo and rustdoc are mandatory and should always be included
- local tools='"cargo","rustdoc"'
- use clippy && tools+=',"clippy"'
- use miri && tools+=',"miri"'
- use profiler && tools+=',"rust-demangler"'
- use rustfmt && tools+=',"rustfmt"'
- use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
- use rust-src && tools+=',"src"'
-
- local rust_stage0_root
- if use system-bootstrap; then
- local printsysroot
- printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
- rust_stage0_root="${printsysroot}"
- else
- rust_stage0_root="${WORKDIR}"/rust-stage0
- fi
- # in case of prefix it will be already prefixed, as --print sysroot returns full path
- [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
-
- rust_target="$(rust_abi)"
- rust_build="$(rust_abi "${CBUILD}")"
- rust_host="$(rust_abi "${CHOST}")"
-
- local cm_btype="$(usex debug DEBUG RELEASE)"
- cat <<- _EOF_ > "${S}"/config.toml
- [llvm]
- download-ci-llvm = false
- optimize = $(toml_usex !debug)
- release-debuginfo = $(toml_usex debug)
- assertions = $(toml_usex debug)
- ninja = true
- targets = "${LLVM_TARGETS// /;}"
- experimental-targets = ""
- link-shared = $(toml_usex system-llvm)
- $(if is_libcxx_linked; then
- # https://bugs.gentoo.org/732632
- echo "use-libcxx = true"
- echo "static-libstdcpp = false"
- fi)
- $(case "${rust_target}" in
- i586-*-linux-*)
- # https://github.com/rust-lang/rust/issues/93059
- echo 'cflags = "-fcf-protection=none"'
- echo 'cxxflags = "-fcf-protection=none"'
- echo 'ldflags = "-fcf-protection=none"'
- ;;
- *)
- ;;
- esac)
- enable-warnings = false
- [llvm.build-config]
- CMAKE_VERBOSE_MAKEFILE = "ON"
- $(if ! tc-is-cross-compiler; then
- # When cross-compiling, LLVM is compiled twice, once for host and
- # once for target. Unfortunately, this build configuration applies
- # to both, which means any flags applicable to one target but not
- # the other will break. Conditionally disable respecting user
- # flags when cross-compiling.
- echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
- echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
- echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
- fi)
- [build]
- build-stage = 2
- test-stage = 2
- build = "${rust_build}"
- host = ["${rust_host}"]
- target = [${rust_targets}]
- cargo = "${rust_stage0_root}/bin/cargo"
- rustc = "${rust_stage0_root}/bin/rustc"
- rustfmt = "${rust_stage0_root}/bin/rustfmt"
- docs = $(toml_usex doc)
- compiler-docs = false
- submodules = false
- python = "${EPYTHON}"
- locked-deps = true
- vendor = true
- extended = true
- tools = [${tools}]
- verbose = 2
- sanitizers = false
- profiler = $(toml_usex profiler)
- cargo-native-static = false
- [install]
- prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
- sysconfdir = "etc"
- docdir = "share/doc/rust"
- bindir = "bin"
- libdir = "lib"
- mandir = "share/man"
- [rust]
- # https://github.com/rust-lang/rust/issues/54872
- codegen-units-std = 1
- optimize = true
- debug = $(toml_usex debug)
- debug-assertions = $(toml_usex debug)
- debug-assertions-std = $(toml_usex debug)
- debuginfo-level = $(usex debug 2 0)
- debuginfo-level-rustc = $(usex debug 2 0)
- debuginfo-level-std = $(usex debug 2 0)
- debuginfo-level-tools = $(usex debug 2 0)
- debuginfo-level-tests = 0
- backtrace = true
- incremental = false
- $(if ! tc-is-cross-compiler; then
- echo "default-linker = \"$(tc-getCC)\""
- fi)
- parallel-compiler = $(toml_usex parallel-compiler)
- channel = "$(usex nightly nightly stable)"
- description = "gentoo"
- rpath = false
- verbose-tests = true
- optimize-tests = $(toml_usex !debug)
- codegen-tests = true
- dist-src = false
- remap-debuginfo = true
- lld = $(usex system-llvm false $(toml_usex wasm))
- # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
- # https://github.com/rust-lang/rust/issues/74976
- # https://github.com/rust-lang/rust/issues/76526
- deny-warnings = $(usex wasm $(usex doc false true) true)
- backtrace-on-ice = true
- jemalloc = false
- # See https://github.com/rust-lang/rust/issues/121124
- lto = "$(usex lto thin off)"
- [dist]
- src-tarball = false
- compression-formats = ["xz"]
- compression-profile = "balanced"
- _EOF_
-
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
- arch_cflags="$(get_abi_CFLAGS ${v##*.})"
-
- export CFLAGS_${rust_target//-/_}="${arch_cflags}"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${rust_target}]
- ar = "$(tc-getAR)"
- cc = "$(tc-getCC)"
- cxx = "$(tc-getCXX)"
- linker = "$(tc-getCC)"
- ranlib = "$(tc-getRANLIB)"
- llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
- # but we patch it and set to false here as well
- if use elibc_musl; then
- cat <<- _EOF_ >> "${S}"/config.toml
- crt-static = false
- musl-root = "$($(tc-getCC) -print-sysroot)/usr"
- _EOF_
- fi
- done
- if use wasm; then
- wasm_target="wasm32-unknown-unknown"
- export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")"
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.wasm32-unknown-unknown]
- linker = "$(usex system-llvm lld rust-lld)"
- # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
- profiler = false
- _EOF_
- fi
-
- if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
- # experimental cross support
- # discussion: https://bugs.gentoo.org/679878
- # TODO: c*flags, clang, system-llvm, cargo.eclass target support
- # it would be much better if we could split out stdlib
- # complilation to separate ebuild and abuse CATEGORY to
- # just install to /usr/lib/rustlib/<target>
-
- # extra targets defined as a bash array
- # spec format: <LLVM target>:<rust-target>:<CTARGET>
- # best place would be /etc/portage/env/dev-lang/rust
- # Example:
- # RUST_CROSS_TARGETS=(
- # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
- # )
- # no extra hand holding is done, no target transformations, all
- # values are passed as-is with just basic checks, so it's up to user to supply correct values
- # valid rust targets can be obtained with
- # rustc --print target-list
- # matching cross toolchain has to be installed
- # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
- # only gcc toolchains installed with crossdev are checked for now.
-
- # BUG: we can't pass host flags to cross compiler, so just filter for now
- # BUG: this should be more fine-grained.
- filter-flags '-mcpu=*' '-march=*' '-mtune=*'
-
- local cross_target_spec
- for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
- # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
- local cross_llvm_target="${cross_target_spec%%:*}"
- # extracts toolchain triples, <rust-target>:<CTARGET>
- local cross_triples="${cross_target_spec#*:}"
- # extracts first element after before : separator
- local cross_rust_target="${cross_triples%%:*}"
- # extracts last element after : separator
- local cross_toolchain="${cross_triples##*:}"
- use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
- command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${cross_rust_target}]
- ar = "${cross_toolchain}-ar"
- cc = "${cross_toolchain}-gcc"
- cxx = "${cross_toolchain}-g++"
- linker = "${cross_toolchain}-gcc"
- ranlib = "${cross_toolchain}-ranlib"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- if [[ "${cross_toolchain}" == *-musl* ]]; then
- cat <<- _EOF_ >> "${S}"/config.toml
- musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
- _EOF_
- fi
-
- # append cross target to "normal" target list
- # example 'target = ["powerpc64le-unknown-linux-gnu"]'
- # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
-
- rust_targets="${rust_targets},\"${cross_rust_target}\""
- sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
-
- ewarn
- ewarn "Enabled ${cross_rust_target} rust target"
- ewarn "Using ${cross_toolchain} cross toolchain"
- ewarn
- if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
- ewarn "'sys-devel/binutils[multitarget]' is not installed"
- ewarn "'strip' will be unable to strip cross libraries"
- ewarn "cross targets will be installed with full debug information"
- ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
- ewarn
- ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
- ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
- ewarn
- fi
- done
- fi # I_KNOW_WHAT_I_AM_DOING_CROSS
-
- einfo "Rust configured with the following flags:"
- echo
- echo RUSTFLAGS="\"${RUSTFLAGS}\""
- echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
- echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
- echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
- env | grep "CARGO_TARGET_.*_RUSTFLAGS="
- env | grep "CFLAGS_.*"
- echo
- einfo "config.toml contents:"
- cat "${S}"/config.toml || die
- echo
-}
-
-src_compile() {
- RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-}
-
-src_test() {
- # https://rustc-dev-guide.rust-lang.org/tests/intro.html
-
- # those are basic and codegen tests.
- local tests=(
- codegen
- codegen-units
- compile-fail
- incremental
- mir-opt
- pretty
- run-make
- )
-
- # fails if llvm is not built with ALL targets.
- # and known to fail with system llvm sometimes.
- use system-llvm || tests+=( assembly )
-
- # fragile/expensive/less important tests
- # or tests that require extra builds
- # TODO: instead of skipping, just make some nonfatal.
- if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
- tests+=(
- rustdoc
- rustdoc-js
- rustdoc-js-std
- rustdoc-ui
- run-make-fulldeps
- ui
- ui-fulldeps
- )
- fi
-
- local i failed=()
- einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
- for i in "${tests[@]}"; do
- local t="src/test/${i}"
- einfo "rust_src_test: running ${t}"
- if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
- -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
- then
- failed+=( "${t}" )
- eerror "rust_src_test: ${t} failed"
- fi
- done
-
- if [[ ${#failed[@]} -ne 0 ]]; then
- eerror "rust_src_test: failure summary: ${failed[@]}"
- die "aborting due to test failures"
- fi
-}
-
-src_install() {
- DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-
- # bug #689562, #689160
- rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
- rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
- newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
-
- local symlinks=(
- cargo
- rustc
- rustdoc
- rust-gdb
- rust-gdbgui
- rust-lldb
- )
-
- use clippy && symlinks+=( clippy-driver cargo-clippy )
- use miri && symlinks+=( miri cargo-miri )
- use profiler && symlinks+=( rust-demangler )
- use rustfmt && symlinks+=( rustfmt cargo-fmt )
- use rust-analyzer && symlinks+=( rust-analyzer )
-
- einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
- local i
- for i in "${symlinks[@]}"; do
- # we need realpath on /usr/bin/* symlink return version-appended binary path.
- # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
- # need to fix eselect-rust to remove this hack.
- local ver_i="${i}-${PV}"
- if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
- einfo "Installing ${i} symlink"
- ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
- else
- ewarn "${i} symlink requested, but source file not found"
- ewarn "please report this"
- fi
- dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
- done
-
- # symlinks to switch components to active rust in eselect
- dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
- dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
- dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
- dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
- dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
-
- newenvd - "50${P}" <<-_EOF_
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
- _EOF_
-
- rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
-
- # note: eselect-rust adds EROOT to all paths below
- cat <<-_EOF_ > "${T}/provider-${P}"
- /usr/bin/cargo
- /usr/bin/rustdoc
- /usr/bin/rust-gdb
- /usr/bin/rust-gdbgui
- /usr/bin/rust-lldb
- /usr/lib/rustlib
- /usr/lib/rust/lib
- /usr/lib/rust/libexec
- /usr/lib/rust/man
- /usr/share/doc/rust
- _EOF_
-
- if use clippy; then
- echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
- echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
- fi
- if use miri; then
- echo /usr/bin/miri >> "${T}/provider-${P}"
- echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
- fi
- if use profiler; then
- echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
- fi
- if use rustfmt; then
- echo /usr/bin/rustfmt >> "${T}/provider-${P}"
- echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
- fi
- if use rust-analyzer; then
- echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
- fi
-
- insinto /etc/env.d/rust
- doins "${T}/provider-${P}"
-
- if use dist; then
- "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
- insinto "/usr/lib/${PN}/${PV}/dist"
- doins -r "${S}/build/dist/."
- fi
-}
-
-pkg_postinst() {
- eselect rust update
-
- if has_version dev-debug/gdb || has_version dev-debug/lldb; then
- elog "Rust installs a helper script for calling GDB and LLDB,"
- elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
- fi
-
- if has_version app-editors/emacs; then
- elog "install app-emacs/rust-mode to get emacs support for rust."
- fi
-
- if has_version app-editors/gvim || has_version app-editors/vim; then
- elog "install app-vim/rust-vim to get vim support for rust."
- fi
-}
-
-pkg_postrm() {
- eselect rust cleanup
-}
diff --git a/dev-lang/rust/rust-1.81.0.ebuild b/dev-lang/rust/rust-1.81.0.ebuild
deleted file mode 100644
index afae19143e31..000000000000
--- a/dev-lang/rust/rust-1.81.0.ebuild
+++ /dev/null
@@ -1,785 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-
-inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing optfeature \
- multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
-
-if [[ ${PV} = *beta* ]]; then
- betaver=${PV//*beta}
- BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
- MY_P="rustc-beta"
- SLOT="beta/${PV}"
- SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
-else
- ABI_VER="$(ver_cut 1-2)"
- SLOT="stable/${ABI_VER}"
- MY_P="rustc-${PV}"
- SRC="${MY_P}-src.tar.xz"
- KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
-fi
-
-RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).1"
-
-DESCRIPTION="Systems programming language from Mozilla"
-HOMEPAGE="https://www.rust-lang.org/"
-
-SRC_URI="
- https://static.rust-lang.org/dist/${SRC}
- verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
- !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
-"
-S="${WORKDIR}/${MY_P}-src"
-
-# keep in sync with llvm ebuild of the same version as bundled one.
-ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
- LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
- WebAssembly X86 XCore Xtensa )
-ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
-LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
-
-LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-
-IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler profiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
-
-# Please keep the LLVM dependency block separate. Since LLVM is slotted,
-# we need to *really* make sure we're not pulling more than one slot
-# simultaneously.
-
-# How to use it:
-# List all the working slots in LLVM_VALID_SLOTS, newest first.
-LLVM_VALID_SLOTS=( 18 )
-LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
-
-# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
-# (-) usedep needed because we may build with older llvm without that target
-LLVM_DEPEND="|| ( "
-for _s in ${LLVM_VALID_SLOTS[@]}; do
- LLVM_DEPEND+=" ( "
- for _x in ${ALL_LLVM_TARGETS[@]}; do
- LLVM_DEPEND+="
- ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )
- wasm? ( sys-devel/lld:${_s} )"
- done
- LLVM_DEPEND+=" )"
-done
-unset _s _x
-LLVM_DEPEND+=" )
- <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
-"
-
-# to bootstrap we need at least exactly previous version, or same.
-# most of the time previous versions fail to bootstrap with newer
-# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
-# but it fails to bootstrap with 1.48.x
-# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
-RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
-RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
-BOOTSTRAP_DEPEND="||
- (
- =dev-lang/rust-"${RUST_DEP_PREV}"
- =dev-lang/rust-bin-"${RUST_DEP_PREV}"
- =dev-lang/rust-"${RUST_DEP_CURR}"
- =dev-lang/rust-bin-"${RUST_DEP_CURR}"
- )
-"
-
-BDEPEND="${PYTHON_DEPS}
- app-eselect/eselect-rust
- || (
- >=sys-devel/gcc-4.7
- >=sys-devel/clang-3.5
- )
- system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
- !system-llvm? (
- >=dev-build/cmake-3.13.4
- app-alternatives/ninja
- )
- test? ( dev-debug/gdb )
- verify-sig? ( sec-keys/openpgp-keys-rust )
-"
-
-DEPEND="
- >=app-arch/xz-utils-5.2
- net-misc/curl:=[http2,ssl]
- sys-libs/zlib:=
- dev-libs/openssl:0=
- system-llvm? (
- ${LLVM_DEPEND}
- llvm-libunwind? ( sys-libs/llvm-libunwind:= )
- )
- !system-llvm? (
- !llvm-libunwind? (
- elibc_musl? ( sys-libs/libunwind:= )
- )
- )
-"
-
-RDEPEND="${DEPEND}
- app-eselect/eselect-rust
- sys-apps/lsb-release
-"
-
-REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
- miri? ( nightly )
- parallel-compiler? ( nightly )
- rust-analyzer? ( rust-src )
- test? ( ${ALL_LLVM_TARGETS[*]} )
- wasm? ( llvm_targets_WebAssembly )
- x86? ( cpu_flags_x86_sse2 )
-"
-
-# we don't use cmake.eclass, but can get a warning
-CMAKE_WARN_UNUSED_CLI=no
-
-QA_FLAGS_IGNORED="
- usr/lib/${PN}/${PV}/bin/.*
- usr/lib/${PN}/${PV}/libexec/.*
- usr/lib/${PN}/${PV}/lib/lib.*.so
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_SONAME="
- usr/lib/${PN}/${PV}/lib/lib.*.so.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_PRESTRIPPED="
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
-"
-
-# An rmeta file is custom binary format that contains the metadata for the crate.
-# rmeta files do not support linking, since they do not contain compiled object files.
-# so we can safely silence the warning for this QA check.
-QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
-
-# causes double bootstrap
-RESTRICT="test"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
-
-PATCHES=(
- "${FILESDIR}"/1.78.0-musl-dynamic-linking.patch
- "${FILESDIR}"/1.74.1-cross-compile-libz.patch
- #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
- "${FILESDIR}"/1.67.0-doc-wasm.patch
- "${FILESDIR}"/1.79.0-revert-8c40426.patch
- "${FILESDIR}/1.81.0-backport-bug937164.patch"
- "${FILESDIR}/1.81.0-backport-llvm-pr101761.patch"
- "${FILESDIR}/1.81.0-backport-llvm-pr101766.patch"
-)
-
-clear_vendor_checksums() {
- sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
-}
-
-toml_usex() {
- usex "${1}" true false
-}
-
-bootstrap_rust_version_check() {
- # never call from pkg_pretend. eselect-rust may be not installed yet.
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
- local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
- local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
- eerror "Rust >=${rustc_wanted} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too old"
- elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
- eerror "Rust <${rustc_toonew} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too new"
- else
- einfo "Using rust ${rustc_version} to build"
- fi
-}
-
-pre_build_checks() {
- local M=8192
- # multiply requirements by 1.3 if we are doing x86-multilib
- if use amd64; then
- M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
- fi
- M=$(( $(usex clippy 128 0) + ${M} ))
- M=$(( $(usex miri 128 0) + ${M} ))
- M=$(( $(usex rustfmt 256 0) + ${M} ))
- # add 2G if we compile llvm and 256M per llvm_target
- if ! use system-llvm; then
- M=$(( 2048 + ${M} ))
- local ltarget
- for ltarget in ${ALL_LLVM_TARGETS[@]}; do
- M=$(( $(usex ${ltarget} 256 0) + ${M} ))
- done
- fi
- M=$(( $(usex wasm 256 0) + ${M} ))
- M=$(( $(usex debug 2 1) * ${M} ))
- eshopts_push -s extglob
- if is-flagq '-g?(gdb)?([1-9])'; then
- M=$(( 15 * ${M} / 10 ))
- fi
- eshopts_pop
- M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
- M=$(( $(usex doc 256 0) + ${M} ))
- CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
-}
-
-llvm_check_deps() {
- has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
-}
-
-# Is LLVM being linked against libc++?
-is_libcxx_linked() {
- local code='#include <ciso646>
-#if defined(_LIBCPP_VERSION)
- HAVE_LIBCXX
-#endif
-'
- local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
- [[ ${out} == *HAVE_LIBCXX* ]]
-}
-
-pkg_pretend() {
- pre_build_checks
-}
-
-pkg_setup() {
- pre_build_checks
- python-any-r1_pkg_setup
-
- export LIBGIT2_NO_PKG_CONFIG=1 #749381
- if tc-is-cross-compiler; then
- export PKG_CONFIG_ALLOW_CROSS=1
- export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
- export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
- export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
-
- use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
- use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
- local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
- use "llvm_targets_${cross_llvm_target}" || \
- die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
- fi
-
- use system-bootstrap && bootstrap_rust_version_check
-
- if use system-llvm; then
- llvm_pkg_setup
-
- local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- export LLVM_LINK_SHARED=1
- export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
- fi
-}
-
-esetup_unwind_hack() {
- # https://bugs.gentoo.org/870280
- # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
- # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
- # the whole idea is for stage0 to bootstrap with fake libgcc_s.
- # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
- local fakelib="${T}/fakelib"
- mkdir -p "${fakelib}" || die
- # we need both symlinks, one for cargo runtime, other for linker.
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
- export LD_LIBRARY_PATH="${fakelib}"
- export RUSTFLAGS+=" -L${fakelib}"
- # this is a literally magic variable that gets through cargo cache, without it some
- # crates ignore RUSTFLAGS.
- # this variable can not contain leading space.
- export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
-}
-
-src_prepare() {
- # Clear vendor checksums for crates that we patched to bump libc.
- # NOTE: refresh this on each bump.
- #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
- # terminal_size tracing-tree; do
- # clear_vendor_checksums "${i}"
- #done
-
- if ! use system-bootstrap; then
- has_version sys-devel/gcc || esetup_unwind_hack
- local rust_stage0_root="${WORKDIR}"/rust-stage0
- local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
-
- "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
- --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
- fi
-
- default
-}
-
-src_configure() {
- filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
-
- local rust_target="" rust_targets="" arch_cflags
-
- # Collect rust target names to compile standard libs for all ABIs.
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
- done
- if use wasm; then
- rust_targets+=",\"wasm32-unknown-unknown\""
- if use system-llvm; then
- # un-hardcode rust-lld linker for this target
- # https://bugs.gentoo.org/715348
- sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
- fi
- fi
- rust_targets="${rust_targets#,}"
-
- # cargo and rustdoc are mandatory and should always be included
- local tools='"cargo","rustdoc"'
- use clippy && tools+=',"clippy"'
- use miri && tools+=',"miri"'
- use rustfmt && tools+=',"rustfmt"'
- use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
- use rust-src && tools+=',"src"'
-
- local rust_stage0_root
- if use system-bootstrap; then
- local printsysroot
- printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
- rust_stage0_root="${printsysroot}"
- else
- rust_stage0_root="${WORKDIR}"/rust-stage0
- fi
- # in case of prefix it will be already prefixed, as --print sysroot returns full path
- [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
-
- rust_target="$(rust_abi)"
- rust_build="$(rust_abi "${CBUILD}")"
- rust_host="$(rust_abi "${CHOST}")"
-
- local cm_btype="$(usex debug DEBUG RELEASE)"
- cat <<- _EOF_ > "${S}"/config.toml
- [llvm]
- download-ci-llvm = false
- optimize = $(toml_usex !debug)
- release-debuginfo = $(toml_usex debug)
- assertions = $(toml_usex debug)
- ninja = true
- targets = "${LLVM_TARGETS// /;}"
- experimental-targets = ""
- link-shared = $(toml_usex system-llvm)
- $(if is_libcxx_linked; then
- # https://bugs.gentoo.org/732632
- echo "use-libcxx = true"
- echo "static-libstdcpp = false"
- fi)
- $(case "${rust_target}" in
- i586-*-linux-*)
- # https://github.com/rust-lang/rust/issues/93059
- echo 'cflags = "-fcf-protection=none"'
- echo 'cxxflags = "-fcf-protection=none"'
- echo 'ldflags = "-fcf-protection=none"'
- ;;
- *)
- ;;
- esac)
- enable-warnings = false
- [llvm.build-config]
- CMAKE_VERBOSE_MAKEFILE = "ON"
- $(if ! tc-is-cross-compiler; then
- # When cross-compiling, LLVM is compiled twice, once for host and
- # once for target. Unfortunately, this build configuration applies
- # to both, which means any flags applicable to one target but not
- # the other will break. Conditionally disable respecting user
- # flags when cross-compiling.
- echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
- echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
- echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
- fi)
- [build]
- build-stage = 2
- test-stage = 2
- build = "${rust_build}"
- host = ["${rust_host}"]
- target = [${rust_targets}]
- cargo = "${rust_stage0_root}/bin/cargo"
- rustc = "${rust_stage0_root}/bin/rustc"
- rustfmt = "${rust_stage0_root}/bin/rustfmt"
- docs = $(toml_usex doc)
- compiler-docs = false
- submodules = false
- python = "${EPYTHON}"
- locked-deps = true
- vendor = true
- extended = true
- tools = [${tools}]
- verbose = 2
- sanitizers = false
- profiler = $(toml_usex profiler)
- cargo-native-static = false
- [install]
- prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
- sysconfdir = "etc"
- docdir = "share/doc/rust"
- bindir = "bin"
- libdir = "lib"
- mandir = "share/man"
- [rust]
- # https://github.com/rust-lang/rust/issues/54872
- codegen-units-std = 1
- optimize = true
- debug = $(toml_usex debug)
- debug-assertions = $(toml_usex debug)
- debug-assertions-std = $(toml_usex debug)
- debuginfo-level = $(usex debug 2 0)
- debuginfo-level-rustc = $(usex debug 2 0)
- debuginfo-level-std = $(usex debug 2 0)
- debuginfo-level-tools = $(usex debug 2 0)
- debuginfo-level-tests = 0
- backtrace = true
- incremental = false
- $(if ! tc-is-cross-compiler; then
- echo "default-linker = \"$(tc-getCC)\""
- fi)
- parallel-compiler = $(toml_usex parallel-compiler)
- channel = "$(usex nightly nightly stable)"
- description = "gentoo"
- rpath = false
- verbose-tests = true
- optimize-tests = $(toml_usex !debug)
- codegen-tests = true
- dist-src = false
- remap-debuginfo = true
- lld = $(usex system-llvm false $(toml_usex wasm))
- # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
- # https://github.com/rust-lang/rust/issues/74976
- # https://github.com/rust-lang/rust/issues/76526
- deny-warnings = $(usex wasm $(usex doc false true) true)
- backtrace-on-ice = true
- jemalloc = false
- # See https://github.com/rust-lang/rust/issues/121124
- lto = "$(usex lto thin off)"
- [dist]
- src-tarball = false
- compression-formats = ["xz"]
- compression-profile = "balanced"
- _EOF_
-
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
- arch_cflags="$(get_abi_CFLAGS ${v##*.})"
-
- export CFLAGS_${rust_target//-/_}="${arch_cflags}"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${rust_target}]
- ar = "$(tc-getAR)"
- cc = "$(tc-getCC)"
- cxx = "$(tc-getCXX)"
- linker = "$(tc-getCC)"
- ranlib = "$(tc-getRANLIB)"
- llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
- # but we patch it and set to false here as well
- if use elibc_musl; then
- cat <<- _EOF_ >> "${S}"/config.toml
- crt-static = false
- musl-root = "$($(tc-getCC) -print-sysroot)/usr"
- _EOF_
- fi
- done
- if use wasm; then
- wasm_target="wasm32-unknown-unknown"
- export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")"
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.wasm32-unknown-unknown]
- linker = "$(usex system-llvm lld rust-lld)"
- # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
- profiler = false
- _EOF_
- fi
-
- if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
- # experimental cross support
- # discussion: https://bugs.gentoo.org/679878
- # TODO: c*flags, clang, system-llvm, cargo.eclass target support
- # it would be much better if we could split out stdlib
- # complilation to separate ebuild and abuse CATEGORY to
- # just install to /usr/lib/rustlib/<target>
-
- # extra targets defined as a bash array
- # spec format: <LLVM target>:<rust-target>:<CTARGET>
- # best place would be /etc/portage/env/dev-lang/rust
- # Example:
- # RUST_CROSS_TARGETS=(
- # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
- # )
- # no extra hand holding is done, no target transformations, all
- # values are passed as-is with just basic checks, so it's up to user to supply correct values
- # valid rust targets can be obtained with
- # rustc --print target-list
- # matching cross toolchain has to be installed
- # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
- # only gcc toolchains installed with crossdev are checked for now.
-
- # BUG: we can't pass host flags to cross compiler, so just filter for now
- # BUG: this should be more fine-grained.
- filter-flags '-mcpu=*' '-march=*' '-mtune=*'
-
- local cross_target_spec
- for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
- # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
- local cross_llvm_target="${cross_target_spec%%:*}"
- # extracts toolchain triples, <rust-target>:<CTARGET>
- local cross_triples="${cross_target_spec#*:}"
- # extracts first element after before : separator
- local cross_rust_target="${cross_triples%%:*}"
- # extracts last element after : separator
- local cross_toolchain="${cross_triples##*:}"
- use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
- command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${cross_rust_target}]
- ar = "${cross_toolchain}-ar"
- cc = "${cross_toolchain}-gcc"
- cxx = "${cross_toolchain}-g++"
- linker = "${cross_toolchain}-gcc"
- ranlib = "${cross_toolchain}-ranlib"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- if [[ "${cross_toolchain}" == *-musl* ]]; then
- cat <<- _EOF_ >> "${S}"/config.toml
- musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
- _EOF_
- fi
-
- # append cross target to "normal" target list
- # example 'target = ["powerpc64le-unknown-linux-gnu"]'
- # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
-
- rust_targets="${rust_targets},\"${cross_rust_target}\""
- sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
-
- ewarn
- ewarn "Enabled ${cross_rust_target} rust target"
- ewarn "Using ${cross_toolchain} cross toolchain"
- ewarn
- if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
- ewarn "'sys-devel/binutils[multitarget]' is not installed"
- ewarn "'strip' will be unable to strip cross libraries"
- ewarn "cross targets will be installed with full debug information"
- ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
- ewarn
- ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
- ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
- ewarn
- fi
- done
- fi # I_KNOW_WHAT_I_AM_DOING_CROSS
-
- einfo "Rust configured with the following flags:"
- echo
- echo RUSTFLAGS="\"${RUSTFLAGS}\""
- echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
- echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
- echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
- env | grep "CARGO_TARGET_.*_RUSTFLAGS="
- env | grep "CFLAGS_.*"
- echo
- einfo "config.toml contents:"
- cat "${S}"/config.toml || die
- echo
-}
-
-src_compile() {
- RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-}
-
-src_test() {
- # https://rustc-dev-guide.rust-lang.org/tests/intro.html
-
- # those are basic and codegen tests.
- local tests=(
- codegen
- codegen-units
- compile-fail
- incremental
- mir-opt
- pretty
- run-make
- )
-
- # fails if llvm is not built with ALL targets.
- # and known to fail with system llvm sometimes.
- use system-llvm || tests+=( assembly )
-
- # fragile/expensive/less important tests
- # or tests that require extra builds
- # TODO: instead of skipping, just make some nonfatal.
- if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
- tests+=(
- rustdoc
- rustdoc-js
- rustdoc-js-std
- rustdoc-ui
- run-make-fulldeps
- ui
- ui-fulldeps
- )
- fi
-
- local i failed=()
- einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
- for i in "${tests[@]}"; do
- local t="src/test/${i}"
- einfo "rust_src_test: running ${t}"
- if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
- -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
- then
- failed+=( "${t}" )
- eerror "rust_src_test: ${t} failed"
- fi
- done
-
- if [[ ${#failed[@]} -ne 0 ]]; then
- eerror "rust_src_test: failure summary: ${failed[@]}"
- die "aborting due to test failures"
- fi
-}
-
-src_install() {
- DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-
- # bug #689562, #689160
- rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
- rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
- newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
-
- local symlinks=(
- cargo
- rustc
- rustdoc
- rust-gdb
- rust-gdbgui
- rust-lldb
- )
-
- use clippy && symlinks+=( clippy-driver cargo-clippy )
- use miri && symlinks+=( miri cargo-miri )
- use rustfmt && symlinks+=( rustfmt cargo-fmt )
- use rust-analyzer && symlinks+=( rust-analyzer )
-
- einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
- local i
- for i in "${symlinks[@]}"; do
- # we need realpath on /usr/bin/* symlink return version-appended binary path.
- # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
- # need to fix eselect-rust to remove this hack.
- local ver_i="${i}-${PV}"
- if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
- einfo "Installing ${i} symlink"
- ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
- else
- ewarn "${i} symlink requested, but source file not found"
- ewarn "please report this"
- fi
- dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
- done
-
- # symlinks to switch components to active rust in eselect
- dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
- dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
- dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
- dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
- dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
-
- newenvd - "50${P}" <<-_EOF_
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
- _EOF_
-
- rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
-
- # note: eselect-rust adds EROOT to all paths below
- cat <<-_EOF_ > "${T}/provider-${P}"
- /usr/bin/cargo
- /usr/bin/rustdoc
- /usr/bin/rust-gdb
- /usr/bin/rust-gdbgui
- /usr/bin/rust-lldb
- /usr/lib/rustlib
- /usr/lib/rust/lib
- /usr/lib/rust/libexec
- /usr/lib/rust/man
- /usr/share/doc/rust
- _EOF_
-
- if use clippy; then
- echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
- echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
- fi
- if use miri; then
- echo /usr/bin/miri >> "${T}/provider-${P}"
- echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
- fi
- if use rustfmt; then
- echo /usr/bin/rustfmt >> "${T}/provider-${P}"
- echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
- fi
- if use rust-analyzer; then
- echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
- fi
-
- insinto /etc/env.d/rust
- doins "${T}/provider-${P}"
-
- if use dist; then
- "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
- insinto "/usr/lib/${PN}/${PV}/dist"
- doins -r "${S}/build/dist/."
- fi
-}
-
-pkg_postinst() {
- eselect rust update
-
- if has_version dev-debug/gdb || has_version dev-debug/lldb; then
- elog "Rust installs a helper script for calling GDB and LLDB,"
- elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
- fi
-
- if has_version app-editors/emacs; then
- optfeature "emacs support for rust" app-emacs/rust-mode
- fi
-
- if has_version app-editors/gvim || has_version app-editors/vim; then
- optfeature "vim support for rust" app-vim/rust-vim
- fi
-}
-
-pkg_postrm() {
- eselect rust cleanup
-}
diff --git a/dev-lang/rust/rust-1.82.0.ebuild b/dev-lang/rust/rust-1.82.0.ebuild
deleted file mode 100644
index dbcf51f5fc2c..000000000000
--- a/dev-lang/rust/rust-1.82.0.ebuild
+++ /dev/null
@@ -1,792 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-
-inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing optfeature \
- multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
-
-if [[ ${PV} = *beta* ]]; then
- betaver=${PV//*beta}
- BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
- MY_P="rustc-beta"
- SLOT="beta/${PV}"
- SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
-else
- ABI_VER="$(ver_cut 1-2)"
- SLOT="stable/${ABI_VER}"
- MY_P="rustc-${PV}"
- SRC="${MY_P}-src.tar.xz"
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
-fi
-
-RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
-
-DESCRIPTION="Systems programming language from Mozilla"
-HOMEPAGE="https://www.rust-lang.org/"
-
-SRC_URI="
- https://static.rust-lang.org/dist/${SRC}
- verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
- !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
-"
-S="${WORKDIR}/${MY_P}-src"
-
-# keep in sync with llvm ebuild of the same version as bundled one.
-ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai
- LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV SystemZ VE
- WebAssembly X86 XCore Xtensa )
-ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
-LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
-
-LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4"
-
-IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler profiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
-
-# Please keep the LLVM dependency block separate. Since LLVM is slotted,
-# we need to *really* make sure we're not pulling more than one slot
-# simultaneously.
-
-# How to use it:
-# List all the working slots in LLVM_VALID_SLOTS, newest first.
-LLVM_VALID_SLOTS=( 19 )
-LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
-
-# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
-# (-) usedep needed because we may build with older llvm without that target
-LLVM_DEPEND="|| ( "
-for _s in ${LLVM_VALID_SLOTS[@]}; do
- LLVM_DEPEND+=" ( "
- for _x in ${ALL_LLVM_TARGETS[@]}; do
- LLVM_DEPEND+="
- ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )
- wasm? ( sys-devel/lld:${_s} )"
- done
- LLVM_DEPEND+=" )"
-done
-unset _s _x
-LLVM_DEPEND+=" )
- <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
-"
-
-# to bootstrap we need at least exactly previous version, or same.
-# most of the time previous versions fail to bootstrap with newer
-# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
-# but it fails to bootstrap with 1.48.x
-# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
-RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
-RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
-BOOTSTRAP_DEPEND="||
- (
- =dev-lang/rust-"${RUST_DEP_PREV}"
- =dev-lang/rust-bin-"${RUST_DEP_PREV}"
- =dev-lang/rust-"${RUST_DEP_CURR}"
- =dev-lang/rust-bin-"${RUST_DEP_CURR}"
- )
-"
-
-BDEPEND="${PYTHON_DEPS}
- app-eselect/eselect-rust
- || (
- >=sys-devel/gcc-4.7
- >=sys-devel/clang-3.5
- )
- system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
- !system-llvm? (
- >=dev-build/cmake-3.13.4
- app-alternatives/ninja
- )
- test? ( dev-debug/gdb )
- verify-sig? ( sec-keys/openpgp-keys-rust )
-"
-
-DEPEND="
- >=app-arch/xz-utils-5.2
- net-misc/curl:=[http2,ssl]
- sys-libs/zlib:=
- dev-libs/openssl:0=
- system-llvm? (
- ${LLVM_DEPEND}
- llvm-libunwind? ( sys-libs/llvm-libunwind:= )
- )
- !system-llvm? (
- !llvm-libunwind? (
- elibc_musl? ( sys-libs/libunwind:= )
- )
- )
-"
-
-RDEPEND="${DEPEND}
- app-eselect/eselect-rust
- sys-apps/lsb-release
-"
-
-REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
- miri? ( nightly )
- parallel-compiler? ( nightly )
- rust-analyzer? ( rust-src )
- test? ( ${ALL_LLVM_TARGETS[*]} )
- wasm? ( llvm_targets_WebAssembly )
-"
-
-# we don't use cmake.eclass, but can get a warning
-CMAKE_WARN_UNUSED_CLI=no
-
-QA_FLAGS_IGNORED="
- usr/lib/${PN}/${PV}/bin/.*
- usr/lib/${PN}/${PV}/libexec/.*
- usr/lib/${PN}/${PV}/lib/lib.*.so
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_SONAME="
- usr/lib/${PN}/${PV}/lib/lib.*.so.*
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
-"
-
-QA_PRESTRIPPED="
- usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
- usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
-"
-
-# An rmeta file is custom binary format that contains the metadata for the crate.
-# rmeta files do not support linking, since they do not contain compiled object files.
-# so we can safely silence the warning for this QA check.
-QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
-
-# causes double bootstrap
-RESTRICT="test"
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc
-
-PATCHES=(
- "${FILESDIR}"/1.78.0-musl-dynamic-linking.patch
- "${FILESDIR}"/1.74.1-cross-compile-libz.patch
- #"${FILESDIR}"/1.72.0-bump-libc-deps-to-0.2.146.patch # pending refresh
- "${FILESDIR}"/1.67.0-doc-wasm.patch
- "${FILESDIR}"/1.79.0-revert-8c40426.patch
-)
-
-clear_vendor_checksums() {
- sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die
-}
-
-toml_usex() {
- usex "${1}" true false
-}
-
-bootstrap_rust_version_check() {
- # never call from pkg_pretend. eselect-rust may be not installed yet.
- [[ ${MERGE_TYPE} == binary ]] && return
- local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
- local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
- local rustc_version=( $(eselect --brief --root="${BROOT}" rust show 2>/dev/null) )
- rustc_version=${rustc_version[0]#rust-bin-}
- rustc_version=${rustc_version#rust-}
-
- [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
-
- if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
- eerror "Rust >=${rustc_wanted} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too old"
- elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
- eerror "Rust <${rustc_toonew} is required"
- eerror "please run 'eselect rust' and set correct rust version"
- die "selected rust version is too new"
- else
- einfo "Using rust ${rustc_version} to build"
- fi
-}
-
-pre_build_checks() {
- local M=8192
- # multiply requirements by 1.3 if we are doing x86-multilib
- if use amd64; then
- M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
- fi
- M=$(( $(usex clippy 128 0) + ${M} ))
- M=$(( $(usex miri 128 0) + ${M} ))
- M=$(( $(usex rustfmt 256 0) + ${M} ))
- # add 2G if we compile llvm and 256M per llvm_target
- if ! use system-llvm; then
- M=$(( 2048 + ${M} ))
- local ltarget
- for ltarget in ${ALL_LLVM_TARGETS[@]}; do
- M=$(( $(usex ${ltarget} 256 0) + ${M} ))
- done
- fi
- M=$(( $(usex wasm 256 0) + ${M} ))
- M=$(( $(usex debug 2 1) * ${M} ))
- eshopts_push -s extglob
- if is-flagq '-g?(gdb)?([1-9])'; then
- M=$(( 15 * ${M} / 10 ))
- fi
- eshopts_pop
- M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
- M=$(( $(usex doc 256 0) + ${M} ))
- CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
-}
-
-llvm_check_deps() {
- has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
-}
-
-# Is LLVM being linked against libc++?
-is_libcxx_linked() {
- local code='#include <ciso646>
-#if defined(_LIBCPP_VERSION)
- HAVE_LIBCXX
-#endif
-'
- local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
- [[ ${out} == *HAVE_LIBCXX* ]]
-}
-
-pkg_pretend() {
- pre_build_checks
-}
-
-pkg_setup() {
- pre_build_checks
- python-any-r1_pkg_setup
-
- export LIBGIT2_NO_PKG_CONFIG=1 #749381
- if tc-is-cross-compiler; then
- export PKG_CONFIG_ALLOW_CROSS=1
- export PKG_CONFIG_PATH="${ROOT}/usr/$(get_libdir)/pkgconfig"
- export OPENSSL_INCLUDE_DIR="${ROOT}/usr/include"
- export OPENSSL_LIB_DIR="${ROOT}/usr/$(get_libdir)"
-
- use system-bootstrap || die "USE=system-bootstrap is required when cross-compiling"
- use system-llvm && die "USE=system-llvm not allowed when cross-compiling"
- local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")"
- use "llvm_targets_${cross_llvm_target}" || \
- die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling"
- fi
-
- use system-bootstrap && bootstrap_rust_version_check
-
- if use system-llvm; then
- llvm_pkg_setup
-
- local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- export LLVM_LINK_SHARED=1
- export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
- fi
-}
-
-esetup_unwind_hack() {
- # https://bugs.gentoo.org/870280
- # this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
- # it should trigger for internal bootstrap or system-bootstrap with rust-bin.
- # the whole idea is for stage0 to bootstrap with fake libgcc_s.
- # final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
- local fakelib="${T}/fakelib"
- mkdir -p "${fakelib}" || die
- # we need both symlinks, one for cargo runtime, other for linker.
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
- ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
- export LD_LIBRARY_PATH="${fakelib}"
- export RUSTFLAGS+=" -L${fakelib}"
- # this is a literally magic variable that gets through cargo cache, without it some
- # crates ignore RUSTFLAGS.
- # this variable can not contain leading space.
- export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
-}
-
-src_prepare() {
- # Clear vendor checksums for crates that we patched to bump libc.
- # NOTE: refresh this on each bump.
- #for i in addr2line-0.20.0 bstr cranelift-jit crossbeam-channel elasticlunr-rs handlebars icu_locid libffi \
- # terminal_size tracing-tree; do
- # clear_vendor_checksums "${i}"
- #done
-
- # Rust baselines to Pentium4 on x86, this patch lowers the baseline to i586 when sse2 is not set.
- if use x86; then
- if ! use cpu_flags_x86_sse2; then
- eapply "${FILESDIR}/1.82.0-i586-baseline.patch"
- # Required for i586 support, commented out until ready for wider use.
- #grep -rl cmd.args.push\(\"-march=i686\" . | xargs sed -i 's/march=i686/-march=i586/g' || die
- fi
- fi
-
- if ! use system-bootstrap; then
- has_version sys-devel/gcc || esetup_unwind_hack
- local rust_stage0_root="${WORKDIR}"/rust-stage0
- local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi "${CBUILD}")"
-
- "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
- --without=rust-docs-json-preview,rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
- fi
-
- default
-}
-
-src_configure() {
- filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
-
- local rust_target="" rust_targets="" arch_cflags
-
- # Collect rust target names to compile standard libs for all ABIs.
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
- done
- if use wasm; then
- rust_targets+=",\"wasm32-unknown-unknown\""
- if use system-llvm; then
- # un-hardcode rust-lld linker for this target
- # https://bugs.gentoo.org/715348
- sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die
- fi
- fi
- rust_targets="${rust_targets#,}"
-
- # cargo and rustdoc are mandatory and should always be included
- local tools='"cargo","rustdoc"'
- use clippy && tools+=',"clippy"'
- use miri && tools+=',"miri"'
- use rustfmt && tools+=',"rustfmt"'
- use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"'
- use rust-src && tools+=',"src"'
-
- local rust_stage0_root
- if use system-bootstrap; then
- local printsysroot
- printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
- rust_stage0_root="${printsysroot}"
- else
- rust_stage0_root="${WORKDIR}"/rust-stage0
- fi
- # in case of prefix it will be already prefixed, as --print sysroot returns full path
- [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
-
- rust_target="$(rust_abi)"
- rust_build="$(rust_abi "${CBUILD}")"
- rust_host="$(rust_abi "${CHOST}")"
-
- local cm_btype="$(usex debug DEBUG RELEASE)"
- cat <<- _EOF_ > "${S}"/config.toml
- [llvm]
- download-ci-llvm = false
- optimize = $(toml_usex !debug)
- release-debuginfo = $(toml_usex debug)
- assertions = $(toml_usex debug)
- ninja = true
- targets = "${LLVM_TARGETS// /;}"
- experimental-targets = ""
- link-shared = $(toml_usex system-llvm)
- $(if is_libcxx_linked; then
- # https://bugs.gentoo.org/732632
- echo "use-libcxx = true"
- echo "static-libstdcpp = false"
- fi)
- $(case "${rust_target}" in
- i586-*-linux-*)
- # https://github.com/rust-lang/rust/issues/93059
- echo 'cflags = "-fcf-protection=none"'
- echo 'cxxflags = "-fcf-protection=none"'
- echo 'ldflags = "-fcf-protection=none"'
- ;;
- *)
- ;;
- esac)
- enable-warnings = false
- [llvm.build-config]
- CMAKE_VERBOSE_MAKEFILE = "ON"
- $(if ! tc-is-cross-compiler; then
- # When cross-compiling, LLVM is compiled twice, once for host and
- # once for target. Unfortunately, this build configuration applies
- # to both, which means any flags applicable to one target but not
- # the other will break. Conditionally disable respecting user
- # flags when cross-compiling.
- echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\""
- echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\""
- echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\""
- echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\""
- fi)
- [build]
- build-stage = 2
- test-stage = 2
- build = "${rust_build}"
- host = ["${rust_host}"]
- target = [${rust_targets}]
- cargo = "${rust_stage0_root}/bin/cargo"
- rustc = "${rust_stage0_root}/bin/rustc"
- rustfmt = "${rust_stage0_root}/bin/rustfmt"
- docs = $(toml_usex doc)
- compiler-docs = false
- submodules = false
- python = "${EPYTHON}"
- locked-deps = true
- vendor = true
- extended = true
- tools = [${tools}]
- verbose = 2
- sanitizers = false
- profiler = $(toml_usex profiler)
- cargo-native-static = false
- [install]
- prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
- sysconfdir = "etc"
- docdir = "share/doc/rust"
- bindir = "bin"
- libdir = "lib"
- mandir = "share/man"
- [rust]
- # https://github.com/rust-lang/rust/issues/54872
- codegen-units-std = 1
- optimize = true
- debug = $(toml_usex debug)
- debug-assertions = $(toml_usex debug)
- debug-assertions-std = $(toml_usex debug)
- debuginfo-level = $(usex debug 2 0)
- debuginfo-level-rustc = $(usex debug 2 0)
- debuginfo-level-std = $(usex debug 2 0)
- debuginfo-level-tools = $(usex debug 2 0)
- debuginfo-level-tests = 0
- backtrace = true
- incremental = false
- $(if ! tc-is-cross-compiler; then
- echo "default-linker = \"$(tc-getCC)\""
- fi)
- parallel-compiler = $(toml_usex parallel-compiler)
- channel = "$(usex nightly nightly stable)"
- description = "gentoo"
- rpath = false
- verbose-tests = true
- optimize-tests = $(toml_usex !debug)
- codegen-tests = true
- dist-src = false
- remap-debuginfo = true
- lld = $(usex system-llvm false $(toml_usex wasm))
- # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
- # https://github.com/rust-lang/rust/issues/74976
- # https://github.com/rust-lang/rust/issues/76526
- deny-warnings = $(usex wasm $(usex doc false true) true)
- backtrace-on-ice = true
- jemalloc = false
- # See https://github.com/rust-lang/rust/issues/121124
- lto = "$(usex lto thin off)"
- [dist]
- src-tarball = false
- compression-formats = ["xz"]
- compression-profile = "balanced"
- _EOF_
-
- for v in $(multilib_get_enabled_abi_pairs); do
- rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
- arch_cflags="$(get_abi_CFLAGS ${v##*.})"
-
- export CFLAGS_${rust_target//-/_}="${arch_cflags}"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${rust_target}]
- ar = "$(tc-getAR)"
- cc = "$(tc-getCC)"
- cxx = "$(tc-getCXX)"
- linker = "$(tc-getCC)"
- ranlib = "$(tc-getRANLIB)"
- llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
- # but we patch it and set to false here as well
- if use elibc_musl; then
- cat <<- _EOF_ >> "${S}"/config.toml
- crt-static = false
- musl-root = "$($(tc-getCC) -print-sysroot)/usr"
- _EOF_
- fi
- done
- if use wasm; then
- wasm_target="wasm32-unknown-unknown"
- export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")"
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.wasm32-unknown-unknown]
- linker = "$(usex system-llvm lld rust-lld)"
- # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
- profiler = false
- _EOF_
- fi
-
- if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
- # experimental cross support
- # discussion: https://bugs.gentoo.org/679878
- # TODO: c*flags, clang, system-llvm, cargo.eclass target support
- # it would be much better if we could split out stdlib
- # complilation to separate ebuild and abuse CATEGORY to
- # just install to /usr/lib/rustlib/<target>
-
- # extra targets defined as a bash array
- # spec format: <LLVM target>:<rust-target>:<CTARGET>
- # best place would be /etc/portage/env/dev-lang/rust
- # Example:
- # RUST_CROSS_TARGETS=(
- # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
- # )
- # no extra hand holding is done, no target transformations, all
- # values are passed as-is with just basic checks, so it's up to user to supply correct values
- # valid rust targets can be obtained with
- # rustc --print target-list
- # matching cross toolchain has to be installed
- # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
- # only gcc toolchains installed with crossdev are checked for now.
-
- # BUG: we can't pass host flags to cross compiler, so just filter for now
- # BUG: this should be more fine-grained.
- filter-flags '-mcpu=*' '-march=*' '-mtune=*'
-
- local cross_target_spec
- for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
- # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
- local cross_llvm_target="${cross_target_spec%%:*}"
- # extracts toolchain triples, <rust-target>:<CTARGET>
- local cross_triples="${cross_target_spec#*:}"
- # extracts first element after before : separator
- local cross_rust_target="${cross_triples%%:*}"
- # extracts last element after : separator
- local cross_toolchain="${cross_triples##*:}"
- use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
- command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
-
- cat <<- _EOF_ >> "${S}"/config.toml
- [target.${cross_rust_target}]
- ar = "${cross_toolchain}-ar"
- cc = "${cross_toolchain}-gcc"
- cxx = "${cross_toolchain}-g++"
- linker = "${cross_toolchain}-gcc"
- ranlib = "${cross_toolchain}-ranlib"
- _EOF_
- if use system-llvm; then
- cat <<- _EOF_ >> "${S}"/config.toml
- llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
- _EOF_
- fi
- if [[ "${cross_toolchain}" == *-musl* ]]; then
- cat <<- _EOF_ >> "${S}"/config.toml
- musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
- _EOF_
- fi
-
- # append cross target to "normal" target list
- # example 'target = ["powerpc64le-unknown-linux-gnu"]'
- # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
-
- rust_targets="${rust_targets},\"${cross_rust_target}\""
- sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
-
- ewarn
- ewarn "Enabled ${cross_rust_target} rust target"
- ewarn "Using ${cross_toolchain} cross toolchain"
- ewarn
- if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
- ewarn "'sys-devel/binutils[multitarget]' is not installed"
- ewarn "'strip' will be unable to strip cross libraries"
- ewarn "cross targets will be installed with full debug information"
- ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
- ewarn
- ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
- ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
- ewarn
- fi
- done
- fi # I_KNOW_WHAT_I_AM_DOING_CROSS
-
- einfo "Rust configured with the following flags:"
- echo
- echo RUSTFLAGS="\"${RUSTFLAGS}\""
- echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
- echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
- echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
- env | grep "CARGO_TARGET_.*_RUSTFLAGS="
- env | grep "CFLAGS_.*"
- echo
- einfo "config.toml contents:"
- cat "${S}"/config.toml || die
- echo
-}
-
-src_compile() {
- RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vvv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-}
-
-src_test() {
- # https://rustc-dev-guide.rust-lang.org/tests/intro.html
-
- # those are basic and codegen tests.
- local tests=(
- codegen
- codegen-units
- compile-fail
- incremental
- mir-opt
- pretty
- run-make
- )
-
- # fails if llvm is not built with ALL targets.
- # and known to fail with system llvm sometimes.
- use system-llvm || tests+=( assembly )
-
- # fragile/expensive/less important tests
- # or tests that require extra builds
- # TODO: instead of skipping, just make some nonfatal.
- if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
- tests+=(
- rustdoc
- rustdoc-js
- rustdoc-js-std
- rustdoc-ui
- run-make-fulldeps
- ui
- ui-fulldeps
- )
- fi
-
- local i failed=()
- einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
- for i in "${tests[@]}"; do
- local t="src/test/${i}"
- einfo "rust_src_test: running ${t}"
- if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
- -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
- then
- failed+=( "${t}" )
- eerror "rust_src_test: ${t} failed"
- fi
- done
-
- if [[ ${#failed[@]} -ne 0 ]]; then
- eerror "rust_src_test: failure summary: ${failed[@]}"
- die "aborting due to test failures"
- fi
-}
-
-src_install() {
- DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
-
- docompress /usr/lib/${PN}/${PV}/share/man/
-
- # bug #689562, #689160
- rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
- rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
- newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
-
- local symlinks=(
- cargo
- rustc
- rustdoc
- rust-gdb
- rust-gdbgui
- rust-lldb
- )
-
- use clippy && symlinks+=( clippy-driver cargo-clippy )
- use miri && symlinks+=( miri cargo-miri )
- use rustfmt && symlinks+=( rustfmt cargo-fmt )
- use rust-analyzer && symlinks+=( rust-analyzer )
-
- einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
- local i
- for i in "${symlinks[@]}"; do
- # we need realpath on /usr/bin/* symlink return version-appended binary path.
- # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
- # need to fix eselect-rust to remove this hack.
- local ver_i="${i}-${PV}"
- if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
- einfo "Installing ${i} symlink"
- ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
- else
- ewarn "${i} symlink requested, but source file not found"
- ewarn "please report this"
- fi
- dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
- done
-
- # symlinks to switch components to active rust in eselect
- dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
- dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
- dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
- dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
- dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
-
- newenvd - "50${P}" <<-_EOF_
- LDPATH="${EPREFIX}/usr/lib/rust/lib"
- MANPATH="${EPREFIX}/usr/lib/rust/man"
- _EOF_
-
- rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/bin"/*.old || die
- rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
-
- # note: eselect-rust adds EROOT to all paths below
- cat <<-_EOF_ > "${T}/provider-${P}"
- /usr/bin/cargo
- /usr/bin/rustdoc
- /usr/bin/rust-gdb
- /usr/bin/rust-gdbgui
- /usr/bin/rust-lldb
- /usr/lib/rustlib
- /usr/lib/rust/lib
- /usr/lib/rust/libexec
- /usr/lib/rust/man
- /usr/share/doc/rust
- _EOF_
-
- if use clippy; then
- echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
- echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
- fi
- if use miri; then
- echo /usr/bin/miri >> "${T}/provider-${P}"
- echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
- fi
- if use rustfmt; then
- echo /usr/bin/rustfmt >> "${T}/provider-${P}"
- echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
- fi
- if use rust-analyzer; then
- echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
- fi
-
- insinto /etc/env.d/rust
- doins "${T}/provider-${P}"
-
- if use dist; then
- "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
- insinto "/usr/lib/${PN}/${PV}/dist"
- doins -r "${S}/build/dist/."
- fi
-}
-
-pkg_postinst() {
- eselect rust update
-
- if has_version dev-debug/gdb || has_version dev-debug/lldb; then
- elog "Rust installs a helper script for calling GDB and LLDB,"
- elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
- fi
-
- if has_version app-editors/emacs; then
- optfeature "emacs support for rust" app-emacs/rust-mode
- fi
-
- if has_version app-editors/gvim || has_version app-editors/vim; then
- optfeature "vim support for rust" app-vim/rust-vim
- fi
-}
-
-pkg_postrm() {
- eselect rust cleanup
-}
diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
index c8224877f786..60c11c78b860 100644
--- a/dev-lang/spidermonkey/Manifest
+++ b/dev-lang/spidermonkey/Manifest
@@ -1,19 +1,21 @@
AUX spidermonkey-102-known-test-failures.txt 6918 BLAKE2B 00c40884cdb5f8bc9667ac8689a20e4113c1bf9a1e8311803f16836edd3abd184ddddb0c107ccd6ff3ba700a938716947311510eabce1836d0fae01099b7f6ab SHA512 2186204514b7145f7f0ba0f5e4231c5c281dc9ecc7c6ede816182f78d4c96be50311b9d97b746c3abb5b2335e5b4b7c7fc1114bb1cf9360092b8db37dac02a2b
AUX spidermonkey-115-known-test-failures.txt 2776 BLAKE2B f8368ffe12ba033e8d656ae07c100dae97a6151f5482a534f929f8676df336f02520246e41143b136c157b5a37325d811f04b2355c3521beac5b88b55d3fb32c SHA512 e77a1641e43de78ad13a5d3f62eff7a788a4a4bcfb08f5758333891b0fe840165a8f4c9a86e26d32eb8738ed37aea39a1ac1ce2148c571cea3943cde99f21eac
-AUX spidermonkey-128-known-test-failures.txt 2748 BLAKE2B bfb4067af499e9c2e9dc6c9d617e6930158659f93105d488f85789d128c990bd947091d1522467fa463a97119a821112dae28a318dcceb4a11d80a1f3e260bd6 SHA512 dc6b35b4c4109525e86cf12487fc6180f376b569e5bb7a0ee63e59baaf2855d4216ca8583a6b40d243acccaed8879e7b8cfacdf329a4f0127b771134303c40f2
+AUX spidermonkey-128-known-test-failures.txt 11365 BLAKE2B 4223fe3afab51c90283fe6a638d438e106c84b24e772e663bdf7d6b0e6adfd4ca2e6258d4ece57f46377b8df79a9a0c56aa0927a22a1047d014d858bc1697bc8 SHA512 fa69efd36bca005517b935d26a0c9529e7e8e2567faf929f801965a047384cc3a1c1a9c698b9e4cad0e0498e56ff8c29162a4a8f5c1facb6660677531295c89a
DIST firefox-102.15.0esr.source.tar.xz 486592324 BLAKE2B b70727fa91d0d270673374bebb4745b87f6194191c1c9415547d772811a4a85f79a97e8985877eb5c9beef43fe15bef574172da35935e7024a947919ec11d883 SHA512 87db6e32fda215253f9b3bd233ef7fa91a64349310064b8482e5c634f34cbe99a2a111d74d2b9f2a99a0b3b510dbf9039ebe4ccfc176c2554d65bc9cfb508bf9
DIST firefox-102esr-patches-13.tar.xz 22212 BLAKE2B 02e9edd071a99abbac02faa11ffce061d5d12d8baa9ce54b51d6bfdbf8160022a1565902d65ca30fe51b5670e509fa921b11a460989933cbb797fcd59d635125 SHA512 8b8b0f3789978447a1293fd9acb5c2db3d7e9f724357a0d762b54f7e34d28f11655997ffeafccfe8001a01dd595848d257f90cb983462c405d434cc794216520
DIST firefox-115.16.0esr.source.tar.xz 515133700 BLAKE2B 9501b617b346d56f6de975f88974be6fdc3d4a901b2a1b952b6bbf6cc46384084260078d23c52bedff83a65bec4ea5ec78c3bcaac86c78d0b44e796317534840 SHA512 b6f93ec3d6acac5df177253c65b833c017e65ed6e78e96ff029098443928d291f6f67164aedb83d80aa28ee9dee305086597798238d3330e35183030e53e3550
DIST firefox-115esr-patches-13.tar.xz 51360 BLAKE2B a048bfadba989ebbd4c6e3df97d303d6853844e66ed92f5f5f322acf18866218b91d52dbbece63827de283eef855c932d67e329c8d93200aa83f11268a5d1b2f SHA512 186ec72323e621362dcef1bc67c476716aff97dfad701faa9220a7302e798d3cb4ed90d5ea59e3e92f016be29875bb5219787635db99a8848b7c76e4e2e09e90
DIST firefox-128.3.0esr.source.tar.xz 560960556 BLAKE2B 015fefb408dcea5733053151aff05579b007ab757542a47956e007dc127b460f4a35e885a2ee4ef4dbb936820c8ea3907b00383f659b15a84e701590b50a5d72 SHA512 3c6ef272c0fb653d030fe3f7f72aa0e1097b1c6759556166815cde15465330f988b3bc23df4b4eb753daee930edbb1ef72145273cb29d0952bd9d7c547050f9b
DIST firefox-128.4.0esr.source.tar.xz 558619512 BLAKE2B 1f0528c8806bb034af623f2022740bb5056ea11817b9cb7154a60b87f04051ba5ae06b0daf55e6b03b7531c369deb871d3d3579a86f3ca19f3ab71ccb45243f9 SHA512 e720b1f993926d73f5a5727648f753176ac2fd093fb0b71393946bbc5919ce5fc7b88b82960bd1aa427b5663c7f659828dc6702485fc0c1e7a6961571c67faa3
+DIST firefox-128.5.0esr.source.tar.xz 567200548 BLAKE2B b524796854d4f622e90c219e4e302e5665f3f1e3ffb7935ba58244903dbcf1c2b9a13731e9af5507ffc25dda621d4ea13650aae842ed0317843182da55d1d652 SHA512 ff20f18f92c5e9cd1d9eaf7c38cec61bcab2dca8dd2817519b712bc1f760b5c6e290212acf3289152764e5130e01626950b7ecd9327b2c587b24a246591afd67
DIST firefox-128esr-patches-03.tar.xz 14156 BLAKE2B 9a618f0ddb8596b740893dc9113f374d193a00e4e8e76dbb2794928ceaafc7b5309cb6f69f6287ae1e423f0be0a060580b0d9d59307c9889362dd17fb7d31d3d SHA512 c6ec7233b368fac623ec0cce6f5c37d358a0fa5bb2154dc67eebb50968376ca9d46f3a734f5d79a4aa4edde9e300a9c65315d0e499aa6a1325b6c76a6c164258
-DIST firefox-128esr-patches-04.tar.xz 14416 BLAKE2B 0ffe3fd568480e37fe28fe71d5304e51028dcb8cb2d5fc1d838d725bdd36971696d7152c37bd90f7802c75e696aef0b1b075d386a906b40635f25083a6a58239 SHA512 adbac956dc2d6c1c29fb6641a42096bfd033a662f69e177f8d75a928f46d30fbc811e8a9ca24de8c7eb675ee80f6c1187f1a13dbca8e75782abfd54e276f5854
+DIST firefox-128esr-patches-07.tar.xz 18856 BLAKE2B 44d0ddf11518c7eef0a96de4f475a6ae1535e43e5bf89b8f61dc95330f28d6a053d08e6a183cf71432107256c83cd6ee6f742b235ca82babe4dd83698bf80d07 SHA512 60b4f18f5d91fc25f86cceccd561b55f167299908fbf2f9d7d69a8ce299c643f0b538d613d4348e42dd17c3812e4fa315e15004614af1f40fbe2adda417a1a81
DIST spidermonkey-102-patches-05j.tar.xz 4596 BLAKE2B 215b770bbdf17973d7b3fd1df6cee9647459d2b02b0be5bdb289d457e5dbdb06ceac7a3082fc2f5836e991a4ac4486d73330b0276a466b5c528dab226a27829c SHA512 d2b8e32dac87d60a00fd93479dc34d8adab4feec24a38591cebeb4cf271aa2fd964f4dc26e67ebfb127a47bc8f684d50b32b2cff18ed5286701a04a289058185
DIST spidermonkey-115-patches-02.tar.xz 4896 BLAKE2B f78d9804c1427b45d6fda496b4991ec6f672dec9ce031ed57a2920fa1968c942a235f46e40166c8ab8d731a1963f322d34bb2f6984133179175e6f7376d27d13 SHA512 11fd01152d1e7b8ca89bf628076e1f4fb4f1ba6c9dc0f9dd544252495c580c04e4d5ffc238d5587f9e993aa91a47828333564ca55f60e008bd370089cd07d2e6
DIST spidermonkey-128-patches-02.tar.xz 3916 BLAKE2B b6640860ea091b22c61b2a78da5004816a08ab9fb39fda04ae76fe48a3a8061770d6d6e451e5f34951aa3f63473dd77d3dde8b60aec80b4c31f1b29064ce68ee SHA512 3f2d272a36ca2ac831de9108769c68e380be4e8bba7071d02686699702acac6a9325e4256d9c5c2441c3742552179031b0898d3f96f08477857fd6e989596ee6
EBUILD spidermonkey-102.15.0-r1.ebuild 15100 BLAKE2B 4a3ba5c9cea694f9aaea6bb6a57958d55c7f8af568699e1e3d637d33740213badf1a3090a113524487706ee395130d8eb50865861e269355ef497000e55b2e3f SHA512 c875a3ba64c50d343a29b88e9f8c8537372f5d1bc44369d0a6e6e70c28d5a40b5da6010effe2298adb21c30b86e04502d9af8e424a75f1403ee04e322fcb164b
EBUILD spidermonkey-115.16.0-r1.ebuild 13395 BLAKE2B ad4726d1aa0b9bff150e7d30a0db1ef4402ead2905466a87cf2b55c6af1efbd3775f2e81514732854cacfd9f245a7d9b63fd9fab751b5f1805818a479bde4644 SHA512 f923a6f2a115c8ac972850cb7d3735d8301116205c9f7d2aaff551b33ae3ade6e6e0aa7cbef81f8bacdbc5a224f7d276e9ad0bfd0a7de591a2bdf55d1a5106c1
EBUILD spidermonkey-128.3.0-r1.ebuild 13770 BLAKE2B 59c14fb76b00c49b076338275f7979aa57b7975330afaefb401a8761b13bb26c73d2c53526d247eab79e3487c1dc44ea84a247029086fdcb0379f501f54888b3 SHA512 1206fda2249916e3f36e144aaa4df09f96dbcd38198dfe46da82fd3e1d7fdce6af162ade693a14eb72df0aede5188d3ecf23541f12cfef30a0c48c3dafe580e6
-EBUILD spidermonkey-128.4.0-r1.ebuild 13747 BLAKE2B 46f115fd9f59aba3d5ff51eb2d75197b9ce5895b541081e013ed24ae6336daf9145a9c898f56f7fabe929e10064f5ee03ab57b45ba1dbdded2748f0f8e2561d9 SHA512 ea16467fac3d97aa86f1c1f7e1efe69a5d9c888c7e85a51020d456727a72d58e14b0e0c03beebf17dfdd874086c325d7f39695a1a77ee7a6f6f089fe5cc43af6
+EBUILD spidermonkey-128.4.0-r1.ebuild 13747 BLAKE2B 6978695efd86f044bfb54febf3ec5087e125bd2e41822a7499e4bce5f1c8761245cf5593ee3b74f9d74b215623d076c6e8f0ac964c8564b58fd272a197271d0f SHA512 0f5b0e275185833945e2004e4496f0ada5c200acde67bcb2d136eb1f8dac6080620e19278379bf03998fc84b5f5312bf6670abe8f6179a182b66502bb523152d
+EBUILD spidermonkey-128.5.0.ebuild 13751 BLAKE2B ea4dd5a10b14f6fba9583969fba72d0c1bf72bd9ad570b720dbdef38f788e0e960316826af429ae09ab8f4fad54358f5403806860f690038bcb5212f8c04241a SHA512 b8ef8acb048f83481f886307fe2cd40af3c9ad788f03737fb3041c05e8e6b9d21892f2f7b97d48a59d7040f9963363abe525ad77440c9eadffaa243491f26531
MISC metadata.xml 513 BLAKE2B 58ffd474492f03c16bda95e48511fb6281e03067d2ad77e994f8117345ecece5da9591dccedafe75b037d98e06851a3759caa4b993adc2910dbb76e1c01a7fa3 SHA512 1ee02bff37e2dabbd72b7f719463b12299270c7960b4cf5a92afab17c954c50e6acb826d4a91db4954fb4a7b0f8669988f2cdb5be991df90e3a605c6b35fdbfb
diff --git a/dev-lang/spidermonkey/files/spidermonkey-128-known-test-failures.txt b/dev-lang/spidermonkey/files/spidermonkey-128-known-test-failures.txt
index 5c6f6941b2ad..eaa7f00cefa7 100644
--- a/dev-lang/spidermonkey/files/spidermonkey-128-known-test-failures.txt
+++ b/dev-lang/spidermonkey/files/spidermonkey-128-known-test-failures.txt
@@ -1,44 +1,157 @@
non262/Date/15.9.5.7.js
non262/Date/time-zone-etc_localetime.js
+non262/Intl/Array/toLocaleString-number.js
non262/Intl/Collator/big5han-gb2312han.js
non262/Intl/Collator/implicithan.js
non262/Intl/DateTimeFormat/day-period-hour-cycle.js
+non262/Intl/DateTimeFormat/era.js
+non262/Intl/DateTimeFormat/extended-time-zone-names.js
+non262/Intl/DateTimeFormat/format-timeZone-offset.js
non262/Intl/DateTimeFormat/formatRange-timeZone-offset.js
non262/Intl/DateTimeFormat/formatRange-timeZoneName-matches-format.js
non262/Intl/DateTimeFormat/formatRange-timeZoneName.js
non262/Intl/DateTimeFormat/fractional-second-digits-append-item.js
+non262/Intl/DateTimeFormat/islamic.js
non262/Intl/DateTimeFormat/related-year.js
+non262/Intl/DateTimeFormat/timeZone_version.js
+non262/Intl/DateTimeFormat/tz-environment-variable.js
non262/Intl/DisplayNames/calendar.js
non262/Intl/DisplayNames/currency.js
+non262/Intl/DisplayNames/dateTimeField.js
non262/Intl/DisplayNames/language-dialect.js
non262/Intl/ListFormat/conjunction-type.js
non262/Intl/Locale/likely-subtags-generated.js
non262/Intl/Locale/likely-subtags.js
non262/Intl/NumberFormat/currency-narrow-symbol.js
+non262/Intl/NumberFormat/formatRange.js
+non262/Intl/NumberFormat/formatRangeToParts-approximately-sign-compact.js
+non262/Intl/NumberFormat/formatRangeToParts-approximately-sign-currency.js
+non262/Intl/NumberFormat/formatRangeToParts-approximately-sign-percent.js
+non262/Intl/NumberFormat/formatRangeToParts-approximately-sign-signDisplay.js
+non262/Intl/NumberFormat/formatRangeToParts-approximately-sign-unit.js
+non262/Intl/NumberFormat/formatRangeToParts-approximately-sign.js
+non262/Intl/NumberFormat/formatRangeToParts.js
+non262/Intl/RelativeTimeFormat/locale-fallback-handling.js
+non262/Intl/TypedArray/toLocaleString.js
non262/Intl/available-locales-resolved.js
non262/Intl/available-locales-supported.js
+non262/Intl/supportedValuesOf-timeZones-canonical.js
+non262/Intl/supportedValuesOf-timeZones.js
test262/built-ins/RegExp/property-escapes/generated/Alphabetic.js
test262/built-ins/RegExp/property-escapes/generated/Assigned.js
+test262/built-ins/RegExp/property-escapes/generated/Bidi_Mirrored.js
+test262/built-ins/RegExp/property-escapes/generated/Case_Ignorable.js
+test262/built-ins/RegExp/property-escapes/generated/Cased.js
+test262/built-ins/RegExp/property-escapes/generated/Changes_When_Casefolded.js
+test262/built-ins/RegExp/property-escapes/generated/Changes_When_Casemapped.js
+test262/built-ins/RegExp/property-escapes/generated/Changes_When_Lowercased.js
+test262/built-ins/RegExp/property-escapes/generated/Changes_When_NFKC_Casefolded.js
+test262/built-ins/RegExp/property-escapes/generated/Changes_When_Titlecased.js
+test262/built-ins/RegExp/property-escapes/generated/Changes_When_Uppercased.js
+test262/built-ins/RegExp/property-escapes/generated/Dash.js
+test262/built-ins/RegExp/property-escapes/generated/Diacritic.js
+test262/built-ins/RegExp/property-escapes/generated/Emoji.js
+test262/built-ins/RegExp/property-escapes/generated/Emoji_Presentation.js
+test262/built-ins/RegExp/property-escapes/generated/Extender.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Cased_Letter.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Dash_Punctuation.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Decimal_Number.js
test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Lowercase_Letter.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Mark.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Math_Symbol.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Letter.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Nonspacing_Mark.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Number.js
test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js
test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Letter.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Punctuation.js
test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Symbol.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Punctuation.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Spacing_Mark.js
test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js
test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js
+test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Uppercase_Letter.js
test262/built-ins/RegExp/property-escapes/generated/Grapheme_Base.js
+test262/built-ins/RegExp/property-escapes/generated/Grapheme_Extend.js
test262/built-ins/RegExp/property-escapes/generated/IDS_Binary_Operator.js
test262/built-ins/RegExp/property-escapes/generated/ID_Continue.js
test262/built-ins/RegExp/property-escapes/generated/ID_Start.js
test262/built-ins/RegExp/property-escapes/generated/Ideographic.js
+test262/built-ins/RegExp/property-escapes/generated/Lowercase.js
+test262/built-ins/RegExp/property-escapes/generated/Math.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Arabic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Balinese.js
test262/built-ins/RegExp/property-escapes/generated/Script_-_Common.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Cyrillic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Egyptian_Hieroglyphs.js
test262/built-ins/RegExp/property-escapes/generated/Script_-_Han.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Kawi.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Khitan_Small_Script.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Latin.js
+test262/built-ins/RegExp/property-escapes/generated/Script_-_Myanmar.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Adlam.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Arabic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Armenian.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Avestan.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Balinese.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bengali.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bopomofo.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Carian.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Caucasian_Albanian.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cherokee.js
test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Common.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Coptic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cyrillic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Devanagari.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Duployan.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Egyptian_Hieroglyphs.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Elbasan.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ethiopic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Georgian.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Glagolitic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gothic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Greek.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gunjala_Gondi.js
test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Han.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hebrew.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inherited.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kaithi.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kannada.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Katakana.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kawi.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khitan_Small_Script.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Latin.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lisu.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lycian.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lydian.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mahajani.js
test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Malayalam.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Hieroglyphs.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mongolian.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Myanmar.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Hungarian.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Permic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Turkic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osage.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phags_Pa.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Runic.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Samaritan.js
test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sharada.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Shavian.js
test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sinhala.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syriac.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Le.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tangut.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thai.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tibetan.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tifinagh.js
+test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Toto.js
test262/built-ins/RegExp/property-escapes/generated/Sentence_Terminal.js
+test262/built-ins/RegExp/property-escapes/generated/Terminal_Punctuation.js
test262/built-ins/RegExp/property-escapes/generated/Unified_Ideograph.js
+test262/built-ins/RegExp/property-escapes/generated/Uppercase.js
test262/built-ins/RegExp/property-escapes/generated/XID_Continue.js
test262/built-ins/RegExp/property-escapes/generated/XID_Start.js
+test262/intl402/Intl/supportedValuesOf/timeZones-accepted-by-DateTimeFormat.js
test262/intl402/NumberFormat/prototype/format/useGrouping-extended-en-IN.js
diff --git a/dev-lang/spidermonkey/spidermonkey-128.4.0-r1.ebuild b/dev-lang/spidermonkey/spidermonkey-128.4.0-r1.ebuild
index 037f8e61fa42..974d1f52ca47 100644
--- a/dev-lang/spidermonkey/spidermonkey-128.4.0-r1.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-128.4.0-r1.ebuild
@@ -3,7 +3,7 @@
EAPI="8"
-FIREFOX_PATCHSET="firefox-128esr-patches-04.tar.xz"
+FIREFOX_PATCHSET="firefox-128esr-patches-07.tar.xz"
SPIDERMONKEY_PATCHSET="spidermonkey-128-patches-02.tar.xz"
LLVM_COMPAT=( 17 18 19 )
diff --git a/dev-lang/spidermonkey/spidermonkey-128.5.0.ebuild b/dev-lang/spidermonkey/spidermonkey-128.5.0.ebuild
new file mode 100644
index 000000000000..cd98a1fef5bb
--- /dev/null
+++ b/dev-lang/spidermonkey/spidermonkey-128.5.0.ebuild
@@ -0,0 +1,478 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+FIREFOX_PATCHSET="firefox-128esr-patches-07.tar.xz"
+SPIDERMONKEY_PATCHSET="spidermonkey-128-patches-02.tar.xz"
+
+LLVM_COMPAT=( 17 18 19 )
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,ssl,xml(+)"
+
+WANT_AUTOCONF="2.1"
+
+inherit autotools check-reqs flag-o-matic llvm-r1 multiprocessing python-any-r1 rust toolchain-funcs
+
+MY_PN="mozjs"
+MY_PV="${PV/_pre*}"
+
+MY_MAJOR=$(ver_cut 1)
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="firefox"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
+)
+
+DESCRIPTION="Mozilla's JavaScript engine written in C and C++"
+HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html"
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+LICENSE="MPL-2.0"
+SLOT="$(ver_cut 1)"
+IUSE="clang cpu_flags_arm_neon debug +jit lto test"
+
+#RESTRICT="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="${PYTHON_DEPS}
+ $(llvm_gen_dep '
+ clang? (
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/lld:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ )
+ ')
+ >=dev-util/cbindgen-0.26.0
+ virtual/pkgconfig
+ test? (
+ $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
+ )"
+DEPEND=">=dev-libs/icu-73.1:=
+ dev-libs/nspr
+ sys-libs/readline:0=
+ sys-libs/zlib"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/firefox-${PV%_*}"
+
+llvm_check_deps() {
+ if use clang ; then
+ if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
+ einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
+ einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! tc-ld-is-mold ; then
+ if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
+ einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+mozconfig_add_options_ac() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_add_options_mk() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_use_enable() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_enable "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+python_check_deps() {
+ if use test ; then
+ python_has_version "dev-python/six[${PYTHON_USEDEP}]"
+ fi
+}
+
+pkg_pretend() {
+ if use test ; then
+ CHECKREQS_DISK_BUILD="4400M"
+ else
+ CHECKREQS_DISK_BUILD="4300M"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use test ; then
+ CHECKREQS_DISK_BUILD="4400M"
+ else
+ CHECKREQS_DISK_BUILD="4300M"
+ fi
+
+ check-reqs_pkg_setup
+
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+
+ if use clang && use lto && tc-ld-is-lld ; then
+ local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
+ [[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
+ [[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
+
+ local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
+ [[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
+ [[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
+
+ if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
+ eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
+ eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
+ eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
+ eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
+ eerror " - Build ${CATEGORY}/${PN} without USE=lto"
+ eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
+ eerror " llvm/clang/lld/rust chain depending on your @world updates)"
+ die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
+ fi
+ fi
+
+ python-any-r1_pkg_setup
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to fail with
+ # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build failures!"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+}
+
+src_prepare() {
+ if use lto ; then
+ rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+ fi
+
+ # Workaround for bgo #915651,915651,929013 on musl
+ if use elibc_glibc ; then
+ rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+ fi
+
+ eapply "${WORKDIR}"/firefox-patches
+ eapply "${WORKDIR}"/spidermonkey-patches
+
+ default
+
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+ # Workaround for bgo #915651,915651,929013 on musl
+ if ! use elibc_glibc ; then
+ if use amd64 ; then
+ export RUST_TARGET="x86_64-unknown-linux-musl"
+ elif use x86 ; then
+ export RUST_TARGET="i686-unknown-linux-musl"
+ elif use arm64 ; then
+ export RUST_TARGET="aarch64-unknown-linux-musl"
+ elif use ppc64 ; then
+ export RUST_TARGET="powerpc64le-unknown-linux-musl"
+ else
+ die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651"
+ fi
+ fi
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ python/mozbuild/mozbuild/configure/check_debug_ranges.py ||
+ die "sed failed to set toolchain prefix"
+
+ einfo "Removing pre-built binaries ..."
+ find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS: ${CFLAGS}"
+ einfo "Current CXXFLAGS: ${CXXFLAGS}"
+ einfo "Current LDFLAGS: ${LDFLAGS}"
+ einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
+
+ local have_switched_compiler=
+ if use clang ; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+
+ local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
+ [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
+ [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
+
+ AR=llvm-ar
+ CC=${CHOST}-clang-${version_clang}
+ CXX=${CHOST}-clang++-${version_clang}
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ READELF=llvm-readelf
+ OBJDUMP=llvm-objdump
+
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ READELF=readelf
+ OBJDUMP=objdump
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain,
+ # AS is used in a non-standard way by upstream, #bmo1654031
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ export AS="$(tc-getCC) -c"
+
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # ../python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set state path
+ export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-project=js
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --host="${CBUILD:-${CHOST}}" \
+ --target="${CHOST}" \
+ --disable-ctype \
+ --disable-jemalloc \
+ --disable-smoosh \
+ --disable-strip \
+ --enable-readline \
+ --enable-release \
+ --enable-shared-js \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --with-intl-api \
+ --with-system-icu \
+ --with-system-nspr \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-" \
+ --x-includes="${ESYSROOT}/usr/include" \
+ --x-libraries="${ESYSROOT}/usr/$(get_libdir)"
+
+ mozconfig_use_enable debug
+ mozconfig_use_enable jit
+ mozconfig_use_enable test tests
+
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ mozconfig_add_options_ac '+debug' --enable-debug-symbols
+ mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+ else
+ mozconfig_add_options_ac '-debug' --enable-optimize
+ mozconfig_add_options_ac '-debug' --disable-debug-symbols
+ mozconfig_add_options_ac '-debug' --disable-real-time-tracing
+ fi
+
+ # We always end up disabling this at some point due to newer rust versions. bgo#933372
+ mozconfig_add_options_ac '--disable-rust-simd' --disable-rust-simd
+
+ # Modifications to better support ARM, bug 717344
+ if use cpu_flags_arm_neon ; then
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-thumb=yes
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-thumb-interwork=no
+ fi
+ fi
+
+ # Tell build system that we want to use LTO
+ if use lto ; then
+ if use clang ; then
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac '+lto' --enable-linker=mold
+ else
+ mozconfig_add_options_ac '+lto' --enable-linker=lld
+ fi
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+ else
+ mozconfig_add_options_ac '+lto' --enable-linker=bfd
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-lto
+
+ # Pass MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support arguments
+ mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS: ${CFLAGS}"
+ einfo "Build CXXFLAGS: ${CXXFLAGS}"
+ einfo "Build LDFLAGS: ${LDFLAGS}"
+ einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
+
+ ./mach configure || die
+}
+
+src_compile() {
+ ./mach build --verbose || die
+}
+
+src_test() {
+ if "${BUILD_DIR}/js/src/js" -e 'print("Hello world!")'; then
+ einfo "Smoke-test successful, continuing with full test suite"
+ else
+ die "Smoke-test failed: did interpreter initialization fail?"
+ fi
+
+ cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_test_failures.list || die
+
+ if use x86 ; then
+ echo "non262/Intl/DateTimeFormat/timeZone_version.js" >> "${T}"/known_test_failures.list
+ echo "test262/intl402/Locale/constructor-non-iana-canon.js" >> "${T}"/known_test_failures.list
+ fi
+
+ ./mach jstests --exclude-file="${T}"/known_test_failures.list || die
+}
+
+src_install() {
+ cd "${BUILD_DIR}" || die
+ default
+
+ # fix soname links
+ pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
+ mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
+ ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
+ ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
+ popd &>/dev/null || die
+
+ # remove unneeded files
+ rm \
+ "${ED}"/usr/bin/js${MY_MAJOR}-config \
+ "${ED}"/usr/$(get_libdir)/libjs_static.ajs || die
+
+ # fix permissions
+ chmod -x \
+ "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
+ "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h || die
+}
diff --git a/dev-lang/yasm/Manifest b/dev-lang/yasm/Manifest
index b56b512364a6..5d53274c2af7 100644
--- a/dev-lang/yasm/Manifest
+++ b/dev-lang/yasm/Manifest
@@ -1,4 +1,4 @@
AUX yasm-1.3.0-fix-modern-c.patch 2584 BLAKE2B 5c967ff7bfdd250f78650c1d5b5b92edb573c77ab457441101da1a903359baa761a9fc83a789dc072dc1dcb2e4f7a214df38a7bf5f365eb9d3085d65eed70c93 SHA512 e78d9032e05f9241755af49d0e08a2f6d5eb3843582040f68dc63364c1d90743d8247304d46fee3455daf7a252919f231b3d43f234190bc5175d4e4ee44fefea
DIST yasm-1.3.0.tar.gz 1492156 BLAKE2B e419a4f9912eb244e9503462dbf0c5e5c95bdfa49583ee205dc4708b42710df8dd2056b2e36e04de04474f4af900916cb64c14a623db1346c3e1cb46a8cc34a5 SHA512 572d3b45568b10f58e48f1188c2d6bcbdd16429c8afaccc8c6d37859b45635e106885d679e41d0bee78c23822108c7ae75aa7475eed5ba58057e0a6fe1b68645
-EBUILD yasm-1.3.0-r2.ebuild 1284 BLAKE2B 69db204feb150494b7de1873114fd9013ec98f8391fe5bf11ff70449f8c29433d8bac0fbd49738619f62cad30bc47b2e241d40f47224ad74dcd229902644d18a SHA512 6cdf3db9d83e383c4c84b4c52ca89ae0abf1d86652244b94b8ce7ab43cf5610078a5112615794e181147166a5d87dd29784a3ad762bbd26328cca7ad431e9844
+EBUILD yasm-1.3.0-r2.ebuild 1338 BLAKE2B 057d6a72af44039ce9cfef74887a9fb76cc98e6a8805199727d02f4854edf46c3aba525617e4d873660391138a011e0961dfaa20131f861951cf6f7d67bdd1b9 SHA512 f91f7951cc98aac0728b987c595836f6cc988f21c82cc603d1003dc5c1773ea8c0922c70608c06f0f902e8c3ee1f72dbb960bd7cbd701f24afc11666d7b9dc54
MISC metadata.xml 393 BLAKE2B c1a2f5a55132dd63f7ba78e4b78600d87f462995e6d692ed3500fbab47b8a95fb16b292956e07279e1a9183e6abd44b38e1448bd6b48a9652d2e8660a02ea136 SHA512 d486d9fa65b102b36665e84436f23c6b1897aca20c1451eaa5e36ad5d00b8020da73583de3948a73af3d860bee243caea15da9904187b3dbf1700ba9ed39136c
diff --git a/dev-lang/yasm/yasm-1.3.0-r2.ebuild b/dev-lang/yasm/yasm-1.3.0-r2.ebuild
index 7bbb5163d765..34648241675c 100644
--- a/dev-lang/yasm/yasm-1.3.0-r2.ebuild
+++ b/dev-lang/yasm/yasm-1.3.0-r2.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-inherit toolchain-funcs
+inherit flag-o-matic toolchain-funcs
if [[ ${PV} == 9999* ]] ; then
EGIT_REPO_URI="https://github.com/yasm/yasm.git"
@@ -51,6 +51,9 @@ src_prepare() {
}
src_configure() {
+ # bug #943747
+ append-flags -std=gnu17
+
local myconf=(
CC_FOR_BUILD="$(tc-getBUILD_CC)"
CCLD_FOR_BUILD="$(tc-getBUILD_CC)"