Auto merge of #79096 - pietroalbini:stable-build-manifest-newline, r=Mark-Simulacrum
build-manifest: strip newline from rustc version
While running the release process for Rust 1.48.0 I discovered a bug in `build-manifest`: it's not trimming the newline from `src/version`, and it tries to inspect tarballs called `rustc-1.48.0\n-x86_64-unknown-linux-gnu.tar.xz`. The bug only affects stable releases so this is why we're only seeing it right now.
r? `@Mark-Simulacrum`
We'll need to backport this to beta and nightly too.
diff --git a/src/tools/build-manifest/src/versions.rs b/src/tools/build-manifest/src/versions.rs
index 79f2ef8..c5f3e33 100644
--- a/src/tools/build-manifest/src/versions.rs
+++ b/src/tools/build-manifest/src/versions.rs
@@ -7,7 +7,6 @@
use tar::Archive;
const DEFAULT_TARGET: &str = "x86_64-unknown-linux-gnu";
-const RUSTC_VERSION: &str = include_str!("../../../version");
#[derive(Debug, Hash, Eq, PartialEq, Clone)]
pub(crate) enum PkgType {
@@ -172,10 +171,10 @@
) -> Result<String, Error> {
let component_name = package.tarball_component_name();
let version = match self.channel.as_str() {
- "stable" => RUSTC_VERSION.into(),
+ "stable" => self.rustc_version().into(),
"beta" => "beta".into(),
"nightly" => "nightly".into(),
- _ => format!("{}-dev", RUSTC_VERSION),
+ _ => format!("{}-dev", self.rustc_version()),
};
if package.target_independent() {
@@ -186,6 +185,7 @@
}
pub(crate) fn rustc_version(&self) -> &str {
- RUSTC_VERSION
+ const RUSTC_VERSION: &str = include_str!("../../../version");
+ RUSTC_VERSION.trim()
}
}