qemu/tests/docker/dockerfiles/debian-sid.docker
Philippe Mathieu-Daudé b4048a7cd1 docker: Use a stable snapshot for Debian Sid
The Debian Sid repository is not garanteed to be stable, as his
'unstable' name suggest :)
To allow quick testing, packages are pushed various time a day,
which my be annoying when trying to use it for stable development
(which is not recommended, but Sid provides edge packages we use
for testing).

Debian provides repositories snapshots which are suitable for our
use. Pick a recent date that works. When required, update to newer
releases will be easy.

This fixes current issues with this image:

  $ make docker-image-debian-sid
  [...]
  The following packages have unmet dependencies:
   build-essential : Depends: dpkg-dev (>= 1.17.11) but it is not going to be installed
   git : Depends: perl but it is not going to be installed
         Depends: liberror-perl but it is not going to be installed
   pkg-config : Depends: libdpkg-perl but it is not going to be installed
   texinfo : Depends: perl (>= 5.26.2-6) but it is not going to be installed
             Depends: libtext-unidecode-perl but it is not going to be installed
             Depends: libxml-libxml-perl but it is not going to be installed
  E: Unable to correct problems, you have held broken packages.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
[AJB: also tweak FROM to a earlier snapshot]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-01-14 14:52:30 +00:00

42 lines
1.7 KiB
Docker

#
# Debian Sid Base
#
# A number of our guests exist as ports only. We can either use the
# ports repo or get everything from Sid. However Sid is a rolling
# distro which may be broken at any particular time. If you are
# unlucky and try and build your images while gcc is in the process of
# being uploaded this can fail. Your only recourse is to try again in
# a few hours when the repos have re-synced. Once built however you
# won't be affected by repo changes unless the docker recipies are
# updated and trigger a re-build.
#
# This must be earlier than the snapshot date we are aiming for
FROM debian:sid-20181011-slim
# Use a snapshot known to work (see http://snapshot.debian.org/#Usage)
ENV DEBIAN_SNAPSHOT_DATE "20181030"
RUN sed -i "s%^deb \(https\?://\)deb.debian.org/debian/\? \(.*\)%deb [check-valid-until=no] \1snapshot.debian.org/archive/debian/${DEBIAN_SNAPSHOT_DATE} \2%" /etc/apt/sources.list
# Use a snapshot known to work (see http://snapshot.debian.org/#Usage)
ENV DEBIAN_SNAPSHOT_DATE "20181030"
RUN sed -i "s%^deb \(https\?://\)deb.debian.org/debian/\? \(.*\)%deb [check-valid-until=no] \1snapshot.debian.org/archive/debian/${DEBIAN_SNAPSHOT_DATE} \2%" /etc/apt/sources.list
# Duplicate deb line as deb-src
RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list
# Install common build utilities
RUN apt update
RUN DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata
RUN DEBIAN_FRONTEND=noninteractive eatmydata \
apt install -y --no-install-recommends \
bison \
build-essential \
ca-certificates \
flex \
git \
pkg-config \
psmisc \
python \
texinfo || { echo "Failed to build - see debian-sid.docker notes"; exit 1; }