[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 12/12] tests/docker: add a debian-native image and make available
From: |
Alex Bennée |
Subject: |
[PULL 12/12] tests/docker: add a debian-native image and make available |
Date: |
Fri, 8 Oct 2021 13:25:56 +0100 |
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.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Anders Roxell <anders.roxell@linaro.org>
Acked-by: Willian Rampazzo <willianr@redhat.com>
Message-Id: <20210922151528.2192966-1-alex.bennee@linaro.org>
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 450c76a3ca..b9d4094c2e 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.bennee@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
- [PULL 01/12] configure: don't override the selected host test compiler if defined, (continued)
- [PULL 01/12] configure: don't override the selected host test compiler if defined, Alex Bennée, 2021/10/08
- [PULL 03/12] tests/tcg: move some multiarch files and make conditional, Alex Bennée, 2021/10/08
- [PULL 08/12] gitlab: fix passing of TEST_TARGETS env to cirrus, Alex Bennée, 2021/10/08
- [PULL 06/12] travis.yml: Remove the "Release tarball" job, Alex Bennée, 2021/10/08
- [PULL 04/12] tests/docker: promote debian-riscv64-cross to a full image, Alex Bennée, 2021/10/08
- [PULL 09/12] plugins/: Add missing functions to symbol list, Alex Bennée, 2021/10/08
- [PULL 11/12] .github: move repo lockdown to the v2 configuration, Alex Bennée, 2021/10/08
- [PULL 05/12] gitlab: Add cross-riscv64-system, cross-riscv64-user, Alex Bennée, 2021/10/08
- [PULL 07/12] gitlab: skip the check-patch job on the upstream repo, Alex Bennée, 2021/10/08
- [PULL 10/12] accel/tcg: re-factor plugin_inject_cb so we can assert insn_idx is valid, Alex Bennée, 2021/10/08
- [PULL 12/12] tests/docker: add a debian-native image and make available,
Alex Bennée <=
- Re: [PULL 00/12] some testing and plugin updates, Richard Henderson, 2021/10/08