diff options
Diffstat (limited to 'eclass/rust.eclass')
-rw-r--r-- | eclass/rust.eclass | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/eclass/rust.eclass b/eclass/rust.eclass index 3837c3a1f6c5..3a8a93718787 100644 --- a/eclass/rust.eclass +++ b/eclass/rust.eclass @@ -196,25 +196,22 @@ _rust_set_globals() { local usedep="${RUST_REQ_USE+[${RUST_REQ_USE}]}" # If we're not using LLVM, we can just generate a simple Rust dependency + # In time we need to implement trivial dependencies + # (>=RUST_MIN_VER) where RUST_MAX_VER isnt't set, + # however the previous attempt to do this ran into issues + # where `emerge ... --keep-going` ate legacy non-slotted + # Rust blockers resutling in the non-slotted version never + # being removed and breaking builds. #943206 #943143 if [[ -z "${RUST_NEEDS_LLVM}" ]]; then rust_dep=( "|| (" ) - # We can be more flexible if we generate a simpler, open-ended dependency - # when we don't have a max version set. - if [[ -z "${RUST_MAX_VER}" ]]; then + # depend on each slot between RUST_MIN_VER and RUST_MAX_VER; it's a bit specific but + # won't hurt as we only ever add newer Rust slots. + for slot in "${_RUST_SLOTS[@]}"; do rust_dep+=( - ">=dev-lang/rust-bin-${RUST_MIN_VER}:*${usedep}" - ">=dev-lang/rust-${RUST_MIN_VER}:*${usedep}" + "dev-lang/rust-bin:${slot}${usedep}" + "dev-lang/rust:${slot}${usedep}" ) - else - # depend on each slot between RUST_MIN_VER and RUST_MAX_VER; it's a bit specific but - # won't hurt as we only ever add newer Rust slots. - for slot in "${_RUST_SLOTS[@]}"; do - rust_dep+=( - "dev-lang/rust-bin:${slot}${usedep}" - "dev-lang/rust:${slot}${usedep}" - ) - done - fi + done rust_dep+=( ")" ) RUST_DEPEND="${rust_dep[*]}" else |