Let's move our Debian CI workloads to Debian-12 since it's the latest
release and mark Debian-11 jobs as optional.
Signed-off-by: Erik Skultety <eskultet(a)redhat.com>
---
ci/buildenv/debian-12-cross-aarch64.sh | 115 ++++++++++
ci/buildenv/debian-12-cross-armv6l.sh | 114 ++++++++++
ci/buildenv/debian-12-cross-armv7l.sh | 115 ++++++++++
ci/buildenv/debian-12-cross-i686.sh | 114 ++++++++++
ci/buildenv/debian-12-cross-mips64el.sh | 114 ++++++++++
ci/buildenv/debian-12-cross-mipsel.sh | 114 ++++++++++
ci/buildenv/debian-12-cross-ppc64le.sh | 114 ++++++++++
ci/buildenv/debian-12-cross-s390x.sh | 114 ++++++++++
.../debian-12-cross-aarch64.Dockerfile | 121 +++++++++++
.../debian-12-cross-armv6l.Dockerfile | 120 +++++++++++
.../debian-12-cross-armv7l.Dockerfile | 121 +++++++++++
ci/containers/debian-12-cross-i686.Dockerfile | 120 +++++++++++
.../debian-12-cross-mips64el.Dockerfile | 120 +++++++++++
.../debian-12-cross-mipsel.Dockerfile | 120 +++++++++++
.../debian-12-cross-ppc64le.Dockerfile | 120 +++++++++++
.../debian-12-cross-s390x.Dockerfile | 120 +++++++++++
ci/gitlab/builds.yml | 198 ++++++++++++++++++
ci/gitlab/containers.yml | 65 ++++++
ci/manifest.yml | 40 +++-
19 files changed, 2178 insertions(+), 1 deletion(-)
create mode 100644 ci/buildenv/debian-12-cross-aarch64.sh
create mode 100644 ci/buildenv/debian-12-cross-armv6l.sh
create mode 100644 ci/buildenv/debian-12-cross-armv7l.sh
create mode 100644 ci/buildenv/debian-12-cross-i686.sh
create mode 100644 ci/buildenv/debian-12-cross-mips64el.sh
create mode 100644 ci/buildenv/debian-12-cross-mipsel.sh
create mode 100644 ci/buildenv/debian-12-cross-ppc64le.sh
create mode 100644 ci/buildenv/debian-12-cross-s390x.sh
create mode 100644 ci/containers/debian-12-cross-aarch64.Dockerfile
create mode 100644 ci/containers/debian-12-cross-armv6l.Dockerfile
create mode 100644 ci/containers/debian-12-cross-armv7l.Dockerfile
create mode 100644 ci/containers/debian-12-cross-i686.Dockerfile
create mode 100644 ci/containers/debian-12-cross-mips64el.Dockerfile
create mode 100644 ci/containers/debian-12-cross-mipsel.Dockerfile
create mode 100644 ci/containers/debian-12-cross-ppc64le.Dockerfile
create mode 100644 ci/containers/debian-12-cross-s390x.Dockerfile
diff --git a/ci/buildenv/debian-12-cross-aarch64.sh
b/ci/buildenv/debian-12-cross-aarch64.sh
new file mode 100644
index 0000000000..6b03b2ea59
--- /dev/null
+++ b/ci/buildenv/debian-12-cross-aarch64.sh
@@ -0,0 +1,115 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+function install_buildenv() {
+ export DEBIAN_FRONTEND=noninteractive
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
+ dpkg-reconfigure locales
+ export DEBIAN_FRONTEND=noninteractive
+ dpkg --add-architecture arm64
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y dpkg-dev
+ apt-get install --no-install-recommends -y \
+ gcc-aarch64-linux-gnu \
+ libacl1-dev:arm64 \
+ libapparmor-dev:arm64 \
+ libattr1-dev:arm64 \
+ libaudit-dev:arm64 \
+ libblkid-dev:arm64 \
+ libc6-dev:arm64 \
+ libcap-ng-dev:arm64 \
+ libcurl4-gnutls-dev:arm64 \
+ libdevmapper-dev:arm64 \
+ libfuse-dev:arm64 \
+ libglib2.0-dev:arm64 \
+ libglusterfs-dev:arm64 \
+ libgnutls28-dev:arm64 \
+ libiscsi-dev:arm64 \
+ libnl-3-dev:arm64 \
+ libnl-route-3-dev:arm64 \
+ libnuma-dev:arm64 \
+ libparted-dev:arm64 \
+ libpcap0.8-dev:arm64 \
+ libpciaccess-dev:arm64 \
+ librbd-dev:arm64 \
+ libreadline-dev:arm64 \
+ libsanlock-dev:arm64 \
+ libsasl2-dev:arm64 \
+ libselinux1-dev:arm64 \
+ libssh-gcrypt-dev:arm64 \
+ libssh2-1-dev:arm64 \
+ libtirpc-dev:arm64 \
+ libudev-dev:arm64 \
+ libxen-dev:arm64 \
+ libxml2-dev:arm64 \
+ libyajl-dev:arm64 \
+ systemtap-sdt-dev:arm64
+ mkdir -p /usr/local/share/meson/cross
+ printf "[binaries]\n\
+c = '/usr/bin/aarch64-linux-gnu-gcc'\n\
+ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/aarch64-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'aarch64'\n\
+cpu = 'aarch64'\n\
+endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-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/aarch64-linux-gnu-cc
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-gcc
+}
+
+export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+export LANG="en_US.UTF-8"
+export MAKE="/usr/bin/make"
+export NINJA="/usr/bin/ninja"
+export PYTHON="/usr/bin/python3"
+
+export ABI="aarch64-linux-gnu"
+export MESON_OPTS="--cross-file=aarch64-linux-gnu"
diff --git a/ci/buildenv/debian-12-cross-armv6l.sh
b/ci/buildenv/debian-12-cross-armv6l.sh
new file mode 100644
index 0000000000..51dc4ce88a
--- /dev/null
+++ b/ci/buildenv/debian-12-cross-armv6l.sh
@@ -0,0 +1,114 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+function install_buildenv() {
+ export DEBIAN_FRONTEND=noninteractive
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
+ dpkg-reconfigure locales
+ export DEBIAN_FRONTEND=noninteractive
+ dpkg --add-architecture armel
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y dpkg-dev
+ apt-get install --no-install-recommends -y \
+ gcc-arm-linux-gnueabi \
+ libacl1-dev:armel \
+ libapparmor-dev:armel \
+ libattr1-dev:armel \
+ libaudit-dev:armel \
+ libblkid-dev:armel \
+ libc6-dev:armel \
+ libcap-ng-dev:armel \
+ libcurl4-gnutls-dev:armel \
+ libdevmapper-dev:armel \
+ libfuse-dev:armel \
+ libglib2.0-dev:armel \
+ libglusterfs-dev:armel \
+ libgnutls28-dev:armel \
+ libiscsi-dev:armel \
+ libnl-3-dev:armel \
+ libnl-route-3-dev:armel \
+ libnuma-dev:armel \
+ libparted-dev:armel \
+ libpcap0.8-dev:armel \
+ libpciaccess-dev:armel \
+ librbd-dev:armel \
+ libreadline-dev:armel \
+ libsanlock-dev:armel \
+ libsasl2-dev:armel \
+ libselinux1-dev:armel \
+ libssh-gcrypt-dev:armel \
+ libssh2-1-dev:armel \
+ libtirpc-dev:armel \
+ libudev-dev:armel \
+ libxml2-dev:armel \
+ libyajl-dev:armel \
+ systemtap-sdt-dev:armel
+ mkdir -p /usr/local/share/meson/cross
+ printf "[binaries]\n\
+c = '/usr/bin/arm-linux-gnueabi-gcc'\n\
+ar = '/usr/bin/arm-linux-gnueabi-gcc-ar'\n\
+strip = '/usr/bin/arm-linux-gnueabi-strip'\n\
+pkgconfig = '/usr/bin/arm-linux-gnueabi-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'arm'\n\
+cpu = 'arm'\n\
+endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabi
+ 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/arm-linux-gnueabi-cc
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-gcc
+}
+
+export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+export LANG="en_US.UTF-8"
+export MAKE="/usr/bin/make"
+export NINJA="/usr/bin/ninja"
+export PYTHON="/usr/bin/python3"
+
+export ABI="arm-linux-gnueabi"
+export MESON_OPTS="--cross-file=arm-linux-gnueabi"
diff --git a/ci/buildenv/debian-12-cross-armv7l.sh
b/ci/buildenv/debian-12-cross-armv7l.sh
new file mode 100644
index 0000000000..ecd1453bff
--- /dev/null
+++ b/ci/buildenv/debian-12-cross-armv7l.sh
@@ -0,0 +1,115 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+function install_buildenv() {
+ export DEBIAN_FRONTEND=noninteractive
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
+ dpkg-reconfigure locales
+ export DEBIAN_FRONTEND=noninteractive
+ dpkg --add-architecture armhf
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y dpkg-dev
+ apt-get install --no-install-recommends -y \
+ gcc-arm-linux-gnueabihf \
+ libacl1-dev:armhf \
+ libapparmor-dev:armhf \
+ libattr1-dev:armhf \
+ libaudit-dev:armhf \
+ libblkid-dev:armhf \
+ libc6-dev:armhf \
+ libcap-ng-dev:armhf \
+ libcurl4-gnutls-dev:armhf \
+ libdevmapper-dev:armhf \
+ libfuse-dev:armhf \
+ libglib2.0-dev:armhf \
+ libglusterfs-dev:armhf \
+ libgnutls28-dev:armhf \
+ libiscsi-dev:armhf \
+ libnl-3-dev:armhf \
+ libnl-route-3-dev:armhf \
+ libnuma-dev:armhf \
+ libparted-dev:armhf \
+ libpcap0.8-dev:armhf \
+ libpciaccess-dev:armhf \
+ librbd-dev:armhf \
+ libreadline-dev:armhf \
+ libsanlock-dev:armhf \
+ libsasl2-dev:armhf \
+ libselinux1-dev:armhf \
+ libssh-gcrypt-dev:armhf \
+ libssh2-1-dev:armhf \
+ libtirpc-dev:armhf \
+ libudev-dev:armhf \
+ libxen-dev:armhf \
+ libxml2-dev:armhf \
+ libyajl-dev:armhf \
+ systemtap-sdt-dev:armhf
+ mkdir -p /usr/local/share/meson/cross
+ printf "[binaries]\n\
+c = '/usr/bin/arm-linux-gnueabihf-gcc'\n\
+ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\
+strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\
+pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'arm'\n\
+cpu = 'armhf'\n\
+endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf
+ 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/arm-linux-gnueabihf-cc
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc
+}
+
+export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+export LANG="en_US.UTF-8"
+export MAKE="/usr/bin/make"
+export NINJA="/usr/bin/ninja"
+export PYTHON="/usr/bin/python3"
+
+export ABI="arm-linux-gnueabihf"
+export MESON_OPTS="--cross-file=arm-linux-gnueabihf"
diff --git a/ci/buildenv/debian-12-cross-i686.sh b/ci/buildenv/debian-12-cross-i686.sh
new file mode 100644
index 0000000000..3922591cd8
--- /dev/null
+++ b/ci/buildenv/debian-12-cross-i686.sh
@@ -0,0 +1,114 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+function install_buildenv() {
+ export DEBIAN_FRONTEND=noninteractive
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
+ dpkg-reconfigure locales
+ export DEBIAN_FRONTEND=noninteractive
+ dpkg --add-architecture i386
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y dpkg-dev
+ apt-get install --no-install-recommends -y \
+ gcc-i686-linux-gnu \
+ libacl1-dev:i386 \
+ libapparmor-dev:i386 \
+ libattr1-dev:i386 \
+ libaudit-dev:i386 \
+ libblkid-dev:i386 \
+ libc6-dev:i386 \
+ libcap-ng-dev:i386 \
+ libcurl4-gnutls-dev:i386 \
+ libdevmapper-dev:i386 \
+ libfuse-dev:i386 \
+ libglib2.0-dev:i386 \
+ libglusterfs-dev:i386 \
+ libgnutls28-dev:i386 \
+ libiscsi-dev:i386 \
+ libnl-3-dev:i386 \
+ libnl-route-3-dev:i386 \
+ libnuma-dev:i386 \
+ libparted-dev:i386 \
+ libpcap0.8-dev:i386 \
+ libpciaccess-dev:i386 \
+ librbd-dev:i386 \
+ libreadline-dev:i386 \
+ libsanlock-dev:i386 \
+ libsasl2-dev:i386 \
+ libselinux1-dev:i386 \
+ libssh-gcrypt-dev:i386 \
+ libssh2-1-dev:i386 \
+ libtirpc-dev:i386 \
+ libudev-dev:i386 \
+ libxml2-dev:i386 \
+ libyajl-dev:i386 \
+ systemtap-sdt-dev:i386
+ 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-cc
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc
+}
+
+export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+export LANG="en_US.UTF-8"
+export MAKE="/usr/bin/make"
+export NINJA="/usr/bin/ninja"
+export PYTHON="/usr/bin/python3"
+
+export ABI="i686-linux-gnu"
+export MESON_OPTS="--cross-file=i686-linux-gnu"
diff --git a/ci/buildenv/debian-12-cross-mips64el.sh
b/ci/buildenv/debian-12-cross-mips64el.sh
new file mode 100644
index 0000000000..6a6250ac03
--- /dev/null
+++ b/ci/buildenv/debian-12-cross-mips64el.sh
@@ -0,0 +1,114 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+function install_buildenv() {
+ export DEBIAN_FRONTEND=noninteractive
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
+ dpkg-reconfigure locales
+ export DEBIAN_FRONTEND=noninteractive
+ dpkg --add-architecture mips64el
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y dpkg-dev
+ apt-get install --no-install-recommends -y \
+ gcc-mips64el-linux-gnuabi64 \
+ libacl1-dev:mips64el \
+ libapparmor-dev:mips64el \
+ libattr1-dev:mips64el \
+ libaudit-dev:mips64el \
+ libblkid-dev:mips64el \
+ libc6-dev:mips64el \
+ libcap-ng-dev:mips64el \
+ libcurl4-gnutls-dev:mips64el \
+ libdevmapper-dev:mips64el \
+ libfuse-dev:mips64el \
+ libglib2.0-dev:mips64el \
+ libglusterfs-dev:mips64el \
+ libgnutls28-dev:mips64el \
+ libiscsi-dev:mips64el \
+ libnl-3-dev:mips64el \
+ libnl-route-3-dev:mips64el \
+ libnuma-dev:mips64el \
+ libparted-dev:mips64el \
+ libpcap0.8-dev:mips64el \
+ libpciaccess-dev:mips64el \
+ librbd-dev:mips64el \
+ libreadline-dev:mips64el \
+ libsanlock-dev:mips64el \
+ libsasl2-dev:mips64el \
+ libselinux1-dev:mips64el \
+ libssh-gcrypt-dev:mips64el \
+ libssh2-1-dev:mips64el \
+ libtirpc-dev:mips64el \
+ libudev-dev:mips64el \
+ libxml2-dev:mips64el \
+ libyajl-dev:mips64el \
+ systemtap-sdt-dev:mips64el
+ mkdir -p /usr/local/share/meson/cross
+ printf "[binaries]\n\
+c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\
+ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\
+strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\
+pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'mips64'\n\
+cpu = 'mips64el'\n\
+endian = 'little'\n" >
/usr/local/share/meson/cross/mips64el-linux-gnuabi64
+ 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/mips64el-linux-gnuabi64-cc
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-gcc
+}
+
+export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+export LANG="en_US.UTF-8"
+export MAKE="/usr/bin/make"
+export NINJA="/usr/bin/ninja"
+export PYTHON="/usr/bin/python3"
+
+export ABI="mips64el-linux-gnuabi64"
+export MESON_OPTS="--cross-file=mips64el-linux-gnuabi64"
diff --git a/ci/buildenv/debian-12-cross-mipsel.sh
b/ci/buildenv/debian-12-cross-mipsel.sh
new file mode 100644
index 0000000000..4b60a97704
--- /dev/null
+++ b/ci/buildenv/debian-12-cross-mipsel.sh
@@ -0,0 +1,114 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+function install_buildenv() {
+ export DEBIAN_FRONTEND=noninteractive
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
+ dpkg-reconfigure locales
+ export DEBIAN_FRONTEND=noninteractive
+ dpkg --add-architecture mipsel
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y dpkg-dev
+ apt-get install --no-install-recommends -y \
+ gcc-mipsel-linux-gnu \
+ libacl1-dev:mipsel \
+ libapparmor-dev:mipsel \
+ libattr1-dev:mipsel \
+ libaudit-dev:mipsel \
+ libblkid-dev:mipsel \
+ libc6-dev:mipsel \
+ libcap-ng-dev:mipsel \
+ libcurl4-gnutls-dev:mipsel \
+ libdevmapper-dev:mipsel \
+ libfuse-dev:mipsel \
+ libglib2.0-dev:mipsel \
+ libglusterfs-dev:mipsel \
+ libgnutls28-dev:mipsel \
+ libiscsi-dev:mipsel \
+ libnl-3-dev:mipsel \
+ libnl-route-3-dev:mipsel \
+ libnuma-dev:mipsel \
+ libparted-dev:mipsel \
+ libpcap0.8-dev:mipsel \
+ libpciaccess-dev:mipsel \
+ librbd-dev:mipsel \
+ libreadline-dev:mipsel \
+ libsanlock-dev:mipsel \
+ libsasl2-dev:mipsel \
+ libselinux1-dev:mipsel \
+ libssh-gcrypt-dev:mipsel \
+ libssh2-1-dev:mipsel \
+ libtirpc-dev:mipsel \
+ libudev-dev:mipsel \
+ libxml2-dev:mipsel \
+ libyajl-dev:mipsel \
+ systemtap-sdt-dev:mipsel
+ mkdir -p /usr/local/share/meson/cross
+ printf "[binaries]\n\
+c = '/usr/bin/mipsel-linux-gnu-gcc'\n\
+ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/mipsel-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'mips'\n\
+cpu = 'mipsel'\n\
+endian = 'little'\n" > /usr/local/share/meson/cross/mipsel-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/mipsel-linux-gnu-cc
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-gcc
+}
+
+export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+export LANG="en_US.UTF-8"
+export MAKE="/usr/bin/make"
+export NINJA="/usr/bin/ninja"
+export PYTHON="/usr/bin/python3"
+
+export ABI="mipsel-linux-gnu"
+export MESON_OPTS="--cross-file=mipsel-linux-gnu"
diff --git a/ci/buildenv/debian-12-cross-ppc64le.sh
b/ci/buildenv/debian-12-cross-ppc64le.sh
new file mode 100644
index 0000000000..c1fd55b55d
--- /dev/null
+++ b/ci/buildenv/debian-12-cross-ppc64le.sh
@@ -0,0 +1,114 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+function install_buildenv() {
+ export DEBIAN_FRONTEND=noninteractive
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
+ dpkg-reconfigure locales
+ export DEBIAN_FRONTEND=noninteractive
+ dpkg --add-architecture ppc64el
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y dpkg-dev
+ apt-get install --no-install-recommends -y \
+ gcc-powerpc64le-linux-gnu \
+ libacl1-dev:ppc64el \
+ libapparmor-dev:ppc64el \
+ libattr1-dev:ppc64el \
+ libaudit-dev:ppc64el \
+ libblkid-dev:ppc64el \
+ libc6-dev:ppc64el \
+ libcap-ng-dev:ppc64el \
+ libcurl4-gnutls-dev:ppc64el \
+ libdevmapper-dev:ppc64el \
+ libfuse-dev:ppc64el \
+ libglib2.0-dev:ppc64el \
+ libglusterfs-dev:ppc64el \
+ libgnutls28-dev:ppc64el \
+ libiscsi-dev:ppc64el \
+ libnl-3-dev:ppc64el \
+ libnl-route-3-dev:ppc64el \
+ libnuma-dev:ppc64el \
+ libparted-dev:ppc64el \
+ libpcap0.8-dev:ppc64el \
+ libpciaccess-dev:ppc64el \
+ librbd-dev:ppc64el \
+ libreadline-dev:ppc64el \
+ libsanlock-dev:ppc64el \
+ libsasl2-dev:ppc64el \
+ libselinux1-dev:ppc64el \
+ libssh-gcrypt-dev:ppc64el \
+ libssh2-1-dev:ppc64el \
+ libtirpc-dev:ppc64el \
+ libudev-dev:ppc64el \
+ libxml2-dev:ppc64el \
+ libyajl-dev:ppc64el \
+ systemtap-sdt-dev:ppc64el
+ mkdir -p /usr/local/share/meson/cross
+ printf "[binaries]\n\
+c = '/usr/bin/powerpc64le-linux-gnu-gcc'\n\
+ar = '/usr/bin/powerpc64le-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/powerpc64le-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'ppc64'\n\
+cpu = 'powerpc64le'\n\
+endian = 'little'\n" >
/usr/local/share/meson/cross/powerpc64le-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/powerpc64le-linux-gnu-cc
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-gcc
+}
+
+export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+export LANG="en_US.UTF-8"
+export MAKE="/usr/bin/make"
+export NINJA="/usr/bin/ninja"
+export PYTHON="/usr/bin/python3"
+
+export ABI="powerpc64le-linux-gnu"
+export MESON_OPTS="--cross-file=powerpc64le-linux-gnu"
diff --git a/ci/buildenv/debian-12-cross-s390x.sh b/ci/buildenv/debian-12-cross-s390x.sh
new file mode 100644
index 0000000000..563eb98ef7
--- /dev/null
+++ b/ci/buildenv/debian-12-cross-s390x.sh
@@ -0,0 +1,114 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+function install_buildenv() {
+ export DEBIAN_FRONTEND=noninteractive
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
+ dpkg-reconfigure locales
+ export DEBIAN_FRONTEND=noninteractive
+ dpkg --add-architecture s390x
+ apt-get update
+ apt-get dist-upgrade -y
+ apt-get install --no-install-recommends -y dpkg-dev
+ apt-get install --no-install-recommends -y \
+ gcc-s390x-linux-gnu \
+ libacl1-dev:s390x \
+ libapparmor-dev:s390x \
+ libattr1-dev:s390x \
+ libaudit-dev:s390x \
+ libblkid-dev:s390x \
+ libc6-dev:s390x \
+ libcap-ng-dev:s390x \
+ libcurl4-gnutls-dev:s390x \
+ libdevmapper-dev:s390x \
+ libfuse-dev:s390x \
+ libglib2.0-dev:s390x \
+ libglusterfs-dev:s390x \
+ libgnutls28-dev:s390x \
+ libiscsi-dev:s390x \
+ libnl-3-dev:s390x \
+ libnl-route-3-dev:s390x \
+ libnuma-dev:s390x \
+ libparted-dev:s390x \
+ libpcap0.8-dev:s390x \
+ libpciaccess-dev:s390x \
+ librbd-dev:s390x \
+ libreadline-dev:s390x \
+ libsanlock-dev:s390x \
+ libsasl2-dev:s390x \
+ libselinux1-dev:s390x \
+ libssh-gcrypt-dev:s390x \
+ libssh2-1-dev:s390x \
+ libtirpc-dev:s390x \
+ libudev-dev:s390x \
+ libxml2-dev:s390x \
+ libyajl-dev:s390x \
+ systemtap-sdt-dev:s390x
+ mkdir -p /usr/local/share/meson/cross
+ printf "[binaries]\n\
+c = '/usr/bin/s390x-linux-gnu-gcc'\n\
+ar = '/usr/bin/s390x-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/s390x-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 's390x'\n\
+cpu = 's390x'\n\
+endian = 'big'\n" > /usr/local/share/meson/cross/s390x-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/s390x-linux-gnu-cc
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-gcc
+}
+
+export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
+export LANG="en_US.UTF-8"
+export MAKE="/usr/bin/make"
+export NINJA="/usr/bin/ninja"
+export PYTHON="/usr/bin/python3"
+
+export ABI="s390x-linux-gnu"
+export MESON_OPTS="--cross-file=s390x-linux-gnu"
diff --git a/ci/containers/debian-12-cross-aarch64.Dockerfile
b/ci/containers/debian-12-cross-aarch64.Dockerfile
new file mode 100644
index 0000000000..a4824aadc1
--- /dev/null
+++ b/ci/containers/debian-12-cross-aarch64.Dockerfile
@@ -0,0 +1,121 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+FROM docker.io/library/debian:12-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 \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales
+
+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 && \
+ 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 \
+ gcc-aarch64-linux-gnu \
+ libacl1-dev:arm64 \
+ libapparmor-dev:arm64 \
+ libattr1-dev:arm64 \
+ libaudit-dev:arm64 \
+ libblkid-dev:arm64 \
+ libc6-dev:arm64 \
+ libcap-ng-dev:arm64 \
+ libcurl4-gnutls-dev:arm64 \
+ libdevmapper-dev:arm64 \
+ libfuse-dev:arm64 \
+ libglib2.0-dev:arm64 \
+ libglusterfs-dev:arm64 \
+ libgnutls28-dev:arm64 \
+ libiscsi-dev:arm64 \
+ libnl-3-dev:arm64 \
+ libnl-route-3-dev:arm64 \
+ libnuma-dev:arm64 \
+ libparted-dev:arm64 \
+ libpcap0.8-dev:arm64 \
+ libpciaccess-dev:arm64 \
+ librbd-dev:arm64 \
+ libreadline-dev:arm64 \
+ libsanlock-dev:arm64 \
+ libsasl2-dev:arm64 \
+ libselinux1-dev:arm64 \
+ libssh-gcrypt-dev:arm64 \
+ libssh2-1-dev:arm64 \
+ libtirpc-dev:arm64 \
+ libudev-dev:arm64 \
+ libxen-dev:arm64 \
+ libxml2-dev:arm64 \
+ libyajl-dev:arm64 \
+ systemtap-sdt-dev:arm64 && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ printf "[binaries]\n\
+c = '/usr/bin/aarch64-linux-gnu-gcc'\n\
+ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/aarch64-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'aarch64'\n\
+cpu = 'aarch64'\n\
+endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-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/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"
diff --git a/ci/containers/debian-12-cross-armv6l.Dockerfile
b/ci/containers/debian-12-cross-armv6l.Dockerfile
new file mode 100644
index 0000000000..38e40dbda0
--- /dev/null
+++ b/ci/containers/debian-12-cross-armv6l.Dockerfile
@@ -0,0 +1,120 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+FROM docker.io/library/debian:12-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 \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales
+
+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 armel && \
+ 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 \
+ gcc-arm-linux-gnueabi \
+ libacl1-dev:armel \
+ libapparmor-dev:armel \
+ libattr1-dev:armel \
+ libaudit-dev:armel \
+ libblkid-dev:armel \
+ libc6-dev:armel \
+ libcap-ng-dev:armel \
+ libcurl4-gnutls-dev:armel \
+ libdevmapper-dev:armel \
+ libfuse-dev:armel \
+ libglib2.0-dev:armel \
+ libglusterfs-dev:armel \
+ libgnutls28-dev:armel \
+ libiscsi-dev:armel \
+ libnl-3-dev:armel \
+ libnl-route-3-dev:armel \
+ libnuma-dev:armel \
+ libparted-dev:armel \
+ libpcap0.8-dev:armel \
+ libpciaccess-dev:armel \
+ librbd-dev:armel \
+ libreadline-dev:armel \
+ libsanlock-dev:armel \
+ libsasl2-dev:armel \
+ libselinux1-dev:armel \
+ libssh-gcrypt-dev:armel \
+ libssh2-1-dev:armel \
+ libtirpc-dev:armel \
+ libudev-dev:armel \
+ libxml2-dev:armel \
+ libyajl-dev:armel \
+ systemtap-sdt-dev:armel && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ printf "[binaries]\n\
+c = '/usr/bin/arm-linux-gnueabi-gcc'\n\
+ar = '/usr/bin/arm-linux-gnueabi-gcc-ar'\n\
+strip = '/usr/bin/arm-linux-gnueabi-strip'\n\
+pkgconfig = '/usr/bin/arm-linux-gnueabi-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'arm'\n\
+cpu = 'arm'\n\
+endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabi
&& \
+ 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/arm-linux-gnueabi-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-gcc
+
+ENV ABI "arm-linux-gnueabi"
+ENV MESON_OPTS "--cross-file=arm-linux-gnueabi"
diff --git a/ci/containers/debian-12-cross-armv7l.Dockerfile
b/ci/containers/debian-12-cross-armv7l.Dockerfile
new file mode 100644
index 0000000000..630418f497
--- /dev/null
+++ b/ci/containers/debian-12-cross-armv7l.Dockerfile
@@ -0,0 +1,121 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+FROM docker.io/library/debian:12-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 \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales
+
+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 && \
+ 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 \
+ gcc-arm-linux-gnueabihf \
+ libacl1-dev:armhf \
+ libapparmor-dev:armhf \
+ libattr1-dev:armhf \
+ libaudit-dev:armhf \
+ libblkid-dev:armhf \
+ libc6-dev:armhf \
+ libcap-ng-dev:armhf \
+ libcurl4-gnutls-dev:armhf \
+ libdevmapper-dev:armhf \
+ libfuse-dev:armhf \
+ libglib2.0-dev:armhf \
+ libglusterfs-dev:armhf \
+ libgnutls28-dev:armhf \
+ libiscsi-dev:armhf \
+ libnl-3-dev:armhf \
+ libnl-route-3-dev:armhf \
+ libnuma-dev:armhf \
+ libparted-dev:armhf \
+ libpcap0.8-dev:armhf \
+ libpciaccess-dev:armhf \
+ librbd-dev:armhf \
+ libreadline-dev:armhf \
+ libsanlock-dev:armhf \
+ libsasl2-dev:armhf \
+ libselinux1-dev:armhf \
+ libssh-gcrypt-dev:armhf \
+ libssh2-1-dev:armhf \
+ libtirpc-dev:armhf \
+ libudev-dev:armhf \
+ libxen-dev:armhf \
+ libxml2-dev:armhf \
+ libyajl-dev:armhf \
+ systemtap-sdt-dev:armhf && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ printf "[binaries]\n\
+c = '/usr/bin/arm-linux-gnueabihf-gcc'\n\
+ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\
+strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\
+pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'arm'\n\
+cpu = 'armhf'\n\
+endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf
&& \
+ 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/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"
diff --git a/ci/containers/debian-12-cross-i686.Dockerfile
b/ci/containers/debian-12-cross-i686.Dockerfile
new file mode 100644
index 0000000000..547f7a4b9d
--- /dev/null
+++ b/ci/containers/debian-12-cross-i686.Dockerfile
@@ -0,0 +1,120 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+FROM docker.io/library/debian:12-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 \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales
+
+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 \
+ gcc-i686-linux-gnu \
+ libacl1-dev:i386 \
+ libapparmor-dev:i386 \
+ libattr1-dev:i386 \
+ libaudit-dev:i386 \
+ libblkid-dev:i386 \
+ libc6-dev:i386 \
+ libcap-ng-dev:i386 \
+ libcurl4-gnutls-dev:i386 \
+ libdevmapper-dev:i386 \
+ libfuse-dev:i386 \
+ libglib2.0-dev:i386 \
+ libglusterfs-dev:i386 \
+ libgnutls28-dev:i386 \
+ libiscsi-dev:i386 \
+ libnl-3-dev:i386 \
+ libnl-route-3-dev:i386 \
+ libnuma-dev:i386 \
+ libparted-dev:i386 \
+ libpcap0.8-dev:i386 \
+ libpciaccess-dev:i386 \
+ librbd-dev:i386 \
+ libreadline-dev:i386 \
+ libsanlock-dev:i386 \
+ libsasl2-dev:i386 \
+ libselinux1-dev:i386 \
+ libssh-gcrypt-dev:i386 \
+ libssh2-1-dev:i386 \
+ libtirpc-dev:i386 \
+ libudev-dev:i386 \
+ libxml2-dev:i386 \
+ libyajl-dev:i386 \
+ systemtap-sdt-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-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"
diff --git a/ci/containers/debian-12-cross-mips64el.Dockerfile
b/ci/containers/debian-12-cross-mips64el.Dockerfile
new file mode 100644
index 0000000000..bd4cc1ab6c
--- /dev/null
+++ b/ci/containers/debian-12-cross-mips64el.Dockerfile
@@ -0,0 +1,120 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+FROM docker.io/library/debian:12-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 \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales
+
+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 && \
+ 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 \
+ gcc-mips64el-linux-gnuabi64 \
+ libacl1-dev:mips64el \
+ libapparmor-dev:mips64el \
+ libattr1-dev:mips64el \
+ libaudit-dev:mips64el \
+ libblkid-dev:mips64el \
+ libc6-dev:mips64el \
+ libcap-ng-dev:mips64el \
+ libcurl4-gnutls-dev:mips64el \
+ libdevmapper-dev:mips64el \
+ libfuse-dev:mips64el \
+ libglib2.0-dev:mips64el \
+ libglusterfs-dev:mips64el \
+ libgnutls28-dev:mips64el \
+ libiscsi-dev:mips64el \
+ libnl-3-dev:mips64el \
+ libnl-route-3-dev:mips64el \
+ libnuma-dev:mips64el \
+ libparted-dev:mips64el \
+ libpcap0.8-dev:mips64el \
+ libpciaccess-dev:mips64el \
+ librbd-dev:mips64el \
+ libreadline-dev:mips64el \
+ libsanlock-dev:mips64el \
+ libsasl2-dev:mips64el \
+ libselinux1-dev:mips64el \
+ libssh-gcrypt-dev:mips64el \
+ libssh2-1-dev:mips64el \
+ libtirpc-dev:mips64el \
+ libudev-dev:mips64el \
+ libxml2-dev:mips64el \
+ libyajl-dev:mips64el \
+ systemtap-sdt-dev:mips64el && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ printf "[binaries]\n\
+c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\
+ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\
+strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\
+pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'mips64'\n\
+cpu = 'mips64el'\n\
+endian = 'little'\n" >
/usr/local/share/meson/cross/mips64el-linux-gnuabi64 && \
+ 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/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"
diff --git a/ci/containers/debian-12-cross-mipsel.Dockerfile
b/ci/containers/debian-12-cross-mipsel.Dockerfile
new file mode 100644
index 0000000000..4eb3eff835
--- /dev/null
+++ b/ci/containers/debian-12-cross-mipsel.Dockerfile
@@ -0,0 +1,120 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+FROM docker.io/library/debian:12-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 \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales
+
+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 && \
+ 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 \
+ gcc-mipsel-linux-gnu \
+ libacl1-dev:mipsel \
+ libapparmor-dev:mipsel \
+ libattr1-dev:mipsel \
+ libaudit-dev:mipsel \
+ libblkid-dev:mipsel \
+ libc6-dev:mipsel \
+ libcap-ng-dev:mipsel \
+ libcurl4-gnutls-dev:mipsel \
+ libdevmapper-dev:mipsel \
+ libfuse-dev:mipsel \
+ libglib2.0-dev:mipsel \
+ libglusterfs-dev:mipsel \
+ libgnutls28-dev:mipsel \
+ libiscsi-dev:mipsel \
+ libnl-3-dev:mipsel \
+ libnl-route-3-dev:mipsel \
+ libnuma-dev:mipsel \
+ libparted-dev:mipsel \
+ libpcap0.8-dev:mipsel \
+ libpciaccess-dev:mipsel \
+ librbd-dev:mipsel \
+ libreadline-dev:mipsel \
+ libsanlock-dev:mipsel \
+ libsasl2-dev:mipsel \
+ libselinux1-dev:mipsel \
+ libssh-gcrypt-dev:mipsel \
+ libssh2-1-dev:mipsel \
+ libtirpc-dev:mipsel \
+ libudev-dev:mipsel \
+ libxml2-dev:mipsel \
+ libyajl-dev:mipsel \
+ systemtap-sdt-dev:mipsel && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ printf "[binaries]\n\
+c = '/usr/bin/mipsel-linux-gnu-gcc'\n\
+ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/mipsel-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'mips'\n\
+cpu = 'mipsel'\n\
+endian = 'little'\n" > /usr/local/share/meson/cross/mipsel-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/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"
diff --git a/ci/containers/debian-12-cross-ppc64le.Dockerfile
b/ci/containers/debian-12-cross-ppc64le.Dockerfile
new file mode 100644
index 0000000000..890db100f7
--- /dev/null
+++ b/ci/containers/debian-12-cross-ppc64le.Dockerfile
@@ -0,0 +1,120 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+FROM docker.io/library/debian:12-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 \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales
+
+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 && \
+ 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 \
+ gcc-powerpc64le-linux-gnu \
+ libacl1-dev:ppc64el \
+ libapparmor-dev:ppc64el \
+ libattr1-dev:ppc64el \
+ libaudit-dev:ppc64el \
+ libblkid-dev:ppc64el \
+ libc6-dev:ppc64el \
+ libcap-ng-dev:ppc64el \
+ libcurl4-gnutls-dev:ppc64el \
+ libdevmapper-dev:ppc64el \
+ libfuse-dev:ppc64el \
+ libglib2.0-dev:ppc64el \
+ libglusterfs-dev:ppc64el \
+ libgnutls28-dev:ppc64el \
+ libiscsi-dev:ppc64el \
+ libnl-3-dev:ppc64el \
+ libnl-route-3-dev:ppc64el \
+ libnuma-dev:ppc64el \
+ libparted-dev:ppc64el \
+ libpcap0.8-dev:ppc64el \
+ libpciaccess-dev:ppc64el \
+ librbd-dev:ppc64el \
+ libreadline-dev:ppc64el \
+ libsanlock-dev:ppc64el \
+ libsasl2-dev:ppc64el \
+ libselinux1-dev:ppc64el \
+ libssh-gcrypt-dev:ppc64el \
+ libssh2-1-dev:ppc64el \
+ libtirpc-dev:ppc64el \
+ libudev-dev:ppc64el \
+ libxml2-dev:ppc64el \
+ libyajl-dev:ppc64el \
+ systemtap-sdt-dev:ppc64el && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ printf "[binaries]\n\
+c = '/usr/bin/powerpc64le-linux-gnu-gcc'\n\
+ar = '/usr/bin/powerpc64le-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/powerpc64le-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'ppc64'\n\
+cpu = 'powerpc64le'\n\
+endian = 'little'\n" > /usr/local/share/meson/cross/powerpc64le-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/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"
diff --git a/ci/containers/debian-12-cross-s390x.Dockerfile
b/ci/containers/debian-12-cross-s390x.Dockerfile
new file mode 100644
index 0000000000..d3fed3a47c
--- /dev/null
+++ b/ci/containers/debian-12-cross-s390x.Dockerfile
@@ -0,0 +1,120 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool manifest ci/manifest.yml
+#
+#
https://gitlab.com/libvirt/libvirt-ci
+
+FROM docker.io/library/debian:12-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 \
+ augeas-lenses \
+ augeas-tools \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ codespell \
+ cpp \
+ diffutils \
+ dwarves \
+ ebtables \
+ flake8 \
+ gettext \
+ git \
+ grep \
+ iproute2 \
+ iptables \
+ kmod \
+ libc-dev-bin \
+ libxml2-utils \
+ locales \
+ lvm2 \
+ make \
+ meson \
+ nfs-common \
+ ninja-build \
+ numad \
+ open-iscsi \
+ perl-base \
+ pkgconf \
+ policykit-1 \
+ python3 \
+ python3-docutils \
+ qemu-utils \
+ scrub \
+ sed \
+ xsltproc && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales
+
+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 && \
+ 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 \
+ gcc-s390x-linux-gnu \
+ libacl1-dev:s390x \
+ libapparmor-dev:s390x \
+ libattr1-dev:s390x \
+ libaudit-dev:s390x \
+ libblkid-dev:s390x \
+ libc6-dev:s390x \
+ libcap-ng-dev:s390x \
+ libcurl4-gnutls-dev:s390x \
+ libdevmapper-dev:s390x \
+ libfuse-dev:s390x \
+ libglib2.0-dev:s390x \
+ libglusterfs-dev:s390x \
+ libgnutls28-dev:s390x \
+ libiscsi-dev:s390x \
+ libnl-3-dev:s390x \
+ libnl-route-3-dev:s390x \
+ libnuma-dev:s390x \
+ libparted-dev:s390x \
+ libpcap0.8-dev:s390x \
+ libpciaccess-dev:s390x \
+ librbd-dev:s390x \
+ libreadline-dev:s390x \
+ libsanlock-dev:s390x \
+ libsasl2-dev:s390x \
+ libselinux1-dev:s390x \
+ libssh-gcrypt-dev:s390x \
+ libssh2-1-dev:s390x \
+ libtirpc-dev:s390x \
+ libudev-dev:s390x \
+ libxml2-dev:s390x \
+ libyajl-dev:s390x \
+ systemtap-sdt-dev:s390x && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ printf "[binaries]\n\
+c = '/usr/bin/s390x-linux-gnu-gcc'\n\
+ar = '/usr/bin/s390x-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/s390x-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 's390x'\n\
+cpu = 's390x'\n\
+endian = 'big'\n" > /usr/local/share/meson/cross/s390x-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/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"
diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml
index f15a9fa821..2f81d49ccc 100644
--- a/ci/gitlab/builds.yml
+++ b/ci/gitlab/builds.yml
@@ -146,6 +146,7 @@ x86_64-debian-11-prebuilt-env:
optional: true
allow_failure: false
variables:
+ JOB_OPTIONAL: 1
NAME: debian-11
x86_64-debian-11-local-env:
@@ -154,6 +155,7 @@ x86_64-debian-11-local-env:
allow_failure: false
variables:
IMAGE: docker.io/library/debian:11-slim
+ JOB_OPTIONAL: 1
NAME: debian-11
@@ -164,6 +166,7 @@ x86_64-debian-11-clang-prebuilt-env:
optional: true
allow_failure: false
variables:
+ JOB_OPTIONAL: 1
NAME: debian-11
x86_64-debian-11-clang-local-env:
@@ -172,6 +175,7 @@ x86_64-debian-11-clang-local-env:
allow_failure: false
variables:
IMAGE: docker.io/library/debian:11-slim
+ JOB_OPTIONAL: 1
NAME: debian-11
@@ -193,6 +197,24 @@ x86_64-debian-12-local-env:
NAME: debian-12
+x86_64-debian-12-clang-prebuilt-env:
+ extends: .native_build_job_prebuilt_env
+ needs:
+ - job: x86_64-debian-12-container
+ optional: true
+ allow_failure: false
+ variables:
+ NAME: debian-12
+
+x86_64-debian-12-clang-local-env:
+ extends: .native_build_job_local_env
+ needs: []
+ allow_failure: false
+ variables:
+ IMAGE: docker.io/library/debian:12-slim
+ NAME: debian-12
+
+
x86_64-debian-sid-prebuilt-env:
extends: .native_build_job_prebuilt_env
needs:
@@ -466,6 +488,7 @@ armv7l-debian-11-prebuilt-env:
allow_failure: false
variables:
CROSS: armv7l
+ JOB_OPTIONAL: 1
NAME: debian-11
armv7l-debian-11-local-env:
@@ -475,6 +498,7 @@ armv7l-debian-11-local-env:
variables:
CROSS: armv7l
IMAGE: docker.io/library/debian:11-slim
+ JOB_OPTIONAL: 1
NAME: debian-11
@@ -588,6 +612,180 @@ s390x-debian-11-local-env:
NAME: debian-11
+aarch64-debian-12-prebuilt-env:
+ extends: .cross_build_job_prebuilt_env
+ needs:
+ - job: aarch64-debian-12-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: aarch64
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+aarch64-debian-12-local-env:
+ extends: .cross_build_job_local_env
+ needs: []
+ allow_failure: false
+ variables:
+ CROSS: aarch64
+ IMAGE: docker.io/library/debian:12-slim
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+
+armv6l-debian-12-prebuilt-env:
+ extends: .cross_build_job_prebuilt_env
+ needs:
+ - job: armv6l-debian-12-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: armv6l
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+armv6l-debian-12-local-env:
+ extends: .cross_build_job_local_env
+ needs: []
+ allow_failure: false
+ variables:
+ CROSS: armv6l
+ IMAGE: docker.io/library/debian:12-slim
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+
+armv7l-debian-12-prebuilt-env:
+ extends: .cross_build_job_prebuilt_env
+ needs:
+ - job: armv7l-debian-12-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: armv7l
+ NAME: debian-12
+
+armv7l-debian-12-local-env:
+ extends: .cross_build_job_local_env
+ needs: []
+ allow_failure: false
+ variables:
+ CROSS: armv7l
+ IMAGE: docker.io/library/debian:12-slim
+ NAME: debian-12
+
+
+i686-debian-12-prebuilt-env:
+ extends: .cross_build_job_prebuilt_env
+ needs:
+ - job: i686-debian-12-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: i686
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+i686-debian-12-local-env:
+ extends: .cross_build_job_local_env
+ needs: []
+ allow_failure: false
+ variables:
+ CROSS: i686
+ IMAGE: docker.io/library/debian:12-slim
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+
+mips64el-debian-12-prebuilt-env:
+ extends: .cross_build_job_prebuilt_env
+ needs:
+ - job: mips64el-debian-12-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: mips64el
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+mips64el-debian-12-local-env:
+ extends: .cross_build_job_local_env
+ needs: []
+ allow_failure: false
+ variables:
+ CROSS: mips64el
+ IMAGE: docker.io/library/debian:12-slim
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+
+mipsel-debian-12-prebuilt-env:
+ extends: .cross_build_job_prebuilt_env
+ needs:
+ - job: mipsel-debian-12-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: mipsel
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+mipsel-debian-12-local-env:
+ extends: .cross_build_job_local_env
+ needs: []
+ allow_failure: false
+ variables:
+ CROSS: mipsel
+ IMAGE: docker.io/library/debian:12-slim
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+
+ppc64le-debian-12-prebuilt-env:
+ extends: .cross_build_job_prebuilt_env
+ needs:
+ - job: ppc64le-debian-12-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: ppc64le
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+ppc64le-debian-12-local-env:
+ extends: .cross_build_job_local_env
+ needs: []
+ allow_failure: false
+ variables:
+ CROSS: ppc64le
+ IMAGE: docker.io/library/debian:12-slim
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+
+s390x-debian-12-prebuilt-env:
+ extends: .cross_build_job_prebuilt_env
+ needs:
+ - job: s390x-debian-12-container
+ optional: true
+ allow_failure: false
+ variables:
+ CROSS: s390x
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+s390x-debian-12-local-env:
+ extends: .cross_build_job_local_env
+ needs: []
+ allow_failure: false
+ variables:
+ CROSS: s390x
+ IMAGE: docker.io/library/debian:12-slim
+ JOB_OPTIONAL: 1
+ NAME: debian-12
+
+
aarch64-debian-sid-prebuilt-env:
extends: .cross_build_job_prebuilt_env
needs:
diff --git a/ci/gitlab/containers.yml b/ci/gitlab/containers.yml
index 17cf89d120..05d22f7336 100644
--- a/ci/gitlab/containers.yml
+++ b/ci/gitlab/containers.yml
@@ -46,6 +46,7 @@ x86_64-debian-11-container:
extends: .container_job
allow_failure: false
variables:
+ JOB_OPTIONAL: 1
NAME: debian-11
@@ -135,6 +136,7 @@ armv7l-debian-11-container:
extends: .container_job
allow_failure: false
variables:
+ JOB_OPTIONAL: 1
NAME: debian-11-cross-armv7l
@@ -178,6 +180,69 @@ s390x-debian-11-container:
NAME: debian-11-cross-s390x
+aarch64-debian-12-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ JOB_OPTIONAL: 1
+ NAME: debian-12-cross-aarch64
+
+
+armv6l-debian-12-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ JOB_OPTIONAL: 1
+ NAME: debian-12-cross-armv6l
+
+
+armv7l-debian-12-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ NAME: debian-12-cross-armv7l
+
+
+i686-debian-12-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ JOB_OPTIONAL: 1
+ NAME: debian-12-cross-i686
+
+
+mips64el-debian-12-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ JOB_OPTIONAL: 1
+ NAME: debian-12-cross-mips64el
+
+
+mipsel-debian-12-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ JOB_OPTIONAL: 1
+ NAME: debian-12-cross-mipsel
+
+
+ppc64le-debian-12-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ JOB_OPTIONAL: 1
+ NAME: debian-12-cross-ppc64le
+
+
+s390x-debian-12-container:
+ extends: .container_job
+ allow_failure: false
+ variables:
+ JOB_OPTIONAL: 1
+ NAME: debian-12-cross-s390x
+
+
aarch64-debian-sid-container:
extends: .container_job
allow_failure: false
diff --git a/ci/manifest.yml b/ci/manifest.yml
index 6fbd33f374..0e5a17a2bd 100644
--- a/ci/manifest.yml
+++ b/ci/manifest.yml
@@ -45,9 +45,11 @@ targets:
debian-11:
jobs:
- arch: x86_64
+ builds: false
- arch: x86_64
suffix: -clang
+ builds: false
- arch: aarch64
containers: false
@@ -58,6 +60,7 @@ targets:
builds: false
- arch: armv7l
+ builds: false
- arch: i686
containers: false
@@ -79,7 +82,42 @@ targets:
containers: false
builds: false
- debian-12: x86_64
+ debian-12:
+ jobs:
+ - arch: x86_64
+
+ - arch: x86_64
+ suffix: -clang
+
+ - arch: aarch64
+ containers: false
+ builds: false
+
+ - arch: armv6l
+ containers: false
+ builds: false
+
+ - arch: armv7l
+
+ - arch: i686
+ containers: false
+ builds: false
+
+ - arch: mips64el
+ containers: false
+ builds: false
+
+ - arch: mipsel
+ containers: false
+ builds: false
+
+ - arch: ppc64le
+ containers: false
+ builds: false
+
+ - arch: s390x
+ containers: false
+ builds: false
debian-sid:
jobs:
--
2.41.0