mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
install-qa-check.d/60cargo-eclass: check min verison for 'rust-version='
Another way Cargo.toml can specify the minimum Rust version is using the 'rust-version=' field. This commit adds a check for that field, and updates the required minimum Rust version accordingly. Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
cargo_ver_check() {
|
||||
has cargo ${INHERITED} || return
|
||||
|
||||
local min_rust_ver= min_rust_source=
|
||||
# First version of Rust to support that edition
|
||||
declare -A RUST_EDITIONS=(
|
||||
[2024]="1.85.0"
|
||||
@@ -19,14 +20,28 @@ cargo_ver_check() {
|
||||
sort -n |
|
||||
tail -n 1
|
||||
)
|
||||
if [[ -n ${cargo_toml_edition} ]]; then
|
||||
local min_rust_ver="${RUST_EDITIONS[${cargo_toml_edition}]}"
|
||||
if [[ -n ${min_rust_ver} ]] && ver_test "${RUST_MIN_VER:-0}" -lt "${min_rust_ver}"; then
|
||||
eqawarn
|
||||
eqawarn "QA Notice: found Cargo.toml file which specifies edition=\"${cargo_toml_edition}\""
|
||||
eqawarn "which requires RUST_MIN_VER=\"${min_rust_ver}\""
|
||||
eqawarn
|
||||
fi
|
||||
if [[ -n ${cargo_toml_edition} && -n ${RUST_EDITIONS[${cargo_toml_edition}]} ]]; then
|
||||
min_rust_ver="${RUST_EDITIONS[${cargo_toml_edition}]}"
|
||||
min_rust_source="found Cargo.toml file which specifies edition=\"${cargo_toml_edition}\""
|
||||
fi
|
||||
|
||||
# Maximum value for "rust-version" across Cargo.toml files
|
||||
local cargo_toml_rust_version=$(
|
||||
find "${WORKDIR}" -name Cargo.toml -exec sed -n -e 's/^\s*rust-version\s*=\s*"\([0-9.]*\)"\s*$/\1/p' {} \+ |
|
||||
sort -V |
|
||||
tail -n 1
|
||||
)
|
||||
if [[ -n ${cargo_toml_rust_version} ]] && ver_test "${min_rust_ver:-0}" -lt "${cargo_toml_rust_version}"; then
|
||||
min_rust_ver=${cargo_toml_rust_version}
|
||||
min_rust_source="found Cargo.toml file which specifies rust-version=\"${cargo_toml_rust_version}\""
|
||||
fi
|
||||
|
||||
|
||||
if [[ -n ${min_rust_ver} ]] && ver_test "${RUST_MIN_VER:-0}" -lt "${min_rust_ver}"; then
|
||||
eqawarn
|
||||
eqawarn "QA Notice: ${min_rust_source}"
|
||||
eqawarn "which requires RUST_MIN_VER=\"${min_rust_ver}\""
|
||||
eqawarn
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user