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 |