Bug 1436283 - Put package artifact repositories in different sources.lists. r=dustin
authorMike Hommey <mh+mozilla@glandium.org>
Wed, 07 Feb 2018 16:41:08 +0900
changeset 402829 2c86ba033810689b793074b470fafd654ea29045
parent 402828 bb1b856328ab29b9452ef0bbbe0f5503fbac3ddb
child 402830 87be4e3c4baca4df5cdc55ac3af84fbab1d2bd2f
push id33404
push usershindli@mozilla.com
push dateThu, 08 Feb 2018 10:03:18 +0000
treeherdermozilla-central@06b5d7476ebd [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdustin
bugs1436283
milestone60.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 1436283 - Put package artifact repositories in different sources.lists. r=dustin When running setup_packages in a docker image that derives from another, we're currently overwriting the file that contains the apt sources for the package artifact repositories that were used for the parent docker image. This doesn't cause practical problems for the existing docker images, but in some cases where a user gets a one-click loaner, it might cause problems when they try to install a package that has a dependency that can't be fulfilled once those sources are overwritten. To give a practical example, installing the gdb package from wheezy requires libpython2.7, but if you try to do that on a derivative of the debian7-base image, you don't have the deb7-python artifact repository in your sources.list, and would fail to install gdb because apt can't install a version of libpython2.7 that can be installed alongside the python2.7 that is installed. By putting easy repository in a separate file, named after the task id of the corresponding package task, we ensure each an every one of them is uniquely represented in /etc/apt/sources.list.d.
taskcluster/docker/debian-base/setup_packages.sh
--- a/taskcluster/docker/debian-base/setup_packages.sh
+++ b/taskcluster/docker/debian-base/setup_packages.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
 
 for task in "$@"; do
-  echo "deb [trusted=yes] https://queue.taskcluster.net/v1/task/$task/runs/0/artifacts/public/build/ debian/"
-done > /etc/apt/sources.list.d/99packages.list
+  echo "deb [trusted=yes] https://queue.taskcluster.net/v1/task/$task/runs/0/artifacts/public/build/ debian/" > "/etc/apt/sources.list.d/99$task.list"
+done