Bug 1504906 - Build 32-bits Gtk+ 3.10 packages for Debian Wheezy. r=gps
☠☠ backed out by 5ece74940a5f ☠ ☠
authorMike Hommey <mh+mozilla@glandium.org>
Wed, 07 Nov 2018 09:20:50 +0900
changeset 501584 27b4002951a4e763eca65972c6fb2432bc21a3dd
parent 501583 f7a685b165798f63cefe7293f0a2e53f7afa0e4a
child 501585 2fe1e2b7d9c63f3f29e3b4b33412b233ae779ce4
push id10290
push userffxbld-merge
push dateMon, 03 Dec 2018 16:23:23 +0000
treeherdermozilla-beta@700bed2445e6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersgps
bugs1504906
milestone65.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 1504906 - Build 32-bits Gtk+ 3.10 packages for Debian Wheezy. r=gps This creates 32-bits variants of the same packages that were added for 64-bits builds, with a few additions: - python-defaults, so that the python package can be installed as a dependency of the libglib2.0-dev package, - xkeyboard-config, so that the xkb-data package can be installed as a dependency of the libxkbcommon0 package. Additionally, because the 32-bits and 64-bits packages are built separately (the 32-bits packages can't, on Wheezy, be built on a 64-bits host), they don't end up with the same changelog.Debian/changelog.Debian.gz file because of a timestamp within it. One way to address this would be to make the taskgraph more complex, by adding a task creating the source package, and then two tasks building the 32-bits and 64-bits binary packages from that source, but that's not worth the overhead, when a simple hack works around the problem: We make dpkg skip installing the changelog.Debian* files. Differential Revision: https://phabricator.services.mozilla.com/D11140
build/debian-packages/python-defaults-wheezy.diff
build/debian-packages/xkeyboard-config-wheezy.diff
taskcluster/ci/config.yml
taskcluster/ci/packages/kind.yml
taskcluster/docker/debian7-build/Dockerfile
new file mode 100644
--- /dev/null
+++ b/build/debian-packages/python-defaults-wheezy.diff
@@ -0,0 +1,65 @@
+diff -Nru python-defaults-2.7.3/debian/changelog python-defaults-2.7.3/debian/changelog
+--- python-defaults-2.7.3/debian/changelog	2013-09-29 04:36:47.000000000 +0900
++++ python-defaults-2.7.3/debian/changelog	2018-11-06 18:06:20.000000000 +0900
+@@ -1,3 +1,10 @@
++python-defaults (2.7.3-4.deb7moz1) wheezy; urgency=medium
++
++  * Mozilla backport for Wheezy.
++  * debian/control: Set "Multi-Arch: foreign" on various packages.
++
++ -- Mike Hommey <glandium@debian.org>  Tue, 06 Nov 2018 18:06:20 +0900
++
+ python-defaults (2.7.3-4+deb7u1) stable; urgency=low
+ 
+   * Add symlink for /usr/bin/python2 (Closes: #723182)
+diff -Nru python-defaults-2.7.3/debian/control.in python-defaults-2.7.3/debian/control.in
+--- python-defaults-2.7.3/debian/control.in	2012-07-01 03:36:04.000000000 +0900
++++ python-defaults-2.7.3/debian/control.in	2018-11-06 18:06:20.000000000 +0900
+@@ -12,6 +12,7 @@
+ 
+ Package: python
+ Architecture: all
++Multi-Arch: foreign
+ Priority: standard
+ Depends: ${misc:Depends}, @PVER@ (>= @PREVVER@), python-minimal (= ${binary:Version})
+ Suggests: python-doc (= ${binary:Version}), python-tk (= ${binary:Version})
+@@ -29,6 +30,7 @@
+ 
+ Package: python-minimal
+ Architecture: all
++Multi-Arch: foreign
+ Priority: standard
+ Depends: ${misc:Depends}, @PVER@-minimal (>= @PREVVER@), dpkg (>= 1.13.20)
+ Recommends: python
+@@ -102,6 +104,7 @@
+ 
+ Package: python-dbg
+ Architecture: all
++Multi-Arch: foreign
+ Section: debug
+ Priority: extra
+ Depends: ${misc:Depends}, python (= ${binary:Version}), python@VER@-dbg (>= @PREVVER@)
+@@ -112,6 +115,7 @@
+ 
+ Package: python-all
+ Architecture: all
++Multi-Arch: foreign
+ Depends: ${misc:Depends}, python (= ${binary:Version}), python2.6 (>= 2.6.7-3), python2.7 (>= 2.7.2-3)
+ Description: package depending on all supported Python runtime versions
+  The package currently depends on python2.6 and python2.7, in the future,
+@@ -123,6 +127,7 @@
+ 
+ Package: python-all-dev
+ Architecture: all
++Multi-Arch: foreign
+ Depends: ${misc:Depends}, python (= ${binary:Version}), python-all (= ${binary:Version}), python-dev (= ${binary:Version}), python2.6-dev (>= 2.6.5-2), python2.7-dev (>= 2.7-7)
+ Description: package depending on all supported Python development packages
+  The package currently depends on python2.6-dev and python2.7-dev, in the
+@@ -134,6 +139,7 @@
+ 
+ Package: python-all-dbg
+ Architecture: all
++Multi-Arch: foreign
+ Section: debug
+ Priority: extra
+ Depends: ${misc:Depends}, python (= ${binary:Version}), python-all (= ${binary:Version}), python-dbg (= ${binary:Version}), python2.6-dbg (>= 2.6.5-2), python2.7-dbg (>= 2.7-7)
new file mode 100644
--- /dev/null
+++ b/build/debian-packages/xkeyboard-config-wheezy.diff
@@ -0,0 +1,25 @@
+diff -u xkeyboard-config-2.5.1/debian/control xkeyboard-config-2.5.1/debian/control
+--- xkeyboard-config-2.5.1/debian/control
++++ xkeyboard-config-2.5.1/debian/control
+@@ -23,6 +23,7 @@
+ Depends: ${misc:Depends}
+ Breaks: libx11-6 (<< 2:1.4.3)
+ Architecture: all
++Multi-Arch: foreign
+ Description: X Keyboard Extension (XKB) configuration data
+  This package contains configuration data used by the X Keyboard
+  Extension (XKB), which allows selection of keyboard layouts when
+diff -u xkeyboard-config-2.5.1/debian/changelog xkeyboard-config-2.5.1/debian/changelog
+--- xkeyboard-config-2.5.1/debian/changelog
++++ xkeyboard-config-2.5.1/debian/changelog
+@@ -1,3 +1,10 @@
++xkeyboard-config (2.5.1-3.deb7moz1) wheezy; urgency=medium
++
++  * Mozilla backport for Wheezy.
++  * Mark xkb-data as "Multi-Arch: foreign".
++
++ -- Mike Hommey <glandium@mozilla.com>  Tue, 06 Nov 2018 17:13:52 +0900
++
+ xkeyboard-config (2.5.1-3) unstable; urgency=low
+ 
+   * Cherry-picks from upstream:
--- a/taskcluster/ci/config.yml
+++ b/taskcluster/ci/config.yml
@@ -56,16 +56,17 @@ treeherder:
         'cs': 'Checksum signing'
         'css': 'Checksum signing for source'
         'rs': 'Repackage signing'
         'BMcs': 'Beetmover checksums'
         'BMcslang': 'Beetmover checksums for language packs'
         'BMcss': 'Beetmover checksums for source'
         'Aries': 'Aries Device Image'
         'Deb7': 'Packages for Debian 7'
+        'Deb7-32': 'Packages for Debian 7 32-bits'
         'Deb9': 'Packages for Debian 9'
         'Nexus 5-L': 'Nexus 5-L Device Image'
         'I': 'Docker Image Builds'
         'TL': 'Toolchain builds for Linux 64-bits'
         'TM': 'Toolchain builds for OSX'
         'TMW': 'Toolchain builds for Windows MinGW'
         'TW32': 'Toolchain builds for Windows 32-bits'
         'TW64': 'Toolchain builds for Windows 64-bits'
--- a/taskcluster/ci/packages/kind.yml
+++ b/taskcluster/ci/packages/kind.yml
@@ -56,16 +56,28 @@ jobs:
       dsc:
         url: http://snapshot.debian.org/archive/debian/20170120T212942Z/pool/main/p/python3-defaults/python3-defaults_3.5.3-1.dsc
         sha256: 2bec1dd8a5836d5a19fbbd48d7c49aec40642669036297a34bbfd8b0b2d61439
       packages:
         - deb7-python3.5
       patch: python3-defaults-wheezy.diff
       pre-build-command: debian/rules control-file
 
+  deb7-python-defaults:
+    description: "multiarch python-defaults for Debian wheezy"
+    treeherder:
+      symbol: Deb7(python-defaults)
+    run:
+      using: debian-package
+      dsc:
+        url: http://snapshot.debian.org/archive/debian/20130930T035642Z/pool/main/p/python-defaults/python-defaults_2.7.3-4+deb7u1.dsc
+        sha256: e12fa64899a025b7ac3bdccd5611ae6f3d23327b695b2938473b1cf68ecc9ae5
+      patch: python-defaults-wheezy.diff
+      pre-build-command: debian/rules control-file
+
   deb7-cmake:
     description: "Cmake backport for Debian wheezy"
     treeherder:
       symbol: Deb7(cmake)
     run:
       using: debian-package
       dsc:
         url: http://snapshot.debian.org/archive/debian/20161204T034107Z/pool/main/c/cmake/cmake_3.7.1-1.dsc
@@ -371,8 +383,140 @@ jobs:
         - deb7-glib
         - deb7-gdk-pixbuf
         - deb7-harfbuzz
         - deb7-libxkbcommon
         - deb7-make
         - deb7-pango
         - deb7-pcre3
         - deb7-wayland
+
+  deb7-32-pcre3:
+    description: "pcre3 8.31 for Debian Wheezy"
+    treeherder:
+      symbol: Deb7-32(pcre3)
+    run:
+      using: debian-package
+      dsc:
+        url: http://snapshot.debian.org/archive/debian/20140424T055217Z/pool/main/p/pcre3/pcre3_8.31-5.dsc
+        sha256: e6e92af1e9f4b1d286ce9e7fdb6cb2f0972a341a94f5631e0b8c31b9f79633a4
+      arch: i386
+
+  deb7-32-atk:
+    description: "atk 2.8 for Debian Wheezy"
+    treeherder:
+      symbol: Deb7-32(atk)
+    run:
+      using: debian-package
+      dsc:
+        url: http://snapshot.debian.org/archive/debian/20130510T040301Z/pool/main/a/atk1.0/atk1.0_2.8.0-2.dsc
+        sha256: cae824b2a5ef47704fb820c04b5b7ee234329d9ddda1086bf487e12d58b9f70c
+      arch: i386
+
+  deb7-32-glib:
+    description: "glib 2.38 for Debian Wheezy"
+    treeherder:
+      symbol: Deb7-32(glib)
+    run:
+      using: debian-package
+      dsc:
+        url: http://snapshot.debian.org/archive/debian/20140215T160944Z/pool/main/g/glib2.0/glib2.0_2.38.2-5.dsc
+        sha256: 1d81952a9a46a935d35d723f7528bf8d5264ef8a59491bad335d134dbeaa2404
+      arch: i386
+      patch: glib-wheezy.diff
+      packages:
+        - deb7-32-pcre3
+
+  deb7-32-harfbuzz:
+    description: "harfbuzz for Debian Wheezy"
+    treeherder:
+      symbol: Deb7-32(harfbuzz)
+    run:
+      using: debian-package
+      dsc:
+        url: http://snapshot.debian.org/archive/debian/20121211T033951Z/pool/main/h/harfbuzz/harfbuzz_0.9.9-1.dsc
+        sha256: 622677a2757a739fb59c8bcd8cde9c1722fac82808248e19ce1cae46620d92bd
+      arch: i386
+
+  deb7-32-gdk-pixbuf:
+    description: "gdk-pixbuf 2.28 for Debian Wheezy"
+    treeherder:
+      symbol: Deb7-32(gdkpixbuf)
+    run:
+      using: debian-package
+      dsc:
+        url: http://snapshot.debian.org/archive/debian/20130608T215552Z/pool/main/g/gdk-pixbuf/gdk-pixbuf_2.28.2-1.dsc
+        sha256: f5057beb54c37293de352c6f253cedd8b144d25289f1fdf1a958f17b51565bcb
+      arch: i386
+      packages:
+        - deb7-32-glib
+        - deb7-32-pcre3
+
+  deb7-32-pango:
+    description: "pango 1.32 for Debian Wheezy"
+    treeherder:
+      symbol: Deb7-32(pango)
+    run:
+      using: debian-package
+      dsc:
+        url: http://snapshot.debian.org/archive/debian/20130224T223605Z/pool/main/p/pango1.0/pango1.0_1.32.5-1.dsc
+        sha256: d9d9b1f797c5dbe70bfe9c7931d63b28437476aa1a737c424c7f072ca6e22914
+      arch: i386
+      packages:
+        - deb7-32-glib
+        - deb7-32-harfbuzz
+        - deb7-32-pcre3
+
+  deb7-32-xkeyboard-config:
+    description: "xkeyboard-config for Debian Wheezy"
+    treeherder:
+      symbol: Deb7-32(xkbdconfig)
+    run:
+      using: debian-package
+      dsc:
+        url: http://snapshot.debian.org/archive/debian/20121225T153644Z/pool/main/x/xkeyboard-config/xkeyboard-config_2.5.1-3.dsc
+        sha256: 327d53dfca4288c7f75471bb01e6d1f161811706b1d8daa01bf9abc269016dc1
+      arch: i386
+      patch: xkeyboard-config-wheezy.diff
+
+  deb7-32-libxkbcommon:
+    description: "libxkbcommon for Debian Wheezy"
+    treeherder:
+      symbol: Deb7-32(xkbc)
+    run:
+      using: debian-package
+      dsc:
+        url: http://snapshot.debian.org/archive/debian/20140723T102555Z/pool/main/libx/libxkbcommon/libxkbcommon_0.4.1-2.dsc
+        sha256: 9046dbceda207ed7163b7c12c98399e6d119491a480dc908ae451d7fff0fb77c
+      arch: i386
+
+  deb7-32-wayland:
+    description: "wayland 1.2 for Debian wheezy"
+    treeherder:
+      symbol: Deb7-32(wayland)
+    run:
+      using: debian-package
+      dsc:
+        url: http://snapshot.debian.org/archive/debian/20130908T214400Z/pool/main/w/wayland/wayland_1.2.1-1.dsc
+        sha256: 964619747c00c697c95f2739c7980a0a360d79d03eaa3d9a342fed81d86e9466
+      arch: i386
+
+  deb7-32-gtk3:
+    description: "gtk+ 3.10 for Debian wheezy"
+    treeherder:
+      symbol: Deb7-32(gtk3)
+    run:
+      using: debian-package
+      dsc:
+        url: http://snapshot.debian.org/archive/debian/20140215T220417Z/pool/main/g/gtk+3.0/gtk+3.0_3.10.7-1.dsc
+        sha256: 2a6810d44517806940063bb488e49e7177732d8059c798cf0ef94103fefaf0b3
+      arch: i386
+      patch: gtk-wheezy.diff
+      packages:
+        - deb7-32-atk
+        - deb7-32-glib
+        - deb7-32-gdk-pixbuf
+        - deb7-32-harfbuzz
+        - deb7-32-libxkbcommon
+        - deb7-make
+        - deb7-32-pango
+        - deb7-32-pcre3
+        - deb7-32-wayland
--- a/taskcluster/docker/debian7-build/Dockerfile
+++ b/taskcluster/docker/debian7-build/Dockerfile
@@ -12,17 +12,22 @@ ENV XZ_OPT=-T0
 RUN /usr/local/sbin/setup_packages.sh $DOCKER_IMAGE_PACKAGES
 
 # %ARG ARCH
 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).
 RUN apt-get update && \
+    echo path-exclude=/usr/share/doc/*/changelog.Debian* > /etc/dpkg/dpkg.cfg.d/excludes && \
     apt-get install \
       autoconf2.13 \
       automake \
       bzip2 \
       curl \
       file \
       gawk \
       gcc-multilib \