commit:     da91219632d6a34cba22252e052b8e3794c3f4a6
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 20 23:33:17 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Oct 20 23:34:17 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=da912196

dev-lang/rust-bin: fix src_unpack fetching for multilib in live

We have to iterate over all enabled ABIs.

Closes: https://bugs.gentoo.org/964423
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../rust-bin/rust-bin-1.91.0_beta20251009.ebuild   | 28 +++++++++++++---------
 dev-lang/rust-bin/rust-bin-9999.ebuild             | 28 +++++++++++++---------
 2 files changed, 34 insertions(+), 22 deletions(-)

diff --git a/dev-lang/rust-bin/rust-bin-1.91.0_beta20251009.ebuild 
b/dev-lang/rust-bin/rust-bin-1.91.0_beta20251009.ebuild
index 592a44f47843..78587541bc66 100644
--- a/dev-lang/rust-bin/rust-bin-1.91.0_beta20251009.ebuild
+++ b/dev-lang/rust-bin/rust-bin-1.91.0_beta20251009.ebuild
@@ -108,8 +108,6 @@ src_unpack() {
                curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > 
"${WORKDIR}/channel-rust-nightly.toml" ||
                        die "Failed to fetch nightly revision info"
                rustc_src_url=$(grep 'xz_url.*rust-src' 
"${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2)
-               rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" 
"${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2)
-               einfo "Using nightly Rust from: ${rust_bin_url}"
 
                if use rust-src; then
                        einfo "Using nightly Rust-src from: ${rustc_src_url}"
@@ -121,15 +119,23 @@ src_unpack() {
                        tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die 
"Failed to unpack nightly rust-src tarball"
                fi
 
-               einfo "Fetching nightly Rust tarball ..."
-               curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to 
fetch nightly tarball"
-               if use verify-sig; then
-                       einfo "Fetching nightly signature ..."
-                       curl --progress-bar -L "${rust_bin_url}.asc" -O || die 
"Failed to fetch nightly signature"
-                       verify-sig_verify_detached 
"${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \
-                               "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc"
-               fi
-               tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die 
"Failed to unpack nightly tarball"
+               local v
+               for v in $(multilib_get_enabled_abi_pairs); do
+                       rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+                       rust_bin_url=$(grep 
"xz_url.*rust-nightly-${rust_target}" "${WORKDIR}/channel-rust-nightly.toml" | 
cut -d '"' -f 2)
+                       einfo "Using nightly Rust from ${rust_bin_url} for 
${rust_target}"
+
+                       einfo "Fetching nightly Rust tarball for ${rust_target} 
..."
+                       curl --progress-bar -L "${rust_bin_url}" -O || die 
"Failed to fetch nightly tarball for ${rust_target}"
+                       if use verify-sig; then
+                               einfo "Fetching nightly signature for 
${rust_target} ..."
+                               curl --progress-bar -L "${rust_bin_url}.asc" -O 
|| die "Failed to fetch nightly signature for ${rust_target}"
+                               verify-sig_verify_detached 
"${WORKDIR}/rust-nightly-${rust_target}.tar.xz" \
+                                       
"${WORKDIR}/rust-nightly-${rust_target}.tar.xz.asc"
+                       fi
+
+                       tar -xf "${WORKDIR}/rust-nightly-${rust_target}.tar.xz" 
|| die "Failed to unpack nightly tarball for ${rust_target}"
+               done
        else
                # sadly rust-src tarball does not have corresponding .asc file
                # so do partial verification

diff --git a/dev-lang/rust-bin/rust-bin-9999.ebuild 
b/dev-lang/rust-bin/rust-bin-9999.ebuild
index 686b6ed1bad8..ce246284708a 100644
--- a/dev-lang/rust-bin/rust-bin-9999.ebuild
+++ b/dev-lang/rust-bin/rust-bin-9999.ebuild
@@ -104,8 +104,6 @@ src_unpack() {
                curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > 
"${WORKDIR}/channel-rust-nightly.toml" ||
                        die "Failed to fetch nightly revision info"
                rustc_src_url=$(grep 'xz_url.*rust-src' 
"${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2)
-               rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" 
"${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2)
-               einfo "Using nightly Rust from: ${rust_bin_url}"
 
                if use rust-src; then
                        einfo "Using nightly Rust-src from: ${rustc_src_url}"
@@ -117,15 +115,23 @@ src_unpack() {
                        tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die 
"Failed to unpack nightly rust-src tarball"
                fi
 
-               einfo "Fetching nightly Rust tarball ..."
-               curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to 
fetch nightly tarball"
-               if use verify-sig; then
-                       einfo "Fetching nightly signature ..."
-                       curl --progress-bar -L "${rust_bin_url}.asc" -O || die 
"Failed to fetch nightly signature"
-                       verify-sig_verify_detached 
"${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \
-                               "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc"
-               fi
-               tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die 
"Failed to unpack nightly tarball"
+               local v
+               for v in $(multilib_get_enabled_abi_pairs); do
+                       rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))"
+                       rust_bin_url=$(grep 
"xz_url.*rust-nightly-${rust_target}" "${WORKDIR}/channel-rust-nightly.toml" | 
cut -d '"' -f 2)
+                       einfo "Using nightly Rust from ${rust_bin_url} for 
${rust_target}"
+
+                       einfo "Fetching nightly Rust tarball for ${rust_target} 
..."
+                       curl --progress-bar -L "${rust_bin_url}" -O || die 
"Failed to fetch nightly tarball for ${rust_target}"
+                       if use verify-sig; then
+                               einfo "Fetching nightly signature for 
${rust_target} ..."
+                               curl --progress-bar -L "${rust_bin_url}.asc" -O 
|| die "Failed to fetch nightly signature for ${rust_target}"
+                               verify-sig_verify_detached 
"${WORKDIR}/rust-nightly-${rust_target}.tar.xz" \
+                                       
"${WORKDIR}/rust-nightly-${rust_target}.tar.xz.asc"
+                       fi
+
+                       tar -xf "${WORKDIR}/rust-nightly-${rust_target}.tar.xz" 
|| die "Failed to unpack nightly tarball for ${rust_target}"
+               done
        else
                # sadly rust-src tarball does not have corresponding .asc file
                # so do partial verification

Reply via email to