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/
Date: Fri, 16 Aug 2019 02:44:16
Message-Id: 1565923382.fde345ecf0c3b9526b6dee538bf9b67377fe0013.gyakovlev@gentoo
1 commit: fde345ecf0c3b9526b6dee538bf9b67377fe0013
2 Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
3 AuthorDate: Fri Aug 16 02:41:39 2019 +0000
4 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
5 CommitDate: Fri Aug 16 02:43:02 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fde345ec
7
8 dev-lang/rust: bump to 1.37.0
9
10 Package-Manager: Portage-2.3.71, Repoman-2.3.17
11 Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>
12
13 dev-lang/rust/Manifest | 14 ++
14 dev-lang/rust/rust-1.37.0.ebuild | 326 +++++++++++++++++++++++++++++++++++++++
15 2 files changed, 340 insertions(+)
16
17 diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest
18 index dd56cf989a0..fa10664a6c4 100644
19 --- a/dev-lang/rust/Manifest
20 +++ b/dev-lang/rust/Manifest
21 @@ -37,6 +37,20 @@ DIST rust-1.35.0-powerpc64-unknown-linux-gnu.tar.xz 139462276 BLAKE2B b99ee8f5f0
22 DIST rust-1.35.0-powerpc64le-unknown-linux-gnu.tar.xz 143826544 BLAKE2B ff5f814515034b382faf40dc0d95623ec57c4f063ded1bb89364594736269744f5409c978de24fa29f6a061d1489179456a90847f5ce8de1f684df22fda68b75 SHA512 3b63dac50a92693d13066aa6e96de05fceb2da6c07834adfab8c12e6a78f59051dfa008062b1d2ad410a009e2164fc716d689231e552379e419161d1620d0066
23 DIST rust-1.35.0-s390x-unknown-linux-gnu.tar.xz 152808372 BLAKE2B 96a1e2b96b6a1faf5a3125494b17c4d5f95ea618a5ff8f7ddb7506ebef4fd6cf7f9a2ae961657b7b969a5f3cbc870c805c6634163e7f5fc71e058ea4528e19a0 SHA512 11539eb25e474bbaa8e57f21c3f64506859bc86baec74df24bb4aaf5361745840b82ff715fc54fbd6ba654a8f7fd4f064af0538b983dd489cd69498bd70d1bf7
24 DIST rust-1.35.0-x86_64-unknown-linux-gnu.tar.xz 161491264 BLAKE2B ed336829cfe4199750798352e4e338f307033ea0eb5db9ab68f9cf7465d86edbd1218d3e929c775822fd5db3d73a5d75c6e9b5ca45ed6b474bffe403f39f71a0 SHA512 49976ac2fbac5b1709c4a7f3785eb99ab827464ec4d99ee7190df16c3be23e98de606566b57df2231a15097c7fe984e0d19496ce7478ccc1f0f2c7aeb32ecb04
25 +DIST rust-1.36.0-aarch64-unknown-linux-gnu.tar.xz 139261576 BLAKE2B f8f0ac14c397253298bb321fef83e78fb839e647fa8a9ff891f16e3a1723e1ee69e59686357751b3b4c1a1d1e28632c2047be8795f8a27733ee4bbe8ff71e105 SHA512 77ffd9aa0dfdbb886a51c8d17e3e348c777226e859a48374dad8be20b9a3c7130c7f46d9173753e4ac4a264b45610767ba2625df4192773913892a13a255d3d6
26 +DIST rust-1.36.0-arm-unknown-linux-gnueabi.tar.xz 140294440 BLAKE2B 25d0ea284d20f93bc82618c61abcd4281835e914426e3e9998ff80d233af4cbb938c05bd3dc9422c3f212f24a08f6bea3f67691860acd8cce60d9f7015556381 SHA512 e1dd8200ade615bcedcc1372d4833c037435a47311ca8a20ebbf914d80add818bf70adadf2b6d33d5a4f04eb4994722978b6b3f83dc6a7cc3c98aea52f244405
27 +DIST rust-1.36.0-arm-unknown-linux-gnueabihf.tar.xz 140715096 BLAKE2B effed4996df93d2defa843b3356d80abb9a3a69990f5d6c7d6c38f18ad39d2b46618d64007014be931762ab31c2c46a747cc2705b3cd0ec66e7fa888ecfaf81a SHA512 dfabb476a1f31755eea4a0b976991ea083682463e4538f2b7f34dcfa4b6220b82d81fdf4c677294899d5cd740a8a3e012d1b0bb424ae529c05ce92802cf18959
28 +DIST rust-1.36.0-armv7-unknown-linux-gnueabihf.tar.xz 142315532 BLAKE2B bb6ca7c0af1691c82dd64fcd563573c815147457a69fd0ddef238db4bc5f0ccc7c7ea72429c9d7401db3d431674da70e86183ebad83e7153adad4287de385ac6 SHA512 b31e34f44df17d89f9f2a609a5b5b2320f43691e06ead257d893766abf8764a158adff0265dd60bf1f63dd98f0bf6bc64ae3b9e9f45200fbd7dfcaec3ba85d01
29 +DIST rust-1.36.0-i686-unknown-linux-gnu.tar.xz 182609496 BLAKE2B 8fa915670346e554f6a881a44bfac42a5ca565acc3426b35901952eae9ea36780181e7569c2db52688a28d680de6fd02764d93219fdf93e7adbba8b8de3b0e6a SHA512 34bcb93ec7a313a28ac20cd853e37419c4607f4035a367015826bd797401a2ada20ee99ae9028b6115c9db8aa1d4f74b74fb08ed09ab528d5946bc26c754b182
30 +DIST rust-1.36.0-mips-unknown-linux-gnu.tar.xz 134020892 BLAKE2B 0579a8f6ae590780a1bf8a79c6ece290262fedce30721dc4ce405f774d9ed4cda99680da0aed22050147478d2ad3fe391f028a6d1e05b47b509a33d6f1569090 SHA512 8163136f8621ff8b562e50123eef5903de3bf888a230fa83fcc6aa0fad9ea61e1a1cc2248479e6e0f82f0c25014207c7b7186177067a21721156c795d59e8188
31 +DIST rust-1.36.0-mips64-unknown-linux-gnuabi64.tar.xz 140200900 BLAKE2B e0e9d428d0af610d4dcf4ff38bafdb24001e6644dcad62af6b1782362520358411767b10740587e37dc1ffb85f4036495cdfdb15d68d387988df2512e9a78d05 SHA512 d3dcfef22fc2e130150c64aaeb13a96696c48353300049aca3ba42411548922945192847ba12834d21619d9db26a6628cea8417e3678e52f2742438b862f5d7a
32 +DIST rust-1.36.0-mipsel-unknown-linux-gnu.tar.xz 136390260 BLAKE2B 63e26f3a9563a065d086daa223b732ab0ab89b424cf3e764d93b56c9efe9d611c6565cf89b649819a71af2195f19c278824ee71e2985b20fe55f20e75b8b6be8 SHA512 c8f6538b677ab8b7154b7a7e07ead85a84ff08bc27d2150189e7597e1f9f30ac418d72684916dc85ae8ff95718ec17e289e1f813303e97cec59e63a7f5c1367b
33 +DIST rust-1.36.0-powerpc-unknown-linux-gnu.tar.xz 134270632 BLAKE2B 5466f797d778e2112a0aa53a05f6853d9baf261b1c9a53fd05ac4925b7eb85b7b0a3df02a8509f98b800e42ef2a5ec09cb176e0a5893fc5ee57d0805bcba621f SHA512 a02afacc01a92b5575e3526b3b9bfa149f86ec03b3601b269fe4cb05d8f4dfa24b62625737f8ffe67bfababbe791af1584f45979ef012004b7de7771f29a9edf
34 +DIST rust-1.36.0-powerpc64-unknown-linux-gnu.tar.xz 145880928 BLAKE2B 4922df3a7d7f2d77a3f3380ec4ae9a1e4062cc81abe16ccc978543e4c24c4415bc34db0831b73c078f1ebebb57cea81c600d4e320cb10a4c508a252169d6999b SHA512 20bdd2b427549c866343962abefc4ffc356a1cb6965c754f28f19b05c234cb9c0abccbce036013deba1dc7699c2889ec954fff2b944953385624be54ee7a733e
35 +DIST rust-1.36.0-powerpc64le-unknown-linux-gnu.tar.xz 149721676 BLAKE2B e00bcc60a89354f6d4b5c89feffe5fe6dd7bf25d8dd2db2878e7c12ffc484e9258f37d80bda2b12f3965d96c73f1a03b6adbd8c20176c383e04f1a229d47d000 SHA512 02f32b544b0a55ba6f6fc4852f18766107bc0ce2c50488db11605e8a10e5965dd44e8332905c00080b08576370f2f0297ecbe12ba9fe01b4c24cdb9fd03ad64f
36 +DIST rust-1.36.0-s390x-unknown-linux-gnu.tar.xz 159518028 BLAKE2B c5876ea15c9fa56a92b4c0bf2aab472b83381a7a31fbb207e4165fdc49fea2150dddd53cc771dbcb81b01fe43a3175df146d8645d04c556af3556822fc59bf25 SHA512 c637b8f50cbce3333280f43ce4b97d3f75ddae429ee34461837c3c3869e20aed8c5e76f7a58998f617dc0ffc2e6afd00908e5de05f4c7ed9a8c34d5dbc7ce916
37 +DIST rust-1.36.0-x86_64-unknown-linux-gnu.tar.xz 169600936 BLAKE2B 8bf075f2b5624e4716e3058512b85b70e72ec6f0c8ce8fc38857612b02aa5702a1bb447f13f882a1b96b1f32330d0a8f7f1f1db81827b51cb7429195e070a5a3 SHA512 3f14dda1e09ef8c8168600f4d70ba60cb2a1086ad9edb5eed708d0ffc16fdb9c582ce350a93afcd64b78f87737e37d4f099703835a1ec9837a5721c2335e17c7
38 DIST rustc-1.34.2-src.tar.xz 95048792 BLAKE2B e81e4bfda87ddfb09ab8a74792346970aa440c678d2bb1279c329db4929282f761ada6fea9d81ceeecfd513613025c8e636487626fc36bd0b33559e045bb1b15 SHA512 f1bd2b226d90aae8a4657e6117b9a8451d4ce8129f79cc0fce0da7613a3b7800e690bc0ede8fec20a2f5f32c13fa8e22ac97d3838e0d36936793535a75d9c381
39 DIST rustc-1.35.0-src.tar.xz 96543548 BLAKE2B 0291152f2b7aa8b50b22d74afbd9c7654bab8ae7dcb76224dbff43bc39a3b918ff86bfd20f408a9a16da8b20b08d9f0289bb63620f093d25d9fa008de57f52c3 SHA512 477c10b780bd54776be7ecbda0ab970416253e4a87c3e701825a7d07bcbcd91601b8e61129c5d04d4259e89c2e81e87cdbdee853375a8de5c9cf8372be2c9129
40 DIST rustc-1.36.0-src.tar.xz 98707920 BLAKE2B caff82482589941ab63be51eeffdf2a0419c1b624485240a0547b4bebc9f64f6c65a4babb960d1b23b3cde76550390d6d4813e1e9a9c43bf325998c87832fb94 SHA512 1adbb3b67d599f926dc19258e2596cb3b990e152e75e71645637098526207aa5632d7915fd5b67c7a045f63860cc7be3d28be014ad6141a342adc16b2fe8a879
41 +DIST rustc-1.37.0-src.tar.xz 98654252 BLAKE2B ddee92c7959a0e1ee11ffe5ded6017703cfac7bbf2a00dc46c37ed28f1cd1d31e1d5b62cc1a5ae2d55d64f8705d0cb282f4968deddf36c3152e5e0cfdfbea67d SHA512 bfee43f578e6d44ead950b870b9fd31087e1bd3f917611f5dce7ad56504b83185edf43e297e8d1304e9e97b9a580d1e6adf6608ab8ed6dee0dc8c5153cdbc5d4
42
43 diff --git a/dev-lang/rust/rust-1.37.0.ebuild b/dev-lang/rust/rust-1.37.0.ebuild
44 new file mode 100644
45 index 00000000000..6d0221fd98e
46 --- /dev/null
47 +++ b/dev-lang/rust/rust-1.37.0.ebuild
48 @@ -0,0 +1,326 @@
49 +# Copyright 1999-2019 Gentoo Authors
50 +# Distributed under the terms of the GNU General Public License v2
51 +
52 +EAPI=7
53 +
54 +PYTHON_COMPAT=( python2_7 python3_{5,6,7} pypy )
55 +
56 +inherit check-reqs estack flag-o-matic llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs
57 +
58 +if [[ ${PV} = *beta* ]]; then
59 + betaver=${PV//*beta}
60 + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
61 + MY_P="rustc-beta"
62 + SLOT="beta/${PV}"
63 + SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz"
64 +else
65 + ABI_VER="$(ver_cut 1-2)"
66 + SLOT="stable/${ABI_VER}"
67 + MY_P="rustc-${PV}"
68 + SRC="${MY_P}-src.tar.xz"
69 + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
70 +fi
71 +
72 +RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
73 +
74 +DESCRIPTION="Systems programming language from Mozilla"
75 +HOMEPAGE="https://www.rust-lang.org/"
76 +
77 +SRC_URI="https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.xz
78 + $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION})"
79 +
80 +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430
81 + NVPTX PowerPC Sparc SystemZ WebAssembly X86 XCore )
82 +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
83 +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?}
84 +
85 +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
86 +
87 +IUSE="clippy cpu_flags_x86_sse2 debug doc libressl rls rustfmt system-llvm wasm ${ALL_LLVM_TARGETS[*]}"
88 +
89 +# Please keep the LLVM dependency block separate. Since LLVM is slotted,
90 +# we need to *really* make sure we're not pulling one than more slot
91 +# simultaneously.
92 +
93 +# How to use it:
94 +# 1. List all the working slots (with min versions) in ||, newest first.
95 +# 2. Update the := to specify *max* version, e.g. < 9.
96 +# 3. Specify LLVM_MAX_SLOT, e.g. 8.
97 +LLVM_DEPEND="
98 + || (
99 + sys-devel/llvm:8[llvm_targets_WebAssembly?]
100 + wasm? ( =sys-devel/lld-8* )
101 + )
102 + <sys-devel/llvm-9:=
103 +"
104 +LLVM_MAX_SLOT=8
105 +
106 +COMMON_DEPEND="
107 + sys-libs/zlib
108 + !libressl? ( dev-libs/openssl:0= )
109 + libressl? ( dev-libs/libressl:0= )
110 + net-libs/libssh2
111 + net-libs/http-parser:=
112 + net-misc/curl[ssl]
113 + system-llvm? (
114 + ${LLVM_DEPEND}
115 + )
116 +"
117 +
118 +DEPEND="${COMMON_DEPEND}
119 + ${PYTHON_DEPS}
120 + || (
121 + >=sys-devel/gcc-4.7
122 + >=sys-devel/clang-3.5
123 + )
124 + dev-util/cmake
125 +"
126 +
127 +RDEPEND="${COMMON_DEPEND}
128 + >=app-eselect/eselect-rust-20190311
129 + !dev-util/cargo
130 + rustfmt? ( !dev-util/rustfmt )
131 +"
132 +
133 +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
134 + wasm? ( llvm_targets_WebAssembly )
135 + x86? ( cpu_flags_x86_sse2 )
136 +"
137 +
138 +PATCHES=(
139 + "${FILESDIR}"/0001-llvm-cmake-Add-additional-headers-only-if-they-exist.patch
140 + "${FILESDIR}"/1.34.2-fix-custom-libdir.patch
141 + "${FILESDIR}"/1.35.0-revert-commits-triggering-multiple-llvm-rebuilds.patch
142 + "${FILESDIR}"/1.36.0-libressl.patch
143 +)
144 +
145 +S="${WORKDIR}/${MY_P}-src"
146 +
147 +toml_usex() {
148 + usex "$1" true false
149 +}
150 +
151 +pre_build_checks() {
152 + CHECKREQS_DISK_BUILD="7G"
153 + eshopts_push -s extglob
154 + if is-flagq '-g?(gdb)?([1-9])'; then
155 + CHECKREQS_DISK_BUILD="10G"
156 + fi
157 + eshopts_pop
158 + check-reqs_pkg_setup
159 +}
160 +
161 +pkg_pretend() {
162 + pre_build_checks
163 +}
164 +
165 +pkg_setup() {
166 + pre_build_checks
167 + python-any-r1_pkg_setup
168 + use system-llvm && llvm_pkg_setup
169 +}
170 +
171 +src_prepare() {
172 + local rust_stage0_root="${WORKDIR}"/rust-stage0
173 +
174 + local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
175 +
176 + "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig --destdir="${rust_stage0_root}" --prefix=/ || die
177 +
178 + default
179 +}
180 +
181 +src_configure() {
182 + local rust_target="" rust_targets="" arch_cflags
183 +
184 + # Collect rust target names to compile standard libs for all ABIs.
185 + for v in $(multilib_get_enabled_abi_pairs); do
186 + rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
187 + done
188 + if use wasm; then
189 + rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
190 + fi
191 + rust_targets="${rust_targets#,}"
192 +
193 + local extended="true" tools="\"cargo\","
194 + if use clippy; then
195 + tools="\"clippy\",$tools"
196 + fi
197 + if use rls; then
198 + tools="\"rls\",\"analysis\",\"src\",$tools"
199 + fi
200 + if use rustfmt; then
201 + tools="\"rustfmt\",$tools"
202 + fi
203 +
204 + local rust_stage0_root="${WORKDIR}"/rust-stage0
205 +
206 + rust_target="$(rust_abi)"
207 +
208 + cat <<- EOF > "${S}"/config.toml
209 + [llvm]
210 + optimize = $(toml_usex !debug)
211 + release-debuginfo = $(toml_usex debug)
212 + assertions = $(toml_usex debug)
213 + targets = "${LLVM_TARGETS// /;}"
214 + experimental-targets = ""
215 + link-shared = $(toml_usex system-llvm)
216 + [build]
217 + build = "${rust_target}"
218 + host = ["${rust_target}"]
219 + target = [${rust_targets}]
220 + cargo = "${rust_stage0_root}/bin/cargo"
221 + rustc = "${rust_stage0_root}/bin/rustc"
222 + docs = $(toml_usex doc)
223 + submodules = false
224 + python = "${EPYTHON}"
225 + locked-deps = true
226 + vendor = true
227 + extended = ${extended}
228 + tools = [${tools}]
229 + verbose = 2
230 + [install]
231 + prefix = "${EPREFIX}/usr"
232 + libdir = "$(get_libdir)/${P}"
233 + docdir = "share/doc/${P}"
234 + mandir = "share/${P}/man"
235 + [rust]
236 + optimize = $(toml_usex !debug)
237 + debug = $(toml_usex debug)
238 + debug-assertions = $(toml_usex debug)
239 + default-linker = "$(tc-getCC)"
240 + channel = "stable"
241 + rpath = false
242 + lld = $(usex system-llvm false $(toml_usex wasm))
243 + EOF
244 +
245 + for v in $(multilib_get_enabled_abi_pairs); do
246 + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
247 + arch_cflags="$(get_abi_CFLAGS ${v##*.})"
248 +
249 + cat <<- EOF >> "${S}"/config.env
250 + CFLAGS_${rust_target}=${arch_cflags}
251 + EOF
252 +
253 + cat <<- EOF >> "${S}"/config.toml
254 + [target.${rust_target}]
255 + cc = "$(tc-getBUILD_CC)"
256 + cxx = "$(tc-getBUILD_CXX)"
257 + linker = "$(tc-getCC)"
258 + ar = "$(tc-getAR)"
259 + EOF
260 + if use system-llvm; then
261 + cat <<- EOF >> "${S}"/config.toml
262 + llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
263 + EOF
264 + fi
265 + done
266 +
267 + if use wasm; then
268 + cat <<- EOF >> "${S}"/config.toml
269 + [target.wasm32-unknown-unknown]
270 + linker = "$(usex system-llvm lld rust-lld)"
271 + EOF
272 + fi
273 +}
274 +
275 +src_compile() {
276 + env $(cat "${S}"/config.env)\
277 + "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) \
278 + --exclude src/tools/miri || die # https://github.com/rust-lang/rust/issues/52305
279 +}
280 +
281 +src_install() {
282 + local rust_target abi_libdir
283 +
284 + env DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml \
285 + --exclude src/tools/miri || die
286 +
287 + mv "${ED}/usr/bin/rustc" "${ED}/usr/bin/rustc-${PV}" || die
288 + mv "${ED}/usr/bin/rustdoc" "${ED}/usr/bin/rustdoc-${PV}" || die
289 + mv "${ED}/usr/bin/rust-gdb" "${ED}/usr/bin/rust-gdb-${PV}" || die
290 + mv "${ED}/usr/bin/rust-gdbgui" "${ED}/usr/bin/rust-gdbgui-${PV}" || die
291 + mv "${ED}/usr/bin/rust-lldb" "${ED}/usr/bin/rust-lldb-${PV}" || die
292 + mv "${ED}/usr/bin/cargo" "${ED}/usr/bin/cargo-${PV}" || die
293 + if use clippy; then
294 + mv "${ED}/usr/bin/clippy-driver" "${ED}/usr/bin/clippy-driver-${PV}" || die
295 + mv "${ED}/usr/bin/cargo-clippy" "${ED}/usr/bin/cargo-clippy-${PV}" || die
296 + fi
297 + if use rls; then
298 + mv "${ED}/usr/bin/rls" "${ED}/usr/bin/rls-${PV}" || die
299 + fi
300 + if use rustfmt; then
301 + mv "${ED}/usr/bin/rustfmt" "${ED}/usr/bin/rustfmt-${PV}" || die
302 + mv "${ED}/usr/bin/cargo-fmt" "${ED}/usr/bin/cargo-fmt-${PV}" || die
303 + fi
304 +
305 + # Copy shared library versions of standard libraries for all targets
306 + # into the system's abi-dependent lib directories because the rust
307 + # installer only does so for the native ABI.
308 + for v in $(multilib_get_enabled_abi_pairs); do
309 + if [ ${v##*.} = ${DEFAULT_ABI} ]; then
310 + continue
311 + fi
312 + abi_libdir=$(get_abi_LIBDIR ${v##*.})
313 + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
314 + mkdir -p "${ED}/usr/${abi_libdir}/${P}"
315 + cp "${ED}/usr/$(get_libdir)/${P}/rustlib/${rust_target}/lib"/*.so \
316 + "${ED}/usr/${abi_libdir}/${P}" || die
317 + done
318 +
319 + dodoc COPYRIGHT
320 +
321 + # FIXME:
322 + # Really not sure if that env is needed, specailly LDPATH
323 + cat <<-EOF > "${T}"/50${P}
324 + LDPATH="${EPREFIX}/usr/$(get_libdir)/${P}"
325 + MANPATH="${EPREFIX}/usr/share/${P}/man"
326 + EOF
327 + doenvd "${T}"/50${P}
328 +
329 + # note: eselect-rust adds EROOT to all paths below
330 + cat <<-EOF > "${T}/provider-${P}"
331 + /usr/bin/rustdoc
332 + /usr/bin/rust-gdb
333 + /usr/bin/rust-gdbgui
334 + /usr/bin/rust-lldb
335 + EOF
336 + echo /usr/bin/cargo >> "${T}/provider-${P}"
337 + if use clippy; then
338 + echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
339 + echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
340 + fi
341 + if use rls; then
342 + echo /usr/bin/rls >> "${T}/provider-${P}"
343 + fi
344 + if use rustfmt; then
345 + echo /usr/bin/rustfmt >> "${T}/provider-${P}"
346 + echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
347 + fi
348 + dodir /etc/env.d/rust
349 + insinto /etc/env.d/rust
350 + doins "${T}/provider-${P}"
351 +}
352 +
353 +pkg_postinst() {
354 + eselect rust update --if-unset
355 +
356 + elog "Rust installs a helper script for calling GDB and LLDB,"
357 + elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
358 +
359 + ewarn "cargo is now installed from dev-lang/rust{,-bin} instead of dev-util/cargo."
360 + ewarn "This might have resulted in a dangling symlink for /usr/bin/cargo on some"
361 + ewarn "systems. This can be resolved by calling 'sudo eselect rust set ${P}'."
362 +
363 + if has_version app-editors/emacs || has_version app-editors/emacs-vcs; then
364 + elog "install app-emacs/rust-mode to get emacs support for rust."
365 + fi
366 +
367 + if has_version app-editors/gvim || has_version app-editors/vim; then
368 + elog "install app-vim/rust-vim to get vim support for rust."
369 + fi
370 +}
371 +
372 +pkg_postrm() {
373 + eselect rust cleanup
374 +}