From 74dcbf5a63cafe2678e2a397e1002dd691425200 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 4 Apr 2025 01:34:29 +0100 Subject: gentoo auto-resync : 04:04:2025 - 01:34:28 --- dev-lang/Manifest.gz | Bin 22618 -> 22621 bytes dev-lang/rust-bin/Manifest | 94 +-- dev-lang/rust-bin/rust-bin-1.71.1-r102.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.74.1-r102.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.75.0-r102.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.76.0-r101.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.77.1-r102.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.78.0-r102.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.79.0-r103.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.80.1-r103.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.81.0-r103.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.82.0-r103.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.83.0-r2.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.84.0-r2.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.85.0-r1.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.85.1.ebuild | 8 +- dev-lang/rust-bin/rust-bin-1.86.0.ebuild | 318 ++++++++ .../rust-bin/rust-bin-1.86.0_beta20250323.ebuild | 317 -------- dev-lang/rust-bin/rust-bin-9999.ebuild | 8 +- dev-lang/rust-common/Manifest | 6 +- dev-lang/rust-common/rust-common-1.86.0.ebuild | 73 ++ .../rust-common-1.86.0_beta20250323.ebuild | 72 -- dev-lang/rust/Manifest | 6 +- dev-lang/rust/rust-1.86.0.ebuild | 809 +++++++++++++++++++++ dev-lang/rust/rust-1.86.0_beta20250323.ebuild | 808 -------------------- 26 files changed, 1270 insertions(+), 1361 deletions(-) create mode 100644 dev-lang/rust-bin/rust-bin-1.86.0.ebuild delete mode 100644 dev-lang/rust-bin/rust-bin-1.86.0_beta20250323.ebuild create mode 100644 dev-lang/rust-common/rust-common-1.86.0.ebuild delete mode 100644 dev-lang/rust-common/rust-common-1.86.0_beta20250323.ebuild create mode 100644 dev-lang/rust/rust-1.86.0.ebuild delete mode 100644 dev-lang/rust/rust-1.86.0_beta20250323.ebuild (limited to 'dev-lang') diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz index 0d8f12e1cbf9..00a79d7ccc62 100644 Binary files a/dev-lang/Manifest.gz and b/dev-lang/Manifest.gz differ diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest index 36c4c4a470af..add5f6c260c4 100644 --- a/dev-lang/rust-bin/Manifest +++ b/dev-lang/rust-bin/Manifest @@ -516,34 +516,36 @@ DIST rust-1.85.1-x86_64-unknown-linux-gnu.tar.xz 182566732 BLAKE2B 8c776fcb1a2f9 DIST rust-1.85.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 68d7bf6ddcfe5dcc25c857be305e650222507bd6015b24611fe983d85be48e38b4e3529db72a41ff13d1e3331a7138e86ff4b56a8344a1e459421e9555ed14c1 SHA512 792520a1de8c9b6ac6bc12e74a1182dd30edd8668d0c6fa5f3709bfa6ed3981eb378f079794459caf4e9fd982b71ba0296a7e515f56e5ac45cf7925e7cc296c7 DIST rust-1.85.1-x86_64-unknown-linux-musl.tar.xz 262611472 BLAKE2B 9f6efc6ae4bbe97469bbb80e3d6fbb74a4ad63142af150d0c1f8867cd81f9a2b41f96787408681b79ba7b37b1b9f0d67089796eedfee5f0e228a30bed441a84a SHA512 8f3e60a6d83ed0ce0d31967707ba51eb7b9a8b2fb981b37aeb03ef4142965c3086a21768b08b4f26b81edceb7eecd10f83bd76e5c7bd12030774d916ac5a45c4 DIST rust-1.85.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B ac25b4ccc84cb0c06708c7164b0a7b926478b3794683e2ca5e1de26a17b5098892c8633c9b8b8cde18040d2c6f195941b9093162594e39c04dd3b0e4a45f1204 SHA512 0df04cb4bd584efa1f6a63649ddc44bf4a30d018a2b60ec83b6defe4c25bfd8b61c8acb6c93783e9d110abc114be859542116d45b3087090f88743761149ad6b -DIST rust-1.86.0_beta20250323-aarch64-unknown-linux-gnu.tar.xz 161335248 BLAKE2B 4cc5245b96abe734d04b330258dfd39c25f2f18a8410d85c6f0b2bafd93f1bc4dac02418ced0f2c88cd7ff1f8926c4cdf2465df8ac30e97944390f8c60f0ca57 SHA512 0baaca918e6553fa06897c471d942fb7ddbb2af44f428a213dc5a7ab6929560c5243a54f370da067ddc9647cfa260b13137ae807a31f3650d7e7add8d2fc24fa -DIST rust-1.86.0_beta20250323-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c6214992524d91629aac72420b50f5ea7dadf258c697398c8ced1d27963c522fe0f5d19809cd342f3870ebb9ee57e0124e79d45b3c681e5ee3d5b07aecd75aa1 SHA512 70faefa0975a2d9579ea8be5cb16c689f87aa12c5728e9d01592142bc04fd9b72e22194f448707df8087eb0293c34f212d7d5d91bc8824814f37b1af73b159ce -DIST rust-1.86.0_beta20250323-aarch64-unknown-linux-musl.tar.xz 234497012 BLAKE2B eb7e212f39fac80cd7bd744d1e50143aa1ae13d59758c1cdafb52b7852843d3428a2f1a83725f04f578bb94ff5045ee7b88218b9537eca887b21b4c5b9b52781 SHA512 aee1cf39bce41643a912280bb0c110c4c53a26ee10db4aa12e33f3e96a54bca31d72254256ca64c1ed6302b463c6d4699181b20b9b8848015ac7a0d9261f49d4 -DIST rust-1.86.0_beta20250323-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 8823dd5f4b4e06a61b993e75b006fe77786a4a4d6d4ac972f01a6ccd76524a12f6927e1132661761fdc1d21a09746d177bff3f5b76260a0a03ad178b1c2bf991 SHA512 930ce227360ddd379ddbae1ad1a0c24c1fd23ec30aae2304ba6b19b528fbce95469d0b45d73956f1f61fc0d69201a8cea2ba7427325ac70c3e70f21f2055340c -DIST rust-1.86.0_beta20250323-arm-unknown-linux-gnueabi.tar.xz 219267460 BLAKE2B d81789b90bdd41a4bf34a59af8077dfffa22b4cf9de056a89d3ef393a31cd602a2756b2a58f2692ef71fa81938353aa5585f2520e4eea60edf2a7c0c26a6509b SHA512 dc8bc66ac5a531c1c7975544d59d48356f8faaf5ab19b2c83d12d4052287e82cda4b44971bcb0b52306a3cd34c177e8bf42d7e1d9509d41f6dac4480db183337 -DIST rust-1.86.0_beta20250323-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 77bb1bcb52c173fff43f3a40ba993eee11a4d6cc5d2ad6794d46a92a1ff877f6b4f8b6d0ccb833796108e9a2ef316b5cdf1da486679c7a47860487491f13c632 SHA512 f192f62af246eef353f0519c66b66787521e2eb10f676a722094474c24c59bc691c4e8cef234df362c0c540932c0649c7f560234fefbdd8cdd34ec68faaaad60 -DIST rust-1.86.0_beta20250323-arm-unknown-linux-gnueabihf.tar.xz 220543472 BLAKE2B b93b94843f9126e8620cb6ccf0fe1174246add08b249fdcc24fbfb1fe5323ed95c03c6bb85899101f996dacf1d8d7216d8d2b707cce0d59f66dc3f57e47208cb SHA512 af78eac51ffbdb7d0179c47877abf339e82cae44fd3b2e2a9bb2222f4eed205f9c019e4e31bf332cf57c0169f0313dd084e2cac6f0321e7e07737a795afec558 -DIST rust-1.86.0_beta20250323-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B b788a0ae7c44dbdeca326c73e7ac293731c67e6aa5f800fac97a0a13e07f9730e0ed466bafd6495afb727ae6d6d0acb5391c1e42dcbd8762efcc7833b89174f6 SHA512 849c540c65d68aaa092add91915fb855f8b404e4a29f5be4cb84a4cf29817371272608a15a6b294303490c0c140306beb249ef96fa30610968ba6d25e5e59d45 -DIST rust-1.86.0_beta20250323-armv7-unknown-linux-gnueabihf.tar.xz 225359312 BLAKE2B 001864c7ba864e22e628f0868f446be36ff7161357c23006318e8ac54c1931e3d9128f48c9133a25ba04749fa6d9fd4216352ad15ad19d1dfabe443ac21cc149 SHA512 200933edf1f8a9536137d64fbdca1ba42f9dffe0a531b3f4519d837077a18244d4ccf5b9db3a7fa3d99780eb7e35bdbabd1559b45e834e7a0f6186d32be2b139 -DIST rust-1.86.0_beta20250323-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B a8bf78978b20c534ce2d3f2f36eea0ce179efbeca8b55d6ed8fbab596270c3174caff3c7e931f79dc9c681b203bfab86f9a186289428f411f1ac0338b0d10ea4 SHA512 6b7eee810048347e51eea05197ef41fbc795e67b0f2ac1055012bb40b2f7d2bc296d709b8b54eed0585b30d746163c9ca61ce0466f9431ffcb408074432e5e9d -DIST rust-1.86.0_beta20250323-i686-unknown-linux-gnu.tar.xz 254656168 BLAKE2B 235ff206f15b476be0e8865763e162015e739aba38c2a4374e47299ab8b0db199731fd8cfe249540b0b11db483af0d56663d1a6abbda6da559ef773d1f85b709 SHA512 265c48f298ac1ddcaeb99b26bd4504fc8f2946a0dafb0ddafc60158576594249a23f2c684c28c826e0ee5f8d30fcca5325e646a85a68f60dadb4d9da3b9a9319 -DIST rust-1.86.0_beta20250323-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ffb4523822deb0971e85baa2bbc9beeb980638f2aa7cc600c6d28543ba8dbfd751cb3aeb13fb18cb3e110672645d8fc0ed897f6ae48669f39c8992ea9a0b996c SHA512 147172ad29e05989d68e3ce41a88c392db8755fd4eb4ce0421121b462d40980fb21ff7ab2c79d4977ab65695e81919baf1be7a4eb3a112adaf2c154736226e52 -DIST rust-1.86.0_beta20250323-loongarch64-unknown-linux-gnu.tar.xz 251448532 BLAKE2B c92800a1dfc31c5b699208735f3b2f7817e5225dcf518e30761ed4079dd32b6d04f0c8ef0145e73941687a99630dc4c4e6edc8cba12e84ed26c03995688a5cb2 SHA512 a2eebe4fe79c5ab15c4eb31285499f1043916111239f28f50a363857e85baf6455db7a8ec2d22be11fd85232559971192c47090380739b27dd3654672720187f -DIST rust-1.86.0_beta20250323-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5a14eff55345256a866bf19a27f4f91f4b9fbf0051184ebe090bcc9eff2ce16ca9e34244d5d73e8489cfb77a2afc268e1f9e1ce03b5bd4d7670b5294912ff0bf SHA512 f1108fd470a6d999835667f7681ee9aa278ace8d12773735d8a522d713bd96e348d7bf851d18fd72d2a4ab408fd7b076e3ced8fd77cde7b72ddc2ba8c5cebb78 -DIST rust-1.86.0_beta20250323-powerpc-unknown-linux-gnu.tar.xz 244504464 BLAKE2B c9c03ba679eb3acb4d1623bd4db74ed0a645812d10c0babec4ddd50a136e994f4323d52d8e8cb524a4f9994d248fe18588f2c4f8f1ee3303309ef2c61735af9f SHA512 19db20cc2702d85e6a52c29c8183604b4f32277d14ed8a6c72c6b58cf5e7d56f2887b0b8c9314e1db5a64c42b224891521eab40e8b02e5a6cb4ef12018f3427e -DIST rust-1.86.0_beta20250323-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3deb1379eb5df5c9778e7c9ea4fc730dae0659dbf3c4aa67b194036255fca620ba20d90aa6d21772ec472c6841ab6eb8080c62f85e957c3b80dff87fb602f96a SHA512 07178440d42ad585b5714efd6a54029070891d90afea8dd4c6c49c8170e76cf0eb88fef31ec01f4e863fd955f0b33b24eab946a953d5e09d131ab3d0134ad39b -DIST rust-1.86.0_beta20250323-powerpc64-unknown-linux-gnu.tar.xz 240759852 BLAKE2B 0abaa43fbeb502cd1d7e8661b409ff9fc81a90fe839db269585ddaa1c7eb4cbb21c188e764f8a2ec7cb2bdbbf684d67d2415014305f6d89c0a0ba20d366b2da8 SHA512 ea1540af6788bc42e376bbfa49ed997d4fb3008e128cdead33af4bae007e51252fd83401f131e62d25a0d3c7b4914473ea89ffcff02bc59cef06dfbf60cb76f6 -DIST rust-1.86.0_beta20250323-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B cc3ee0b826cdbe09d6ddb3866d716b8a1019036c8dcb7010f8e052a97bb024668ca1a4c8fe57560feb60dc7e5636f648a26a075200642afda1900fc6aa881d8d SHA512 2c85f3159e6b717265170d30b11f5e55ecc74d9060350971ba8a83f71f6d1303ccb5c43e37b349bc4e153ad6829f6fdf7c2023c571592ad80b6193f7cc7c0d2c -DIST rust-1.86.0_beta20250323-powerpc64le-unknown-linux-gnu.tar.xz 253891476 BLAKE2B 81ea84725711fc5773340913ec3925d1116fa8604ccf8f6246457e1bbb403db037e6addbdae33cef9e6a09d85d56009aa97e7effc77e4397248ccf5ce899426c SHA512 448b37dc22793b6db69b19f5b15da27a039e7db5db5859c85156720e44439504a00aed9340bf7c5229584e34fa36ac617beb38d53c0ae7cf681db0471981b146 -DIST rust-1.86.0_beta20250323-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3a56380f8a8bc5dad57f0178a21d7430def1419c3ccb01d31f6adafa0a89c18fc681823e68dadcd6e312356884e0460803a8d983d0060c5bca369a793f3e0b3a SHA512 c1a79062a59f4764bb80a89faa9c8725c772ad1cd8bc285e7f51e53e7a7990aa9335753ff9d0404f5330ad8ddcc0ee494d9808d0d6e613a164a0a6cb09f6e94b -DIST rust-1.86.0_beta20250323-riscv64gc-unknown-linux-gnu.tar.xz 238642188 BLAKE2B d8f73ba74b704e1b0c058b6ab573961e98612eba324d4a1308b376dc327b437fb77715f16ed5b4dede8989bf771689981421dd80dff1680dca8546f0776f5371 SHA512 918d440df6f7995bfcc857ed01635693e1fe92c41f4102bcfcbcb5d25f0b9144ff3b27c37ef196f30695f2a3a45cceb567744c3d6d1a03b5e04c5d3ca8603b3c -DIST rust-1.86.0_beta20250323-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f7a3a10cd524b163d2c10e673d64dd9568e982c8bfa0d93d69e8ed37ee035975cc35a58c4b4993480f63ff30744e63a9882b6afe45fdb0845a92d6250dababda SHA512 9553d8888a95e361d969a1e95d216437ba2d2c1ab42c9d328baf62c9becc3f71491e8693799d89df393f91e4607060e27803fb622c085911ff039ac27f44a857 -DIST rust-1.86.0_beta20250323-s390x-unknown-linux-gnu.tar.xz 241139428 BLAKE2B 75d434bf40e48d807e88338a9d30bf18d8b5c1433a2fd4fa4b6ea74034ce59a0d4445a29f63488ccc4aaad412e80257f221b25c60273e6f6e8393875a0845b6c SHA512 c7a4c0a9227a02b73a0256e5cfff9d9daa7ddb590ecec849119b916c4f0bae84f212541eef145471b2e8fef874a194d07ccdaf5674f6e30650ff9ea4841f52e2 -DIST rust-1.86.0_beta20250323-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9c16fc150945109a4b40f63f0b7a01944970f30331dabe626a5cbadf3789d7a215e669b372aa29d05b988128daf66a47eccccc33302b5cc08a73fa097e574360 SHA512 de475ad0c5781111b9b1ca8078531107693ccb3ea88e95c0631f1ea2aeb2cf93ecf96de0214812e34d9c5651c2c640ac8b12bcaa7b6e7f6bd4d9635f0d63ac75 -DIST rust-1.86.0_beta20250323-x86_64-unknown-linux-gnu.tar.xz 192269184 BLAKE2B 6334e8a2248bac18da9a943425e7d0519b47296f9256999110523f3b4c31a42e92ee76dd2cf9a29d906aea66158241fcec2bdf31b5640a910996ad4083ab0650 SHA512 bf08b9588545f20f2447fca3f3f04addf7b335727a0ade00414e4e50ca3933f4eeaeddec716473fd3033355b7e9cae76c6cfac83ec78cc1d7fec005512d28f19 -DIST rust-1.86.0_beta20250323-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bbf3c48b2ac4602bd43e90a117ae651dbd5e834ede39f7858c82b7e707f024d9c17fae692a35358bea259ea2231735e7b884320b7862defaa373a4f2cbb71073 SHA512 33542eeb9f426b53e45228d3046cdbb007bad8769c326b1e2703487e9a8d1b0e12ec9a69d7227d2c2f49b5a0fc1d1c2079fbde46c06265401ceece10cafcc96f -DIST rust-1.86.0_beta20250323-x86_64-unknown-linux-musl.tar.xz 282510500 BLAKE2B 9a0ad90bc97d501658aefe1d8694240a8d64b5ba4273479e44b8b6f2b1e28bf005b33db360467727a2aee084090656e767ce6fa6561eee81979ea26ef74dfa55 SHA512 664166dfec17b3e7066670bd9c478d35d7aaa7146d853355055c28ee8dbd909682615352b75e5295c193dc86ff4f81dcbb101e4adddeb2f3bb4b604854e5990b -DIST rust-1.86.0_beta20250323-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B aa91374317ae52cde3272d968fc33a1f3afcf879fcea40346e8df8483731c3f6f64a944780a113fe6d58515b18195031ef78757f314acfb2a1384e7f082a8c3b SHA512 b56cdafadfc4873f16380d1b47de43d15185ca55ee22c5fd66d4a3f35d9c5a6313a4126c6fb39bdd6d9241c58788b79632eb42af08cd1059bda7983ac74f1a9a +DIST rust-1.86.0-aarch64-unknown-linux-gnu.tar.xz 161478048 BLAKE2B 98e9a6b849ed8d241316b3fe60b998e4f6e3fe03e2173a4216d18ccaa6852e6b2ada3bfb5c0db68b28346d1c4c3b40627e166ce8ab4b217f2d6c42c12c22510d SHA512 51303f3e810c279fe1f81aee44f4d20885adc7f130d068f772f202c95fcf1c5b2648b1c5732a5d1a8cf075c57c10bf9a8581d57a7f001b672b46a3a273d49d73 +DIST rust-1.86.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5e0f99da951d98a36d31034faf1041522b547c13717ba00c72da9ca89d76d87fac73844679a856a338fdfbad4606e6d8f6517ef2f7d98f4e6b01d47bb510ad2e SHA512 6208d934ea7a063db574d34f2a3dc314bc37f5ce6c8968005eaedc3456a1f027f3b609ddd21c60889f41a955283bd64ad8dcfd895f0bc38a7956fcff48212ed6 +DIST rust-1.86.0-aarch64-unknown-linux-musl.tar.xz 234453372 BLAKE2B c875354b9cb91756b8e42183d0e0e5eabc1b4a8b3844306718ada7f8bd730b9983357188733e031893c9e0b793ceec4cba96da93ba1baf9adf7941c140202b9c SHA512 095bded0dcbceaece2f887273627a03a227c7e2cc321b4ddea3cee8f2b9faf9e4ca6a5dad9d067dbf64c2c0a60761dba296147e71d7c8b4e4076ef28df2abf82 +DIST rust-1.86.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B a6b3a70caad2fabe4f9d83ab7725220d5c8a891577b9d58a59fa5f4eae5bce3331bd1dab379697029c1b38c3c09023d3c8f98e01850552f7f7d2281e51c70faa SHA512 71b390282f526723da1ad46d48f80a3ac7aadaa03b3e35eb3c5452c35166ef0b5754295a753d8329b9a3e0797c5e4845b75d252651dcd0cecc73eda81aad201b +DIST rust-1.86.0-arm-unknown-linux-gnueabi.tar.xz 219680908 BLAKE2B 6a7ea7a8cef31880ee4120c5dd712fe8ee7cfec1d0e910b7d8b6d6814fe4b53a574d4a28af0d6466f1a41c6ba3e136f77c5f632862209ddc5200c2de29fd7d54 SHA512 9d192b00cfc048e092fca14231b2794bdb7d15c0a83a8efc3211bce1047bec2e8ed7ae4cc9ea6e5455b439177ede1eb2dcf2fe0f524a694574150cd7c3900b2b +DIST rust-1.86.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 6ce8c6365c06b78875c029aa0fc135882a052b8873ccd303180d095433f19e4036b11f702f2f96af3fb8e405407841cda62485fbfbd280059927873b1d411cc3 SHA512 a23e46e99640e43aa5b69bb2b6404affb951fc0167ca286379fba9a7427e177762816a1447ea35c63f983800442d4ff6ec75442eb13df8ca30ae87cfe40d899e +DIST rust-1.86.0-arm-unknown-linux-gnueabihf.tar.xz 220298448 BLAKE2B 3a7708f2a27737c9094a3ba0264a16c6883c20709aef21c09249ceaf1376e8f2b5351e81cb4ef6bed108fff942b8f027aa7d4c3e6b877d62cf17e0207c8ca88f SHA512 581b306aaacd7db3db61ffcb1b35fd41c890cf2b980c089fed402304bc6386bb83502dfa105ed2c036856658422ec68056473a5d45381bc77ced366b07731ba8 +DIST rust-1.86.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B a5b21296ab2226ad6a892a77ab8b6460309966fa2a3497a139c8443890668f0c15aa097214c053a2647d419785c876559f362e263f94eedb61ef61b53dd957e4 SHA512 cb6e17db9ff6ca078b14495c6fb9c250e121486cda855793397f13969046266adc798df13374cd3b56bae46dbca3467a30395e2b2dce603606c3c38b041ff5fc +DIST rust-1.86.0-armv7-unknown-linux-gnueabihf.tar.xz 225507396 BLAKE2B 27567fc17e0095b769175c6d7511e1080242c77157eade2106f75ce335e4f592ae42a8b488864ce85efa3e856c2bdf85b419ec86c1882614237df60297482127 SHA512 a3be060bf1dc7483d44fa242f967166ab8d1db78d62dbf6e20b67a6b750854ff286675afaac86775e93f8f43922a6b56cc155533bf5718918656088fde5f7cc1 +DIST rust-1.86.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 1613dc793e5c92e07fb86118f5079cdc8d67773a02d3c0db3043ecf7c3e4aeda1cbb94ca38ba79e980cc365f437026d2c8f991a60540ba79174869721eab3d16 SHA512 c652290f22578dbe1f304dad9adf47a81ebdc42e1a10ca06ef334e2d73637f6211d1d0b7fe50d9c0018c59a3ca9102b80a92445b3c46f9999d34ae92bfb9b49e +DIST rust-1.86.0-i686-unknown-linux-gnu.tar.xz 254644588 BLAKE2B 49e9ce30dd8bdd68d69e79b0ee256ea0644d2e15f6b506ba682a4ea2271550494d8a1df972429c895db468900c36de291fb3d13b56479bd93aef424e8a639ba1 SHA512 8bf40765545757735b1617536b95960c7372e4885be4de5ec8042068023248fd6433e6728417a19ac4fd36aff7082c63296dda34381f966ad2c16f5404e0697a +DIST rust-1.86.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 45f5e0d7d6909025181a94c468a7c1cb71979c147ba4ffeb7841efe8286b250ee427c50e54654a0036273b6988496b4b3031b00de6bbb0f6e9101e46f4f3b714 SHA512 e06903566f5cd14bfed5f7ecd52df5d3c024426015b1ea1d948de64716b774ca00e9efae2ab539057bba64e4a6b079fb0fa5d3179c372a3b340b6750790fd0a4 +DIST rust-1.86.0-loongarch64-unknown-linux-gnu.tar.xz 251731380 BLAKE2B 15a165c56abcd1724d2ce5a13b45a26dd31a60ea7aa10d71c8217d533b4ce40e3839a63214275f13815227a7bee277be0769d08ee5d5e3fc6feefe8f9f7b07be SHA512 c9cd5a33bf999057a6c1a744b3695938e97da571cac0b8c012c0c48f01d50184a2425fd745f48a5d74f6d218d6327113a1bd20b8fb96e914df27668083716a51 +DIST rust-1.86.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 749307f8246c33bd29fdbde2d081350ae35ea5cc3899c90a3572478b8e582e63cfc32bd7481cc1e8fb4b945b458803c0f38fc0c9affc5350641c85ca7a9f5b83 SHA512 db1eb279737a4f383782c9c1d9fbc9655879e77f3c3adcc2be31eedddb1a4799f8d1577da3af16ea87dbac4ac10346c461f9aa0ba5ace6f50e99be270e8b8ac4 +DIST rust-1.86.0-powerpc-unknown-linux-gnu.tar.xz 245387424 BLAKE2B f25942be19a52a13f4dc8f5227b1ca8331afb3530b94ba2c31bf3b5ff5c421f4319bdf1df2605b5322d4f5e34a2a9084e11dbbf19187f7dcc492e320f406cd03 SHA512 d013fff6a739f80771e7b10f543b6ca77bfc858342fe8e09ebbf1ba61ef013887cba96a311ea10762e5fa42fdf0923870ab98deac33b70e99c891d846128942e +DIST rust-1.86.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B af8701515fca2d775a4301132ab11637a438367801401a2d8fe4ca33e36bdab36a09c3579956e1bab8c286e4e4a978c5f42ff27605ba02a08b3914f0c92e0725 SHA512 b80015270af1e2f90e0cc8bf88cec3b4b7f09b20bc1d32d6fb617a618c114cf0f5473a046482e8d32ade724c08b74ec29e05900510cd9a7077a2aeeacf0e3bc0 +DIST rust-1.86.0-powerpc64-unknown-linux-gnu.tar.xz 240884248 BLAKE2B 4e0bc0e83ff7f946bb0071f867eaf074a972f563178410378954c964f7a999e4f543fab746ee66ec8112b5016537e36fde4b5507d9b1930b64150a11123bc559 SHA512 19b7bab462762b6892462ad24a8f3eae98b2285be95f19a32e0b3a43299ad17be7e124263cbe6622fd298369dcbb7b6bce9b7b99699f06b179637e706e85008d +DIST rust-1.86.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 74f0c1cf346164b62651a13b696694eceb71da4e270a8211d8141d94d46b34949a670573615d8ffe2d495e86eff07fc2fd79fa47d81ec6bab5b6749b2ee6506c SHA512 a8adf096fe891d4777a258ef72205524c5239e6cc463aff29cf6ec20de1bb5b88bea6827e5af333adf7b7e4b4a512dd70a3711290f765c087208cc4ab4062573 +DIST rust-1.86.0-powerpc64le-unknown-linux-gnu.tar.xz 253859192 BLAKE2B 3a9655587420f1a776fbce48da4b50ab34ff35d4f4ec63463d21b6cb25de1a9fe3fd2014e8643156d777a821b584575c8ef86e6ac87a4bcede967c88167e6e88 SHA512 2214361bd011c71d3344a9dc0dd2241056241c4a009fd764f3a5d97f5ce84decf92cf81ebfd14a0cc800f8f349e3e2143c50008b463d49889400717b7d8fa6ff +DIST rust-1.86.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0d10953e01d5b992dda8e973f67be6a752381108ee85c516af1dc46479ae15fcdfd42c444eb5e7e2dc1fc6b1524ad4d561c1528cbf5a0c8aa2527e8b18c37d7c SHA512 8aa87a8f116bc1dc160e1041fc403bfc78062853ca02077783d0e6fbdf43b715d9999f2e7458bb3654bb0bcea3900f46dfcc698b2ee6cb3b0f3d716df340858b +DIST rust-1.86.0-powerpc64le-unknown-linux-musl.tar.xz 259294828 BLAKE2B 97091558aed389d03cf2de84b2dbb38b6512c6b3e3793daefdc5bd04b083750cc772267a891f39e22b840da354ba9bac3c73a710aa147de165f6b597caf30381 SHA512 2951d3a8e8856a3977a62bd796e12a9c6432a1bc29924fcf93e5d65d4abf103523efb42bf0ef416e108d3348aa6ef5fcbb74864f1bbed57e682efe14ae825ee7 +DIST rust-1.86.0-powerpc64le-unknown-linux-musl.tar.xz.asc 801 BLAKE2B e6373b1e5494b4da6a19ae8394d34ac6963af4dd6e92541ea436421fbc1c0a7e74bf303acf6b8e03deaa1165c1c594948cc7e435fb100730602a4cb3c6432daf SHA512 75c01c27eb4be619aca0aaca0e451e32bfd1355254156f41052d8b065c3c68ff8da94d9b2ac3ca725d4616caba263f61ed7d8f87e14ea9a4a81feb02778458c6 +DIST rust-1.86.0-riscv64gc-unknown-linux-gnu.tar.xz 238802100 BLAKE2B 622e38f3c7168c3804fb1468e8f60ff96a76f36a47d2abd269c8303a0506555538d44c63f661f7f1536878575ea9327d961e25491dc043439c9c2dc51e7717f2 SHA512 ebded5a975c445d1c100edb1795e32b348f8fd0c5273272b6219c1e09cf23c4c5627ba764433aa5a46707881c428cee6e7a271bceea4801f9c4a787ea2322fa9 +DIST rust-1.86.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B cb17b9c5d67dedee4c4292dffcadaf8da783bdbb832227ee916f0ce89feb92ce2ff6125d7b0fc476114a6b171348a917d9b3b1cada9234276e452b15c4fdfa1d SHA512 d5f8bacd56647d3c1dc64aa7f9c5ca6e3619cd21a1b9404034b39981c1088ec95b076a280eb089dbced35e0166ba90869abcdae3ce65ca6f79a7a1b3abf2e922 +DIST rust-1.86.0-s390x-unknown-linux-gnu.tar.xz 241333864 BLAKE2B 46a6840296e06fe079c9af1a8977abf8f0a97b70b830f7c63a4f6942d4d17e926f9e2a49cb13eb1d34af9094640480c306633d99f717b174ccb5ceee433e13e6 SHA512 10c3e188d8d44038d4fb894688f32bcb02f32429eb1a4d31aa4b5414ce804898c1616ffdf1c19265966031fe627b3efcc3a23073db5f4f9623a64da4ed47b66a +DIST rust-1.86.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3f42d8da69db298198ad7d8a5f48d42d4fd052f703313efac10534b6d3d7a44c1c02d1a239ad62060a38708847a0fa840a255029e5539f5eb956e1ef6b9dbc81 SHA512 9fe2fa34fe28ad608e70070854781f532ab9fdb3e8ca418e7b991a7d4a09c0fa7d7beb0a7598ca37941a621c7b922d22a093f98cfaaf1ccc867bef1c8254da27 +DIST rust-1.86.0-x86_64-unknown-linux-gnu.tar.xz 192462932 BLAKE2B 75bb01181aad696f42d3e6cf287a94ab09832763932d343d0175d8759b1b277fa86022409445d64e96aa31ee9ad9aadf36b566eb6c582b843582ad73324b28af SHA512 9b151d334cdd29325e16d16585623f6100e9e3464f3e60de9dc4aec094300d684569bc611235dccf37abe2232dae9967e48447b835dd5827472785ab61d43c80 +DIST rust-1.86.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b7365bb0f74a12de2e80b4579323b3ae3b3e65460a216cad7c8f61d4fb4bb86bb55cc25721a6cbd8be5b2b5a92aec7601950d2f1b04f94644a890c91966bc20f SHA512 d57cd3221f0d1dbfe69dbe4c5417b0e2d292a09fa892ed46ea90df95b6502c5d0e54eb4916f1289041758dbcc30cd6910f2bd4edc99f2711abb6a9e246361c6b +DIST rust-1.86.0-x86_64-unknown-linux-musl.tar.xz 283110076 BLAKE2B 9881d9dc7ac8e1f6cdf632131b31eae7404d17f76d38873509e4b8e549e00c37dfef3bdb0663a20b6fb13dc8198a6d25f74931d6f7e4d017400420a6032ab374 SHA512 abb2d6ccc009840b32e48755b2af2a7f2b04eafe285e5c2f35593bf3219e12cfb8ce9e15429cf2315bc5a0ee5103d3b64c7eea121cb77cb8ff2e699bd685bf88 +DIST rust-1.86.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 9dbec80a7661d103e0b0a2187bd524eb5a4f255e6a15ac4bf59f82eb0b5710ef09dec0f35dd0e3015d374c701c2945ddc510a05c5bad2287ce855c30c0460935 SHA512 9664e026d85ed42227680c385bfc42a2cdfdb3a37858ced5cfcf2f7baec4840e01fc0e3e581fba1297a55245864f3d1483f430fc58295b98b84814df07f73c0c 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 @@ -559,22 +561,22 @@ DIST rust-src-1.84.0.tar.xz 3016148 BLAKE2B e948d4edb88f81ecfb49f56a3ca6331c4e9d DIST rust-src-1.84.1.tar.xz 3016012 BLAKE2B c9edeaf0797a22e384c54b3fe3e7c833464c09f8828474e05400a561a369d836626387caa495689e4b14fad691a85d6859098c84347211a6f79e2ef2c8d9d6f2 SHA512 564c440a05b67fd3a5dcb4dea21800d32ae65ca12230b804b5efa4bd468fe1b185bd7ed89041782018f70f60afd7554d7755edbe20e9cdc930a9fad390deb317 DIST rust-src-1.85.0.tar.xz 3036988 BLAKE2B b7281b23eef60cf052e1641a29915c02c590166a73e5ae75890072ce80f95a2ab71cead3e3da7adf757ec0352d1dcc87ba4c3070282a27657b34420fe24a0c16 SHA512 613cfa603dc457cee34b154acef9573d766ce5757c9e8342b13d362f2e62b4cee47071a59df9fd5fa42ecade1a9efdada5784402aaf7254d5996558533bff8db DIST rust-src-1.85.1.tar.xz 3036412 BLAKE2B f137ffcebd2d231d8b3dc5c9072f6afe39a071bc9608ac468bca364fafaa9c277b91e40da870a083c802cc13b9b876a548d7fa8ae67ad9552321a7412b7d8cd8 SHA512 d230cbb1daae3e2f5168abef94c5b99fb118c34a980f018d5df3e43f6ead4e0a17d6ea29bcfbcd0fb745e215f7a4d0282a99a714dba77b98a16254bb27c2d2ad -DIST rust-src-1.86.0_beta20250323.tar.xz 3053816 BLAKE2B e8f2b6ec82d9a414c2076969f1a40621bcf1b482787b2103c8e23543a1993123dce5c61e7b7cf96d1a9699d02382cf3f89d097a7aba1cea3aa5d91e148346dfa SHA512 62ad389bed89424dbd13673f4c905c7c70ed9cf48a68f1bb6ff05c50611483ce88b949d54263a6317a10db01a1d28a4642010a3a5a99e784e490b33847d86808 -EBUILD rust-bin-1.71.1-r102.ebuild 7569 BLAKE2B 6a90be3ab0cd5104b2ec5b9dca4f75b806cc48576f27a3cb84475ce4c8c6b7eaaa09a090d2f203675835b4197bd135491449278a2f8e1f65d34a5b0151c65174 SHA512 f9e1aad059225a6cb45d88c733c6c58b12db1cf046171c9be59f39b7904013b1a67b949bf8bbaa8285b20f7f45037b29a11ffc99e24a087cc9f19f93b25aca1d -EBUILD rust-bin-1.74.1-r102.ebuild 7468 BLAKE2B f8e0ef5f3a53f862c10c100ffd886eee06c1b7543856e154756884467f8115bdaa39569a47d789166d625f68f53a657eb535b29ba76aa363d15699ae65c0b3c4 SHA512 9df89cf28b5300a0023915138a05d74b6219632d6e95b056f412070302270e4101b7de5edcb881f917e5c32b787711996b7fb05355d915174764257d75735083 -EBUILD rust-bin-1.75.0-r102.ebuild 7468 BLAKE2B 026bd2e1337b6f6e4922e857d9ab07d4aa2311688aa9743c1b8c6a04ae63605bb5d66f429b03196f1fb4adbd64007f5421f0c26f3b04ee544926296a4e4c3499 SHA512 984d8dcc758db097f013864d619f70509ff32b530bdc77d92c45aee0ae097b612dd2fe0f0e82570fb8fb753645c530b44e02b87465e6f95490ac08789ae123f7 -EBUILD rust-bin-1.76.0-r101.ebuild 6841 BLAKE2B 0a2f4c01bf5f77264e0d879ecb42535fd70b1167cd96be38cc5f25098fbbac36ebaa786290b8ca08e95218c4de2339bb2bf7f1c4aba87bf9a5b54c6bfb19210e SHA512 918f8e38f0740606b0537c45810b91fd8eddbadcec63018d22981ede24f493ecebbcf54aa936300c3f56ef1d2ce93fe0a47d86c862b9a6b465dddf6043667054 -EBUILD rust-bin-1.77.1-r102.ebuild 7507 BLAKE2B 50bdfc349a1969d1c23a48171fc8e1672e19d0156d931c75d6a70e6ba2055973d578227971677d68f6a83ab20d6a379a61ee495261837eb0e2030ad8ff83cc7b SHA512 d75cd61fcb9f823b8d86dfd065af8a1ad29f0a677c22d5401a2eafc00d5da3ee21f1eca984b3cb12d01bcc579c5b936c19b50116355e7ecb3fe9af5ac8293e43 -EBUILD rust-bin-1.78.0-r102.ebuild 7842 BLAKE2B c1444d579ab6c91a82ad7f001930a765ee8d0f4b86a44769853df1dd5d7b70e18257f2810ba7229ec5f9e4e2fdcf2723b063b100813b589490e49f53a07f45d0 SHA512 5cdc9976d4cfff9908f20f9e88b33eeccc551234960aaa0abd68e59c1ceaf1d13b77ed1db02610a35048d85d3ca1b337434b21096411ae2508adb995ea2a4b2a -EBUILD rust-bin-1.79.0-r103.ebuild 7842 BLAKE2B c1444d579ab6c91a82ad7f001930a765ee8d0f4b86a44769853df1dd5d7b70e18257f2810ba7229ec5f9e4e2fdcf2723b063b100813b589490e49f53a07f45d0 SHA512 5cdc9976d4cfff9908f20f9e88b33eeccc551234960aaa0abd68e59c1ceaf1d13b77ed1db02610a35048d85d3ca1b337434b21096411ae2508adb995ea2a4b2a -EBUILD rust-bin-1.80.1-r103.ebuild 7842 BLAKE2B c143d63ce8046d461f1a435d29a582d3e1d987291dea6a47deb95dbd7aed19d0034ba02792dc82ce9c50340925dd8b7aaf9c469e9cd7688490b9b70fdfaf1407 SHA512 2f91114f6d82cb9ccf4bd6e0905cbe33a18f83783f00db83ae58b4d4326b37e63aa7e4e9d441e3d04191e809f4259972b958c6fa09759773a294a44e01fa0c89 -EBUILD rust-bin-1.81.0-r103.ebuild 7768 BLAKE2B 8d4f88d4e81bf1003e42f6fd4b5f6442b49c5b0422b29054ae33a0be67c7416ae096b00311cadbb7a951d27b1eb4213e5185d8d633f8de961dfc9bcd08067fce SHA512 4ede6ad19626537878e0bc416274be19aff2d06776372f54a54a2bc5b63ea8d3ff0a00150d998e8c29bb862fd17acaf154adcfe1c0389e5a5dbbf53132f8369d -EBUILD rust-bin-1.82.0-r103.ebuild 7796 BLAKE2B 0deef6089e8367ecd6d00bedf195e89e1f9c221df35454afbdf8fb523ac16eb72a6858dfd6821c9cc4ae170902b0c6dc3f7919419f4de22801153f7caca5a7ad SHA512 2a356772507a0759e0650aa90959d56feb057e1a223cc09b2a53ecf40ae0ca51bcc2247a36da6615504cb9518897dfeae513305e1d47caf455fe2956c4f4d255 -EBUILD rust-bin-1.83.0-r2.ebuild 7778 BLAKE2B 1c5bbb409a74d5d4c80f41cc909635e0c8eb6d8ebf83388c56216f5f5be5cf8c99ef719154a2091508620bc7f765b5098b86ec2a9a31f89fef22a8c563d4bcf1 SHA512 4bc009b4bd35c828eed84e1ed645ce7ff097ffbe03feb3b8d2350b895d9147f1925ff48423a4a86efe5747fc2d83398b17fd446c4f86b945295c2656e8d9cba7 -EBUILD rust-bin-1.84.0-r2.ebuild 7785 BLAKE2B 3c77531f6388de3063f4c34b7fdfebe6f1806fc8e9e4546ef683aa53b9754baef480be52ef08ca84f139312f8d620d2632be8ade920f006fe24386e1a3fe2a10 SHA512 37639ee057c9ac217416e9bf09e32be3f8436ab280a5afe7b7510b8e1efddc695a6ddf800661d382760320850ff101a6e214c686cb8b48c58aa5864233727862 -EBUILD rust-bin-1.84.1-r2.ebuild 7778 BLAKE2B e00b6cda1cbdc70ad3b33ae2625df528214e0975f5e12ec07baec5808eeed6e1de01d34334875efd9059fa3084b699c469afe4e4cec50e43bb5a1ce6f291d51f SHA512 b996e931d7fa1bf7b7c2984316c6cf7f512cdc13c20c059db8bf55621a88140b093961777b2cee6429fa0bed0b66fe8fae8468afa130da0dbdd160c352d33a99 -EBUILD rust-bin-1.85.0-r1.ebuild 10855 BLAKE2B ceb4cb4039ba3120962ccc0cd36cf9964925a0dd53b48e4c7532cdf5b36f864a3bbb2f1a64ca532b7e24e0b4651d58e957036332ba138b871c876c2198f46abf SHA512 aaee56b5a800b25ec016f34413ecd84fe2bca179d2df11a8909d32a846528004a7e40dd32b7c53aa821b4747556ef13e7259c38bb1030960503601b8e3ad4563 -EBUILD rust-bin-1.85.1.ebuild 10855 BLAKE2B 5b78dc491547ebdd31a00db0ba489d7f435f3e2398ac632da90e04762af6815731bb5aa761a46228c20e9649672144eab7656fe112f56b44f8b1b596e7198559 SHA512 ff3300ed97ab618276072416c746f1317decfc0dd37741d647e32107756c507e9b841f055ad5d2d3019c6efe366ff38a405597965abd22051242a0df888851a4 -EBUILD rust-bin-1.86.0_beta20250323.ebuild 10798 BLAKE2B 671d50e2ffcead1bbb5731ae3a78fd5d688b3070885ab8ad20a39a7b5b0db4e3c8b39a4651c03b2fc15b4ba662c227ac65a1cb0a7cb894a7f1b9c128e0005267 SHA512 116b3e538b32f80472e7966db8f9c6253571eec6a403146632b322cd0d4f6dd1571f1d83f47afb644ff594ca50d8325ff05093b0cae4d794a14879869cd87a26 -EBUILD rust-bin-9999.ebuild 10831 BLAKE2B 8c5925157322aad9d43d2aadb0e37fc6fccbfdee769ca1e3824f8512c1ce5438a5f8155a0677b8fb6674ef69ab1214215a2fc6d3ede1c57890d6f4d1f330c8a1 SHA512 66a0b47cd1b8b458ac555e764da9dd0b44fe4cd470376bd7afd520776959600a0eb01cbf28f12adab0f081fa44981873013d18d29af6fe8869db33323dfbaa2c +DIST rust-src-1.86.0.tar.xz 3053544 BLAKE2B 2d1d8a4be4f9dc9355ce9a2d1599e0a57c5d1cb32f7b2eb413f6009dbce7d63db2533dc038cf50f5277a2d7bf4434f2076632c12a6fd33335ccf3a9f2ab685d1 SHA512 2818d94412bb0766ce53383932cd8ce96275a8e923f916c4bf7116fbcb7c2053cfb9714667add1a9d50b18366c973ba3ab4fe55d49c8abc8cc57656635c59f63 +EBUILD rust-bin-1.71.1-r102.ebuild 7370 BLAKE2B 5a0c5f6681061f891c7c0c96da9844a37ce1d9ee25e241b1e81550a4e0660f824d6bbd7828e9905b5314888fb519f7aea9d8d56d0f9208079d177560977403c4 SHA512 5851f7ebcd6ae3da5fc511190e6f79b9bd57e84194b0e17d5305b08e73fcc560302e982d95d053c4c96fa8bb7004697c6630c51f21613ddb1320bf2936f6cdcc +EBUILD rust-bin-1.74.1-r102.ebuild 7269 BLAKE2B 3a9cb52a2d71e828a7b63c9f8b391554f4e2ab2ebee0d54c8970c3ffffbaf717f24a11285637d579293a41f725af667080f0d2b1f01c9ac326ed1561b5750aaf SHA512 df0dd36ef335dc9f8d1b80c0c4fb83f1686bb44ec5cd4c1e093c2b22efab073a6512176c5e2290bb849aa8d5a48ce52dca11639e523d29abb9a5d099b2490c37 +EBUILD rust-bin-1.75.0-r102.ebuild 7269 BLAKE2B 0613e52f80808ab78751e67836b9683cb391516f803ba029a74b0f73041dd1216759d1d9b7ba0ecbdbd013f680ec9f1576b642986255c6f27a1a0415e2534715 SHA512 67d96345d9d172802601fcfc64c8c54a4ea3a09721887aa68c7288343769884a88b073b2559955f35bffa3369c8f7c65af6e81a9ed7a75f796ab262221966cd5 +EBUILD rust-bin-1.76.0-r101.ebuild 6642 BLAKE2B c11116afd8b3b8bfaed532b6399c09a6f4919a738b68fa17a589cf2b75a4dc9a959665ab5989492cd2fae3b914ff29ec032a7d9695252698ef8433a43000a26e SHA512 1b4410135545b3e02f6747a2ac0d9330ec8b2668e84c4b6fee5ebbb18bef9cb6549460a40a6441d8966d3d82903a47a2804a894e1a1b8f7564663461d2fa151b +EBUILD rust-bin-1.77.1-r102.ebuild 7308 BLAKE2B bba0c0cac1a80e88f8d95af4534621e33d07555efbf10ff222761277a49112b46b6221ca5fe5cc44188495a2969ac482abeb4810e99c44b4017b762162c25d64 SHA512 aa0f12f6512297708ba5c6c6c815b90d1ec8b06801e20bd8a315dcaccb03247290f29ca98d1094ff4b26d90cbaf99232662f67213395281f1440418698ed3d31 +EBUILD rust-bin-1.78.0-r102.ebuild 7643 BLAKE2B 6f812ab45be313495a55dbf69ae12fe409168e2d80081713557702c3868bc4c4c3b3ad4b17a414909b89e11caffe4f7680e15e7f8eb416b051f0fc7ea67f0d73 SHA512 b161d8dae04c3266e5214508cb6f4e590c571e8b5813ffcdd1e0a4fb1ff1af52d8d5aba016274be0e0b3a44511a3cc89c146623c1d6680df5ef176d2c31d3395 +EBUILD rust-bin-1.79.0-r103.ebuild 7643 BLAKE2B 6f812ab45be313495a55dbf69ae12fe409168e2d80081713557702c3868bc4c4c3b3ad4b17a414909b89e11caffe4f7680e15e7f8eb416b051f0fc7ea67f0d73 SHA512 b161d8dae04c3266e5214508cb6f4e590c571e8b5813ffcdd1e0a4fb1ff1af52d8d5aba016274be0e0b3a44511a3cc89c146623c1d6680df5ef176d2c31d3395 +EBUILD rust-bin-1.80.1-r103.ebuild 7643 BLAKE2B 1b24ae1d19e36af4365fd8f8404b250bf8e06b056b544308b6b0143ae699b35acc49886708ef62026076072cf6008eeca1b1b436b0d6989565d0ab509e603942 SHA512 cbbeb30668936bc865c209528dc719b8127691ea306484a454c486bf550b8660d336672147711bb7a0c26a403b5593f00c2069e41a26a7323e68677a72dd3ffe +EBUILD rust-bin-1.81.0-r103.ebuild 7569 BLAKE2B ca1b88cf4b2863ce2e834e46dca7a5a5f5b6ea723f1c08db15c5361dae09e47ebd51ede178d1e168a039ab437ac11ac61ee6b486391f12285a84b7e764048d56 SHA512 3f5ccdc164682f8ea6a86e5517cb41800a2253e3622759be8716adfb64bfe2e1cc6663bc6bd8354147ecb6cca1a6ac6568317ed01e492dd5a26ad3b6de0fd9f9 +EBUILD rust-bin-1.82.0-r103.ebuild 7597 BLAKE2B 84d4aebd8b60e8e65cd4f2c1af4b7a9cce5d20260b05e1402d30e76cd226dcfdefc8a7acd078b7b2064293fa4e588552f587f800030bdc56af3bd6cc31cfc2d0 SHA512 3d861cacba108f206fa1d2ed2af5348ee23095f2ddaec6819d76b00fcac5a17208636776be32c5fe98cadf53f542626dc11c444572c301d70a61d68af6d27e15 +EBUILD rust-bin-1.83.0-r2.ebuild 7579 BLAKE2B 09c7d0c1d08a7c4026359fc2407ca6c99f6a5c929fc96e4a70a106b7a9229e7232ac56e365161b05e81d30bf1630be5a3cc86c73cac8286ed7fccc9cfa1d8edc SHA512 d197e7b2ce1d92f645c5f8d2bf87954e3fbba78385cd02ddce8db27dc18dfae30d2272e7442df91dce9f7ee92f11b85224810340dd8ca663c642ae6419c19b36 +EBUILD rust-bin-1.84.0-r2.ebuild 7586 BLAKE2B 1bb79a16c888c18c0f7df1eba195a235671c63b6f5a186fbb1f5af802d2fd6c40e5b8c0bbe44d9bc7bcf92ceac80c54be091431770b12ae58f95e5b6b4ce6567 SHA512 42553342e853767a4822dda766a90dfe1d81369eb6f18246ffea3b25d3acb34c485bd994488039c10490203ef201cd8a9513168eab5e5dd3b8f0a7c6be8c40cc +EBUILD rust-bin-1.84.1-r2.ebuild 7579 BLAKE2B 835feb0e183fecaa2c029f531152a40ca3a91bff3dae93b0dbc26551e591217595db972e3523163d3086f99e5a456478b2a7ea089638883e4be688968b437790 SHA512 deb5aa07dc5de17c274fb207b631cc32973fb894d2387b27ada3eb5846deb37c4589755f90d746dbc6cae799108d2517c06ccca5580df0d6e472a5d114c834fc +EBUILD rust-bin-1.85.0-r1.ebuild 10656 BLAKE2B 633a942647b42dceae3603acde09e66f548170aeb8ab66b39e62211dfdef5b03b66029d8770bdfa4f62f78721da35e5ef8fcc058f2e127664ad62435117b6a26 SHA512 78de1b55beb14d95116f8a1b1aa641ffcfb64abe9911af2e0e7602ebef791ba0be13a44baf786c1f4e09f3168b24e72a6d26fb7a3019fa1e037e7aac18a43dfb +EBUILD rust-bin-1.85.1.ebuild 10656 BLAKE2B 6002184d345419e1605117b488134ad5294fbc252f2675966f06d5b5982705a0cf4a0107389503049ef4ecc407af5dac04449d8826622252c5335ceaf10bfdda SHA512 43e01d4a5483d3155695a3093e1d985445efe3bd141f1c38ff3fb85e9dcefd63982e14e2816c47eb780eb60bcc70e9cbb184501afa810f832bb168eb4f56cbf3 +EBUILD rust-bin-1.86.0.ebuild 10604 BLAKE2B eeef85de5783367c286a638668082c4a433d9ae4f17c324a5ed46579a8710d8fd57f36787f095999196e2c8e16fcd7ccda02f20a61712bfc8e932e0fc79a9774 SHA512 bf6fc2dde9fca68845bd285ca9405b26de5491494e2d342af7472e8f3d2bae3d08452df1d2ebe93773e599ea30915d85cfe7c6455a4dedae0b67238522913a45 +EBUILD rust-bin-9999.ebuild 10632 BLAKE2B 755fbd47c1fdf0fa57c9cb53790da15ab72ac175e8cabe010857571f855b1a20f68a079e21c65d6c87e1743faacb36706b94847e1a4855c315961a8c1e57f818 SHA512 ab46e7d53ff18b717524e29f70c34468e55bb82b69c1f4b9a130150f51061b99337976155140efe83f2360ec11d6c19e76c7498e71c157ef97451397c3db0387 MISC metadata.xml 1123 BLAKE2B 8beee99782782c58cb0c43f9fc5548bd8eec40d305ce8b916be2b78b65899eaaeda625225ff0c9724a93b2a350510c97171def95001059943501a6af9248310a SHA512 e944a0c04416ca40de6956d2d7a950e3c4be9f1b1754f0b46263fbdd2ace292b959bfb6a264ab479c0576a05835b4e44ed62260c181ce5590cb859e1dcdc0e41 diff --git a/dev-lang/rust-bin/rust-bin-1.71.1-r102.ebuild b/dev-lang/rust-bin/rust-bin-1.71.1-r102.ebuild index 4a8c1bec782e..0e1bf418b71d 100644 --- a/dev-lang/rust-bin/rust-bin-1.71.1-r102.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.71.1-r102.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 16 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal +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" @@ -74,12 +74,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { # sadly rust-src tarball does not have corresponding .asc file # so do partial verification diff --git a/dev-lang/rust-bin/rust-bin-1.74.1-r102.ebuild b/dev-lang/rust-bin/rust-bin-1.74.1-r102.ebuild index e7490ef7bbbf..c81cc6ffbdd6 100644 --- a/dev-lang/rust-bin/rust-bin-1.74.1-r102.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.74.1-r102.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 17 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal +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" @@ -70,12 +70,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { # sadly rust-src tarball does not have corresponding .asc file # so do partial verification diff --git a/dev-lang/rust-bin/rust-bin-1.75.0-r102.ebuild b/dev-lang/rust-bin/rust-bin-1.75.0-r102.ebuild index bb60f0c714ad..be6823b603c5 100644 --- a/dev-lang/rust-bin/rust-bin-1.75.0-r102.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.75.0-r102.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 17 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal +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" @@ -70,12 +70,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { # sadly rust-src tarball does not have corresponding .asc file # so do partial verification diff --git a/dev-lang/rust-bin/rust-bin-1.76.0-r101.ebuild b/dev-lang/rust-bin/rust-bin-1.76.0-r101.ebuild index a1a14f630402..6139f1a663e7 100644 --- a/dev-lang/rust-bin/rust-bin-1.76.0-r101.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.76.0-r101.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 17 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal +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" @@ -57,12 +57,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { # sadly rust-src tarball does not have corresponding .asc file # so do partial verification diff --git a/dev-lang/rust-bin/rust-bin-1.77.1-r102.ebuild b/dev-lang/rust-bin/rust-bin-1.77.1-r102.ebuild index 701e6ea24605..d2f7a34c7653 100644 --- a/dev-lang/rust-bin/rust-bin-1.77.1-r102.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.77.1-r102.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 17 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal +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" @@ -70,12 +70,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { # sadly rust-src tarball does not have corresponding .asc file # so do partial verification diff --git a/dev-lang/rust-bin/rust-bin-1.78.0-r102.ebuild b/dev-lang/rust-bin/rust-bin-1.78.0-r102.ebuild index 1b4245794425..21708bd51e28 100644 --- a/dev-lang/rust-bin/rust-bin-1.78.0-r102.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.78.0-r102.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 18 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal +inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal MY_P="rust-${PV}-r101" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" @@ -77,12 +77,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { # sadly rust-src tarball does not have corresponding .asc file # so do partial verification diff --git a/dev-lang/rust-bin/rust-bin-1.79.0-r103.ebuild b/dev-lang/rust-bin/rust-bin-1.79.0-r103.ebuild index 1b4245794425..21708bd51e28 100644 --- a/dev-lang/rust-bin/rust-bin-1.79.0-r103.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.79.0-r103.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 18 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal +inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal MY_P="rust-${PV}-r101" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" @@ -77,12 +77,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { # sadly rust-src tarball does not have corresponding .asc file # so do partial verification diff --git a/dev-lang/rust-bin/rust-bin-1.80.1-r103.ebuild b/dev-lang/rust-bin/rust-bin-1.80.1-r103.ebuild index 9f33d6b27976..106d34677112 100644 --- a/dev-lang/rust-bin/rust-bin-1.80.1-r103.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.80.1-r103.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 18 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal +inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal MY_P="rust-${PV}-r101" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" @@ -77,12 +77,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { # sadly rust-src tarball does not have corresponding .asc file # so do partial verification diff --git a/dev-lang/rust-bin/rust-bin-1.81.0-r103.ebuild b/dev-lang/rust-bin/rust-bin-1.81.0-r103.ebuild index 1f1b15fc8244..9a5f6a563c14 100644 --- a/dev-lang/rust-bin/rust-bin-1.81.0-r103.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.81.0-r103.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 18 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature +inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature MY_P="rust-${PV}-r101" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" @@ -77,12 +77,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { # sadly rust-src tarball does not have corresponding .asc file # so do partial verification diff --git a/dev-lang/rust-bin/rust-bin-1.82.0-r103.ebuild b/dev-lang/rust-bin/rust-bin-1.82.0-r103.ebuild index 9ac8de92f2e8..de51bd867a30 100644 --- a/dev-lang/rust-bin/rust-bin-1.82.0-r103.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.82.0-r103.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 19 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature +inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature MY_P="rust-${PV}-r102" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" @@ -77,12 +77,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { # sadly rust-src tarball does not have corresponding .asc file # so do partial verification diff --git a/dev-lang/rust-bin/rust-bin-1.83.0-r2.ebuild b/dev-lang/rust-bin/rust-bin-1.83.0-r2.ebuild index 6f9f25068b5f..8d5e2520190e 100644 --- a/dev-lang/rust-bin/rust-bin-1.83.0-r2.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.83.0-r2.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 19 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature +inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature MY_P="rust-${PV}-r2" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" @@ -77,12 +77,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { # sadly rust-src tarball does not have corresponding .asc file # so do partial verification diff --git a/dev-lang/rust-bin/rust-bin-1.84.0-r2.ebuild b/dev-lang/rust-bin/rust-bin-1.84.0-r2.ebuild index 99ff19978b18..8db5ba347138 100644 --- a/dev-lang/rust-bin/rust-bin-1.84.0-r2.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.84.0-r2.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 19 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature +inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature MY_P="rust-${PV}-r1" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" @@ -77,12 +77,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { # sadly rust-src tarball does not have corresponding .asc file # so do partial verification diff --git a/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild b/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild index c55c998662ee..6a6e4ce8b3d2 100644 --- a/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 19 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature +inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature MY_P="rust-${PV}-r1" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" @@ -77,12 +77,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { # sadly rust-src tarball does not have corresponding .asc file # so do partial verification diff --git a/dev-lang/rust-bin/rust-bin-1.85.0-r1.ebuild b/dev-lang/rust-bin/rust-bin-1.85.0-r1.ebuild index f76a83693d43..eefb28154549 100644 --- a/dev-lang/rust-bin/rust-bin-1.85.0-r1.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.85.0-r1.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 19 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature +inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack @@ -98,12 +98,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { if [[ ${PV} == *9999* ]]; then # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch diff --git a/dev-lang/rust-bin/rust-bin-1.85.1.ebuild b/dev-lang/rust-bin/rust-bin-1.85.1.ebuild index 614b762194a8..a16975a34420 100644 --- a/dev-lang/rust-bin/rust-bin-1.85.1.ebuild +++ b/dev-lang/rust-bin/rust-bin-1.85.1.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 19 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature +inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack @@ -98,12 +98,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { if [[ ${PV} == *9999* ]]; then # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch diff --git a/dev-lang/rust-bin/rust-bin-1.86.0.ebuild b/dev-lang/rust-bin/rust-bin-1.86.0.ebuild new file mode 100644 index 000000000000..a206a464e115 --- /dev/null +++ b/dev-lang/rust-bin/rust-bin-1.86.0.ebuild @@ -0,0 +1,318 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +LLVM_OPTIONAL="yes" + +inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature + +if [[ ${PV} == *9999* ]]; then + # We need to fetch a tarball in src_unpack + PROPERTIES+=" live" +elif [[ ${PV} == *beta* ]]; then + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep "xz_url.*rust-src" + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + RUST_TOOLCHAIN_BASEURL=https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/ + SRC_URI="$(rust_all_arch_uris rust-beta rust-${PV}) + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/rust-src-beta.tar.xz -> rust-src-${PV}.tar.xz ) + " +else + # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" + SRC_URI="$(rust_all_arch_uris "rust-${PV}") + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-04-03/rust-src-${PV}.tar.xz ) + ppc64? ( elibc_musl? ( !big-endian? ( + $(rust_arch_uri powerpc64le-unknown-linux-musl rust-${PV}) + ) ) ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} != *9999* && ${PV} != *beta* ]] && false ; then + GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PV}" # omit trailing slash + MY_P=rust-${PV} + # Keep this separate to allow easy commenting out if not yet built + SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) " + SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/${MY_P}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) + )" + SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-riscv64gc-unknown-linux-musl.tar.xz ) + )" + SRC_URI+=" ppc64? ( big-endian? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/${MY_P}-powerpc64-unknown-linux-musl.tar.xz ) + ) )" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="$(ver_cut 1-2)" +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" + +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + sys-apps/lsb-release + || ( + llvm-runtimes/libgcc + sys-devel/gcc:* + ) + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" +[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +# stripping rust may break it (at least on x86_64) +# https://github.com/rust-lang/rust/issues/112286 +RESTRICT="strip" + +QA_PREBUILT=" + opt/rust-bin-${SLOT}/bin/.* + opt/rust-bin-${SLOT}/lib/.*.so* + opt/rust-bin-${SLOT}/libexec/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.* +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch + local rust_bin_url rustc_src_url + # Cut down on webrequests by fetching the nightly toml once + curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || + die "Failed to fetch nightly revision info" + rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + einfo "Using nightly Rust from: ${rust_bin_url}" + + if use rust-src; then + einfo "Using nightly Rust-src from: ${rustc_src_url}" + # We need to fetch the rust-src tarball + einfo "Fetching nightly rust-src tarball ..." + curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || + die "Failed to fetch nightly rust-src tarball." + # no verify-sig here, just unpack it + tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" + fi + + einfo "Fetching nightly Rust tarball ..." + curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball" + if use verify-sig; then + einfo "Fetching nightly signature ..." + curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature" + verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \ + "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc" + fi + tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball" + else + # sadly rust-src tarball does not have corresponding .asc file + # so do partial verification + if use verify-sig; then + for f in ${A}; do + if [[ -f ${DISTDIR}/${f}.asc ]]; then + verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" + fi + done + fi + + default_src_unpack + + fi + case ${PV} in + *9999*) + mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die + ;; + *beta*) + mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die + ;; + *) + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die + ;; + esac +} + +patchelf_for_bin() { + local filetype=$(file -b ${1}) + if [[ ${filetype} == *ELF*interpreter* ]]; then + einfo "${1}'s interpreter changed" + patchelf ${1} --set-interpreter ${2} || die + elif [[ ${filetype} == *script* ]]; then + hprefixify ${1} + fi +} + +rust_native_abi_install() { + pushd "${S}" >/dev/null || die + local std="$(grep 'std' ./components || die "std not found in components")" + local components=( "rustc" "cargo" "${std}" ) + use doc && components+=( "rust-docs" ) + use clippy && components+=( "clippy-preview" ) + use rustfmt && components+=( "rustfmt-preview" ) + if use rust-analyzer; then + local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" + components+=( "rust-analyzer-preview" "${analysis}" ) + fi + # Rust component 'rust-src' is extracted from separate archive + if use rust-src; then + einfo "Combining rust and rust-src installers" + case ${PV} in + *9999*) + mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die + ;; + *beta*) + mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die + ;; + *) + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + ;; + esac + echo rust-src >> ./components || die + components+=( "rust-src" ) + fi + edo ./install.sh \ + --components="$(IFS=,; echo "${components[*]}")" \ + --disable-verify \ + --prefix="${ED}/opt/rust-bin-${SLOT}" \ + --mandir="${ED}/opt/rust-bin-${SLOT}/man" \ + --disable-ldconfig + + docompress /opt/${P}/man/ + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${SLOT}/bin" + find "${ED}/opt/${SLOT}/bin" -type f -print0 | \ + while IFS= read -r -d '' filename; do + patchelf_for_bin ${filename} ${interpreter} \; || die + done + eend $? + fi + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /opt/rust-bin-/bin/rustc- + local ver_i="${i}-bin-${SLOT}" + ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die + dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" + $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" + fi + if use rust-analyzer; then + echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi; then + rust_native_abi_install + else + local rust_target + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + dodir "/opt/${P}/lib/rustlib" + cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + "${ED}/opt/${P}/lib/rustlib" || die + fi + + # BUG: installs x86_64 binary on other arches + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die +} + +pkg_postinst() { + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust-bin/rust-bin-1.86.0_beta20250323.ebuild b/dev-lang/rust-bin/rust-bin-1.86.0_beta20250323.ebuild deleted file mode 100644 index 97bd2bca573d..000000000000 --- a/dev-lang/rust-bin/rust-bin-1.86.0_beta20250323.ebuild +++ /dev/null @@ -1,317 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 19 ) -LLVM_OPTIONAL="yes" - -inherit edo llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature - -if [[ ${PV} == *9999* ]]; then - # We need to fetch a tarball in src_unpack - PROPERTIES+=" live" -elif [[ ${PV} == *beta* ]]; then - # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep "xz_url.*rust-src" - betaver=${PV//*beta} - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" - RUST_TOOLCHAIN_BASEURL=https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/ - SRC_URI="$(rust_all_arch_uris rust-beta rust-${PV}) - rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/rust-src-beta.tar.xz -> rust-src-${PV}.tar.xz ) - " -else - # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" - SRC_URI="$(rust_all_arch_uris "${PV}") - rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-01-30/rust-src-${PV}.tar.xz ) - " - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -fi - -GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash - -DESCRIPTION="Systems programming language from Mozilla" -HOMEPAGE="https://www.rust-lang.org/" - -if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then - # Keep this separate to allow easy commenting out if not yet built - SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-sparc64-unknown-linux-gnu.tar.xz ) " - SRC_URI+=" mips? ( - abi_mips_o32? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips-unknown-linux-gnu.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mipsel-unknown-linux-gnu.tar.xz ) - ) - abi_mips_n64? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64-unknown-linux-gnuabi64.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64el-unknown-linux-gnuabi64.tar.xz ) - ) - )" - SRC_URI+=" riscv? ( - elibc_musl? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-riscv64gc-unknown-linux-musl.tar.xz ) - )" - SRC_URI+=" ppc64? ( elibc_musl? ( - big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64-unknown-linux-musl.tar.xz ) - !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64le-unknown-linux-musl.tar.xz ) - ) )" -fi - -LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" -SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable -IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" - -RDEPEND=" - >=app-eselect/eselect-rust-20190311 - dev-libs/openssl - sys-apps/lsb-release - sys-devel/gcc:* - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" -BDEPEND=" - prefix? ( dev-util/patchelf ) - verify-sig? ( sec-keys/openpgp-keys-rust ) -" -[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" - -REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" - -# stripping rust may break it (at least on x86_64) -# https://github.com/rust-lang/rust/issues/112286 -RESTRICT="strip" - -QA_PREBUILT=" - opt/rust-bin-${SLOT}/bin/.* - opt/rust-bin-${SLOT}/lib/.*.so* - opt/rust-bin-${SLOT}/libexec/.* - opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* - opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.* -" - -# An rmeta file is custom binary format that contains the metadata for the crate. -# rmeta files do not support linking, since they do not contain compiled object files. -# so we can safely silence the warning for this QA check. -QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" - -VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" - -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - -src_unpack() { - if [[ ${PV} == *9999* ]]; then - # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch - local rust_bin_url rustc_src_url - # Cut down on webrequests by fetching the nightly toml once - curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || - die "Failed to fetch nightly revision info" - rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) - rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) - einfo "Using nightly Rust from: ${rust_bin_url}" - - if use rust-src; then - einfo "Using nightly Rust-src from: ${rustc_src_url}" - # We need to fetch the rust-src tarball - einfo "Fetching nightly rust-src tarball ..." - curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || - die "Failed to fetch nightly rust-src tarball." - # no verify-sig here, just unpack it - tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" - fi - - einfo "Fetching nightly Rust tarball ..." - curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball" - if use verify-sig; then - einfo "Fetching nightly signature ..." - curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature" - verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \ - "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc" - fi - tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball" - else - # sadly rust-src tarball does not have corresponding .asc file - # so do partial verification - if use verify-sig; then - for f in ${A}; do - if [[ -f ${DISTDIR}/${f}.asc ]]; then - verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" - fi - done - fi - - default_src_unpack - - fi - case ${PV} in - *9999*) - mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die - ;; - *beta*) - mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die - ;; - *) - mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die - ;; - esac -} - -patchelf_for_bin() { - local filetype=$(file -b ${1}) - if [[ ${filetype} == *ELF*interpreter* ]]; then - einfo "${1}'s interpreter changed" - patchelf ${1} --set-interpreter ${2} || die - elif [[ ${filetype} == *script* ]]; then - hprefixify ${1} - fi -} - -rust_native_abi_install() { - pushd "${S}" >/dev/null || die - local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" - local std="$(grep 'std' ./components || die "std not found in components")" - local components=( "rustc" "cargo" "${std}" ) - use doc && components+=( "rust-docs" ) - use clippy && components+=( "clippy-preview" ) - use rustfmt && components+=( "rustfmt-preview" ) - use rust-analyzer && components+=( "rust-analyzer-preview" "${analysis}" ) - # Rust component 'rust-src' is extracted from separate archive - if use rust-src; then - einfo "Combining rust and rust-src installers" - case ${PV} in - *9999*) - mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die - ;; - *beta*) - mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die - ;; - *) - mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die - ;; - esac - echo rust-src >> ./components || die - components+=( "rust-src" ) - fi - edo ./install.sh \ - --components="$(IFS=,; echo "${components[*]}")" \ - --disable-verify \ - --prefix="${ED}/opt/rust-bin-${SLOT}" \ - --mandir="${ED}/opt/rust-bin-${SLOT}/man" \ - --disable-ldconfig - - docompress /opt/${P}/man/ - - if use prefix; then - local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) - ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${SLOT}/bin" - find "${ED}/opt/${SLOT}/bin" -type f -print0 | \ - while IFS= read -r -d '' filename; do - patchelf_for_bin ${filename} ${interpreter} \; || die - done - eend $? - fi - - local symlinks=( - cargo - rustc - rustdoc - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - use rustfmt && symlinks+=( rustfmt cargo-fmt ) - use rust-analyzer && symlinks+=( rust-analyzer ) - - einfo "installing eselect-rust symlinks and paths" - local i - for i in "${symlinks[@]}"; do - # we need realpath on /usr/bin/* symlink return version-appended binary path. - # so /usr/bin/rustc should point to /opt/rust-bin-/bin/rustc- - local ver_i="${i}-bin-${SLOT}" - ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die - dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" - dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" - dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" - dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" - - # make all capital underscored variable - local CARGO_TRIPLET="$(rust_abi)" - CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" - CARGO_TRIPLET="${CARGO_TRIPLET^^}" - cat <<-_EOF_ > "${T}/50${P}" - MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" - $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") - _EOF_ - doenvd "${T}/50${P}" - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" - fi - if use rust-analyzer; then - echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${PN}-${SLOT}" - popd >/dev/null || die -} - -multilib_src_install() { - if multilib_is_native_abi; then - rust_native_abi_install - else - local rust_target - rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" - dodir "/opt/${P}/lib/rustlib" - cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ - "${ED}/opt/${P}/lib/rustlib" || die - fi - - # BUG: installs x86_64 binary on other arches - rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die -} - -pkg_postinst() { - eselect rust update - - if has_version dev-debug/gdb || has_version llvm-core/lldb; then - elog "Rust installs helper scripts for calling GDB and LLDB," - elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - optfeature "emacs support for rust" app-emacs/rust-mode - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - optfeature "vim support for rust" app-vim/rust-vim - fi -} - -pkg_postrm() { - eselect rust cleanup -} diff --git a/dev-lang/rust-bin/rust-bin-9999.ebuild b/dev-lang/rust-bin/rust-bin-9999.ebuild index 6338d2da2419..e00494d54b3b 100644 --- a/dev-lang/rust-bin/rust-bin-9999.ebuild +++ b/dev-lang/rust-bin/rust-bin-9999.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 20 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal optfeature +inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack @@ -96,12 +96,6 @@ QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" -pkg_pretend() { - if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then - die "${CHOST} is not supported by upstream Rust. You must use a hard float version." - fi -} - src_unpack() { if [[ ${PV} == *9999* ]]; then # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch diff --git a/dev-lang/rust-common/Manifest b/dev-lang/rust-common/Manifest index 5d7b109f24f0..d63d021b47ef 100644 --- a/dev-lang/rust-common/Manifest +++ b/dev-lang/rust-common/Manifest @@ -8,13 +8,13 @@ DIST rustc-1.84.1-src.tar.xz 355078168 BLAKE2B 849e8c909493bf76ce9749b9dcb196718 DIST rustc-1.84.1-src.tar.xz.asc 801 BLAKE2B f3decd3470fd1eff33adbb376490a30eb8db28dd4176bde0fefe4f60acf79c3dd0e1a330d519b5319360136ea7d0a124f6720dea08617202d9e9298da992ccf6 SHA512 a241fe3efba293f3e872b74f09dd0d184e0239afd1416326d57bf1134d92721c65b187f5c99962b51671877a539f18e82d2d797c76af42615c11a8bb3905f796 DIST rustc-1.85.1-src.tar.xz 274028992 BLAKE2B 1dddbbc0d14fe9551fd2eb59a47521ac7eaf783b8ebf5e89d3e82b38f3f1539c14626a86b6530a47e5a967d47a04db7a3daef568eb5164f42d98b6826346cffe SHA512 d61afb4f00d0c63eef132e10ca5369202064ecad8ab5bcf4fbd62e9a20b2bd71840b2a769dadcf43452fc0448865975c9de1c129752caa9928d2757027bacf7c DIST rustc-1.85.1-src.tar.xz.asc 801 BLAKE2B 07409ef6c044b72394a28dfd5b5decb237ca540714010a4f81e4213a3bf7ffb2e14029789f930cea0dab115a6e986859f6cdefd3798be780c2ff21c3e5fa6593 SHA512 7f19653fd05c89390a4073f5184ca162863b7116cc4d8867a5aa4304568880707ebb9f9dda166d7d04f30b2df6ed223eedd98df1744f809773054edfcd2385ff -DIST rustc-1.86.0_beta20250323-src.tar.xz 275676660 BLAKE2B f86bc627ae6fc2abca4f274ef6b6b0702fe8c0f5f1b32af4a376992375786737da7f4c3b8f954b762ab04fae65f24afbd4658a286ddda1bacf0d3cf7d59f5168 SHA512 4768b2875f119e87a39596a45f7bbb02a00ea4d4516d080d6822934f8ff52f0af4430384d6a2366ddb2b0ddcaef4afb89438ecda829668522f2212f92d171b02 -DIST rustc-1.86.0_beta20250323-src.tar.xz.asc 801 BLAKE2B f8a278f2ee4a9a9ab608a326a420523268efd2fbbd77c9517a585bca5c1a48cf6ff7df8a8ba6c529d910fa66b0fa132dd3b602d8c9eaf675ce2bf1a2538096ec SHA512 20530c6cf689c43f96a8a6896d7eca46e225138708495b84422977e6d1a70ce7a3162c36d072b15b4c26e200576fe0a00cd937fb9a264f03492b64913a6d4985 +DIST rustc-1.86.0-src.tar.xz 275696736 BLAKE2B 9f33a710a3e567d92f56091920643f5ef2ddf2ad52acb5d9ee78496a7b5dbc10da5a51c72cf2a6f66d543a531d3138a49767c98501ae4e885e03988d2ccfbb59 SHA512 9ce195e24a03765f7163de16271e3d19d731d4b80fcc2bfd919106c9d42543eade018f712f6947ea3c6e57c6cb2e6841596aa668d608b8da15101a7da14f3097 +DIST rustc-1.86.0-src.tar.xz.asc 801 BLAKE2B 3e10a3894c7eee68d37bc5707d797548119f830667e27e652a199d13633199713bd01bd0f41a5f2af3c682561903e36abe27b36ef78d9a1d65bdf485527d2c15 SHA512 0b74dab9ee56d0a08e26e9cd40f722e4d99de63ac678f969f0c54d50737074fb28e170db5a36ce2627ec332e5ce3bb8a92167aefbccff7c70e4cb057bc0a94ac EBUILD rust-common-1.81.0.ebuild 1442 BLAKE2B 2fca9110584bab02d27116bb7384ef4cdc0cc42323b469473f76fa09bd15fd4dd24a4597769d453d12c8e06b4305614d50120099feaeb142c2aafe29dd610348 SHA512 b948bc84b48deb6249c61d977dde1489374f5e0df679540a254ce4211f148eb5fff00fa4970bc63a07d4d08328fa821cee1172c388ddd8b48c1c0117a1c0259d EBUILD rust-common-1.82.0.ebuild 1442 BLAKE2B 04d044c0a244ce4e62fd4a8ae096c29c1972677e61ea3c8dd267817deafcdfc305087dc17b021e82376f96888d2374a9de774dbeb6067ee335a2f41dc87918c3 SHA512 279e84b9fba7fcf68c7b8666882411dff77d056258f8e315c141b736a910377bec28020d11fe09ec42921ddeb746e34cf2b8ef3f0503d4578cd8faeb416f257e EBUILD rust-common-1.83.0.ebuild 1442 BLAKE2B 04d044c0a244ce4e62fd4a8ae096c29c1972677e61ea3c8dd267817deafcdfc305087dc17b021e82376f96888d2374a9de774dbeb6067ee335a2f41dc87918c3 SHA512 279e84b9fba7fcf68c7b8666882411dff77d056258f8e315c141b736a910377bec28020d11fe09ec42921ddeb746e34cf2b8ef3f0503d4578cd8faeb416f257e EBUILD rust-common-1.84.1.ebuild 1442 BLAKE2B 04d044c0a244ce4e62fd4a8ae096c29c1972677e61ea3c8dd267817deafcdfc305087dc17b021e82376f96888d2374a9de774dbeb6067ee335a2f41dc87918c3 SHA512 279e84b9fba7fcf68c7b8666882411dff77d056258f8e315c141b736a910377bec28020d11fe09ec42921ddeb746e34cf2b8ef3f0503d4578cd8faeb416f257e EBUILD rust-common-1.85.1.ebuild 2243 BLAKE2B 554160cc1aab204f2102f1925cf5709e60f09dacb098f8f78e007b1b443fe26d6ef1714e6b9eeae33bfd50873f7f7dcb3435ad6431098479310da2752b39e6ff SHA512 8fd4d239e68e534c432e8f260d7e30a22a0a6206563c7baed353473564253197a1ce9b778da53b4c54be31913aebe0e66f770c2649b118ff5c8513c27e874b08 -EBUILD rust-common-1.86.0_beta20250323.ebuild 2243 BLAKE2B 554160cc1aab204f2102f1925cf5709e60f09dacb098f8f78e007b1b443fe26d6ef1714e6b9eeae33bfd50873f7f7dcb3435ad6431098479310da2752b39e6ff SHA512 8fd4d239e68e534c432e8f260d7e30a22a0a6206563c7baed353473564253197a1ce9b778da53b4c54be31913aebe0e66f770c2649b118ff5c8513c27e874b08 +EBUILD rust-common-1.86.0.ebuild 2248 BLAKE2B 7da41b3ba969dfea261774cfa77754aaa20a7e74d7e2d7b905f172e37ae70f7f05731d11d59b572eaddf44690ffb6f457f158fa1cfa57aaeebcaec3fce75f5ba SHA512 20086a6be7b0e3ac8b59a5710f4b0f429d854ddef5a000a87b11103befdabf2cb914d5cce281ced33e0eb484263c15ff31801f1f6b21aae93420f7587a97b7c8 EBUILD rust-common-9999.ebuild 2243 BLAKE2B 554160cc1aab204f2102f1925cf5709e60f09dacb098f8f78e007b1b443fe26d6ef1714e6b9eeae33bfd50873f7f7dcb3435ad6431098479310da2752b39e6ff SHA512 8fd4d239e68e534c432e8f260d7e30a22a0a6206563c7baed353473564253197a1ce9b778da53b4c54be31913aebe0e66f770c2649b118ff5c8513c27e874b08 MISC metadata.xml 324 BLAKE2B 25e471eacc689a8af7e0251146bf712b020a10d55e3cb48285f174996ec66db8bbd146d4737db15ac3b2abf3e1f0415277b9bdca84d94f9b08a56e9242a4fcbf SHA512 723c102ec7017eeb72bfd6f37c16e2705e61bb626a93e5127eca2275a9367cefbccdd846fe8a699bc1192ae52cafe236f3fb6261fa6db361564b34880a9db2fb diff --git a/dev-lang/rust-common/rust-common-1.86.0.ebuild b/dev-lang/rust-common/rust-common-1.86.0.ebuild new file mode 100644 index 000000000000..26c4792d0fb5 --- /dev/null +++ b/dev-lang/rust-common/rust-common-1.86.0.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc +inherit shell-completion verify-sig + +DESCRIPTION="Common files shared between multiple slots of Rust" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + # In case cargo is not in sync we'll fetch it as a submodule + # Nightly users will probably already have the repo cloned and up-to-date anyway. + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( "-*" "src/tools/cargo" ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + MY_PV=beta + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" +else + MY_PV=${PV} + SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="0" + +# Legacy non-slotted versions bash completions will collide. +RDEPEND=" + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-rust )" + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + git-r3_src_unpack + else + if use verify-sig ; then + verify-sig_verify_detached "${DISTDIR}"/rustc-${PV}-src.tar.xz "${DISTDIR}"/rustc-${PV}-src.tar.xz.asc + fi + + # Avoid unpacking the whole tarball which would need check-reqs + tar -xf "${DISTDIR}"/rustc-${PV}-src.tar.xz \ + "rustc-${MY_PV}-src/src/tools/cargo/src/etc/"{_cargo,cargo.bashcomp.sh} || die + fi +} + +src_configure() { + : +} + +src_compile() { + : +} + +src_install() { + newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo + dozshcomp src/tools/cargo/src/etc/_cargo +} diff --git a/dev-lang/rust-common/rust-common-1.86.0_beta20250323.ebuild b/dev-lang/rust-common/rust-common-1.86.0_beta20250323.ebuild deleted file mode 100644 index 223c50f26f33..000000000000 --- a/dev-lang/rust-common/rust-common-1.86.0_beta20250323.ebuild +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc -inherit shell-completion verify-sig - -DESCRIPTION="Common files shared between multiple slots of Rust" -HOMEPAGE="https://www.rust-lang.org/" - -if [[ ${PV} = *9999* ]]; then - inherit git-r3 - # In case cargo is not in sync we'll fetch it as a submodule - # Nightly users will probably already have the repo cloned and up-to-date anyway. - EGIT_REPO_URI="https://github.com/rust-lang/rust.git" - EGIT_SUBMODULES=( "-*" "src/tools/cargo" ) -elif [[ ${PV} == *beta* ]]; then - # Identify the snapshot date of the beta release: - # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz - MY_PV=beta - betaver=${PV//*beta} - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" - SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz - verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc - -> rustc-${PV}-src.tar.xz.asc ) - " - S="${WORKDIR}/rustc-${MY_PV}-src" -else - MY_PV=${PV} - SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz - verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc ) - " - S="${WORKDIR}/rustc-${MY_PV}-src" - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" -fi - -LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" -SLOT="0" - -# Legacy non-slotted versions bash completions will collide. -RDEPEND=" - !dev-lang/rust:stable - !dev-lang/rust-bin:stable -" -BDEPEND="verify-sig? ( sec-keys/openpgp-keys-rust )" - -src_unpack() { - if [[ ${PV} == *9999* ]]; then - git-r3_src_unpack - else - if use verify-sig ; then - verify-sig_verify_detached "${DISTDIR}"/rustc-${PV}-src.tar.xz "${DISTDIR}"/rustc-${PV}-src.tar.xz.asc - fi - - # Avoid unpacking the whole tarball which would need check-reqs - tar -xf "${DISTDIR}"/rustc-${PV}-src.tar.xz "rustc-${MY_PV}-src/src/tools/cargo/src/etc/"{_cargo,cargo.bashcomp.sh} || die - fi -} - -src_configure() { - : -} - -src_compile() { - : -} - -src_install() { - newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo - dozshcomp src/tools/cargo/src/etc/_cargo -} diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest index 958ffb0fef0b..0add75a46f45 100644 --- a/dev-lang/rust/Manifest +++ b/dev-lang/rust/Manifest @@ -50,8 +50,8 @@ DIST rustc-1.85.0-src.tar.xz 274011696 BLAKE2B 9cb1c5b9fa9b0ee8a3150d634b58f4d14 DIST rustc-1.85.0-src.tar.xz.asc 801 BLAKE2B 8168c984f69356898f7a51199f3250a51c58a6512463cd5011acdff8c63754ba196bb050dba95b73d37c7e6d4bbcd3d1cb471d067a6615cd81b8969394e3539a SHA512 b96fffde7eb3d98cca6abe44e671fd4752416357ab3180d2a09a60fc022ac03d10e64ae285ef6276b8d881d6154fd7398f46666f5a2ea6f3023ea38fd543f59e DIST rustc-1.85.1-src.tar.xz 274028992 BLAKE2B 1dddbbc0d14fe9551fd2eb59a47521ac7eaf783b8ebf5e89d3e82b38f3f1539c14626a86b6530a47e5a967d47a04db7a3daef568eb5164f42d98b6826346cffe SHA512 d61afb4f00d0c63eef132e10ca5369202064ecad8ab5bcf4fbd62e9a20b2bd71840b2a769dadcf43452fc0448865975c9de1c129752caa9928d2757027bacf7c DIST rustc-1.85.1-src.tar.xz.asc 801 BLAKE2B 07409ef6c044b72394a28dfd5b5decb237ca540714010a4f81e4213a3bf7ffb2e14029789f930cea0dab115a6e986859f6cdefd3798be780c2ff21c3e5fa6593 SHA512 7f19653fd05c89390a4073f5184ca162863b7116cc4d8867a5aa4304568880707ebb9f9dda166d7d04f30b2df6ed223eedd98df1744f809773054edfcd2385ff -DIST rustc-1.86.0_beta20250323-src.tar.xz 275676660 BLAKE2B f86bc627ae6fc2abca4f274ef6b6b0702fe8c0f5f1b32af4a376992375786737da7f4c3b8f954b762ab04fae65f24afbd4658a286ddda1bacf0d3cf7d59f5168 SHA512 4768b2875f119e87a39596a45f7bbb02a00ea4d4516d080d6822934f8ff52f0af4430384d6a2366ddb2b0ddcaef4afb89438ecda829668522f2212f92d171b02 -DIST rustc-1.86.0_beta20250323-src.tar.xz.asc 801 BLAKE2B f8a278f2ee4a9a9ab608a326a420523268efd2fbbd77c9517a585bca5c1a48cf6ff7df8a8ba6c529d910fa66b0fa132dd3b602d8c9eaf675ce2bf1a2538096ec SHA512 20530c6cf689c43f96a8a6896d7eca46e225138708495b84422977e6d1a70ce7a3162c36d072b15b4c26e200576fe0a00cd937fb9a264f03492b64913a6d4985 +DIST rustc-1.86.0-src.tar.xz 275696736 BLAKE2B 9f33a710a3e567d92f56091920643f5ef2ddf2ad52acb5d9ee78496a7b5dbc10da5a51c72cf2a6f66d543a531d3138a49767c98501ae4e885e03988d2ccfbb59 SHA512 9ce195e24a03765f7163de16271e3d19d731d4b80fcc2bfd919106c9d42543eade018f712f6947ea3c6e57c6cb2e6841596aa668d608b8da15101a7da14f3097 +DIST rustc-1.86.0-src.tar.xz.asc 801 BLAKE2B 3e10a3894c7eee68d37bc5707d797548119f830667e27e652a199d13633199713bd01bd0f41a5f2af3c682561903e36abe27b36ef78d9a1d65bdf485527d2c15 SHA512 0b74dab9ee56d0a08e26e9cd40f722e4d99de63ac678f969f0c54d50737074fb28e170db5a36ce2627ec332e5ce3bb8a92167aefbccff7c70e4cb057bc0a94ac EBUILD rust-1.71.1-r101.ebuild 22398 BLAKE2B 14f409fb8a8cd5bab98003e46778c6b08cebb1e52fd141ca55edab79e0d466dd680a7a09c6d607f87af1e7ffc995e3984b46f62a74164bdc3925dd5a4e866e47 SHA512 3c5a8471b73f392e4f3da8ad1ddc585a8e5fb0621fcb5cc6686ce228a88b0d01cc611f3836ec36173f28e6b5ff8e591b56254bb3a49ef9b874820c4f241b6cc6 EBUILD rust-1.74.1-r101.ebuild 38047 BLAKE2B 635e4abbd3b4adb9c82c1ddc7554ee417beed44d0aee61df98255175083d98a9ba0a3f091d8a273da36f4f7fc0476d3ce46d760504a37c8231c73df445238cfb SHA512 8d7fa2a8b28211e6470b3f6a1a27aeec0d3c3f8e99420ca5996bf4e26d5012aab480e669632b4ca1736b8118b38722e5d324ee12cbe6558ff114e7a21fc4726f EBUILD rust-1.75.0-r101.ebuild 23941 BLAKE2B 2f4bab4676bf7d52fb03a0265b2efcae3ce309598009decb8609b69040eb5863dc6e767564bb457d933c1045afb8245b3d9f612920ffd72265ac09777b9a051a SHA512 a3a3a4c6ffa2e9fa8b4c3fe0f58b73ef7f08d837cfcbd3c3354ba825c432f7dd19481e668ef7228e18ba78cfd797267d8de45dcd4697e6204cb15bfd0287ca9f @@ -68,6 +68,6 @@ EBUILD rust-1.84.1-r1.ebuild 22453 BLAKE2B f1c5b255369c426023960d89bc0cd2aedbc29 EBUILD rust-1.85.0-r1.ebuild 25586 BLAKE2B 8922eb45ace74a0a6bc8e15d00680a5f3ca27519d3dd7ba7dcac1be2b3aeb502b78f3cddc18631de52581e6532ba10715c968bce1f8a559755d494a088ca51bb SHA512 438c76f395828684184982316ef0931d3619a3d09f5e733310fea5c8a64e1ca504dd4fc20d31cc788f88d46f1825c05cb9898cb9fd201157e83e53797164f841 EBUILD rust-1.85.0.ebuild 25537 BLAKE2B 7b4a1cffb5769f7ac2b049a2076c51a5df13b7d9d2be1c7d960ac3046b983e577bb991668f124899a0d0220e6055a31fc88775ce3e8ff7ae6efc68428f5d865b SHA512 31cac0249245527578ae82f52e097b337c691706f39b5e060426e76b55a7aed95f0ad32671a2d6866c570f6ec4c50dc90e8853e2aac68c7eca80c3d5295cca54 EBUILD rust-1.85.1.ebuild 25586 BLAKE2B 8922eb45ace74a0a6bc8e15d00680a5f3ca27519d3dd7ba7dcac1be2b3aeb502b78f3cddc18631de52581e6532ba10715c968bce1f8a559755d494a088ca51bb SHA512 438c76f395828684184982316ef0931d3619a3d09f5e733310fea5c8a64e1ca504dd4fc20d31cc788f88d46f1825c05cb9898cb9fd201157e83e53797164f841 -EBUILD rust-1.86.0_beta20250323.ebuild 25587 BLAKE2B 3639214ebe4f056fdbc31f91c0ce7842c2028400c018293e2f371dddfea154d5116706431445b9675239ac362d2887aa3ed226b948acfcded02c11835ea45950 SHA512 3786017c2e5c050a3ff0733375f741839a0115d6b471b707dfc2e1bf2893b97a7ff911b4821360a517585ab87b90c0a255a07dec84864ea35d486b996b9329ce +EBUILD rust-1.86.0.ebuild 25594 BLAKE2B b31b39f773d74ac45912bfa329510f00444f1a90e462c04512c3dac2fd6df9db327123154e197ab33112c8f5b2c60afc2de9f54fd35a879c1b77df5ff43a3894 SHA512 5828414679a87b36496d402be8ac2fce0a82c8b49c3fa6be1f7ee6cffa87f59557d1b92326e9eed7bdb42f74869f11dbdc107ba510d24674e08d3bdc3f42e286 EBUILD rust-9999.ebuild 25610 BLAKE2B 0f09d17c911ce17034666917dc1a3527c91cd4f4ac7aaeb51c196e8ad0d64f6609ef99f1b490beac2612fec7dc8cb606748600a7ba93da2991fce5b95c53dde6 SHA512 a6e078cd1c42602dc52e9081fae8342f08673703a2698d01c2ba1ce361598cec66572c8b1a10e3695888bb17fb6a342ed8bdc9c89098e7a3458a41ec84d3eb5b MISC metadata.xml 1841 BLAKE2B 48a8167ae44a7f4892b917895298627ac920af6c488180980e65bdeec53b650455fc6d7dddad0a7a8257d473080082377fb6b6df6a834b294b6e6485e6784a1e SHA512 1f5fd792b65ccac89a61233004980d9f7cbaecea5d05f35f9cc2dc9cab4e3ccfcd46828e88770a1b8ba5ca23064b6a75eea72a0b32bcce52bb399b85ac95f755 diff --git a/dev-lang/rust/rust-1.86.0.ebuild b/dev-lang/rust/rust-1.86.0.ebuild new file mode 100644 index 000000000000..41f407880eb4 --- /dev/null +++ b/dev-lang/rust/rust-1.86.0.ebuild @@ -0,0 +1,809 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +PYTHON_COMPAT=( python3_{10..13} ) + +RUST_MAX_VER=${PV%%_*} +if [[ ${PV} == *9999* ]]; then + RUST_MIN_VER="1.85.0" # Update this as new `beta` releases come out. +elif [[ ${PV} == *beta* ]]; then + # Enforce that `beta` is built from `stable`. + # While uncommon it is possible for feature changes within `beta` to result + # in an older snapshot being unable to build a newer one without modifying the sources. + # 'stable' releases should always be able to build a beta snapshot so just use those. + RUST_MAX_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).1" + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +else + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +fi + +inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ + multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( + "*" + "-src/gcc" + ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" +else + MY_P="rustc-${PV}" + SRC_URI="https://static.rust-lang.org/dist/${MY_P}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Systems programming language originally developed by Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +# 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[@]/%/(-)?} + +# https://github.com/rust-lang/llvm-project/blob/rustc-1.84.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) +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" +SLOT="$(ver_cut 1-2)" + +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto rustfmt rust-analyzer rust-src +system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" + +if [[ ${PV} = *9999* ]]; then + # These USE flags require nightly rust + IUSE+=" miri" +fi + +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 + ) + lto? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') ) + !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[*]} ) + 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}/${SLOT}/bin/.* + usr/lib/${PN}/${SLOT}/libexec/.* + usr/lib/${PN}/${SLOT}/lib/lib.*.so + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_SONAME=" + usr/lib/${PN}/${SLOT}/lib/lib.*.so.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_PRESTRIPPED=" + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp + usr/lib/${PN}/${SLOT}/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}/${SLOT}/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.85.0-cross-compile-libz.patch + "${FILESDIR}"/1.85.0-musl-dynamic-linking.patch + "${FILESDIR}"/1.67.0-doc-wasm.patch +) + +clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die +} + +toml_usex() { + usex "${1}" true false +} + +src_unpack() { + if [[ ${PV} = *9999* ]]; then + git-r3_src_unpack + mkdir "${S}/.cargo" || die # The vendor script has a check for .cargo/config{,.toml} + touch "${S}/.cargo/config.toml" || die + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + local rust_build="" + local rust_host="" + # Configure vendor to use the portage-provided toolchain. This prevents it from + # attempting to fetch a `beta` toolchain from the internet. + cat <<- _EOF_ > "${T}/vendor-config.toml" + [build] + build = "$(rust_abi "${CBUILD}")" + host = ["$(rust_abi "${CHOST}")"] + target = ["$(rust_abi "${CHOST}")"] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + _EOF_ + # We're using git sources so we need to run the Vendor script + # to ensure that all dependencies are present and up-to-date + mkdir "${S}/vendor" || die + # This also compiles the 'build helper', there's no way to avoid this. + ${EPYTHON} "${S}"/x.py vendor -vvv --config="${T}"/vendor-config.toml -j$(makeopts_jobs) || + die "Failed to vendor dependencies" + # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around. + cat <<- _EOF_ > "${S}/.cargo/config.toml" + [source.crates-io] + replace-with = "vendored-sources" + + [source."git+https://github.com/rust-lang/team"] + git = "https://github.com/rust-lang/team" + replace-with = "vendored-sources" + + [source.vendored-sources] + directory = "vendor" + _EOF_ + else + verify-sig_src_unpack + fi +} + +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} )) + if [[ ${PV} == *9999* ]]; then + M=$(( $(usex miri 128 0) + ${M} )) + fi + 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 +#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 + 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 + + 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_prepare() { + if [[ ${PV} = *9999* ]]; then + # We need to update / generate lockfiles for the workspace + ${CARGO} generate-lockfile --offline + + fi + # 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" + #grep -rl cmd.args.push\(\"-march=i686\" . | xargs sed -i 's/march=i686/-march=i586/g' || die + fi + fi + + if use lto && tc-is-clang && ! tc-ld-is-lld; then + export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld" + fi + + default +} + +src_configure() { + if tc-is-cross-compiler; then + export PKG_CONFIG_ALLOW_CROSS=1 + export PKG_CONFIG_PATH="${ESYSROOT}/usr/$(get_libdir)/pkgconfig" + export OPENSSL_INCLUDE_DIR="${ESYSROOT}/usr/include" + export OPENSSL_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)" + fi + + 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 rustfmt && tools+=',"rustfmt"' + use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' + use rust-src && tools+=',"src"' + + if [[ ${PV} == *9999* ]]; then + use miri && tools+=',"miri"' + fi + + 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_build="$(rust_abi "${CBUILD}")" + rust_host="$(rust_abi "${CHOST}")" + + 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)" + local build_channel + local build_miri="false" + case "${PV}" in + *9999*) + build_channel="nightly" + ;; + *beta*) + build_channel="beta" + ;; + *) + build_channel="stable" + ;; + esac + cat <<- _EOF_ > "${S}"/config.toml + # https://github.com/rust-lang/rust/issues/135358 (bug #947897) + profile = "dist" + [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" + $(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 = true + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}" + 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 = \"${CHOST}-cc\"" + fi) + channel = "${build_channel}" + 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)) + $(if use lto && tc-is-clang ; then + echo "use-lld = true" + fi) + # 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)/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/ + + # extra targets defined as a bash array + # spec format: :: + # 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 :: + local cross_llvm_target="${cross_target_spec%%:*}" + # extracts toolchain triples, : + 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 + + docompress /usr/lib/${PN}/${SLOT}/share/man/ + + # bug #689562, #689160 + rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${SLOT}"/etc{/bash_completion.d,} || die + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + if [[ ${PV} = *9999* ]]; then + use miri && symlinks+=( miri cargo-miri ) + fi + 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//bin/rustc- + # need to fix eselect-rust to remove this hack. + local ver_i="${i}-${SLOT}" + if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then + einfo "Installing ${i} symlink" + ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die + else + ewarn "${i} symlink requested, but source file not found" + ewarn "please report this" + fi + dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${i}-${PV%%_*}" + done + + # symlinks to switch components to active rust in eselect + dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}" + use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}" + dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}" + dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}" + dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${P}" + + newenvd - "50${P}" <<-_EOF_ + MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}" + _EOF_ + + rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" + fi + if [[ ${SLOT} == *9999* ]] && 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/lib/rust/libexec >> "${T}/provider-${P}" + echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + + if use dist; then + "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die + insinto "/usr/lib/${PN}/${SLOT}/dist" + doins -r "${S}/build/dist/." + fi +} + +pkg_postinst() { + + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/dev-lang/rust/rust-1.86.0_beta20250323.ebuild b/dev-lang/rust/rust-1.86.0_beta20250323.ebuild deleted file mode 100644 index 320054bf1db1..000000000000 --- a/dev-lang/rust/rust-1.86.0_beta20250323.ebuild +++ /dev/null @@ -1,808 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 19 ) -PYTHON_COMPAT=( python3_{10..13} ) - -RUST_MAX_VER=${PV%%_*} -if [[ ${PV} == *9999* ]]; then - RUST_MIN_VER="1.86.0" # Update this as new `beta` releases come out. -elif [[ ${PV} == *beta* ]]; then - # Enforce that `beta` is built from `stable`. - # While uncommon it is possible for feature changes within `beta` to result - # in an older snapshot being unable to build a newer one without modifying the sources. - # 'stable' releases should always be able to build a beta snapshot so just use those. - RUST_MAX_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).1" - RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -else - RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -fi - -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ - multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig - -if [[ ${PV} = *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/rust-lang/rust.git" - EGIT_SUBMODULES=( - "*" - "-src/gcc" - ) -elif [[ ${PV} == *beta* ]]; then - # Identify the snapshot date of the beta release: - # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz - betaver=${PV//*beta} - BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" - MY_P="rustc-beta" - SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz - verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc - -> rustc-${PV}-src.tar.xz.asc ) - " - S="${WORKDIR}/${MY_P}-src" -else - MY_P="rustc-${PV}" - SRC_URI="https://static.rust-lang.org/dist/${MY_P}-src.tar.xz - verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc ) - " - S="${WORKDIR}/${MY_P}-src" - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" -fi - -DESCRIPTION="Systems programming language originally developed by Mozilla" -HOMEPAGE="https://www.rust-lang.org/" - -# 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[@]/%/(-)?} - -# https://github.com/rust-lang/llvm-project/blob/rustc-1.84.0/llvm/CMakeLists.txt -_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) -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" -SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable - -IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto rustfmt rust-analyzer rust-src +system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" - -if [[ ${PV} = *9999* ]]; then - # These USE flags require nightly rust - IUSE+=" miri" -fi - -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 - ) - lto? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') ) - !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[*]} ) - 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}/${SLOT}/bin/.* - usr/lib/${PN}/${SLOT}/libexec/.* - usr/lib/${PN}/${SLOT}/lib/lib.*.so - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so -" - -QA_SONAME=" - usr/lib/${PN}/${SLOT}/lib/lib.*.so.* - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so -" - -QA_PRESTRIPPED=" - usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp - usr/lib/${PN}/${SLOT}/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}/${SLOT}/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.85.0-cross-compile-libz.patch - "${FILESDIR}"/1.85.0-musl-dynamic-linking.patch - "${FILESDIR}"/1.67.0-doc-wasm.patch -) - -clear_vendor_checksums() { - sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die -} - -toml_usex() { - usex "${1}" true false -} - -src_unpack() { - if [[ ${PV} = *9999* ]]; then - git-r3_src_unpack - mkdir "${S}/.cargo" || die # The vendor script has a check for .cargo/config{,.toml} - touch "${S}/.cargo/config.toml" || die - local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" - local rust_build="" - local rust_host="" - # Configure vendor to use the portage-provided toolchain. This prevents it from - # attempting to fetch a `beta` toolchain from the internet. - cat <<- _EOF_ > "${T}/vendor-config.toml" - [build] - build = "$(rust_abi "${CBUILD}")" - host = ["$(rust_abi "${CHOST}")"] - target = ["$(rust_abi "${CHOST}")"] - cargo = "${rust_stage0_root}/bin/cargo" - rustc = "${rust_stage0_root}/bin/rustc" - rustfmt = "${rust_stage0_root}/bin/rustfmt" - _EOF_ - # We're using git sources so we need to run the Vendor script - # to ensure that all dependencies are present and up-to-date - mkdir "${S}/vendor" || die - # This also compiles the 'build helper', there's no way to avoid this. - ${EPYTHON} "${S}"/x.py vendor -vvv --config="${T}"/vendor-config.toml -j$(makeopts_jobs) || - die "Failed to vendor dependencies" - # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around. - cat <<- _EOF_ > "${S}/.cargo/config.toml" - [source.crates-io] - replace-with = "vendored-sources" - - [source."git+https://github.com/rust-lang/team"] - git = "https://github.com/rust-lang/team" - replace-with = "vendored-sources" - - [source.vendored-sources] - directory = "vendor" - _EOF_ - else - verify-sig_src_unpack - fi -} - -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} )) - if [[ ${PV} == *9999* ]]; then - M=$(( $(usex miri 128 0) + ${M} )) - fi - 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 -#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 - 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 - - 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_prepare() { - if [[ ${PV} = *9999* ]]; then - # We need to update / generate lockfiles for the workspace - ${CARGO} generate-lockfile --offline - - fi - # 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" - #grep -rl cmd.args.push\(\"-march=i686\" . | xargs sed -i 's/march=i686/-march=i586/g' || die - fi - fi - - if use lto && tc-is-clang && ! tc-ld-is-lld; then - export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld" - fi - - default -} - -src_configure() { - if tc-is-cross-compiler; then - export PKG_CONFIG_ALLOW_CROSS=1 - export PKG_CONFIG_PATH="${ESYSROOT}/usr/$(get_libdir)/pkgconfig" - export OPENSSL_INCLUDE_DIR="${ESYSROOT}/usr/include" - export OPENSSL_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)" - fi - - 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 rustfmt && tools+=',"rustfmt"' - use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' - use rust-src && tools+=',"src"' - - if [[ ${PV} == *9999* ]]; then - use miri && tools+=',"miri"' - fi - - 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_build="$(rust_abi "${CBUILD}")" - rust_host="$(rust_abi "${CHOST}")" - - 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)" - local build_channel - local build_miri="false" - case "${PV}" in - *9999*) - build_channel="nightly" - ;; - *beta*) - build_channel="beta" - ;; - *) - build_channel="stable" - ;; - esac - cat <<- _EOF_ > "${S}"/config.toml - # https://github.com/rust-lang/rust/issues/135358 (bug #947897) - profile = "dist" - [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" - $(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 = true - cargo-native-static = false - [install] - prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}" - 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 = \"${CHOST}-cc\"" - fi) - channel = "${build_channel}" - 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)) - $(if use lto && tc-is-clang ; then - echo "use-lld = true" - fi) - # 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)/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/ - - # extra targets defined as a bash array - # spec format: :: - # 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 :: - local cross_llvm_target="${cross_target_spec%%:*}" - # extracts toolchain triples, : - 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 - - docompress /usr/lib/${PN}/${SLOT}/share/man/ - - # bug #689562, #689160 - rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die - rmdir -v "${ED}/usr/lib/${PN}/${SLOT}"/etc{/bash_completion.d,} || die - - local symlinks=( - cargo - rustc - rustdoc - rust-gdb - rust-gdbgui - rust-lldb - ) - - use clippy && symlinks+=( clippy-driver cargo-clippy ) - if [[ ${PV} = *9999* ]]; then - use miri && symlinks+=( miri cargo-miri ) - fi - 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//bin/rustc- - # need to fix eselect-rust to remove this hack. - local ver_i="${i}-${PV%%_*}" - if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then - einfo "Installing ${i} symlink" - ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die - else - ewarn "${i} symlink requested, but source file not found" - ewarn "please report this" - fi - dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" - done - - # symlinks to switch components to active rust in eselect - dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}" - use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}" - dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}" - dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}" - dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${P}" - - newenvd - "50${P}" <<-_EOF_ - MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}" - _EOF_ - - rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die - rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die - rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die - - # note: eselect-rust adds EROOT to all paths below - cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" - /usr/bin/cargo - /usr/bin/rustdoc - /usr/bin/rust-gdb - /usr/bin/rust-gdbgui - /usr/bin/rust-lldb - /usr/lib/rustlib - /usr/lib/rust/lib - /usr/lib/rust/man - /usr/share/doc/rust - _EOF_ - - if use clippy; then - echo /usr/bin/clippy-driver >> "${T}/provider-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if [[ ${SLOT} == *9999* ]] && 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/lib/rust/libexec >> "${T}/provider-${P}" - echo /usr/bin/rust-analyzer >> "${T}/provider-${P}" - fi - - insinto /etc/env.d/rust - doins "${T}/provider-${PN}-${SLOT}" - - if use dist; then - "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die - insinto "/usr/lib/${PN}/${SLOT}/dist" - doins -r "${S}/build/dist/." - fi -} - -pkg_postinst() { - - eselect rust update - - if has_version dev-debug/gdb || has_version llvm-core/lldb; then - elog "Rust installs helper scripts for calling GDB and LLDB," - elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." - fi - - if has_version app-editors/emacs; then - optfeature "emacs support for rust" app-emacs/rust-mode - fi - - if has_version app-editors/gvim || has_version app-editors/vim; then - optfeature "vim support for rust" app-vim/rust-vim - fi -} - -pkg_postrm() { - eselect rust cleanup -} -- cgit v1.2.3