commit:     66927f401aaf98d07191d1b4575a619288745fdf
Author:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Wed Apr  5 22:02:26 2023 +0000
Commit:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Wed Apr  5 23:30:42 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=66927f40

dev-lang/rust-bin: add 1.68.2

Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>

 dev-lang/rust-bin/Manifest               |  33 +++++
 dev-lang/rust-bin/rust-bin-1.68.2.ebuild | 229 +++++++++++++++++++++++++++++++
 2 files changed, 262 insertions(+)

diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest
index 40c8ed94e2da..7fb3649651c8 100644
--- a/dev-lang/rust-bin/Manifest
+++ b/dev-lang/rust-bin/Manifest
@@ -128,7 +128,40 @@ DIST rust-1.68.1-x86_64-unknown-linux-gnu.tar.xz 185646128 
BLAKE2B 52d8c59bcd8c1
 DIST rust-1.68.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
5c2309f58a2d7a667211067d37428c88684790625321836bf06a676741c238908cdb0df31280b94730be9dc17de0a6f631f46bdd8d811b45688ea5b92ca3e2c6
 SHA512 
ee700dba9c6a9c29933039ea13c01b5ca2a01b4869b480e3c1352adaed108ed25435b94b12d8b9117dc379657738149a4f2a8f9adcbf74b108b70314f1429043
 DIST rust-1.68.1-x86_64-unknown-linux-musl.tar.xz 270163680 BLAKE2B 
d094a08ffd1e9aa2a36a6d4c731c8468cbe9e61ada3d1caafb5266fde01abf8c40d2996f4f7579f6aa5513de3d6f9384a7ca9631c5ba2f6a0d6c3eefc9244ffe
 SHA512 
b5cdab93ab5fc0757643259cdd3b69e37aafa304f1d84bf6e9c99553599bfad4616e318e2198542314cedeb0419a0b86e0d7e4699df040c6b8014392edc617c9
 DIST rust-1.68.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 
aac3764bcde2121733e177a7968e16b0f727837753d101889a2008f12158c076450e84f416f25e4b77ea42acc8e33e6efbefb67c87cdc2812059f9e1ec9b05cd
 SHA512 
65a28cc79b6be8f8e0f2ec529d1d9e08323ccf50a437611af45c83931187bd730bb3cd29335b28a73aaecd12df397b43dd81cc08b6f710f5c59386977a8a363b
+DIST rust-1.68.2-aarch64-unknown-linux-gnu.tar.xz 257441012 BLAKE2B 
621615e68cfffb46552577a9e30e863518fa37f53bb8e00bc639f048d7f05910fd31473ca00242a83b3dafd96db73a19648e0b11641f26ccfaaca5ed17abb2b8
 SHA512 
77fabd0ff2a4e7df8142663932ca146c7f5b463cc7f1d4c2b3ca1c862c29f746a0ca77eff6d37fe582aa4c2cb2c007a1e5d0a1c0214caf1b0792b14934f693aa
+DIST rust-1.68.2-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
eeba8414c9bf414f9a6de46045f9e49ab1a6436c30fcce989aedd2c0658557336f9e919b0372f33fcf11ff3fe64ab9ede54fb9d6e6f4ae8504a6b9401a6f7933
 SHA512 
f2edefb84d75653d3f107349f3962983ff56cc6538c75b8b00e25e790a51e19be10848906ccb90b80bf7742fca2dfa3bfdc4ce974aae6130c7dd71905c9bbbad
+DIST rust-1.68.2-aarch64-unknown-linux-musl.tar.xz 235749524 BLAKE2B 
fc90040069f265d781d73f46bccff8df773830d2d178205126f7a1e67b5c22ca0d87dfeb47f46370522c758804e26fe29cdad29706045bd07404685afc2f77c3
 SHA512 
fceddcdb17f618c576b74590067f9cd476133e86b9c22079400de98489247aba07e12987f29c043067daf1f86e240d8990f0c02b7d58e647d75d8fe82d3229f5
+DIST rust-1.68.2-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 
14e072f897ceb80afc01c9bd531f3f85c9b5dffdfe9a0d6e9a41d9c6f5177427afb0a97916385b480594eee4a787184d9d66d05863d0c6885ab1bb0e37a224c6
 SHA512 
05c42ebcd370782ec5eaeca05fbb5da929eb2f555a8f3e68f622d153f0076cebf7eb78151e95b02e7959b431a7cee670033a172a5eb77116c802e68c20ee622e
+DIST rust-1.68.2-arm-unknown-linux-gnueabi.tar.xz 213433720 BLAKE2B 
29d1040c4f553a52b996720b37d26f76f21f7cefb8152eb50166668bf2b380c0e3202e9d6e2643846fdb957b25d4d07f50be4c41d0055c8d7f2bfcb4f5a4a5bf
 SHA512 
851efffc3b47237f1516198c7dd6ea23d432126854707fcc5e23b7de0d8e149d34b53aafa6af7ad2bdee8d45e61c4771fdc96867635aa8ce2f76fe14e450ed2b
+DIST rust-1.68.2-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 
7f36e95ed463f260db65f50e0b469789007436f4bf560573a5ca0d6e1c23c99b62a361b98c6c5fa6a7c4056007ef2427f7fd61a501f73750470626a5b70db473
 SHA512 
6dcea7816a2be7292bcd1ffc50bb11db9803bc5d93207be99c03089d324bb527f117106f55b215069bbb5e84806beb30073d226e2cc6d257402b073b6561ed18
+DIST rust-1.68.2-arm-unknown-linux-gnueabihf.tar.xz 214517972 BLAKE2B 
76fb64798cc6e7a1c9c6334e6cef0ab18c72f2c00c0399e55f9344565c0fcd19941eabafadc46351cc4fd940fd5b0c199754621614fa72b9d6d0c1d3286b3dc0
 SHA512 
d66922d4d2260ecc66e8de5863b946609e7452f8c76585e7399d1c08865f273bd2a6d2037ad36fd2c02ab7c3010f1e84d252adadca2a9662d16a8f70b920c7ba
+DIST rust-1.68.2-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 
ca3a22fceb130eb57a6b645fa5e9697044cbb6a09365c73a31410dd734cfe81fb79b2c2e706435e483f12436bf77dad26d22e9a92f0d8bb2e7c084a0324dc5c8
 SHA512 
4b630cd85b773f0105d14702fbb8e6ec83d97f73a0cd3e06fec92fcea5806f7ee44d4c83d50f181d8d87a64416f5a79eb1cbee7ffedb1934ab1716ee7812f8ce
+DIST rust-1.68.2-armv7-unknown-linux-gnueabihf.tar.xz 218111640 BLAKE2B 
13a22fdc55de06c0f4172aa34fda616596cac9bf80a9da9aaed5be9ac44d559e682e3f352a72a8beebb7eee6c0d2c561575f73f28436606e84857b9ed2af48c1
 SHA512 
a1855a420ca87d72c50465c282236f42ad1ccffbc746f5dcd0f7abc908fcde512228fcc80fc1babaa7ba10ce9f1d841e3eaf577e892644a1260cff110e2e5327
+DIST rust-1.68.2-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 
e2db4662c03f7e419f190eefd1334b0d59b768d670376810246e186ce6f9041b103c72946c35d3c459b194962f06c9120d239aeb0988dbd54dee698b2bf304a2
 SHA512 
5a700f246674136a42884f9888b6a625578fa07d238764d8f72a0092ab1e3b0f4afcbd8e35b5a4a91389fcd181278563cbb694a60d779a272951948487c811bc
+DIST rust-1.68.2-i686-unknown-linux-gnu.tar.xz 234323888 BLAKE2B 
71cda528925d6b3200c9e1c5350f276cb653c727186f1ce235f82aff9cf65f28dad01f221b46c32825222cbf59605f4011d9e4c2324bdb06d3f57cdba80391b6
 SHA512 
f804b8327d6811a88884d928f77325645da1de0fa2b957f3cde3658474e720015ddadb5d38229d62bb46469df4d7c54511f774289157910e07cce51bd6685059
+DIST rust-1.68.2-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
aad0ddb4ea4a9d0a886e1682a255e994ebf24e2a75c54b92a00a511e4334625acc55d4ea0556d5e3bbe82f45d8013a4631d43f81d829f592dda05667719aa0fc
 SHA512 
549f10d92a47edb2b3fdf20f7c4567315f5910f3cb66edc5ba3f61a25d1840778ff971f275511169f748bfbbe7f485214cb172faecbd572992e4ff645a8f35e5
+DIST rust-1.68.2-mips-unknown-linux-gnu.tar.xz 194817776 BLAKE2B 
23583f6a367951823c335e15df9655402cc75db4a04685ba398fee58d6bfda86ae8fbefc4af7adc363b6f2011a025086f200a9c0afe156c2fe508f717e0fbdbf
 SHA512 
6d981882a9e07c0d7662a442869c2961251db1ed8bf222ddf3e7079479af72c188dffb1418252230ab7f1b2a9e1e11a5aa6f8b9f59b2fb4ac9f71c163b8614d6
+DIST rust-1.68.2-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
9b57cdf81a81780f78ba6f3d13f917bacb35e01966c87cc07f08cd852a1473fec35d115c7951fd41367e465bd90ab90e7ca019e5edf61a92318d6bb2e9c76c2b
 SHA512 
f87a10c3f2e457f8776d51a3fb80aadbf32e95e169b4c5b494d6f6f28164d970c2a82750dd352a574376b827a8ba741705fc8891b25f24744bc9e0572be30f21
+DIST rust-1.68.2-mips64-unknown-linux-gnuabi64.tar.xz 193006892 BLAKE2B 
672f8ff8d8da0fd50565ca96263f97b9fa6fae754a35b8eec98ac82310fb5531f76f15ad141f8f78e6f8c94c96bd849b3f47983305386264aab87e724b3ff5d3
 SHA512 
c007dcaf7dafba7f927b717e140cb161dea7810aa358580b543db59066ff655b600177df211f120db34267444237d2cd7e56d666d813a06507638227f0278b7d
+DIST rust-1.68.2-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 
f409f4a07a4c3d341a621433892c5d272896061d7b1dc585fcf3f81caec108164634720ebc40f53df82007ec3dbc7af695c34659c3f2c62241ccc12cd2fd732a
 SHA512 
a3edacb8f7daa8578cc9461eb443918477295a04e55845451a98645575132758b8f6232cfcd18d03421b84b9d2ebee4bf52c58339b47a1cbc02435d65462404d
+DIST rust-1.68.2-mipsel-unknown-linux-gnu.tar.xz 200273160 BLAKE2B 
49800150c3ef7dd8cabe97d0e2a6af2de45bab8d5e7f03791d1acae8caf066d6393c56344136e8cd7867ac0756606e82ab3a1390b25bba038ab940a4ba403c82
 SHA512 
73985bf7ff96bf13a29f84d8a1daf93e1547548697ef79a601808e5d10a31cf813d724b8e3d3872da5e719b35298563843fa1e7b69021655b898e732d95cfce5
+DIST rust-1.68.2-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
5090f375f6638eff5af4d2b8ed3ae4dc274378548aa8336ee0458383a8e28f566329eeb5e4b11ecb7c2b0bcd2bf974f0fb0c073712ba5dc6daec73a1f07181f2
 SHA512 
69089eefd8c20ccc508527225710b1b7122dc2dd887ed43d18ace4df888d0dcb7d2981eff89115d06eca5607593ce22246a4cace4139e88da0882b8d1d3b2e67
+DIST rust-1.68.2-powerpc-unknown-linux-gnu.tar.xz 220703376 BLAKE2B 
05e7d9bbd4359376a568b4f9cabae340edb002e96713f9c5bd6b4e12c42fd947e53c1ece1cf9dfcb004489aa4c3f72d3c8a689df3c137b8ab362e536d62f2bcd
 SHA512 
1fd9b3a58581a10dbbd01522cf3f5c1dedea91c283aacace3b1c2eab1460cd3141d1b817c8cf60e6488872777919b6723129315add84bd6e8b98d12e53a45419
+DIST rust-1.68.2-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
fee49ea534e0f48b4613ac4cb4d62687bdaf48261fbf9237a3ead0fcfbf144dd3c2f5c500465f31e1ff358494a8251fe45045ffd3305bb99e5eb7fb3da635350
 SHA512 
426d61a3655167de5639432ef635e69e551c514d4105df208ce10dfa27c9ac7f7bcba04302e540cbdfd8fc2953c2a9e5dd7e61c905a2c42a05382df36072afeb
+DIST rust-1.68.2-powerpc64-unknown-linux-gnu.tar.xz 219023868 BLAKE2B 
f81398dab67be593d968b3f9b1c3d3c3c96670e8e099d31d9d00662e966ed3269bca8fb84f4b2af6182d5ba74ab25a7adca38e11569600e91929fac381252ab8
 SHA512 
87db3e97fb20f72b24ef114ce79e22e600c2effd2f17b90d91a9b190203edf7c6c73f78f1eb6e6efb999b99ca2397bee1470bcfde7099c7eda6fed7fa2a93deb
+DIST rust-1.68.2-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
fc7ec509b4a6d3e607aa6e437a65e61956104b5206a1c452faee393f6dcec6d4823bdb9409918e86adec15132191d0541e5c39c72b49dc4423b58caec64b8b35
 SHA512 
0c4902853ea0036ad73a93d239b07f771060ea2fc0b38bd71e690551214b36e3fd903d8d57c435b7d1ae867aa78016012d4c04745c0f67c63c3d0b36e560f348
+DIST rust-1.68.2-powerpc64le-unknown-linux-gnu.tar.xz 231072852 BLAKE2B 
e989fbd54f97605ad33af295a458bab2eeb8866d367965102d2e66cf5dba5a38e9e8c4eae784dd738c70705fa8014561087e1e526508546e7aa393afd55c4307
 SHA512 
810dd24af733b5493fe37ebb0af59b0fd03587d862e4b63fe9357d0acbbfb8103430a2313d07a2bef7a2c2ffcf0a4f5cf8a8b2c4a1dd1212446ff49ba4fc2a70
+DIST rust-1.68.2-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
2e9becc108c2b85601530ceb07ef9103297e0fefc01c7a4302a5c23d083f679372cf7cf1328a429ab6f1b06a29fcb34eecbb33f7d8790ca5a515ecafa7672e74
 SHA512 
23499a386e87e6a7a9c64f2a00d36f4602fcbbc03b3561afcaa741b29bcb6ceb50a8d040dd012bd1cacec2d8899a5840419e70bee1840de5a027a5a111a64864
+DIST rust-1.68.2-riscv64gc-unknown-linux-gnu.tar.xz 207916672 BLAKE2B 
81c09e028d0e68730146daf4e1b50c4cad9a5df37ca5e5f50325a86ed97e6198773b94589e6fde2856d09aadab62aacc1c6362d869968ca3c261775b4958b9f8
 SHA512 
b532575e7aa7f1ee32109b5beb22f184e81346773edf362a44b24363b38ca10744d96052cee82d1a98c026edb39b6195332922847f184ca3dd8d25a8a5e03fd9
+DIST rust-1.68.2-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
31bb980aa2a6b45e7a51cba0f14ed86674617f2cf8ee0583765d01502bf754f59a0cd960ad50a1e21ea8f6898e83e307d39be1eecc2b3344f5681c1908cfb436
 SHA512 
66c8a3efd1c579784321f24edcb4113c184516912ad490c9088d2141ac527af85acc64b6c67454661d1a991a710758cbebbfaaac7ae086b463fbdae7d1c89bb0
+DIST rust-1.68.2-s390x-unknown-linux-gnu.tar.xz 234071260 BLAKE2B 
dbcd38a0503d3e131a7786e11874cf0e3dbca13c5ae7c9b605caec529aae5c498722d2685557be43387e2d2b855892720b6e84021765bebdfeea4a2dbe7502f1
 SHA512 
00614d53a4d34b4714febfc7c4eb2f92446ba928e8bfde0de537de51474704525456b628b60634f0220278c5d403da55c793a30d744362b181cacb1a9d8fac1b
+DIST rust-1.68.2-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
9eb99100e0e61ffa6f031b9f04fbcedccfbecd897e3232c8e192e52b3d5c103f8558de5e23e7eb19487eec890c0fef2c9be952edfdcd2f1a05b5b09d3a0fa82e
 SHA512 
4d36bab880a386e6e70d23682435e1a960be3c88387ffcd955a55ce451acd3d49085b0db05230f874519aef12192eebbbbc26627807a6fa7021c89ff5d82f814
+DIST rust-1.68.2-x86_64-unknown-linux-gnu.tar.xz 185953856 BLAKE2B 
11fc1f284c77261d69b2ba582843cbd15f3bde832cfa038764e68711de73c9a86f9e36f69a81606b4d5dcb0f9c0f413c88cb400e17511b980671a246ff63aa2a
 SHA512 
7f3344591be014b86e55c21fab27587b00756aa46a366cde2149fafa36b5dfae29e126f70511b40bfad131a1d4d27c8cf82add3474b69e2c498c7380961a23e5
+DIST rust-1.68.2-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 
06f3d90126dfe5dcfb8147c8529f333bf635c5c669cc0b5d45156fed85e87aaaa67d8d9c4b250f77e1f0998e77e5635d3f3056447a032eac07bf847fc532a383
 SHA512 
1d826f0f8ed896d54139b4ae78205aee5cee3ce6f5449d94b8edb8fc19ab589bde6720eb1644502fc45fe0bd452e2e5209de83c99f7c4285a896cfaacbfdad36
+DIST rust-1.68.2-x86_64-unknown-linux-musl.tar.xz 270073164 BLAKE2B 
7d69a578e1d4a8fa75cfea6e630265f1c73cca08ed86ddc7858e7770755431dbf13ddaadcf8035fc2b7d2d7b7144a08b3e3a9fa20afcb5cfed7a31d82098fe5e
 SHA512 
b0294141f1e51176664ae841ea55991826ccd15d0d36b03471831baa202ecb97434bf96479e167772bd62f05b80b49878f89a065a91e00026f0aabe7c02fe552
+DIST rust-1.68.2-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 
7de58f292729b349fe0694c724aa88ae5bec5a313952fbf7e62a361c7fba4cdedbd99238a4a826d7b627af30ddf4aca8646f6b061f44983a52dcf2ae8d52e56a
 SHA512 
867e0c20049352fb696b99de9d0d8c5df8da0f1ea8eb9a0446884c2d741df7434bf83303694de208e75e64cd73664b979cf117d02db804bff9b4d6de8ee43638
 DIST rust-src-1.65.0.tar.xz 2488012 BLAKE2B 
d48f5591e72e14084f2fb0d66c1365f1648060d514af23c0498e02adfd7223b1a79bd1f512859b058f9cabc4b88b9230d15960df7c30762a5263d1785b877a68
 SHA512 
247f822a9c2f16d1de29d1cf6fa7ff393b7c7fe01da66a7c0b4add6259d72403922b8b1bd1b511ed8a9cc0b2c12ff574945aa7fc76c731fba620b466bcdc2eac
 DIST rust-src-1.66.1.tar.xz 2512096 BLAKE2B 
514b8f9170d8a0e9b9deeeda27c5b83c18b7f038cb27a867fc4df1a0375b5c492793e67d0f0a2c26354ed1b58c699e1ff3e19f536dec10fc8b8211325dd4999a
 SHA512 
3b77e29bf0803278d46aa5a484a2d74f242bf7f1ce6f5a6d1e84107630aa238620c91459f385f1b9f1bfb67c593ea5a274950a4db2975307cabc3a009b89f157
 DIST rust-src-1.67.1.tar.xz 2522656 BLAKE2B 
28f67cbac3d09af16f572c102890b49ffb4c610ebf379cf48ff4d0107afbb39587d2bcb7c5a4f811542f84dc3157557c762b006a6e89c54cd121d22bb677a770
 SHA512 
839266d2046b12954fd46f258a975a37c81cb61b6d2d9a5905fd6c83961d97c197f1b467c881d5078f3725293eb73ca402b002af3f47b6f7d431828f01d49a15
 DIST rust-src-1.68.1.tar.xz 2536020 BLAKE2B 
a12e2037546f7139d2e5446e2652c6aca9c5709eba756673188910799e6e3f8c444fb2969ec446b7b8e904f0828b7f85fe57a1c3027693da7ef8180415709a54
 SHA512 
e9a77ed30f65dfcabd630d5546de22d831031bb27ba72f27ed952df30c76827a5cc363f521d99b6fa3d204965a29e10ab1b0b79d36114c5d7bf887bb849fc21e
+DIST rust-src-1.68.2.tar.xz 2535692 BLAKE2B 
e56c0e48546479be30e3a22c36ccc620a69fc97486bab7fd3a45b942c6fadd160f126a805f4213cabc5d2fcf92d9fda1daa9b320d428958351ead861f617785f
 SHA512 
0ec51c6ab2720dca0790eda81460a73857a68ca5517e959fe66b4b106a5158791493e729c0aa23e64a970102d071bca0684fb748340ac90a727035c4ef74814a

diff --git a/dev-lang/rust-bin/rust-bin-1.68.2.ebuild 
b/dev-lang/rust-bin/rust-bin-1.68.2.ebuild
new file mode 100644
index 000000000000..61bcd4214d77
--- /dev/null
+++ b/dev-lang/rust-bin/rust-bin-1.68.2.ebuild
@@ -0,0 +1,229 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib prefix rust-toolchain toolchain-funcs verify-sig 
multilib-minimal
+
+MY_P="rust-${PV}"
+# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep 
"xz_url.*rust-src"
+MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-03-28/rust-src-${PV}.tar.xz"
+GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}"; # 
omit leading slash
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/";
+SRC_URI="$(rust_all_arch_uris ${MY_P})
+       rust-src? ( ${MY_SRC_URI} )
+"
+# 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 ) "
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
+SLOT="stable"
+KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86"
+IUSE="clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt"
+
+DEPEND=""
+
+RDEPEND="
+       >=app-eselect/eselect-rust-20190311
+       || (
+               dev-libs/openssl-compat:1.1.1
+               <dev-libs/openssl-3
+       )
+       sys-apps/lsb-release
+       sys-devel/gcc:*
+"
+
+BDEPEND="
+       prefix? ( dev-util/patchelf )
+       verify-sig? ( sec-keys/openpgp-keys-rust )
+"
+
+REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
+
+QA_PREBUILT="
+       opt/${P}/bin/.*
+       opt/${P}/lib/.*.so
+       opt/${P}/libexec/.*
+       opt/${P}/lib/rustlib/.*/bin/.*
+       opt/${P}/lib/rustlib/.*/lib/.*
+"
+
+# An rmeta file is custom binary format that contains the metadata for the 
crate.
+# rmeta files do not support linking, since they do not contain compiled 
object files.
+# so we can safely silence the warning for this QA check.
+QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta"
+
+VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}/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
+       if use verify-sig; then
+               for f in ${A}; do
+                       if [[ -f ${DISTDIR}/${f}.asc ]]; then
+                               verify-sig_verify_detached "${DISTDIR}/${f}" 
"${DISTDIR}/${f}.asc"
+                       fi
+               done
+       fi
+
+       default_src_unpack
+
+       mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
+}
+
+patchelf_for_bin() {
+       local filetype=$(file -b ${1})
+       if [[ ${filetype} == *ELF*interpreter* ]]; then
+               einfo "${1}'s interpreter changed"
+               patchelf ${1} --set-interpreter ${2} || die
+       elif [[ ${filetype} == *script* ]]; then
+               hprefixify ${1}
+       fi
+}
+
+multilib_src_install() {
+       if multilib_is_native_abi; then
+
+       # start native abi install
+       pushd "${S}" >/dev/null || die
+       local analysis std
+       analysis="$(grep 'analysis' ./components)"
+       std="$(grep 'std' ./components)"
+       local components="rustc,cargo,${std}"
+       use doc && components="${components},rust-docs"
+       use clippy && components="${components},clippy-preview"
+       use rustfmt && components="${components},rustfmt-preview"
+       use rust-analyzer && 
components="${components},rust-analyzer-preview,${analysis}"
+       # Rust component 'rust-src' is extracted from separate archive
+       if use rust-src; then
+               einfo "Combining rust and rust-src installers"
+               mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
+               echo rust-src >> ./components || die
+               components="${components},rust-src"
+       fi
+       ./install.sh \
+               --components="${components}" \
+               --disable-verify \
+               --prefix="${ED}/opt/${P}" \
+               --mandir="${ED}/opt/${P}/man" \
+               --disable-ldconfig \
+               || die
+
+       if use prefix; then
+               local interpreter=$(patchelf --print-interpreter 
${EPREFIX}/bin/bash)
+               ebegin "Changing interpreter to ${interpreter} for Gentoo 
prefix at ${ED}/opt/${P}/bin"
+               find "${ED}/opt/${P}/bin" -type f -print0 | \
+                       while IFS=  read -r -d '' filename; do
+                               patchelf_for_bin ${filename} ${interpreter} \; 
|| die
+                       done
+               eend $?
+       fi
+
+       local symlinks=(
+               cargo
+               rustc
+               rustdoc
+               rust-gdb
+               rust-gdbgui
+               rust-lldb
+       )
+
+       use clippy && symlinks+=( clippy-driver cargo-clippy )
+       use rustfmt && symlinks+=( rustfmt cargo-fmt )
+       use rust-analyzer && symlinks+=( rust-analyzer )
+
+       einfo "installing eselect-rust symlinks and paths"
+       local i
+       for i in "${symlinks[@]}"; do
+               # we need realpath on /usr/bin/* symlink return 
version-appended binary path.
+               # so /usr/bin/rustc should point to 
/opt/rust-bin-<ver>/bin/rustc-<ver>
+               local ver_i="${i}-bin-${PV}"
+               ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}" 
|| die
+               dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
+       done
+
+       # symlinks to switch components to active rust in eselect
+       dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
+       dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
+       dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
+       dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
+
+       # make all capital underscored variable
+       local CARGO_TRIPLET="$(rust_abi)"
+       CARGO_TRIPLET="${CARGO_TRIPLET//-/_}"
+       CARGO_TRIPLET="${CARGO_TRIPLET^^}"
+       cat <<-_EOF_ > "${T}/50${P}"
+       LDPATH="${EPREFIX}/usr/lib/rust/lib"
+       MANPATH="${EPREFIX}/usr/lib/rust/man"
+       $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C 
target-feature=-crt-static\"")
+       _EOF_
+       doenvd "${T}/50${P}"
+
+       # note: eselect-rust adds EROOT to all paths below
+       cat <<-_EOF_ > "${T}/provider-${P}"
+       /usr/bin/cargo
+       /usr/bin/rustdoc
+       /usr/bin/rust-gdb
+       /usr/bin/rust-gdbgui
+       /usr/bin/rust-lldb
+       /usr/lib/rustlib
+       /usr/lib/rust/lib
+       /usr/lib/rust/man
+       /usr/share/doc/rust
+       _EOF_
+
+       if use clippy; then
+               echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+               echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+       fi
+       if use rustfmt; then
+               echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+               echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+       fi
+       if use rust-analyzer; then
+               echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
+       fi
+
+       insinto /etc/env.d/rust
+       doins "${T}/provider-${P}"
+       popd >/dev/null || die
+       #end native abi install
+
+       else
+               local rust_target
+               rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+               dodir "/opt/${P}/lib/rustlib"
+               cp -vr 
"${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
+                       "${ED}/opt/${P}/lib/rustlib" || die
+       fi
+
+       # BUG: installs x86_64 binary on other arches
+       rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
+}
+
+pkg_postinst() {
+       eselect rust update
+
+       elog "Rust installs a helper script for calling GDB now,"
+       elog "for your convenience it is installed under 
/usr/bin/rust-gdb-bin-${PV}."
+
+       if has_version app-editors/emacs; then
+               elog "install app-emacs/rust-mode to get emacs support for 
rust."
+       fi
+
+       if has_version app-editors/gvim || has_version app-editors/vim; then
+               elog "install app-vim/rust-vim to get vim support for rust."
+       fi
+}
+
+pkg_postrm() {
+       eselect rust cleanup
+}

Reply via email to