From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 6BB4715800A for ; Fri, 16 May 2025 09:59:09 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 3EAB43438BD for ; Fri, 16 May 2025 09:59:09 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 332ED110105; Fri, 16 May 2025 09:59:07 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 24928110105 for ; Fri, 16 May 2025 09:59:07 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id CCD26343649 for ; Fri, 16 May 2025 09:59:06 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 3FD26FB9 for ; Fri, 16 May 2025 09:59:05 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1747389421.63d033755d8c75aea10c6bdff41deaa533cd6cdd.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: eclass/ X-VCS-Repository: repo/gentoo X-VCS-Files: eclass/rust.eclass X-VCS-Directories: eclass/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 63d033755d8c75aea10c6bdff41deaa533cd6cdd X-VCS-Branch: master Date: Fri, 16 May 2025 09:59:05 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 8d1d29c9-a7c9-4f7f-a0f3-aeb4bde53026 X-Archives-Hash: c2d927cda1cdbc6f849ae09602f503d6 commit: 63d033755d8c75aea10c6bdff41deaa533cd6cdd Author: Sam James gentoo org> AuthorDate: Fri May 16 09:53:33 2025 +0000 Commit: Sam James gentoo org> CommitDate: Fri May 16 09:57:01 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=63d03375 Revert "rust.eclass: revert simplified dependency simplification" This reverts commit 34b74faa06a90bf9d4f62ecfca746b380d60517a, i.e. reapplies the simplified dependency specification. We had to revert this before because of the collision issues when switching to slotted Rust where the same Rust version existed before in a non-slotted variant. We have a sanity check and workaround for that in pkg_postinst for affected versions now, so there shouldn't be a reason we can't do this. This may ease depcleaning older Rust in some cases w/o having to rebuild packages against new Rust. Bug: https://bugs.gentoo.org/943143 Bug: https://bugs.gentoo.org/943206 Bug: https://bugs.gentoo.org/953884 Signed-off-by: Sam James gentoo.org> eclass/rust.eclass | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/eclass/rust.eclass b/eclass/rust.eclass index e99fca94ac3d..2ab5b7dfe00d 100644 --- a/eclass/rust.eclass +++ b/eclass/rust.eclass @@ -248,22 +248,25 @@ _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=( "|| (" ) - # 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 + # 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 rust_dep+=( - "dev-lang/rust-bin:${slot}${usedep}" - "dev-lang/rust:${slot}${usedep}" + ">=dev-lang/rust-bin-${RUST_MIN_VER}:*${usedep}" + ">=dev-lang/rust-${RUST_MIN_VER}:*${usedep}" ) - done + 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 rust_dep+=( ")" ) RUST_DEPEND="${rust_dep[*]}" else