On Wed, 22 Sept 2021 at 17:15, Alex Bennée <alex.ben...@linaro.org> wrote: > > This image is intended for building whatever the native versions of > QEMU are for the host architecture. This will hopefully be an aid for > 3rd parties who want to be able to build QEMU themselves without > redoing all the dependencies themselves. > > We disable the registry because we currently don't have multi-arch > support there. > > Signed-off-by: Alex Bennée <alex.ben...@linaro.org> > Cc: Anders Roxell <anders.rox...@linaro.org>
Thank you for doing this Alex, Tested-by: Anders Roxell <anders.rox...@linaro.org> Cheers, Anders > --- > tests/docker/Makefile.include | 4 ++ > tests/docker/common.rc | 10 +++- > tests/docker/dockerfiles/debian-native.docker | 49 +++++++++++++++++++ > 3 files changed, 61 insertions(+), 2 deletions(-) > create mode 100644 tests/docker/dockerfiles/debian-native.docker > > diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include > index 3b03763186..2f276cc4b2 100644 > --- a/tests/docker/Makefile.include > +++ b/tests/docker/Makefile.include > @@ -145,6 +145,10 @@ docker-image-debian-s390x-cross: docker-image-debian10 > docker-image-debian-sh4-cross: docker-image-debian10 > docker-image-debian-sparc64-cross: docker-image-debian10 > > +# The native build should never use the registry > +docker-image-debian-native: DOCKER_REGISTRY= > + > + > # > # The build rule for hexagon-cross is special in so far for most of > # the time we don't want to build it. While dockers caching does avoid > diff --git a/tests/docker/common.rc b/tests/docker/common.rc > index c5cc33d366..e6f8cee0d6 100755 > --- a/tests/docker/common.rc > +++ b/tests/docker/common.rc > @@ -12,8 +12,14 @@ > # the top-level directory. > > # This might be set by ENV of a docker container... it is always > -# overriden by TARGET_LIST if the user sets it. > -DEF_TARGET_LIST=${DEF_TARGET_LIST:-"x86_64-softmmu,aarch64-softmmu"} > +# overriden by TARGET_LIST if the user sets it. We special case > +# "none" to allow for other options like --disable-tcg to restrict the > +# builds we eventually do. > +if test "$DEF_TARGET_LIST" = "none"; then > + DEF_TARGET_LIST="" > +else > + DEF_TARGET_LIST=${DEF_TARGET_LIST:-"x86_64-softmmu,aarch64-softmmu"} > +fi > > requires_binary() > { > diff --git a/tests/docker/dockerfiles/debian-native.docker > b/tests/docker/dockerfiles/debian-native.docker > new file mode 100644 > index 0000000000..efd55cb6e0 > --- /dev/null > +++ b/tests/docker/dockerfiles/debian-native.docker > @@ -0,0 +1,49 @@ > +# > +# Docker Debian Native > +# > +# This this intended to build QEMU on native host systems. Debian is > +# chosen due to the broadest range on supported host systems for QEMU. > +# > +# This docker target is based on the docker.io Debian Bullseye base > +# image rather than QEMU's base because we would otherwise confuse the > +# build grabbing stuff from the registry built for other > +# architectures. > +# > +FROM docker.io/library/debian:bullseye-slim > +MAINTAINER Alex Bennée <alex.ben...@linaro.org> > + > +# 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 && \ > + DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata > + > +RUN apt update && \ > + DEBIAN_FRONTEND=noninteractive eatmydata \ > + apt build-dep -yy --arch-only qemu > + > +RUN apt update && \ > + DEBIAN_FRONTEND=noninteractive eatmydata \ > + apt install -y --no-install-recommends \ > + cscope \ > + genisoimage \ > + exuberant-ctags \ > + global \ > + libbz2-dev \ > + liblzo2-dev \ > + libgcrypt20-dev \ > + libfdt-dev \ > + librdmacm-dev \ > + libsasl2-dev \ > + libsnappy-dev \ > + libvte-dev \ > + netcat-openbsd \ > + ninja-build \ > + openssh-client \ > + python3-numpy \ > + python3-opencv \ > + python3-venv > + > +ENV QEMU_CONFIGURE_OPTS $QEMU_CONFIGURE_OPTS > +ENV DEF_TARGET_LIST "none" > -- > 2.30.2 >