Skip to content

Commit fafbd9a

Browse files
committed
Auto merge of #41600 - ranma42:xz-dist, r=alexcrichton
Generate XZ-compressed tarballs Integrate the new `rust-installer` and extend manifests with keys for xz-compressed tarballs. One of the steps required for #21724
2 parents c0f86f5 + bf4082a commit fafbd9a

File tree

24 files changed

+61
-24
lines changed

24 files changed

+61
-24
lines changed

.travis.yml

+9-3
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,9 @@ matrix:
9595
MACOSX_DEPLOYMENT_TARGET=10.7
9696
os: osx
9797
osx_image: xcode7
98-
install: *osx_install_sccache
98+
install:
99+
- brew install p7zip
100+
- *osx_install_sccache
99101
- env: >
100102
RUST_CHECK_TARGET=dist
101103
RUST_CONFIGURE_ARGS="--target=aarch64-apple-ios,armv7-apple-ios,armv7s-apple-ios,i386-apple-ios,x86_64-apple-ios --enable-extended --enable-sanitizers"
@@ -106,7 +108,9 @@ matrix:
106108
MACOSX_DEPLOYMENT_TARGET=10.7
107109
os: osx
108110
osx_image: xcode7
109-
install: *osx_install_sccache
111+
install:
112+
- brew install p7zip
113+
- *osx_install_sccache
110114
111115
# "alternate" deployments, these are "nightlies" but don't have assertions
112116
# turned on, they're deployed to a different location primarily for projects
@@ -123,7 +127,9 @@ matrix:
123127
MACOSX_DEPLOYMENT_TARGET=10.7
124128
os: osx
125129
osx_image: xcode7
126-
install: *osx_install_sccache
130+
install:
131+
- brew install p7zip
132+
- *osx_install_sccache
127133
128134
env:
129135
global:

src/ci/docker/cross/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1010
git \
1111
cmake \
1212
sudo \
13+
p7zip-full \
1314
xz-utils \
1415
zlib1g-dev \
1516
g++-arm-linux-gnueabi \

src/ci/docker/dist-aarch64-linux/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2323
sudo \
2424
texinfo \
2525
wget \
26+
p7zip-full \
2627
xz-utils \
2728
libssl-dev \
2829
pkg-config

src/ci/docker/dist-android/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ RUN dpkg --add-architecture i386 && \
1616
openjdk-9-jre \
1717
sudo \
1818
libstdc++6:i386 \
19+
p7zip-full \
1920
xz-utils \
2021
libssl-dev \
2122
pkg-config

src/ci/docker/dist-arm-linux/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2323
sudo \
2424
texinfo \
2525
wget \
26+
p7zip-full \
2627
xz-utils \
2728
libssl-dev \
2829
pkg-config

src/ci/docker/dist-armhf-linux/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2323
sudo \
2424
texinfo \
2525
wget \
26+
p7zip-full \
2627
xz-utils \
2728
libssl-dev \
2829
pkg-config

src/ci/docker/dist-armv7-linux/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2323
sudo \
2424
texinfo \
2525
wget \
26+
p7zip-full \
2627
xz-utils \
2728
libssl-dev \
2829
pkg-config

src/ci/docker/dist-fuchsia/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1111
git \
1212
sudo \
1313
bzip2 \
14+
p7zip-full \
1415
xz-utils \
1516
swig \
1617
libedit-dev \

src/ci/docker/dist-i586-gnu-i686-musl/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
99
python2.7 \
1010
git \
1111
cmake \
12+
p7zip-full \
1213
xz-utils \
1314
sudo \
1415
gdb \

src/ci/docker/dist-i686-freebsd/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1111
cmake \
1212
sudo \
1313
bzip2 \
14+
p7zip-full \
1415
xz-utils \
1516
wget \
1617
libssl-dev \

src/ci/docker/dist-mips-linux/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1111
cmake \
1212
sudo \
1313
gdb \
14+
p7zip-full \
1415
xz-utils \
1516
g++-mips-linux-gnu \
1617
libssl-dev \

src/ci/docker/dist-mips64-linux/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1111
cmake \
1212
sudo \
1313
gdb \
14+
p7zip-full \
1415
xz-utils \
1516
g++-mips64-linux-gnuabi64 \
1617
libssl-dev \

src/ci/docker/dist-mips64el-linux/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1111
cmake \
1212
sudo \
1313
gdb \
14+
p7zip-full \
1415
xz-utils \
1516
g++-mips64el-linux-gnuabi64 \
1617
libssl-dev \

src/ci/docker/dist-mipsel-linux/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1111
cmake \
1212
sudo \
1313
gdb \
14+
p7zip-full \
1415
xz-utils \
1516
g++-mipsel-linux-gnu \
1617
libssl-dev \

src/ci/docker/dist-powerpc-linux/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2323
sudo \
2424
texinfo \
2525
wget \
26+
p7zip-full \
2627
xz-utils \
2728
libssl-dev \
2829
pkg-config

src/ci/docker/dist-powerpc64-linux/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2323
sudo \
2424
texinfo \
2525
wget \
26+
p7zip-full \
2627
xz-utils \
2728
libssl-dev \
2829
pkg-config

src/ci/docker/dist-powerpc64le-linux/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2323
sudo \
2424
texinfo \
2525
wget \
26+
p7zip-full \
2627
xz-utils \
2728
libssl-dev \
2829
pkg-config

src/ci/docker/dist-s390x-linux/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2323
sudo \
2424
texinfo \
2525
wget \
26+
p7zip-full \
2627
xz-utils \
2728
libssl-dev \
2829
pkg-config

src/ci/docker/dist-x86_64-freebsd/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1111
cmake \
1212
sudo \
1313
bzip2 \
14+
p7zip-full \
1415
xz-utils \
1516
wget \
1617
libssl-dev \

src/ci/docker/dist-x86_64-musl/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
99
python2.7 \
1010
git \
1111
cmake \
12+
p7zip-full \
1213
xz-utils \
1314
sudo \
1415
gdb \

src/ci/docker/dist-x86_64-netbsd/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2323
sudo \
2424
texinfo \
2525
wget \
26+
p7zip-full \
2627
xz-utils \
2728
libssl-dev \
2829
pkg-config

src/ci/docker/x86_64-gnu-distcheck/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1111
cmake \
1212
sudo \
1313
gdb \
14+
p7zip-full \
1415
xz-utils \
1516
libssl-dev \
1617
pkg-config

src/tools/build-manifest/src/main.rs

+30-20
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,26 @@ struct Target {
116116
available: bool,
117117
url: Option<String>,
118118
hash: Option<String>,
119+
xz_url: Option<String>,
120+
xz_hash: Option<String>,
119121
components: Option<Vec<Component>>,
120122
extensions: Option<Vec<Component>>,
121123
}
122124

125+
impl Target {
126+
fn unavailable() -> Target {
127+
Target {
128+
available: false,
129+
url: None,
130+
hash: None,
131+
xz_url: None,
132+
xz_hash: None,
133+
components: None,
134+
extensions: None,
135+
}
136+
}
137+
}
138+
123139
#[derive(RustcEncodable)]
124140
struct Component {
125141
pkg: String,
@@ -242,16 +258,12 @@ impl Builder {
242258
let digest = match self.digests.remove(&filename) {
243259
Some(digest) => digest,
244260
None => {
245-
pkg.target.insert(host.to_string(), Target {
246-
available: false,
247-
url: None,
248-
hash: None,
249-
components: None,
250-
extensions: None,
251-
});
261+
pkg.target.insert(host.to_string(), Target::unavailable());
252262
continue
253263
}
254264
};
265+
let xz_filename = filename.replace(".tar.gz", ".tar.xz");
266+
let xz_digest = self.digests.remove(&xz_filename);
255267
let mut components = Vec::new();
256268
let mut extensions = Vec::new();
257269

@@ -293,8 +305,10 @@ impl Builder {
293305

294306
pkg.target.insert(host.to_string(), Target {
295307
available: true,
296-
url: Some(self.url("rust", host)),
308+
url: Some(self.url(&filename)),
297309
hash: Some(digest),
310+
xz_url: xz_digest.as_ref().map(|_| self.url(&xz_filename)),
311+
xz_hash: xz_digest,
298312
components: Some(components),
299313
extensions: Some(extensions),
300314
});
@@ -312,21 +326,17 @@ impl Builder {
312326
let filename = self.filename(pkgname, name);
313327
let digest = match self.digests.remove(&filename) {
314328
Some(digest) => digest,
315-
None => {
316-
return (name.to_string(), Target {
317-
available: false,
318-
url: None,
319-
hash: None,
320-
components: None,
321-
extensions: None,
322-
})
323-
}
329+
None => return (name.to_string(), Target::unavailable()),
324330
};
331+
let xz_filename = filename.replace(".tar.gz", ".tar.xz");
332+
let xz_digest = self.digests.remove(&xz_filename);
325333

326334
(name.to_string(), Target {
327335
available: true,
328-
url: Some(self.url(pkgname, name)),
336+
url: Some(self.url(&filename)),
329337
hash: Some(digest),
338+
xz_url: xz_digest.as_ref().map(|_| self.url(&xz_filename)),
339+
xz_hash: xz_digest,
330340
components: None,
331341
extensions: None,
332342
})
@@ -338,11 +348,11 @@ impl Builder {
338348
});
339349
}
340350

341-
fn url(&self, component: &str, target: &str) -> String {
351+
fn url(&self, filename: &str) -> String {
342352
format!("{}/{}/{}",
343353
self.s3_address,
344354
self.date,
345-
self.filename(component, target))
355+
filename)
346356
}
347357

348358
fn filename(&self, component: &str, target: &str) -> String {

0 commit comments

Comments
 (0)