We want Python 3.5+ to be available everywhere so various processes
can start using it.
The debian-base Dockerfile is shared by Debian 7 and 9 images.
Debian 9 ships with Python 3.5 and after the previous commit, we
have a Python 3.5 package for Debian 7. So we simply install the
"python3.5" package to get Python on all the Debian images.
MozReview-Commit-ID: 9ZmoSxtHWTZ
All in-tree Docker images should be installing Mercurial via
install-mercurial.sh so that the Mercurial install is consistent
across all Docker images.
I noticed this image wasn't using install-mercurial.sh because
attempting to rebuild the image currently fails due to
mercurial-4.3.1-2 not being available in the upstream package repo.
install-mercurial.sh has been taught to handle Ubuntu 18.04 and the
Docker image building process has been taught to use
install-mercurial.sh. install-mercurial.sh uses tooltool and behavior
should work and be deterministic over all of time.
As part of this, we had to establish a standalone shell script for
building the image. That's because install-mercurial.sh requires a
"tooltool_fetch" alias. Meaningful image building code has been
moved into the new setup.sh. This also means things run as a single
RUN statement. So we don't need to hack around minimizing RUN
invocations.
I also discovered that the pinned curl version is no longer available.
So I removed the version pinning. FWIW we can't rely on version
pinning unless the Apt repository is snapshotted. Packages do get
yanked from time to time. Unless we absolutely require a specific
version of a specific package, we can probably get away without pinning
- at least for this Docker image. But that can be a follow-up.
MozReview-Commit-ID: As7Hq470QcK
Summary:
We'll be adding the new periodic file updates task to run in parallel. This patch
moves the existing one to make it clear it's running on buildbot, so we don't get confused
later on.
Reviewers: Callek
Reviewed By: Callek
Bug #: 1436369
Differential Revision: https://phabricator.services.mozilla.com/D681
***
Bug 1436369 Add taskcluster periodic file updates r=callek
Reviewers: Callek
Reviewed By: Callek
Differential Revision: https://phabricator.services.mozilla.com/D683
***
Bug 1436469 Fix task definition r=callek
***
Bug 1436469 Move periodic-file updates docker image r=callek
Summary:
We'll be adding the new periodic file updates task to run in parallel. This patch
moves the existing one to make it clear it's running on buildbot, so we don't get confused
later on.
Reviewers: Callek
Reviewed By: Callek
Bug #: 1436369
Differential Revision: https://phabricator.services.mozilla.com/D681
***
Bug 1436369 Add taskcluster periodic file updates r=callek
Reviewers: Callek
Reviewed By: Callek
Differential Revision: https://phabricator.services.mozilla.com/D683
***
Bug 1436469 Fix task definition r=callek
***
Bug 1436469 Move periodic-file updates docker image r=callek
Summary:
We'll be adding the new periodic file updates task to run in parallel. This patch
moves the existing one to make it clear it's running on buildbot, so we don't get confused
later on.
Reviewers: Callek
Reviewed By: Callek
Bug #: 1436369
Differential Revision: https://phabricator.services.mozilla.com/D681
***
Bug 1436369 Add taskcluster periodic file updates r=callek
Reviewers: Callek
Reviewed By: Callek
Differential Revision: https://phabricator.services.mozilla.com/D683
***
Bug 1436469 Fix task definition r=callek
***
Bug 1436469 Move periodic-file updates docker image r=callek
This fix does several things:
* Removes the mime cache generated by the desktop-gtk3 remote part
* Installs a stub shared-mime-info database
* Set default association for all types to use xdg-open
Note: There is still work[1] to be completed in snapd, adding OpenFile
support to xdg-open. Landing this is harmless though, it will fail
silently just as it does today but will start working when the snapd
feature lands.
1. https://github.com/snapcore/snapd/pull/4766
opening requested files,
MozReview-Commit-ID: 1eeOLeVN8xQ
In automation for both Linux and Linux64 the same docker image is used,
which is based on Ubuntu 16.04 64bit. To run the 32bit Firefox binary
the necessary libraries for the i386 architecture get installed.
What's missing is the creation of the font cache for i386 binaries. As
such it will be created at the first start of the appropriate application.
It means there is an additional ~30s delay before Firefox opens, which
causes several test failures especially for wdspec tests.
To prevent this delay the i386 version of fontconfig will be installed
and apt automatically creates the font cache for the i386 architecture
by leaving the x86_64 cache in-place.
So the cache creation will happen one time when the docker image is getting
build, and not for each and every test job, which saves us 30s for each.
MozReview-Commit-ID: 58xdOI4xYkP
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.
This will disable libxss-based code in the screenshot tool, like it was
before the switch to Debian-based build images in bug 1399679. There are
other places in the code that use libXss, but they don't require the
development headers, and use dlopen().