aboutsummaryrefslogtreecommitdiff
path: root/tests/docker/dockerfiles
diff options
context:
space:
mode:
authorDaniel P. Berrangé <berrange@redhat.com>2023-11-20 15:08:20 +0000
committerAlex Bennée <alex.bennee@linaro.org>2023-11-23 11:55:32 +0000
commitaa5730b07ebcebf26206a4f70a5118dc469e1160 (patch)
tree876897198828cc70cac6b7c48259dc673138c8d7 /tests/docker/dockerfiles
parentb93c4313f2f40897bdafba15620c8fef6c20e721 (diff)
tests/docker: replace fedora-i386 with debian-i686
Fedora is gradually killing off i386 packages in its repos, via a death-by-1000-cuts process. Thus Debian looks like a better long term bet for i686 build testing. It has the added advantage that we can generate it via lcitool too. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20231107164109.1449014-1-berrange@redhat.com> [AJB: tweak commit msg, set correct prefix] Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20231120150833.2552739-2-alex.bennee@linaro.org>
Diffstat (limited to 'tests/docker/dockerfiles')
-rw-r--r--tests/docker/dockerfiles/debian-i686-cross.docker182
-rw-r--r--tests/docker/dockerfiles/fedora-i386-cross.docker40
2 files changed, 182 insertions, 40 deletions
diff --git a/tests/docker/dockerfiles/debian-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker
new file mode 100644
index 0000000000..3fc4e15acd
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-i686-cross.docker
@@ -0,0 +1,182 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --layers all --cross-arch i686 debian-11 qemu
+#
+# https://gitlab.com/libvirt/libvirt-ci
+
+FROM docker.io/library/debian:11-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ bash \
+ bc \
+ bison \
+ bsdextrautils \
+ bzip2 \
+ ca-certificates \
+ ccache \
+ dbus \
+ debianutils \
+ diffutils \
+ exuberant-ctags \
+ findutils \
+ flex \
+ gcc \
+ gcovr \
+ gettext \
+ git \
+ hostname \
+ libglib2.0-dev \
+ libpcre2-dev \
+ libsndio-dev \
+ libspice-protocol-dev \
+ llvm \
+ locales \
+ make \
+ meson \
+ mtools \
+ ncat \
+ ninja-build \
+ openssh-client \
+ pkgconf \
+ python3 \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-setuptools \
+ python3-sphinx \
+ python3-sphinx-rtd-theme \
+ python3-venv \
+ python3-wheel \
+ python3-yaml \
+ rpm2cpio \
+ sed \
+ socat \
+ sparse \
+ tar \
+ tesseract-ocr \
+ tesseract-ocr-eng \
+ xorriso \
+ zstd && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales
+
+RUN /usr/bin/pip3 install tomli
+
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture i386 && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ g++-i686-linux-gnu \
+ gcc-i686-linux-gnu \
+ libaio-dev:i386 \
+ libasan6:i386 \
+ libasound2-dev:i386 \
+ libattr1-dev:i386 \
+ libbpf-dev:i386 \
+ libbrlapi-dev:i386 \
+ libbz2-dev:i386 \
+ libc6-dev:i386 \
+ libcacard-dev:i386 \
+ libcap-ng-dev:i386 \
+ libcapstone-dev:i386 \
+ libcmocka-dev:i386 \
+ libcurl4-gnutls-dev:i386 \
+ libdaxctl-dev:i386 \
+ libdrm-dev:i386 \
+ libepoxy-dev:i386 \
+ libfdt-dev:i386 \
+ libffi-dev:i386 \
+ libfuse3-dev:i386 \
+ libgbm-dev:i386 \
+ libgcrypt20-dev:i386 \
+ libglib2.0-dev:i386 \
+ libglusterfs-dev:i386 \
+ libgnutls28-dev:i386 \
+ libgtk-3-dev:i386 \
+ libibumad-dev:i386 \
+ libibverbs-dev:i386 \
+ libiscsi-dev:i386 \
+ libjemalloc-dev:i386 \
+ libjpeg62-turbo-dev:i386 \
+ libjson-c-dev:i386 \
+ liblttng-ust-dev:i386 \
+ liblzo2-dev:i386 \
+ libncursesw5-dev:i386 \
+ libnfs-dev:i386 \
+ libnuma-dev:i386 \
+ libpam0g-dev:i386 \
+ libpipewire-0.3-dev:i386 \
+ libpixman-1-dev:i386 \
+ libpng-dev:i386 \
+ libpulse-dev:i386 \
+ librbd-dev:i386 \
+ librdmacm-dev:i386 \
+ libsasl2-dev:i386 \
+ libsdl2-dev:i386 \
+ libsdl2-image-dev:i386 \
+ libseccomp-dev:i386 \
+ libselinux1-dev:i386 \
+ libslirp-dev:i386 \
+ libsnappy-dev:i386 \
+ libspice-server-dev:i386 \
+ libssh-gcrypt-dev:i386 \
+ libsystemd-dev:i386 \
+ libtasn1-6-dev:i386 \
+ libubsan1:i386 \
+ libudev-dev:i386 \
+ liburing-dev:i386 \
+ libusb-1.0-0-dev:i386 \
+ libusbredirhost-dev:i386 \
+ libvdeplug-dev:i386 \
+ libvirglrenderer-dev:i386 \
+ libvte-2.91-dev:i386 \
+ libzstd-dev:i386 \
+ nettle-dev:i386 \
+ systemtap-sdt-dev:i386 \
+ xfslibs-dev:i386 \
+ zlib1g-dev:i386 && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ printf "[binaries]\n\
+c = '/usr/bin/i686-linux-gnu-gcc'\n\
+ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/i686-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'x86'\n\
+cpu = 'i686'\n\
+endian = 'little'\n" > /usr/local/share/meson/cross/i686-linux-gnu && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-c++ && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-g++ && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc
+
+ENV ABI "i686-linux-gnu"
+ENV MESON_OPTS "--cross-file=i686-linux-gnu"
+ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-linux-gnu-
+ENV DEF_TARGET_LIST x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user
+# As a final step configure the user (if env is defined)
+ARG USER
+ARG UID
+RUN if [ "${USER}" ]; then \
+ id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
diff --git a/tests/docker/dockerfiles/fedora-i386-cross.docker b/tests/docker/dockerfiles/fedora-i386-cross.docker
deleted file mode 100644
index b59a9115c4..0000000000
--- a/tests/docker/dockerfiles/fedora-i386-cross.docker
+++ /dev/null
@@ -1,40 +0,0 @@
-FROM registry.fedoraproject.org/fedora:34
-
-ENV PACKAGES \
- bison \
- bzip2 \
- ccache \
- diffutils \
- flex \
- findutils \
- gcc \
- git \
- libfdt-devel.i686 \
- libffi-devel.i686 \
- libselinux-devel.i686 \
- libtasn1-devel.i686 \
- libzstd-devel.i686 \
- make \
- meson \
- ninja-build \
- glib2-devel.i686 \
- glibc-devel.i686 \
- glibc-static.i686 \
- gnutls-devel.i686 \
- nettle-devel.i686 \
- pcre-devel.i686 \
- pixman-devel.i686 \
- python3-tomli \
- sysprof-capture-devel.i686 \
- zlib-devel.i686
-
-ENV QEMU_CONFIGURE_OPTS --cpu=i386 --disable-vhost-user
-ENV PKG_CONFIG_LIBDIR /usr/lib/pkgconfig
-
-RUN dnf update -y && dnf install -y $PACKAGES
-RUN rpm -q $PACKAGES | sort > /packages.txt
-# As a final step configure the user (if env is defined)
-ARG USER
-ARG UID
-RUN if [ "${USER}" ]; then \
- id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi