From a7a6dedfe661a6d9d181afeb0fbaa894fcb7362b Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Tue, 17 Sep 2019 09:58:55 +0200 Subject: [PATCH] Revert "Rollup merge of #64451 - RalfJung:miri-manifest, r=pietroalbini" This reverts commit 7975973e2b806a7ee8e54b40f9e774528a777e31, reversing changes made to f0320e54c7c2c923e2e05996ac1d74f781115bbc. --- Cargo.lock | 2 -- src/bootstrap/dist.rs | 14 +++----- src/tools/build-manifest/Cargo.toml | 2 -- src/tools/build-manifest/src/main.rs | 54 +++------------------------- 4 files changed, 9 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b717460e5d427..326f3b10b4196 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -201,9 +201,7 @@ dependencies = [ name = "build-manifest" version = "0.1.0" dependencies = [ - "reqwest", "serde", - "serde_json", "toml", ] diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs index 076bcd878df71..500d5766a899e 100644 --- a/src/bootstrap/dist.rs +++ b/src/bootstrap/dist.rs @@ -2000,8 +2000,6 @@ impl Step for HashSign { } fn run(self, builder: &Builder<'_>) { - // This gets called by `promote-release` - // (https://github.com/rust-lang/rust-central-station/tree/master/promote-release). let mut cmd = builder.tool_cmd(Tool::BuildManifest); if builder.config.dry_run { return; @@ -2012,14 +2010,10 @@ impl Step for HashSign { let addr = builder.config.dist_upload_addr.as_ref().unwrap_or_else(|| { panic!("\n\nfailed to specify `dist.upload-addr` in `config.toml`\n\n") }); - let pass = if env::var("BUILD_MANIFEST_DISABLE_SIGNING").is_err() { - let file = builder.config.dist_gpg_password_file.as_ref().unwrap_or_else(|| { - panic!("\n\nfailed to specify `dist.gpg-password-file` in `config.toml`\n\n") - }); - t!(fs::read_to_string(&file)) - } else { - String::new() - }; + let file = builder.config.dist_gpg_password_file.as_ref().unwrap_or_else(|| { + panic!("\n\nfailed to specify `dist.gpg-password-file` in `config.toml`\n\n") + }); + let pass = t!(fs::read_to_string(&file)); let today = output(Command::new("date").arg("+%Y-%m-%d")); diff --git a/src/tools/build-manifest/Cargo.toml b/src/tools/build-manifest/Cargo.toml index 63ae445f99b60..c364479d8db13 100644 --- a/src/tools/build-manifest/Cargo.toml +++ b/src/tools/build-manifest/Cargo.toml @@ -7,5 +7,3 @@ edition = "2018" [dependencies] toml = "0.5" serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" -reqwest = "0.9" diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs index c2d642bb136be..9ffa9391c820b 100644 --- a/src/tools/build-manifest/src/main.rs +++ b/src/tools/build-manifest/src/main.rs @@ -1,19 +1,12 @@ -//! Build a dist manifest, hash and sign everything. -//! This gets called by `promote-release` -//! (https://github.com/rust-lang/rust-central-station/tree/master/promote-release) -//! via `x.py dist hash-and-sign`; the cmdline arguments are set up -//! by rustbuild (in `src/bootstrap/dist.rs`). - use toml; use serde::Serialize; use std::collections::BTreeMap; use std::env; use std::fs; -use std::io::{self, Read, Write, BufRead, BufReader}; +use std::io::{self, Read, Write}; use std::path::{PathBuf, Path}; use std::process::{Command, Stdio}; -use std::collections::HashMap; static HOSTS: &[&str] = &[ "aarch64-unknown-linux-gnu", @@ -153,9 +146,6 @@ static MINGW: &[&str] = &[ "x86_64-pc-windows-gnu", ]; -static TOOLSTATE: &str = - "https://raw.githubusercontent.com/rust-lang-nursery/rust-toolstate/master/history/linux.tsv"; - #[derive(Serialize)] #[serde(rename_all = "kebab-case")] struct Manifest { @@ -280,7 +270,6 @@ fn main() { // Do not ask for a passphrase while manually testing let mut passphrase = String::new(); if should_sign { - // `x.py` passes the passphrase via stdin. t!(io::stdin().read_to_string(&mut passphrase)); } @@ -364,7 +353,6 @@ impl Builder { self.lldb_git_commit_hash = self.git_commit_hash("lldb", "x86_64-unknown-linux-gnu"); self.miri_git_commit_hash = self.git_commit_hash("miri", "x86_64-unknown-linux-gnu"); - self.check_toolstate(); self.digest_and_sign(); let manifest = self.build_manifest(); self.write_channel_files(&self.rust_release, &manifest); @@ -374,37 +362,6 @@ impl Builder { } } - /// If a tool does not pass its tests, don't ship it. - /// Right now, we do this only for Miri. - fn check_toolstate(&mut self) { - // Get the toolstate for this rust revision. - let rev = self.rust_git_commit_hash.as_ref().expect("failed to determine rust git hash"); - let toolstates = reqwest::get(TOOLSTATE).expect("failed to get toolstates"); - let toolstates = BufReader::new(toolstates); - let toolstate = toolstates.lines() - .find_map(|line| { - let line = line.expect("failed to read toolstate lines"); - let mut pieces = line.splitn(2, '\t'); - let commit = pieces.next().expect("malformed toolstate line"); - if commit != rev { - // Not the right commit. - return None; - } - // Return the 2nd piece, the JSON. - Some(pieces.next().expect("malformed toolstate line").to_owned()) - }) - .expect("failed to find toolstate for rust commit"); - let toolstate: HashMap = - serde_json::from_str(&toolstate).expect("toolstate is malformed JSON"); - // Mark some tools as missing based on toolstate. - if toolstate.get("miri").map(|s| &*s as &str) != Some("test-pass") { - println!("Miri tests are not passing, removing component"); - self.miri_version = None; - self.miri_git_commit_hash = None; - } - } - - /// Hash all files, compute their signatures, and collect the hashes in `self.digests`. fn digest_and_sign(&mut self) { for file in t!(self.input.read_dir()).map(|e| t!(e).path()) { let filename = file.file_name().unwrap().to_str().unwrap(); @@ -575,20 +532,19 @@ impl Builder { .as_ref() .cloned() .map(|version| (version, true)) - .unwrap_or_default(); // `is_present` defaults to `false` here. + .unwrap_or_default(); - // Miri is nightly-only; never ship it for other trains. + // miri needs to build std with xargo, which doesn't allow stable/beta: + // if pkgname == "miri-preview" && self.rust_release != "nightly" { - is_present = false; // Pretend the component is entirely missing. + is_present = false; // ignore it } let targets = targets.iter().map(|name| { if is_present { - // The component generally exists, but it might still be missing for this target. let filename = self.filename(pkgname, name); let digest = match self.digests.remove(&filename) { Some(digest) => digest, - // This component does not exist for this target -- skip it. None => return (name.to_string(), Target::unavailable()), }; let xz_filename = filename.replace(".tar.gz", ".tar.xz");