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: Fri, 18 Jun 2021 00:44:19
Message-Id: 1623976992.8f0ba1a48534691863d0ede675424928e1c678ae.gyakovlev@gentoo
1 commit: 8f0ba1a48534691863d0ede675424928e1c678ae
2 Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
3 AuthorDate: Thu Jun 17 20:03:11 2021 +0000
4 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
5 CommitDate: Fri Jun 18 00:43:12 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8f0ba1a4
7
8 dev-lang/rust-bin: add 1.53.0
9
10 Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>
11
12 dev-lang/rust-bin/Manifest | 32 ++++++
13 dev-lang/rust-bin/rust-bin-1.53.0.ebuild | 187 +++++++++++++++++++++++++++++++
14 2 files changed, 219 insertions(+)
15
16 diff --git a/dev-lang/rust-bin/Manifest b/dev-lang/rust-bin/Manifest
17 index bcba0aa4cc4..8309abdb712 100644
18 --- a/dev-lang/rust-bin/Manifest
19 +++ b/dev-lang/rust-bin/Manifest
20 @@ -62,3 +62,35 @@ DIST rust-1.52.1-x86_64-unknown-linux-gnu.tar.xz 142761092 BLAKE2B 1edd915373f09
21 DIST rust-1.52.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e013c0fdfb4f9d90997763e9842dddfa4d707818a2a606893be9bcb199c54aba191e34a37decb7d15edaa1bfe14a228eb9ce8acc27f3d1f701676ec97a65ee33 SHA512 cc7956699f102de534ea69b3a620f2d937f1824424742722d5fad0e7f3009626edb95ed4036a8de44e41b429d584bed0f57baebde72970bd42e45e865194507a
22 DIST rust-1.52.1-x86_64-unknown-linux-musl.tar.xz 239386548 BLAKE2B 404e8afe160b8d3e03ab31d04439f1b19a106864882398d2a2fbe31287db7ef60869e5d91d80591e7eeaced24a5d04b552e0fee1ddce37c09fe8679945d83dfd SHA512 3bf62ff12da190b0025c4ddc906d1212bf82db6936d724f81d3f289b005126c83c365226a94928db2bc8e878e974b4ecdd0f173b1873f4a55ac4d5087407b141
23 DIST rust-1.52.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B a9c7e7ae792f05a4078d97bb165d6a2a12c39386ac5ee5cbdd005eae8f6b7d9e7da3dd13d495f5370d86cfa917f090c7d426c7ac3ca479750665bf4f89322e04 SHA512 343727431af8ad88e961997bf15b31eac65b8235befdd0f841a1ce98b8dc89a70d517f4ef499a7b366630ea2374810635334694b51ca05da370456875d718191
24 +DIST rust-1.53.0-aarch64-unknown-linux-gnu.tar.xz 216240932 BLAKE2B a63eacafe8c9194095cb3ee0856b22c66b210746c208ecbc6495800eca9b480d31d84ebde29ffbb7dc8464dcee164f4da96d7479f73facee6352a74488073c1a SHA512 aed515e60e5eb22478b864f7e9aa74b99b9843afe6d1fcc9d0ad78bfd48a39b0d9c8ee7b785f273c3bf5d3a173c169fd6dcd5c64fa67c49285803ff4598d9f59
25 +DIST rust-1.53.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 15822fc4762caa2086cb4b4300d1eff2c8401932fe5ca8d12926b7ccd8b950940d4aa43daf288765d55da8a19db781129e4e3f83ea5297fca28f814738826dab SHA512 49e4c27f498faf1e95c5061786771e5008043e4b030fb91b3c1cc406f424a541ddaac435c7065659e27ce379d46ca78cf4f10073c8dc2148be715b621b824981
26 +DIST rust-1.53.0-aarch64-unknown-linux-musl.tar.xz 213585000 BLAKE2B db26a6d09645b7feded883bdc81d233ff3319a10c42bcf1b4fbc82c499f0099ec83c2de8f175f141daf1d3ea15ac13b835c9e0bdd92edb25fc0e4d91642e96ab SHA512 fc72513ce66784b5f9aa5797bfd6ce35f50e9494d0515371599e94f72bd784fc40357a540d23ef29f08d1733be240ad1c11d68d21550d1ddd55642d2770b06ca
27 +DIST rust-1.53.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 1468ff2faec1ea7e43371c5717d5db5eca6ab5376dbd3bd5a5785846ca473f14a90b2a7b978a56329a05111d509b860d834be3fe47263eac8de3ffdc57597a2f SHA512 dacce8e3f8b7c20accc2ae5073165ac86d4ab60cc3da772cf672afd080245dbb37ed4367379408cd359bad29d469eab138394ef87c32a39a075b0c0fb8a2e4ef
28 +DIST rust-1.53.0-arm-unknown-linux-gnueabi.tar.xz 195762312 BLAKE2B 44e8ab86b4970f7312b631d6733a3198756b28286d0e072294d75f59dcce15ebd470e92972d3133e901b6b14d35c6c3cd8afdb185435cc0c8e8c215676f3f8a4 SHA512 64976e51ca98bd57de4a9b17236ac815e5198ea57b018f8cf45a252abb9a681df4c1b11bd647145d5d9fe4570a36e01540cb7c145a11a414d4419611026f2227
29 +DIST rust-1.53.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B d01f42174bfd33e7c069c4aae68a71768ab33496f3764f3238e3a852e6ed11c02153f4dc40a5afc6f279d696c099093808d1887721c085a946dfab15caab6dc9 SHA512 73b86591c1790a98c59be4cce89472bd80171a0b80b509c0c345cc22de9faaa6d9e74fe50618bc1cf83d19ca8c7de9fdf35071a51ba6f4468001bbf6c72caf22
30 +DIST rust-1.53.0-arm-unknown-linux-gnueabihf.tar.xz 195620064 BLAKE2B 11e09a7cfecdac13911f47ac66eef6e4f419d83e1bf2cc7a01659219ca1255fb2987fbaee95e8dc5dca14616dcb59f69f4841f9f92250b22dd20be67ec9a2d0b SHA512 37749caf422fdc025101c938f39c0539ea33c4c8f17b76485c34a8ba9017e552bb64ab1d827c118e8047ecff4cc79da6a116df641ccc49d220079c0e6c5effd5
31 +DIST rust-1.53.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 2bdc454ee8bb482eedba513b86ed7a38d356761e0a8b48c18c3753668250db7bea9b32b7667dde46b7942282ed9ed3a911e478b0dd35ef22fc89e8625a009b6f SHA512 261831baa9a1d02c58677931c3db36b8ba0f9b1ecb533b993f8c62b5f5329ae7c9b366f346879f95c03b7b13e97b5bfad363815392ea0c55bb72b039c5f1e71b
32 +DIST rust-1.53.0-armv7-unknown-linux-gnueabihf.tar.xz 201618680 BLAKE2B eb2e7a7f2b32ed9667342df7881c9e411619fa31d0805e54d91a7a4cd9c2b7a4b603adb4f288f20b82e0d8257c3526b92d34586dd3c42e857f9f2c2c68608006 SHA512 a3c5f4f0d19a55e51b3a0fbc7dc9f168cc6eb0b9ccbca34e4e5a83f70e4e22149cfc4fa51bf878ec39e5b2988e198630fed32620bf151ad9359c70db2f9af28a
33 +DIST rust-1.53.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 91effad238727c142e4617f548101e6b50c49765203919908604e8ab8e4706a7a962561f34823ff3d04e59ba8345496d6c994270367e6c256f214e3e4f1e7879 SHA512 1cf21620aed1752d0e7bf83264b5afa799e5d86a1e1fa49944b956f8626b28afe8d465923ad6126ca4b5cb7e6cbc9e72469685f46001ded78113687001b120ac
34 +DIST rust-1.53.0-i686-unknown-linux-gnu.tar.xz 220103312 BLAKE2B 9678804edcc7bc5161d704bb28c385c9294496266f653ebc6bd3ed979969d843927593b5f05cfb87a4caf35601da42a7318be4aa9764a8024bc2576cafa8bffd SHA512 404969329b88ce3f3078837e7bd33de28babf0834e366f5663abab79bf810f2c0ddfeea304bb6289415862afc50289d897cb92fc3f0c0ee8a40bcfc8c23b567c
35 +DIST rust-1.53.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f03d9a9d3ec8e05be28f2d270ba94f7fe7572b3678d7c4ba28f03ea571dfb8a078866a5f3069b9c5086bd354fd870e8ebadaeb08e367d07d90a8fb0992700e0a SHA512 efc69883330307976582f65a2562ffc76e110af7a4eef10ff9234cdeaf50f8971154dccb36608d338259fc02e48825078e12d582d61609bb22026daa3a8d0f50
36 +DIST rust-1.53.0-mips-unknown-linux-gnu.tar.xz 157896460 BLAKE2B 8fe6a70ba1bb17cd92e58f2e8f6315eafb04870acf99b30cc4311387c5c3e021a7927ba1cd4a9081a833be9ca07032f4f6dc1f1464133b53c49a5719352a31dd SHA512 6b76a2f6a35366336410f8e293f9828ae3d9a23412c52abdf7bbb0055a50ba3a19c6becf7c8cd3a81b1d3c65dbe8c60b8bea6583013d207c49c89052111c373b
37 +DIST rust-1.53.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bcb1100430e98969def3de8cad66022c2c7442fbe8315c70dcc6a5f4d7990f11f127db51f5e60c86d0d45d36af2ad87f551146ecce50c81a56a46fa2b7a05823 SHA512 406c493fba40c706019c980777f43b9531112d5c99bd79f5726698d94308fd0121bc30272f2d12667179a32d7bdf9f23bbfe3f133fd99640bb378f0602361aaf
38 +DIST rust-1.53.0-mips64-unknown-linux-gnuabi64.tar.xz 165679184 BLAKE2B fe7f20759899a7dc3fd6db247fcf4a5360c64d7f03ee8a526b7a025e5dd5360a645da9cd0104e2156b1fbfbe1022d31f222fead7a4df65ff1d40e2dcbcdf32cd SHA512 f8c1fc4ca7a958ace63ca008f70d5b56d12862e1c3c00cc29d62a692c7a282de68c1969f996fb93cc7247c671f09e694dbade9b1f9464c95c809cfccca8fa6a2
39 +DIST rust-1.53.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 62f3809e249c8f8d47f1f5356d999b6e051f7c55b21b82bb6fc9403d55462648f348f7e4821d604fbf7d36761b876f2af673c0693134ff9ae2dd7fd574292a10 SHA512 ce00c5e7b8db9506c88edc1160a9c7a3114456873b3fd164f384cdf22b41dcf59c36095180a729d09760ae95e4a7cd7cd5926bd148f0acf03434fc914bb73bfd
40 +DIST rust-1.53.0-mipsel-unknown-linux-gnu.tar.xz 159577548 BLAKE2B 0742cdbecbe492186ed9ea15f3d8795354a6e63c131cf683f96b2a494c4cad11b2fefced9a7d8be2700677a8aa495bbae05c96fdc0fab0fe69a36e67d5440a94 SHA512 eda7b827b64baf325be7f42fd3fc5d4a487d243ba83d0573e7eb1861c8ed510e8c2fdbe499f6c46ee9aaaf3b0017e235d758222ae5d7f88f8abd76f5eed8bdaf
41 +DIST rust-1.53.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B fa574a037814d6e15970a6588721d7626dd9fbd5da567770a62b31ff9fb7158cdf4b5bbce42c7be384a647138ce4d1bd8d08e148b429d58f284fb0e9a855aedd SHA512 5dc1097534ca36c9c8867f3c736b34f36006afa6add46a8c1a406414278abc2487f3778dcd162edd21534c0fee81b181caa3c633f3105b93ca759896c268f580
42 +DIST rust-1.53.0-powerpc-unknown-linux-gnu.tar.xz 173771788 BLAKE2B ac83aaab909151ab1cb3f8d9de696dc692356ad5696208b7879b3a8e2fd8a584b59c921c6259dc913f1faf06bcf073a2e27ee876e01e7d751cbfc39df26849dd SHA512 0fe291660b975f9051b2ef045033577785b0f1d513a351d94efb7f4406fa6a3c59b11c7c7208adc15e3840bca704c4c826c51a2f6f762eab2ee812767bdb4034
43 +DIST rust-1.53.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 097927a93b86187b8b5520c6d6f0de345956fd4b52ce823611bbbddb71608b032d4be593d42c433a6156296132f98fa23b4a32bbd0423a26806cfcc54f5b2799 SHA512 babd75f4f0850b8fa11171dfeca1185ace1f6ea5ed4a672b598771c28f2eb7568d9696824ae405ae468b58543262d22892c12eb8201b730d73a09ad68f702457
44 +DIST rust-1.53.0-powerpc64-unknown-linux-gnu.tar.xz 184849964 BLAKE2B ac498b1cdb7909c3812bce66359f4197cce3e7c4eee4c7702d251f896c09c1ff388f50fe16a0f6a671c04d9243eb8948e64dc84b1c96ab37dc7d67f9c3c63c16 SHA512 573815b4b93e2484108990814c8c63cc8c783b1909c24ff9c856b3920ec3553016aed66309e459bae5d16319ae925f470c6449aeae653791af4a90384ccb9be8
45 +DIST rust-1.53.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1f8cd752429865e448899ad6a7ed337f30a0fc52be0c2674c727b182bac25302f1ecf6e1db199c24ddfbbe62c05957a93999201753f1b8f6f9d54508e78f91c5 SHA512 5e41ce5e6be48b0148f57e686203520d1d7b70516d1a991035f0073a666f896bc964b26c710db7284d87de455a293b8c97d33bbfbca1a63077e8ed0dc197b4bb
46 +DIST rust-1.53.0-powerpc64le-unknown-linux-gnu.tar.xz 194345592 BLAKE2B e0758697ae3da0c00f60e93e5e665d8f0d6346c9b0e48d39eda4666d8bc01432263b39798f2e1b4f46267d572518289a6cf1313f7225ef25f38e9ecfbd39d813 SHA512 f418272864889635494553cd1f6216b0487c016c31603532920e45435da85154f6ec275bee6d2a32ef6755fb12f57151ce2d3c7c5d6d97c2eb3d81f7c2842c48
47 +DIST rust-1.53.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e577b834c6173bc90e671d28fac974eda672cb888c4ce6dcf012687edd3f21fa603e47c27c08c042079b239d1d63915f7db7e0e37dc97f171f4d9d141979c564 SHA512 df255926f1468658ada27e4f9d78af2d204142e205108724cb4ce740cdbb019a34e4b3f1a6c88c05c9b5c2da0b5fd92b46eee1f6fddf3ec3e80a2020a459e4bc
48 +DIST rust-1.53.0-riscv64gc-unknown-linux-gnu.tar.xz 181354760 BLAKE2B f99fcf4ae35163371e42e10cc61429c53874858311f55dfb480763bf818c64c05148a6487ec7cb5b150e902260f9afb48566ec2712d6fda058808ec1c2bfc517 SHA512 ef06941ff66f9d9a5723352ccb10c3958f4edfdc542f348145d65b4c5d123f750dd3c07b3146a359316c402a9ff032ddf7e48d28a75cbfb668df4d42d7c8aa6d
49 +DIST rust-1.53.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 03c3c367e79dd056e61cef642e373b62d4d66d54a70ff81e53f2d6c0819da1411563410b8ec0a28e6c310e291cea70edb1299038dd92691590046dc99ef52fe8 SHA512 bc337fca44914408f8a7c4c22b3f9d50887d44483c863560864d94614da235c8a53b272cfd297fd4643bfac5abebc0a84e3af3b81434eacddeca8aa920f2e727
50 +DIST rust-1.53.0-s390x-unknown-linux-gnu.tar.xz 193691664 BLAKE2B 627431518faafa7bc0ecd07ed1d315d9e73029c47773feaaa6e4f9c27c4e0c730fb51b8017d4f6966d8ccceda2af93592239dea99269a741b7f5ce54e93e29eb SHA512 ca142b436b1396ad978ba1d1a0993a4bba105d9e99bf89a9aea731b7406399a2132a531664fa6fec17af20f99ebd5c0a7ad329d2b143565fb878f4e7290aeb4c
51 +DIST rust-1.53.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c0e13c32eb4f8a4eb3dbae03853c38351a608ddee13a22475080d7afe7f1dfa12d894e6701786e3c9841e285266262b8143154ba4d130e6c3e5d7bdf5cd41075 SHA512 eca733edac17aa2d1de8f7f09835826ea31e1d1ec06d9c817370d6508f0bd444378ff530281dc5cab91df0db5ba53a45117baddb94d77a2c050c9f886860a040
52 +DIST rust-1.53.0-x86_64-unknown-linux-gnu.tar.xz 147158552 BLAKE2B 0e3037221da381ceee360ac005a98bf581dd143357835dcd5f5b39f7337e4de566666b21c62a794d1d20473b31004b8742cf84ca273cffc03b378853a4ebbb84 SHA512 3b1ee4a549917fc514de7dfb99392cfa058cb06fb93266e4864d4df3ff86372eeef9a9d2a459f93462eaab8f223d3eaff1e824d42be7b983c44d18ec1579c6fa
53 +DIST rust-1.53.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b40e46258e54771b814e07433318eb05e471c8bb65bfe016ad3830b94fe0be5234a1c9821c746cc452714719a78f24c5e0012f1d4c81569b36c6161c50ae034f SHA512 ecea8c4df0b72fa70d3a9a0c4b38812424006f21832c8805c9070ae4ee5255bfe6a7153eb44d453302162c7fc8a1a2dd6bb8574bedeb4e4f7a769d51de2cbde9
54 +DIST rust-1.53.0-x86_64-unknown-linux-musl.tar.xz 252250024 BLAKE2B e99c7a78d6d6a8b357ac17cdaa9540cc895d138480ddea25866d2f8235b48b6a1670ba7c9256355ddecfade28bed9eeec8b53e85f1c13af5c56c0ba7a12e2371 SHA512 33ee4d82cc1feeb4c478948a05eb44f7daa90f749191bd200a216dabe810420f47a3a258255c680302ddbc83020df4729d5b3ca9569003a89aa7768697e2fb64
55 +DIST rust-1.53.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 24283ac5457eb84de6a5588f69a22076a78c2ce9e5c3c245608bf963544a5c9f8fa8006e2ae216af65f5083cf5fe21f4d1c5286cf0b491ef4995be5ab8ac7c64 SHA512 fbd6b1477efbfc23da3f4f753c317f714a29495425a52d771d2527a42cfe7ad99b9973538da0978a6afa80f545823c9d0448d9cd29e6ef53559252e328d7deb8
56
57 diff --git a/dev-lang/rust-bin/rust-bin-1.53.0.ebuild b/dev-lang/rust-bin/rust-bin-1.53.0.ebuild
58 new file mode 100644
59 index 00000000000..847e81b4f25
60 --- /dev/null
61 +++ b/dev-lang/rust-bin/rust-bin-1.53.0.ebuild
62 @@ -0,0 +1,187 @@
63 +# Copyright 1999-2021 Gentoo Authors
64 +# Distributed under the terms of the GNU General Public License v2
65 +
66 +EAPI=7
67 +
68 +inherit bash-completion-r1 prefix rust-toolchain toolchain-funcs verify-sig multilib-minimal
69 +
70 +MY_P="rust-${PV}"
71 +
72 +DESCRIPTION="Systems programming language from Mozilla"
73 +HOMEPAGE="https://www.rust-lang.org/"
74 +SRC_URI="$(rust_all_arch_uris ${MY_P})"
75 +
76 +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
77 +SLOT="stable"
78 +#KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
79 +IUSE="clippy cpu_flags_x86_sse2 doc prefix rls rustfmt"
80 +
81 +DEPEND=""
82 +RDEPEND=">=app-eselect/eselect-rust-20190311"
83 +BDEPEND="
84 + prefix? ( dev-util/patchelf )
85 + verify-sig? ( app-crypt/openpgp-keys-rust )
86 +"
87 +
88 +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
89 +
90 +QA_PREBUILT="
91 + opt/${P}/bin/.*
92 + opt/${P}/lib/.*.so
93 + opt/${P}/libexec/.*
94 + opt/${P}/lib/rustlib/.*/bin/.*
95 + opt/${P}/lib/rustlib/.*/lib/.*
96 +"
97 +
98 +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
99 +
100 +pkg_pretend() {
101 + if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
102 + die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
103 + fi
104 +}
105 +
106 +src_unpack() {
107 + verify-sig_src_unpack
108 + mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
109 +}
110 +
111 +patchelf_for_bin() {
112 + local filetype=$(file -b ${1})
113 + if [[ ${filetype} == *ELF*interpreter* ]]; then
114 + einfo "${1}'s interpreter changed"
115 + patchelf ${1} --set-interpreter ${2} || die
116 + elif [[ ${filetype} == *script* ]]; then
117 + hprefixify ${1}
118 + fi
119 +}
120 +
121 +multilib_src_install() {
122 + if multilib_is_native_abi; then
123 +
124 + # start native abi install
125 + pushd "${S}" >/dev/null || die
126 + local analysis std
127 + analysis="$(grep 'analysis' ./components)"
128 + std="$(grep 'std' ./components)"
129 + local components="rustc,cargo,${std}"
130 + use doc && components="${components},rust-docs"
131 + use clippy && components="${components},clippy-preview"
132 + use rls && components="${components},rls-preview,${analysis}"
133 + use rustfmt && components="${components},rustfmt-preview"
134 + ./install.sh \
135 + --components="${components}" \
136 + --disable-verify \
137 + --prefix="${ED}/opt/${P}" \
138 + --mandir="${ED}/opt/${P}/man" \
139 + --disable-ldconfig \
140 + || die
141 +
142 + if use prefix; then
143 + local interpreter=$(patchelf --print-interpreter ${EPREFIX}/bin/bash)
144 + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/${P}/bin"
145 + find "${ED}/opt/${P}/bin" -type f -print0 | \
146 + while IFS= read -r -d '' filename; do
147 + patchelf_for_bin ${filename} ${interpreter} \; || die
148 + done
149 + eend $?
150 + fi
151 +
152 + local symlinks=(
153 + cargo
154 + rustc
155 + rustdoc
156 + rust-gdb
157 + rust-gdbgui
158 + rust-lldb
159 + )
160 +
161 + use clippy && symlinks+=( clippy-driver cargo-clippy )
162 + use rls && symlinks+=( rls )
163 + use rustfmt && symlinks+=( rustfmt cargo-fmt )
164 +
165 + einfo "installing eselect-rust symlinks and paths"
166 + local i
167 + for i in "${symlinks[@]}"; do
168 + # we need realpath on /usr/bin/* symlink return version-appended binary path.
169 + # so /usr/bin/rustc should point to /opt/rust-bin-<ver>/bin/rustc-<ver>
170 + local ver_i="${i}-bin-${PV}"
171 + ln -v "${ED}/opt/${P}/bin/${i}" "${ED}/opt/${P}/bin/${ver_i}"
172 + dosym "../../opt/${P}/bin/${ver_i}" "/usr/bin/${ver_i}"
173 + done
174 +
175 + # symlinks to switch components to active rust in eselect
176 + dosym "../../../opt/${P}/lib" "/usr/lib/rust/lib-bin-${PV}"
177 + dosym "../../../opt/${P}/man" "/usr/lib/rust/man-bin-${PV}"
178 + dosym "../../opt/${P}/lib/rustlib" "/usr/lib/rustlib-bin-${PV}"
179 + dosym "../../../opt/${P}/share/doc/rust" "/usr/share/doc/${P}"
180 +
181 + # musl logic can be improved a bit, but fine as is for now
182 + cat <<-_EOF_ > "${T}/50${P}"
183 + LDPATH="${EPREFIX}/usr/lib/rust/lib"
184 + MANPATH="${EPREFIX}/usr/lib/rust/man"
185 + $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
186 + $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
187 + _EOF_
188 + doenvd "${T}/50${P}"
189 +
190 + # note: eselect-rust adds EROOT to all paths below
191 + cat <<-_EOF_ > "${T}/provider-${P}"
192 + /usr/bin/cargo
193 + /usr/bin/rustdoc
194 + /usr/bin/rust-gdb
195 + /usr/bin/rust-gdbgui
196 + /usr/bin/rust-lldb
197 + /usr/lib/rustlib
198 + /usr/lib/rust/lib
199 + /usr/lib/rust/man
200 + /usr/share/doc/rust
201 + _EOF_
202 +
203 + if use clippy; then
204 + echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
205 + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
206 + fi
207 + if use rls; then
208 + echo /usr/bin/rls >> "${T}/provider-${P}"
209 + fi
210 + if use rustfmt; then
211 + echo /usr/bin/rustfmt >> "${T}/provider-${P}"
212 + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
213 + fi
214 +
215 + insinto /etc/env.d/rust
216 + doins "${T}/provider-${P}"
217 + popd >/dev/null || die
218 + #end native abi install
219 +
220 + else
221 + local rust_target
222 + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
223 + dodir "/opt/${P}/lib/rustlib"
224 + cp -vr "${WORKDIR}/rust-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\
225 + "${ED}/opt/${P}/lib/rustlib" || die
226 + fi
227 +
228 + # BUG: installs x86_64 binary on other arches
229 + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die
230 +}
231 +
232 +pkg_postinst() {
233 + eselect rust update
234 +
235 + elog "Rust installs a helper script for calling GDB now,"
236 + elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV}."
237 +
238 + if has_version app-editors/emacs; then
239 + elog "install app-emacs/rust-mode to get emacs support for rust."
240 + fi
241 +
242 + if has_version app-editors/gvim || has_version app-editors/vim; then
243 + elog "install app-vim/rust-vim to get vim support for rust."
244 + fi
245 +}
246 +
247 +pkg_postrm() {
248 + eselect rust cleanup
249 +}