From ac8892bdb227e135ed7e5c3f8bb34b6b031a4579 Mon Sep 17 00:00:00 2001 From: Andrea Canciani Date: Tue, 25 Apr 2017 16:08:14 +0200 Subject: [PATCH 1/4] Accept arbitrary filenames into URLs in build-manifest instead of combining the component and target into a URL. --- src/tools/build-manifest/src/main.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs index a8cb30da43513..c6f6b2dbc0f21 100644 --- a/src/tools/build-manifest/src/main.rs +++ b/src/tools/build-manifest/src/main.rs @@ -293,7 +293,7 @@ impl Builder { pkg.target.insert(host.to_string(), Target { available: true, - url: Some(self.url("rust", host)), + url: Some(self.url(&filename)), hash: Some(digest), components: Some(components), extensions: Some(extensions), @@ -325,7 +325,7 @@ impl Builder { (name.to_string(), Target { available: true, - url: Some(self.url(pkgname, name)), + url: Some(self.url(&filename)), hash: Some(digest), components: None, extensions: None, @@ -338,11 +338,11 @@ impl Builder { }); } - fn url(&self, component: &str, target: &str) -> String { + fn url(&self, filename: &str) -> String { format!("{}/{}/{}", self.s3_address, self.date, - self.filename(component, target)) + filename) } fn filename(&self, component: &str, target: &str) -> String { From 5439c9b4ec975083cb1bc2000a5faa21f737997a Mon Sep 17 00:00:00 2001 From: Andrea Canciani Date: Tue, 25 Apr 2017 16:11:18 +0200 Subject: [PATCH 2/4] Define the unavailable target just once and re-use it The same unavailable target value is used in two different places. Abstracting it makes it easier to update it and recognise its purpose. --- src/tools/build-manifest/src/main.rs | 30 +++++++++++++--------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs index c6f6b2dbc0f21..574af1246361d 100644 --- a/src/tools/build-manifest/src/main.rs +++ b/src/tools/build-manifest/src/main.rs @@ -120,6 +120,18 @@ struct Target { extensions: Option>, } +impl Target { + fn unavailable() -> Target { + Target { + available: false, + url: None, + hash: None, + components: None, + extensions: None, + } + } +} + #[derive(RustcEncodable)] struct Component { pkg: String, @@ -242,13 +254,7 @@ impl Builder { let digest = match self.digests.remove(&filename) { Some(digest) => digest, None => { - pkg.target.insert(host.to_string(), Target { - available: false, - url: None, - hash: None, - components: None, - extensions: None, - }); + pkg.target.insert(host.to_string(), Target::unavailable()); continue } }; @@ -312,15 +318,7 @@ impl Builder { let filename = self.filename(pkgname, name); let digest = match self.digests.remove(&filename) { Some(digest) => digest, - None => { - return (name.to_string(), Target { - available: false, - url: None, - hash: None, - components: None, - extensions: None, - }) - } + None => return (name.to_string(), Target::unavailable()), }; (name.to_string(), Target { From c439ec0dee4403711a6eacd506ddbea6e167ac47 Mon Sep 17 00:00:00 2001 From: Andrea Canciani Date: Tue, 25 Apr 2017 16:14:28 +0200 Subject: [PATCH 3/4] Emit information about XZ packages in manifest --- src/rust-installer | 2 +- src/tools/build-manifest/src/main.rs | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/rust-installer b/src/rust-installer index 4f994850808a5..d7855d69c56cd 160000 --- a/src/rust-installer +++ b/src/rust-installer @@ -1 +1 @@ -Subproject commit 4f994850808a572e2cc8d43f968893c8e942e9bf +Subproject commit d7855d69c56cd1fbc57a803c6c4430e973c73f81 diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs index 574af1246361d..ba37863b1f62d 100644 --- a/src/tools/build-manifest/src/main.rs +++ b/src/tools/build-manifest/src/main.rs @@ -116,6 +116,8 @@ struct Target { available: bool, url: Option, hash: Option, + xz_url: Option, + xz_hash: Option, components: Option>, extensions: Option>, } @@ -126,6 +128,8 @@ impl Target { available: false, url: None, hash: None, + xz_url: None, + xz_hash: None, components: None, extensions: None, } @@ -258,6 +262,8 @@ impl Builder { continue } }; + let xz_filename = filename.replace(".tar.gz", ".tar.xz"); + let xz_digest = self.digests.remove(&xz_filename); let mut components = Vec::new(); let mut extensions = Vec::new(); @@ -301,6 +307,8 @@ impl Builder { available: true, url: Some(self.url(&filename)), hash: Some(digest), + xz_url: xz_digest.as_ref().map(|_| self.url(&xz_filename)), + xz_hash: xz_digest, components: Some(components), extensions: Some(extensions), }); @@ -320,11 +328,15 @@ impl Builder { Some(digest) => digest, None => return (name.to_string(), Target::unavailable()), }; + let xz_filename = filename.replace(".tar.gz", ".tar.xz"); + let xz_digest = self.digests.remove(&xz_filename); (name.to_string(), Target { available: true, url: Some(self.url(&filename)), hash: Some(digest), + xz_url: xz_digest.as_ref().map(|_| self.url(&xz_filename)), + xz_hash: xz_digest, components: None, extensions: None, }) From bf4082a13b7912c95ac489913f2d375b0626a51a Mon Sep 17 00:00:00 2001 From: Andrea Canciani Date: Fri, 28 Apr 2017 08:51:43 +0200 Subject: [PATCH 4/4] Install p7zip on DEPLOY=1 docker images and on MacOSX/Travis On Ubuntu `7z` is available in the `p7zip-full` package. On MacOSX it is in the `p7zip` formula. On AppVeyor it is installed by default. The `dist-*` and `cross` docker images build and deploy the dist artifacts; the `x86_64-gnu-distcheck` docker image builds and checks their sanity. --- .travis.yml | 12 +++++++++--- src/ci/docker/cross/Dockerfile | 1 + src/ci/docker/dist-aarch64-linux/Dockerfile | 1 + src/ci/docker/dist-android/Dockerfile | 1 + src/ci/docker/dist-arm-linux/Dockerfile | 1 + src/ci/docker/dist-armhf-linux/Dockerfile | 1 + src/ci/docker/dist-armv7-linux/Dockerfile | 1 + src/ci/docker/dist-fuchsia/Dockerfile | 1 + src/ci/docker/dist-i586-gnu-i686-musl/Dockerfile | 1 + src/ci/docker/dist-i686-freebsd/Dockerfile | 1 + src/ci/docker/dist-mips-linux/Dockerfile | 1 + src/ci/docker/dist-mips64-linux/Dockerfile | 1 + src/ci/docker/dist-mips64el-linux/Dockerfile | 1 + src/ci/docker/dist-mipsel-linux/Dockerfile | 1 + src/ci/docker/dist-powerpc-linux/Dockerfile | 1 + src/ci/docker/dist-powerpc64-linux/Dockerfile | 1 + src/ci/docker/dist-powerpc64le-linux/Dockerfile | 1 + src/ci/docker/dist-s390x-linux/Dockerfile | 1 + src/ci/docker/dist-x86_64-freebsd/Dockerfile | 1 + src/ci/docker/dist-x86_64-musl/Dockerfile | 1 + src/ci/docker/dist-x86_64-netbsd/Dockerfile | 1 + src/ci/docker/x86_64-gnu-distcheck/Dockerfile | 1 + 22 files changed, 30 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5d56379dccebf..24ecdd0c3c41c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -95,7 +95,9 @@ matrix: MACOSX_DEPLOYMENT_TARGET=10.7 os: osx osx_image: xcode7 - install: *osx_install_sccache + install: + - brew install p7zip + - *osx_install_sccache - env: > RUST_CHECK_TARGET=dist RUST_CONFIGURE_ARGS="--target=aarch64-apple-ios,armv7-apple-ios,armv7s-apple-ios,i386-apple-ios,x86_64-apple-ios --enable-extended" @@ -106,7 +108,9 @@ matrix: MACOSX_DEPLOYMENT_TARGET=10.7 os: osx osx_image: xcode7 - install: *osx_install_sccache + install: + - brew install p7zip + - *osx_install_sccache # "alternate" deployments, these are "nightlies" but don't have assertions # turned on, they're deployed to a different location primarily for projects @@ -123,7 +127,9 @@ matrix: MACOSX_DEPLOYMENT_TARGET=10.7 os: osx osx_image: xcode7 - install: *osx_install_sccache + install: + - brew install p7zip + - *osx_install_sccache env: global: diff --git a/src/ci/docker/cross/Dockerfile b/src/ci/docker/cross/Dockerfile index 02d4eaf534acd..6422184396b8c 100644 --- a/src/ci/docker/cross/Dockerfile +++ b/src/ci/docker/cross/Dockerfile @@ -10,6 +10,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ git \ cmake \ sudo \ + p7zip-full \ xz-utils \ zlib1g-dev \ g++-arm-linux-gnueabi \ diff --git a/src/ci/docker/dist-aarch64-linux/Dockerfile b/src/ci/docker/dist-aarch64-linux/Dockerfile index d9a5429d2b8e8..0563079c59676 100644 --- a/src/ci/docker/dist-aarch64-linux/Dockerfile +++ b/src/ci/docker/dist-aarch64-linux/Dockerfile @@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ sudo \ texinfo \ wget \ + p7zip-full \ xz-utils \ libssl-dev \ pkg-config diff --git a/src/ci/docker/dist-android/Dockerfile b/src/ci/docker/dist-android/Dockerfile index 28cc885ed30da..209ad6f8a1f2a 100644 --- a/src/ci/docker/dist-android/Dockerfile +++ b/src/ci/docker/dist-android/Dockerfile @@ -16,6 +16,7 @@ RUN dpkg --add-architecture i386 && \ openjdk-9-jre \ sudo \ libstdc++6:i386 \ + p7zip-full \ xz-utils \ libssl-dev \ pkg-config diff --git a/src/ci/docker/dist-arm-linux/Dockerfile b/src/ci/docker/dist-arm-linux/Dockerfile index 7162aa0efc0cf..7cf582f5603ae 100644 --- a/src/ci/docker/dist-arm-linux/Dockerfile +++ b/src/ci/docker/dist-arm-linux/Dockerfile @@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ sudo \ texinfo \ wget \ + p7zip-full \ xz-utils \ libssl-dev \ pkg-config diff --git a/src/ci/docker/dist-armhf-linux/Dockerfile b/src/ci/docker/dist-armhf-linux/Dockerfile index 8fa1cbe492fac..b458fc3834e55 100644 --- a/src/ci/docker/dist-armhf-linux/Dockerfile +++ b/src/ci/docker/dist-armhf-linux/Dockerfile @@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ sudo \ texinfo \ wget \ + p7zip-full \ xz-utils \ libssl-dev \ pkg-config diff --git a/src/ci/docker/dist-armv7-linux/Dockerfile b/src/ci/docker/dist-armv7-linux/Dockerfile index 9fcd827fc9962..fbf549574af9d 100644 --- a/src/ci/docker/dist-armv7-linux/Dockerfile +++ b/src/ci/docker/dist-armv7-linux/Dockerfile @@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ sudo \ texinfo \ wget \ + p7zip-full \ xz-utils \ libssl-dev \ pkg-config diff --git a/src/ci/docker/dist-fuchsia/Dockerfile b/src/ci/docker/dist-fuchsia/Dockerfile index 294460ed7604e..f6e8882b168a3 100644 --- a/src/ci/docker/dist-fuchsia/Dockerfile +++ b/src/ci/docker/dist-fuchsia/Dockerfile @@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ git \ sudo \ bzip2 \ + p7zip-full \ xz-utils \ swig \ libedit-dev \ diff --git a/src/ci/docker/dist-i586-gnu-i686-musl/Dockerfile b/src/ci/docker/dist-i586-gnu-i686-musl/Dockerfile index 1ef3e569cb4bf..e89669c2d7eee 100644 --- a/src/ci/docker/dist-i586-gnu-i686-musl/Dockerfile +++ b/src/ci/docker/dist-i586-gnu-i686-musl/Dockerfile @@ -9,6 +9,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ python2.7 \ git \ cmake \ + p7zip-full \ xz-utils \ sudo \ gdb \ diff --git a/src/ci/docker/dist-i686-freebsd/Dockerfile b/src/ci/docker/dist-i686-freebsd/Dockerfile index 3b81216c6431e..b42394da588ce 100644 --- a/src/ci/docker/dist-i686-freebsd/Dockerfile +++ b/src/ci/docker/dist-i686-freebsd/Dockerfile @@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ cmake \ sudo \ bzip2 \ + p7zip-full \ xz-utils \ wget \ libssl-dev \ diff --git a/src/ci/docker/dist-mips-linux/Dockerfile b/src/ci/docker/dist-mips-linux/Dockerfile index 33cca061103a3..adbd404df88d0 100644 --- a/src/ci/docker/dist-mips-linux/Dockerfile +++ b/src/ci/docker/dist-mips-linux/Dockerfile @@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ cmake \ sudo \ gdb \ + p7zip-full \ xz-utils \ g++-mips-linux-gnu \ libssl-dev \ diff --git a/src/ci/docker/dist-mips64-linux/Dockerfile b/src/ci/docker/dist-mips64-linux/Dockerfile index 157de83abb783..291f84adce0dd 100644 --- a/src/ci/docker/dist-mips64-linux/Dockerfile +++ b/src/ci/docker/dist-mips64-linux/Dockerfile @@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ cmake \ sudo \ gdb \ + p7zip-full \ xz-utils \ g++-mips64-linux-gnuabi64 \ libssl-dev \ diff --git a/src/ci/docker/dist-mips64el-linux/Dockerfile b/src/ci/docker/dist-mips64el-linux/Dockerfile index 739d5ff6ac4aa..5cbc36d926de0 100644 --- a/src/ci/docker/dist-mips64el-linux/Dockerfile +++ b/src/ci/docker/dist-mips64el-linux/Dockerfile @@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ cmake \ sudo \ gdb \ + p7zip-full \ xz-utils \ g++-mips64el-linux-gnuabi64 \ libssl-dev \ diff --git a/src/ci/docker/dist-mipsel-linux/Dockerfile b/src/ci/docker/dist-mipsel-linux/Dockerfile index 9339063bc19eb..9dd6303c6e74f 100644 --- a/src/ci/docker/dist-mipsel-linux/Dockerfile +++ b/src/ci/docker/dist-mipsel-linux/Dockerfile @@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ cmake \ sudo \ gdb \ + p7zip-full \ xz-utils \ g++-mipsel-linux-gnu \ libssl-dev \ diff --git a/src/ci/docker/dist-powerpc-linux/Dockerfile b/src/ci/docker/dist-powerpc-linux/Dockerfile index 92342caed2a95..dea09222c7d2c 100644 --- a/src/ci/docker/dist-powerpc-linux/Dockerfile +++ b/src/ci/docker/dist-powerpc-linux/Dockerfile @@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ sudo \ texinfo \ wget \ + p7zip-full \ xz-utils \ libssl-dev \ pkg-config diff --git a/src/ci/docker/dist-powerpc64-linux/Dockerfile b/src/ci/docker/dist-powerpc64-linux/Dockerfile index 182dfd93cc76f..b1fd600e4e1db 100644 --- a/src/ci/docker/dist-powerpc64-linux/Dockerfile +++ b/src/ci/docker/dist-powerpc64-linux/Dockerfile @@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ sudo \ texinfo \ wget \ + p7zip-full \ xz-utils \ libssl-dev \ pkg-config diff --git a/src/ci/docker/dist-powerpc64le-linux/Dockerfile b/src/ci/docker/dist-powerpc64le-linux/Dockerfile index 6b9f964d5a383..868c3f27aaa27 100644 --- a/src/ci/docker/dist-powerpc64le-linux/Dockerfile +++ b/src/ci/docker/dist-powerpc64le-linux/Dockerfile @@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ sudo \ texinfo \ wget \ + p7zip-full \ xz-utils \ libssl-dev \ pkg-config diff --git a/src/ci/docker/dist-s390x-linux/Dockerfile b/src/ci/docker/dist-s390x-linux/Dockerfile index 7c94f713e1875..b4c49c0df54eb 100644 --- a/src/ci/docker/dist-s390x-linux/Dockerfile +++ b/src/ci/docker/dist-s390x-linux/Dockerfile @@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ sudo \ texinfo \ wget \ + p7zip-full \ xz-utils \ libssl-dev \ pkg-config diff --git a/src/ci/docker/dist-x86_64-freebsd/Dockerfile b/src/ci/docker/dist-x86_64-freebsd/Dockerfile index a2939c8c48591..e10ec80a223c4 100644 --- a/src/ci/docker/dist-x86_64-freebsd/Dockerfile +++ b/src/ci/docker/dist-x86_64-freebsd/Dockerfile @@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ cmake \ sudo \ bzip2 \ + p7zip-full \ xz-utils \ wget \ libssl-dev \ diff --git a/src/ci/docker/dist-x86_64-musl/Dockerfile b/src/ci/docker/dist-x86_64-musl/Dockerfile index f462ccbb9119a..1ebccb44c33f1 100644 --- a/src/ci/docker/dist-x86_64-musl/Dockerfile +++ b/src/ci/docker/dist-x86_64-musl/Dockerfile @@ -9,6 +9,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ python2.7 \ git \ cmake \ + p7zip-full \ xz-utils \ sudo \ gdb \ diff --git a/src/ci/docker/dist-x86_64-netbsd/Dockerfile b/src/ci/docker/dist-x86_64-netbsd/Dockerfile index a1dd9a3724a88..fa5aee8ee33d6 100644 --- a/src/ci/docker/dist-x86_64-netbsd/Dockerfile +++ b/src/ci/docker/dist-x86_64-netbsd/Dockerfile @@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ sudo \ texinfo \ wget \ + p7zip-full \ xz-utils \ libssl-dev \ pkg-config diff --git a/src/ci/docker/x86_64-gnu-distcheck/Dockerfile b/src/ci/docker/x86_64-gnu-distcheck/Dockerfile index 60af302791a74..4eb824b50d9aa 100644 --- a/src/ci/docker/x86_64-gnu-distcheck/Dockerfile +++ b/src/ci/docker/x86_64-gnu-distcheck/Dockerfile @@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ cmake \ sudo \ gdb \ + p7zip-full \ xz-utils \ libssl-dev \ pkg-config