Gentoo Archives: gentoo-commits

From: Georgy Yakovlev <gyakovlev@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/rust-bin/
Date: Mon, 06 Dec 2021 22:43:01
Message-Id: 1638830505.f26ea7df18304f50571f8129ccc00e863a076440.gyakovlev@gentoo
1 commit: f26ea7df18304f50571f8129ccc00e863a076440
2 Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
3 AuthorDate: Mon Dec 6 22:40:22 2021 +0000
4 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
5 CommitDate: Mon Dec 6 22:41:45 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f26ea7df
7
8 dev-lang/rust-bin: add 1.57.0, unkeyworded for testing
9
10 Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>
11
12 dev-lang/rust-bin/Manifest | 33 +++++
13 dev-lang/rust-bin/rust-bin-1.57.0.ebuild | 214 +++++++++++++++++++++++++++++++
14 2 files changed, 247 insertions(+)
15
16 diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest
17 index aac832bf80c7..79453c030fde 100644
18 --- a/dev-lang/rust-bin/Manifest
19 +++ b/dev-lang/rust-bin/Manifest
20 @@ -190,4 +190,37 @@ DIST rust-1.56.1-x86_64-unknown-linux-gnu.tar.xz 147853396 BLAKE2B 1d1318c9f076f
21 DIST rust-1.56.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ff984dfa092ff3c1c5a3d1a5849b8dc5807c5885dff5eca020d0b1c404484197adb8e1ea5802886b15e2b8846d0f3aa4bb161e49dc39adc151ca7d57a988ff24 SHA512 53b57ceaf621248fff020de75434c8fe60657335852c88d14ea399c7935206caaff61ce159cb2f487510336981aa1d839b91153b9764ea21ced1fb6455a16bdd
22 DIST rust-1.56.1-x86_64-unknown-linux-musl.tar.xz 255304020 BLAKE2B c379fb419b6fa1c73b9c426a4f6e46328ce2ac1beddffb1ed25922b3387147eaf0217d3904ccc14ce2b97952f1035760264ae5fc7a575f92bea84d9581d8b315 SHA512 b26d4b9f6396be87aadfbb4777d91c80cfe656570e2bf1a0350788ca45caa7178d4b91966e77c8cc4873e017fd99649ae6a82abad64b32a4eb1f5dfb3a20d45e
23 DIST rust-1.56.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B aed2703ef8cdcdf076d6538fb968f465c0a884b4c11916470324116e56a5b93fd7118b8b167ab19007ac71201044789f58de3a7ee1b60dffc47c3d123db1b4a5 SHA512 32c042982da7bde6c36bcb33fd3d9ebcb469667c880214b703e7b2cf89467e7e2bf37282cbc128d0207b9e433b7f2bd028e0d2614b657b544a552aa401bc98c8
24 +DIST rust-1.57.0-aarch64-unknown-linux-gnu.tar.xz 228665060 BLAKE2B 98fe268d060a7f19c284bf02fec148550807b6c75fad042b85f07b22c127f911e4e7e6d9738b4bef42b5a46cc888e5a0df79307cc84e39adf3ed9da3fd531188 SHA512 71d32e1ed3fc4a2eaf3594112b3b43ab82bd28b35e547542f6c1ed006175d7cf805be373a4da8b962762962dd32fe951c8ca7c0a424addad5d4e828441d5386c
25 +DIST rust-1.57.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fc832ff510b498a5763a26b420a6cdcf6b2b5fa8ce655f01ab23190f527cfaac144ac68378c6af3d3048440330f94b5d213d049c65ad87f0701b0555ebfa2b6f SHA512 a225f1db92c6e57b977873a3e5dbd07fa1288d2f8d79a879cc72dfc0dff66e70ce56619198cf36376b2774272c85363b8e8abf14efe8404f4cc038410c648ad3
26 +DIST rust-1.57.0-aarch64-unknown-linux-musl.tar.xz 224700500 BLAKE2B 2eb3122af42c499bf92b93946b20b6414d51ba895a77a8e9c53dc437a20093605b2e9f22d8f88b4fc3ca7f7b75d425a2442b36fcea54b583692c32f728f23bfc SHA512 0850861d9d2c22d76b1550e7d6b64c746c3cc24b51a68949948528bdd93621f74e6c07d23428fcdb280e884e469f2e4f2d3f9a7f81ccfa61d41265e31af3a9cb
27 +DIST rust-1.57.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B f594a31b48af2ee7835f89660a13e336f3cb2a01d99a5d48d280c06698d69712de190b35ddc682a9ac7bb6bad1edac9c3bde7262fc5a9732ea471984e1bb99a7 SHA512 aee3fd35c8e7c6b9ce651d940f8fbb17a2bd2a58d8b85421ecfb4a72d5c56878a5d129166896ea717c5b3e5b9c7f61376801d766af1c9a4d1a090327424e93db
28 +DIST rust-1.57.0-arm-unknown-linux-gnueabi.tar.xz 206890752 BLAKE2B 5d314766d333708158df7ef01d740e0cf0e71044edbdeb180f491c78a39dbf9460b62a1eb70076787e33a3199821b18734da59f892c0c251effed8e68c0eb22a SHA512 c01a6a408bf334474b2060ef70ed7c6c53e5f3a7453de74e36e59013292584a129b50530259327ae410830852173601dd9bccd1cd801d9f916d1a3e93820e481
29 +DIST rust-1.57.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 494d4eec9795de0150da9a7f5ba6cfbabd8da99dc65e5e02360ed4961e42cc3761f147ca8f7155badf61ec85d2898ec866aa5dde53e555ab34ead6b4d32c737e SHA512 31e9f00de8252e905d4de279860ab7eb287237d7d5330122b989ef2199fa8d209ef7a0cc71b83db82b78ea632d4d3b9c00b8f49a272dafd6e1f78f62055fdf4c
30 +DIST rust-1.57.0-arm-unknown-linux-gnueabihf.tar.xz 206580040 BLAKE2B 3ff02d3308cc27e2422609055a82ed36dcfb3ed2180091653d7ec21ccbb07f3685c58dc5d20f4abf4e342ce18d1d98e47c0a82180b5dccd57d09d215984e6b3d SHA512 9351db6cbc029c1051da277292bd7c3728b6ef250da20a20ee619b45938ccdcd8da1ecfec143734cc692ca3a39690f2f8cd6c332e04d0fd048943a8203eb48fc
31 +DIST rust-1.57.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B e5495533d128a99505c7856b27eeae22f85b3f0783cc0c9d52e8e8e9fbcebee6b909fd3465a7b49d1e1da2477c1864fdd048f01f7ba684ed55133c925522aad2 SHA512 bf06cd5c1f6731b02351136c7682d05e6a7114702124768b5cde1935cae4dd1147352352ad9b8dded575b90a57a6cab7c09dbe179404da0e378e992e1a67f47f
32 +DIST rust-1.57.0-armv7-unknown-linux-gnueabihf.tar.xz 211614620 BLAKE2B e8c1f68d4e0846ee9425bd1747a423e1ab6161216a3cd276fd5afc13229dad33e3993d31305e3e38b4d3f6b21bb01fcdc9612d2217778a7f91915c65f1aa91d9 SHA512 667d8f6fb56408782c7a9e0c5086013d0350d6161d52ca4cd948ea39a02ebdf657dd45cb0a135ade8bc1e856c0962040969416fa1762e3bb55a03574fff3b1d1
33 +DIST rust-1.57.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 6bcb5e7c700a53d8420baa8747c06b291988b806aca6da447c283979f7324f31087482df5606c49d287c355e31b2952d7ed9f40713bce819ab8c02d1863413ce SHA512 164ae760f53820dddf93ce7432553d1698bcfb1af53dd6054d408db87f42b6ac2d7c71da375f8486675b2c6104fef295faff481e5167288e0df782ef74cc3006
34 +DIST rust-1.57.0-i686-unknown-linux-gnu.tar.xz 223062024 BLAKE2B d0e1d3aef1764403dcaa2b1d2a5ee887562f0b59b05b2f984e848da60f772c58bdd8a6073692c6b71dc741ff3d25a784c04478260104962d308529516a56cae3 SHA512 9dc7d650bbe35d3967a883e91bfd2a3dcad633c41c00a41d9ca78bc336b1e3262bbb4100a76d42169700dc3b15d4066fa065e785aed1c0a46df4736dfd00d7c6
35 +DIST rust-1.57.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5d6f4d31e1418124cbd10a7cdb5ecbfe3334256d238e058e5524120438cebe85af68a8dfd604dc311d38e553a559b471dc71ef2870f89ed2cf05f6291e65ac0b SHA512 4957bef14da4bfc34f19d69cc64b2e06fd329566fc941e399105eea6fe4de0de90cd50c72baeaea6490f93bc4b0af14c9591584d97d84873d9c87fe7c177c6ea
36 +DIST rust-1.57.0-mips-unknown-linux-gnu.tar.xz 165094616 BLAKE2B ca5965c40ad81c24ee00f895e00e26cab1a2c0322e2517e4793872707facf03430a92934b79a3d59f349bfb7513be4d1914073fc3b20300d5fd5c332bcb08224 SHA512 1fbd2aeb8e24d236f97c81a4136917cc8c705724c72567be095323a878ee18ed646fc2f4bec446a9a505fc4c88a708efa901970fdb00a67179c34cf97906a3b4
37 +DIST rust-1.57.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 230ccb3a534515c9ecd1ca2a3fced2e3688547a3ce42967eb06d7a04b79695eca74f1cf13583631139801a7ad60a31c7f6a1b2821dd13aceabc95386122034a0 SHA512 91313f0ed942d23bb490dffbc4b7eb9a441a09ff5925323df68a38c15aa4e3f5c1bad15c2700ccba8625fb35588135a9ba5f09c7bc5ba7d4f8486fed268a8000
38 +DIST rust-1.57.0-mips64-unknown-linux-gnuabi64.tar.xz 170276060 BLAKE2B 0c6defb288bdb11a8c81ab082944196c767424b8bab6997a51279c7c6ef6c1163c9715493b274420bca9d3f5e7fe7422d403a24162effc3cd880633641d23995 SHA512 339d1dc24e1227195b1fa1a72ceddf592026b4edf234141567e8b8c33c80e07aea71dd73962182783b60271829db8544e1ca6172aaf5ed5ae1cade848355508c
39 +DIST rust-1.57.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 3b6ebc9e8678946f57e30452a880be3bf5a5a949683e7230cbda776511fd68a7278ecfc741c823d2d1362f200af19cbc25db7d67ab4ade8561a3d9224fd0313e SHA512 0a161f676162684da557d010de4833a6ef229592b6cb9cf55938cb85d12685e28fb0e4e204688b9c9f203b34095831de06c25a4fea48a8ef17226b15a214af0f
40 +DIST rust-1.57.0-mipsel-unknown-linux-gnu.tar.xz 168175700 BLAKE2B d544173e64d81b5cf74f16810f0c00fab0e2b628f90a554a33596b1b3140ef5183db5123f956ff71269761915469a7d51bdb945c02217f47529ae45f1200edc5 SHA512 7963364478ca613ca8670cc71b72e8423febe3062269ea1e5e82358d54c6d5e5006f85c69ae5c746bec296bd3e97883358ab27a9aaf59703984fa4186c5e01c7
41 +DIST rust-1.57.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a4056c8006cc5f3d7a548b55ff85f42003d19a7323bd3829c79ba370837c1982a0ca6d15e5d2dac9a4c75251662b375c8243ba0d2682b684b6fe258b25c32fbb SHA512 3db703e462c5c2e974e039c986094ae2bcbdf5e4b2163bbca4d20062be2e54b39f04d72d3f5929886f65e79f19a041e01cb17ec73db4611c3208b51efa2b7e89
42 +DIST rust-1.57.0-powerpc-unknown-linux-gnu.tar.xz 183173668 BLAKE2B 8d897751ce518f0e7fac16fa67645b73337cf2aeca20ffc8ceeace6591043a1b69cae9ba8af6271ad2b7b4448a64e4b5063a2efcb2cebc72c1d0a95c576dc07a SHA512 10ca7a769b53453c503d8da2ebd5da49e016d31a92e898c4aea4129cf1225330b2e1b4ac1893860741efd9ddc9ce409ff9d9fc00536b960efc928562f2e169a3
43 +DIST rust-1.57.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b7cfe911745b76e8b2a7090db19a6cc973ff361b0fc23c1d3d104c08554d7818866a6832c89cd8e1dbb519de72618ab362c9e6b1971a2babd0af607c9db9b0e0 SHA512 385c022053f6e102aa9c96c49703bd441b466129bffc5fb3c233f432edf2f2adad5e9979e0b657016eec33cf4b6c7bf31131a0e831c990d071d7da758f5e03d8
44 +DIST rust-1.57.0-powerpc64-unknown-linux-gnu.tar.xz 193868872 BLAKE2B f60c9d320fa6ca0d3b52dc27b22efb50115a1338ce12ea1071499d3abbd60e17c4866a59495fbca725eafef3675b9ca9417c87cad0262541955d2e308eb79f2e SHA512 4b5b2d461cd093f176c1624b29d4174bf9558e8760f7be84b9f9e353e09b622d89548e5bdc91305cf76a072ed2b64f4692b1864b90c86ba7e1a7a9e5df205adb
45 +DIST rust-1.57.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 26ea554afaca2e453130d400d3315d0c857e4ab92d5c0cfd21035548160a3c00f801adcbc24387aa6f56bc2907e3aaa3712b4bf35abc10128e3e712b3a451043 SHA512 90ff52af04044b073855c2a91bfe2bdb8fb8397a2d59ca50e38e5e235bd3379d993917546d1dacf3c25db6ec386f967cb8c9c5c7a1b76b06fa60d50a5c066176
46 +DIST rust-1.57.0-powerpc64le-unknown-linux-gnu.tar.xz 203489092 BLAKE2B 5174c149bd6565ed2b709356caf940f7c051a1933a35f9801a31331358277e80d5262a73ea47d484abb2c12ad26c52bbeea5d2ee30f4c8b45e163d5fc788d848 SHA512 7e0809b66086f1c9dde14df5bd9f08757e32bb58041b74150415f798d81cb4ca01a6d69d529efe8a93026f251aa8f1711520defa8d86de64f20d9055ee1568e5
47 +DIST rust-1.57.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0ed205cf7d3712e3501c228ad7d116331eb3c831437040dc7d4cbfa86de80372db1b116bd2c88ef9c05c57279499dc7cb6a394c216e89a69a6b033d56e4108b0 SHA512 2a3fd37e32382c747227f35e144966bbd241d57b9e06acdb444ed0ac68cf174dd21c565448d9e7ec032d14dbf6de580ca37e6d10b66446dcbef35b0dd35a2c1d
48 +DIST rust-1.57.0-riscv64gc-unknown-linux-gnu.tar.xz 196918164 BLAKE2B b41e958b690a5f6f46744dd38a464a0de0b80d9b4974f1fea46bbce8b26c37b88ffeb3b42e9cd6a3006e8ad8b89a990945dcf1e814041399f6fa8831089c074f SHA512 43c11df8b6621c4e3ccbbb81c043cc3b2f8c897f5d80b03a39ec73d0d73f1a3fafa1a8a607fcf6e16204eb424ead7b9dee0ffd401c185440c4a7b80e84921f5a
49 +DIST rust-1.57.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c55cc1c7c3e80bdb0527fcfe9b3a0bcb7edf84bea85e842ea425b5498247aaa8ffe19f05f1a2d8c93801dbf1d5e308760e8222311914179deb01f910aae279fe SHA512 df0d218a78eda0d005bb88e18a314f326165776449f28d4cd1aa014efa0e6870bacd2580f5958250e9a00de75c7327b20b4586606a8b120a7d658641759be61e
50 +DIST rust-1.57.0-s390x-unknown-linux-gnu.tar.xz 198621068 BLAKE2B 92af932e06c529ef27e389d35532cb7eed482c36bcc196d6c6934a442cc180815862ad7ee92c4ed97f69963ef6cfd617cab2bc254a81ffd35d88de267fb5d084 SHA512 4cc63e93bbafcbba2122a862200bf1dd241fe84f526778e1877c14237984fdeccdd3d2b3dfe73428b1b97bd253c1ddf98f4302f40709abbdd52ec721d5ccdb6e
51 +DIST rust-1.57.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c088d5904ecaadcad09d21dcffcbe1856ea2165cb45fcdce31ebad6edddfeb292bb644548537219ec301c4f5e417091d879093a627ea5efb4409e1db36771431 SHA512 c1c2f43033ba1a2ed28e8c60a18cc0de1dfdc7f5361c101cb8318f0f2c3be911784e7d1cc3a61456f1b2c39a5b6df2915b9e56e20dbfdfeb959addf4dc93f01e
52 +DIST rust-1.57.0-x86_64-unknown-linux-gnu.tar.xz 151033748 BLAKE2B 61ecece6a8aa31a2cdf8dcf22514c19a54fcfda3a1248797a6a98e9bc42cf4f4278be21369270a6418b7c416875394055fceb49b5b1d21625e2759b97b2447e8 SHA512 54016b58fe85208c0d98e61cb52f2549bbb9731d7d631b4964663c91c91b7ea0ff4c224c3d29a770de433e6a0bcd92d2fe757563bf68e224a20c1cec6d031a7e
53 +DIST rust-1.57.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ea41b27fd25cc75efac73203688ee0882767fc76a2fe09b5e424c42467d3e332463c5560cc58f3b20f6e4b44289a25cfb0d36e38a7a9a7b3950ef875a59dc9ae SHA512 8b955bfce6c130e4b95054b98646f7f9b89e621256759ee1ff533df5f777312dd7adbb192ee0076c9b9baa6883a74a9def50ef598ba8c707762290d465c9a8b7
54 +DIST rust-1.57.0-x86_64-unknown-linux-musl.tar.xz 260333980 BLAKE2B 75342ae8637355e714d5217d78604cfa6a601d3f9bc0ed4667ff0ca57c6521567b19b9bdb10f79761e2e5fd21ca10e12f3fae0c65791118fdb0c35f8f88349f4 SHA512 204ed493528757b8e3e8df13d062c9ae74c75c3e3adc1a2efc0dfc33d2525629168a558dd32653f44a4365191bf203a4415a77152276288a8e122e6bd587394a
55 +DIST rust-1.57.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 506400c3ea70469cbda0e492e85d41b7f94fba790ec19d1c3491bf4a00d283f97c8fb37319ad6c4a43b22a2195c21d1b9e3c16a5b2a9a82833ff61ad49bdc793 SHA512 793369dc7a854c48a72d81446a0c8eb9d83a071af77758e0bcbb8e4d518fb87c5a23c085202b9b427a02bdd772ad9c82724b34295b851f26f384c3e801bf9a04
56 DIST rust-src-1.56.1.tar.xz 2456408 BLAKE2B 19cd9ac0c0c57d077e2a62e6ef202cf8f349582870d0acf28b105278da611e3e3884b1db59cb43c1a13c8f0ff546f83f8ac30783e46f99233a0a81df04dfd359 SHA512 6ebcb7e641031b269af244f0a14ef23c5a6c324d8c9f8f9ffe3b1802fb2aad522b10544f6c29789950dd2a9fe7cbbdb6587f793ec8f53881e707734bbaf3a3d6
57 +DIST rust-src-1.57.0.tar.xz 2536924 BLAKE2B bdc8bfcf6ee3fbd0be3b9bf1ea8faa34bb45247d35bad5a7c5684f74ce061de3399d05209cabd18d01c7f73703c5e11cc49765fd7a0230e95484922e96e187de SHA512 24d86a7e1f8cd63b9571003604374cc251c575ce351253cf5ce676f34fa8aff574bc9e305de0d62b42a0d699e792fc072867981908ceebcd75b2bd6aa71a0867
58
59 diff --git a/dev-lang/rust-bin/rust-bin-1.57.0.ebuild b/dev-lang/rust-bin/rust-bin-1.57.0.ebuild
60 new file mode 100644
61 index 000000000000..f2f12b83f797
62 --- /dev/null
63 +++ b/dev-lang/rust-bin/rust-bin-1.57.0.ebuild
64 @@ -0,0 +1,214 @@
65 +# Copyright 1999-2021 Gentoo Authors
66 +# Distributed under the terms of the GNU General Public License v2
67 +
68 +EAPI=7
69 +
70 +inherit prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
71 +
72 +MY_P="rust-${PV}"
73 +# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
74 +MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2021-12-02/rust-src-${PV}.tar.xz"
75 +
76 +DESCRIPTION="Systems programming language from Mozilla"
77 +HOMEPAGE="https://www.rust-lang.org/"
78 +SRC_URI="$(rust_all_arch_uris ${MY_P})
79 + rust-src? ( ${MY_SRC_URI} )
80 +"
81 +
82 +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
83 +SLOT="stable"
84 +#KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
85 +IUSE="clippy cpu_flags_x86_sse2 doc prefix rls rust-src rustfmt"
86 +
87 +DEPEND=""
88 +RDEPEND=">=app-eselect/eselect-rust-20190311"
89 +BDEPEND="
90 + prefix? ( dev-util/patchelf )
91 + verify-sig? ( app-crypt/openpgp-keys-rust )
92 +"
93 +
94 +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
95 +
96 +QA_PREBUILT="
97 + opt/${P}/bin/.*
98 + opt/${P}/lib/.*.so
99 + opt/${P}/libexec/.*
100 + opt/${P}/lib/rustlib/.*/bin/.*
101 + opt/${P}/lib/rustlib/.*/lib/.*
102 +"
103 +
104 +# An rmeta file is custom binary format that contains the metadata for the crate.
105 +# rmeta files do not support linking, since they do not contain compiled object files.
106 +# so we can safely silence the warning for this QA check.
107 +QA_EXECSTACK="opt/${P}/lib/rustlib/*/lib*.rlib:lib.rmeta"
108 +
109 +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}/usr/share/openpgp-keys/rust.asc"
110 +
111 +pkg_pretend() {
112 + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
113 + die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
114 + fi
115 +}
116 +
117 +src_unpack() {
118 + # sadly rust-src tarball does not have corresponding .asc file
119 + # so do partial verification
120 + if use verify-sig; then
121 + for f in ${A}; do
122 + if [[ -f ${DISTDIR}/${f}.asc ]]; then
123 + verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc"
124 + fi
125 + done
126 + fi
127 +
128 + default_src_unpack
129 +
130 + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
131 +}
132 +
133 +patchelf_for_bin() {
134 + local filetype=$(file -b ${1})
135 + if [[ ${filetype} == *ELF*interpreter* ]]; then
136 + einfo "${1}'s interpreter changed"
137 + patchelf ${1} --set-interpreter ${2} || die
138 + elif [[ ${filetype} == *script* ]]; then
139 + hprefixify ${1}
140 + fi
141 +}
142 +
143 +multilib_src_install() {
144 + if multilib_is_native_abi; then
145 +
146 + # start native abi install
147 + pushd "${S}" >/dev/null || die
148 + local analysis std
149 + analysis="$(grep 'analysis' ./components)"
150 + std="$(grep 'std' ./components)"
151 + local components="rustc,cargo,${std}"
152 + use doc && components="${components},rust-docs"
153 + use clippy && components="${components},clippy-preview"
154 + use rls && components="${components},rls-preview,${analysis}"
155 + use rustfmt && components="${components},rustfmt-preview"
156 + # Rust component 'rust-src' is extracted from separate archive
157 + if use rust-src; then
158 + einfo "Combining rust and rust-src installers"
159 + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die
160 + echo rust-src >> ./components || die
161 + components="${components},rust-src"
162 + fi
163 + ./install.sh \
164 + --components="${components}" \
165 + --disable-verify \
166 + --prefix="${ED}/opt/${P}" \
167 + --mandir="${ED}/opt/${P}/man" \
168 + --disable-ldconfig \
169 + || die
170 +
171 + if use prefix; then
172 + local interpreter=$(patchelf --print-interpreter ${EPREFIX}/bin/bash)
173 + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
174 + find "${ED}/opt/${P}/bin" -type f -print0 | \
175 + while IFS= read -r -d '' filename; do
176 + patchelf_for_bin ${filename} ${interpreter} \; || die
177 + done
178 + eend $?
179 + fi
180 +
181 + local symlinks=(
182 + cargo
183 + rustc
184 + rustdoc
185 + rust-gdb
186 + rust-gdbgui
187 + rust-lldb
188 + )
189 +
190 + use clippy && symlinks+=( clippy-driver cargo-clippy )
191 + use rls && symlinks+=( rls )
192 + use rustfmt && symlinks+=( rustfmt cargo-fmt )
193 +
194 + einfo "installing eselect-rust symlinks and paths"
195 + local i
196 + for i in "${symlinks[@]}"; do
197 + # we need realpath on /usr/bin/* symlink return version-appended binary path.
198 + # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
199 + local ver_i="${i}-bin-${PV}"
200 + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}"
201 + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
202 + done
203 +
204 + # symlinks to switch components to active rust in eselect
205 + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
206 + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
207 + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
208 + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
209 +
210 + # musl logic can be improved a bit, but fine as is for now
211 + cat <<-_EOF_ > "${T}/50${P}"
212 + LDPATH="${EPREFIX}/usr/lib/rust/lib"
213 + MANPATH="${EPREFIX}/usr/lib/rust/man"
214 + $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
215 + $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
216 + _EOF_
217 + doenvd "${T}/50${P}"
218 +
219 + # note: eselect-rust adds EROOT to all paths below
220 + cat <<-_EOF_ > "${T}/provider-${P}"
221 + /usr/bin/cargo
222 + /usr/bin/rustdoc
223 + /usr/bin/rust-gdb
224 + /usr/bin/rust-gdbgui
225 + /usr/bin/rust-lldb
226 + /usr/lib/rustlib
227 + /usr/lib/rust/lib
228 + /usr/lib/rust/man
229 + /usr/share/doc/rust
230 + _EOF_
231 +
232 + if use clippy; then
233 + echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
234 + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
235 + fi
236 + if use rls; then
237 + echo /usr/bin/rls >> "${T}/provider-${P}"
238 + fi
239 + if use rustfmt; then
240 + echo /usr/bin/rustfmt >> "${T}/provider-${P}"
241 + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
242 + fi
243 +
244 + insinto /etc/env.d/rust
245 + doins "${T}/provider-${P}"
246 + popd >/dev/null || die
247 + #end native abi install
248 +
249 + else
250 + local rust_target
251 + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
252 + dodir "/opt/${P}/lib/rustlib"
253 + cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
254 + "${ED}/opt/${P}/lib/rustlib" || die
255 + fi
256 +
257 + # BUG: installs x86_64 binary on other arches
258 + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
259 +}
260 +
261 +pkg_postinst() {
262 + eselect rust update
263 +
264 + elog "Rust installs a helper script for calling GDB now,"
265 + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
266 +
267 + if has_version app-editors/emacs; then
268 + elog "install app-emacs/rust-mode to get emacs support for rust."
269 + fi
270 +
271 + if has_version app-editors/gvim || has_version app-editors/vim; then
272 + elog "install app-vim/rust-vim to get vim support for rust."
273 + fi
274 +}
275 +
276 +pkg_postrm() {
277 + eselect rust cleanup
278 +}