mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 22:01:30 +00:00
Backed out 2 changesets (bug 1460777) for Toolchains failure on a CLOSED TREE
Backed out changeset 52ef9348401d (bug 1460777) Backed out changeset 60ed097650b8 (bug 1460777)
This commit is contained in:
parent
7fdbc8641e
commit
53a10471cf
@ -1,38 +0,0 @@
|
|||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
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
|
|
||||||
pMCmSQ==
|
|
||||||
=5shY
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -1,52 +0,0 @@
|
|||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
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
|
|
||||||
=6vF7
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -7,6 +7,89 @@ make_flags="-j$(nproc)"
|
|||||||
|
|
||||||
. $data_dir/download-tools.sh
|
. $data_dir/download-tools.sh
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
pushd $root_dir
|
||||||
|
download_and_check https://ftp.gnu.org/gnu/binutils binutils-$binutils_version.tar.$binutils_ext.sig
|
||||||
|
tar xaf $TMPDIR/binutils-$binutils_version.tar.$binutils_ext
|
||||||
|
|
||||||
|
case "$gcc_version" in
|
||||||
|
*-*)
|
||||||
|
download https://gcc.gnu.org/pub/gcc/snapshots/$gcc_version/gcc-$gcc_version.tar.$gcc_ext
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
download_and_check https://ftp.gnu.org/gnu/gcc/gcc-$gcc_version gcc-$gcc_version.tar.$gcc_ext.sig
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
tar xaf $TMPDIR/gcc-$gcc_version.tar.$gcc_ext
|
||||||
|
cd gcc-$gcc_version
|
||||||
|
|
||||||
|
(
|
||||||
|
# Divert commands that download_prerequisites use
|
||||||
|
ln() { :; }
|
||||||
|
tar() { :; }
|
||||||
|
sed() { :; }
|
||||||
|
wget() {
|
||||||
|
# Get last argument given to wget.
|
||||||
|
eval echo \$$# >&3
|
||||||
|
}
|
||||||
|
|
||||||
|
# In GCC >= 7, the download_prerequisites script tried to do its own
|
||||||
|
# verification, but we have ours, so disable it.
|
||||||
|
set -- --no-verify
|
||||||
|
. ./contrib/download_prerequisites
|
||||||
|
) 3>&1 > /dev/null | while read url; do
|
||||||
|
file=$(basename $url)
|
||||||
|
case "$file" in
|
||||||
|
gmp-*.tar.*)
|
||||||
|
# If download_prerequisites wants 4.3.2, use 5.1.3 instead.
|
||||||
|
file=${file/4.3.2/5.1.3}
|
||||||
|
download_and_check https://ftp.gnu.org/gnu/gmp/ $file.sig
|
||||||
|
;;
|
||||||
|
mpfr-*.tar.*)
|
||||||
|
# If download_prerequisites wants 2.4.2, use 3.1.5 instead.
|
||||||
|
file=${file/2.4.2/3.1.5}
|
||||||
|
download_and_check https://ftp.gnu.org/gnu/mpfr/ $file.sig
|
||||||
|
;;
|
||||||
|
mpc-*.tar.*)
|
||||||
|
# If download_prerequisites wants 0.8.1, use 0.8.2 instead.
|
||||||
|
file=${file/0.8.1/0.8.2}
|
||||||
|
case "$file" in
|
||||||
|
*-0.8.2.tar*|*-0.9.tar*|*-1.0.tar*)
|
||||||
|
ext=asc
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
ext=sig
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case "$file" in
|
||||||
|
*-0.8.2.tar*)
|
||||||
|
# The ftp.gnu.org mirror doesn't have 0.8.2, so we use
|
||||||
|
# a debian source tarball instead. It has a different name,
|
||||||
|
# so we can't use `download`. Manually do what it does, but
|
||||||
|
# handling the difference in file name.
|
||||||
|
wget -c --progress=dot:mega -O $TMPDIR/$file http://snapshot.debian.org/archive/debian/20100527T162226Z/pool/main/m/mpclib/mpclib_0.8.2.orig.tar.gz
|
||||||
|
(cd $TMPDIR; sha256sum $file) >> $root_dir/downloads
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
download_and_check https://ftp.gnu.org/gnu/mpc $file.$ext
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
download $(dirname $url) $file
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
tar xaf $TMPDIR/$file
|
||||||
|
ln -sf ${file%.tar.*} ${file%-*}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check all the downloads we did are in the checksums list, and that the
|
||||||
|
# checksums match.
|
||||||
|
diff -u <(sort -k 2 $root_dir/downloads) $root_dir/checksums
|
||||||
|
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
prepare_mingw() {
|
prepare_mingw() {
|
||||||
export prefix=/tools/mingw32
|
export prefix=/tools/mingw32
|
||||||
export install_dir=$root_dir$prefix
|
export install_dir=$root_dir$prefix
|
||||||
|
@ -83,9 +83,6 @@ jobs:
|
|||||||
android-build:
|
android-build:
|
||||||
symbol: I(agb)
|
symbol: I(agb)
|
||||||
parent: debian9-base
|
parent: debian9-base
|
||||||
fetch:
|
|
||||||
symbol: I(fetch)
|
|
||||||
parent: debian9-base
|
|
||||||
mingw32-build:
|
mingw32-build:
|
||||||
symbol: I(mingw)
|
symbol: I(mingw)
|
||||||
parent: debian9-base
|
parent: debian9-base
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
|
|
||||||
loader: taskgraph.loader.transform:loader
|
|
||||||
|
|
||||||
transforms:
|
|
||||||
- taskgraph.transforms.try_job:transforms
|
|
||||||
- taskgraph.transforms.job:transforms
|
|
||||||
- taskgraph.transforms.task:transforms
|
|
||||||
|
|
||||||
job-defaults:
|
|
||||||
run-on-projects: []
|
|
||||||
treeherder:
|
|
||||||
kind: build
|
|
||||||
platform: fetch/opt
|
|
||||||
tier: 1
|
|
||||||
worker-type: aws-provisioner-v1/gecko-{level}-images
|
|
||||||
worker:
|
|
||||||
docker-image: {in-tree: fetch}
|
|
||||||
max-run-time: 900
|
|
||||||
|
|
||||||
jobs-from:
|
|
||||||
- toolchains.yml
|
|
@ -1,195 +0,0 @@
|
|||||||
binutils-2.25.1:
|
|
||||||
description: binutils 2.25.1 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: binutils2.25.1
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2
|
|
||||||
sha256: b5b14added7d78a8d1ca70b5cb75fef57ce2197264f4f5835326b0df22ac9f22
|
|
||||||
size: 24163561
|
|
||||||
gpg-signature:
|
|
||||||
sig-url: "{url}.sig"
|
|
||||||
key-path: build/unix/build-gcc/EAF1C276A747E9ED86210CBAC3126D3B4AE55E93.key
|
|
||||||
|
|
||||||
binutils-2.27:
|
|
||||||
description: binutils 2.27 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: binutils2.27
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: ftp://ftp.gnu.org/gnu/binutils/binutils-2.27.tar.bz2
|
|
||||||
sha256: 369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88
|
|
||||||
size: 26099568
|
|
||||||
gpg-signature:
|
|
||||||
sig-url: "{url}.sig"
|
|
||||||
key-path: build/unix/build-gcc/EAF1C276A747E9ED86210CBAC3126D3B4AE55E93.key
|
|
||||||
|
|
||||||
binutils-2.28.1:
|
|
||||||
description: binutils 2.28.1 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: binutils2.28.1
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: ftp://ftp.gnu.org/gnu/binutils/binutils-2.28.1.tar.xz
|
|
||||||
sha256: 16328a906e55a3c633854beec8e9e255a639b366436470b4f6245eb0d2fde942
|
|
||||||
size: 19440112
|
|
||||||
gpg-signature:
|
|
||||||
sig-url: "{url}.sig"
|
|
||||||
key-path: build/unix/build-gcc/EAF1C276A747E9ED86210CBAC3126D3B4AE55E93.key
|
|
||||||
|
|
||||||
cloog-0.18.1:
|
|
||||||
description: cloog source code
|
|
||||||
treeherder:
|
|
||||||
symbol: cloog0.18.1
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.1.tar.gz
|
|
||||||
sha256: 02500a4edd14875f94fe84cbeda4290425cb0c1c2474c6f75d75a303d64b4196
|
|
||||||
size: 3857324
|
|
||||||
|
|
||||||
gcc-4.9.4:
|
|
||||||
description: GCC 4.9.4 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: gcc4.9.4
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: ftp://ftp.gnu.org/gnu/gcc/gcc-4.9.4/gcc-4.9.4.tar.bz2
|
|
||||||
sha256: 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092
|
|
||||||
size: 90097606
|
|
||||||
gpg-signature:
|
|
||||||
sig-url: "{url}.sig"
|
|
||||||
key-path: build/unix/build-gcc/13975A70E63C361C73AE69EF6EEB81F8981C74C7.key
|
|
||||||
|
|
||||||
gcc-6.4.0:
|
|
||||||
description: GCC 6.4.0 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: gcc6.4.0
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: ftp://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.xz
|
|
||||||
sha256: 850bf21eafdfe5cd5f6827148184c08c4a0852a37ccf36ce69855334d2c914d4
|
|
||||||
size: 76156220
|
|
||||||
gpg-signature:
|
|
||||||
sig-url: "{url}.sig"
|
|
||||||
key-path: build/unix/build-gcc/13975A70E63C361C73AE69EF6EEB81F8981C74C7.key
|
|
||||||
|
|
||||||
gcc-7.3.0:
|
|
||||||
description: GCC 7.3.0 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: gcc7.3.0
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: ftp://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.xz
|
|
||||||
sha256: 832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c
|
|
||||||
size: 62462388
|
|
||||||
gpg-signature:
|
|
||||||
sig-url: "{url}.sig"
|
|
||||||
key-path: build/unix/build-gcc/13975A70E63C361C73AE69EF6EEB81F8981C74C7.key
|
|
||||||
|
|
||||||
gmp-5.1.3:
|
|
||||||
description: GMP 5.1.3 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: gmp5.1.3
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: https://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.bz2
|
|
||||||
sha256: 752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
|
|
||||||
size: 2196480
|
|
||||||
gpg-signature:
|
|
||||||
sig-url: "{url}.sig"
|
|
||||||
key-path: build/unix/build-gcc/343C2FF0FBEE5EC2EDBEF399F3599FF828C67298.key
|
|
||||||
|
|
||||||
gmp-6.1.0:
|
|
||||||
description: GMP 6.1.0 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: gmp6.1.0
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: https://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.bz2
|
|
||||||
sha256: 498449a994efeba527885c10405993427995d3f86b8768d8cdf8d9dd7c6b73e8
|
|
||||||
size: 2383840
|
|
||||||
gpg-signature:
|
|
||||||
sig-url: "{url}.sig"
|
|
||||||
key-path: build/unix/build-gcc/343C2FF0FBEE5EC2EDBEF399F3599FF828C67298.key
|
|
||||||
|
|
||||||
isl-0.12.2:
|
|
||||||
description: ISL 0.12.2 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: isl0.12.2
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.12.2.tar.bz2
|
|
||||||
sha256: f4b3dbee9712850006e44f0db2103441ab3d13b406f77996d1df19ee89d11fb4
|
|
||||||
size: 1319434
|
|
||||||
|
|
||||||
isl-0.15:
|
|
||||||
description: ISL 0.15 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: isl0.15
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.15.tar.bz2
|
|
||||||
sha256: 8ceebbf4d9a81afa2b4449113cee4b7cb14a687d7a549a963deb5e2a41458b6b
|
|
||||||
size: 1574964
|
|
||||||
|
|
||||||
isl-0.16.1:
|
|
||||||
description: ISL 0.16.1 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: isl0.16.1
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2
|
|
||||||
sha256: 412538bb65c799ac98e17e8cfcdacbb257a57362acfaaff254b0fcae970126d2
|
|
||||||
size: 1626446
|
|
||||||
|
|
||||||
mpc-0.8.2:
|
|
||||||
description: mpc 0.8.2 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: mpc0.8.2
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: http://www.multiprecision.org/downloads/mpc-0.8.2.tar.gz
|
|
||||||
sha256: ae79f8d41d8a86456b68607e9ca398d00f8b7342d1d83bcf4428178ac45380c7
|
|
||||||
size: 548401
|
|
||||||
gpg-signature:
|
|
||||||
sig-url: "{url}.asc"
|
|
||||||
key-path: build/unix/build-gcc/AD17A21EF8AED8F1CC02DBD9F7D5C9BF765C61E3.key
|
|
||||||
|
|
||||||
mpc-1.0.3:
|
|
||||||
description: mpc 1.0.3 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: mpc1.0.3
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: http://www.multiprecision.org/downloads/mpc-1.0.3.tar.gz
|
|
||||||
sha256: 617decc6ea09889fb08ede330917a00b16809b8db88c29c31bfbb49cbf88ecc3
|
|
||||||
size: 669925
|
|
||||||
gpg-signature:
|
|
||||||
sig-url: "{url}.sig"
|
|
||||||
key-path: build/unix/build-gcc/AD17A21EF8AED8F1CC02DBD9F7D5C9BF765C61E3.key
|
|
||||||
|
|
||||||
mpfr-3.1.4:
|
|
||||||
description: mpfr 3.1.4 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: mpfr3.1.4
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: http://www.mpfr.org/mpfr-3.1.4/mpfr-3.1.4.tar.bz2
|
|
||||||
sha256: d3103a80cdad2407ed581f3618c4bed04e0c92d1cf771a65ead662cc397f7775
|
|
||||||
size: 1279284
|
|
||||||
gpg-signature:
|
|
||||||
sig-url: "{url}.asc"
|
|
||||||
key-path: build/unix/build-gcc/07F3DBBECC1A39605078094D980C197698C3739D.key
|
|
||||||
|
|
||||||
mpfr-3.1.5:
|
|
||||||
description: mpfr 3.1.5 source code
|
|
||||||
treeherder:
|
|
||||||
symbol: mpfr3.1.5
|
|
||||||
run:
|
|
||||||
using: fetch-url
|
|
||||||
url: http://www.mpfr.org/mpfr-3.1.5/mpfr-3.1.5.tar.bz2
|
|
||||||
sha256: ca498c1c7a74dd37a576f353312d1e68d490978de4395fa28f1cbd46a364e658
|
|
||||||
size: 1279489
|
|
||||||
gpg-signature:
|
|
||||||
sig-url: "{url}.asc"
|
|
||||||
key-path: build/unix/build-gcc/07F3DBBECC1A39605078094D980C197698C3739D.key
|
|
@ -4,12 +4,8 @@
|
|||||||
|
|
||||||
loader: taskgraph.loader.transform:loader
|
loader: taskgraph.loader.transform:loader
|
||||||
|
|
||||||
kind-dependencies:
|
|
||||||
- fetch
|
|
||||||
|
|
||||||
transforms:
|
transforms:
|
||||||
- taskgraph.transforms.try_job:transforms
|
- taskgraph.transforms.try_job:transforms
|
||||||
- taskgraph.transforms.use_fetches:transforms
|
|
||||||
- taskgraph.transforms.use_toolchains:transforms
|
- taskgraph.transforms.use_toolchains:transforms
|
||||||
- taskgraph.transforms.job:transforms
|
- taskgraph.transforms.job:transforms
|
||||||
- taskgraph.transforms.task:transforms
|
- taskgraph.transforms.task:transforms
|
||||||
|
@ -161,14 +161,6 @@ linux64-gcc-4.9:
|
|||||||
resources:
|
resources:
|
||||||
- 'build/unix/build-gcc/build-gcc.sh'
|
- 'build/unix/build-gcc/build-gcc.sh'
|
||||||
toolchain-artifact: public/build/gcc.tar.xz
|
toolchain-artifact: public/build/gcc.tar.xz
|
||||||
fetches:
|
|
||||||
- binutils-2.25.1
|
|
||||||
- cloog-0.18.1
|
|
||||||
- gcc-4.9.4
|
|
||||||
- gmp-5.1.3
|
|
||||||
- isl-0.12.2
|
|
||||||
- mpc-0.8.2
|
|
||||||
- mpfr-3.1.5
|
|
||||||
|
|
||||||
linux64-gcc-6:
|
linux64-gcc-6:
|
||||||
description: "GCC 6 toolchain build"
|
description: "GCC 6 toolchain build"
|
||||||
@ -187,13 +179,6 @@ linux64-gcc-6:
|
|||||||
- 'build/unix/build-gcc/build-gcc.sh'
|
- 'build/unix/build-gcc/build-gcc.sh'
|
||||||
toolchain-alias: linux64-gcc
|
toolchain-alias: linux64-gcc
|
||||||
toolchain-artifact: public/build/gcc.tar.xz
|
toolchain-artifact: public/build/gcc.tar.xz
|
||||||
fetches:
|
|
||||||
- binutils-2.28.1
|
|
||||||
- gcc-6.4.0
|
|
||||||
- gmp-5.1.3
|
|
||||||
- isl-0.15
|
|
||||||
- mpc-0.8.2
|
|
||||||
- mpfr-3.1.5
|
|
||||||
|
|
||||||
linux64-gcc-7:
|
linux64-gcc-7:
|
||||||
description: "GCC 7 toolchain build"
|
description: "GCC 7 toolchain build"
|
||||||
@ -211,13 +196,6 @@ linux64-gcc-7:
|
|||||||
resources:
|
resources:
|
||||||
- 'build/unix/build-gcc/build-gcc.sh'
|
- 'build/unix/build-gcc/build-gcc.sh'
|
||||||
toolchain-artifact: public/build/gcc.tar.xz
|
toolchain-artifact: public/build/gcc.tar.xz
|
||||||
fetches:
|
|
||||||
- binutils-2.28.1
|
|
||||||
- gcc-7.3.0
|
|
||||||
- gmp-6.1.0
|
|
||||||
- isl-0.16.1
|
|
||||||
- mpc-1.0.3
|
|
||||||
- mpfr-3.1.4
|
|
||||||
|
|
||||||
linux64-gcc-sixgill:
|
linux64-gcc-sixgill:
|
||||||
description: "sixgill GCC plugin build"
|
description: "sixgill GCC plugin build"
|
||||||
@ -238,13 +216,6 @@ linux64-gcc-sixgill:
|
|||||||
toolchain-artifact: public/build/sixgill.tar.xz
|
toolchain-artifact: public/build/sixgill.tar.xz
|
||||||
toolchains:
|
toolchains:
|
||||||
- linux64-gcc-6
|
- linux64-gcc-6
|
||||||
fetches:
|
|
||||||
- binutils-2.28.1
|
|
||||||
- isl-0.15
|
|
||||||
- gcc-6.4.0
|
|
||||||
- gmp-5.1.3
|
|
||||||
- mpc-0.8.2
|
|
||||||
- mpfr-3.1.5
|
|
||||||
|
|
||||||
linux64-llvm-dsymutil:
|
linux64-llvm-dsymutil:
|
||||||
description: "llvm-dsymutil toolchain build"
|
description: "llvm-dsymutil toolchain build"
|
||||||
@ -599,13 +570,6 @@ linux64-mingw32-gcc:
|
|||||||
resources:
|
resources:
|
||||||
- 'build/unix/build-gcc/build-gcc.sh'
|
- 'build/unix/build-gcc/build-gcc.sh'
|
||||||
toolchain-artifact: public/build/mingw32.tar.xz
|
toolchain-artifact: public/build/mingw32.tar.xz
|
||||||
fetches:
|
|
||||||
- binutils-2.27
|
|
||||||
- gcc-6.4.0
|
|
||||||
- gmp-5.1.3
|
|
||||||
- isl-0.15
|
|
||||||
- mpc-0.8.2
|
|
||||||
- mpfr-3.1.5
|
|
||||||
|
|
||||||
linux64-mingw32-nsis:
|
linux64-mingw32-nsis:
|
||||||
description: "NSIS build for MinGW32 Cross Compile"
|
description: "NSIS build for MinGW32 Cross Compile"
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
# %ARG DOCKER_IMAGE_PARENT
|
|
||||||
FROM $DOCKER_IMAGE_PARENT
|
|
||||||
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get install \
|
|
||||||
gnupg
|
|
||||||
|
|
||||||
# %include taskcluster/scripts/misc/fetch-content
|
|
||||||
ADD topsrcdir/taskcluster/scripts/misc/fetch-content /builds/worker/bin/fetch-content
|
|
@ -176,11 +176,6 @@ repackage_type
|
|||||||
This is the type of repackage. Can be ``repackage`` or
|
This is the type of repackage. Can be ``repackage`` or
|
||||||
``repackage_signing``.
|
``repackage_signing``.
|
||||||
|
|
||||||
fetch-artifact
|
|
||||||
==============
|
|
||||||
|
|
||||||
For fetch jobs, this is the path to the artifact for that fetch operation.
|
|
||||||
|
|
||||||
toolchain-artifact
|
toolchain-artifact
|
||||||
==================
|
==================
|
||||||
For toolchain jobs, this is the path to the artifact for that toolchain.
|
For toolchain jobs, this is the path to the artifact for that toolchain.
|
||||||
|
@ -461,13 +461,6 @@ post-langpack-dummy
|
|||||||
------------------------------
|
------------------------------
|
||||||
Dummy tasks to consolidate language pack beetmover dependencies to avoid taskcluster limits on number of dependencies per task.
|
Dummy tasks to consolidate language pack beetmover dependencies to avoid taskcluster limits on number of dependencies per task.
|
||||||
|
|
||||||
fetch
|
|
||||||
-----
|
|
||||||
|
|
||||||
Tasks that obtain something from a remote service and re-expose it as a
|
|
||||||
task artifact. These tasks are used to effectively cache and re-host
|
|
||||||
remote content so it is reliably and deterministically available.
|
|
||||||
|
|
||||||
packages
|
packages
|
||||||
--------
|
--------
|
||||||
Tasks used to build packages for use in docker images.
|
Tasks used to build packages for use in docker images.
|
||||||
|
@ -146,7 +146,6 @@ following ``run-using`` are available
|
|||||||
* ``debian-package``
|
* ``debian-package``
|
||||||
* ``toolchain-script``
|
* ``toolchain-script``
|
||||||
* ``always-optimized``
|
* ``always-optimized``
|
||||||
* ``fetch-url``
|
|
||||||
|
|
||||||
|
|
||||||
Task Descriptions
|
Task Descriptions
|
||||||
|
@ -17,16 +17,28 @@ gcc_ext=bz2
|
|||||||
binutils_version=2.25.1
|
binutils_version=2.25.1
|
||||||
binutils_ext=bz2
|
binutils_ext=bz2
|
||||||
|
|
||||||
$HOME_DIR/src/taskcluster/scripts/misc/fetch-content task-artifacts -d $root_dir $MOZ_FETCHES
|
# GPG key used to sign GCC
|
||||||
|
$GPG --import $data_dir/13975A70E63C361C73AE69EF6EEB81F8981C74C7.key
|
||||||
|
# GPG key used to sign binutils
|
||||||
|
$GPG --import $data_dir/EAF1C276A747E9ED86210CBAC3126D3B4AE55E93.key
|
||||||
|
# GPG key used to sign GMP
|
||||||
|
$GPG --import $data_dir/343C2FF0FBEE5EC2EDBEF399F3599FF828C67298.key
|
||||||
|
# GPG key used to sign MPFR
|
||||||
|
$GPG --import $data_dir/07F3DBBECC1A39605078094D980C197698C3739D.key
|
||||||
|
# GPG key used to sign MPC
|
||||||
|
$GPG --import $data_dir/AD17A21EF8AED8F1CC02DBD9F7D5C9BF765C61E3.key
|
||||||
|
|
||||||
pushd $root_dir/gcc-$gcc_version
|
cat > $HOME_DIR/checksums <<EOF
|
||||||
ln -sf ../cloog-0.18.1 cloog
|
b5b14added7d78a8d1ca70b5cb75fef57ce2197264f4f5835326b0df22ac9f22 binutils-2.25.1.tar.bz2
|
||||||
ln -sf ../gmp-5.1.3 gmp
|
02500a4edd14875f94fe84cbeda4290425cb0c1c2474c6f75d75a303d64b4196 cloog-0.18.1.tar.gz
|
||||||
ln -sf ../mpc-0.8.2 mpc
|
6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 gcc-4.9.4.tar.bz2
|
||||||
ln -sf ../isl-0.12.2 isl
|
752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160 gmp-5.1.3.tar.bz2
|
||||||
ln -sf ../mpfr-3.1.5 mpfr
|
f4b3dbee9712850006e44f0db2103441ab3d13b406f77996d1df19ee89d11fb4 isl-0.12.2.tar.bz2
|
||||||
popd
|
ae79f8d41d8a86456b68607e9ca398d00f8b7342d1d83bcf4428178ac45380c7 mpc-0.8.2.tar.gz
|
||||||
|
ca498c1c7a74dd37a576f353312d1e68d490978de4395fa28f1cbd46a364e658 mpfr-3.1.5.tar.bz2
|
||||||
|
EOF
|
||||||
|
|
||||||
|
prepare
|
||||||
apply_patch $data_dir/PR64905.patch
|
apply_patch $data_dir/PR64905.patch
|
||||||
build_binutils
|
build_binutils
|
||||||
build_gcc
|
build_gcc
|
||||||
|
@ -17,15 +17,27 @@ gcc_ext=xz
|
|||||||
binutils_version=2.28.1
|
binutils_version=2.28.1
|
||||||
binutils_ext=xz
|
binutils_ext=xz
|
||||||
|
|
||||||
$HOME_DIR/src/taskcluster/scripts/misc/fetch-content task-artifacts -d $root_dir $MOZ_FETCHES
|
# GPG key used to sign GCC
|
||||||
|
$GPG --import $data_dir/13975A70E63C361C73AE69EF6EEB81F8981C74C7.key
|
||||||
|
# GPG key used to sign binutils
|
||||||
|
$GPG --import $data_dir/EAF1C276A747E9ED86210CBAC3126D3B4AE55E93.key
|
||||||
|
# GPG key used to sign GMP
|
||||||
|
$GPG --import $data_dir/343C2FF0FBEE5EC2EDBEF399F3599FF828C67298.key
|
||||||
|
# GPG key used to sign MPFR
|
||||||
|
$GPG --import $data_dir/07F3DBBECC1A39605078094D980C197698C3739D.key
|
||||||
|
# GPG key used to sign MPC
|
||||||
|
$GPG --import $data_dir/AD17A21EF8AED8F1CC02DBD9F7D5C9BF765C61E3.key
|
||||||
|
|
||||||
pushd $root_dir/gcc-$gcc_version
|
cat > $HOME_DIR/checksums <<EOF
|
||||||
ln -sf ../gmp-5.1.3 gmp
|
16328a906e55a3c633854beec8e9e255a639b366436470b4f6245eb0d2fde942 binutils-2.28.1.tar.xz
|
||||||
ln -sf ../isl-0.15 isl
|
850bf21eafdfe5cd5f6827148184c08c4a0852a37ccf36ce69855334d2c914d4 gcc-6.4.0.tar.xz
|
||||||
ln -sf ../mpc-0.8.2 mpc
|
752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160 gmp-5.1.3.tar.bz2
|
||||||
ln -sf ../mpfr-3.1.5 mpfr
|
8ceebbf4d9a81afa2b4449113cee4b7cb14a687d7a549a963deb5e2a41458b6b isl-0.15.tar.bz2
|
||||||
popd
|
ae79f8d41d8a86456b68607e9ca398d00f8b7342d1d83bcf4428178ac45380c7 mpc-0.8.2.tar.gz
|
||||||
|
ca498c1c7a74dd37a576f353312d1e68d490978de4395fa28f1cbd46a364e658 mpfr-3.1.5.tar.bz2
|
||||||
|
EOF
|
||||||
|
|
||||||
|
prepare
|
||||||
build_binutils
|
build_binutils
|
||||||
build_gcc
|
build_gcc
|
||||||
|
|
||||||
|
@ -17,15 +17,27 @@ gcc_ext=xz
|
|||||||
binutils_version=2.28.1
|
binutils_version=2.28.1
|
||||||
binutils_ext=xz
|
binutils_ext=xz
|
||||||
|
|
||||||
$HOME_DIR/src/taskcluster/scripts/misc/fetch-content task-artifacts -d $root_dir $MOZ_FETCHES
|
# GPG key used to sign GCC
|
||||||
|
$GPG --import $data_dir/13975A70E63C361C73AE69EF6EEB81F8981C74C7.key
|
||||||
|
# GPG key used to sign binutils
|
||||||
|
$GPG --import $data_dir/EAF1C276A747E9ED86210CBAC3126D3B4AE55E93.key
|
||||||
|
# GPG key used to sign GMP
|
||||||
|
$GPG --import $data_dir/343C2FF0FBEE5EC2EDBEF399F3599FF828C67298.key
|
||||||
|
# GPG key used to sign MPFR
|
||||||
|
$GPG --import $data_dir/07F3DBBECC1A39605078094D980C197698C3739D.key
|
||||||
|
# GPG key used to sign MPC
|
||||||
|
$GPG --import $data_dir/AD17A21EF8AED8F1CC02DBD9F7D5C9BF765C61E3.key
|
||||||
|
|
||||||
pushd $root_dir/gcc-$gcc_version
|
cat > $HOME_DIR/checksums <<EOF
|
||||||
ln -sf ../gmp-6.1.0 gmp
|
16328a906e55a3c633854beec8e9e255a639b366436470b4f6245eb0d2fde942 binutils-2.28.1.tar.xz
|
||||||
ln -sf ../isl-0.16.1 isl
|
832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c gcc-7.3.0.tar.xz
|
||||||
ln -sf ../mpc-1.0.3 mpc
|
498449a994efeba527885c10405993427995d3f86b8768d8cdf8d9dd7c6b73e8 gmp-6.1.0.tar.bz2
|
||||||
ln -sf ../mpfr-3.1.4 mpfr
|
412538bb65c799ac98e17e8cfcdacbb257a57362acfaaff254b0fcae970126d2 isl-0.16.1.tar.bz2
|
||||||
popd
|
617decc6ea09889fb08ede330917a00b16809b8db88c29c31bfbb49cbf88ecc3 mpc-1.0.3.tar.gz
|
||||||
|
d3103a80cdad2407ed581f3618c4bed04e0c92d1cf771a65ead662cc397f7775 mpfr-3.1.4.tar.bz2
|
||||||
|
EOF
|
||||||
|
|
||||||
|
prepare
|
||||||
build_binutils
|
build_binutils
|
||||||
build_gcc
|
build_gcc
|
||||||
|
|
||||||
|
@ -20,15 +20,28 @@ binutils_ext=bz2
|
|||||||
binutils_configure_flags="--target=i686-w64-mingw32"
|
binutils_configure_flags="--target=i686-w64-mingw32"
|
||||||
mingw_version=bcf1f29d6dc80b6025b416bef104d2314fa9be57
|
mingw_version=bcf1f29d6dc80b6025b416bef104d2314fa9be57
|
||||||
|
|
||||||
$HOME_DIR/src/taskcluster/scripts/misc/fetch-content task-artifacts -d $root_dir $MOZ_FETCHES
|
# GPG keys used to sign GCC (collected from 5.1.0, 5.4.0, 6.4.0)
|
||||||
|
$GPG --import $data_dir/33C235A34C46AA3FFB293709A328C3A2C3C45C06.key
|
||||||
|
$GPG --import $data_dir/7F74F97C103468EE5D750B583AB00996FC26A641.key
|
||||||
|
# GPG key used to sign binutils
|
||||||
|
$GPG --import $data_dir/EAF1C276A747E9ED86210CBAC3126D3B4AE55E93.key
|
||||||
|
# GPG key used to sign GMP
|
||||||
|
$GPG --import $data_dir/343C2FF0FBEE5EC2EDBEF399F3599FF828C67298.key
|
||||||
|
# GPG key used to sign MPFR
|
||||||
|
$GPG --import $data_dir/07F3DBBECC1A39605078094D980C197698C3739D.key
|
||||||
|
# GPG key used to sign MPC
|
||||||
|
$GPG --import $data_dir/AD17A21EF8AED8F1CC02DBD9F7D5C9BF765C61E3.key
|
||||||
|
|
||||||
pushd $root_dir/gcc-$gcc_version
|
cat > $root_dir/checksums <<EOF
|
||||||
ln -sf ../gmp-5.1.3 gmp
|
369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88 binutils-2.27.tar.bz2
|
||||||
ln -sf ../isl-0.15 isl
|
850bf21eafdfe5cd5f6827148184c08c4a0852a37ccf36ce69855334d2c914d4 gcc-6.4.0.tar.xz
|
||||||
ln -sf ../mpc-0.8.2 mpc
|
752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160 gmp-5.1.3.tar.bz2
|
||||||
ln -sf ../mpfr-3.1.5 mpfr
|
8ceebbf4d9a81afa2b4449113cee4b7cb14a687d7a549a963deb5e2a41458b6b isl-0.15.tar.bz2
|
||||||
popd
|
ae79f8d41d8a86456b68607e9ca398d00f8b7342d1d83bcf4428178ac45380c7 mpc-0.8.2.tar.gz
|
||||||
|
ca498c1c7a74dd37a576f353312d1e68d490978de4395fa28f1cbd46a364e658 mpfr-3.1.5.tar.bz2
|
||||||
|
EOF
|
||||||
|
|
||||||
|
prepare
|
||||||
prepare_mingw
|
prepare_mingw
|
||||||
build_binutils
|
build_binutils
|
||||||
build_gcc_and_mingw
|
build_gcc_and_mingw
|
||||||
|
@ -27,15 +27,28 @@ sixgill_repo=https://hg.mozilla.org/users/sfink_mozilla.com/sixgill
|
|||||||
|
|
||||||
. $data_dir/build-gcc.sh
|
. $data_dir/build-gcc.sh
|
||||||
|
|
||||||
$HOME_DIR/src/taskcluster/scripts/misc/fetch-content task-artifacts -d $root_dir $MOZ_FETCHES
|
# GPG key used to sign GCC
|
||||||
|
$GPG --import $data_dir/13975A70E63C361C73AE69EF6EEB81F8981C74C7.key
|
||||||
|
# GPG key used to sign binutils
|
||||||
|
$GPG --import $data_dir/EAF1C276A747E9ED86210CBAC3126D3B4AE55E93.key
|
||||||
|
# GPG key used to sign GMP
|
||||||
|
$GPG --import $data_dir/343C2FF0FBEE5EC2EDBEF399F3599FF828C67298.key
|
||||||
|
# GPG key used to sign MPFR
|
||||||
|
$GPG --import $data_dir/07F3DBBECC1A39605078094D980C197698C3739D.key
|
||||||
|
# GPG key used to sign MPC
|
||||||
|
$GPG --import $data_dir/AD17A21EF8AED8F1CC02DBD9F7D5C9BF765C61E3.key
|
||||||
|
|
||||||
pushd $root_dir/gcc-$gcc_version
|
cat > $HOME_DIR/checksums <<EOF
|
||||||
ln -sf ../binutils-2.28.1 binutils
|
16328a906e55a3c633854beec8e9e255a639b366436470b4f6245eb0d2fde942 binutils-2.28.1.tar.xz
|
||||||
ln -sf ../gmp-5.3.1 gmp
|
850bf21eafdfe5cd5f6827148184c08c4a0852a37ccf36ce69855334d2c914d4 gcc-6.4.0.tar.xz
|
||||||
ln -sf ../isl-0.15 isl
|
752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160 gmp-5.1.3.tar.bz2
|
||||||
ln -sf ../mpc-0.8.2 mpc
|
8ceebbf4d9a81afa2b4449113cee4b7cb14a687d7a549a963deb5e2a41458b6b isl-0.15.tar.bz2
|
||||||
ln -sf ../mpfr-3.1.5 mpfr
|
ae79f8d41d8a86456b68607e9ca398d00f8b7342d1d83bcf4428178ac45380c7 mpc-0.8.2.tar.gz
|
||||||
popd
|
ca498c1c7a74dd37a576f353312d1e68d490978de4395fa28f1cbd46a364e658 mpfr-3.1.5.tar.bz2
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Download GCC + related, and unpack.
|
||||||
|
prepare
|
||||||
|
|
||||||
export TMPDIR=${TMPDIR:-/tmp/}
|
export TMPDIR=${TMPDIR:-/tmp/}
|
||||||
export gcc_bindir=$root_dir/src/gcc/bin
|
export gcc_bindir=$root_dir/src/gcc/bin
|
||||||
|
@ -38,7 +38,46 @@ export PATH="$TOOLTOOL_DIR/mingw32-gcc/bin:$PATH"
|
|||||||
|
|
||||||
cd $WORKSPACE
|
cd $WORKSPACE
|
||||||
|
|
||||||
$GPG --import $data_dir/5ED46A6721D365587791E2AA783FCD8E58BCAFBA.key
|
$GPG --import <<EOF
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
pMCmSQ==
|
||||||
|
=5shY
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
EOF
|
||||||
|
|
||||||
# --------------
|
# --------------
|
||||||
|
|
||||||
|
@ -16,7 +16,60 @@ data_dir=$HOME_DIR/src/build/unix/build-gcc
|
|||||||
cd $WORKSPACE
|
cd $WORKSPACE
|
||||||
|
|
||||||
# --------------
|
# --------------
|
||||||
$GPG --import $data_dir/DA23579A74D4AD9AF9D3F945CEFAC8EAAF17519D.key
|
$GPG --import <<EOF
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
mQINBFY4SBYBEAC11sh4AMhIhiLxj76FXsluVJIU4nZjVmexar+/5WMlVvMX+Dxk
|
||||||
|
lUbKDCBOUMtPFsAXMpcxOGwscCr3WMuI8WszTjKDs3mdQ37o/pzXMbRhY0oZV29Z
|
||||||
|
EhNLds14qhMLlQiDEm5lJ5bOsLevHJ9hR4wvwY6UR881xsiXsNU+iNMRP0cWeRjQ
|
||||||
|
84pSCLOt9i+D8rdllVob871gN/tjY4Ll13Tg7qmtFE1YEFJaLb2yik0bO7gPkig/
|
||||||
|
ADmKMBhOtgAHU9i+gmtP+x+agk7cbXkR06Pd9VBkd9nYlFXbR+zcE15AqauEF1Y2
|
||||||
|
V9RbW/Ewt4Fmgr+QQnJhiSMO2BUTS2Q0CC3LznB9QOdEriUmeXGJdim0OJiwYDDX
|
||||||
|
4CNRk+2CAePbrZnGv+YXgeNPHvFa0Baj73HP8Ptok+OeyWIenRPHG3Ni+O5p1n5k
|
||||||
|
QK0bHqIwChMtAJvzdoC77XIJhbCtStmvo2FdSA8YcG4stlz+Wk1ZtNMen83ZEscS
|
||||||
|
OXEVpxcPGlbmWmkWj8DF5zbB1dRdh4T6LLM4nZViBu7oGD76z3c/x2zc7l3pyVHx
|
||||||
|
Cw70a+r+6LvUwnvCiApCBS72uDc4zZtnkNUQHlXHkz9wEeYUtUB0wkCYWPZy7BZy
|
||||||
|
0aFfKWK4Jg7uGx/mdHRCJ35MdXWxeQ4yPUE+tF951s167ANr1+ayt87pQwARAQAB
|
||||||
|
tChBbGV4YW5kcmUgSnVsbGlhcmQgPGp1bGxpYXJkQHdpbmVocS5vcmc+iQI3BBMB
|
||||||
|
AgAhAhsDAh4BAheABQJWOEvIBQsJCAcDBRUKCQgLBRYCAwEAAAoJEM76yOqvF1Gd
|
||||||
|
UqkQAJw6ot97efCon6qMA7ctJTqhOvnPSxf430aZgaTuNBEfY3RPeWC+k11cTvKV
|
||||||
|
dny9xwC+N8U2Jfdd0iXqlwUdM4ThOKZCXGOykCHJmrYGPqWsjGKUO7EoMwJB00qi
|
||||||
|
nOJdgj7zWLb6MuuKx2eavGYVLCFG4sQ8fjX0+sxuD+Cl++UyS9+t/C3ijeXTxaZn
|
||||||
|
qSLFKUFzyngXIUhFxMLkUdh397WeTaBtUTyLT0lwOKTllxIyC/+t2e9QcfgdLE/q
|
||||||
|
wKmRjihNq6I5JOQfO8JynUoR8WzKQaCX5VL6ZPaQa8ZzUdS/h0WlMlQuD5mrcDBa
|
||||||
|
ZQjqPEIL6/oExk1a7yeQFKNKisq94rVF0Ly1o7w+n+7X4lT9T9zhiPKVXvlxHB0h
|
||||||
|
SeJm4j/qDq1DSiGVfIR2CChObyeHAZhQZMMr/Ni9XtqzHsd2qhcP1ZYvbQZ2UK/N
|
||||||
|
Lv398VY/f+kXApFMDQLj1jGA8aXbkE8ChIAiZAAzVMg2wJ2x5/7bImbICsvGSwfx
|
||||||
|
awlsHzc7CR0Pj2Kdgr7UtsDk+cBRQMEqAIGWiCOKnBD8eoNGaiCoLHI/3ce4dJ/y
|
||||||
|
pXFtJSkJa8wpK4+xdckAvtPQZgOV5gLCJqNqEF+8aIjsTwwu7dcIXG2qLHD5C5tq
|
||||||
|
viuZtOYO7UdQbIHuYY5Xy8/W7hQRfIaq1NfKf9qJx4hrCWLviEYEEBECAAYFAlY4
|
||||||
|
S3QACgkQ9ebp7rlGHdcg6ACfXNdYTmPe1Ej0rd+eO+yuDF/kwccAoItuIMi7EXu0
|
||||||
|
FR4Ui8cBaZI3hweFuQINBFY4SBYBEAD7ZonYuSKxToJ4plL22rv4wPPbqACcLbIG
|
||||||
|
5t3s/Gb3/twOtaCgOEFhzNv+8K87jX6iSHJYeGhu7e2eRxeGHkrqliNJoHUi9Ddu
|
||||||
|
ygHqhoNmSHNSqI36/TU5yCRArKS3wwq7cafGnncdVOLBYfj497IxGK8fANhDf7TV
|
||||||
|
vqUGIb06gkpWbrwmUWgV8pk7MHgL93T5Ph+KSgdEbOSePFwQb9piyp9vWNmZnqK2
|
||||||
|
9TFNtTULGtQa0y8ZCNSSEh4YP/DxDraq1OJ2Gh3WHSQ4f2hfGXJMzr4cyIrOJHQ8
|
||||||
|
mby6xHmvldsAGsZJ/CSMj27UhJJYOzNCxWOp9NBNARB/6N1Ikvv9Vs6G7lZ4Dmuk
|
||||||
|
wvAWqzlomO/ctt0XmvY7N7ddIviDCQ0Z5bGJQlOWuIBR04tt7CePNzxG91q8x7FN
|
||||||
|
P8r+BSvxtGheeFiQYsC5FINYWUelL/SU8/U9sG30YLpujvjB5mqYZJtmotSqFbwl
|
||||||
|
81/bLU170OdG9n7FWp09f9yB1KlSq3hSwKBKu2bGUy2sS6w5MqEtxBHVUjLlS9oP
|
||||||
|
GQK+wr1m70rgfK/2N3HdcSqr2e2aKxnCx5wDvqB19Zq0TX5CXobEy3ohnul3Ez7a
|
||||||
|
2HBq543rdZpS9xuF2IHK6zMn5Xv0WKrODxIOnjs1mKbQzP5/6PVOejH/AnO38pCb
|
||||||
|
hoj0/zvnKQARAQABiQIfBBgBAgAJBQJWOEgWAhsMAAoJEM76yOqvF1Gde00QAJMF
|
||||||
|
OZhnPeiDFigLsqiqPGQzqSlZ5r4rQ3t6txfBYDclTq3rMqmk75bxteZHpSgMvdHF
|
||||||
|
SgqrvcyCJP5F8IRbk+J/tUb10icnl7+vsb6PfNXXflX0cIeAC9yqB3Z6RO77NoMy
|
||||||
|
HzMlw4EcNUXdmC46s+h6y74BeWWLBwYR18XgTSuw3gYpL7P0lqM2d7H6HCQMkZD/
|
||||||
|
on9pT3lOc5k9YeM+B+Ak0nDyJGrdj6EES/ukrmq/szJhx+2zMbKU6Ds/uIRE0zuS
|
||||||
|
VUPnCy+3KPuJk+xLWtuVD2v2G0PXBrKKcgLfQzTQeGT5R/8rTt2w3ah4dXYRG5Ad
|
||||||
|
N5fIaTfjJTZGmht3pvHuucoloqMWl6DD7a3XZjWtUBMhPboAZiCmXiBWn3c26ITu
|
||||||
|
N9j4gSpl3hbWYJXjTWocGs2YyiuMRsO6Minfz5l2/iZjp8xHJ8GajuLGQES7CwGH
|
||||||
|
uShQ0hknHZmrH0d6xOhD64czgmTI2HraujWz+u31sHM1yEJgQKAtEL2AKWGSadly
|
||||||
|
/eI2rCQDEn6mIe34I04SPr/XrTpFClmUBbZBBir7KMRhB8B9ERdJElbtb4ubGZ0D
|
||||||
|
FCYpueJgVv9agvV2ONVb/K0BIevJy9v5+FbSFIQG/spkwf/71olib93iUr9tKTaE
|
||||||
|
mOMR1xJlCiQvAQYsmqwM9FHDmGJYTQE1WbVZu4gZ
|
||||||
|
=6vF7
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
EOF
|
||||||
|
|
||||||
download_and_check http://dl.winehq.org/wine/source/2.0/ wine-2.0.1.tar.xz.sign
|
download_and_check http://dl.winehq.org/wine/source/2.0/ wine-2.0.1.tar.xz.sign
|
||||||
tar xaf $TMPDIR/wine-2.0.1.tar.xz
|
tar xaf $TMPDIR/wine-2.0.1.tar.xz
|
||||||
|
@ -1,268 +0,0 @@
|
|||||||
#!/usr/bin/python3 -u
|
|
||||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import concurrent.futures
|
|
||||||
import hashlib
|
|
||||||
import multiprocessing
|
|
||||||
import os
|
|
||||||
import pathlib
|
|
||||||
import re
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
import tempfile
|
|
||||||
import time
|
|
||||||
import urllib.request
|
|
||||||
|
|
||||||
|
|
||||||
ARTIFACT_URL = ('https://queue.taskcluster.net/v1/task/{task}/artifacts/'
|
|
||||||
'{artifact}')
|
|
||||||
|
|
||||||
CONCURRENCY = multiprocessing.cpu_count()
|
|
||||||
|
|
||||||
|
|
||||||
class IntegrityError(Exception):
|
|
||||||
"""Represents an integrity error when downloading a URL."""
|
|
||||||
|
|
||||||
|
|
||||||
def stream_download(url, sha256=None, size=None):
|
|
||||||
"""Download a URL to a generator, optionally with content verification.
|
|
||||||
|
|
||||||
If ``sha256`` or ``size`` are defined, the downloaded URL will be
|
|
||||||
validated against those requirements and ``IntegrityError`` will be
|
|
||||||
raised if expectations do not match.
|
|
||||||
|
|
||||||
Because verification cannot occur until the file is completely downloaded
|
|
||||||
it is recommended for consumers to not do anything meaningful with the
|
|
||||||
data if content verification is being used. To securely handle retrieved
|
|
||||||
content, it should be streamed to a file or memory and only operated
|
|
||||||
on after the generator is exhausted without raising.
|
|
||||||
"""
|
|
||||||
print('downloading %s' % url)
|
|
||||||
|
|
||||||
h = hashlib.sha256()
|
|
||||||
length = 0
|
|
||||||
|
|
||||||
t0 = time.time()
|
|
||||||
with urllib.request.urlopen(url) as fh:
|
|
||||||
while True:
|
|
||||||
chunk = fh.read(65536)
|
|
||||||
if not chunk:
|
|
||||||
break
|
|
||||||
|
|
||||||
h.update(chunk)
|
|
||||||
length += len(chunk)
|
|
||||||
|
|
||||||
yield chunk
|
|
||||||
|
|
||||||
duration = time.time() - t0
|
|
||||||
digest = h.hexdigest()
|
|
||||||
|
|
||||||
print('%s resolved to %d bytes with sha256 %s in %.3fs' % (
|
|
||||||
url, length, digest, duration))
|
|
||||||
|
|
||||||
if size:
|
|
||||||
if size == length:
|
|
||||||
print('verified size of %s' % url)
|
|
||||||
else:
|
|
||||||
raise IntegrityError('size mismatch on %s: wanted %d; got %d' % (
|
|
||||||
url, size, length))
|
|
||||||
|
|
||||||
if sha256:
|
|
||||||
if digest == sha256:
|
|
||||||
print('verified sha256 integrity of %s' % url)
|
|
||||||
else:
|
|
||||||
raise IntegrityError('sha256 mismatch on %s: wanted %s; got %s' % (
|
|
||||||
url, sha256, digest))
|
|
||||||
|
|
||||||
|
|
||||||
def download_to_path(url, path, sha256=None, size=None):
|
|
||||||
"""Download a URL to a filesystem path, possibly with verification."""
|
|
||||||
|
|
||||||
# We download to a temporary file and rename at the end so there's
|
|
||||||
# no chance of the final file being partially written or containing
|
|
||||||
# bad data.
|
|
||||||
try:
|
|
||||||
path.unlink()
|
|
||||||
except FileNotFoundError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
tmp = path.with_name('%s.tmp' % path.name)
|
|
||||||
|
|
||||||
print('downloading %s to %s' % (url, tmp))
|
|
||||||
|
|
||||||
try:
|
|
||||||
with tmp.open('wb') as fh:
|
|
||||||
for chunk in stream_download(url, sha256=sha256, size=size):
|
|
||||||
fh.write(chunk)
|
|
||||||
|
|
||||||
print('renaming to %s' % path)
|
|
||||||
tmp.rename(path)
|
|
||||||
except IntegrityError:
|
|
||||||
tmp.unlink()
|
|
||||||
raise
|
|
||||||
|
|
||||||
|
|
||||||
def gpg_verify_path(path: pathlib.Path, public_key_data: bytes,
|
|
||||||
signature_data: bytes):
|
|
||||||
"""Verify that a filesystem path verifies using GPG.
|
|
||||||
|
|
||||||
Takes a Path defining a file to verify. ``public_key_data`` contains
|
|
||||||
bytes with GPG public key data. ``signature_data`` contains a signed
|
|
||||||
GPG document to use with ``gpg --verify``.
|
|
||||||
"""
|
|
||||||
print('validating GPG signature of %s' % path)
|
|
||||||
print('GPG key data:\n%s' % public_key_data.decode('ascii'))
|
|
||||||
|
|
||||||
with tempfile.TemporaryDirectory() as td:
|
|
||||||
try:
|
|
||||||
# --batch since we're running unattended.
|
|
||||||
gpg_args = ['gpg', '--homedir', td, '--batch']
|
|
||||||
|
|
||||||
print('importing GPG key...')
|
|
||||||
subprocess.run(gpg_args + ['--import'],
|
|
||||||
input=public_key_data,
|
|
||||||
check=True)
|
|
||||||
|
|
||||||
print('verifying GPG signature...')
|
|
||||||
subprocess.run(gpg_args + ['--verify', '-', '%s' % path],
|
|
||||||
input=signature_data,
|
|
||||||
check=True)
|
|
||||||
|
|
||||||
print('GPG signature verified!')
|
|
||||||
finally:
|
|
||||||
# There is a race between the agent self-terminating and
|
|
||||||
# shutil.rmtree() from the temporary directory cleanup that can
|
|
||||||
# lead to exceptions. Kill the agent before cleanup to prevent this.
|
|
||||||
env = dict(os.environ)
|
|
||||||
env['GNUPGHOME'] = td
|
|
||||||
subprocess.run(['gpgconf', '--kill', 'gpg-agent'], env=env)
|
|
||||||
|
|
||||||
|
|
||||||
def extract_archive(path, dest_dir):
|
|
||||||
"""Extract an archive to a destination directory."""
|
|
||||||
|
|
||||||
if re.search('\.tar\..*$', path.name):
|
|
||||||
args = ['tar', 'xaf', str(path)]
|
|
||||||
elif path.name.endswith('.zip'):
|
|
||||||
args = ['unzip', str(path)]
|
|
||||||
else:
|
|
||||||
print('%s is unknown archive format; ignoring' % path)
|
|
||||||
return False
|
|
||||||
|
|
||||||
print('extracting %s to %s using %r' % (path, dest_dir, args))
|
|
||||||
t0 = time.time()
|
|
||||||
subprocess.check_call(args, cwd=str(dest_dir), bufsize=0)
|
|
||||||
print('%s extracted in %.3fs' % (path, time.time() - t0))
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
def fetch_and_extract(url, dest_dir, sha256=None, size=None):
|
|
||||||
"""Fetch a URL and extract it to a destination path.
|
|
||||||
|
|
||||||
If the downloaded URL is an archive, it is extracted automatically
|
|
||||||
and the archive is deleted. Otherwise the file remains in place in
|
|
||||||
the destination directory.
|
|
||||||
"""
|
|
||||||
|
|
||||||
basename = url.split('/')[-1]
|
|
||||||
dest_path = dest_dir / basename
|
|
||||||
|
|
||||||
download_to_path(url, dest_path, sha256=sha256, size=size)
|
|
||||||
|
|
||||||
if extract_archive(dest_path, dest_dir):
|
|
||||||
print('removing %s' % dest_path)
|
|
||||||
dest_path.unlink()
|
|
||||||
|
|
||||||
|
|
||||||
def fetch_urls(urls, dest):
|
|
||||||
"""Fetch URLs pairs to a pathlib.Path."""
|
|
||||||
dest.mkdir(parents=True, exist_ok=True)
|
|
||||||
|
|
||||||
with concurrent.futures.ThreadPoolExecutor(CONCURRENCY) as e:
|
|
||||||
fs = []
|
|
||||||
|
|
||||||
for url in urls:
|
|
||||||
fs.append(e.submit(fetch_and_extract, url, dest))
|
|
||||||
|
|
||||||
for f in fs:
|
|
||||||
f.result()
|
|
||||||
|
|
||||||
|
|
||||||
def command_static_url(args):
|
|
||||||
gpg_sig_url = args.gpg_sig_url
|
|
||||||
gpg_env_key = args.gpg_key_env
|
|
||||||
|
|
||||||
if bool(gpg_sig_url) != bool(gpg_env_key):
|
|
||||||
print('--gpg-sig-url and --gpg-key-env must both be defined')
|
|
||||||
return 1
|
|
||||||
|
|
||||||
if gpg_sig_url:
|
|
||||||
gpg_signature = b''.join(stream_download(gpg_sig_url))
|
|
||||||
gpg_key = os.environb[gpg_env_key.encode('ascii')]
|
|
||||||
|
|
||||||
dest = pathlib.Path(args.dest)
|
|
||||||
dest.parent.mkdir(parents=True, exist_ok=True)
|
|
||||||
|
|
||||||
try:
|
|
||||||
download_to_path(args.url, dest, sha256=args.sha256, size=args.size)
|
|
||||||
|
|
||||||
if gpg_sig_url:
|
|
||||||
gpg_verify_path(dest, gpg_key, gpg_signature)
|
|
||||||
|
|
||||||
except Exception:
|
|
||||||
try:
|
|
||||||
dest.unlink()
|
|
||||||
except FileNotFoundError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
raise
|
|
||||||
|
|
||||||
|
|
||||||
def command_task_artifacts(args):
|
|
||||||
urls = []
|
|
||||||
|
|
||||||
for word in args.artifacts:
|
|
||||||
# Format is name@task
|
|
||||||
artifact, task_id = word.split('@', 1)
|
|
||||||
|
|
||||||
urls.append(ARTIFACT_URL.format(task=task_id,
|
|
||||||
artifact=artifact))
|
|
||||||
|
|
||||||
fetch_urls(urls, pathlib.Path(args.dest))
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
subparsers = parser.add_subparsers(title='sub commands')
|
|
||||||
|
|
||||||
url = subparsers.add_parser('static-url', help='Download a static URL')
|
|
||||||
url.set_defaults(func=command_static_url)
|
|
||||||
url.add_argument('--sha256', required=True,
|
|
||||||
help='SHA-256 of downloaded content')
|
|
||||||
url.add_argument('--size', required=True, type=int,
|
|
||||||
help='Size of downloaded content, in bytes')
|
|
||||||
url.add_argument('--gpg-sig-url',
|
|
||||||
help='URL containing signed GPG document validating '
|
|
||||||
'URL to fetch')
|
|
||||||
url.add_argument('--gpg-key-env',
|
|
||||||
help='Environment variable containing GPG key to validate')
|
|
||||||
url.add_argument('url', help='URL to fetch')
|
|
||||||
url.add_argument('dest', help='Destination path')
|
|
||||||
|
|
||||||
artifacts = subparsers.add_parser('task-artifacts',
|
|
||||||
help='Fetch task artifacts')
|
|
||||||
artifacts.set_defaults(func=command_task_artifacts)
|
|
||||||
artifacts.add_argument('-d', '--dest', help='Destination directory')
|
|
||||||
artifacts.add_argument('artifacts', nargs='+',
|
|
||||||
help='Artifacts to fetch. Of form path@task_id')
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
return args.func(args)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.exit(main())
|
|
@ -1,138 +0,0 @@
|
|||||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
|
|
||||||
# Support for running tasks that download remote content and re-export
|
|
||||||
# it as task artifacts.
|
|
||||||
|
|
||||||
from __future__ import absolute_import, unicode_literals
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
from voluptuous import (
|
|
||||||
Optional,
|
|
||||||
Required,
|
|
||||||
)
|
|
||||||
|
|
||||||
import taskgraph
|
|
||||||
|
|
||||||
from . import (
|
|
||||||
run_job_using,
|
|
||||||
)
|
|
||||||
from ...util.cached_tasks import (
|
|
||||||
add_optimization,
|
|
||||||
)
|
|
||||||
from ...util.schema import (
|
|
||||||
Schema,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
CACHE_TYPE = 'content.v1'
|
|
||||||
|
|
||||||
|
|
||||||
url_schema = Schema({
|
|
||||||
Required('using'): 'fetch-url',
|
|
||||||
|
|
||||||
# Base work directory used to set up the task.
|
|
||||||
Required('workdir'): basestring,
|
|
||||||
|
|
||||||
# The URL to download.
|
|
||||||
Required('url'): basestring,
|
|
||||||
|
|
||||||
# The SHA-256 of the downloaded content.
|
|
||||||
Required('sha256'): basestring,
|
|
||||||
|
|
||||||
# Size of the downloaded entity, in bytes.
|
|
||||||
Required('size'): int,
|
|
||||||
|
|
||||||
# GPG signature verification.
|
|
||||||
Optional('gpg-signature'): {
|
|
||||||
# URL where GPG signature document can be obtained. Can contain the
|
|
||||||
# value ``{url}``, which will be substituted with the value from
|
|
||||||
# ``url``.
|
|
||||||
Required('sig-url'): basestring,
|
|
||||||
# Path to file containing GPG public key(s) used to validate download.
|
|
||||||
Required('key-path'): basestring,
|
|
||||||
},
|
|
||||||
|
|
||||||
# The name to give to the generated artifact.
|
|
||||||
Optional('artifact-name'): basestring,
|
|
||||||
|
|
||||||
# IMPORTANT: when adding anything that changes the behavior of the task,
|
|
||||||
# it is important to update the digest data used to compute cache hits.
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@run_job_using('docker-worker', 'fetch-url',
|
|
||||||
schema=url_schema)
|
|
||||||
def cache_url(config, job, taskdesc):
|
|
||||||
"""Configure a task to download a URL and expose it as an artifact."""
|
|
||||||
run = job['run']
|
|
||||||
|
|
||||||
worker = taskdesc['worker']
|
|
||||||
worker['chain-of-trust'] = True
|
|
||||||
|
|
||||||
# Fetch tasks are idempotent and immutable. Have them live for
|
|
||||||
# essentially forever.
|
|
||||||
if config.params['level'] == '3':
|
|
||||||
expires = '1000 years'
|
|
||||||
else:
|
|
||||||
expires = '28 days'
|
|
||||||
|
|
||||||
taskdesc['expires-after'] = expires
|
|
||||||
|
|
||||||
artifact_name = run.get('artifact-name')
|
|
||||||
if not artifact_name:
|
|
||||||
artifact_name = run['url'].split('/')[-1]
|
|
||||||
|
|
||||||
worker.setdefault('artifacts', []).append({
|
|
||||||
'type': 'directory',
|
|
||||||
'name': 'public',
|
|
||||||
'path': '/builds/worker/artifacts',
|
|
||||||
})
|
|
||||||
|
|
||||||
env = worker.setdefault('env', {})
|
|
||||||
|
|
||||||
args = [
|
|
||||||
'/builds/worker/bin/fetch-content', 'static-url',
|
|
||||||
'--sha256', run['sha256'],
|
|
||||||
'--size', '%d' % run['size'],
|
|
||||||
]
|
|
||||||
|
|
||||||
if 'gpg-signature' in run:
|
|
||||||
sig_url = run['gpg-signature']['sig-url'].format(url=run['url'])
|
|
||||||
key_path = os.path.join(taskgraph.GECKO, run['gpg-signature'][
|
|
||||||
'key-path'])
|
|
||||||
|
|
||||||
with open(key_path, 'rb') as fh:
|
|
||||||
gpg_key = fh.read()
|
|
||||||
|
|
||||||
env['FETCH_GPG_KEY'] = gpg_key
|
|
||||||
args.extend([
|
|
||||||
'--gpg-sig-url', sig_url,
|
|
||||||
'--gpg-key-env', 'FETCH_GPG_KEY',
|
|
||||||
])
|
|
||||||
|
|
||||||
args.extend([
|
|
||||||
run['url'], '/builds/worker/artifacts/%s' % artifact_name,
|
|
||||||
])
|
|
||||||
|
|
||||||
worker['command'] = ['/builds/worker/bin/run-task', '--'] + args
|
|
||||||
|
|
||||||
attributes = taskdesc.setdefault('attributes', {})
|
|
||||||
attributes['fetch-artifact'] = 'public/%s' % artifact_name
|
|
||||||
|
|
||||||
if not taskgraph.fast:
|
|
||||||
cache_name = taskdesc['label'].replace('{}-'.format(config.kind), '', 1)
|
|
||||||
|
|
||||||
# This adds the level to the index path automatically.
|
|
||||||
add_optimization(
|
|
||||||
config,
|
|
||||||
taskdesc,
|
|
||||||
cache_type=CACHE_TYPE,
|
|
||||||
cache_name=cache_name,
|
|
||||||
# We don't include the GPG signature in the digest because it isn't
|
|
||||||
# materially important for caching: GPG signatures are supplemental
|
|
||||||
# trust checking beyond what the shasum already provides.
|
|
||||||
digest_data=[run['sha256'], '%d' % run['size'], artifact_name],
|
|
||||||
)
|
|
@ -1,55 +0,0 @@
|
|||||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
|
|
||||||
from __future__ import absolute_import, unicode_literals
|
|
||||||
|
|
||||||
from .base import (
|
|
||||||
TransformSequence,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
transforms = TransformSequence()
|
|
||||||
|
|
||||||
|
|
||||||
def get_attribute(dict, key, attributes, attribute_name):
|
|
||||||
'''Get `attribute_name` from the given `attributes` dict, and if there
|
|
||||||
is a corresponding value, set `key` in `dict` to that value.'''
|
|
||||||
value = attributes.get(attribute_name)
|
|
||||||
if value:
|
|
||||||
dict[key] = value
|
|
||||||
|
|
||||||
|
|
||||||
@transforms.add
|
|
||||||
def use_fetches(config, jobs):
|
|
||||||
artifacts = {}
|
|
||||||
|
|
||||||
for task in config.kind_dependencies_tasks:
|
|
||||||
if task.kind != 'fetch':
|
|
||||||
continue
|
|
||||||
|
|
||||||
name = task.label.replace('%s-' % task.kind, '')
|
|
||||||
get_attribute(artifacts, name, task.attributes, 'fetch-artifact')
|
|
||||||
|
|
||||||
for job in jobs:
|
|
||||||
fetches = job.pop('fetches', [])
|
|
||||||
|
|
||||||
for fetch in fetches:
|
|
||||||
if fetch not in artifacts:
|
|
||||||
raise Exception('Missing fetch job for %s-%s: %s' % (
|
|
||||||
config.kind, job['name'], fetch))
|
|
||||||
|
|
||||||
if not artifacts[fetch].startswith('public/'):
|
|
||||||
raise Exception('non-public artifacts not supported')
|
|
||||||
|
|
||||||
if fetches:
|
|
||||||
job.setdefault('dependencies', {}).update(
|
|
||||||
('fetch-%s' % f, 'fetch-%s' % f)
|
|
||||||
for f in fetches)
|
|
||||||
|
|
||||||
env = job.setdefault('worker', {}).setdefault('env', {})
|
|
||||||
env['MOZ_FETCHES'] = {'task-reference': ' '.join(
|
|
||||||
'%s@<fetch-%s>' % (artifacts[f], f)
|
|
||||||
for f in fetches)}
|
|
||||||
|
|
||||||
yield job
|
|
Loading…
Reference in New Issue
Block a user