about summary refs log tree commit diff
path: root/src/bootstrap
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-02-16 08:20:29 +0000
committerbors <bors@rust-lang.org>2017-02-16 08:20:29 +0000
commitccd96c945fb5d3a0841e0f9469d27f1fc8142edd (patch)
tree8a706e2c33d85fc7ebfc747e3422cefb49961583 /src/bootstrap
parentd77af7f639adab33b79fc71fdad3dcc813a40c86 (diff)
parent1902488228f889bb1acb1d1f6488efe0015a0db2 (diff)
downloadrust-ccd96c945fb5d3a0841e0f9469d27f1fc8142edd.tar.gz
rust-ccd96c945fb5d3a0841e0f9469d27f1fc8142edd.zip
Auto merge of #39824 - alexcrichton:disable-dist-src, r=brson
travis: Disable source tarballs on most builders

Currently we create a source tarball on almost all of the `DEPLOY=1` builders
but this has the adverse side effect of all source tarballs overriding
themselves in the S3 bucket. Normally this is ok but unfortunately a source
tarball created on Windows is not buildable on Unix.

On Windows the vendored sources contain paths with `\` characters in them which
when interpreted on Unix end up in "file not found" errors.

Instead of this overwriting behavior, whitelist just one linux builder for
producing tarballs and avoid producing tarballs on all other hosts.
Diffstat (limited to 'src/bootstrap')
-rw-r--r--src/bootstrap/config.rs5
-rw-r--r--src/bootstrap/dist.rs4
2 files changed, 9 insertions, 0 deletions
diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs
index e95416be4b6..8308dc3202f 100644
--- a/src/bootstrap/config.rs
+++ b/src/bootstrap/config.rs
@@ -72,6 +72,7 @@ pub struct Config {
     pub rustc_default_ar: Option<String>,
     pub rust_optimize_tests: bool,
     pub rust_debuginfo_tests: bool,
+    pub rust_dist_src: bool,
 
     pub build: String,
     pub host: Vec<String>,
@@ -183,6 +184,7 @@ struct Dist {
     sign_folder: Option<String>,
     gpg_password_file: Option<String>,
     upload_addr: Option<String>,
+    src_tarball: Option<bool>,
 }
 
 #[derive(RustcDecodable)]
@@ -246,6 +248,7 @@ impl Config {
         config.build = build.to_string();
         config.channel = "dev".to_string();
         config.codegen_tests = true;
+        config.rust_dist_src = true;
 
         let toml = file.map(|file| {
             let mut f = t!(File::open(&file));
@@ -380,6 +383,7 @@ impl Config {
             config.dist_sign_folder = t.sign_folder.clone().map(PathBuf::from);
             config.dist_gpg_password_file = t.gpg_password_file.clone().map(PathBuf::from);
             config.dist_upload_addr = t.upload_addr.clone();
+            set(&mut config.rust_dist_src, t.src_tarball);
         }
 
         return config
@@ -448,6 +452,7 @@ impl Config {
                 ("FULL_BOOTSTRAP", self.full_bootstrap),
                 ("EXTENDED", self.extended),
                 ("SANITIZERS", self.sanitizers),
+                ("DIST_SRC", self.rust_dist_src),
             }
 
             match key {
diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
index 319c61ece29..c468d4896a6 100644
--- a/src/bootstrap/dist.rs
+++ b/src/bootstrap/dist.rs
@@ -371,6 +371,10 @@ const CARGO_VENDOR_VERSION: &'static str = "0.1.4";
 
 /// Creates the `rust-src` installer component and the plain source tarball
 pub fn rust_src(build: &Build) {
+    if !build.config.rust_dist_src {
+        return
+    }
+
     println!("Dist src");
 
     let name = pkgname(build, "rust-src");