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: Tue, 04 Aug 2020 23:44:49
Message-Id: 1596584591.ef89cb77bf9fc16eec9e140e29138adb8d74258a.gyakovlev@gentoo
1 commit: ef89cb77bf9fc16eec9e140e29138adb8d74258a
2 Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
3 AuthorDate: Tue Aug 4 23:39:45 2020 +0000
4 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
5 CommitDate: Tue Aug 4 23:43:11 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ef89cb77
7
8 dev-lang/rust: improve pre-build checks in 1.45.2
9
10 Bug: https://bugs.gentoo.org/709362
11 Bug: https://bugs.gentoo.org/706292
12 Package-Manager: Portage-3.0.1, Repoman-2.3.23
13 Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>
14
15 dev-lang/rust/rust-1.45.2.ebuild | 34 +++++++++++++++++++++++++++++++---
16 1 file changed, 31 insertions(+), 3 deletions(-)
17
18 diff --git a/dev-lang/rust/rust-1.45.2.ebuild b/dev-lang/rust/rust-1.45.2.ebuild
19 index f0ade3a593c..60b307bbd5f 100644
20 --- a/dev-lang/rust/rust-1.45.2.ebuild
21 +++ b/dev-lang/rust/rust-1.45.2.ebuild
22 @@ -129,14 +129,41 @@ toml_usex() {
23 usex "$1" true false
24 }
25
26 +boostrap_rust_version_check() {
27 + # never call from pkg_pretend. eselect-rust may be not installed yet.
28 + local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
29 + local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
30 + rustc_version=${rustc_version[0]#rust-bin-}
31 + rustc_version=${rustc_version#rust-}
32 +
33 + [[ -z "${rustc_version}" ]] && die "Failed to determine rustc version!"
34 +
35 + if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
36 + eerror "Rust >=${rustc_wanted} is required"
37 + eerror "please run \'eselect rust\' and set correct rust version"
38 + die
39 + else
40 + einfo "Using rust ${rustc_version} to build"
41 + fi
42 +}
43 +
44 pre_build_checks() {
45 - CHECKREQS_DISK_BUILD="9G"
46 + local M=6144
47 + M=$(( $(usex clippy 128 0) + ${M} ))
48 + M=$(( $(usex miri 128 0) + ${M} ))
49 + M=$(( $(usex rls 512 0) + ${M} ))
50 + M=$(( $(usex rustfmt 256 0) + ${M} ))
51 + M=$(( $(usex system-llvm 0 2048) + ${M} ))
52 + M=$(( $(usex wasm 256 0) + ${M} ))
53 + M=$(( $(usex debug 15 10) * ${M} / 10 ))
54 eshopts_push -s extglob
55 if is-flagq '-g?(gdb)?([1-9])'; then
56 - CHECKREQS_DISK_BUILD="15G"
57 + M=$(( 15 * ${M} / 10 ))
58 fi
59 eshopts_pop
60 - check-reqs_pkg_setup
61 + M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
62 + M=$(( $(usex doc 256 0) + ${M} ))
63 + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
64 }
65
66 pkg_pretend() {
67 @@ -146,6 +173,7 @@ pkg_pretend() {
68 pkg_setup() {
69 pre_build_checks
70 python-any-r1_pkg_setup
71 + use system-bootstrap && boostrap_rust_version_check
72
73 # required to link agains system libs, otherwise
74 # crates use bundled sources and compile own static version