mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
dev-lang/rust*; sys-devel/rust-std: drop 1.71.1
Rust 1.71.1 was retained due to games-strategy/ja2-stracciatella being unable to build with any later version of Rust. This package has been updated and as 1.71.1 is not in our bootstrap path it is safe to remove (and remove that slot from consideration in the eclass). Signed-off-by: Matt Jolly <kangie@gentoo.org>
This commit is contained in:
@@ -1,40 +1,3 @@
|
||||
DIST rust-1.71.1-aarch64-unknown-linux-gnu.tar.xz 209839296 BLAKE2B da65e966a6bd8c6a8a13e5ab747da2a8d9b55f90fc20c1bd041ccc1a2f4e2d11d50d2ed9cc7f3a470e7f886ec8b891ef98ea1295491414d5afeae7f83fa3a555 SHA512 a2ea1383a6ea965e4b0c3a7c648bb357fb531a6984418756abcff3c526ccd9221a28aeedd11b65180fd166575e07a00151460dbc15e3b132a0bcac643911d242
|
||||
DIST rust-1.71.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 52d1fbdba32db7ac2578615fd10a3db1da84441274bb190624e517aec67279c7330f7c6b7fa0835d8e1cd8f578d34952813228a6a221e41c4193e9a079cc6fb6 SHA512 63cbbdd9a73f0223444565b60f59765a734633ef8e93843639969b96fb67550b85fe58079d486a927174f95619f0d6fdfe3f3b84d871f776bc48986be7965238
|
||||
DIST rust-1.71.1-aarch64-unknown-linux-musl.tar.xz 193170880 BLAKE2B 26384119108f4503d35f79fc5401c46e1eee326eca4dc6cc282949d2f195928fda5d3bf56c0509b04fdaa3e7c3c47f4ba44b2b82a60b02f7bc520360b0433efe SHA512 3e79692cd4dba512516eb48970dc9711448c33e1d7a5ebe7c5fadaed7f053ae9c1a8e6efcd1713f87dd84107a37b0fb21b1246e0d5c3e0dab677e5c7ed210825
|
||||
DIST rust-1.71.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 223d21586b07645d5860a3a023f42a191fc2490ad9e5736c3b2335565227780aa1f87174060cd6f87c4c873b965bb32b1556fb60fe70a7dc0f753409adabb024 SHA512 197197752e5ce110a1a96ecab8d1ae3aa82769a199c51b42a14b1f0749045a280f00aea0dd0653211bb941b80fbf43960d1e11766cf2dc35be3a34445e336423
|
||||
DIST rust-1.71.1-arm-unknown-linux-gnueabi.tar.xz 173870064 BLAKE2B 3c2e440e22199e081f6121513cf2a86b22ba0da08569d0b95edd1a69d890e191bda150429f4329c9932d45c44d49e8dfe1902513bb379b039dabfeb8bca36a44 SHA512 c59b1ba5d8bc29a2d1bb57f19e584af28ac92d8bbf889b80d443684e09a6249453bea429226078c9ffcc4d04a7a03f3605d82e3d8b412ca83720cabf5595a8e5
|
||||
DIST rust-1.71.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 38a5fe9e5e67298909d6a36e625b990128649975d47e544847a2d6067ff88fa63cc0c3e1c8e2c8697f0a0f39584b4e60cb8f29390cc6abad721c681a4cf183e2 SHA512 a7230aa7f507e5e4d71d2701fd5c1abe29e3c53109d67a5133fc32ea32018c6ea6dfe512a0e58acfa8d2c39dbaeee2cafe420aef4979e95ce9d62b7520b9b01c
|
||||
DIST rust-1.71.1-arm-unknown-linux-gnueabihf.tar.xz 174277632 BLAKE2B c317f946f4fa7b4e5c4e39bf4035108ff1a6085420f932eaa532cb89f15babf4b80a5c231f9980300d4ea18b6dd369bcda33bdceeb7065b03fdde41a01165e76 SHA512 ff4b6ac0e6691820f525a84505a3556a729cb189700209c084e9fe981bd076ad7ec30fb748666b7f51ee901ac039d596670bf782c60018590980ff1e61cd396b
|
||||
DIST rust-1.71.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 2fa6e24ac4cd9ec4772655c5e8b135a0118c38ebb41462940669df0c65c0091e60306a5a09cb020dcdaf06aca7b2c8cdff904dd2a5f4ca87acfbc5775adf2b6c SHA512 c9cf9c1f8e19fe0576dd805f21ed8afd1d3536fa8ba00fcd39d6e6638198fca51114a8d99cd62164d8a0aee6bdf37831e678f08241fb8ba63ccdd6e8c7225717
|
||||
DIST rust-1.71.1-armv7-unknown-linux-gnueabihf.tar.xz 178239136 BLAKE2B ae0ca46260aa4bb60760812f50e606ecc18fc14b3dfa56135cb6a83249c0cd5e0544d29ef5eb34d3ce45e53552f736c8db2928b3d65d847a9b3d61be7e863ee2 SHA512 56c63d4e9dd99ba3604bec5c0f0d8c2a51a93c0d11beed721d99cca05b20310f4439c049ee5b3ddb6e723381e315ac991d9a7327cea86e852b6cfca4cc7f9a0d
|
||||
DIST rust-1.71.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B d5cea850a1930a316574c977542e7026eed67dc244d8857c720d9de168f39b5437912634cd5ebefb63e8d58200e7b11d69b8c6ea0e257642a0df7c1ae8026c80 SHA512 2d06f90f916e4f184d536b695d123628a28f452ad4fb3da53dd3fcf5e013df594e8ee6eb1819268bc5b20ceb1c05d6d3b68a4021e60c73c7da934fc05014d2c1
|
||||
DIST rust-1.71.1-i686-unknown-linux-gnu.tar.xz 202188608 BLAKE2B 153f94771d68ab8bc25d1e38afea206cdd182a1ca0b7ea8616b932617c2368acaffda959ce3220506d7b2601b5120ce65ab83fbef167429b1b8a76108f3137b6 SHA512 e835354cee992f751d994943718d8908bc687a540b91b4b296962ceb0047d447e5b12a7cfc6661de8a4ee9c90722f8274c3e6a37f6842e8012f883cff32ac2aa
|
||||
DIST rust-1.71.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d2e47ce2eaf7d8c16a12630778cffb25fdbbe23d978ff46d02fb6363f6ce45a6295cb948f7b20c9a966d14f832a38e3c53018188b54fcfaac7b2df85508990a9 SHA512 2e5d191ba550965de6962c595c5dd063f96603522eff467433f3cffb31539e3406c1a62e3fd37a66c4eeaff2c1200a33439c6ca5133dc00930c89c7713ecb0ee
|
||||
DIST rust-1.71.1-loongarch64-unknown-linux-gnu.tar.xz 158000652 BLAKE2B 6ca5a251202330755f53eff6151abb724cbfbdf190e19d15df009e33cb17795b74a491e8a6c040ea69fcb603d19b7baf6f1f47afb5a984bcbb6239640748e003 SHA512 be33401e6f02669102e51524ecb2a4bcb75a539084ed0e04f80bd389be8432a7f3952304b21397fc1d6894d86a263da40831625a04b72536dd2af79b0d2e1845
|
||||
DIST rust-1.71.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5b744b2bd11ff69ac0c66af93a80c0c9f4d6aec465109033a8ffc63d2a1a8bb0e9cde1d3e9aa65e27287105673230acd07511e58112b7c5beb0c452323cea72a SHA512 a5d71f2555bfda22c0366a35032ab902071e3c75e781d1b1c5d090b6b6dac78046b31b789f71f9ed4adf80523903add324c1eb8e8f8a7b744d6a7d8cc6d3be68
|
||||
DIST rust-1.71.1-mips-unknown-linux-gnu.tar.xz 152451900 BLAKE2B 86804480dec985aecedec561707ce7dd2dff5e85b25da940051c2d89ae905b630ed7bb0df9e9bf6373917c5f6f513049b8be4b0b673d7c0dd77d8095700e6103 SHA512 0d3069e17c23e6651bc6dc2f7dd4de6b5b54e24ade5aa81a8ddbaa5f4f13c26084c3a04d246181d49fbb15cedede2a5d8f3e4a21080654a257c1b4285dcdef27
|
||||
DIST rust-1.71.1-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 217ca15420e4ccce2ea287913eaee07b90a1ec534a805b899032a8ba18f7b6a75feba873b8fa773efef32cbb0b265da08ff026e6d387c824e63000b04e7419b5 SHA512 2e0355d8364a9e6b711012fc8e1f227c76290804d967def666ae30e899f52197da06dc1498191f6b9de6868730eb8883ca0849351981efd82a5b9d12da9681d0
|
||||
DIST rust-1.71.1-mips64-unknown-linux-gnuabi64.tar.xz 150685836 BLAKE2B 90496f5f9b3af09d9da3b45913a57ac2b1035838cf4940d3a6d4c2fb6bd1c5dacc86b144e8be851a35bcce19100ed2cc800d840c3182b01ea1954353060d56d4 SHA512 af97988af615c7cfe08db0424169cb133f97914fcc75a76356ae3b0eeac2c8eed436208694d218a75879db163963d87523d23d6ce5ccc91688679950536c13df
|
||||
DIST rust-1.71.1-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 04665afa887c047d2e888ee4275faab1efda5f7dbeb4222c056af53c756a00ccfa5cd0f5a792df4bff325cb870f50ce6cb09e713afeeec201050eaa14dd6b0da SHA512 560d1e474e177cdc28cf94b10f72785ccc0db748a185b5bee8ab0c9598d3ef7152f79bffa7f11594be06ae07c3d56bc8176bfbd40284a6888d20e77bd036b9e6
|
||||
DIST rust-1.71.1-mips64el-unknown-linux-gnuabi64.tar.xz 153800316 BLAKE2B 63787c2fd44406d45de5f153259237df8116aa5419d241c92c5e9509db1fdea6fbfa0b119bca83cbc23a2abdfd50365de7c7e3f37bb0f7d402382657c97ad226 SHA512 a6c8399f2f4e56340d1712c71f03ac87ecb8f3694f0c4f1ce64a1f810de850f5ece7361cd93e8881d83cea2094a82a51f0d54cb795c4d02a5a1d94ed49b8f0cf
|
||||
DIST rust-1.71.1-mips64el-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B b69e13a4dd21447d7a39c24f96e9416c7b68bdb4af08c1ee7e312d78d2b064d1d67e397c0f04f9f8c68498ff3934350729021c9a4ee521967bdb63f53ab08c17 SHA512 9bcf27125cdf776719c87adb2947b1b9965dd3dcb231293a225e2424906e759f97ce2972d2f7ecaf69d708266303b8dc776c3e119c070e1c21ef59fb90405050
|
||||
DIST rust-1.71.1-mipsel-unknown-linux-gnu.tar.xz 155924032 BLAKE2B a4862cfd02053dc8303de9158929da634980c15d8fe32b7b51b316e6aa83de1f0d075ea4acd250d5bb210cb269bff373613bd45eba003f38439e22831b433dc2 SHA512 96708e1481c4790d5c2938ce7664cf83c2b9295023af017345ab0c9afa37bd43c2db93b9e8097d8d1aa6c913bab0db9324f057ecb25aa65bc16295cc625f2bdd
|
||||
DIST rust-1.71.1-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 90063d27ffb9071f6c10cc54d17073ea79436dab947b7f8f0a8f2d7c0671edc66f7e45d5954af77f30f8c3a005d2951af56f129d311cf328c9987bd5a5ea9802 SHA512 a2bc87f7c1baaf6f245b1d008162a1e5f52b6f949a3e06f69a7ae22315fc7770403ace7289830cfa60f6e66fabbb23352fabb5f0c24be05d58f4f891a8d6e956
|
||||
DIST rust-1.71.1-powerpc-unknown-linux-gnu.tar.xz 172809692 BLAKE2B dd6e3c96d168dc2ad4b3bca38a42a2b3c5c0ec5555f042ffb9a7e1d6430bce3659953c2c6c5454843ab41e648e479c5cef2645f2ce0bafe72892ff1ed014787d SHA512 bc2a8b9fc8494cdbab89364c15212f7f8e9af416639f9dd05cc57f0ffe18288be7ec489d18061387c43a2f8f4ab1273bcd7de58126546b59a42ae80e9a2c45d8
|
||||
DIST rust-1.71.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 620a63d1732cc0cccdc3bf6b141e2467c0ba50668d72be44cf04becfa9e0c30e5a5a4a7f5ae39fd1321130703bc6522c78e9bfdb23e7b3354fd760eb4d118991 SHA512 f6467c3ab3694fb89db06c67e6fb8afde75b4ab86752d9c918c89ca6bcc8914bf45da71076142eeea2dd10910edea42ab0d8144ff7b769b22edcf9bdb447e381
|
||||
DIST rust-1.71.1-powerpc64-unknown-linux-gnu.tar.xz 172399116 BLAKE2B ebc82664a4e9f651e9111e862a9cc341615526c6e7af2b181a653eb7d6a0c52156bf1cd35671c6e5aea41fa2653f042a9c865212bef6e8844a88fb9bb7a8891a SHA512 94395abdeb1615f594e4fc86d8bad85a01bbab05893bc8af7890ec509a2006d51c1a8723d3cc8082a214ee851fe4ba06707e01c3f009ed340d791d35e034341a
|
||||
DIST rust-1.71.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6d3565b8d9ec5b6d719dbe06120469e2a6f1ac42708bd7ef9705e796f0a4c528929a3984a7090a4da6521b09a53b48db119dc388d66f782f01a1ebfa61c8df21 SHA512 847fa662ddf9234a4a6b73e9d515b06fd0af0f098a826463ddb7df406dfdb25ca7b37110e90ff07f0a58cdf2c42755ccac70f057243b44f3b733ddc449cbde2a
|
||||
DIST rust-1.71.1-powerpc64le-unknown-linux-gnu.tar.xz 183620460 BLAKE2B f8c562813364a2ddcad26287f227ea93af4d91fb083998835e469a676c9be1c0262e88d0cb7e06cdd1293ba8807334744d4e4000c58d9f34c07fc851b0e31e5b SHA512 f8f627d847e405c9960a01f59eb1e14aa647e42004cbeaabe734c110827921f019cc01bea13f2ea0b5b3c2e4391f60b6ccbe4298182593564169cce0db6c9ae6
|
||||
DIST rust-1.71.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 2c09621ed09918bcebc6561f7f12e387be7919568929d0215a6bc5333610c158acca2998ff8c918956d8289da2f3e2ed4850c0ce45a9f1d85a304063eb8d5671 SHA512 5f5361a954d4b0510d48cf5b2f2bd0722f9d99a7b28aab8f3dfea9303489d9b60f6e20ee4fc61b74619d3c0fd298ab9bb903b3509f55c448886e428ba9e28d71
|
||||
DIST rust-1.71.1-riscv64gc-unknown-linux-gnu.tar.xz 164813572 BLAKE2B f86f7443da64afd416ea3119933a05a7638ee41576e9d761f491376b781e9362992223186109a6b930ee8a012dac5c37547448dcb903bd5bc480b66f8fef3123 SHA512 525a345dcb09141e4f4f5ef911c8f8dd63180fab956752ce0e9f5e2821c89603a2896e7042e019f61ae8807052e96b52bec492f49508dad2a351ce1a9c6de79b
|
||||
DIST rust-1.71.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6d37bd643caa5780e80a51876228bd12175132af89f1fd35dbd55f8c5544afd21c3e844027083d9cd5ba48bd41c3dc8c1427b400c2141dc3e1d128a6f5672ba2 SHA512 ee22b054810c12dbd48e9ac4006d74f2545c5fa090b80f831673e0850e16122569376380d1edea6c6195bf76441c0751ab52c6a143a643e656af0880c12578c5
|
||||
DIST rust-1.71.1-s390x-unknown-linux-gnu.tar.xz 195515792 BLAKE2B e8618c69ccc350c7e63461080a3768bf4d7b26f57e75a98a6e62625cb0deed8cf93dc00e485051d01b9996c6b48d3d1a84f88d5194b618d06e926c5543524071 SHA512 7915806421c07b70acf31bab86086981dcabee08e826668c8225db68c4f895fd16ba3e16b710416d2b96de3c30a9dcd137107a04ced21972d3fe52500e56178e
|
||||
DIST rust-1.71.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 4266dea5182a07d4ea1f28e6a362a2233df684836af9b5d2b78e87aea2626575d3af6716868b1cc10d2f38d77910d845c3997da7bf93fe865d8486d63dbc9e1b SHA512 a70d2d4592021294734ca9e069ce1f22e2531323524e4bc6477efae074026e0685e31c1d06328e2b17eb87a27dd7ec6793804c87280a002733b87a676c374729
|
||||
DIST rust-1.71.1-sparc64-unknown-linux-gnu.sam.tar.xz 57363076 BLAKE2B f1332698c8d36a853f11a2a5b7b9ecf6461bf7b505c08c1fbb6da3e851251f1b081969beeedb20eda3214d08054a8fdd544fa084a69d259b6b71b4dc1f4e1721 SHA512 1614523649f8d27569440ea03e9f4ad40eaa6ae826bf89f6616dc1106c99897c197e56017d16843a1b5bead40fa1f16d8603b91f28e41e6bc38ccf7544618ce9
|
||||
DIST rust-1.71.1-x86_64-unknown-linux-gnu.tar.xz 161080376 BLAKE2B 40bf80551c032dd62e19bae5a235575c5d8894ea75f77dd34510499b4f4e779e27da0faa98aaeacb57f73e9632ee90ff0f60f167108529ade67198841215d109 SHA512 15c5ff75b02357beefe717a36e7755d2841778ce4e39020d2b920239e4c8d0adfc17ee65de7bf42493d287bdfca194189f3276adc0374ac3d1a6af63270ef954
|
||||
DIST rust-1.71.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ce029d9af59f26535a3fa121f20672f7eaad5019934457ac7ddc059dafcb2c3a37e5683923d4bba3f3a735805f11092189cf84d0a6352a5f9f475bd3eb00cdf5 SHA512 0376b16b9c845738c3c291ab2a73a3ecb20cbb8bdd0820568a0683c84b211e639413b3046d756e607a0f1b23695c9dcb351711fcc474e6faa8fe3098b1fefefd
|
||||
DIST rust-1.71.1-x86_64-unknown-linux-musl.tar.xz 232096648 BLAKE2B 7f4deafa57baa300f037ce3d9dbd101d5d28cf29368c4b2fc8e51799e59382155076aa0a3c0b6fa0c076693fd43dfaf80ad7685cd44233d7c31037c091a90224 SHA512 55b507a30d62a36aece4a2c2cab985e09d9552ae331c1cab51d949777261600e61d4f05ca1e81fe8b37591fb91939b1cdb55e6930d70e5126eea1a78caa74eb4
|
||||
DIST rust-1.71.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B d4a9f89274bf4b0004248764c07c7f82f8708f81a826d7509611b75e51d280707a75ff2c9d6b372e79259f7086b3e962afe51c3f0b98dd3fdd4feb683783c9fb SHA512 8be13b63b48740bec80772a826f06a012de58b1294f87374d7b4c844c90f3093ffe86bd3f1d989987696aa095302cc4644e3137fa2c9e1363c9ae8c3e1a05268
|
||||
DIST rust-1.74.1-aarch64-unknown-linux-gnu.tar.xz 216291888 BLAKE2B 522c2f2b27f9ff81968d7aa536d2f909bca4e4ca6bb341c08227c87e7f25d9808ea6da74ae1bcf3a7bce4165f1d374fef21d352bff37b7241d19d50a624a08e2 SHA512 57486ce7f4ab8fa6f8091817790396df5b9cd31b4c9901b9969fe5407908458fb384423097ee27485c03dbd30d0cb15c3e8f0e5c15ef4ad17662d91685e8caad
|
||||
DIST rust-1.74.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a60c4878f4441029f1f23e6a9a29046fa2d62c1aa8bf33c5ae4c0e986d67ea64688a3fd22bfdc01e99635cc567d87a94fc9ccdb8e512cc4dc8f0378d22eabbfc SHA512 3b2c3d1ccbe5d18c4b8bad62337ddec6306bc0ab654fd75962403f79b86f669ede6f8754327f8375cd4a12f74f3f4df4e183a85f8459de015e6543e17ca80767
|
||||
DIST rust-1.74.1-aarch64-unknown-linux-musl.tar.xz 196804076 BLAKE2B c866cef7698da867e8389bc6d460f67486e52822bec516256a8170380d8a2693732c18cc18729b980278fbe3c6fd2d21f1470fea449e66458d5481ac00728824 SHA512 54b9574f624dbb1b8399747e855eccca38dee76c2b59d71fbe41bfb05c1a784bc38d383e7aff0ffb0b8c2c5878bd0f8806e03d1a3c2a6bc4a1a9483d711641ce
|
||||
@@ -609,7 +572,6 @@ DIST rust-1.87.0_beta20250430-x86_64-unknown-linux-gnu.tar.xz 198597356 BLAKE2B
|
||||
DIST rust-1.87.0_beta20250430-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 731e7e8ffceee0ca02d0ff18d424218dd4171976658e6aefce924a11d1673a188bbf229770ece27660d2116c1325eda719a46b6dfa1f66d7e85ad03647f8a2ce SHA512 82fef82947875aef78b0def48e6bfc64160b65bf833832d5520cbfe61ae7459142e85f596d12c3699b1c65e45bcf9fcf01603764be4742846b002aefb3873f91
|
||||
DIST rust-1.87.0_beta20250430-x86_64-unknown-linux-musl.tar.xz 293260544 BLAKE2B 46a12a9cf153bb2c24fe80f2ed1f6f0228ef18aa80009c5522a131ba27af72e492d4157f4d3f4de61b27c0fcc475d0bcc09685c02212bab89078996c5b6557f0 SHA512 dafe582800d4f9b6e1f699713642429b32797baad80614d8bfe8142943d6ac899b72734fb2e502b68b6dd4d8618bae359a62e60d1880ec5b51693cca636ec679
|
||||
DIST rust-1.87.0_beta20250430-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B d64405eb306408924b9b606494be3c34f5daf8d99fabcd36ee992e314df449f519e4bf35284b791db9080806999a7341c603bf3e452b6539080aefc491318b61 SHA512 e356ab9e5d3e55a0fd9c896db4401a4a0306e4d86aae06f01bb9f79e9df4ef25bdf3d41d767a057271d8d8c8d96fd102a3c35fcbac1aa0987cb79d4a99439ca1
|
||||
DIST rust-src-1.71.1.tar.xz 2460244 BLAKE2B e3a5b5bfb808310f96e760aab55310c7a790fa551d248c9c5dbb407e0a80653563d8df73a9e0973aa63d3286aad6c755b78098dd8db2dc1a2ed3cadb926b40e1 SHA512 659cc46e1ece2ddbcf5ab748bae48843bd36353cc633b59e4ac062d843af66919e8d5c39ccb72ebdbf94a0e26a8056ade6bd1c8fe9a936469bd405122a8ae35d
|
||||
DIST rust-src-1.74.1.tar.xz 2544036 BLAKE2B d95431b69f102782f51878ff73ce8802cac6dab7909497c3231d1c479b95dc2a618cc6efd8bac9c6bd59a2b10dc6be05199f1e1bd74e45cc640ee52352c29268 SHA512 11467d0936193c5a5be8c2eba1aefe2b7028af48494698863de2c4057d68ce33dcee1fc66dc2d68b1d32f0202ce49e9b906727849de8f8d904dd07930e76d5a4
|
||||
DIST rust-src-1.75.0.tar.xz 2570256 BLAKE2B 9db7ccff07ffe6991233e9f530321fd6ba48c561dcf1226537afa70c7d045421d8e83c5300b0866ec6fccfaae96dd67b9f204e9e0e12108c0c766d467cd78909 SHA512 e7565cea2f1658a05237a698e38880df2544319b41b6d8b0805db5f1f94fd3bb4f986967d0440fcdfe3a135e33246f3c747665b964f57ff5942f56133af78cdd
|
||||
DIST rust-src-1.76.0.tar.xz 2590884 BLAKE2B d1a6215dab34d7b10c3177d2b248f997d3a846388f3442567572880aa5c5bc51b56398f5d4dc32727cee7c9dbef494430d6534a76b66c4ae5ac4fed07266644d SHA512 39d2fe58fae8c8c5a6cb3fb1ef2a1c7548c018fef6ccea531659fdfecd68a4aa77125299d2cbe5b58e500337b4d074928318fa9ebce358af500d0ef27260e3ca
|
||||
|
||||
@@ -1,241 +0,0 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
LLVM_COMPAT=( 16 )
|
||||
LLVM_OPTIONAL="yes"
|
||||
|
||||
inherit llvm-r1 multilib prefix rust-toolchain 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"
|
||||
MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-08-03/rust-src-${PV}.tar.xz"
|
||||
GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
|
||||
|
||||
DESCRIPTION="Language empowering everyone to build reliable and efficient software"
|
||||
HOMEPAGE="https://www.rust-lang.org/"
|
||||
SRC_URI="$(rust_all_arch_uris ${MY_P})
|
||||
rust-src? ( ${MY_SRC_URI} )
|
||||
"
|
||||
# No point keeping this in the eclass; this is the only revision that needs the logic
|
||||
SRC_URI+="
|
||||
mips? (
|
||||
abi_mips_o32? (
|
||||
big-endian? ( $(rust_arch_uri mips-unknown-linux-gnu "${MY_P}") )
|
||||
!big-endian? ( $(rust_arch_uri mipsel-unknown-linux-gnu "${MY_P}") )
|
||||
)
|
||||
abi_mips_n64? (
|
||||
big-endian? ( $(rust_arch_uri mips64-unknown-linux-gnuabi64 "${MY_P}") )
|
||||
!big-endian? ( $(rust_arch_uri mips64el-unknown-linux-gnuabi64 "${MY_P}") )
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
# Keep this separate to allow easy commenting out if not yet built
|
||||
SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz -> ${MY_P}-sparc64-unknown-linux-gnu.sam.tar.xz ) "
|
||||
|
||||
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
|
||||
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"
|
||||
|
||||
RDEPEND="
|
||||
>=app-eselect/eselect-rust-20190311
|
||||
dev-libs/openssl
|
||||
sys-apps/lsb-release
|
||||
sys-devel/gcc:*
|
||||
!dev-lang/rust:stable
|
||||
!dev-lang/rust-bin:stable
|
||||
"
|
||||
BDEPEND="
|
||||
prefix? ( dev-util/patchelf )
|
||||
verify-sig? ( sec-keys/openpgp-keys-rust )
|
||||
"
|
||||
|
||||
REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
|
||||
|
||||
# stripping rust may break it (at least on x86_64)
|
||||
# https://github.com/rust-lang/rust/issues/112286
|
||||
RESTRICT="strip"
|
||||
|
||||
QA_PREBUILT="
|
||||
opt/${P}/bin/.*
|
||||
opt/${P}/lib/.*.so
|
||||
opt/${P}/libexec/.*
|
||||
opt/${P}/lib/rustlib/.*/bin/.*
|
||||
opt/${P}/lib/rustlib/.*/lib/.*
|
||||
"
|
||||
|
||||
# An rmeta file is custom binary format that contains the metadata for the crate.
|
||||
# rmeta files do not support linking, since they do not contain compiled object files.
|
||||
# so we can safely silence the warning for this QA check.
|
||||
QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta"
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
|
||||
|
||||
src_unpack() {
|
||||
# sadly rust-src tarball does not have corresponding .asc file
|
||||
# so do partial verification
|
||||
if use verify-sig; then
|
||||
for f in ${A}; do
|
||||
if [[ -f ${DISTDIR}/${f}.asc ]]; then
|
||||
verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
default_src_unpack
|
||||
|
||||
mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
|
||||
}
|
||||
|
||||
patchelf_for_bin() {
|
||||
local filetype=$(file -b ${1})
|
||||
if [[ ${filetype} == *ELF*interpreter* ]]; then
|
||||
einfo "${1}'s interpreter changed"
|
||||
patchelf ${1} --set-interpreter ${2} || die
|
||||
elif [[ ${filetype} == *script* ]]; then
|
||||
hprefixify ${1}
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
if multilib_is_native_abi; then
|
||||
|
||||
# start native abi install
|
||||
pushd "${S}" >/dev/null || die
|
||||
local analysis std
|
||||
analysis="$(grep 'analysis' ./components)"
|
||||
std="$(grep 'std' ./components)"
|
||||
local components="rustc,cargo,${std}"
|
||||
use doc && components="${components},rust-docs"
|
||||
use clippy && components="${components},clippy-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
|
||||
if use rust-src; then
|
||||
einfo "Combining rust and rust-src installers"
|
||||
mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
|
||||
echo rust-src >> ./components || die
|
||||
components="${components},rust-src"
|
||||
fi
|
||||
./install.sh \
|
||||
--components="${components}" \
|
||||
--disable-verify \
|
||||
--prefix="${ED}/opt/${P}" \
|
||||
--mandir="${ED}/opt/${P}/man" \
|
||||
--disable-ldconfig \
|
||||
|| die
|
||||
|
||||
if use prefix; then
|
||||
local interpreter=$(patchelf --print-interpreter "${EPREFIX}/bin/bash")
|
||||
ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
|
||||
find "${ED}/opt/${P}/bin" -type f -print0 | \
|
||||
while IFS= read -r -d '' filename; do
|
||||
patchelf_for_bin ${filename} ${interpreter} \; || die
|
||||
done
|
||||
eend ${PIPESTATUS[0]}
|
||||
fi
|
||||
|
||||
local symlinks=(
|
||||
cargo
|
||||
rustc
|
||||
rustdoc
|
||||
rust-gdb
|
||||
rust-gdbgui
|
||||
rust-lldb
|
||||
)
|
||||
|
||||
use clippy && symlinks+=( clippy-driver cargo-clippy )
|
||||
use rustfmt && symlinks+=( rustfmt cargo-fmt )
|
||||
use rust-analyzer && symlinks+=( rust-analyzer )
|
||||
|
||||
einfo "installing eselect-rust symlinks and paths"
|
||||
local i
|
||||
for i in "${symlinks[@]}"; do
|
||||
# we need realpath on /usr/bin/* symlink return version-appended binary path.
|
||||
# so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
|
||||
local ver_i="${i}-bin-${PV}"
|
||||
ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" || die
|
||||
dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
|
||||
done
|
||||
|
||||
# symlinks to switch components to active rust in eselect
|
||||
dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
|
||||
dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
|
||||
dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
|
||||
dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
|
||||
|
||||
# make all capital underscored variable
|
||||
local CARGO_TRIPLET="$(rust_abi)"
|
||||
CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
|
||||
CARGO_TRIPLET="${CARGO_TRIPLET^^}"
|
||||
cat <<-_EOF_ > "${T}/50${P}"
|
||||
MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${PV}"
|
||||
$(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"")
|
||||
_EOF_
|
||||
doenvd "${T}/50${P}"
|
||||
|
||||
# note: eselect-rust adds EROOT to all paths below
|
||||
cat <<-_EOF_ > "${T}/provider-${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/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 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}"
|
||||
popd >/dev/null || die
|
||||
#end native abi install
|
||||
|
||||
else
|
||||
local rust_target
|
||||
rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
|
||||
dodir "/opt/${P}/lib/rustlib"
|
||||
cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
|
||||
"${ED}/opt/${P}/lib/rustlib" || die
|
||||
fi
|
||||
|
||||
# BUG: installs x86_64 binary on other arches
|
||||
rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect rust update
|
||||
|
||||
if has_version dev-debug/gdb || has_version llvm-core/lldb; then
|
||||
elog "Rust installs helper scripts for calling GDB and LLDB,"
|
||||
elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}."
|
||||
fi
|
||||
|
||||
if has_version app-editors/emacs; then
|
||||
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
|
||||
}
|
||||
@@ -1,5 +1,3 @@
|
||||
DIST rustc-1.71.1-src.tar.xz 151983068 BLAKE2B 3dfdbc246feb84a79ae94c2de978c5585ee06cf6b683d2245869b62e28f7c79f89cc589f5431537713bf088236a0b824acefc1b68e418e9eb72e1eea98054e3f SHA512 fd0e5a16bdbeb539184513583089e55f681cb772810df357b6b1464853f7022ac02edab3dd155b2262ed0047e2a25dea3808dd078dcdfce9d399384465009db4
|
||||
DIST rustc-1.71.1-src.tar.xz.asc 801 BLAKE2B a88c073a70552d73e2d7695eceabdaa478f34501b7271fabf7f4a09f3efa545181f34353e45776b05918e6aeba88adb02f9731454f7085a7abf1602fc6589983 SHA512 9dd0406cf22f1daa7fcfd015fc1c6f8d36586aa99bf14c1491ee464c1f892ab759feb83e8b55b64713170fb777fdbe038fb5fd01a59c911b6599223baaba0677
|
||||
DIST rustc-1.74.1-src.tar.xz 155968724 BLAKE2B e05f2379ac94b286f85791a138e1928e5b5b5a7749f0981d82c40c2a12860f55bf96bb2f0e924e35a0f8b2447b13052d38adea909aaa3199105787bb5a4861b3 SHA512 14c7e7ed2f38ab60299d8c7d41d78f042b6b57ef822d577b5138e60bdde31cf141eccd4332a25bc5da3d58eb5313d63c1448b5dfe9e11b8055bb8ea133a9038d
|
||||
DIST rustc-1.74.1-src.tar.xz.asc 801 BLAKE2B ddf73175b164233babf31ca3a381b03e20c0f36d017c1d5f85d6ab11f0986d861ab23b11c061e6b2444ced70c3d6a494cc3de4ec86f0deb221a805491bd75420 SHA512 9a96ff9ba9a4e2af4e267b2ec126fc0675c78d0eb767703daa2f28491c3d85c2ab00fbd8584390bf658812ec6c4ab6c57e43b386db59fd505bd3134a8873a09e
|
||||
DIST rustc-1.75.0-src.tar.xz 159624388 BLAKE2B 8937b80585eddaa3e1f1ef948899d14a170308518c6fef9fe569560cdd870053776956743f796055f2119399b9ca6c0df12fedd789ae46324d071e5126c4e495 SHA512 7b0f25d91b1b5c317980fc88e059200bd43b56a70b445fbc72fb9b96e09775bfd3a98e9bd9d662af80f0ce3aef527c777ee82777e96ca876f47a972d63da8606
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
https://github.com/rust-lang/rust/pull/114440
|
||||
From: Ariadne Conill <ariadne@dereferenced.org>
|
||||
Date: Thu, 3 Aug 2023 15:05:40 -0700
|
||||
Subject: [PATCH] bootstrap: config: fix version comparison bug
|
||||
|
||||
Rust requires a previous version of Rust to build, such as the current version, or the
|
||||
previous version. However, the version comparison logic did not take patch releases
|
||||
into consideration when doing the version comparison for the current branch, e.g.
|
||||
Rust 1.71.1 could not be built by Rust 1.71.0 because it is neither an exact version
|
||||
match, or the previous version.
|
||||
|
||||
Adjust the version comparison logic to tolerate mismatches in the patch version.
|
||||
|
||||
Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
|
||||
--- a/src/bootstrap/config.rs
|
||||
+++ b/src/bootstrap/config.rs
|
||||
@@ -2004,7 +2004,8 @@ impl Config {
|
||||
.unwrap();
|
||||
if !(source_version == rustc_version
|
||||
|| (source_version.major == rustc_version.major
|
||||
- && source_version.minor == rustc_version.minor + 1))
|
||||
+ && (source_version.minor == rustc_version.minor
|
||||
+ || source_version.minor == rustc_version.minor + 1)))
|
||||
{
|
||||
let prev_version = format!("{}.{}.x", source_version.major, source_version.minor - 1);
|
||||
eprintln!(
|
||||
@@ -1,718 +0,0 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
LLVM_COMPAT=( 16 )
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
RUST_MAX_VER=${PV}
|
||||
RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0"
|
||||
|
||||
inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing multilib multilib-build \
|
||||
optfeature python-any-r1 rust 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"
|
||||
SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
|
||||
else
|
||||
MY_P="rustc-${PV}"
|
||||
SRC="${MY_P}-src.tar.xz"
|
||||
KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
|
||||
fi
|
||||
|
||||
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 )
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}-src"
|
||||
|
||||
# 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[@]/%/(-)?}
|
||||
|
||||
# https://github.com/rust-lang/llvm-project/blob/rustc-1.71.0/llvm/CMakeLists.txt
|
||||
_ALL_RUST_EXPERIMENTAL_TARGETS=()
|
||||
declare -A ALL_RUST_EXPERIMENTAL_TARGETS
|
||||
for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do
|
||||
ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0
|
||||
done
|
||||
|
||||
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
|
||||
SLOT="${PV}"
|
||||
|
||||
IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto miri nightly parallel-compiler rustfmt rust-analyzer rust-src system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
|
||||
|
||||
LLVM_DEPEND=()
|
||||
# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
|
||||
for _x in "${ALL_LLVM_TARGETS[@]}"; do
|
||||
LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}]") )" )
|
||||
if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then
|
||||
ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1
|
||||
fi
|
||||
done
|
||||
LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" )
|
||||
LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" )
|
||||
|
||||
BDEPEND="${PYTHON_DEPS}
|
||||
app-eselect/eselect-rust
|
||||
|| (
|
||||
>=sys-devel/gcc-4.7[cxx]
|
||||
>=llvm-core/clang-3.5
|
||||
)
|
||||
!system-llvm? (
|
||||
>=dev-build/cmake-3.13.4
|
||||
app-alternatives/ninja
|
||||
)
|
||||
test? ( dev-debug/gdb )
|
||||
verify-sig? ( sec-keys/openpgp-keys-rust )
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
>=app-arch/xz-utils-5.2
|
||||
net-misc/curl:=[http2,ssl]
|
||||
sys-libs/zlib:=
|
||||
dev-libs/openssl:0=
|
||||
system-llvm? (
|
||||
${LLVM_DEPEND[*]}
|
||||
llvm-libunwind? ( llvm-runtimes/libunwind:= )
|
||||
)
|
||||
!system-llvm? (
|
||||
!llvm-libunwind? (
|
||||
elibc_musl? ( sys-libs/libunwind:= )
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
RDEPEND="${DEPEND}
|
||||
app-eselect/eselect-rust
|
||||
dev-lang/rust-common
|
||||
sys-apps/lsb-release
|
||||
!dev-lang/rust:stable
|
||||
!dev-lang/rust-bin:stable
|
||||
"
|
||||
|
||||
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
|
||||
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
|
||||
)
|
||||
|
||||
toml_usex() {
|
||||
usex "${1}" true false
|
||||
}
|
||||
|
||||
pre_build_checks() {
|
||||
local M=9216
|
||||
# multiply requirements by 1.3 if we are doing x86-multilib
|
||||
if use amd64; then
|
||||
M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
|
||||
fi
|
||||
M=$(( $(usex clippy 128 0) + ${M} ))
|
||||
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 doc 256 0) + ${M} ))
|
||||
CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
|
||||
}
|
||||
|
||||
llvm_check_deps() {
|
||||
has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
|
||||
}
|
||||
|
||||
# Is LLVM being linked against libc++?
|
||||
is_libcxx_linked() {
|
||||
local code='#include <ciso646>
|
||||
#if defined(_LIBCPP_VERSION)
|
||||
HAVE_LIBCXX
|
||||
#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
|
||||
|
||||
rust_pkg_setup
|
||||
|
||||
if use system-llvm; then
|
||||
llvm-r1_pkg_setup
|
||||
|
||||
local llvm_config="$(get_llvm_prefix)/bin/llvm-config"
|
||||
export LLVM_LINK_SHARED=1
|
||||
export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
|
||||
fi
|
||||
}
|
||||
|
||||
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", "rust-demangler"'
|
||||
use clippy && tools+=',"clippy"'
|
||||
use miri && tools+=',"miri"'
|
||||
use rustfmt && tools+=',"rustfmt"'
|
||||
use rust-analyzer && tools+=',"rust-analyzer"'
|
||||
use rust-src && tools+=',"src"'
|
||||
|
||||
local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")"
|
||||
# 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_EXPERIMENTAL_TARGETS=()
|
||||
for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do
|
||||
if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then
|
||||
RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} )
|
||||
fi
|
||||
done
|
||||
RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]}
|
||||
|
||||
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 = "${RUST_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 = true
|
||||
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 = "${CHOST}-cc"
|
||||
parallel-compiler = $(toml_usex parallel-compiler)
|
||||
channel = "$(usex nightly nightly stable)"
|
||||
description = "gentoo"
|
||||
rpath = true
|
||||
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)/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)/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
|
||||
|
||||
local symlinks=(
|
||||
cargo
|
||||
rustc
|
||||
rustdoc
|
||||
rust-gdb
|
||||
rust-gdbgui
|
||||
rust-lldb
|
||||
rust-demangler
|
||||
)
|
||||
|
||||
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_
|
||||
MANPATH="${EPREFIX}/usr/lib/rust/man-${PV}"
|
||||
_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-demangler
|
||||
/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
|
||||
insinto "/usr/lib/${PN}/${PV}/dist"
|
||||
doins -r "${S}/build/dist/."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# 943308 and friends; basically --keep-going can forget to unmerge old rust
|
||||
# but the soft blocker allows us to install conflicting files.
|
||||
# This results in duplicated .{rlib,so} files which confuses rustc and results in
|
||||
# the need for manual intervention.
|
||||
if has_version -b "dev-lang/rust:stable/$(ver_cut 1-2)"; then
|
||||
# we need to find all .{rlib,so} files in the old rust lib directory
|
||||
# and store them in an array for later use
|
||||
readarray -d '' old_rust_libs < <(
|
||||
find "${EROOT}/usr/lib/rust/${PV}/lib/rustlib" \
|
||||
-type f \( -name '*.rlib' -o -name '*.so' \) -print0)
|
||||
export old_rust_libs
|
||||
if [[ ${#old_rust_libs[@]} -gt 0 ]]; then
|
||||
einfo "Found old .rlib and .so files in the old rust lib directory"
|
||||
else
|
||||
die "Found no old .rlib and .so files but old rust version is installed. Bailing!"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
|
||||
local old_rust="dev-lang/rust:stable/$(ver_cut 1-2)"
|
||||
if has_version -b ${old_rust}; then
|
||||
# Be _extra_ careful here as we're removing files from the live filesystem
|
||||
local f
|
||||
local only_one_file=()
|
||||
einfo "Tidying up libraries files from non-slotted \`${old_rust}\`."
|
||||
for f in "${old_rust_libs[@]}"; do
|
||||
[[ -f ${f} ]] || die "old_rust_libs array contains non-existent file"
|
||||
local base_name="${f%-*}"
|
||||
local ext="${f##*.}"
|
||||
local matching_files=("${base_name}"-*.${ext})
|
||||
case ${#matching_files[@]} in
|
||||
2)
|
||||
einfo "Removing old .${ext}: ${f}"
|
||||
rm "${f}" || die
|
||||
;;
|
||||
1)
|
||||
# Turns out fingerprints are not as unique as we'd thought, _sometimes_ they collide,
|
||||
# so we may have already installed over the old file.
|
||||
# We'll warn about this just in case, but it's probably fine.
|
||||
only_one_file+=( "${matching_files[0]}" )
|
||||
;;
|
||||
*)
|
||||
die "Expected one or two files matching ${base_name}-\*.rlib, but found ${#matching_files[@]}"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [[ ${#only_one_file} -gt 0 ]]; then
|
||||
einfo "While tidying up non-slotted rust libraries for \`${old_rust}\`,"
|
||||
einfo "the following file(s) did not have a duplicate where one was expected:"
|
||||
for f in "${only_one_file[@]}"; do
|
||||
einfo " * ${f}"
|
||||
done
|
||||
einfo ""
|
||||
einfo "This is unlikely to cause problems; the fingerprint for the library ended up being the same."
|
||||
einfo "However, if you encounter any issues please report them to the Gentoo Rust Team."
|
||||
fi
|
||||
fi
|
||||
|
||||
eselect rust update
|
||||
|
||||
if has_version dev-debug/gdb || has_version llvm-core/lldb; then
|
||||
elog "Rust installs helper scripts for calling GDB and LLDB,"
|
||||
elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}."
|
||||
fi
|
||||
|
||||
optfeature "Emacs support" "app-emacs/rust-mode"
|
||||
optfeature "Vim support" "app-vim/rust-vim"
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect rust cleanup
|
||||
}
|
||||
@@ -84,7 +84,6 @@ declare -A -g -r _RUST_LLVM_MAP=(
|
||||
["1.76.0"]=17
|
||||
["1.75.0"]=17
|
||||
["1.74.1"]=17
|
||||
["1.71.1"]=16
|
||||
)
|
||||
|
||||
# @ECLASS_VARIABLE: _RUST_SLOTS_ORDERED
|
||||
@@ -111,7 +110,6 @@ declare -a -g -r _RUST_SLOTS_ORDERED=(
|
||||
"1.76.0"
|
||||
"1.75.0"
|
||||
"1.74.1"
|
||||
"1.71.1"
|
||||
)
|
||||
|
||||
# == user control knobs ==
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
DIST rustc-1.71.1-src.tar.xz 151983068 BLAKE2B 3dfdbc246feb84a79ae94c2de978c5585ee06cf6b683d2245869b62e28f7c79f89cc589f5431537713bf088236a0b824acefc1b68e418e9eb72e1eea98054e3f SHA512 fd0e5a16bdbeb539184513583089e55f681cb772810df357b6b1464853f7022ac02edab3dd155b2262ed0047e2a25dea3808dd078dcdfce9d399384465009db4
|
||||
DIST rustc-1.74.1-src.tar.xz 155968724 BLAKE2B e05f2379ac94b286f85791a138e1928e5b5b5a7749f0981d82c40c2a12860f55bf96bb2f0e924e35a0f8b2447b13052d38adea909aaa3199105787bb5a4861b3 SHA512 14c7e7ed2f38ab60299d8c7d41d78f042b6b57ef822d577b5138e60bdde31cf141eccd4332a25bc5da3d58eb5313d63c1448b5dfe9e11b8055bb8ea133a9038d
|
||||
DIST rustc-1.75.0-src.tar.xz 159624388 BLAKE2B 8937b80585eddaa3e1f1ef948899d14a170308518c6fef9fe569560cdd870053776956743f796055f2119399b9ca6c0df12fedd789ae46324d071e5126c4e495 SHA512 7b0f25d91b1b5c317980fc88e059200bd43b56a70b445fbc72fb9b96e09775bfd3a98e9bd9d662af80f0ce3aef527c777ee82777e96ca876f47a972d63da8606
|
||||
DIST rustc-1.77.1-src.tar.xz 162796048 BLAKE2B 18a9fd095808ba78bf50ec94f7fd4087a1033ec79750aa593bacf64219c77ef90c030d41a7d8bc43f7ec8eb30b316c225024be4aeb517100ff6723487f8bb282 SHA512 e057ae638e4c3e54fdb367d48f4b85458121cee0d0ee1ed72f346940b8acad2f16cd9cc8abc16fcf4a17bf244b3300bb56a7e7be3bd0c23b034692c983b84fe8
|
||||
|
||||
@@ -1,155 +0,0 @@
|
||||
# Copyright 2020-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
|
||||
inherit flag-o-matic multiprocessing python-any-r1 rust-toolchain toolchain-funcs
|
||||
|
||||
DESCRIPTION="Rust standard library, standalone (for crossdev)"
|
||||
HOMEPAGE="https://www.rust-lang.org"
|
||||
SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz"
|
||||
|
||||
LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
|
||||
SLOT="stable/$(ver_cut 1-2)"
|
||||
# please do not keyword
|
||||
#KEYWORDS="" #nowarn
|
||||
IUSE="debug"
|
||||
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
~dev-lang/rust-${PV}:=
|
||||
"
|
||||
|
||||
DEPEND="||
|
||||
(
|
||||
>="${CATEGORY}"/gcc-4.7:*
|
||||
>="${CATEGORY/sys-devel/llvm-core}"/clang-3.5:*
|
||||
)
|
||||
"
|
||||
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
# need full compiler to run tests
|
||||
RESTRICT="test"
|
||||
|
||||
QA_FLAGS_IGNORED="usr/lib/rust/${PV}/rustlib/.*/lib/lib.*.so"
|
||||
|
||||
S="${WORKDIR}/${P/-std/c}-src"
|
||||
|
||||
#
|
||||
# The cross magic
|
||||
#
|
||||
export CTARGET=${CTARGET:-${CHOST}}
|
||||
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||
export CTARGET=${CATEGORY#cross-}
|
||||
fi
|
||||
fi
|
||||
|
||||
is_cross() {
|
||||
[[ ${CHOST} != ${CTARGET} ]]
|
||||
}
|
||||
|
||||
toml_usex() {
|
||||
usex "$1" true false
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
is_cross || die "${PN} should only be used for cross"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# do the great cleanup
|
||||
strip-flags
|
||||
filter-flags '-mcpu=*' '-march=*' '-mtune=*' '-m32' '-m64'
|
||||
strip-unsupported-flags
|
||||
|
||||
local rust_root x
|
||||
rust_root="$(rustc --print sysroot)"
|
||||
rtarget="$(rust_abi ${CTARGET})"
|
||||
rtarget="${ERUST_STD_RTARGET:-${rtarget}}" # some targets need to be custom.
|
||||
rbuild="$(rust_abi ${CBUILD})"
|
||||
rhost="$(rust_abi ${CHOST})"
|
||||
|
||||
echo
|
||||
for x in CATEGORY rust_root rbuild rhost rtarget RUSTFLAGS CFLAGS CXXFLAGS LDFLAGS; do
|
||||
einfo "$(printf '%10s' ${x^^}:) ${!x}"
|
||||
done
|
||||
|
||||
cat <<- EOF > "${S}"/config.toml
|
||||
[build]
|
||||
build = "${rbuild}"
|
||||
host = ["${rhost}"]
|
||||
target = ["${rtarget}"]
|
||||
cargo = "${rust_root}/bin/cargo"
|
||||
rustc = "${rust_root}/bin/rustc"
|
||||
submodules = false
|
||||
python = "${EPYTHON}"
|
||||
locked-deps = true
|
||||
vendor = true
|
||||
extended = true
|
||||
verbose = 2
|
||||
cargo-native-static = false
|
||||
[install]
|
||||
prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
|
||||
sysconfdir = "etc"
|
||||
docdir = "share/doc/rust"
|
||||
bindir = "bin"
|
||||
libdir = "lib"
|
||||
mandir = "share/man"
|
||||
[rust]
|
||||
# https://github.com/rust-lang/rust/issues/54872
|
||||
codegen-units-std = 1
|
||||
optimize = true
|
||||
debug = $(toml_usex debug)
|
||||
debug-assertions = $(toml_usex debug)
|
||||
debuginfo-level-rustc = 0
|
||||
backtrace = true
|
||||
incremental = false
|
||||
default-linker = "$(tc-getCC)"
|
||||
rpath = false
|
||||
dist-src = false
|
||||
remap-debuginfo = true
|
||||
jemalloc = false
|
||||
[dist]
|
||||
src-tarball = false
|
||||
[target.${rtarget}]
|
||||
ar = "$(tc-getAR ${CTARGET})"
|
||||
cc = "$(tc-getCC ${CTARGET})"
|
||||
cxx = "$(tc-getCXX ${CTARGET})"
|
||||
linker = "$(tc-getCC ${CTARGET})"
|
||||
ranlib = "$(tc-getRANLIB ${CTARGET})"
|
||||
$(usev elibc_musl 'crt-static = false')
|
||||
EOF
|
||||
|
||||
einfo "${PN^} configured with the following settings:"
|
||||
cat "${S}"/config.toml || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
env RUST_BACKTRACE=1 \
|
||||
"${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) \
|
||||
library/std --stage 0 || die
|
||||
}
|
||||
|
||||
src_test() {
|
||||
ewarn "${PN} can't run tests"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local rustlib="lib/rust/${PV}/lib/rustlib"
|
||||
dodir "/usr/${rustlib}"
|
||||
pushd "build/${rhost}/stage0-sysroot/lib/rustlib" > /dev/null || die
|
||||
cp -pPRv "${rtarget}" "${ED}/usr/${rustlib}" || die
|
||||
popd > /dev/null || die
|
||||
}
|
||||
Reference in New Issue
Block a user