Add rust-1.65.0.

This commit is contained in:
Andrius Štikonas 2023-02-12 00:45:01 +00:00
parent b8e8179498
commit 55590755ce
15 changed files with 865 additions and 18 deletions

View File

@ -10,6 +10,7 @@ AUX 1.62.1-musl-dynamic-linking.patch 898 BLAKE2B 09321e356d5c945f72e75e668bfee2
AUX 1.63.0-CVE-2022-36113.patch 2087 BLAKE2B 10afb960bf0624915f0047a364719cb7e593baa0da89cc929ba742ed178807518c2437eefc6f55a1d7cdccd31d63093e2c5ffc10ac3db3c8b63ab9e06d382536 SHA512 593ac73200def11f28fdbb146d67170340a500e3cc27c4c0263d01caee1405d0572ab4f4a192aa9d480b2b60d6460d0754f406bbc62e70615fb7d9952ec08e77
AUX 1.63.0-CVE-2022-36114.patch 3877 BLAKE2B 3542b04ab488961a2928f1a2103845e786acbe46342265f5469ba32e4f0419d9ebf545a01d25b71f0ebc4ce82aadd038d28e270b8db1214d3e5134433239fa7e SHA512 bee9794c6caa5057a07109e5b37ff004893e8e5eae2cd8e01985d968e384599333ece619f48f24237d75dbb6a03363154319d72e08261baab398b32146f1efae
AUX 1.64.0-vendor-rustix-sparc-has-no-SIGSTKFLT.patch 2744 BLAKE2B 4eb03df7c21087a5833f031b85c999f95e8055492c61184bbe137407b4cdddb76d25f95d6beb5a1c6f82f42800f914f0fde60192c807a9548ee27ba226b10f65 SHA512 d489d0841ad297f8835b7adb1e5777865080f3f83a991da55a266da38396993c7b50f8ec98285ed7b174c879053670acedf9116b586c493338daac8f67741fb6
AUX 1.65.0-ignore-broken-and-non-applicable-tests.patch 1504 BLAKE2B 6318227c4a11ef0b849a85f164fc446ba34ffc3e4314b3f18248aa6605f08aa9a1adfaa2d9b2154c9e29fcab203d3c322fcf67e770778cc788f37bfb86ef353d SHA512 54a05e43c7d01129d8590495d2d651d677ebec06b5302355fec87d3c9bfdaab96bae192d17fafe115039d74a0d56fffa653a03ff0a8528a88582d64f1bbe663d
AUX llvm-gcc10.patch 1275 BLAKE2B 72b455bded7ab2d7e7bc3e75dcc2c5d3c2d23efb5ccc5f9fb229ceb8e08b61610cb6744ce617466f262b16d4b4c53cf1c27b85f4271b7cf9018b6c108c4bfc19 SHA512 62c35554453a75e558c8b4751f43bd9e06037318a89f7c8afd22a16f396a2777550d4ec3ab1347d63f2ecff483ec8aab65b2baa2c4838900b9e63cfeab780883
DIST rustc-1.54.0-src.tar.xz 116286856 BLAKE2B 5ac47822646a0b6205f09282168b4d4ddcace9f6bc8f242c890327ca4074626f129514f8bcae5c5556015745f718990cce490658076f5cd3526623439540416b SHA512 5162f85b43ca2c5af93fdbfb2597d75df8a838f7fcc025a5298499ce1043db50f1ea2fbba753e47ce5daad3d80d4b612acf6527ef902c34117763e687fdbbcfa
DIST rustc-1.55.0-src.tar.xz 117197580 BLAKE2B 8d9739ce7571146aee0e07c6287de9a8c4f1a914606cd47819eb1ef118b15772ecf22d0d43d7732f03c234a013fa54a4a7f0578a3f136af518f71bf64a03305d SHA512 7522f2fa95d5af92472404ecc97d7d9e745e88c933196a83fa373ce1efff6db3c295e0e2afdbfa1ff00644554efa0c3c7f6c11f9119ecf9010cb440b3f27c2da
@ -32,6 +33,8 @@ DIST rustc-1.63.0-src.tar.xz 136597192 BLAKE2B 52eb64ee11e7d9724a4c2654f7eea1352
DIST rustc-1.63.0-src.tar.xz.asc 801 BLAKE2B b6c133768e368a7aeb0a4612a4c824d13f91ccdca6660feb5774ed6d79537084020780532c882ae3c9e4b6be3d36ceb0652eb134a580293ba8d8be74c4ba3c6e SHA512 f8807d46b9a3ca2a15a60f8062d63b3ee6e3210657cc752c948b3c7aa1626ec63cbd57529d010ad33f07ac47cf70dbf2cb50f200587338f77c631fc9e6786b17
DIST rustc-1.64.0-src.tar.xz 137841332 BLAKE2B 8acd9e0a4632ba2114018a5cd3f2d544324c601c246658f60a9e0be513c40375434d0a416f0bfd4d24493eae3fec7c9f5bb52d008c88cde14de503a3b6873dd1 SHA512 919f40acd8c6eaaef399aa3248503bea19feb96697ab221aaede9ee789ce340b47cb899d1e0e41a31e5d7756653968a10d2faaa4aee83294c9f1243949b43516
DIST rustc-1.64.0-src.tar.xz.asc 801 BLAKE2B 69f7bd7600d99794859c6fad4b44f0e98868e4e16041d6fe81d9d09a8435c75abac67a735adb0b81a2d9f85651841d404bc1ef4cd64fccd75e8a25d6d95729d0 SHA512 a831e3941849add1082c5b47b619ea87405b875d6eeb90a35f42742a511d124c29503debd17dcc8c6aa9e03a754ab51c3a15e99192bdd0dd1b8a59af9b6eb0b8
DIST rustc-1.65.0-src.tar.xz 139674928 BLAKE2B a218263fb67e306b153f5a6dae95b5ec653acaa5eb4b833862d6f0fd4685a8cec097dadc1b8a934e1bf6055672c7a617f9a0ad4a7dbf2e78084297f10b7ada04 SHA512 3d0369ed3028209c4ecb9b9e7b5f5e3a20be8cc05199675df4f091d62a96c0734bc1dbd7630928fe162792392ec6d0daf9ceed10771531ce022200c7b631e3be
DIST rustc-1.65.0-src.tar.xz.asc 801 BLAKE2B 43ff92011cd6f7f34ce0495fa341379e5907d032ea90f91e533e5edaec6ad518aad50a9d8b2694074d6909ee96aa779403b16e95792e962e79c1b967542ae26f SHA512 75b9be53363022c81333117876cbcc573bbd4733edf767cbb164218644efb1a9c4bfc2aa73aaa1e39f248a84f1adacb1930a94a6e63f60093ff760fb9ae02efc
EBUILD rust-1.54.0.ebuild 2685 BLAKE2B ef41cd00143aeae4c9f1ac2fe0ba42a84dda6f57db8d1984398dade581e7fbff3050c0922676040b8390f59eac78f68d34a0480a76f15208f83c9e265bc1b7c0 SHA512 78d458219eb03fd3d463562bbd740a46003e27fe6c8bf3fb0798e5d3d2f72d34f75d8d4a52e8715c1f056665f5e14a659b2a73b880060da853ea27bfdfcc86eb
EBUILD rust-1.55.0.ebuild 20074 BLAKE2B 35fdca5c87a6471ce720e09cad4b28d08db7c61f0545018f036f82aa1b17100145e033ee2428b22a5854595224c75e84f3e9f33e9bf768267d13bcb46203435a SHA512 a58e1181a380edb79a78216af58ded71b3fab25b14d87065046d59cd79016182afd632068baadc145f6baee2bd7f0b96b38a051c6eab184fce9a1afa0027ebf4
EBUILD rust-1.56.1.ebuild 20385 BLAKE2B 21907a26071b9e62a0db0a6a1c6e7c1f585b5a1fa381bb65b87daa35d19ed1502e36a926c40460b2dd8db0af14ef58027c79ac3265a4cb7e184cd534de9f2a12 SHA512 e2cd25cc0729d1c31b4a8edf3d489a69d38ab3161ec42d0b075b8c06528444b866372008dba3563d9402d04d9269141165d62416c0b03495fb1ec23dd8573645
@ -43,3 +46,4 @@ EBUILD rust-1.61.0.ebuild 22500 BLAKE2B f05e2871e2d3a4f1ba0ce8c5a853b53690be98d1
EBUILD rust-1.62.1.ebuild 22387 BLAKE2B bf93989d602d6cb6aeac9b1a5ed1f4bff31580b053f2bc07bb234356d886e1583f882715eb9d6ba04d16394fdf75b761faf326c85bd9b5e6307d852ee90ecede SHA512 ebd3610c46d10aae3cf6fad2140c9583faa5b064606e06218c422229da564808e504aa951fa37fd4b7a9454bda2d5ee39ba2493fda2cf590ccb8c08fa0628af5
EBUILD rust-1.63.0-r1.ebuild 23872 BLAKE2B c7be72be95f31169180fed0132f2b4d86b907116ab2b969a159601bcc89261fd0e275f26a7cc76cbc1ccaee5ddd14bf93fdab4895a35eadbc2fc671a39ff4a3b SHA512 a8fd479baa8bb66346d9acdd6bcc6558beff89b9f369aa21d6cc61f49007d47e9feefd0e0831e34b93cb11970707118a7231dd1d65b8d3c7640e7536910111a6
EBUILD rust-1.64.0-r1.ebuild 23992 BLAKE2B 91915ceb2a341ff9308647a6909038f69b7f06d8c07dc1610270ee2990ca1b620e1043f3b8df6997a227cdbcb2c87ae98dfe391754f2f2be83925eeb86db34bc SHA512 f7a91cc74d424bc08a809187aca0364b0da74b6220d40a6f3a9b04fb4277f6d597efafa7d19117ec108334d54e0d5a3c39e7ea8513b69ced19c2dcc3b3625d13
EBUILD rust-1.65.0.ebuild 23944 BLAKE2B 94f1d1467daee2c371001d85b01194c2ff10b56a3f48a4add0ef9719e738b3f302b4d69743be4940a682551844d6c855f26a188cfd60f95752e203a15512696a SHA512 e0ae94fd9451b581c52c101e7d2358af642f287f24ca13ede0882f0b18f218bdc05834aa8750cee2223348e387d2db6970b34539a5deecb56453761cd2a05558

View File

@ -0,0 +1,40 @@
From 1879d1d1a284bf51c752e47db284ce22701ed5d0 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Sun, 16 Sep 2018 16:38:48 +0000
Subject: [PATCH 12/15] Ignore broken and non-applicable tests
c-link-to-rust-va-list-fn: unstable feature, broken on aarch64, #56475
env-funky-keys: can't handle LD_PRELOAD (e.g. sandbox)
long-linker-command-lines: takes >10 minutes to run (but still passes)
simd-intrinsic-generic-bitmask.rs: broken on BE, #59356
sparc-struct-abi: no sparc target
sysroot-crates-are-unstable: can't run rustc without RPATH
---
src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile | 2 ++
src/test/ui/env-funky-keys.rs | 1 +
6 files changed, 10 insertions(+)
diff --git a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
index 9e770706857..6d92ec5cec8 100644
--- a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
+++ b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
@@ -1,1 +1,3 @@
+# ignore-test
+
all:
python2.7 test.py
diff --git a/src/test/ui/env-funky-keys.rs b/src/test/ui/env-funky-keys.rs
index c5c824ac58d..f3fe047a79c 100644
--- a/src/test/ui/env-funky-keys.rs
+++ b/src/test/ui/env-funky-keys.rs
@@ -1,6 +1,7 @@
// run-pass
// Ignore this test on Android, because it segfaults there.
+// ignore-test
// ignore-android
// ignore-windows
// ignore-cloudabi no execve
--
2.24.1

View File

@ -0,0 +1,763 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
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 -> rustc-${PV}-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 arm arm64 ~mips ~ppc ppc64 ~riscv sparc 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}
verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
"
# keep in sync with llvm ebuild of the same version as bundled one.
ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430
NVPTX PowerPC RISCV Sparc SystemZ WebAssembly 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 dist doc llvm-libunwind miri nightly parallel-compiler profiler rustfmt rust-analyzer rust-src +system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
# Please keep the LLVM dependency block separate. Since LLVM is slotted,
# we need to *really* make sure we're not pulling more than one slot
# simultaneously.
# How to use it:
# List all the working slots in LLVM_VALID_SLOTS, newest first.
LLVM_VALID_SLOTS=( 15 )
LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
# (-) usedep needed because we may build with older llvm without that target
LLVM_DEPEND="|| ( "
for _s in ${LLVM_VALID_SLOTS[@]}; do
LLVM_DEPEND+=" ( "
for _x in ${ALL_LLVM_TARGETS[@]}; do
LLVM_DEPEND+="
${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )
wasm? ( sys-devel/lld:${_s} )"
done
LLVM_DEPEND+=" )"
done
unset _s _x
LLVM_DEPEND+=" )
<sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
"
# to bootstrap we need at least exactly previous version, or same.
# most of the time previous versions fail to bootstrap with newer
# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
# but it fails to bootstrap with 1.48.x
# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.json
RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
BOOTSTRAP_DEPEND="||
(
=dev-lang/rust-"${RUST_DEP_PREV}"
=dev-lang/rust-"${RUST_DEP_CURR}"
)
"
BDEPEND="${PYTHON_DEPS}
app-eselect/eselect-rust
|| (
>=sys-devel/gcc-4.7
>=sys-devel/clang-3.5
)
system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
!system-llvm? (
>=dev-util/cmake-3.13.4
dev-util/ninja
)
test? ( sys-devel/gdb )
verify-sig? ( sec-keys/openpgp-keys-rust )
"
DEPEND="
>=app-arch/xz-utils-5.2
net-misc/curl:=[http2,ssl]
sys-libs/zlib:=
dev-libs/openssl:0=
system-llvm? (
${LLVM_DEPEND}
llvm-libunwind? ( sys-libs/llvm-libunwind:= )
)
!system-llvm? (
!llvm-libunwind? (
elibc_musl? ( sys-libs/libunwind:= )
)
)
"
RDEPEND="${DEPEND}
app-eselect/eselect-rust
sys-apps/lsb-release
"
# FIXME: https://bugs.gentoo.org/874885
# rust-analyzer should work with wasm, but currently does not
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
miri? ( nightly )
parallel-compiler? ( nightly )
rust-analyzer? ( !wasm )
test? ( ${ALL_LLVM_TARGETS[*]} )
wasm? ( llvm_targets_WebAssembly )
x86? ( cpu_flags_x86_sse2 )
"
# we don't use cmake.eclass, but can get a warning
CMAKE_WARN_UNUSED_CLI=no
QA_FLAGS_IGNORED="
usr/lib/${PN}/${PV}/bin/.*
usr/lib/${PN}/${PV}/libexec/.*
usr/lib/${PN}/${PV}/lib/lib.*.so
usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
"
QA_SONAME="
usr/lib/${PN}/${PV}/lib/lib.*.so.*
usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
"
QA_PRESTRIPPED="
usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/rust-llvm-dwp
usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/self-contained/crtn.o
"
# An rmeta file is custom binary format that contains the metadata for the crate.
# rmeta files do not support linking, since they do not contain compiled object files.
# so we can safely silence the warning for this QA check.
QA_EXECSTACK="usr/lib/${PN}/${PV}/lib/rustlib/*/lib*.rlib:lib.rmeta"
# causes double bootstrap
RESTRICT="test"
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc
PATCHES=(
"${FILESDIR}"/1.65.0-ignore-broken-and-non-applicable-tests.patch
"${FILESDIR}"/1.62.1-musl-dynamic-linking.patch
"${FILESDIR}"/1.64.0-vendor-rustix-sparc-has-no-SIGSTKFLT.patch
)
S="${WORKDIR}/${MY_P}-src"
toml_usex() {
usex "${1}" true false
}
bootstrap_rust_version_check() {
# never call from pkg_pretend. eselect-rust may be not installed yet.
[[ ${MERGE_TYPE} == binary ]] && return
local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
rustc_version=${rustc_version[0]#rust-bin-}
rustc_version=${rustc_version#rust-}
[[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
eerror "Rust >=${rustc_wanted} is required"
eerror "please run 'eselect rust' and set correct rust version"
die "selected rust version is too old"
elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
eerror "Rust <${rustc_toonew} is required"
eerror "please run 'eselect rust' and set correct rust version"
die "selected rust version is too new"
else
einfo "Using rust ${rustc_version} to build"
fi
}
pre_build_checks() {
local M=8192
# multiply requirements by 1.3 if we are doing x86-multilib
if use amd64; then
M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 ))
fi
M=$(( $(usex clippy 128 0) + ${M} ))
M=$(( $(usex miri 128 0) + ${M} ))
M=$(( $(usex rustfmt 256 0) + ${M} ))
# add 2G if we compile llvm and 256M per llvm_target
if ! use system-llvm; then
M=$(( 2048 + ${M} ))
local ltarget
for ltarget in ${ALL_LLVM_TARGETS[@]}; do
M=$(( $(usex ${ltarget} 256 0) + ${M} ))
done
fi
M=$(( $(usex wasm 256 0) + ${M} ))
M=$(( $(usex debug 2 1) * ${M} ))
eshopts_push -s extglob
if is-flagq '-g?(gdb)?([1-9])'; then
M=$(( 15 * ${M} / 10 ))
fi
eshopts_pop
M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
M=$(( $(usex doc 256 0) + ${M} ))
CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
}
llvm_check_deps() {
has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
}
# Is LLVM being linked against libc++?
is_libcxx_linked() {
local code='#include <ciso646>
#if defined(_LIBCPP_VERSION)
HAVE_LIBCXX
#endif
'
local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1
[[ ${out} == *HAVE_LIBCXX* ]]
}
pkg_pretend() {
pre_build_checks
}
pkg_setup() {
pre_build_checks
python-any-r1_pkg_setup
export LIBGIT2_NO_PKG_CONFIG=1 #749381
use system-bootstrap && bootstrap_rust_version_check
if use system-llvm; then
llvm_pkg_setup
local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
export LLVM_LINK_SHARED=1
export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
fi
}
esetup_unwind_hack() {
# https://bugs.gentoo.org/870280
# this is a hack needed to bootstrap with libgcc_s linked tarball on llvm-libunwind system.
# it should trigger for internal bootstrap or system-bootstrap with rust-bin.
# the whole idea is for stage0 to bootstrap with fake libgcc_s.
# final stage will receive -L${T}/lib but not -lgcc_s args, producing clean compiler.
local fakelib="${T}/fakelib"
mkdir -p "${fakelib}" || die
# we need both symlinks, one for cargo runtime, other for linker.
ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so.1" || die
ln -s "${ESYSROOT}/usr/lib/libunwind.so" "${fakelib}/libgcc_s.so" || die
export LD_LIBRARY_PATH="${fakelib}"
export RUSTFLAGS+=" -L${fakelib}"
# this is a literally magic variable that gets through cargo cache, without it some
# crates ignore RUSTFLAGS.
# this variable can not contain leading space.
export MAGIC_EXTRA_RUSTFLAGS+="${MAGIC_EXTRA_RUSTFLAGS:+ }-L${fakelib}"
}
src_prepare() {
# this supidity is needed because patch is too large to be in filesdir
# and if we move it to devspace - it lacks checksum for sig verification
if [[ "${PV}" == 1.65.0 ]]; then
sed -i \
-e 's/516ba32a547b46a8e80ad20d4a17bf24a00bff0b69b74f56df119f770f3dfff6/fc7eb88c2f5104865379128b76767d36ce5b5fdb9f3483e683d150e514ebc3a3/' \
-e 's/fba10dc8ca9eaf4d481cb82bd1540cf5c05620533c44f917c09a22ea55ef408c/9cc4d1b4511a1f0d91231eb0f11c67ae5e8e38e4becd0bf5eb9e26d043796056/' \
vendor/rustix/.cargo-checksum.json || die
else
die "remove sed mr forgetful maintainer"
fi
if ! use system-bootstrap; then
has_version sys-devel/gcc || esetup_unwind_hack
local rust_stage0_root="${WORKDIR}"/rust-stage0
local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
"${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
--without=rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
fi
default
rm "${S}/vendor/vte/vim10m_"{match,table}
python3 <<EOF
import json, pathlib
for path in pathlib.Path('.').rglob('.cargo-checksum.json'):
with open(path, 'r+') as f:
j = json.load(f)
j['files'] = {}
f.seek(0)
f.truncate()
json.dump(j, f)
EOF
}
src_configure() {
filter-flags '-flto*' # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231
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_abi $(get_abi_CHOST ${v##*.}))\""
done
if use wasm; then
rust_targets+=",\"wasm32-unknown-unknown\""
if use system-llvm; then
# un-hardcode rust-lld linker for this target
# https://bugs.gentoo.org/715348
sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
fi
fi
rust_targets="${rust_targets#,}"
local tools='"cargo"'
use clippy && tools+=',"clippy"'
use miri && tools+=',"miri"'
use profiler && tools+=',"rust-demangler"'
use rustfmt && tools+=',"rustfmt"'
use rust-analyzer && tools+=',"rust-analyzer","analysis"'
use rust-src && tools+=',"src"'
local rust_stage0_root
if use system-bootstrap; then
local printsysroot
printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
rust_stage0_root="${printsysroot}"
else
rust_stage0_root="${WORKDIR}"/rust-stage0
fi
# in case of prefix it will be already prefixed, as --print sysroot returns full path
[[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
rust_target="$(rust_abi)"
local cm_btype="$(usex debug DEBUG RELEASE)"
cat <<- _EOF_ > "${S}"/config.toml
changelog-seen = 2
[llvm]
download-ci-llvm = false
optimize = $(toml_usex !debug)
release-debuginfo = $(toml_usex debug)
assertions = $(toml_usex debug)
ninja = true
targets = "${LLVM_TARGETS// /;}"
experimental-targets = ""
link-shared = $(toml_usex system-llvm)
$(if is_libcxx_linked; then
# https://bugs.gentoo.org/732632
echo "use-libcxx = true"
echo "static-libstdcpp = false"
fi)
$(case "${rust_target}" in
i586-*-linux-*)
# https://github.com/rust-lang/rust/issues/93059
echo 'cflags = "-fcf-protection=none"'
echo 'cxxflags = "-fcf-protection=none"'
echo 'ldflags = "-fcf-protection=none"'
;;
*)
;;
esac)
[llvm.build-config]
CMAKE_VERBOSE_MAKEFILE = "ON"
CMAKE_C_FLAGS_${cm_btype} = "${CFLAGS}"
CMAKE_CXX_FLAGS_${cm_btype} = "${CXXFLAGS}"
CMAKE_EXE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}"
CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}"
CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = "${LDFLAGS}"
CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = "${ARFLAGS}"
[build]
build-stage = 2
test-stage = 2
build = "${rust_target}"
host = ["${rust_target}"]
target = [${rust_targets}]
cargo = "${rust_stage0_root}/bin/cargo"
rustc = "${rust_stage0_root}/bin/rustc"
rustfmt = "${rust_stage0_root}/bin/rustfmt"
docs = $(toml_usex doc)
compiler-docs = false
submodules = false
python = "${EPYTHON}"
locked-deps = true
vendor = true
extended = true
tools = [${tools}]
verbose = 2
sanitizers = false
profiler = $(toml_usex profiler)
cargo-native-static = false
[install]
prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
sysconfdir = "etc"
docdir = "share/doc/rust"
bindir = "bin"
libdir = "lib"
mandir = "share/man"
[rust]
# https://github.com/rust-lang/rust/issues/54872
codegen-units-std = 1
optimize = true
debug = $(toml_usex debug)
debug-assertions = $(toml_usex debug)
debug-assertions-std = $(toml_usex debug)
debuginfo-level = $(usex debug 2 0)
debuginfo-level-rustc = $(usex debug 2 0)
debuginfo-level-std = $(usex debug 2 0)
debuginfo-level-tools = $(usex debug 2 0)
debuginfo-level-tests = 0
backtrace = true
incremental = false
default-linker = "$(tc-getCC)"
parallel-compiler = $(toml_usex parallel-compiler)
channel = "$(usex nightly nightly stable)"
description = "gentoo"
rpath = false
verbose-tests = true
optimize-tests = $(toml_usex !debug)
codegen-tests = true
dist-src = false
remap-debuginfo = true
lld = $(usex system-llvm false $(toml_usex wasm))
# only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
# https://github.com/rust-lang/rust/issues/74976
# https://github.com/rust-lang/rust/issues/76526
deny-warnings = $(usex wasm $(usex doc false true) true)
backtrace-on-ice = true
jemalloc = false
[dist]
src-tarball = false
compression-formats = ["xz"]
_EOF_
for v in $(multilib_get_enabled_abi_pairs); do
rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
arch_cflags="$(get_abi_CFLAGS ${v##*.})"
export CFLAGS_${rust_target//-/_}="${arch_cflags}"
cat <<- _EOF_ >> "${S}"/config.toml
[target.${rust_target}]
ar = "$(tc-getAR)"
cc = "$(tc-getCC)"
cxx = "$(tc-getCXX)"
linker = "$(tc-getCC)"
ranlib = "$(tc-getRANLIB)"
llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)"
_EOF_
if use system-llvm; then
cat <<- _EOF_ >> "${S}"/config.toml
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
_EOF_
fi
# by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
# but we patch it and set to false here as well
if use elibc_musl; then
cat <<- _EOF_ >> "${S}"/config.toml
crt-static = false
_EOF_
fi
done
if use wasm; then
cat <<- _EOF_ >> "${S}"/config.toml
[target.wasm32-unknown-unknown]
linker = "$(usex system-llvm lld rust-lld)"
# wasm target does not have profiler_builtins https://bugs.gentoo.org/848483
profiler = false
_EOF_
fi
if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
# experimental cross support
# discussion: https://bugs.gentoo.org/679878
# TODO: c*flags, clang, system-llvm, cargo.eclass target support
# it would be much better if we could split out stdlib
# complilation to separate ebuild and abuse CATEGORY to
# just install to /usr/lib/rustlib/<target>
# extra targets defined as a bash array
# spec format: <LLVM target>:<rust-target>:<CTARGET>
# best place would be /etc/portage/env/dev-lang/rust
# Example:
# RUST_CROSS_TARGETS=(
# "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
# )
# no extra hand holding is done, no target transformations, all
# values are passed as-is with just basic checks, so it's up to user to supply correct values
# valid rust targets can be obtained with
# rustc --print target-list
# matching cross toolchain has to be installed
# matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
# only gcc toolchains installed with crossdev are checked for now.
# BUG: we can't pass host flags to cross compiler, so just filter for now
# BUG: this should be more fine-grained.
filter-flags '-mcpu=*' '-march=*' '-mtune=*'
local cross_target_spec
for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
# extracts first element form <LLVM target>:<rust-target>:<CTARGET>
local cross_llvm_target="${cross_target_spec%%:*}"
# extracts toolchain triples, <rust-target>:<CTARGET>
local cross_triples="${cross_target_spec#*:}"
# extracts first element after before : separator
local cross_rust_target="${cross_triples%%:*}"
# extracts last element after : separator
local cross_toolchain="${cross_triples##*:}"
use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
cat <<- _EOF_ >> "${S}"/config.toml
[target.${cross_rust_target}]
ar = "${cross_toolchain}-ar"
cc = "${cross_toolchain}-gcc"
cxx = "${cross_toolchain}-g++"
linker = "${cross_toolchain}-gcc"
ranlib = "${cross_toolchain}-ranlib"
_EOF_
if use system-llvm; then
cat <<- _EOF_ >> "${S}"/config.toml
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
_EOF_
fi
if [[ "${cross_toolchain}" == *-musl* ]]; then
cat <<- _EOF_ >> "${S}"/config.toml
musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
_EOF_
fi
# append cross target to "normal" target list
# example 'target = ["powerpc64le-unknown-linux-gnu"]'
# becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
rust_targets="${rust_targets},\"${cross_rust_target}\""
sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
ewarn
ewarn "Enabled ${cross_rust_target} rust target"
ewarn "Using ${cross_toolchain} cross toolchain"
ewarn
if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
ewarn "'sys-devel/binutils[multitarget]' is not installed"
ewarn "'strip' will be unable to strip cross libraries"
ewarn "cross targets will be installed with full debug information"
ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
ewarn
ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
ewarn
fi
done
fi # I_KNOW_WHAT_I_AM_DOING_CROSS
einfo "Rust configured with the following flags:"
echo
echo RUSTFLAGS="\"${RUSTFLAGS}\""
echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\""
echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\""
echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\""
env | grep "CARGO_TARGET_.*_RUSTFLAGS="
env | grep "CFLAGS_.*"
echo
einfo "config.toml contents:"
cat "${S}"/config.toml || die
echo
}
src_compile() {
RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
}
src_test() {
# https://rustc-dev-guide.rust-lang.org/tests/intro.html
# those are basic and codegen tests.
local tests=(
codegen
codegen-units
compile-fail
incremental
mir-opt
pretty
run-make
)
# fails if llvm is not built with ALL targets.
# and known to fail with system llvm sometimes.
use system-llvm || tests+=( assembly )
# fragile/expensive/less important tests
# or tests that require extra builds
# TODO: instead of skipping, just make some nonfatal.
if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
tests+=(
rustdoc
rustdoc-js
rustdoc-js-std
rustdoc-ui
run-make-fulldeps
ui
ui-fulldeps
)
fi
local i failed=()
einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
for i in "${tests[@]}"; do
local t="src/test/${i}"
einfo "rust_src_test: running ${t}"
if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
-j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
then
failed+=( "${t}" )
eerror "rust_src_test: ${t} failed"
fi
done
if [[ ${#failed[@]} -ne 0 ]]; then
eerror "rust_src_test: failure summary: ${failed[@]}"
die "aborting due to test failures"
fi
}
src_install() {
DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
# bug #689562, #689160
rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
local symlinks=(
cargo
rustc
rustdoc
rust-gdb
rust-gdbgui
rust-lldb
)
use clippy && symlinks+=( clippy-driver cargo-clippy )
use miri && symlinks+=( miri cargo-miri )
use profiler && symlinks+=( rust-demangler )
use rustfmt && symlinks+=( rustfmt cargo-fmt )
use rust-analyzer && symlinks+=( rust-analyzer )
einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
local i
for i in "${symlinks[@]}"; do
# we need realpath on /usr/bin/* symlink return version-appended binary path.
# so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
# need to fix eselect-rust to remove this hack.
local ver_i="${i}-${PV}"
if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
einfo "Installing ${i} symlink"
ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
else
ewarn "${i} symlink requested, but source file not found"
ewarn "please report this"
fi
dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
done
# symlinks to switch components to active rust in eselect
dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
newenvd - "50${P}" <<-_EOF_
LDPATH="${EPREFIX}/usr/lib/rust/lib"
MANPATH="${EPREFIX}/usr/lib/rust/man"
_EOF_
rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
# note: eselect-rust adds EROOT to all paths below
cat <<-_EOF_ > "${T}/provider-${P}"
/usr/bin/cargo
/usr/bin/rustdoc
/usr/bin/rust-gdb
/usr/bin/rust-gdbgui
/usr/bin/rust-lldb
/usr/lib/rustlib
/usr/lib/rust/lib
/usr/lib/rust/libexec
/usr/lib/rust/man
/usr/share/doc/rust
_EOF_
if use clippy; then
echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
fi
if use miri; then
echo /usr/bin/miri >> "${T}/provider-${P}"
echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
fi
if use profiler; then
echo /usr/bin/rust-demangler >> "${T}/provider-${P}"
fi
if use rustfmt; then
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
fi
if use rust-analyzer; then
echo /usr/bin/rust-analyzer >> "${T}/provider-${P}"
fi
insinto /etc/env.d/rust
doins "${T}/provider-${P}"
if use dist; then
insinto "/usr/lib/${PN}/${PV}/dist"
doins -r "${S}/build/dist/."
fi
}
pkg_postinst() {
eselect rust update
if has_version sys-devel/gdb || has_version dev-util/lldb; then
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}."
fi
if has_version app-editors/emacs; 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
}
pkg_postrm() {
eselect rust cleanup
}

View File

@ -1,9 +1,11 @@
EBUILD rust-1.55.0.ebuild 341 BLAKE2B 46814889235011806589f1ab14dd1c3714469299c42ddec516ec0fea24aace127fad72775a7cebc3e81d75be24e18418d0d30d94ac81351eb25e81fb1565cf6b SHA512 fdb6978acd346022383cca79f2e61433504ac3626b8ac335f52553aff36aa53888afc94492016f368976754a8c1e3c719184e1634e7b81ce7f2e086f15e2ff6a
EBUILD rust-1.56.1.ebuild 341 BLAKE2B 46814889235011806589f1ab14dd1c3714469299c42ddec516ec0fea24aace127fad72775a7cebc3e81d75be24e18418d0d30d94ac81351eb25e81fb1565cf6b SHA512 fdb6978acd346022383cca79f2e61433504ac3626b8ac335f52553aff36aa53888afc94492016f368976754a8c1e3c719184e1634e7b81ce7f2e086f15e2ff6a
EBUILD rust-1.57.0.ebuild 341 BLAKE2B 46814889235011806589f1ab14dd1c3714469299c42ddec516ec0fea24aace127fad72775a7cebc3e81d75be24e18418d0d30d94ac81351eb25e81fb1565cf6b SHA512 fdb6978acd346022383cca79f2e61433504ac3626b8ac335f52553aff36aa53888afc94492016f368976754a8c1e3c719184e1634e7b81ce7f2e086f15e2ff6a
EBUILD rust-1.58.1.ebuild 341 BLAKE2B 46814889235011806589f1ab14dd1c3714469299c42ddec516ec0fea24aace127fad72775a7cebc3e81d75be24e18418d0d30d94ac81351eb25e81fb1565cf6b SHA512 fdb6978acd346022383cca79f2e61433504ac3626b8ac335f52553aff36aa53888afc94492016f368976754a8c1e3c719184e1634e7b81ce7f2e086f15e2ff6a
EBUILD rust-1.59.0.ebuild 341 BLAKE2B 46814889235011806589f1ab14dd1c3714469299c42ddec516ec0fea24aace127fad72775a7cebc3e81d75be24e18418d0d30d94ac81351eb25e81fb1565cf6b SHA512 fdb6978acd346022383cca79f2e61433504ac3626b8ac335f52553aff36aa53888afc94492016f368976754a8c1e3c719184e1634e7b81ce7f2e086f15e2ff6a
EBUILD rust-1.60.0.ebuild 341 BLAKE2B 46814889235011806589f1ab14dd1c3714469299c42ddec516ec0fea24aace127fad72775a7cebc3e81d75be24e18418d0d30d94ac81351eb25e81fb1565cf6b SHA512 fdb6978acd346022383cca79f2e61433504ac3626b8ac335f52553aff36aa53888afc94492016f368976754a8c1e3c719184e1634e7b81ce7f2e086f15e2ff6a
EBUILD rust-1.61.0.ebuild 341 BLAKE2B 46814889235011806589f1ab14dd1c3714469299c42ddec516ec0fea24aace127fad72775a7cebc3e81d75be24e18418d0d30d94ac81351eb25e81fb1565cf6b SHA512 fdb6978acd346022383cca79f2e61433504ac3626b8ac335f52553aff36aa53888afc94492016f368976754a8c1e3c719184e1634e7b81ce7f2e086f15e2ff6a
EBUILD rust-1.62.1.ebuild 341 BLAKE2B 46814889235011806589f1ab14dd1c3714469299c42ddec516ec0fea24aace127fad72775a7cebc3e81d75be24e18418d0d30d94ac81351eb25e81fb1565cf6b SHA512 fdb6978acd346022383cca79f2e61433504ac3626b8ac335f52553aff36aa53888afc94492016f368976754a8c1e3c719184e1634e7b81ce7f2e086f15e2ff6a
EBUILD rust-1.63.0.ebuild 341 BLAKE2B 46814889235011806589f1ab14dd1c3714469299c42ddec516ec0fea24aace127fad72775a7cebc3e81d75be24e18418d0d30d94ac81351eb25e81fb1565cf6b SHA512 fdb6978acd346022383cca79f2e61433504ac3626b8ac335f52553aff36aa53888afc94492016f368976754a8c1e3c719184e1634e7b81ce7f2e086f15e2ff6a
EBUILD rust-1.55.0.ebuild 341 BLAKE2B 74a1fa4fbd5d66b25242d1767a82b0687e6221c0491236a6f28ae87087e3ae4960e82baad116304a74d3fde8fb89c8924d402f4469d59feda5b71b1ef905b744 SHA512 f82e0bf99045bc418c7d8cba32bd4c9c7b39dd9cc4523a8f238cc5968befa752f24a59f9bdf66780749c9acb2385e156a7b61adf05baf478d3c20097f07cb728
EBUILD rust-1.56.1.ebuild 341 BLAKE2B 74a1fa4fbd5d66b25242d1767a82b0687e6221c0491236a6f28ae87087e3ae4960e82baad116304a74d3fde8fb89c8924d402f4469d59feda5b71b1ef905b744 SHA512 f82e0bf99045bc418c7d8cba32bd4c9c7b39dd9cc4523a8f238cc5968befa752f24a59f9bdf66780749c9acb2385e156a7b61adf05baf478d3c20097f07cb728
EBUILD rust-1.57.0.ebuild 341 BLAKE2B 74a1fa4fbd5d66b25242d1767a82b0687e6221c0491236a6f28ae87087e3ae4960e82baad116304a74d3fde8fb89c8924d402f4469d59feda5b71b1ef905b744 SHA512 f82e0bf99045bc418c7d8cba32bd4c9c7b39dd9cc4523a8f238cc5968befa752f24a59f9bdf66780749c9acb2385e156a7b61adf05baf478d3c20097f07cb728
EBUILD rust-1.58.1.ebuild 341 BLAKE2B 74a1fa4fbd5d66b25242d1767a82b0687e6221c0491236a6f28ae87087e3ae4960e82baad116304a74d3fde8fb89c8924d402f4469d59feda5b71b1ef905b744 SHA512 f82e0bf99045bc418c7d8cba32bd4c9c7b39dd9cc4523a8f238cc5968befa752f24a59f9bdf66780749c9acb2385e156a7b61adf05baf478d3c20097f07cb728
EBUILD rust-1.59.0.ebuild 341 BLAKE2B 74a1fa4fbd5d66b25242d1767a82b0687e6221c0491236a6f28ae87087e3ae4960e82baad116304a74d3fde8fb89c8924d402f4469d59feda5b71b1ef905b744 SHA512 f82e0bf99045bc418c7d8cba32bd4c9c7b39dd9cc4523a8f238cc5968befa752f24a59f9bdf66780749c9acb2385e156a7b61adf05baf478d3c20097f07cb728
EBUILD rust-1.60.0.ebuild 341 BLAKE2B 74a1fa4fbd5d66b25242d1767a82b0687e6221c0491236a6f28ae87087e3ae4960e82baad116304a74d3fde8fb89c8924d402f4469d59feda5b71b1ef905b744 SHA512 f82e0bf99045bc418c7d8cba32bd4c9c7b39dd9cc4523a8f238cc5968befa752f24a59f9bdf66780749c9acb2385e156a7b61adf05baf478d3c20097f07cb728
EBUILD rust-1.61.0.ebuild 341 BLAKE2B 74a1fa4fbd5d66b25242d1767a82b0687e6221c0491236a6f28ae87087e3ae4960e82baad116304a74d3fde8fb89c8924d402f4469d59feda5b71b1ef905b744 SHA512 f82e0bf99045bc418c7d8cba32bd4c9c7b39dd9cc4523a8f238cc5968befa752f24a59f9bdf66780749c9acb2385e156a7b61adf05baf478d3c20097f07cb728
EBUILD rust-1.62.1.ebuild 341 BLAKE2B 74a1fa4fbd5d66b25242d1767a82b0687e6221c0491236a6f28ae87087e3ae4960e82baad116304a74d3fde8fb89c8924d402f4469d59feda5b71b1ef905b744 SHA512 f82e0bf99045bc418c7d8cba32bd4c9c7b39dd9cc4523a8f238cc5968befa752f24a59f9bdf66780749c9acb2385e156a7b61adf05baf478d3c20097f07cb728
EBUILD rust-1.63.0.ebuild 341 BLAKE2B 74a1fa4fbd5d66b25242d1767a82b0687e6221c0491236a6f28ae87087e3ae4960e82baad116304a74d3fde8fb89c8924d402f4469d59feda5b71b1ef905b744 SHA512 f82e0bf99045bc418c7d8cba32bd4c9c7b39dd9cc4523a8f238cc5968befa752f24a59f9bdf66780749c9acb2385e156a7b61adf05baf478d3c20097f07cb728
EBUILD rust-1.64.0.ebuild 341 BLAKE2B f0e9192c843007f72b77832be1cdb1f0609fb969a19bcaa6cfe62ca7c056c635067675013e8ab7d23c98ae275b7b9c1beb7cc572d333dcf36598fcf07e77572b SHA512 09ae84291d8501e2f60bc8c7c872eaf0102fed9b4083b4bea0c6e5cb68da7bab303f8dfd0d341d732dd1df5dc6eb7d12cf9d97f336ac9eea6e24ca33d1ad277d
EBUILD rust-1.65.0-r1.ebuild 601 BLAKE2B a94ce87582eebb39965295217fd22cdab31c803999fc259c7f63281c6ea4b74fe1d7cd731b53ba292490606282169bf5eddb1a86f51398572c5b760ac0579df2 SHA512 bfa5d6bd05cb06c72fd954090fd34b89ee3c64491b192c5de5815717b05672a6e301d81611cf31bfc4376c6b5b4ad8bb6582df8afe477ea6bd8b316db1fbb06e

View File

@ -1,7 +1,7 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
inherit multilib-build

View File

@ -1,7 +1,7 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
inherit multilib-build

View File

@ -1,7 +1,7 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
inherit multilib-build

View File

@ -1,7 +1,7 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
inherit multilib-build

View File

@ -1,7 +1,7 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
inherit multilib-build

View File

@ -1,7 +1,7 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
inherit multilib-build

View File

@ -1,7 +1,7 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
inherit multilib-build

View File

@ -1,7 +1,7 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
inherit multilib-build

View File

@ -1,7 +1,7 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
inherit multilib-build

View File

@ -0,0 +1,15 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit multilib-build
DESCRIPTION="Virtual for Rust language compiler"
LICENSE=""
SLOT="0"
KEYWORDS="amd64 arm arm64 ppc64 x86"
BDEPEND=""
RDEPEND="|| ( =dev-lang/rust-${PV}*[${MULTILIB_USEDEP}] =dev-lang/rust-bin-${PV}* )"

View File

@ -0,0 +1,23 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit multilib-build
DESCRIPTION="Virtual for Rust language compiler"
LICENSE=""
# adjust when rust upstream bumps internal llvm
# we do not allow multiple llvm versions in dev-lang/rust for
# neither system nor bundled, so we just hardcode it here.
SLOT="0/llvm-15"
KEYWORDS="amd64 arm arm64 ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="rustfmt"
BDEPEND=""
RDEPEND="|| (
~dev-lang/rust-${PV}[rustfmt?,${MULTILIB_USEDEP}]
~dev-lang/rust-bin-${PV}[rustfmt?,${MULTILIB_USEDEP}]
)"