commit:     07d8596964275c4b0d5659c9ac33d50155058429
Author:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Thu Mar  7 01:49:09 2019 +0000
Commit:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Thu Mar  7 04:40:33 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=07d85969

dev-lang/rust: bump to 1.33.0

run build/install in verbose mode

Bug: https://bugs.gentoo.org/679098
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>

 dev-lang/rust/Manifest                          |  14 ++
 dev-lang/rust/files/1.33.0-clippy-sysroot.patch |  62 +++++
 dev-lang/rust/rust-1.33.0.ebuild                | 301 ++++++++++++++++++++++++
 3 files changed, 377 insertions(+)

diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest
index 06d59be0f30..dfb3caadbeb 100644
--- a/dev-lang/rust/Manifest
+++ b/dev-lang/rust/Manifest
@@ -50,8 +50,22 @@ DIST rust-1.31.1-powerpc64-unknown-linux-gnu.tar.xz 
122297864 BLAKE2B 3cc4e867e3
 DIST rust-1.31.1-powerpc64le-unknown-linux-gnu.tar.xz 125272712 BLAKE2B 
5a1cb8226ac6209c451841b2ae40ecf452d14fefb7ce8f5f0e681a2f08954d643628b28ceae03e7a164f5fd5415a408843bb2ddcd86b9e3486b7ddbbd3b6bb99
 SHA512 
e64f586b632b85d07e18c61e5ce18a69404d89e302ecd8b4495e09e2b2f62bd3f32455b3d0d81cfa2d0031c003f23797421587cf6f314ce5b18b12157e1e9a3b
 DIST rust-1.31.1-s390x-unknown-linux-gnu.tar.xz 127867704 BLAKE2B 
be4b097506561db4f84db4e8b6224dbcd104f15bb95f7ec56b5c0410b85cc8de8f8b559760d7c01d274b7d031354349eed7b49a816fe404ea319d238af64b932
 SHA512 
ce6999f7d27468143a9a288fd1bda9f3ec42475f8b8473518be41358a2144317abf8076ed9527a10db94b5b89cf920f04217ce7a78ec214aa3e073a8419675bc
 DIST rust-1.31.1-x86_64-unknown-linux-gnu.tar.xz 148394364 BLAKE2B 
92b1860f1d0e2da0fc1755a8ed3f6d351da84103220a8fb560e862375b8ad03485299b42ed4448e6f661bb61650480815f20267ffa3d999c2910bc27b80900ae
 SHA512 
3bf37bc419acd7820c7e33d7b44e6cba7f3b556ca8880fee2f65b1648596f069e0bc590a3a7acc10c60a0328f83787a172650d9c26cf21aa14782dcd9a97ec3a
+DIST rust-1.32.0-aarch64-unknown-linux-gnu.tar.xz 116136352 BLAKE2B 
5d5686f285be767a902553d725b59ebe9cf5f8001ea31bc19bee60e65c05d24246dd3f044f07113e37112dd8388e1ee58738aee7af7afbee94c9383c0592aee3
 SHA512 
b077c54bf38935a55a36fec39d1822562da760489ca924d48978e87b9ac5dc4b5107a7eb08dea0412a5a44c255428c649e31f07a5a67567c715de8644581018d
+DIST rust-1.32.0-arm-unknown-linux-gnueabi.tar.xz 117487960 BLAKE2B 
29a92158b6c6fbb0c577e4093c4bfedda1467f0367976676f64e4366d937bd6ebdb7ecfa7ae3a55c4dca0b9f577aea7e1c9905f97f1e167d6b2af5f8b2196b3e
 SHA512 
45d39548e74a22ac862197084e1ca7c4815fefbb49527356d4c7985ef320d2f8d1b0051a4db79503c967ad44df15d0f9ef673b44035f1d90d0383abfca8ef9d4
+DIST rust-1.32.0-arm-unknown-linux-gnueabihf.tar.xz 117758664 BLAKE2B 
0ed842e03b8d29c1e5d0856f2498786298f02d4a82ce972e51e51711a5cfff8906ea5e607134edbe2997dc10db655d6cf5dc8ca27d8071c44e0fcbb2f97f6519
 SHA512 
7f6f1810aa29123d4fc13f4c15220db1cb3911c45c107d7cc5d63e2e04fab3a4b4202f94f2aa3d7f67f4301b77f9e231e6b73983c11b9dce3023918438e9e646
+DIST rust-1.32.0-armv7-unknown-linux-gnueabihf.tar.xz 119183916 BLAKE2B 
47e766398ee35ae578a96390757b7e53500b94b1bcab5e17fc4718185e24936797c3b161f06a06aa8eb876726d3916aa3b6a51356fde2a719ff84c6b5996e6f0
 SHA512 
abadddae0a8de3ee326d1145e3bbe571d9ec0d80261569b6350dbc0fa38b9d31590933c318785f92b75c7add35d7b45e7713a3f1ef7dfd3de085b7255a855b2a
+DIST rust-1.32.0-i686-unknown-linux-gnu.tar.xz 146763596 BLAKE2B 
47a8ade700db65eed2e0051a2094d730c22f650599d542951b63de58b6af7d2477d8be4b7a62836d85a4829b5f18bf41e33f50bdd169432583da87545c4c262a
 SHA512 
bec62be3e9f5e37197c10357a386a7083941f44151eab28e7a1c8892c0e8e65d168e1220d5e807bb55b9c86ef046bad5cb23fad89def9cb51d22ff69fb436172
+DIST rust-1.32.0-mips-unknown-linux-gnu.tar.xz 110583680 BLAKE2B 
b8e95a09b752455b17eca4b7dcb98df60526cb9882b42436b92ba5f0b2478148faceebd88367b42dd98d3c62f7757e850361d1cf507e1008e5dbf5c25752d253
 SHA512 
6b0fd688535b8679a06384c321b87dc2c6990c799f5b6c14cf89806f46b517633a8a4c79133f4d7f528770fb2a7ba4623308a8c590d8525bd1cbdbdc3defbfad
+DIST rust-1.32.0-mips64-unknown-linux-gnuabi64.tar.xz 118818484 BLAKE2B 
8b4adb0a87ca07f9f1e51f84f65a28e2eb98340efe06a70cca312e85b80a2dcf4a1098c981a880f35fdc27a854f41ba8f0de413668756cd6c47a7cad82ff473d
 SHA512 
e8737ff2cb6421af437335c75a48df0d094e6749bb32ae0dc8d614548a2efd682dedb448790f72987332750378259e45cde59c1555a20cb9b78991c422d42b34
+DIST rust-1.32.0-mipsel-unknown-linux-gnu.tar.xz 112802132 BLAKE2B 
8d44aa6e19cb2ac5e0e43fb40ab0b879c611481fd3b23750d3dec1c8ab646b8b3f948eccba0f20b583d411de5cc43317d433c49ca3b341cab08225d3688be668
 SHA512 
c32fa5cbf779c629d423f498f885cb528f2d5b3165f80c6415fc98e7b7fc4802ad893b7aa2c2dad810fbaa968687053b52b32fabe775ba4a1bb72ceabdaf733f
+DIST rust-1.32.0-powerpc-unknown-linux-gnu.tar.xz 111816220 BLAKE2B 
7398c98d37589c307953d11a21866bf23a34806cbcb2316926a321f5407481e292645ba3425d9b7deeaad20da65096189b477deff6769fca856547343dde8146
 SHA512 
4155d662b3f7cfce376896792767132a4e9e1ecf4d4c1232a0f4c0a3765b5e736ee8b4e6f368b874146d94c809d61bd26680c4d7a3dd8ad0bcea819c5756feb2
+DIST rust-1.32.0-powerpc64-unknown-linux-gnu.tar.xz 120518816 BLAKE2B 
9666c809b89d0c564b019fc4b7f6102dcb98fc53e88dfd553fe0274b8758c1ceec5c9c6df9e5e3886fb3cb6ea82322ec8d6e38663189336fdccc50ee10e033e6
 SHA512 
e4c70ab500feccb2ed67435857f584381be051ba7b2d70cea55b0c94b846e61ba10930a20ceceb67ec981daa5baa166fc6dea7c14ac9ac28270c30841d9c16a1
+DIST rust-1.32.0-powerpc64le-unknown-linux-gnu.tar.xz 124278796 BLAKE2B 
cee79918a210c34918cf183c918099cd2c246d881576f80e960492c7d5ae1920a43f2d4424700543a7cf50cc5f18618b6d4abfac1e856c9e8711fb73429571b7
 SHA512 
058c1ebe58bb22e8ff791a74edb058e7494e2673dd1d91ffad646ec71cfdc240e934b44fbae6e58639143b33161d314224e7d1c7b2cc35677bf9eab901e130eb
+DIST rust-1.32.0-s390x-unknown-linux-gnu.tar.xz 128857448 BLAKE2B 
ab0ce58315d116a0aaed007d03df7be4ecfeee01fd6e368173e8aa023b2ae1d922824e92b103aaf205ed2adf1f9da78abd229fff313c24e32ea3fad68f8bdda3
 SHA512 
4f32934472356d9b7e15abb0fa07be9eddccc7b9e0a1834bbee5ff279c6ece9174d942e2feed611f9b697613ee3b76f8a8ab68559b6d075e740aeab117223325
+DIST rust-1.32.0-x86_64-unknown-linux-gnu.tar.xz 147868652 BLAKE2B 
616e69d80dd0e7de2ac86f2090825c8a991ad1b88155d21d0eef89b7aea418ba8bb0140eeb497c417c77afc770f51498020ee86cfd059533500c0cb88f0130b6
 SHA512 
5c5def0c415b0f34e1e7476841a0bd3f91fe4bde8321c7b06b1cd2a3d10a3d676ed16a26561929ce39c3c2cbcf7a16960c5decca9e385afe8295da32b4fb7a17
 DIST rustc-1.29.1-src.tar.xz 61937676 BLAKE2B 
6a60249538e1ec62471f4d0e3fc31c0a648433aa6f85ca7341657ea07772e338eb92a629941685808f4b80e84cb025d78aee9d0d6fa71c6635a1647c61bca9bc
 SHA512 
1ded651b4c460e11e5e44c26de88a80fb13c2000097de2ee1e5af89638e12a7e8f43dd756689d4cc4fad45c52d4d43a3c70dd6a3ae550735b9dad5f8defea6a7
 DIST rustc-1.29.2-src.tar.xz 61888912 BLAKE2B 
f59b0bf45caa6f6136f92ffbaa612bbc6a340c8694ec69d75aadace9180c36753f985641915524388b52cc108f8f5b71840ee3a6c0b1fcff6decb61d2d8a161e
 SHA512 
d8fa9501764348ace8f60f2069bcd016925abe56c8bbc2b87fb52ff796e4bc7284c1fccbb1671416437bb82fde7d9240eeae875d6099914e27e75cfe050e2d38
 DIST rustc-1.30.1-src.tar.xz 96086232 BLAKE2B 
170767b64efe670086e7c4e73838b489a155a72c703148f83cad29d401a825a94a1def3aa462ba527e1bd08181c7a9be0e404c25f012906541c3d739eb57e9e5
 SHA512 
e466db81b9a82239670c48b876dc7390fcdda28c6390308691ddf2e0c12a39b57bd5ddb18322d1b4cd58165f69a666c7d83bee6573049da3b94e401657459bf5
 DIST rustc-1.31.1-src.tar.xz 96915864 BLAKE2B 
bedfe1d56e2f99bb43b4b652d540aedf0a86c47b8493f28fb29e5af3135ff469ed40775bc2ee25ac5bd28a264ecba0094d7c9b6aae25ea365ed3e6f354ffa40b
 SHA512 
d6688711452295c41468af214f036499074d82fbeedc3f03560275219c2fae910e623e38e3210176d86f78ba5533ea098da5ff21532c8ad1a5aac132bb74ee02
 DIST rustc-1.32.0-src.tar.xz 99602696 BLAKE2B 
ab26247e3ecb75dbe373254c1c49f46c00a5a4db2b9cedffccb30122ea3b7de2761d6995b5423d0105caf85cc9542b4c21d487385faa34c835398c3320ccbd3b
 SHA512 
487c405fed6430f62d2d0c38b65f6223b1c5074c7a0d3734dc8b3bb72fca255f5727e49541749569713a0c3e9a67eff574ba5698e8dceca6f0ef20b50f99aa42
+DIST rustc-1.33.0-src.tar.xz 100635400 BLAKE2B 
1fe8ffcfab8324a93a07b9b9ac9cd050fd9d660fb24884761e8ce5e5a67ce5b6df8513e1440090b39c3ced9cb5ced43f07cc9b0337d39625d2cf4aa9e083cfef
 SHA512 
3291e4e19f75f44c81e6fcf4c01edc7c9d326eca43722381231abcf2e99f4314059ba59a29b79f5511ad9421c358c45e8fe18584d6954d17fe2aabad0f9d9147

diff --git a/dev-lang/rust/files/1.33.0-clippy-sysroot.patch 
b/dev-lang/rust/files/1.33.0-clippy-sysroot.patch
new file mode 100644
index 00000000000..c8dc7a8e90d
--- /dev/null
+++ b/dev-lang/rust/files/1.33.0-clippy-sysroot.patch
@@ -0,0 +1,62 @@
+--- a/src/tools/clippy/src/driver.rs   2019-03-01 20:52:40.685331653 +0300
++++ b/src/tools/clippy/src/driver.rs   2019-03-01 20:54:44.161327649 +0300
+@@ -31,54 +31,22 @@
+                 exit(0);
+             }
+ 
+-            let sys_root = option_env!("SYSROOT")
+-                .map(String::from)
+-                .or_else(|| std::env::var("SYSROOT").ok())
+-                .or_else(|| {
+-                    let home = 
option_env!("RUSTUP_HOME").or(option_env!("MULTIRUST_HOME"));
+-                    let toolchain = 
option_env!("RUSTUP_TOOLCHAIN").or(option_env!("MULTIRUST_TOOLCHAIN"));
+-                    home.and_then(|home| toolchain.map(|toolchain| 
format!("{}/toolchains/{}", home, toolchain)))
+-                })
+-                .or_else(|| {
+-                    Command::new("rustc")
+-                        .arg("--print")
+-                        .arg("sysroot")
+-                        .output()
+-                        .ok()
+-                        .and_then(|out| String::from_utf8(out.stdout).ok())
+-                        .map(|s| s.trim().to_owned())
+-                })
+-                .expect("need to specify SYSROOT env var during clippy 
compilation, or use rustup or multirust");
+-
+             // Setting RUSTC_WRAPPER causes Cargo to pass 'rustc' as the 
first argument.
+             // We're invoking the compiler programmatically, so we ignore 
this/
+-            let mut orig_args: Vec<String> = env::args().collect();
+-            if orig_args.len() <= 1 {
++            let mut args: Vec<String> = env::args().collect();
++            if args.len() <= 1 {
+                 std::process::exit(1);
+             }
+-            if Path::new(&orig_args[1]).file_stem() == Some("rustc".as_ref()) 
{
++            if Path::new(&args[1]).file_stem() == Some("rustc".as_ref()) {
+                 // we still want to be able to invoke it normally though
+-                orig_args.remove(1);
++                args.remove(1);
+             }
+-            // this conditional check for the --sysroot flag is there so 
users can call
+-            // `clippy_driver` directly
+-            // without having to pass --sysroot or anything
+-            let mut args: Vec<String> = if orig_args.iter().any(|s| s == 
"--sysroot") {
+-                orig_args.clone()
+-            } else {
+-                orig_args
+-                    .clone()
+-                    .into_iter()
+-                    .chain(Some("--sysroot".to_owned()))
+-                    .chain(Some(sys_root))
+-                    .collect()
+-            };
+ 
+             // this check ensures that dependencies are built but not linted 
and the final
+             // crate is
+             // linted but not built
+             let clippy_enabled = env::var("CLIPPY_TESTS").ok().map_or(false, 
|val| val == "true")
+-                || orig_args.iter().any(|s| s == "--emit=dep-info,metadata");
++                || args.iter().any(|s| s == "--emit=dep-info,metadata");
+ 
+             if clippy_enabled {
+                 args.extend_from_slice(&["--cfg".to_owned(), 
r#"feature="cargo-clippy""#.to_owned()]);

diff --git a/dev-lang/rust/rust-1.33.0.ebuild b/dev-lang/rust/rust-1.33.0.ebuild
new file mode 100644
index 00000000000..c853798a69d
--- /dev/null
+++ b/dev-lang/rust/rust-1.33.0.ebuild
@@ -0,0 +1,301 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_{5,6,7} pypy )
+
+LLVM_MAX_SLOT=8
+
+inherit check-reqs eapi7-ver estack flag-o-matic llvm multiprocessing 
multilib-build python-any-r1 rust-toolchain toolchain-funcs
+
+if [[ ${PV} = *beta* ]]; then
+       betaver=${PV//*beta}
+       BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+       MY_P="rustc-beta"
+       SLOT="beta/${PV}"
+       SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz"
+else
+       ABI_VER="$(ver_cut 1-2)"
+       SLOT="stable/${ABI_VER}"
+       MY_P="rustc-${PV}"
+       SRC="${MY_P}-src.tar.xz"
+       KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+fi
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/";
+
+SRC_URI="https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.xz
+               $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION})"
+
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430
+       NVPTX PowerPC Sparc SystemZ X86 XCore )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
+
+IUSE="clippy cpu_flags_x86_sse2 debug doc libressl rls rustfmt system-llvm 
wasm ${ALL_LLVM_TARGETS[*]}"
+
+COMMON_DEPEND=">=app-eselect/eselect-rust-0.3_pre20150425
+               sys-libs/zlib
+               !libressl? ( dev-libs/openssl:0= )
+               libressl? ( dev-libs/libressl:0= )
+               net-libs/libssh2
+               net-libs/http-parser:=
+               net-misc/curl[ssl]
+               system-llvm? ( >=sys-devel/llvm-7:= )"
+DEPEND="${COMMON_DEPEND}
+       ${PYTHON_DEPS}
+       || (
+               >=sys-devel/gcc-4.7
+               >=sys-devel/clang-3.5
+       )
+       dev-util/cmake"
+RDEPEND="${COMMON_DEPEND}
+       !dev-util/cargo
+       rustfmt? ( !dev-util/rustfmt )"
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+                               x86? ( cpu_flags_x86_sse2 )"
+
+S="${WORKDIR}/${MY_P}-src"
+
+PATCHES=(
+       "${FILESDIR}"/1.32.0-fix-configure-of-bundled-llvm.patch
+       "${FILESDIR}"/1.33.0-clippy-sysroot.patch
+)
+
+toml_usex() {
+       usex "$1" true false
+}
+
+pre_build_checks() {
+       CHECKREQS_DISK_BUILD="7G"
+       CHECKREQS_MEMORY="4G"
+       eshopts_push -s extglob
+       if is-flagq '-g?(gdb)?([1-9])'; then
+               CHECKREQS_DISK_BUILD="10G"
+               CHECKREQS_MEMORY="16G"
+       fi
+       eshopts_pop
+       check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+       pre_build_checks
+}
+
+pkg_setup() {
+       pre_build_checks
+       python-any-r1_pkg_setup
+       if use system-llvm; then
+               llvm_pkg_setup
+       fi
+}
+
+src_prepare() {
+       local rust_stage0_root="${WORKDIR}"/rust-stage0
+
+       local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
+
+       "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig 
--destdir="${rust_stage0_root}" --prefix=/ || die
+
+       default
+}
+
+src_configure() {
+       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_targets},\"$(rust_abi $(get_abi_CHOST 
${v##*.}))\""
+       done
+       if use wasm; then
+               rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
+       fi
+       rust_targets="${rust_targets#,}"
+
+       local extended="true" tools="\"cargo\","
+       if use clippy; then
+               tools="\"clippy\",$tools"
+       fi
+       if use rls; then
+               tools="\"rls\",\"analysis\",\"src\",$tools"
+       fi
+       if use rustfmt; then
+               tools="\"rustfmt\",$tools"
+       fi
+
+       local rust_stage0_root="${WORKDIR}"/rust-stage0
+
+       rust_target="$(rust_abi)"
+
+       cat <<- EOF > "${S}"/config.toml
+               [llvm]
+               optimize = $(toml_usex !debug)
+               release-debuginfo = $(toml_usex debug)
+               assertions = $(toml_usex debug)
+               targets = "${LLVM_TARGETS// /;}"
+               experimental-targets = "$(usex wasm WebAssembly '')"
+               link-shared = $(toml_usex system-llvm)
+               [build]
+               build = "${rust_target}"
+               host = ["${rust_target}"]
+               target = [${rust_targets}]
+               cargo = "${rust_stage0_root}/bin/cargo"
+               rustc = "${rust_stage0_root}/bin/rustc"
+               docs = $(toml_usex doc)
+               submodules = false
+               python = "${EPYTHON}"
+               locked-deps = true
+               vendor = true
+               extended = ${extended}
+               tools = [${tools}]
+               [install]
+               prefix = "${EPREFIX}/usr"
+               libdir = "$(get_libdir)/${P}"
+               docdir = "share/doc/${P}"
+               mandir = "share/${P}/man"
+               [rust]
+               optimize = $(toml_usex !debug)
+               debuginfo = $(toml_usex debug)
+               debug-assertions = $(toml_usex debug)
+               default-linker = "$(tc-getCC)"
+               channel = "stable"
+               rpath = false
+               lld = $(toml_usex wasm)
+       EOF
+
+       for v in $(multilib_get_enabled_abi_pairs); do
+               rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+               arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+               cat <<- EOF >> "${S}"/config.env
+                       CFLAGS_${rust_target}=${arch_cflags}
+               EOF
+
+               cat <<- EOF >> "${S}"/config.toml
+                       [target.${rust_target}]
+                       cc = "$(tc-getBUILD_CC)"
+                       cxx = "$(tc-getBUILD_CXX)"
+                       linker = "$(tc-getCC)"
+                       ar = "$(tc-getAR)"
+               EOF
+               if use system-llvm; then
+                       cat <<- EOF >> "${S}"/config.toml
+                               llvm-config = "$(get_llvm_prefix 
"${LLVM_MAX_SLOT}")/bin/llvm-config"
+                       EOF
+               fi
+       done
+
+       if use wasm; then
+               cat <<- EOF >> "${S}"/config.toml
+                       [target.wasm32-unknown-unknown]
+                       linker = "rust-lld"
+               EOF
+       fi
+}
+
+src_compile() {
+       env $(cat "${S}"/config.env)\
+               "${EPYTHON}" ./x.py build -v --config="${S}"/config.toml 
-j$(makeopts_jobs) \
+               --exclude src/tools/miri || die # 
https://github.com/rust-lang/rust/issues/52305
+}
+
+src_install() {
+       local rust_target abi_libdir
+
+       env DESTDIR="${D}" "${EPYTHON}" ./x.py install -v || die
+
+       mv "${D}/usr/bin/rustc" "${D}/usr/bin/rustc-${PV}" || die
+       mv "${D}/usr/bin/rustdoc" "${D}/usr/bin/rustdoc-${PV}" || die
+       mv "${D}/usr/bin/rust-gdb" "${D}/usr/bin/rust-gdb-${PV}" || die
+       mv "${D}/usr/bin/rust-lldb" "${D}/usr/bin/rust-lldb-${PV}" || die
+       mv "${D}/usr/bin/cargo" "${D}/usr/bin/cargo-${PV}" || die
+       if use clippy; then
+               mv "${D}/usr/bin/clippy-driver" 
"${D}/usr/bin/clippy-driver-${PV}" || die
+               mv "${D}/usr/bin/cargo-clippy" 
"${D}/usr/bin/cargo-clippy-${PV}" || die
+       fi
+       if use rls; then
+               mv "${D}/usr/bin/rls" "${D}/usr/bin/rls-${PV}" || die
+       fi
+       if use rustfmt; then
+               mv "${D}/usr/bin/rustfmt" "${D}/usr/bin/rustfmt-${PV}" || die
+               mv "${D}/usr/bin/cargo-fmt" "${D}/usr/bin/cargo-fmt-${PV}" || 
die
+       fi
+
+       # Copy shared library versions of standard libraries for all targets
+       # into the system's abi-dependent lib directories because the rust
+       # installer only does so for the native ABI.
+       for v in $(multilib_get_enabled_abi_pairs); do
+               if [ ${v##*.} = ${DEFAULT_ABI} ]; then
+                       continue
+               fi
+               abi_libdir=$(get_abi_LIBDIR ${v##*.})
+               rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+               mkdir -p "${D}/usr/${abi_libdir}"
+               cp 
"${D}/usr/$(get_libdir)/${P}/rustlib/${rust_target}/lib"/*.so \
+                  "${D}/usr/${abi_libdir}" || die
+       done
+
+       dodoc COPYRIGHT
+
+       # FIXME:
+       # Really not sure if that env is needed, specailly LDPATH
+       cat <<-EOF > "${T}"/50${P}
+               LDPATH="/usr/$(get_libdir)/${P}"
+               MANPATH="/usr/share/${P}/man"
+       EOF
+       doenvd "${T}"/50${P}
+
+       cat <<-EOF > "${T}/provider-${P}"
+               /usr/bin/rustdoc
+               /usr/bin/rust-gdb
+               /usr/bin/rust-lldb
+       EOF
+       echo /usr/bin/cargo >> "${T}/provider-${P}"
+       if use clippy; then
+               echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+               echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+       fi
+       if use rls; then
+               echo /usr/bin/rls >> "${T}/provider-${P}"
+       fi
+       if use rustfmt; then
+               echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+               echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+       fi
+       dodir /etc/env.d/rust
+       insinto /etc/env.d/rust
+       doins "${T}/provider-${P}"
+}
+
+pkg_postinst() {
+       eselect rust update --if-unset
+
+       elog "Rust installs a helper script for calling GDB and LLDB,"
+       elog "for your convenience it is installed under 
/usr/bin/rust-{gdb,lldb}-${PV}."
+
+       ewarn "cargo is now installed from dev-lang/rust{,-bin} instead of 
dev-util/cargo."
+       ewarn "This might have resulted in a dangling symlink for 
/usr/bin/cargo on some"
+       ewarn "systems. This can be resolved by calling 'sudo eselect rust set 
${P}'."
+
+       if has_version app-editors/emacs || has_version app-editors/emacs-vcs; 
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
+
+       if has_version 'app-shells/zsh'; then
+               elog "install app-shells/rust-zshcomp to get zsh completion for 
rust."
+       fi
+}
+
+pkg_postrm() {
+       eselect rust unset --if-invalid
+}

Reply via email to