summaryrefslogtreecommitdiffstats
path: root/taskcluster/docker/debian-repackage/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'taskcluster/docker/debian-repackage/Dockerfile')
-rw-r--r--taskcluster/docker/debian-repackage/Dockerfile36
1 files changed, 22 insertions, 14 deletions
diff --git a/taskcluster/docker/debian-repackage/Dockerfile b/taskcluster/docker/debian-repackage/Dockerfile
index ae257931d4..f068731b58 100644
--- a/taskcluster/docker/debian-repackage/Dockerfile
+++ b/taskcluster/docker/debian-repackage/Dockerfile
@@ -3,22 +3,16 @@ MAINTAINER Mozilla Releng <release@mozilla.com>
VOLUME /builds/worker/workspace
-# At the moment the Firefox build baseline is jessie.
-# Things in the build/CI system that run in the task's container
-# (mach, run-task, etc.) do not support jessie.
-# There's also no jessie `base` images or packages generated in the CI.
-# To generate Firefox Debian packages compatible with the baseline
-# we bootstrap basic i386 and amd64 jessie systems on bullseye.
-# We use these to generate shared library dependencies in jessie using chroot.
-# python/mozbuild/mozbuild/repackaging/deb.py checks for jessie systems
-# bootstrapped under /srv/jessie-i386 and /srv/jessie-amd64
-# If they aren't there, deb.py runs the repackage in the working directory without using chroot.
-# To keep the build and repackage enviroments consistent the Debian baseline used
-# here (jessie) should be synchronized with the baseline used in
-# taskcluster/scripts/misc/build-sysroot.sh
+# At the moment the Firefox build sysroot for i386 and amd64 use jessie and arm64 uses buster.
+# To generate Firefox Debian packages we bootstrap jessie and buster sysroots.
+# We use these sysroots to generate shared library dependencies for
+# i386 (jessie), amd64 (jessie), and arm64 (buster) packages.
+# To keep the build and repackage enviroments consistent the Debian distributions used by the sysroots
+# created here should match the distributions used by the sysroots created in taskcluster/scripts/misc/build-sysroot.sh
ARG TASKCLUSTER_ROOT_URL
ARG DOCKER_IMAGE_PACKAGES
RUN /usr/local/sbin/setup_packages.sh $TASKCLUSTER_ROOT_URL $DOCKER_IMAGE_PACKAGES && \
+ dpkg --add-architecture arm64 && \
apt-get update && \
apt-get install debootstrap && set -xe && \
for arch in i386 amd64; do \
@@ -30,6 +24,20 @@ RUN /usr/local/sbin/setup_packages.sh $TASKCLUSTER_ROOT_URL $DOCKER_IMAGE_PACKAG
--verbose \
jessie \
/srv/jessie-$arch \
- https://archive.debian.org/debian; \
+ https://archive.debian.org/debian || (echo "Debootstrap failed, outputting log:" && cat /srv/jessie-$arch/debootstrap/debootstrap.log && exit 1); \
done && \
+ # bootstrap a buster/amd64 root to generate an arm64 .deb package.
+ debootstrap \
+ --arch=amd64 \
+ --variant=buildd \
+ --include=debhelper,binutils-multiarch,binutils-aarch64-linux-gnu \
+ --keyring=/usr/share/keyrings/debian-archive-buster-stable.gpg \
+ --verbose \
+ buster \
+ /srv/buster-amd64 \
+ http://deb.debian.org/debian || (echo "Debootstrap failed, outputting log:" && cat /srv/buster-amd64/debootstrap/debootstrap.log && exit 1) && \
+ chroot /srv/buster-amd64 /bin/bash -c "\
+ dpkg --add-architecture arm64 && \
+ apt-get update && \
+ apt-get install -y libasound2:arm64 libgtk-3-0:arm64 libx11-xcb1:arm64 libxtst6:arm64" && \
/usr/local/sbin/clean_packages.sh $DOCKER_IMAGE_PACKAGES