Commit 8bccc09bfb for qemu.org
commit 8bccc09bfb9a345094ecc91b22995506d50e0421
Author: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Date: Wed Jun 10 12:22:19 2026 -0700
tests: add ubuntu 2404
Reviewed-by: Philippe Mathieu-Daudé <philmd@mailo.com>
Link: https://lore.kernel.org/qemu-devel/20260610192222.2709135-3-pierrick.bouvier@oss.qualcomm.com
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
new file mode 100644
index 0000000000..26bc2dd94f
--- /dev/null
+++ b/tests/docker/dockerfiles/ubuntu2404.docker
@@ -0,0 +1,172 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --layers all ubuntu-2404 qemu
+#
+# https://gitlab.com/libvirt/libvirt-ci
+
+FROM docker.io/library/ubuntu:24.04
+
+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 \
+ bindgen \
+ bison \
+ bsdextrautils \
+ bzip2 \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ dbus \
+ debianutils \
+ diffutils \
+ exuberant-ctags \
+ findutils \
+ flex \
+ gcc \
+ gcovr \
+ gettext \
+ git \
+ hostname \
+ libaio-dev \
+ libasan8 \
+ libasound2-dev \
+ libattr1-dev \
+ libbpf-dev \
+ libbrlapi-dev \
+ libbz2-dev \
+ libc6-dev \
+ libcacard-dev \
+ libcap-ng-dev \
+ libcapstone-dev \
+ libcbor-dev \
+ libclang-rt-dev \
+ libcmocka-dev \
+ libcurl4-gnutls-dev \
+ libdaxctl-dev \
+ libdrm-dev \
+ libepoxy-dev \
+ libfdt-dev \
+ libffi-dev \
+ libfuse3-dev \
+ libgbm-dev \
+ libgcrypt20-dev \
+ libglib2.0-dev \
+ libgnutls28-dev \
+ libgtk-3-dev \
+ libgtk-vnc-2.0-dev \
+ libibverbs-dev \
+ libiscsi-dev \
+ libjemalloc-dev \
+ libjpeg-turbo8-dev \
+ libjson-c-dev \
+ liblttng-ust-dev \
+ liblzo2-dev \
+ libncursesw5-dev \
+ libnfs-dev \
+ libnuma-dev \
+ libpam0g-dev \
+ libpcre2-dev \
+ libpipewire-0.3-dev \
+ libpixman-1-dev \
+ libpmem-dev \
+ libpng-dev \
+ libpulse-dev \
+ librbd-dev \
+ librdmacm-dev \
+ libsasl2-dev \
+ libsdl2-dev \
+ libsdl2-image-dev \
+ libseccomp-dev \
+ libselinux1-dev \
+ libslirp-dev \
+ libsnappy-dev \
+ libsndio-dev \
+ libspice-protocol-dev \
+ libspice-server-dev \
+ libssh-dev \
+ libstd-rust-dev \
+ libsystemd-dev \
+ libtasn1-6-dev \
+ libubsan1 \
+ libudev-dev \
+ liburing-dev \
+ libusb-1.0-0-dev \
+ libusbredirhost-dev \
+ libvdeplug-dev \
+ libvirglrenderer-dev \
+ libvte-2.91-dev \
+ libxdp-dev \
+ libxen-dev \
+ libzstd-dev \
+ llvm \
+ locales \
+ make \
+ mtools \
+ multipath-tools \
+ nettle-dev \
+ ninja-build \
+ openssh-client \
+ pkgconf \
+ python3 \
+ python3-numpy \
+ python3-opencv \
+ python3-pillow \
+ python3-pip \
+ python3-setuptools \
+ python3-sphinx \
+ python3-sphinx-rtd-theme \
+ python3-tomli \
+ python3-venv \
+ python3-wheel \
+ python3-yaml \
+ rpm2cpio \
+ rustc-1.83 \
+ sed \
+ socat \
+ sparse \
+ swtpm \
+ systemtap-sdt-dev \
+ tar \
+ tesseract-ocr \
+ tesseract-ocr-eng \
+ vulkan-tools \
+ xorriso \
+ zlib1g-dev \
+ 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 && \
+ rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
+ 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/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
+
+RUN /usr/bin/pip3 install meson==1.8.1
+
+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"
+ENV RUSTC=/usr/bin/rustc-1.83
+ENV RUSTDOC=/usr/bin/rustdoc-1.83
+ENV CARGO_HOME=/usr/local/cargo
+ENV PATH=$CARGO_HOME/bin:$PATH
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+ apt install -y --no-install-recommends cargo
+RUN cargo install --locked bindgen-cli
+# 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
+
+ENV ENABLE_RUST=1
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index fa545cf1f4..26abc69573 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -151,7 +151,7 @@ fedora_rustup_nightly_extras = [
'RUN $CARGO --list\n',
]
-ubuntu2204_rust_extras = [
+ubuntu2404_rust_extras = [
"ENV RUSTC=/usr/bin/rustc-1.83\n",
"ENV RUSTDOC=/usr/bin/rustdoc-1.83\n",
"ENV CARGO_HOME=/usr/local/cargo\n",
@@ -229,8 +229,10 @@ try:
trailer="".join(debian13_extras))
generate_dockerfile("fedora", "fedora-43")
generate_dockerfile("opensuse-leap", "opensuse-leap-16")
+ generate_dockerfile("ubuntu2404", "ubuntu-2404",
+ trailer="".join(ubuntu2404_rust_extras))
generate_dockerfile("ubuntu2204", "ubuntu-2204",
- trailer="".join(ubuntu2204_rust_extras),
+ trailer="".join(ubuntu2404_rust_extras),
# https://bugs.launchpad.net/ubuntu/+source/rustc-1.83/+bug/2120318
enable_rust=False)