about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-05-17 07:20:58 +0200
committerGitHub <noreply@github.com>2024-05-17 07:20:58 +0200
commit52de70933aab43248b6522b8a22c261b992f1a01 (patch)
tree6ccfa0badc1a9179cb81ea8c5e1b628840a52773
parent7a8d222d6b39c8253b96e7c4101043d5c82aa578 (diff)
parente9c827379d785a3c4c77ea1ed120ee7c1b41d1d6 (diff)
downloadrust-52de70933aab43248b6522b8a22c261b992f1a01.tar.gz
rust-52de70933aab43248b6522b8a22c261b992f1a01.zip
Rollup merge of #125181 - onur-ozkan:set-rust-channel-properly, r=clubby789
set `rust.channel` properly in source tarballs

This change sets the appropriate channel by default when using nightly, beta or stable source tarballs.

Fixes #124618
-rw-r--r--src/bootstrap/src/core/config/config.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs
index 8713eb304d2..19119a073c5 100644
--- a/src/bootstrap/src/core/config/config.rs
+++ b/src/bootstrap/src/core/config/config.rs
@@ -1307,6 +1307,9 @@ impl Config {
             toml_path = config.src.join(toml_path);
         }
 
+        let file_content = t!(fs::read_to_string(config.src.join("src/ci/channel")));
+        let ci_channel = file_content.trim_end();
+
         // Give a hard error if `--config` or `RUST_BOOTSTRAP_CONFIG` are set to a missing path,
         // but not if `config.toml` hasn't been created.
         let mut toml = if !using_default_path || toml_path.exists() {
@@ -1534,6 +1537,7 @@ impl Config {
         let mut omit_git_hash = None;
         let mut lld_enabled = None;
 
+        let mut is_user_configured_rust_channel = false;
         if let Some(rust) = toml.rust {
             let Rust {
                 optimize: optimize_toml,
@@ -1591,6 +1595,7 @@ impl Config {
                 lld_mode,
             } = rust;
 
+            is_user_configured_rust_channel = channel.is_some();
             set(&mut config.channel, channel);
 
             config.download_rustc_commit = config.download_ci_rustc_commit(download_rustc);
@@ -1598,8 +1603,6 @@ impl Config {
             if config.download_rustc_commit.is_some() {
                 // We need the channel used by the downloaded compiler to match the one we set for rustdoc;
                 // otherwise rustdoc-ui tests break.
-                let ci_channel = t!(fs::read_to_string(config.src.join("src/ci/channel")));
-                let ci_channel = ci_channel.trim_end();
                 if config.channel != ci_channel
                     && !(config.channel == "dev" && ci_channel == "nightly")
                 {
@@ -1717,6 +1720,10 @@ impl Config {
         config.omit_git_hash = omit_git_hash.unwrap_or(default);
         config.rust_info = GitInfo::new(config.omit_git_hash, &config.src);
 
+        if config.rust_info.is_from_tarball() && !is_user_configured_rust_channel {
+            ci_channel.clone_into(&mut config.channel);
+        }
+
         if let Some(llvm) = toml.llvm {
             let Llvm {
                 optimize: optimize_toml,