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
