diff --git a/browser/config/tooltool-manifests/win32/build-clang-cl.manifest b/browser/config/tooltool-manifests/win32/build-clang-cl.manifest index d8dbdd5b7b29..9ce8c9dde572 100644 --- a/browser/config/tooltool-manifests/win32/build-clang-cl.manifest +++ b/browser/config/tooltool-manifests/win32/build-clang-cl.manifest @@ -1,10 +1,10 @@ [ { - "version": "Visual Studio 2017 15.8.4 / SDK 10.0.17134.0", - "digest": "ecf1e03f6f98f86775059a43f9e7dc7e326f6643d7c08962d9f614e4f5a65b1ca63fa1cfeb0f1a3c2474bf0d4318dda960b378beb2a44ecf8a91111207f4ece5", - "size": 349626009, + "version": "Visual Studio 2017 15.4.2 / SDK 10.0.15063.0", + "digest": "18700889e6b5e81613b9cf57ce4e0d46a6ee45bb4c5c33bae2604a5275326128775b8a032a1eb178c5db973746d565340c4e36d98375789e1d5bd836ab16ba58", + "size": 303146863, "algorithm": "sha512", - "filename": "vs2017_15.8.4.zip", + "filename": "vs2017_15.4.2.zip", "unpack": true }, { diff --git a/browser/config/tooltool-manifests/win32/gn-build.manifest b/browser/config/tooltool-manifests/win32/gn-build.manifest index 0bfa1a44d3a0..b9225e2fcdc8 100644 --- a/browser/config/tooltool-manifests/win32/gn-build.manifest +++ b/browser/config/tooltool-manifests/win32/gn-build.manifest @@ -1,10 +1,10 @@ [ { - "version": "Visual Studio 2017 15.8.4 / SDK 10.0.17134.0", - "digest": "ecf1e03f6f98f86775059a43f9e7dc7e326f6643d7c08962d9f614e4f5a65b1ca63fa1cfeb0f1a3c2474bf0d4318dda960b378beb2a44ecf8a91111207f4ece5", - "size": 349626009, + "version": "Visual Studio 2017 15.4.2 / SDK 10.0.15063.0", + "size": 303146863, + "digest": "18700889e6b5e81613b9cf57ce4e0d46a6ee45bb4c5c33bae2604a5275326128775b8a032a1eb178c5db973746d565340c4e36d98375789e1d5bd836ab16ba58", "algorithm": "sha512", - "filename": "vs2017_15.8.4.zip", + "filename": "vs2017_15.4.2.zip", "unpack": true }, { @@ -23,4 +23,4 @@ "filename": "git.zip", "unpack": true } -] +] \ No newline at end of file diff --git a/browser/config/tooltool-manifests/win64/sccache-build.manifest b/browser/config/tooltool-manifests/win64/sccache-build.manifest index 0d52bc926f24..36082cbdada0 100644 --- a/browser/config/tooltool-manifests/win64/sccache-build.manifest +++ b/browser/config/tooltool-manifests/win64/sccache-build.manifest @@ -1,10 +1,10 @@ [ { - "version": "Visual Studio 2017 15.8.4 / SDK 10.0.17134.0", - "digest": "ecf1e03f6f98f86775059a43f9e7dc7e326f6643d7c08962d9f614e4f5a65b1ca63fa1cfeb0f1a3c2474bf0d4318dda960b378beb2a44ecf8a91111207f4ece5", - "size": 349626009, + "version": "Visual Studio 2017 15.4.2 / SDK 10.0.15063.0", + "size": 303146863, + "digest": "18700889e6b5e81613b9cf57ce4e0d46a6ee45bb4c5c33bae2604a5275326128775b8a032a1eb178c5db973746d565340c4e36d98375789e1d5bd836ab16ba58", "algorithm": "sha512", - "filename": "vs2017_15.8.4.zip", + "filename": "vs2017_15.4.2.zip", "unpack": true }, { diff --git a/taskcluster/ci/docker-image/kind.yml b/taskcluster/ci/docker-image/kind.yml index b68665ab7fe9..7526906392a1 100644 --- a/taskcluster/ci/docker-image/kind.yml +++ b/taskcluster/ci/docker-image/kind.yml @@ -22,34 +22,13 @@ jobs: symbol: I(ib) desktop1604-test: symbol: I(dt16t) - # Neither the debian7-*raw nor the debian7-*packages images can have - # packages dependencies. - debian7-raw: - symbol: I(deb7-raw) - definition: debian-raw - args: - BASE_IMAGE: debian:wheezy-20171210 - DIST: wheezy - SNAPSHOT: '20171210T214726Z' - debian7-packages: - symbol: I(deb7-pkg) - definition: debian-packages - parent: debian7-raw - debian7-i386-raw: - symbol: I(deb7-32-raw) - definition: debian-raw - args: - BASE_IMAGE: i386/debian:wheezy-20171210 - DIST: wheezy - SNAPSHOT: '20171210T214726Z' - debian7-i386-packages: - symbol: I(deb7-32-pkg) - definition: debian-packages - parent: debian7-i386-raw debian7-base: symbol: I(deb7-base) definition: debian-base - parent: debian7-raw + args: + DIST: wheezy + BASE_TAG: '20171210' + SNAPSHOT: '20171210T214726Z' packages: - deb7-gdb - deb7-git @@ -132,23 +111,13 @@ jobs: parent: debian7-amd64-build lint: symbol: I(lnt) - # Neither the debian9-raw nor the debian9-packages images can have - # packages dependencies. - debian9-raw: - symbol: I(deb9-raw) - definition: debian-raw - args: - BASE_IMAGE: debian:stretch-20170620 - DIST: stretch - SNAPSHOT: '20170830T000511Z' - debian9-packages: - symbol: I(deb9-pkg) - definition: debian-packages - parent: debian9-raw debian9-base: symbol: I(deb9-base) definition: debian-base - parent: debian9-raw + args: + DIST: stretch + BASE_TAG: '20170620' + SNAPSHOT: '20170830T000511Z' packages: - deb9-mercurial - deb9-python-zstandard diff --git a/taskcluster/ci/toolchain/gn.yml b/taskcluster/ci/toolchain/gn.yml index 8e21057dd86e..92a2d1adfa08 100644 --- a/taskcluster/ci/toolchain/gn.yml +++ b/taskcluster/ci/toolchain/gn.yml @@ -23,7 +23,7 @@ linux64-gn: run: script: build-gn-linux.sh toolchains: - - linux64-gcc-6 + - linux64-gcc-4.9 macosx64-gn: treeherder: diff --git a/taskcluster/docker/debian-base/Dockerfile b/taskcluster/docker/debian-base/Dockerfile index 4336a7cc7e50..db2018674eb3 100644 --- a/taskcluster/docker/debian-base/Dockerfile +++ b/taskcluster/docker/debian-base/Dockerfile @@ -1,5 +1,6 @@ -# %ARG DOCKER_IMAGE_PARENT -FROM $DOCKER_IMAGE_PARENT +# %ARG DIST +# %ARG BASE_TAG +FROM debian:$DIST-$BASE_TAG MAINTAINER Mike Hommey ### Add worker user and setup its workspace. @@ -22,14 +23,36 @@ ENV HOME=/builds/worker \ SHELL=/bin/bash \ USER=worker \ LOGNAME=worker \ - HOSTNAME=taskcluster-worker + HOSTNAME=taskcluster-worker \ + DEBIAN_FRONTEND=noninteractive # Set a default command useful for debugging CMD ["/bin/bash", "--login"] +# %ARG SNAPSHOT +# Set apt sources list to a snapshot. +RUN for s in debian_$DIST debian_$DIST-updates debian_$DIST-backports debian-security_$DIST/updates; do \ + echo "deb http://snapshot.debian.org/archive/${s%_*}/$SNAPSHOT/ ${s#*_} main"; \ + done > /etc/apt/sources.list && \ + ( echo 'quiet "true";'; \ + echo 'APT::Get::Assume-Yes "true";'; \ + echo 'APT::Install-Recommends "false";'; \ + echo 'Acquire::Check-Valid-Until "false";'; \ + echo 'Acquire::Retries "5";'; \ + ) > /etc/apt/apt.conf.d/99taskcluster + +RUN apt-get update && \ + apt-get install \ + apt-transport-https \ + ca-certificates + +COPY setup_packages.sh /usr/local/sbin/ +COPY cloud-mirror-workaround.sh /usr/local/sbin/ + # %ARG TASKCLUSTER_ROOT_URL # %ARG DOCKER_IMAGE_PACKAGES RUN /usr/local/sbin/setup_packages.sh $TASKCLUSTER_ROOT_URL $DOCKER_IMAGE_PACKAGES && \ + echo 'dir::bin::methods::https "/usr/local/sbin/cloud-mirror-workaround.sh";' > /etc/apt/apt.conf.d/99cloud-mirror-workaround && \ apt-get update && \ apt-get install \ git \ diff --git a/taskcluster/docker/debian-raw/cloud-mirror-workaround.sh b/taskcluster/docker/debian-base/cloud-mirror-workaround.sh similarity index 100% rename from taskcluster/docker/debian-raw/cloud-mirror-workaround.sh rename to taskcluster/docker/debian-base/cloud-mirror-workaround.sh diff --git a/taskcluster/docker/debian-raw/setup_packages.sh b/taskcluster/docker/debian-base/setup_packages.sh similarity index 100% rename from taskcluster/docker/debian-raw/setup_packages.sh rename to taskcluster/docker/debian-base/setup_packages.sh diff --git a/taskcluster/docker/debian-packages/Dockerfile b/taskcluster/docker/debian-packages/Dockerfile deleted file mode 100644 index 15e8b33855b2..000000000000 --- a/taskcluster/docker/debian-packages/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# %ARG DOCKER_IMAGE_PARENT -FROM $DOCKER_IMAGE_PARENT -MAINTAINER Mike Hommey - -RUN apt-get install --install-recommends \ - apt-utils \ - aptitude \ - build-essential \ - devscripts \ - fakeroot diff --git a/taskcluster/docker/debian-raw/Dockerfile b/taskcluster/docker/debian-raw/Dockerfile deleted file mode 100644 index 7dcc7b7769d4..000000000000 --- a/taskcluster/docker/debian-raw/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -# %ARG BASE_IMAGE -FROM $BASE_IMAGE -MAINTAINER Mike Hommey - -ENV DEBIAN_FRONTEND=noninteractive - -# Set a default command useful for debugging -CMD ["/bin/bash", "--login"] - -COPY setup_packages.sh /usr/local/sbin/ -COPY cloud-mirror-workaround.sh /usr/local/sbin/ - -# %ARG DIST -# %ARG SNAPSHOT -# Set apt sources list to a snapshot. -RUN for s in debian_$DIST debian_$DIST-updates debian_$DIST-backports debian-security_$DIST/updates; do \ - echo "deb http://snapshot.debian.org/archive/${s%_*}/$SNAPSHOT/ ${s#*_} main"; \ - done > /etc/apt/sources.list && \ - ( echo 'quiet "true";'; \ - echo 'APT::Get::Assume-Yes "true";'; \ - echo 'APT::Install-Recommends "false";'; \ - echo 'Acquire::Check-Valid-Until "false";'; \ - echo 'Acquire::Retries "5";'; \ - echo 'dir::bin::methods::https "/usr/local/sbin/cloud-mirror-workaround.sh";'; \ - ) > /etc/apt/apt.conf.d/99taskcluster - -RUN apt-get update && \ - apt-get install \ - apt-transport-https \ - ca-certificates diff --git a/taskcluster/scripts/misc/build-cbindgen.sh b/taskcluster/scripts/misc/build-cbindgen.sh index 41dcf4826f62..bb489628a1d0 100755 --- a/taskcluster/scripts/misc/build-cbindgen.sh +++ b/taskcluster/scripts/misc/build-cbindgen.sh @@ -18,13 +18,11 @@ MINGW*) WIN_WORKSPACE="$(pwd -W)" COMPRESS_EXT=bz2 - export INCLUDE="$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/include;$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/atlmfc/include;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/ucrt;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/shared;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/um;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/winrt;$WIN_WORKSPACE/build/src/vs2017_15.8.4/DIA SDK/include" + export INCLUDE="$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/include;$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/atlmfc/include;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/ucrt;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/shared;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/um;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/winrt;$WIN_WORKSPACE/build/src/vs2017_15.4.2/DIA SDK/include" - export LIB="$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/atlmfc/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/lib/10.0.17134.0/um/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/lib/10.0.17134.0/ucrt/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/DIA SDK/lib/amd64" + export LIB="$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/atlmfc/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/lib/10.0.15063.0/um/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/lib/10.0.15063.0/ucrt/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/DIA SDK/lib/amd64" - PATH="$WORKSPACE/build/src/vs2017_15.8.4/VC/bin/Hostx64/x64:$WORKSPACE/build/src/vs2017_15.8.4/VC/bin/Hostx86/x86:$WORKSPACE/build/src/vs2017_15.8.4/SDK/bin/10.0.17134.0/x64:$WORKSPACE/build/src/vs2017_15.8.4/redist/x64/Microsoft.VC141.CRT:$WORKSPACE/build/src/vs2017_15.8.4/SDK/Redist/ucrt/DLLs/x64:$WORKSPACE/build/src/vs2017_15.8.4/DIA SDK/bin/amd64:$WORKSPACE/build/src/mingw64/bin:$PATH" - - export CC=clang-cl + PATH="$WORKSPACE/build/src/vs2017_15.4.2/VC/bin/Hostx64/x64:$WORKSPACE/build/src/vs2017_15.4.2/VC/bin/Hostx86/x86:$WORKSPACE/build/src/vs2017_15.4.2/SDK/bin/10.0.15063.0/x64:$WORKSPACE/build/src/vs2017_15.4.2/redist/x64/Microsoft.VC141.CRT:$WORKSPACE/build/src/vs2017_15.4.2/SDK/Redist/ucrt/DLLs/x64:$WORKSPACE/build/src/vs2017_15.4.2/DIA SDK/bin/amd64:$WORKSPACE/build/src/mingw64/bin:$PATH" ;; esac diff --git a/taskcluster/scripts/misc/build-clang-windows-helper32.sh b/taskcluster/scripts/misc/build-clang-windows-helper32.sh index ddb7ef91bcdb..6ed74d50c4ec 100755 --- a/taskcluster/scripts/misc/build-clang-windows-helper32.sh +++ b/taskcluster/scripts/misc/build-clang-windows-helper32.sh @@ -16,7 +16,7 @@ fi ./build/src/mach artifact toolchain -v --authentication-file="${TOOLTOOL_AUTH_FILE}" --tooltool-manifest "build/src/${TOOLTOOL_MANIFEST}"${TOOLTOOL_CACHE:+ --cache-dir ${TOOLTOOL_CACHE}}${MOZ_TOOLCHAINS:+ ${MOZ_TOOLCHAINS}} # Set up all the Visual Studio paths. -MSVC_DIR=vs2017_15.8.4 +MSVC_DIR=vs2017_15.4.2 VSWINPATH="$(cd ${MSVC_DIR} && pwd)" echo vswinpath ${VSWINPATH} @@ -29,11 +29,11 @@ export WINDOWSSDKDIR="${VSWINPATH}/SDK" export WIN32_REDIST_DIR="${VSWINPATH}/VC/redist/x86/Microsoft.VC141.CRT" export WIN_UCRT_REDIST_DIR="${VSWINPATH}/SDK/Redist/ucrt/DLLs/x86" -export PATH="${VSWINPATH}/VC/bin/Hostx64/x86:${VSWINPATH}/VC/bin/Hostx64/x64:${VSWINPATH}/SDK/bin/10.0.17134.0/x64:${VSWINPATH}/DIA SDK/bin:${PATH}" +export PATH="${VSWINPATH}/VC/bin/Hostx64/x86:${VSWINPATH}/VC/bin/Hostx64/x64:${VSWINPATH}/SDK/bin/10.0.15063.0/x64:${VSWINPATH}/DIA SDK/bin:${PATH}" export PATH="${VSWINPATH}/VC/redist/x86/Microsoft.VC141.CRT:${VSWINPATH}/SDK/Redist/ucrt/DLLs/x86:${PATH}" -export INCLUDE="${VSWINPATH}/VC/include:${VSWINPATH}/VC/atlmfc/include:${VSWINPATH}/SDK/Include/10.0.17134.0/ucrt:${VSWINPATH}/SDK/Include/10.0.17134.0/shared:${VSWINPATH}/SDK/Include/10.0.17134.0/um:${VSWINPATH}/SDK/Include/10.0.17134.0/winrt:${VSWINPATH}/DIA SDK/include" -export LIB="${VSWINPATH}/VC/lib/x86:${VSWINPATH}/VC/atlmfc/lib/x86:${VSWINPATH}/SDK/Lib/10.0.17134.0/ucrt/x86:${VSWINPATH}/SDK/Lib/10.0.17134.0/um/x86:${VSWINPATH}/DIA SDK/lib" +export INCLUDE="${VSWINPATH}/VC/include:${VSWINPATH}/VC/atlmfc/include:${VSWINPATH}/SDK/Include/10.0.15063.0/ucrt:${VSWINPATH}/SDK/Include/10.0.15063.0/shared:${VSWINPATH}/SDK/Include/10.0.15063.0/um:${VSWINPATH}/SDK/Include/10.0.15063.0/winrt:${VSWINPATH}/DIA SDK/include" +export LIB="${VSWINPATH}/VC/lib/x86:${VSWINPATH}/VC/atlmfc/lib/x86:${VSWINPATH}/SDK/Lib/10.0.15063.0/ucrt/x86:${VSWINPATH}/SDK/Lib/10.0.15063.0/um/x86:${VSWINPATH}/DIA SDK/lib" export PATH="$(cd svn && pwd)/bin:${PATH}" export PATH="$(cd cmake && pwd)/bin:${PATH}" diff --git a/taskcluster/scripts/misc/build-clang-windows-helper64.sh b/taskcluster/scripts/misc/build-clang-windows-helper64.sh index 28bda20fef8a..1a8f8b6db055 100755 --- a/taskcluster/scripts/misc/build-clang-windows-helper64.sh +++ b/taskcluster/scripts/misc/build-clang-windows-helper64.sh @@ -16,7 +16,7 @@ fi ./build/src/mach artifact toolchain -v --authentication-file="${TOOLTOOL_AUTH_FILE}" --tooltool-manifest "build/src/${TOOLTOOL_MANIFEST}"${TOOLTOOL_CACHE:+ --cache-dir ${TOOLTOOL_CACHE}}${MOZ_TOOLCHAINS:+ ${MOZ_TOOLCHAINS}} # Set up all the Visual Studio paths. -MSVC_DIR=vs2017_15.8.4 +MSVC_DIR=vs2017_15.4.2 VSWINPATH="$(cd ${MSVC_DIR} && pwd)" echo vswinpath ${VSWINPATH} @@ -29,10 +29,10 @@ export WINDOWSSDKDIR="${VSWINPATH}/SDK" export WIN32_REDIST_DIR="${VSWINPATH}/VC/redist/x64/Microsoft.VC141.CRT" export WIN_UCRT_REDIST_DIR="${VSWINPATH}/SDK/Redist/ucrt/DLLs/x64" -export PATH="${VSWINPATH}/VC/bin/Hostx64/x64:${VSWINPATH}/SDK/bin/10.0.17134.0/x64:${VSWINPATH}/VC/redist/x64/Microsoft.VC141.CRT:${VSWINPATH}/SDK/Redist/ucrt/DLLs/x64:${VSWINPATH}/DIA SDK/bin/amd64:${PATH}" +export PATH="${VSWINPATH}/VC/bin/Hostx64/x64:${VSWINPATH}/SDK/bin/10.0.15063.0/x64:${VSWINPATH}/VC/redist/x64/Microsoft.VC141.CRT:${VSWINPATH}/SDK/Redist/ucrt/DLLs/x64:${VSWINPATH}/DIA SDK/bin/amd64:${PATH}" -export INCLUDE="${VSWINPATH}/VC/include:${VSWINPATH}/VC/atlmfc/include:${VSWINPATH}/SDK/Include/10.0.17134.0/ucrt:${VSWINPATH}/SDK/Include/10.0.17134.0/shared:${VSWINPATH}/SDK/Include/10.0.17134.0/um:${VSWINPATH}/SDK/Include/10.0.17134.0/winrt:${VSWINPATH}/DIA SDK/include" -export LIB="${VSWINPATH}/VC/lib/x64:${VSWINPATH}/VC/atlmfc/lib/x64:${VSWINPATH}/SDK/Lib/10.0.17134.0/ucrt/x64:${VSWINPATH}/SDK/Lib/10.0.17134.0/um/x64:${VSWINPATH}/DIA SDK/lib/amd64" +export INCLUDE="${VSWINPATH}/VC/include:${VSWINPATH}/VC/atlmfc/include:${VSWINPATH}/SDK/Include/10.0.15063.0/ucrt:${VSWINPATH}/SDK/Include/10.0.15063.0/shared:${VSWINPATH}/SDK/Include/10.0.15063.0/um:${VSWINPATH}/SDK/Include/10.0.15063.0/winrt:${VSWINPATH}/DIA SDK/include" +export LIB="${VSWINPATH}/VC/lib/x64:${VSWINPATH}/VC/atlmfc/lib/x64:${VSWINPATH}/SDK/Lib/10.0.15063.0/ucrt/x64:${VSWINPATH}/SDK/Lib/10.0.15063.0/um/x64:${VSWINPATH}/DIA SDK/lib/amd64" export PATH="$(cd svn && pwd)/bin:${PATH}" export PATH="$(cd cmake && pwd)/bin:${PATH}" diff --git a/taskcluster/scripts/misc/build-gn-common.sh b/taskcluster/scripts/misc/build-gn-common.sh index c609cfd99baa..081b95f14584 100755 --- a/taskcluster/scripts/misc/build-gn-common.sh +++ b/taskcluster/scripts/misc/build-gn-common.sh @@ -2,48 +2,37 @@ set -e -v # This is shared code for building GN. -: GN_REV ${GN_REV:=d69a9c3765dee2e650bcccebbadf72c5d42d92b1} + +# Each is a recent commit from chromium's master branch. +: CHROMIUM_REV ${CHROMIUM_REV:=e6ba81e00ae835946e069e5bd80bd533b11d8442} +: GTEST_REV ${GTEST_REV:=6c5116014ce51ef3273d800cbf75fcef99e798c6} +: CHROMIUM_SRC_REV ${CHROMIUM_SRC_REV:=c338d43f49c0d72e69cd6e40eeaf4c0597dbdda1} -git clone --no-checkout https://gn.googlesource.com/gn $WORKSPACE/gn-standalone +git clone --no-checkout https://chromium.googlesource.com/chromium/src $WORKSPACE/gn-standalone cd $WORKSPACE/gn-standalone -git checkout $GN_REV +git checkout $CHROMIUM_SRC_REV -# We remove /WC because of https://bugs.chromium.org/p/gn/issues/detail?id=51 -# And /MACHINE:x64 because we just let the PATH decide what cl and link are -# used, and if cl is targetting x86, we don't want linkage to fail because of -# /MACHINE:x64. -patch -p1 <<'EOF' -diff --git a/build/gen.py b/build/gen.py -index a7142fab..78d0fd56 100755 ---- a/build/gen.py -+++ b/build/gen.py -@@ -357,7 +357,6 @@ def WriteGNNinja(path, platform, host, options): - '/D_WIN32_WINNT=0x0A00', - '/FS', - '/W4', -- '/WX', - '/Zi', - '/wd4099', - '/wd4100', -@@ -373,7 +372,7 @@ def WriteGNNinja(path, platform, host, options): - '/D_HAS_EXCEPTIONS=0', - ]) - -- ldflags.extend(['/DEBUG', '/MACHINE:x64']) -+ ldflags.extend(['/DEBUG']) - - static_libraries = { - 'base': {'sources': [ -EOF +git clone --no-checkout https://chromium.googlesource.com/chromium/chromium chromium_checkout +cd chromium_checkout +git checkout $CHROMIUM_REV +mkdir -p ../third_party +mv third_party/libevent ../third_party +cd .. -if test -n "$MAC_CROSS"; then - python build/gen.py --platform darwin -else - python build/gen.py -fi +rm -rf testing +mkdir testing +cd testing +git clone https://chromium.googlesource.com/chromium/testing/gtest +cd gtest +git checkout $GTEST_REV +cd ../.. -ninja -C out -v +cd tools/gn +patch -p1 < $WORKSPACE/build/src/taskcluster/scripts/misc/gn.patch + +./bootstrap/bootstrap.py -s +cd ../.. STAGE=gn mkdir -p $UPLOAD_DIR $STAGE @@ -51,9 +40,9 @@ mkdir -p $UPLOAD_DIR $STAGE # At this point, the resulting binary is at: # $WORKSPACE/out/Release/gn if test "$MAC_CROSS" = "" -a "$(uname)" = "Linux"; then - strip out/gn + strip out/Release/gn fi -cp out/gn $STAGE +cp out/Release/gn $STAGE tar -acf gn.tar.$COMPRESS_EXT $STAGE cp gn.tar.$COMPRESS_EXT $UPLOAD_DIR diff --git a/taskcluster/scripts/misc/build-gn-linux.sh b/taskcluster/scripts/misc/build-gn-linux.sh index 943f8c254aac..7209dda9d438 100755 --- a/taskcluster/scripts/misc/build-gn-linux.sh +++ b/taskcluster/scripts/misc/build-gn-linux.sh @@ -8,7 +8,6 @@ UPLOAD_DIR=$HOME/artifacts COMPRESS_EXT=xz export CC=$WORKSPACE/build/src/gcc/bin/gcc export CXX=$WORKSPACE/build/src/gcc/bin/g++ -export LDFLAGS=-lrt # Gn build scripts use #!/usr/bin/env python, which will be python 2.6 on # the worker and cause failures. Work around this by putting python2.7 diff --git a/taskcluster/scripts/misc/build-gn-macosx.sh b/taskcluster/scripts/misc/build-gn-macosx.sh index 7ab73a12dc03..2855b5b2a9b2 100755 --- a/taskcluster/scripts/misc/build-gn-macosx.sh +++ b/taskcluster/scripts/misc/build-gn-macosx.sh @@ -13,7 +13,7 @@ CROSS_SYSROOT=$WORKSPACE/build/src/MacOSX10.11.sdk export LD_LIBRARY_PATH=$WORKSPACE/build/src/clang/lib export CC=$WORKSPACE/build/src/clang/bin/clang export CXX=$WORKSPACE/build/src/clang/bin/clang++ -export AR=$WORKSPACE/build/src/clang/bin/llvm-ar +export AR=$WORKSPACE/build/src/clang/bin/clang export CFLAGS="-target x86_64-darwin11 -mlinker-version=137 -B ${CROSS_CCTOOLS_PATH}/bin -isysroot ${CROSS_SYSROOT} -I${CROSS_SYSROOT}/usr/include -iframework ${CROSS_SYSROOT}/System/Library/Frameworks" export CXXFLAGS="-stdlib=libc++ ${CFLAGS}" export LDFLAGS="${CXXFLAGS} -Wl,-syslibroot,${CROSS_SYSROOT} -Wl,-dead_strip" diff --git a/taskcluster/scripts/misc/build-gn-win32.sh b/taskcluster/scripts/misc/build-gn-win32.sh index 9f399a91cd64..703aac6409bc 100755 --- a/taskcluster/scripts/misc/build-gn-win32.sh +++ b/taskcluster/scripts/misc/build-gn-win32.sh @@ -7,22 +7,17 @@ WORKSPACE=$PWD UPLOAD_DIR=$WORKSPACE/public/build COMPRESS_EXT=bz2 -VSPATH="$WORKSPACE/build/src/vs2017_15.8.4" +VSPATH="$WORKSPACE/build/src/vs2017_15.4.2" -export INCLUDE="${VSPATH}/VC/include:${VSPATH}/VC/atlmfc/include:${VSPATH}/SDK/Include/10.0.17134.0/ucrt:${VSPATH}/SDK/Include/10.0.17134.0/shared:${VSPATH}/SDK/Include/10.0.17134.0/um:${VSPATH}/SDK/Include/10.0.17134.0/winrt:${VSPATH}/DIA SDK/include" -export LIB="${VSPATH}/VC/lib/x86:${VSPATH}/VC/atlmfc/lib/x86:${VSPATH}/SDK/lib/10.0.17134.0/ucrt/x86:${VSPATH}/SDK/lib/10.0.17134.0/um/x86:${VSPATH}/DIA SDK/lib" +export INCLUDE="${VSPATH}/VC/include:${VSPATH}/VC/atlmfc/include:${VSPATH}/SDK/Include/10.0.15063.0/ucrt:${VSPATH}/SDK/Include/10.0.15063.0/shared:${VSPATH}/SDK/Include/10.0.15063.0/um:${VSPATH}/SDK/Include/10.0.15063.0/winrt:${VSPATH}/DIA SDK/include" +export LIB="${VSPATH}/VC/lib/x86:${VSPATH}/VC/atlmfc/lib/x86:${VSPATH}/SDK/lib/10.0.15063.0/ucrt/x86:${VSPATH}/SDK/lib/10.0.15063.0/um/x86:${VSPATH}/DIA SDK/lib" export PATH="$WORKSPACE/build/src/ninja/bin:$PATH" export PATH="$WORKSPACE/build/src/mingw64/bin:$PATH" -export PATH="${VSPATH}/VC/bin/Hostx64/x86:${VSPATH}/VC/bin/Hostx64/x64:${VSPATH}/VC/bin/Hostx86/x86:${VSPATH}/SDK/bin/10.0.17134.0/x64:${VSPATH}/DIA SDK/bin:${PATH}" +export PATH="${VSPATH}/VC/bin/Hostx64/x86:${VSPATH}/VC/bin/Hostx64/x64:${VSPATH}/VC/bin/Hostx86/x86:${VSPATH}/SDK/bin/10.0.15063.0/x64:${VSPATH}/DIA SDK/bin:${PATH}" export PATH="${VSPATH}/VC/redist/x86/Microsoft.VC141.CRT:${VSPATH}/SDK/Redist/ucrt/DLLs/x86:${PATH}" cd $WORKSPACE/build/src . taskcluster/scripts/misc/tooltool-download.sh . taskcluster/scripts/misc/build-gn-common.sh - -# Building with MSVC spawns a mspdbsrv process that keeps a dll open in the MSVC directory. -# This prevents the taskcluster worker from unmounting cleanly, and fails the build. -# So we kill it. -taskkill -f -im mspdbsrv.exe || true diff --git a/taskcluster/scripts/misc/build-grcov.sh b/taskcluster/scripts/misc/build-grcov.sh index 93aaef49395f..1e3b12337d14 100755 --- a/taskcluster/scripts/misc/build-grcov.sh +++ b/taskcluster/scripts/misc/build-grcov.sh @@ -22,11 +22,11 @@ MINGW*) WIN_WORKSPACE="$(pwd -W)" COMPRESS_EXT=bz2 - export INCLUDE="$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/include;$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/atlmfc/include;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/ucrt;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/shared;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/um;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/winrt;$WIN_WORKSPACE/build/src/vs2017_15.8.4/DIA SDK/include" + export INCLUDE="$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/include;$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/atlmfc/include;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/ucrt;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/shared;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/um;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/winrt;$WIN_WORKSPACE/build/src/vs2017_15.4.2/DIA SDK/include" - export LIB="$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/atlmfc/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/lib/10.0.17134.0/um/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/lib/10.0.17134.0/ucrt/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/DIA SDK/lib/amd64" + export LIB="$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/atlmfc/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/lib/10.0.15063.0/um/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/lib/10.0.15063.0/ucrt/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/DIA SDK/lib/amd64" - PATH="$WORKSPACE/build/src/vs2017_15.8.4/VC/bin/Hostx64/x64:$WORKSPACE/build/src/vs2017_15.8.4/VC/bin/Hostx86/x86:$WORKSPACE/build/src/vs2017_15.8.4/SDK/bin/10.0.17134.0/x64:$WORKSPACE/build/src/vs2017_15.8.4/redist/x64/Microsoft.VC141.CRT:$WORKSPACE/build/src/vs2017_15.8.4/SDK/Redist/ucrt/DLLs/x64:$WORKSPACE/build/src/vs2017_15.8.4/DIA SDK/bin/amd64:$WORKSPACE/build/src/mingw64/bin:$PATH" + PATH="$WORKSPACE/build/src/vs2017_15.4.2/VC/bin/Hostx64/x64:$WORKSPACE/build/src/vs2017_15.4.2/VC/bin/Hostx86/x86:$WORKSPACE/build/src/vs2017_15.4.2/SDK/bin/10.0.15063.0/x64:$WORKSPACE/build/src/vs2017_15.4.2/redist/x64/Microsoft.VC141.CRT:$WORKSPACE/build/src/vs2017_15.4.2/SDK/Redist/ucrt/DLLs/x64:$WORKSPACE/build/src/vs2017_15.4.2/DIA SDK/bin/amd64:$WORKSPACE/build/src/mingw64/bin:$PATH" ;; esac diff --git a/taskcluster/scripts/misc/build-rust-size.sh b/taskcluster/scripts/misc/build-rust-size.sh index 41f44c4cfddc..4fa8f3425e69 100755 --- a/taskcluster/scripts/misc/build-rust-size.sh +++ b/taskcluster/scripts/misc/build-rust-size.sh @@ -18,11 +18,11 @@ MINGW*) WIN_WORKSPACE="$(pwd -W)" COMPRESS_EXT=bz2 - export INCLUDE="$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/include;$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/atlmfc/include;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/ucrt;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/shared;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/um;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/winrt;$WIN_WORKSPACE/build/src/vs2017_15.8.4/DIA SDK/include" + export INCLUDE="$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/include;$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/atlmfc/include;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/ucrt;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/shared;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/um;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/winrt;$WIN_WORKSPACE/build/src/vs2017_15.4.2/DIA SDK/include" - export LIB="$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/atlmfc/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/lib/10.0.17134.0/um/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/lib/10.0.17134.0/ucrt/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/DIA SDK/lib/amd64" + export LIB="$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/atlmfc/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/lib/10.0.15063.0/um/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/lib/10.0.15063.0/ucrt/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/DIA SDK/lib/amd64" - PATH="$WORKSPACE/build/src/vs2017_15.8.4/VC/bin/Hostx64/x64:$WORKSPACE/build/src/vs2017_15.8.4/VC/bin/Hostx86/x86:$WORKSPACE/build/src/vs2017_15.8.4/SDK/bin/10.0.17134.0/x64:$WORKSPACE/build/src/vs2017_15.8.4/redist/x64/Microsoft.VC141.CRT:$WORKSPACE/build/src/vs2017_15.8.4/SDK/Redist/ucrt/DLLs/x64:$WORKSPACE/build/src/vs2017_15.8.4/DIA SDK/bin/amd64:$WORKSPACE/build/src/mingw64/bin:$PATH" + PATH="$WORKSPACE/build/src/vs2017_15.4.2/VC/bin/Hostx64/x64:$WORKSPACE/build/src/vs2017_15.4.2/VC/bin/Hostx86/x86:$WORKSPACE/build/src/vs2017_15.4.2/SDK/bin/10.0.15063.0/x64:$WORKSPACE/build/src/vs2017_15.4.2/redist/x64/Microsoft.VC141.CRT:$WORKSPACE/build/src/vs2017_15.4.2/SDK/Redist/ucrt/DLLs/x64:$WORKSPACE/build/src/vs2017_15.4.2/DIA SDK/bin/amd64:$WORKSPACE/build/src/mingw64/bin:$PATH" ;; esac diff --git a/taskcluster/scripts/misc/build-sccache.sh b/taskcluster/scripts/misc/build-sccache.sh index c3d7f33b71e7..21a5b4db943a 100755 --- a/taskcluster/scripts/misc/build-sccache.sh +++ b/taskcluster/scripts/misc/build-sccache.sh @@ -19,11 +19,11 @@ MINGW*) WIN_WORKSPACE="$(pwd -W)" COMPRESS_EXT=bz2 - export INCLUDE="$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/include;$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/atlmfc/include;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/ucrt;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/shared;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/um;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/Include/10.0.17134.0/winrt;$WIN_WORKSPACE/build/src/vs2017_15.8.4/DIA SDK/include" + export INCLUDE="$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/include;$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/atlmfc/include;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/ucrt;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/shared;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/um;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/Include/10.0.15063.0/winrt;$WIN_WORKSPACE/build/src/vs2017_15.4.2/DIA SDK/include" - export LIB="$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/VC/atlmfc/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/lib/10.0.17134.0/um/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/SDK/lib/10.0.17134.0/ucrt/x64;$WIN_WORKSPACE/build/src/vs2017_15.8.4/DIA SDK/lib/amd64" + export LIB="$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/VC/atlmfc/lib/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/lib/10.0.15063.0/um/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/SDK/lib/10.0.15063.0/ucrt/x64;$WIN_WORKSPACE/build/src/vs2017_15.4.2/DIA SDK/lib/amd64" - PATH="$WORKSPACE/build/src/vs2017_15.8.4/VC/bin/Hostx64/x64:$WORKSPACE/build/src/vs2017_15.8.4/VC/bin/Hostx86/x86:$WORKSPACE/build/src/vs2017_15.8.4/SDK/bin/10.0.17134.0/x64:$WORKSPACE/build/src/vs2017_15.8.4/redist/x64/Microsoft.VC141.CRT:$WORKSPACE/build/src/vs2017_15.8.4/SDK/Redist/ucrt/DLLs/x64:$WORKSPACE/build/src/vs2017_15.8.4/DIA SDK/bin/amd64:$WORKSPACE/build/src/mingw64/bin:$PATH" + PATH="$WORKSPACE/build/src/vs2017_15.4.2/VC/bin/Hostx64/x64:$WORKSPACE/build/src/vs2017_15.4.2/VC/bin/Hostx86/x86:$WORKSPACE/build/src/vs2017_15.4.2/SDK/bin/10.0.15063.0/x64:$WORKSPACE/build/src/vs2017_15.4.2/redist/x64/Microsoft.VC141.CRT:$WORKSPACE/build/src/vs2017_15.4.2/SDK/Redist/ucrt/DLLs/x64:$WORKSPACE/build/src/vs2017_15.4.2/DIA SDK/bin/amd64:$WORKSPACE/build/src/mingw64/bin:$PATH" ;; esac diff --git a/taskcluster/scripts/misc/gn.patch b/taskcluster/scripts/misc/gn.patch new file mode 100644 index 000000000000..eb6594344db7 --- /dev/null +++ b/taskcluster/scripts/misc/gn.patch @@ -0,0 +1,78 @@ +diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py +index ff2ae57..7e12436 100755 +--- a/bootstrap/bootstrap.py ++++ b/bootstrap/bootstrap.py +@@ -29,9 +29,10 @@ BOOTSTRAP_DIR = os.path.dirname(os.path.abspath(__file__)) + GN_ROOT = os.path.dirname(BOOTSTRAP_DIR) + SRC_ROOT = os.path.dirname(os.path.dirname(GN_ROOT)) + ++is_mac_cross = os.environ.get('MAC_CROSS', False) + is_win = sys.platform.startswith('win') +-is_linux = sys.platform.startswith('linux') +-is_mac = sys.platform.startswith('darwin') ++is_linux = sys.platform.startswith('linux') and not is_mac_cross ++is_mac = sys.platform.startswith('darwin') or is_mac_cross + is_aix = sys.platform.startswith('aix') + is_posix = is_linux or is_mac or is_aix + +@@ -595,7 +596,6 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/synchronization/condition_variable_posix.cc', + 'base/synchronization/lock_impl_posix.cc', + 'base/synchronization/read_write_lock_posix.cc', +- 'base/synchronization/waitable_event_posix.cc', + 'base/sys_info_posix.cc', + 'base/task_scheduler/task_tracker_posix.cc', + 'base/threading/platform_thread_internal_posix.cc', +@@ -603,10 +603,19 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/threading/thread_local_storage_posix.cc', + 'base/threading/worker_pool_posix.cc', + 'base/time/time_conversion_posix.cc', ++ ]) ++ ++ if not is_mac: ++ static_libraries['base']['sources'].extend([ ++ 'base/synchronization/waitable_event_posix.cc', + 'base/time/time_exploded_posix.cc', + 'base/time/time_now_posix.cc', +- 'base/trace_event/heap_profiler_allocation_register_posix.cc', ++ ]) ++ ++ static_libraries['base']['sources'].extend([ ++ 'base/trace_event/heap_profiler_allocation_register_posix.cc', + ]) ++ + static_libraries['libevent'] = { + 'sources': [ + 'base/third_party/libevent/buffer.c', +@@ -685,6 +694,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/mac/call_with_eh_frame.cc', + 'base/mac/call_with_eh_frame_asm.S', + 'base/mac/foundation_util.mm', ++ 'base/mac/mac_util.mm', + 'base/mac/mach_logging.cc', + 'base/mac/scoped_mach_port.cc', + 'base/mac/scoped_mach_vm.cc', +@@ -697,6 +707,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/process/process_iterator_mac.cc', + 'base/process/process_metrics_mac.cc', + 'base/strings/sys_string_conversions_mac.mm', ++ 'base/synchronization/waitable_event_mac.cc', + 'base/sys_info_mac.mm', + 'base/time/time_mac.cc', + 'base/threading/platform_thread_mac.mm', +@@ -735,6 +746,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'base/memory/memory_pressure_monitor_win.cc', + 'base/memory/shared_memory_handle_win.cc', + 'base/memory/shared_memory_win.cc', ++ 'base/memory/shared_memory_tracker.cc', + 'base/message_loop/message_pump_win.cc', + 'base/native_library_win.cc', + 'base/power_monitor/power_monitor_device_source_win.cc', +@@ -799,6 +811,7 @@ def write_gn_ninja(path, root_gen_dir, options): + 'version.lib', + 'winmm.lib', + 'ws2_32.lib', ++ 'shlwapi.lib', + ]) + + # we just build static libraries that GN needs diff --git a/taskcluster/taskgraph/transforms/job/debian_package.py b/taskcluster/taskgraph/transforms/job/debian_package.py index fec8f7901479..812450b91dc5 100644 --- a/taskcluster/taskgraph/transforms/job/debian_package.py +++ b/taskcluster/taskgraph/transforms/job/debian_package.py @@ -9,6 +9,7 @@ from __future__ import absolute_import, print_function, unicode_literals import os import re +import taskcluster_urls from taskgraph.util.schema import Schema from voluptuous import Any, Optional, Required @@ -72,21 +73,17 @@ def docker_worker_debian_package(config, job, taskdesc): name = taskdesc['label'].replace('{}-'.format(config.kind), '', 1) + docker_repo = 'debian' arch = run.get('arch', 'amd64') + if arch != 'amd64': + docker_repo = '{}/{}'.format(arch, docker_repo) worker = taskdesc['worker'] worker['artifacts'] = [] - version = { - 'wheezy': 7, - 'jessie': 8, - 'stretch': 9, - 'buster': 10, - }[run['dist']] - image = 'debian%d' % version - if arch != 'amd64': - image += '-' + arch - image += '-packages' - worker['docker-image'] = {'in-tree': image} + worker['docker-image'] = '{repo}:{dist}-{date}'.format( + repo=docker_repo, + dist=run['dist'], + date=run['snapshot'][:8]) # Retry on apt-get errors. worker['retry-exit-status'] = [100] @@ -113,6 +110,13 @@ def docker_worker_debian_package(config, job, taskdesc): package = package_re.match(src_file).group(0) unpack = unpack.format(src_file=src_file, package=package) + base_deps = [ + 'apt-utils', + 'build-essential', + 'devscripts', + 'fakeroot', + ] + resolver = run.get('resolver', 'apt-get') if resolver == 'apt-get': resolver = 'apt-get -yyq --no-install-recommends' @@ -120,13 +124,15 @@ def docker_worker_debian_package(config, job, taskdesc): resolver = ('aptitude -y --without-recommends -o ' 'Aptitude::ProblemResolver::Hints::KeepBuildDeps=' '"reject {}-build-deps :UNINST"').format(package) + base_deps.append('aptitude') else: raise RuntimeError('Unreachable') adjust = '' if 'patch' in run: - # We don't use robustcheckout or run-task to get a checkout. So for - # this one file we'd need from a checkout, download it. + # We can't depend on docker images, so we don't have robustcheckout or + # or run-task to get a checkout. So for this one file we'd need + # from a checkout, download it. env['PATCH_URL'] = '{head_repo}/raw-file/{head_rev}/build/debian-packages/{patch}'.format( head_repo=config.params['head_repository'], head_rev=config.params['head_rev'], @@ -148,15 +154,33 @@ def docker_worker_debian_package(config, job, taskdesc): dist=run['dist'], ) + queue_url = taskcluster_urls.api(get_root_url(), 'queue', 'v1', '') + + # We can't depend on docker images (since docker images depend on packages), + # so we inline the whole script here. worker['command'] = [ 'sh', '-x', '-c', + # Fill /etc/apt/sources.list with the relevant snapshot repository. + 'echo "deb http://snapshot.debian.org/archive/debian' + '/{snapshot}/ {dist} main" > /etc/apt/sources.list && ' + 'echo "deb http://snapshot.debian.org/archive/debian' + '/{snapshot}/ {dist}-updates main" >> /etc/apt/sources.list && ' + 'echo "deb http://snapshot.debian.org/archive/debian' + '/{snapshot}/ {dist}-backports main" >> /etc/apt/sources.list && ' + 'echo "deb http://snapshot.debian.org/archive/debian-security' + '/{snapshot}/ {dist}/updates main" >> /etc/apt/sources.list && ' + 'apt-get update -o Acquire::Check-Valid-Until=false -q && ' # Add sources for packages coming from other package tasks. - '/usr/local/sbin/setup_packages.sh {queue_url} $PACKAGES && ' - 'apt-get update && ' - # Upgrade packages that might have new versions in package tasks. - 'apt-get dist-upgrade && ' + 'apt-get install -yyq apt-transport-https ca-certificates && ' + 'for task in $PACKAGES; do ' + ' echo "deb [trusted=yes] {queue_url}task/$task/artifacts/public/build/ debian/" ' + '>> /etc/apt/sources.list; ' + 'done && ' + # Install the base utilities required to build debian packages. + 'apt-get update -o Acquire::Check-Valid-Until=false -q && ' + 'apt-get install -yyq {base_deps} && ' 'cd /tmp && ' # Get, validate and extract the package source. 'dget -d -u {src_url} && ' @@ -177,7 +201,7 @@ def docker_worker_debian_package(config, job, taskdesc): 'apt-ftparchive sources debian | gzip -c9 > debian/Sources.gz && ' 'apt-ftparchive packages debian | gzip -c9 > debian/Packages.gz' .format( - queue_url=get_root_url(), + queue_url=queue_url, package=package, snapshot=run['snapshot'], dist=run['dist'], @@ -187,6 +211,7 @@ def docker_worker_debian_package(config, job, taskdesc): unpack=unpack, adjust=adjust, artifacts='/tmp/artifacts', + base_deps=' '.join(base_deps), resolver=resolver, ) ] @@ -208,6 +233,9 @@ def docker_worker_debian_package(config, job, taskdesc): digest_data.append( hash_path(os.path.join(GECKO, 'build', 'debian-packages', run['patch']))) + if docker_repo != 'debian': + digest_data.append(docker_repo) + if not taskgraph.fast: taskdesc['cache'] = { 'type': 'packages.v1',