From 89dd8c4faac660ffde8f429d1f3699d1c4541b94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:06 +0000 Subject: [PATCH 01/18] tests/docker: drop --link from COPYs in emsdk docker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As we need to build images in both docker and podman lets not have any incompatibilities. I don't think it makes any major difference. Reviewed-by: Kohei Tokunaga Message-ID: <20251117115523.3993105-2-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/emsdk-wasm32-cross.docker | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/docker/dockerfiles/emsdk-wasm32-cross.docker b/tests/docker/dockerfiles/emsdk-wasm32-cross.docker index 6b1642a207..1f08eb0b85 100644 --- a/tests/docker/dockerfiles/emsdk-wasm32-cross.docker +++ b/tests/docker/dockerfiles/emsdk-wasm32-cross.docker @@ -115,8 +115,8 @@ RUN mkdir -p /glib RUN curl -Lks https://download.gnome.org/sources/glib/${GLIB_MINOR_VERSION}/glib-$GLIB_VERSION.tar.xz | \ tar xJC /glib --strip-components=1 -COPY --link --from=zlib-dev /builddeps/ /builddeps/ -COPY --link --from=libffi-dev /builddeps/ /builddeps/ +COPY --from=zlib-dev /builddeps/ /builddeps/ +COPY --from=libffi-dev /builddeps/ /builddeps/ WORKDIR /glib RUN < Date: Mon, 17 Nov 2025 11:55:07 +0000 Subject: [PATCH 02/18] libvirt-ci: bump libvirt-ci to latest version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We will need the latest version to add coreutils in the next commit. As libvirt has updated the handling of ENV variables this brings a little bit of churn to the docker images. Reviewed-by: Daniel P. Berrangé Message-ID: <20251117115523.3993105-3-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/alpine.docker | 10 +++++----- tests/docker/dockerfiles/centos9.docker | 10 +++++----- .../dockerfiles/debian-amd64-cross.docker | 16 ++++++++-------- .../dockerfiles/debian-arm64-cross.docker | 16 ++++++++-------- .../dockerfiles/debian-armhf-cross.docker | 16 ++++++++-------- .../dockerfiles/debian-i686-cross.docker | 16 ++++++++-------- .../dockerfiles/debian-mips64el-cross.docker | 16 ++++++++-------- .../dockerfiles/debian-mipsel-cross.docker | 16 ++++++++-------- .../dockerfiles/debian-ppc64el-cross.docker | 16 ++++++++-------- .../dockerfiles/debian-riscv64-cross.docker | 19 ++++++++----------- .../dockerfiles/debian-s390x-cross.docker | 16 ++++++++-------- tests/docker/dockerfiles/debian.docker | 10 +++++----- .../dockerfiles/fedora-rust-nightly.docker | 10 +++++----- .../dockerfiles/fedora-win64-cross.docker | 14 +++++++------- tests/docker/dockerfiles/fedora.docker | 10 +++++----- tests/docker/dockerfiles/opensuse-leap.docker | 10 +++++----- tests/docker/dockerfiles/ubuntu2204.docker | 10 +++++----- tests/lcitool/libvirt-ci | 2 +- 18 files changed, 115 insertions(+), 118 deletions(-) diff --git a/tests/docker/dockerfiles/alpine.docker b/tests/docker/dockerfiles/alpine.docker index 52adf9ccbb..1da375c915 100644 --- a/tests/docker/dockerfiles/alpine.docker +++ b/tests/docker/dockerfiles/alpine.docker @@ -126,11 +126,11 @@ RUN apk update && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc -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 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" # https://gitlab.alpinelinux.org/alpine/aports/-/issues/17463 RUN apk add clang19-libclang # As a final step configure the user (if env is defined) diff --git a/tests/docker/dockerfiles/centos9.docker b/tests/docker/dockerfiles/centos9.docker index 0674d77826..ff3e8069b4 100644 --- a/tests/docker/dockerfiles/centos9.docker +++ b/tests/docker/dockerfiles/centos9.docker @@ -132,11 +132,11 @@ RUN dnf distro-sync -y && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc -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 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" # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker index 7f4674400d..26a3994012 100644 --- a/tests/docker/dockerfiles/debian-amd64-cross.docker +++ b/tests/docker/dockerfiles/debian-amd64-cross.docker @@ -72,11 +72,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ 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 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 amd64 && \ @@ -178,9 +178,9 @@ endian = 'little'\n" > /usr/local/share/meson/cross/x86_64-linux-gnu && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-linux-gnu-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-linux-gnu-gcc -ENV ABI "x86_64-linux-gnu" -ENV MESON_OPTS "--cross-file=x86_64-linux-gnu" -ENV RUST_TARGET "x86_64-unknown-linux-gnu" +ENV ABI="x86_64-linux-gnu" +ENV MESON_OPTS="--cross-file=x86_64-linux-gnu" +ENV RUST_TARGET="x86_64-unknown-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) diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker index c7cd54ee5c..4b0163fa1b 100644 --- a/tests/docker/dockerfiles/debian-arm64-cross.docker +++ b/tests/docker/dockerfiles/debian-arm64-cross.docker @@ -72,11 +72,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ 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 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 arm64 && \ @@ -177,9 +177,9 @@ endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-linux-gnu && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-gcc -ENV ABI "aarch64-linux-gnu" -ENV MESON_OPTS "--cross-file=aarch64-linux-gnu" -ENV RUST_TARGET "aarch64-unknown-linux-gnu" +ENV ABI="aarch64-linux-gnu" +ENV MESON_OPTS="--cross-file=aarch64-linux-gnu" +ENV RUST_TARGET="aarch64-unknown-linux-gnu" ENV QEMU_CONFIGURE_OPTS --cross-prefix=aarch64-linux-gnu- ENV DEF_TARGET_LIST aarch64-softmmu,aarch64-linux-user # As a final step configure the user (if env is defined) diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker index 627d41c6de..742031ce0a 100644 --- a/tests/docker/dockerfiles/debian-armhf-cross.docker +++ b/tests/docker/dockerfiles/debian-armhf-cross.docker @@ -72,11 +72,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ 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 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 armhf && \ @@ -174,9 +174,9 @@ endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc -ENV ABI "arm-linux-gnueabihf" -ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf" -ENV RUST_TARGET "armv7-unknown-linux-gnueabihf" +ENV ABI="arm-linux-gnueabihf" +ENV MESON_OPTS="--cross-file=arm-linux-gnueabihf" +ENV RUST_TARGET="armv7-unknown-linux-gnueabihf" ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabihf- ENV DEF_TARGET_LIST arm-softmmu,arm-linux-user # As a final step configure the user (if env is defined) diff --git a/tests/docker/dockerfiles/debian-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker index 2998764065..1ccfde2e4b 100644 --- a/tests/docker/dockerfiles/debian-i686-cross.docker +++ b/tests/docker/dockerfiles/debian-i686-cross.docker @@ -72,11 +72,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ 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 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 && \ @@ -174,9 +174,9 @@ endian = 'little'\n" > /usr/local/share/meson/cross/i686-linux-gnu && \ 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-gcc -ENV ABI "i686-linux-gnu" -ENV MESON_OPTS "--cross-file=i686-linux-gnu" -ENV RUST_TARGET "i686-unknown-linux-gnu" +ENV ABI="i686-linux-gnu" +ENV MESON_OPTS="--cross-file=i686-linux-gnu" +ENV RUST_TARGET="i686-unknown-linux-gnu" ENV QEMU_CONFIGURE_OPTS --cross-prefix=i686-linux-gnu- ENV DEF_TARGET_LIST i386-softmmu,i386-linux-user # As a final step configure the user (if env is defined) diff --git a/tests/docker/dockerfiles/debian-mips64el-cross.docker b/tests/docker/dockerfiles/debian-mips64el-cross.docker index 6e88777f76..eeb77212d5 100644 --- a/tests/docker/dockerfiles/debian-mips64el-cross.docker +++ b/tests/docker/dockerfiles/debian-mips64el-cross.docker @@ -71,11 +71,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ 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 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 mips64el && \ @@ -173,9 +173,9 @@ endian = 'little'\n" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-gcc -ENV ABI "mips64el-linux-gnuabi64" -ENV MESON_OPTS "--cross-file=mips64el-linux-gnuabi64" -ENV RUST_TARGET "mips64el-unknown-linux-gnuabi64" +ENV ABI="mips64el-linux-gnuabi64" +ENV MESON_OPTS="--cross-file=mips64el-linux-gnuabi64" +ENV RUST_TARGET="mips64el-unknown-linux-gnuabi64" ENV QEMU_CONFIGURE_OPTS --cross-prefix=mips64el-linux-gnuabi64- ENV DEF_TARGET_LIST mips64el-softmmu,mips64el-linux-user # As a final step configure the user (if env is defined) diff --git a/tests/docker/dockerfiles/debian-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker index 5f4e3fa963..9b3dca44f1 100644 --- a/tests/docker/dockerfiles/debian-mipsel-cross.docker +++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker @@ -71,11 +71,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ 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 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 mipsel && \ @@ -173,9 +173,9 @@ endian = 'little'\n" > /usr/local/share/meson/cross/mipsel-linux-gnu && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-gcc -ENV ABI "mipsel-linux-gnu" -ENV MESON_OPTS "--cross-file=mipsel-linux-gnu" -ENV RUST_TARGET "mipsel-unknown-linux-gnu" +ENV ABI="mipsel-linux-gnu" +ENV MESON_OPTS="--cross-file=mipsel-linux-gnu" +ENV RUST_TARGET="mipsel-unknown-linux-gnu" ENV QEMU_CONFIGURE_OPTS --cross-prefix=mipsel-linux-gnu- ENV DEF_TARGET_LIST mipsel-softmmu,mipsel-linux-user # As a final step configure the user (if env is defined) diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker index dfa690616d..15c6b436d3 100644 --- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker +++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker @@ -72,11 +72,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ 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 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 ppc64el && \ @@ -176,9 +176,9 @@ endian = 'little'\n" > /usr/local/share/meson/cross/powerpc64le-linux-gnu && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-gcc -ENV ABI "powerpc64le-linux-gnu" -ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu" -ENV RUST_TARGET "powerpc64le-unknown-linux-gnu" +ENV ABI="powerpc64le-linux-gnu" +ENV MESON_OPTS="--cross-file=powerpc64le-linux-gnu" +ENV RUST_TARGET="powerpc64le-unknown-linux-gnu" ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc64le-linux-gnu- ENV DEF_TARGET_LIST ppc64-softmmu,ppc64-linux-user # As a final step configure the user (if env is defined) diff --git a/tests/docker/dockerfiles/debian-riscv64-cross.docker b/tests/docker/dockerfiles/debian-riscv64-cross.docker index 09b2953f32..2591c4adc9 100644 --- a/tests/docker/dockerfiles/debian-riscv64-cross.docker +++ b/tests/docker/dockerfiles/debian-riscv64-cross.docker @@ -72,17 +72,14 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ 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 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 riscv64 && \ - eatmydata apt-get install debian-ports-archive-keyring && \ - eatmydata echo 'deb http://ftp.ports.debian.org/debian-ports/ sid main' > /etc/apt/sources.list.d/ports.list && \ - eatmydata echo 'deb http://ftp.ports.debian.org/debian-ports/ unreleased main' >> /etc/apt/sources.list.d/ports.list && \ eatmydata apt-get update && \ eatmydata apt-get dist-upgrade -y && \ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ @@ -179,9 +176,9 @@ endian = 'little'\n" > /usr/local/share/meson/cross/riscv64-linux-gnu && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/riscv64-linux-gnu-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/riscv64-linux-gnu-gcc -ENV ABI "riscv64-linux-gnu" -ENV MESON_OPTS "--cross-file=riscv64-linux-gnu" -ENV RUST_TARGET "riscv64gc-unknown-linux-gnu" +ENV ABI="riscv64-linux-gnu" +ENV MESON_OPTS="--cross-file=riscv64-linux-gnu" +ENV RUST_TARGET="riscv64gc-unknown-linux-gnu" ENV QEMU_CONFIGURE_OPTS --cross-prefix=riscv64-linux-gnu- ENV DEF_TARGET_LIST riscv64-softmmu,riscv64-linux-user # As a final step configure the user (if env is defined) diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker index 09a78c15ba..57aa3209c5 100644 --- a/tests/docker/dockerfiles/debian-s390x-cross.docker +++ b/tests/docker/dockerfiles/debian-s390x-cross.docker @@ -72,11 +72,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ 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 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 s390x && \ @@ -175,9 +175,9 @@ endian = 'big'\n" > /usr/local/share/meson/cross/s390x-linux-gnu && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-gcc -ENV ABI "s390x-linux-gnu" -ENV MESON_OPTS "--cross-file=s390x-linux-gnu" -ENV RUST_TARGET "s390x-unknown-linux-gnu" +ENV ABI="s390x-linux-gnu" +ENV MESON_OPTS="--cross-file=s390x-linux-gnu" +ENV RUST_TARGET="s390x-unknown-linux-gnu" ENV QEMU_CONFIGURE_OPTS --cross-prefix=s390x-linux-gnu- ENV DEF_TARGET_LIST s390x-softmmu,s390x-linux-user # As a final step configure the user (if env is defined) diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker index 8dd893be4b..bbb920c681 100644 --- a/tests/docker/dockerfiles/debian.docker +++ b/tests/docker/dockerfiles/debian.docker @@ -152,11 +152,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ 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 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" # netmap/cscope/global RUN DEBIAN_FRONTEND=noninteractive eatmydata \ apt install -y --no-install-recommends \ diff --git a/tests/docker/dockerfiles/fedora-rust-nightly.docker b/tests/docker/dockerfiles/fedora-rust-nightly.docker index 7d31c9f406..e4233b53cb 100644 --- a/tests/docker/dockerfiles/fedora-rust-nightly.docker +++ b/tests/docker/dockerfiles/fedora-rust-nightly.docker @@ -152,11 +152,11 @@ exec "$@"\n' > /usr/bin/nosync && \ 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 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 dnf install -y wget ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo ENV RUSTC=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc diff --git a/tests/docker/dockerfiles/fedora-win64-cross.docker b/tests/docker/dockerfiles/fedora-win64-cross.docker index c76a70c368..e6f84dd556 100644 --- a/tests/docker/dockerfiles/fedora-win64-cross.docker +++ b/tests/docker/dockerfiles/fedora-win64-cross.docker @@ -72,11 +72,11 @@ exec "$@"\n' > /usr/bin/nosync && \ 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 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 nosync dnf install -y \ mingw-w64-tools \ @@ -110,8 +110,8 @@ RUN nosync dnf install -y \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-g++ && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-gcc -ENV ABI "x86_64-w64-mingw32" -ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw64.meson" +ENV ABI="x86_64-w64-mingw32" +ENV MESON_OPTS="--cross-file=/usr/share/mingw/toolchain-mingw64.meson" ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-w64-mingw32- ENV DEF_TARGET_LIST x86_64-softmmu # As a final step configure the user (if env is defined) diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker index 891a740fcb..632259378c 100644 --- a/tests/docker/dockerfiles/fedora.docker +++ b/tests/docker/dockerfiles/fedora.docker @@ -152,11 +152,11 @@ exec "$@"\n' > /usr/bin/nosync && \ 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 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" # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/opensuse-leap.docker b/tests/docker/dockerfiles/opensuse-leap.docker index 75e1747780..def0ca9db4 100644 --- a/tests/docker/dockerfiles/opensuse-leap.docker +++ b/tests/docker/dockerfiles/opensuse-leap.docker @@ -138,11 +138,11 @@ RUN /usr/bin/pip3.11 install \ sphinx \ sphinx-rtd-theme -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.11" +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.11" # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/ubuntu2204.docker b/tests/docker/dockerfiles/ubuntu2204.docker index 602d419624..c8cc624929 100644 --- a/tests/docker/dockerfiles/ubuntu2204.docker +++ b/tests/docker/dockerfiles/ubuntu2204.docker @@ -150,11 +150,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ 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 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 diff --git a/tests/lcitool/libvirt-ci b/tests/lcitool/libvirt-ci index 9da20ff7c3..caed407a0f 160000 --- a/tests/lcitool/libvirt-ci +++ b/tests/lcitool/libvirt-ci @@ -1 +1 @@ -Subproject commit 9da20ff7c3bc9067804a7561c2ff87583b434853 +Subproject commit caed407a0f1dfe3a3293a41c378c382deefbac36 From 03025667c0dd1d7ce4c77d12d6374670dd0a8e42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:08 +0000 Subject: [PATCH 03/18] tests/lcitool: update ENV stanzas outputted by refresh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now lcitool has been updated to use the non-legacy ENVs we should do the same for what refresh adds. Reviewed-by: Daniel P. Berrangé Message-ID: <20251117115523.3993105-4-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- tests/docker/dockerfiles/debian-amd64-cross.docker | 4 ++-- tests/docker/dockerfiles/debian-arm64-cross.docker | 4 ++-- tests/docker/dockerfiles/debian-armhf-cross.docker | 4 ++-- tests/docker/dockerfiles/debian-i686-cross.docker | 4 ++-- tests/docker/dockerfiles/debian-mips64el-cross.docker | 4 ++-- tests/docker/dockerfiles/debian-mipsel-cross.docker | 4 ++-- tests/docker/dockerfiles/debian-ppc64el-cross.docker | 4 ++-- tests/docker/dockerfiles/debian-riscv64-cross.docker | 4 ++-- tests/docker/dockerfiles/debian-s390x-cross.docker | 4 ++-- tests/docker/dockerfiles/debian.docker | 2 +- tests/docker/dockerfiles/fedora-win64-cross.docker | 4 ++-- tests/lcitool/refresh | 6 +++--- 12 files changed, 24 insertions(+), 24 deletions(-) diff --git a/tests/docker/dockerfiles/debian-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker index 26a3994012..c38ab8247d 100644 --- a/tests/docker/dockerfiles/debian-amd64-cross.docker +++ b/tests/docker/dockerfiles/debian-amd64-cross.docker @@ -181,8 +181,8 @@ endian = 'little'\n" > /usr/local/share/meson/cross/x86_64-linux-gnu && \ ENV ABI="x86_64-linux-gnu" ENV MESON_OPTS="--cross-file=x86_64-linux-gnu" ENV RUST_TARGET="x86_64-unknown-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 +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 diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker index 4b0163fa1b..2f62da0f5e 100644 --- a/tests/docker/dockerfiles/debian-arm64-cross.docker +++ b/tests/docker/dockerfiles/debian-arm64-cross.docker @@ -180,8 +180,8 @@ endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-linux-gnu && \ ENV ABI="aarch64-linux-gnu" ENV MESON_OPTS="--cross-file=aarch64-linux-gnu" ENV RUST_TARGET="aarch64-unknown-linux-gnu" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=aarch64-linux-gnu- -ENV DEF_TARGET_LIST aarch64-softmmu,aarch64-linux-user +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=aarch64-linux-gnu- +ENV DEF_TARGET_LIST=aarch64-softmmu,aarch64-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker index 742031ce0a..62e297f5d1 100644 --- a/tests/docker/dockerfiles/debian-armhf-cross.docker +++ b/tests/docker/dockerfiles/debian-armhf-cross.docker @@ -177,8 +177,8 @@ endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \ ENV ABI="arm-linux-gnueabihf" ENV MESON_OPTS="--cross-file=arm-linux-gnueabihf" ENV RUST_TARGET="armv7-unknown-linux-gnueabihf" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabihf- -ENV DEF_TARGET_LIST arm-softmmu,arm-linux-user +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=arm-linux-gnueabihf- +ENV DEF_TARGET_LIST=arm-softmmu,arm-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker index 1ccfde2e4b..eb9a915d49 100644 --- a/tests/docker/dockerfiles/debian-i686-cross.docker +++ b/tests/docker/dockerfiles/debian-i686-cross.docker @@ -177,8 +177,8 @@ endian = 'little'\n" > /usr/local/share/meson/cross/i686-linux-gnu && \ ENV ABI="i686-linux-gnu" ENV MESON_OPTS="--cross-file=i686-linux-gnu" ENV RUST_TARGET="i686-unknown-linux-gnu" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=i686-linux-gnu- -ENV DEF_TARGET_LIST i386-softmmu,i386-linux-user +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=i686-linux-gnu- +ENV DEF_TARGET_LIST=i386-softmmu,i386-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-mips64el-cross.docker b/tests/docker/dockerfiles/debian-mips64el-cross.docker index eeb77212d5..42e8444d15 100644 --- a/tests/docker/dockerfiles/debian-mips64el-cross.docker +++ b/tests/docker/dockerfiles/debian-mips64el-cross.docker @@ -176,8 +176,8 @@ endian = 'little'\n" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 && \ ENV ABI="mips64el-linux-gnuabi64" ENV MESON_OPTS="--cross-file=mips64el-linux-gnuabi64" ENV RUST_TARGET="mips64el-unknown-linux-gnuabi64" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=mips64el-linux-gnuabi64- -ENV DEF_TARGET_LIST mips64el-softmmu,mips64el-linux-user +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=mips64el-linux-gnuabi64- +ENV DEF_TARGET_LIST=mips64el-softmmu,mips64el-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker index 9b3dca44f1..1ab197b144 100644 --- a/tests/docker/dockerfiles/debian-mipsel-cross.docker +++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker @@ -176,8 +176,8 @@ endian = 'little'\n" > /usr/local/share/meson/cross/mipsel-linux-gnu && \ ENV ABI="mipsel-linux-gnu" ENV MESON_OPTS="--cross-file=mipsel-linux-gnu" ENV RUST_TARGET="mipsel-unknown-linux-gnu" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=mipsel-linux-gnu- -ENV DEF_TARGET_LIST mipsel-softmmu,mipsel-linux-user +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=mipsel-linux-gnu- +ENV DEF_TARGET_LIST=mipsel-softmmu,mipsel-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker index 15c6b436d3..85d2c0ffdc 100644 --- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker +++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker @@ -179,8 +179,8 @@ endian = 'little'\n" > /usr/local/share/meson/cross/powerpc64le-linux-gnu && \ ENV ABI="powerpc64le-linux-gnu" ENV MESON_OPTS="--cross-file=powerpc64le-linux-gnu" ENV RUST_TARGET="powerpc64le-unknown-linux-gnu" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc64le-linux-gnu- -ENV DEF_TARGET_LIST ppc64-softmmu,ppc64-linux-user +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=powerpc64le-linux-gnu- +ENV DEF_TARGET_LIST=ppc64-softmmu,ppc64-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-riscv64-cross.docker b/tests/docker/dockerfiles/debian-riscv64-cross.docker index 2591c4adc9..4f01eecf41 100644 --- a/tests/docker/dockerfiles/debian-riscv64-cross.docker +++ b/tests/docker/dockerfiles/debian-riscv64-cross.docker @@ -179,8 +179,8 @@ endian = 'little'\n" > /usr/local/share/meson/cross/riscv64-linux-gnu && \ ENV ABI="riscv64-linux-gnu" ENV MESON_OPTS="--cross-file=riscv64-linux-gnu" ENV RUST_TARGET="riscv64gc-unknown-linux-gnu" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=riscv64-linux-gnu- -ENV DEF_TARGET_LIST riscv64-softmmu,riscv64-linux-user +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=riscv64-linux-gnu- +ENV DEF_TARGET_LIST=riscv64-softmmu,riscv64-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker index 57aa3209c5..2a3046e785 100644 --- a/tests/docker/dockerfiles/debian-s390x-cross.docker +++ b/tests/docker/dockerfiles/debian-s390x-cross.docker @@ -178,8 +178,8 @@ endian = 'big'\n" > /usr/local/share/meson/cross/s390x-linux-gnu && \ ENV ABI="s390x-linux-gnu" ENV MESON_OPTS="--cross-file=s390x-linux-gnu" ENV RUST_TARGET="s390x-unknown-linux-gnu" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=s390x-linux-gnu- -ENV DEF_TARGET_LIST s390x-softmmu,s390x-linux-user +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=s390x-linux-gnu- +ENV DEF_TARGET_LIST=s390x-softmmu,s390x-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker index bbb920c681..c1817f162f 100644 --- a/tests/docker/dockerfiles/debian.docker +++ b/tests/docker/dockerfiles/debian.docker @@ -169,7 +169,7 @@ RUN cd /usr/src/netmap/LINUX && \ ./configure --no-drivers --no-apps \ --kernel-dir=$(ls -d /usr/src/linux-headers-*-$(dpkg --print-architecture)) \ && make install -ENV QEMU_CONFIGURE_OPTS --enable-netmap +ENV QEMU_CONFIGURE_OPTS=--enable-netmap # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/fedora-win64-cross.docker b/tests/docker/dockerfiles/fedora-win64-cross.docker index e6f84dd556..1da425768f 100644 --- a/tests/docker/dockerfiles/fedora-win64-cross.docker +++ b/tests/docker/dockerfiles/fedora-win64-cross.docker @@ -112,8 +112,8 @@ RUN nosync dnf install -y \ ENV ABI="x86_64-w64-mingw32" ENV MESON_OPTS="--cross-file=/usr/share/mingw/toolchain-mingw64.meson" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-w64-mingw32- -ENV DEF_TARGET_LIST x86_64-softmmu +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=x86_64-w64-mingw32- +ENV DEF_TARGET_LIST=x86_64-softmmu # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh index df186caffe..3a31fcfee9 100755 --- a/tests/lcitool/refresh +++ b/tests/lcitool/refresh @@ -121,7 +121,7 @@ debian13_extras = [ " ./configure --no-drivers --no-apps \\\n", " --kernel-dir=$(ls -d /usr/src/linux-headers-*-$(dpkg --print-architecture)) \\\n", " && make install\n", - "ENV QEMU_CONFIGURE_OPTS --enable-netmap\n" + "ENV QEMU_CONFIGURE_OPTS=--enable-netmap\n" ] # Based on the hub.docker.com/library/rust Dockerfiles @@ -162,8 +162,8 @@ ubuntu2204_rust_extras = [ ] def cross_build(prefix, targets): - conf = "ENV QEMU_CONFIGURE_OPTS --cross-prefix=%s\n" % (prefix) - targets = "ENV DEF_TARGET_LIST %s\n" % (targets) + conf = "ENV QEMU_CONFIGURE_OPTS=--cross-prefix=%s\n" % (prefix) + targets = "ENV DEF_TARGET_LIST=%s\n" % (targets) return "".join([conf, targets]) # From 556386b0aea625b86f5e4f70f55f0770e9df475e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:09 +0000 Subject: [PATCH 04/18] tests/docker: add coreutils to the package list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We need coreutils to run the IO tests so we need to include it in the package list. Now we have the latest libvirt we can do that. Reviewed-by: Daniel P. Berrangé Message-ID: <20251117115523.3993105-5-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- .gitlab-ci.d/cirrus/freebsd-14.vars | 2 +- .gitlab-ci.d/cirrus/macos-14.vars | 2 +- scripts/ci/setup/debian/debian-13-ppc64le.yaml | 1 + scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml | 1 + scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml | 1 + tests/docker/dockerfiles/alpine.docker | 1 + tests/docker/dockerfiles/centos9.docker | 1 + tests/docker/dockerfiles/debian-amd64-cross.docker | 1 + tests/docker/dockerfiles/debian-arm64-cross.docker | 1 + tests/docker/dockerfiles/debian-armhf-cross.docker | 1 + tests/docker/dockerfiles/debian-i686-cross.docker | 1 + tests/docker/dockerfiles/debian-mips64el-cross.docker | 1 + tests/docker/dockerfiles/debian-mipsel-cross.docker | 1 + tests/docker/dockerfiles/debian-ppc64el-cross.docker | 1 + tests/docker/dockerfiles/debian-riscv64-cross.docker | 1 + tests/docker/dockerfiles/debian-s390x-cross.docker | 1 + tests/docker/dockerfiles/debian.docker | 1 + tests/docker/dockerfiles/fedora-rust-nightly.docker | 1 + tests/docker/dockerfiles/fedora-win64-cross.docker | 1 + tests/docker/dockerfiles/fedora.docker | 1 + tests/docker/dockerfiles/opensuse-leap.docker | 1 + tests/docker/dockerfiles/ubuntu2204.docker | 1 + tests/lcitool/projects/qemu.yml | 1 + tests/vm/generated/freebsd.json | 1 + 24 files changed, 24 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.d/cirrus/freebsd-14.vars b/.gitlab-ci.d/cirrus/freebsd-14.vars index 19ca0d3663..6477440ef3 100644 --- a/.gitlab-ci.d/cirrus/freebsd-14.vars +++ b/.gitlab-ci.d/cirrus/freebsd-14.vars @@ -11,6 +11,6 @@ MAKE='/usr/local/bin/gmake' NINJA='/usr/local/bin/ninja' PACKAGING_COMMAND='pkg' PIP3='/usr/local/bin/pip' -PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache4 cmocka ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk-vnc gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson mtools ncurses nettle ninja opencv pixman pkgconf png py311-numpy py311-pillow py311-pip py311-pyyaml py311-sphinx py311-sphinx_rtd_theme py311-tomli python3 rpm2cpio rust rust-bindgen-cli sdl2 sdl2_image snappy sndio socat spice-protocol tesseract usbredir virglrenderer vte3 vulkan-tools xorriso zstd' +PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache4 cmocka coreutils ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk-vnc gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson mtools ncurses nettle ninja opencv pixman pkgconf png py311-numpy py311-pillow py311-pip py311-pyyaml py311-sphinx py311-sphinx_rtd_theme py311-tomli python3 rpm2cpio rust rust-bindgen-cli sdl2 sdl2_image snappy sndio socat spice-protocol tesseract usbredir virglrenderer vte3 vulkan-tools xorriso zstd' PYPI_PKGS='' PYTHON='/usr/local/bin/python3' diff --git a/.gitlab-ci.d/cirrus/macos-14.vars b/.gitlab-ci.d/cirrus/macos-14.vars index b039465f56..4701c388e1 100644 --- a/.gitlab-ci.d/cirrus/macos-14.vars +++ b/.gitlab-ci.d/cirrus/macos-14.vars @@ -11,6 +11,6 @@ MAKE='/opt/homebrew/bin/gmake' NINJA='/opt/homebrew/bin/ninja' PACKAGING_COMMAND='brew' PIP3='/opt/homebrew/bin/pip3' -PKGS='bash bc bindgen bison bzip2 capstone ccache cmocka ctags curl dbus diffutils dtc flex gcovr gettext git glib gnu-sed gnutls gtk+3 gtk-vnc jemalloc jpeg-turbo json-c libcbor libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb llvm lzo make meson mtools ncurses nettle ninja pixman pkg-config python3 rpm2cpio rust sdl2 sdl2_image snappy socat sparse spice-protocol swtpm tesseract usbredir vde vte3 vulkan-tools xorriso zlib zstd' +PKGS='bash bc bindgen bison bzip2 capstone ccache cmocka coreutils ctags curl dbus diffutils dtc flex gcovr gettext git glib gnu-sed gnutls gtk+3 gtk-vnc jemalloc jpeg-turbo json-c libcbor libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb llvm lzo make meson mtools ncurses nettle ninja pixman pkg-config python3 rpm2cpio rust sdl2 sdl2_image snappy socat sparse spice-protocol swtpm tesseract usbredir vde vte3 vulkan-tools xorriso zlib zstd' PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme tomli' PYTHON='/opt/homebrew/bin/python3' diff --git a/scripts/ci/setup/debian/debian-13-ppc64le.yaml b/scripts/ci/setup/debian/debian-13-ppc64le.yaml index e29c9c1840..25d96cea46 100644 --- a/scripts/ci/setup/debian/debian-13-ppc64le.yaml +++ b/scripts/ci/setup/debian/debian-13-ppc64le.yaml @@ -14,6 +14,7 @@ packages: - ca-certificates - ccache - clang + - coreutils - dbus - debianutils - diffutils diff --git a/scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml b/scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml index d303411391..6a72eabca9 100644 --- a/scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml +++ b/scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml @@ -14,6 +14,7 @@ packages: - ca-certificates - ccache - clang + - coreutils - dbus - debianutils - diffutils diff --git a/scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml b/scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml index 4ee8630cc4..6001da1250 100644 --- a/scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml +++ b/scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml @@ -14,6 +14,7 @@ packages: - ca-certificates - ccache - clang + - coreutils - dbus - debianutils - diffutils diff --git a/tests/docker/dockerfiles/alpine.docker b/tests/docker/dockerfiles/alpine.docker index 1da375c915..03dd6851f6 100644 --- a/tests/docker/dockerfiles/alpine.docker +++ b/tests/docker/dockerfiles/alpine.docker @@ -22,6 +22,7 @@ RUN apk update && \ ceph-dev \ clang \ cmocka-dev \ + coreutils \ ctags \ curl-dev \ cyrus-sasl-dev \ diff --git a/tests/docker/dockerfiles/centos9.docker b/tests/docker/dockerfiles/centos9.docker index ff3e8069b4..670e22be5a 100644 --- a/tests/docker/dockerfiles/centos9.docker +++ b/tests/docker/dockerfiles/centos9.docker @@ -26,6 +26,7 @@ RUN dnf distro-sync -y && \ ccache \ clang \ compiler-rt \ + coreutils-single \ ctags \ cyrus-sasl-devel \ daxctl-devel \ diff --git a/tests/docker/dockerfiles/debian-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker index c38ab8247d..c386b658b0 100644 --- a/tests/docker/dockerfiles/debian-amd64-cross.docker +++ b/tests/docker/dockerfiles/debian-amd64-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker index 2f62da0f5e..9d83ab7a32 100644 --- a/tests/docker/dockerfiles/debian-arm64-cross.docker +++ b/tests/docker/dockerfiles/debian-arm64-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker index 62e297f5d1..c2077ec7a2 100644 --- a/tests/docker/dockerfiles/debian-armhf-cross.docker +++ b/tests/docker/dockerfiles/debian-armhf-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ diff --git a/tests/docker/dockerfiles/debian-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker index eb9a915d49..db9f04ee93 100644 --- a/tests/docker/dockerfiles/debian-i686-cross.docker +++ b/tests/docker/dockerfiles/debian-i686-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ diff --git a/tests/docker/dockerfiles/debian-mips64el-cross.docker b/tests/docker/dockerfiles/debian-mips64el-cross.docker index 42e8444d15..7758afd80a 100644 --- a/tests/docker/dockerfiles/debian-mips64el-cross.docker +++ b/tests/docker/dockerfiles/debian-mips64el-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ diff --git a/tests/docker/dockerfiles/debian-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker index 1ab197b144..cba7f43870 100644 --- a/tests/docker/dockerfiles/debian-mipsel-cross.docker +++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker index 85d2c0ffdc..24f946d144 100644 --- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker +++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ diff --git a/tests/docker/dockerfiles/debian-riscv64-cross.docker b/tests/docker/dockerfiles/debian-riscv64-cross.docker index 4f01eecf41..f476cf65ea 100644 --- a/tests/docker/dockerfiles/debian-riscv64-cross.docker +++ b/tests/docker/dockerfiles/debian-riscv64-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker index 2a3046e785..a60b4ab01d 100644 --- a/tests/docker/dockerfiles/debian-s390x-cross.docker +++ b/tests/docker/dockerfiles/debian-s390x-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker index c1817f162f..6c6ab0256e 100644 --- a/tests/docker/dockerfiles/debian.docker +++ b/tests/docker/dockerfiles/debian.docker @@ -20,6 +20,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ ca-certificates \ ccache \ clang \ + coreutils \ dbus \ debianutils \ diffutils \ diff --git a/tests/docker/dockerfiles/fedora-rust-nightly.docker b/tests/docker/dockerfiles/fedora-rust-nightly.docker index e4233b53cb..8e3b3a9fd9 100644 --- a/tests/docker/dockerfiles/fedora-rust-nightly.docker +++ b/tests/docker/dockerfiles/fedora-rust-nightly.docker @@ -33,6 +33,7 @@ exec "$@"\n' > /usr/bin/nosync && \ ccache \ clang \ compiler-rt \ + coreutils \ ctags \ cyrus-sasl-devel \ daxctl-devel \ diff --git a/tests/docker/dockerfiles/fedora-win64-cross.docker b/tests/docker/dockerfiles/fedora-win64-cross.docker index 1da425768f..4f743c0043 100644 --- a/tests/docker/dockerfiles/fedora-win64-cross.docker +++ b/tests/docker/dockerfiles/fedora-win64-cross.docker @@ -26,6 +26,7 @@ exec "$@"\n' > /usr/bin/nosync && \ ca-certificates \ ccache \ compiler-rt \ + coreutils \ ctags \ dbus-daemon \ diffutils \ diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker index 632259378c..9278d79769 100644 --- a/tests/docker/dockerfiles/fedora.docker +++ b/tests/docker/dockerfiles/fedora.docker @@ -33,6 +33,7 @@ exec "$@"\n' > /usr/bin/nosync && \ ccache \ clang \ compiler-rt \ + coreutils \ ctags \ cyrus-sasl-devel \ daxctl-devel \ diff --git a/tests/docker/dockerfiles/opensuse-leap.docker b/tests/docker/dockerfiles/opensuse-leap.docker index def0ca9db4..a041d43976 100644 --- a/tests/docker/dockerfiles/opensuse-leap.docker +++ b/tests/docker/dockerfiles/opensuse-leap.docker @@ -20,6 +20,7 @@ RUN zypper update -y && \ ccache \ clang \ clang-devel \ + coreutils \ ctags \ cyrus-sasl-devel \ dbus-1 \ diff --git a/tests/docker/dockerfiles/ubuntu2204.docker b/tests/docker/dockerfiles/ubuntu2204.docker index c8cc624929..23b33d6ad4 100644 --- a/tests/docker/dockerfiles/ubuntu2204.docker +++ b/tests/docker/dockerfiles/ubuntu2204.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ ca-certificates \ ccache \ clang \ + coreutils \ dbus \ debianutils \ diffutils \ diff --git a/tests/lcitool/projects/qemu.yml b/tests/lcitool/projects/qemu.yml index 82812e7736..1ee7dcf3d4 100644 --- a/tests/lcitool/projects/qemu.yml +++ b/tests/lcitool/projects/qemu.yml @@ -13,6 +13,7 @@ packages: - clang - cmocka - column + - coreutils - ctags - cyrus-sasl - daxctl diff --git a/tests/vm/generated/freebsd.json b/tests/vm/generated/freebsd.json index c03e1cd586..f586827b13 100644 --- a/tests/vm/generated/freebsd.json +++ b/tests/vm/generated/freebsd.json @@ -15,6 +15,7 @@ "capstone4", "ccache4", "cmocka", + "coreutils", "ctags", "curl", "cyrus-sasl", From 45265100be95c634b66e9854e8183dced4ce50b6 Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Mon, 17 Nov 2025 11:55:10 +0000 Subject: [PATCH 05/18] docs/about/emulation: update assets for uftrace plugin documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Linaro is discontinuing its fileserver service by end of the year. Migrate assets to GitHub. Signed-off-by: Pierrick Bouvier Message-ID: <20251117115523.3993105-6-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- docs/about/emulation.rst | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/about/emulation.rst b/docs/about/emulation.rst index 92c219119e..4a7d1f4178 100644 --- a/docs/about/emulation.rst +++ b/docs/about/emulation.rst @@ -886,24 +886,24 @@ As an example, we can trace qemu itself running git:: $ uftrace dump --chrome | gzip > ~/qemu_aarch64_git_help.json.gz For convenience, you can download this trace `qemu_aarch64_git_help.json.gz -`_. +`_. Download it and open this trace on https://ui.perfetto.dev/. You can zoom in/out using :kbd:`W`, :kbd:`A`, :kbd:`S`, :kbd:`D` keys. Some sequences taken from this trace: - Loading program and its interpreter -.. image:: https://fileserver.linaro.org/s/fie8JgX76yyL5cq/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/loader_exec.png?raw=true :height: 200px - open syscall -.. image:: https://fileserver.linaro.org/s/rsXPTeZZPza4PcE/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/open_syscall.png?raw=true :height: 200px - TB creation -.. image:: https://fileserver.linaro.org/s/GXY6NKMw5EeRCew/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/tb_translation.png?raw=true :height: 200px It's usually better to use ``uftrace record`` directly. However, tracing @@ -916,7 +916,7 @@ Example system trace A full trace example (chrome trace, from instructions below) generated from a system boot can be found `here -`_. +`_. Download it and open this trace on https://ui.perfetto.dev/. You can see code executed for all privilege levels, and zoom in/out using :kbd:`W`, :kbd:`A`, :kbd:`S`, :kbd:`D` keys. You can find below some sequences @@ -924,27 +924,27 @@ taken from this trace: - Two first stages of boot sequence in Arm Trusted Firmware (EL3 and S-EL1) -.. image:: https://fileserver.linaro.org/s/kkxBS552W7nYESX/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/bl3_to_bl1.png?raw=true :height: 200px - U-boot initialization (until code relocation, after which we can't track it) -.. image:: https://fileserver.linaro.org/s/LKTgsXNZFi5GFNC/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/uboot.png?raw=true :height: 200px - Stat and open syscalls in kernel -.. image:: https://fileserver.linaro.org/s/dXe4MfraKg2F476/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/stat.png?raw=true :height: 200px - Timer interrupt -.. image:: https://fileserver.linaro.org/s/TM5yobYzJtP7P3C/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/timer_interrupt.png?raw=true :height: 200px - Poweroff sequence (from kernel back to firmware, NS-EL2 to EL3) -.. image:: https://fileserver.linaro.org/s/oR2PtyGKJrqnfRf/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/poweroff.png?raw=true :height: 200px Build and run system example From 863449cc8ec7ff23d41ac71d462e2349e11b3852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:11 +0000 Subject: [PATCH 06/18] tests: move test_xen assets to share.linaro.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Linaro are migrating file-hosting from the old NextCloud instance to another sharing site. Reviewed-by: Thomas Huth Cc: qemu-stable@nongnu.org Message-ID: <20251117115523.3993105-7-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- tests/functional/aarch64/test_xen.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/tests/functional/aarch64/test_xen.py b/tests/functional/aarch64/test_xen.py index 261d796540..d90595cad3 100755 --- a/tests/functional/aarch64/test_xen.py +++ b/tests/functional/aarch64/test_xen.py @@ -25,8 +25,7 @@ class BootXen(LinuxKernelTest): XEN_COMMON_COMMAND_LINE = 'dom0_mem=128M loglvl=all guest_loglvl=all' ASSET_KERNEL = Asset( - ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/' - 'download?path=%2F&files=linux-5.9.9-arm64-ajb'), + 'https://share.linaro.org/downloadFile?id=RRahAWwAwYKTZQd', '00366fa51ea957c19462d2e2aefd480bef80ce727120e714ae48e0c88f261edb') def launch_xen(self, xen_path): @@ -55,8 +54,7 @@ class BootXen(LinuxKernelTest): wait_for_console_pattern(self, console_pattern, "Panic on CPU 0:") ASSET_XEN_4_11 = Asset( - ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/download?path=%2F&' - 'files=xen-hypervisor-4.11-arm64_4.11.4%2B37-g3263f257ca-1_arm64.deb'), + 'https://share.linaro.org/downloadFile?id=ALU4n2NGGYbE4fO', 'b745c2631342f9fcc0147ddc364edb62c20ecfebd430e5a3546e7d7c6891c0bc') def test_arm64_xen_411_and_dom0(self): @@ -66,8 +64,7 @@ class BootXen(LinuxKernelTest): self.launch_xen(xen_path) ASSET_XEN_4_14 = Asset( - ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/download?path=%2F&' - 'files=xen-hypervisor-4.14-arm64_4.14.0%2B80-gd101b417b7-1_arm64.deb'), + 'https://share.linaro.org/downloadFile?id=os4zSXPl7WW4lqX', 'e930a3293248edabd367d5b4b3b6448b9c99c057096ea8b47228a7870661d5cb') def test_arm64_xen_414_and_dom0(self): @@ -77,8 +74,7 @@ class BootXen(LinuxKernelTest): self.launch_xen(xen_path) ASSET_XEN_4_15 = Asset( - ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/download?path=%2F&' - 'files=xen-upstream-4.15-unstable.deb'), + 'https://share.linaro.org/downloadFile?id=jjjG4uTp2wuO4Ks', '2a9a8af8acf0231844657cc28baab95bd918b0ee2d493ee4ee6f8846e1358bc9') def test_arm64_xen_415_and_dom0(self): From dfaf3695b20d653338c2f34edbbb552f697033c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:12 +0000 Subject: [PATCH 07/18] tests: move test_virt assets to share.linaro.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Linaro are migrating file-hosting from the old NextCloud instance to another sharing site. While I'm at it drop the old pauth-impdef flag which is no longer needed. Reviewed-by: Thomas Huth Cc: qemu-stable@nongnu.org Message-ID: <20251117115523.3993105-8-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- tests/functional/aarch64/test_virt.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/functional/aarch64/test_virt.py b/tests/functional/aarch64/test_virt.py index 63071f9b51..f9e3ec08fa 100755 --- a/tests/functional/aarch64/test_virt.py +++ b/tests/functional/aarch64/test_virt.py @@ -60,8 +60,7 @@ class Aarch64VirtMachine(QemuSystemTest): ASSET_KERNEL = Asset( - ('https://fileserver.linaro.org/s/' - 'z6B2ARM7DQT3HWN/download'), + 'https://share.linaro.org/downloadFile?id=3zGlbmXh8pXFewt', '12a54d4805cda6ab647cb7c7bbdb16fafb3df400e0d6f16445c1a0436100ef8d') def common_aarch64_virt(self, machine): @@ -77,7 +76,7 @@ class Aarch64VirtMachine(QemuSystemTest): self.vm.set_console() kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyAMA0') - self.vm.add_args('-cpu', 'max,pauth-impdef=on', + self.vm.add_args('-cpu', 'max', '-machine', machine, '-accel', 'tcg', '-kernel', kernel_path, From 5ff8d1fac98ba35391412883a17feb16a5b464e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:13 +0000 Subject: [PATCH 08/18] tests: move test_netdev_ethtool to share.linaro.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Linaro are migrating file-hosting from the old NextCloud instance to another sharing site. Reviewed-by: Thomas Huth Cc: qemu-stable@nongnu.org Message-ID: <20251117115523.3993105-9-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- tests/functional/x86_64/test_netdev_ethtool.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/tests/functional/x86_64/test_netdev_ethtool.py b/tests/functional/x86_64/test_netdev_ethtool.py index ee1a397bd2..ac8a92512c 100755 --- a/tests/functional/x86_64/test_netdev_ethtool.py +++ b/tests/functional/x86_64/test_netdev_ethtool.py @@ -16,16 +16,10 @@ class NetDevEthtool(QemuSystemTest): # Runs in about 17s under KVM, 19s under TCG, 25s under GCOV timeout = 45 - # Fetch assets from the netdev-ethtool subdir of my shared test - # images directory on fileserver.linaro.org. - ASSET_BASEURL = ('https://fileserver.linaro.org/s/kE4nCFLdQcoBF9t/' - 'download?path=%2Fnetdev-ethtool&files=') - ASSET_BZIMAGE = Asset( - ASSET_BASEURL + "bzImage", - "ed62ee06ea620b1035747f3f66a5e9fc5d3096b29f75562ada888b04cd1c4baf") - ASSET_ROOTFS = Asset( - ASSET_BASEURL + "rootfs.squashfs", - "8f0207e3c4d40832ae73c1a927e42ca30ccb1e71f047acb6ddb161ba422934e6") + ASSET_BZIMAGE = Asset("https://share.linaro.org/downloadFile?id=QD37GYYAJhGOgVe", + "ed62ee06ea620b1035747f3f66a5e9fc5d3096b29f75562ada888b04cd1c4baf") + ASSET_ROOTFS = Asset("https://share.linaro.org/downloadFile?id=YAqnr0W8fruDh3f", + "8f0207e3c4d40832ae73c1a927e42ca30ccb1e71f047acb6ddb161ba422934e6") def common_test_code(self, netdev, extra_args=None): self.set_machine('q35') From 533b5ac2d6a826619cf80b009bf23ae3246d7011 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:14 +0000 Subject: [PATCH 09/18] tests: move test_kvm_xen to share.linaro.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Linaro are migrating file-hosting from the old NextCloud instance to another sharing site. Reviewed-by: Thomas Huth Cc: qemu-stable@nongnu.org Message-ID: <20251117115523.3993105-10-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- tests/functional/x86_64/test_kvm_xen.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/tests/functional/x86_64/test_kvm_xen.py b/tests/functional/x86_64/test_kvm_xen.py index a5d445023c..424d4b2001 100755 --- a/tests/functional/x86_64/test_kvm_xen.py +++ b/tests/functional/x86_64/test_kvm_xen.py @@ -23,18 +23,11 @@ class KVMXenGuest(QemuSystemTest): kernel_path = None kernel_params = None - # Fetch assets from the kvm-xen-guest subdir of my shared test - # images directory on fileserver.linaro.org where you can find - # build instructions for how they where assembled. - ASSET_KERNEL = Asset( - ('https://fileserver.linaro.org/s/kE4nCFLdQcoBF9t/download?' - 'path=%2Fkvm-xen-guest&files=bzImage'), - 'ec0ad7bb8c33c5982baee0a75505fe7dbf29d3ff5d44258204d6307c6fe0132a') - - ASSET_ROOTFS = Asset( - ('https://fileserver.linaro.org/s/kE4nCFLdQcoBF9t/download?' - 'path=%2Fkvm-xen-guest&files=rootfs.ext4'), - 'b11045d649006c649c184e93339aaa41a8fe20a1a86620af70323252eb29e40b') + ASSET_KERNEL = Asset('https://share.linaro.org/downloadFile?id=UG0V8dzzHrrHb9X', + 'ec0ad7bb8c33c5982baee0a75505fe7dbf29d3ff5d44258204d6307c6fe0132a') + + ASSET_ROOTFS = Asset('https://share.linaro.org/downloadFile?id=VwLRKDXKFl6oKti', + 'b11045d649006c649c184e93339aaa41a8fe20a1a86620af70323252eb29e40b') def common_vm_setup(self): # We also catch lack of KVM_XEN support if we fail to launch From ced9f2ffc20dd182b2504fb08391a796c65bb0af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:15 +0000 Subject: [PATCH 10/18] tests: move test_kvm to share.linaro.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Linaro are migrating file-hosting from the old NextCloud instance to another sharing site. Cc: qemu-stable@nongnu.org Reviewed-by: Thomas Huth Message-ID: <20251117115523.3993105-11-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- tests/functional/aarch64/test_kvm.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/functional/aarch64/test_kvm.py b/tests/functional/aarch64/test_kvm.py index 9fb9286139..7545f5ed55 100755 --- a/tests/functional/aarch64/test_kvm.py +++ b/tests/functional/aarch64/test_kvm.py @@ -19,9 +19,7 @@ from qemu_test.linuxkernel import LinuxKernelTest class Aarch64VirtKVMTests(LinuxKernelTest): ASSET_KVM_TEST_KERNEL = Asset( - 'https://fileserver.linaro.org/s/HmjaxXXYHYSqbes/' - 'download?path=%2F&files=' - 'image-with-kvm-tool-and-unit-tests.gz', + 'https://share.linaro.org/downloadFile?id=Bs8Eb2Wb7yWtkTA', '34de4aaea90db5da42729e7d28b77f392c37a2f4da859f889a5234aaf0970696') # make it easier to detect successful return to shell From 497d3e87ce2d58a4781de03c6f5b0200ef79909f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:16 +0000 Subject: [PATCH 11/18] tests: move test_virt_gpu to share.linaro.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Linaro are migrating file-hosting from the old NextCloud instance to another sharing site. Cc: qemu-stable@nongnu.org Reviewed-by: Thomas Huth Message-ID: <20251117115523.3993105-12-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- tests/functional/aarch64/test_virt_gpu.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tests/functional/aarch64/test_virt_gpu.py b/tests/functional/aarch64/test_virt_gpu.py index 4e50887c3e..c26a1f20c6 100755 --- a/tests/functional/aarch64/test_virt_gpu.py +++ b/tests/functional/aarch64/test_virt_gpu.py @@ -23,15 +23,11 @@ from subprocess import check_output, CalledProcessError class Aarch64VirtGPUMachine(LinuxKernelTest): ASSET_VIRT_GPU_KERNEL = Asset( - 'https://fileserver.linaro.org/s/ce5jXBFinPxtEdx/' - 'download?path=%2F&files=' - 'Image.6.12.16.aarch64', + 'https://share.linaro.org/downloadFile?id=lL8wgnMmSXZo7Co', '7888c51c55d37e86bbbdeb5acea9f08c34e6b0f03c1f5b2463285f6a6f6eec8b') ASSET_VIRT_GPU_ROOTFS = Asset( - 'https://fileserver.linaro.org/s/ce5jXBFinPxtEdx/' - 'download?path=%2F&files=' - 'rootfs.aarch64.ext2.zstd', + 'https://share.linaro.org/downloadFile?id=qOn1wbfKmS6KVHZ', 'd45118c899420b7e673f1539a37a35480134b3e36e3a59e2cb69b1781cbb14ef') def _launch_virt_gpu(self, gpu_device): From f65da9e69039a4b92a7f94dd114d5417df9f5a00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:17 +0000 Subject: [PATCH 12/18] gitlab: add initial ppc64le custom-runner test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a plain configure build but I only run a subset of the tests until the kinks have been worked out. Reviewed-by: Daniel P. Berrangé Message-ID: <20251117115523.3993105-13-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- .gitlab-ci.d/custom-runners.yml | 1 + .../custom-runners/debian-13-ppc64le.yml | 41 +++++++++++++++++++ docs/devel/testing/ci-jobs.rst.inc | 6 +++ 3 files changed, 48 insertions(+) create mode 100644 .gitlab-ci.d/custom-runners/debian-13-ppc64le.yml diff --git a/.gitlab-ci.d/custom-runners.yml b/.gitlab-ci.d/custom-runners.yml index 142fbf4a24..3e28e48c97 100644 --- a/.gitlab-ci.d/custom-runners.yml +++ b/.gitlab-ci.d/custom-runners.yml @@ -31,3 +31,4 @@ include: - local: '/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml' - local: '/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml' + - local: '/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml' diff --git a/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml b/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml new file mode 100644 index 0000000000..e088c3b67b --- /dev/null +++ b/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml @@ -0,0 +1,41 @@ +# All jobs should run successfully in an environment setup by the +# scripts/ci/setup/build-environment.yml task: +# "Install basic packages to build QEMU on Ubuntu/Debian" + +.debian_ppc64le_template: + extends: .custom_runner_template + needs: [] + stage: build + tags: + - debian_13 + - ppc64le + rules: + - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/' + - if: "$PPC64LE_RUNNER_AVAILABLE" + before_script: + - source scripts/ci/gitlab-ci-section + - section_start setup "Pre-script setup" + - JOBS=$(expr $(nproc) - 2) + - section_end setup + script: + - mkdir build + - cd build + - section_start configure "Running configure" + - ../configure $CONFIGURE_ARGS || + { cat config.log meson-logs/meson-log.txt && exit 1; } + - section_end configure + - section_start build "Building QEMU" + - make --output-sync -j"$JOBS" + - section_end build + - section_start test "Running tests" + - if test -n "$MAKE_CHECK_ARGS"; + then + make -j"$JOBS" $MAKE_CHECK_ARGS ; + fi + - section_end test + +debian-13-ppc64le-default: + extends: .debian_ppc64le_template + variables: + # qtest currently fails: https://gitlab.com/qemu-project/qemu/-/issues/3207 + MAKE_CHECK_ARGS: check-unit check-tcg check-softfloat diff --git a/docs/devel/testing/ci-jobs.rst.inc b/docs/devel/testing/ci-jobs.rst.inc index b92d372a0a..f1c70344ec 100644 --- a/docs/devel/testing/ci-jobs.rst.inc +++ b/docs/devel/testing/ci-jobs.rst.inc @@ -174,6 +174,12 @@ If you've got access to an IBM Z host that can be used as a gitlab-CI runner, you can set this variable to enable the tests that require this kind of host. The runner should be tagged with "s390x". +PPC64LE_RUNNER_AVAILABLE +~~~~~~~~~~~~~~~~~~~~~~~~ +If you've got access to an PPC64LE host that can be used as a gitlab-CI +runner, you can set this variable to enable the tests that require this +kind of host. The runner should be tagged with "ppc64le". + CCACHE_DISABLE ~~~~~~~~~~~~~~ The jobs are configured to use "ccache" by default since this typically From ea55bfc3a9fa6803944e5bbf758e488aaa294f6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:18 +0000 Subject: [PATCH 13/18] gitlab: use template for ubuntu-24.04-s390x jobs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Most of the test is pure boilerplate so to save ourselves from repetition move all the main bits into a minimal copy of native_build_job_template but without the caching. We keep all the current allow_fail, manual and configure setups but do take the opportunity to replace the inline nproc calls to using a common JOBS variable. We also fix the namespace check to use the QEMU_CI_UPSTREAM variable. Reviewed-by: Daniel P. Berrangé Message-ID: <20251117115523.3993105-14-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- .../custom-runners/ubuntu-24.04-s390x.yml | 185 +++++++----------- 1 file changed, 70 insertions(+), 115 deletions(-) diff --git a/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml b/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml index 45dbee1788..2fc940e127 100644 --- a/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml +++ b/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml @@ -2,129 +2,84 @@ # setup by the scripts/ci/setup/ubuntu/build-environment.yml task # "Install basic packages to build QEMU on Ubuntu 24.04" +.ubuntu_s390x_template: + extends: .custom_runner_template + needs: [] + stage: build + tags: + - ubuntu_24.04 + - s390x + rules: + - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/' + - if: "$S390X_RUNNER_AVAILABLE" + before_script: + - source scripts/ci/gitlab-ci-section + - section_start setup "Pre-script setup" + - JOBS=$(expr $(nproc) - 1) + - section_end setup + script: + - mkdir build + - cd build + - section_start configure "Running configure" + - ../configure $CONFIGURE_ARGS || + { cat config.log meson-logs/meson-log.txt; exit 1; } + - section_end configure + - section_start build "Building QEMU" + - make --output-sync -j"$JOBS" + - section_end build + - section_start test "Running tests" + - if test -n "$MAKE_CHECK_ARGS"; + then + make -j"$JOBS" $MAKE_CHECK_ARGS ; + fi + - section_end test + ubuntu-24.04-s390x-all-linux: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - - if: "$S390X_RUNNER_AVAILABLE" - script: - - mkdir build - - cd build - - ../configure --enable-debug --disable-system --disable-tools --disable-docs - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` - - make --output-sync check-tcg - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --enable-debug --disable-system --disable-tools --disable-docs + MAKE_CHECK_ARGS: check-tcg check ubuntu-24.04-s390x-all-system: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - timeout: 75m - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --disable-user - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --disable-user + MAKE_CHECK_ARGS: check + allow_failure: true ubuntu-24.04-s390x-alldbg: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --enable-debug - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make clean - - make --output-sync -j`nproc` - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --enable-debug + MAKE_CHECK_ARGS: check + allow_failure: true + when: manual ubuntu-24.04-s390x-clang: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --cc=clang --cxx=clang++ --enable-ubsan - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-ubsan + MAKE_CHECK_ARGS: check + allow_failure: true + when: manual ubuntu-24.04-s390x-tci: - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --enable-tcg-interpreter - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --enable-tcg-interpreter + allow_failure: true + when: manual ubuntu-24.04-s390x-notcg: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --disable-tcg - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --disable-tcg + MAKE_CHECK_ARGS: check + allow_failure: true + when: manual From 56ebddfcc25472cc0771e232dc9ed0c4df878b04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:19 +0000 Subject: [PATCH 14/18] gitlab: simplify the ubuntu-24.04-aarch64 rules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We don't need to duplicate the if rules to get the allow_failure and manual behaviour we want. Clean that up to keep all the rules in the same place. Reviewed-by: Daniel P. Berrangé Message-ID: <20251117115523.3993105-15-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- .../custom-runners/ubuntu-24.04-aarch64.yml | 43 +++++-------------- 1 file changed, 10 insertions(+), 33 deletions(-) diff --git a/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml b/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml index ee13587d99..6f950baee0 100644 --- a/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml +++ b/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml @@ -46,26 +46,16 @@ ubuntu-24.04-aarch64-all: extends: .ubuntu_aarch64_template variables: MAKE_CHECK_ARGS: check - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual - allow_failure: true + allow_failure: true + when: manual ubuntu-24.04-aarch64-without-defaults: extends: .ubuntu_aarch64_template variables: CONFIGURE_ARGS: --disable-user --without-default-devices --without-default-features MAKE_CHECK_ARGS: check - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual - allow_failure: true + allow_failure: true + when: manual ubuntu-24.04-aarch64-alldbg: extends: .ubuntu_aarch64_template @@ -78,34 +68,21 @@ ubuntu-24.04-aarch64-clang: variables: CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-ubsan MAKE_CHECK_ARGS: check - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual - allow_failure: true + allow_failure: true + when: manual ubuntu-24.04-aarch64-tci: extends: .ubuntu_aarch64_template variables: CONFIGURE_ARGS: --enable-tcg-interpreter MAKE_CHECK_ARGS: check - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual - allow_failure: true + allow_failure: true + when: manual ubuntu-24.04-aarch64-notcg: extends: .ubuntu_aarch64_template variables: CONFIGURE_ARGS: --disable-tcg --with-devices-aarch64=minimal MAKE_CHECK_ARGS: check - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual + allow_failure: true + when: manual From 7b0e69d4a73808f206bee88ff966b5d16d10a8fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:20 +0000 Subject: [PATCH 15/18] gitlab: suppress custom runners being triggered by schedule MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise the mere presence of the RUNNER env vars is enough to trigger the jobs. Reviewed-by: Daniel P. Berrangé Message-ID: <20251117115523.3993105-16-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- .gitlab-ci.d/custom-runners/debian-13-ppc64le.yml | 2 +- .gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml | 2 +- .gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml b/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml index e088c3b67b..40b1f408f9 100644 --- a/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml +++ b/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml @@ -11,7 +11,7 @@ - ppc64le rules: - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/' - - if: "$PPC64LE_RUNNER_AVAILABLE" + - if: '$PPC64LE_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule"' before_script: - source scripts/ci/gitlab-ci-section - section_start setup "Pre-script setup" diff --git a/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml b/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml index 6f950baee0..c8adb8171c 100644 --- a/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml +++ b/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml @@ -11,7 +11,7 @@ - aarch64 rules: - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - - if: "$AARCH64_RUNNER_AVAILABLE" + - if: '$AARCH64_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule"' before_script: - source scripts/ci/gitlab-ci-section - section_start setup "Pre-script setup" diff --git a/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml b/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml index 2fc940e127..fb093d05b5 100644 --- a/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml +++ b/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml @@ -11,7 +11,7 @@ - s390x rules: - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/' - - if: "$S390X_RUNNER_AVAILABLE" + - if: '$S390X_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule"' before_script: - source scripts/ci/gitlab-ci-section - section_start setup "Pre-script setup" From d9e58fd1b241184c11d0853cec893d5e2d243bf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:21 +0000 Subject: [PATCH 16/18] gitlab: make custom runners need QEMU_CI to run MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In addition to not being triggered by schedule we should follow the same rules about QEMU_CI. One day we may figure out how to fold the custom runner rules into the .base_job_template but today is not that day. Reviewed-by: Daniel P. Berrangé Message-ID: <20251117115523.3993105-17-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- .gitlab-ci.d/custom-runners/debian-13-ppc64le.yml | 4 ++++ .gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml | 4 ++++ .gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml b/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml index 40b1f408f9..23b188dc72 100644 --- a/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml +++ b/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml @@ -11,6 +11,10 @@ - ppc64le rules: - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/' + - if: '$QEMU_CI != "1" && $QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM' + when: never + - if: '$PPC64LE_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule" && $QEMU_CI == "1"' + when: manual - if: '$PPC64LE_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule"' before_script: - source scripts/ci/gitlab-ci-section diff --git a/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml b/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml index c8adb8171c..98d9919345 100644 --- a/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml +++ b/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml @@ -11,6 +11,10 @@ - aarch64 rules: - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' + - if: '$QEMU_CI != "1" && $QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM' + when: never + - if: '$AARCH64_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule" && $QEMU_CI == "1"' + when: manual - if: '$AARCH64_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule"' before_script: - source scripts/ci/gitlab-ci-section diff --git a/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml b/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml index fb093d05b5..efa8252d94 100644 --- a/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml +++ b/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml @@ -11,6 +11,10 @@ - s390x rules: - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/' + - if: '$QEMU_CI != "1" && $QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM' + when: never + - if: '$S390X_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule" && $QEMU_CI == "1"' + when: manual - if: '$S390X_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule"' before_script: - source scripts/ci/gitlab-ci-section From c689e3423cc32bcbfc4f0a08fce4cb2da4867aa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:22 +0000 Subject: [PATCH 17/18] gitlab: make the schedule rules a bit more general MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit By default no jobs should run under the schedule and then we can be more explicit for the ones that we need to. Otherwise I trigger all my custom runners every time I do a scheduled run. Reviewed-by: Daniel P. Berrangé Message-ID: <20251117115523.3993105-18-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- .gitlab-ci.d/base.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.d/base.yml b/.gitlab-ci.d/base.yml index 60a24a9d14..921c562000 100644 --- a/.gitlab-ci.d/base.yml +++ b/.gitlab-ci.d/base.yml @@ -45,8 +45,8 @@ variables: - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_TAG' when: never - # Scheduled runs on mainline don't get pipelines except for the special Coverity job - - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_PIPELINE_SOURCE == "schedule"' + # Scheduled jobs should explicitly enable the run in their job rules + - if: '$CI_PIPELINE_SOURCE == "schedule"' when: never # Cirrus jobs can't run unless the creds / target repo are set From 8bec7b9874235e60f14172618121c60fdbd39302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Date: Mon, 17 Nov 2025 11:55:23 +0000 Subject: [PATCH 18/18] gitlab: add a weekly container building job MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This will hopefully catch containers that break because of upstream changes as well as keep the container cache fresh. As we have all the container jobs as dependants we tweaks the container template to allow scheduled runs. Because we added a new rules stanza we also need to make sure we catch the normal runs as well. Reviewed-by: Daniel P. Berrangé Message-ID: <20251117115523.3993105-19-alex.bennee@linaro.org> Signed-off-by: Alex Bennée --- .gitlab-ci.d/container-template.yml | 5 ++++ .gitlab-ci.d/containers.yml | 39 +++++++++++++++++++++++++++++ tests/docker/Makefile.include | 11 ++++++++ 3 files changed, 55 insertions(+) diff --git a/.gitlab-ci.d/container-template.yml b/.gitlab-ci.d/container-template.yml index 4eec72f383..82c1b69e8d 100644 --- a/.gitlab-ci.d/container-template.yml +++ b/.gitlab-ci.d/container-template.yml @@ -19,3 +19,8 @@ - docker push "$TAG" after_script: - docker logout + rules: + # because we want to enable this for scheduled runs we also have to replicate the normal rules + - if: '$CI_PIPELINE_SOURCE == "schedule"' + - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/' + - if: '$QEMU_CI && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM' diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml index db9b4d5e57..f7d3e7205d 100644 --- a/.gitlab-ci.d/containers.yml +++ b/.gitlab-ci.d/containers.yml @@ -33,3 +33,42 @@ amd64-fedora-rust-nightly-container: variables: NAME: fedora-rust-nightly allow_failure: true + +# this scheduled job will trigger all the containers to build +weekly-container-builds: + extends: .container_job_template + allow_failure: true + needs: + # core + - amd64-centos9-container + - amd64-fedora-container + # cross + - amd64-debian-cross-container + - amd64-debian-user-cross-container + - amd64-debian-legacy-cross-container + - arm64-debian-cross-container + - armhf-debian-cross-container + - hexagon-cross-container + - loongarch-debian-cross-container + - i686-debian-cross-container + - mips64el-debian-cross-container + - ppc64el-debian-cross-container + - riscv64-debian-cross-container + - s390x-debian-cross-container + - tricore-debian-cross-container + - xtensa-debian-cross-container + - win64-fedora-cross-container + - wasm-emsdk-cross-container + # containers + - amd64-alpine-container + - amd64-debian-container + - amd64-ubuntu2204-container + - amd64-opensuse-leap-container + - python-container + - amd64-fedora-rust-nightly-container + script: + - apk -U add make bash skopeo + - make docker-verify V=1 DOCKER_DEFAULT_REGISTRY=$CI_REGISTRY_IMAGE + rules: + # this only ever runes as a scheduled build + - if: '$CI_PIPELINE_SOURCE == "schedule"' diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 3959d8a028..38467cca61 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -49,6 +49,15 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker -t qemu/$* - < $< $(if $V,,> /dev/null),\ "BUILD", $*) +# General rule for inspecting registry images. +docker-verify-%: $(DOCKER_FILES_DIR)/%.docker + $(call quiet-command, \ + skopeo inspect \ + --format '{{.Created}}' \ + docker://$(DOCKER_REGISTRY)/qemu/$* \ + $(if $V,,> /dev/null),\ + "VERIFY", $*) + # Special rule for debootstraped binfmt linux-user images docker-binfmt-image-debian-%: $(DOCKER_FILES_DIR)/debian-bootstrap.docker $(if $(EXECUTABLE),,\ @@ -236,6 +245,8 @@ docker-run: docker-qemu-src docker-image: ${DOCKER_IMAGES:%=docker-image-%} +docker-verify: ${DOCKER_IMAGES:%=docker-verify-%} + docker-clean: $(call quiet-command, $(DOCKER_SCRIPT) clean)