Bug 1519293 - Add a build docker image based on Debian 9. r=mshal
authorMike Hommey <mh+mozilla@glandium.org>
Fri, 11 Jan 2019 22:45:55 +0000
changeset 510679 0e27ee5b44f8f576cb0f97fabaf8136cacc61786
parent 510678 03f596ee16831b96c02c2c42d6e2efab9405f76f
child 510680 a58fad772b6f940c06c65e8f8c686f5e39d09175
push id10547
push userffxbld-merge
push dateMon, 21 Jan 2019 13:03:58 +0000
treeherdermozilla-beta@24ec1916bffe [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmshal
bugs1519293
milestone66.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1519293 - Add a build docker image based on Debian 9. r=mshal Differential Revision: https://phabricator.services.mozilla.com/D16280
taskcluster/ci/docker-image/kind.yml
taskcluster/docker/debian-build/Dockerfile
taskcluster/docker/debian7-build/Dockerfile
--- a/taskcluster/ci/docker-image/kind.yml
+++ b/taskcluster/ci/docker-image/kind.yml
@@ -47,26 +47,26 @@ jobs:
       - deb7-cmake
       - deb7-ninja
   custom-v8:
     symbol: I(custom-v8)
     parent: debian9-base
   debian7-amd64-build-base:
     symbol: I(deb7-bb)
     parent: debian7-base
-    definition: debian7-build
+    definition: debian-build
     packages:
       - deb7-nasm
       - deb7-valgrind
     args:
       ARCH: amd64
   debian7-amd64-build:
     symbol: I(deb7)
     parent: debian7-base
-    definition: debian7-build
+    definition: debian-build
     packages:
       - deb7-atk
       - deb7-glib
       - deb7-gdk-pixbuf
       - deb7-gtk3
       - deb7-harfbuzz
       - deb7-libxkbcommon
       - deb7-nasm
@@ -74,17 +74,17 @@ jobs:
       - deb7-pcre3
       - deb7-valgrind
       - deb7-wayland
     args:
       ARCH: amd64
   debian7-i386-build:
     symbol: I(deb7-32)
     parent: debian7-base
-    definition: debian7-build
+    definition: debian-build
     packages:
       - deb7-32-atk
       - deb7-32-glib
       - deb7-32-gdk-pixbuf
       - deb7-32-gtk3
       - deb7-32-harfbuzz
       - deb7-32-libxkbcommon
       - deb7-32-pango
@@ -116,16 +116,22 @@ jobs:
     definition: debian-base
     args:
       DIST: stretch
       BASE_TAG: '20170620'
       SNAPSHOT: '20170830T000511Z'
     packages:
       - deb9-mercurial
       - deb9-python-zstandard
+  debian9-amd64-build:
+    symbol: I(deb9)
+    parent: debian9-base
+    definition: debian-build
+    args:
+      ARCH: amd64
   android-build:
     symbol: I(agb)
     parent: debian9-base
   fetch:
     symbol: I(fetch)
     parent: debian9-base
   static-analysis-build:
     symbol: I(static-analysis-build)
rename from taskcluster/docker/debian7-build/Dockerfile
rename to taskcluster/docker/debian-build/Dockerfile
--- a/taskcluster/docker/debian7-build/Dockerfile
+++ b/taskcluster/docker/debian-build/Dockerfile
@@ -17,18 +17,28 @@ RUN dpkg --add-architecture $ARCH
 
 # Ideally, we wouldn't need gcc-multilib and the extra linux-libc-dev,
 # but the latter is required to make the former installable, and the former
 # because of bug 1409276.
 # We exclude /usr/share/doc/*/changelog.Debian* files because they might differ
 # between i386 and amd64 variants of the packages we build on automation
 # because of dates stored in them by debchange (and both might end up installed
 # in some cases).
+# On Debian 7, pkg-config was not multiarch-aware, so we rely on the $ARCH
+# pkg-config being valid on the host. On more recent versions of Debian, we can
+# use pkg-config, which is multiarch-aware, but we also need dpkg-dev because
+# of https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=916772.
 RUN apt-get update && \
     echo path-exclude=/usr/share/doc/*/changelog.Debian* > /etc/dpkg/dpkg.cfg.d/excludes && \
+    if grep -q ^7\\. /etc/debian_version; then \
+      BACKPORT=/wheezy-backports; \
+      PKG_CONFIG=pkg-config:$ARCH; \
+    else \
+      PKG_CONFIG="pkg-config dpkg-dev"; \
+    fi && \
     apt-get install \
       autoconf2.13 \
       automake \
       bzip2 \
       curl \
       file \
       gawk \
       gcc-multilib \
@@ -43,21 +53,21 @@ RUN apt-get update && \
       screen \
       tar \
       unzip \
       uuid \
       valgrind \
       wget \
       x11-utils \
       xvfb \
-      yasm/wheezy-backports \
+      yasm$BACKPORT \
       zip \
-      linux-libc-dev/wheezy-backports \
-      linux-libc-dev:$ARCH/wheezy-backports \
-      pkg-config:$ARCH \
+      linux-libc-dev$BACKPORT \
+      linux-libc-dev:$ARCH$BACKPORT \
+      $PKG_CONFIG \
       libdbus-glib-1-dev:$ARCH \
       libfontconfig1-dev:$ARCH \
       libfreetype6-dev:$ARCH \
       libgconf2-dev:$ARCH \
       libgtk-3-dev:$ARCH \
       libgtk2.0-dev:$ARCH \
       libpango1.0-dev:$ARCH \
       libpulse-dev:$ARCH \