All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures
@ 2026-09-21 23:14 Pierrick Bouvier
  2026-09-21 23:14 ` [PATCH 1/7] tests/tcg/meson.build: force use of linux/amd64 platform for containers Pierrick Bouvier
                   ` (7 more replies)
  0 siblings, 8 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-21 23:14 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Alex Bennée, Philippe Mathieu-Daudé,
	Pierrick Bouvier

To increase our testing surface on aarch64 and other hosts, and also to ease
maintenance of docker images, this series introduces x86_64 base containers.
We rely on qemu-user-binfmt (available at least on Fedora and Debian/Ubuntu) to
be installed to execute x86_64 binaries on other host arch.
With this, we can run the full tcg tests suite on any host architecture.

This series exposed an issue with on aarch64 hosts with test
loongarch64-softmmu-memory that was reported in issue:
https://gitlab.com/qemu-project/qemu/-/work_items/4567

Pierrick Bouvier (7):
  tests/tcg/meson.build: force use of linux/amd64 platform for
    containers
  tests/docker/dockerfiles: refresh images
  tests/lci/refresh: add parameter to override container registry
  tests/docker/dockerfiles: use docker.io/amd64 for tcg-tests containers
  tests/docker/dockerfiles/debian-all-test: remove arch specific bits
  tests/tcg/meson.build: remove cc_docker_host_arch
  tests/tcg/loongarch64/system: deactivate loongarch64-softmmu-memory
    (hang on aarch64 host)

 .../dockerfiles/debian-all-test-cross.docker  | 37 ++++++------
 .../dockerfiles/debian-amd64-cross.docker     |  2 +-
 .../dockerfiles/debian-hexagon-cross.docker   |  2 +-
 .../dockerfiles/debian-i686-cross.docker      |  2 +-
 .../dockerfiles/debian-loongarch-cross.docker |  2 +-
 .../dockerfiles/debian-tricore-cross.docker   |  2 +-
 .../dockerfiles/debian-xtensa-cross.docker    |  2 +-
 tests/docker/dockerfiles/debian.docker        |  1 -
 tests/docker/dockerfiles/ubuntu2404.docker    |  1 -
 tests/lcitool/refresh                         | 58 +++++++++++--------
 tests/tcg/aarch64/meson.build                 |  2 -
 tests/tcg/aarch64/system/meson.build          |  1 -
 tests/tcg/aarch64_be/meson.build              |  1 -
 tests/tcg/alpha/meson.build                   |  2 -
 tests/tcg/alpha/system/meson.build            |  1 -
 tests/tcg/arm/meson.build                     |  2 -
 tests/tcg/arm/system/meson.build              |  1 -
 tests/tcg/hexagon/meson.build                 |  1 -
 tests/tcg/hppa/meson.build                    |  1 -
 tests/tcg/i386/meson.build                    |  2 -
 tests/tcg/i386/system/meson.build             |  1 -
 tests/tcg/loongarch64/meson.build             |  2 -
 tests/tcg/loongarch64/system/meson.build      |  6 +-
 tests/tcg/m68k/meson.build                    |  1 -
 tests/tcg/meson.build                         | 30 +++++-----
 tests/tcg/mips/meson.build                    |  1 -
 tests/tcg/mips64/meson.build                  |  1 -
 tests/tcg/mips64el/meson.build                |  1 -
 tests/tcg/or1k/meson.build                    |  1 -
 tests/tcg/ppc64/meson.build                   |  1 -
 tests/tcg/ppc64le/meson.build                 |  1 -
 tests/tcg/riscv64/meson.build                 |  2 -
 tests/tcg/riscv64/system/meson.build          |  1 -
 tests/tcg/s390x/meson.build                   |  2 -
 tests/tcg/s390x/system/meson.build            |  1 -
 tests/tcg/sh4/meson.build                     |  1 -
 tests/tcg/tricore/meson.build                 |  1 -
 tests/tcg/x86_64/meson.build                  |  2 -
 tests/tcg/x86_64/system/meson.build           |  1 -
 tests/tcg/xtensa/meson.build                  |  3 -
 40 files changed, 78 insertions(+), 105 deletions(-)

-- 
2.43.0



^ permalink raw reply	[flat|nested] 35+ messages in thread

* [PATCH 1/7] tests/tcg/meson.build: force use of linux/amd64 platform for containers
  2026-09-21 23:14 [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
@ 2026-09-21 23:14 ` Pierrick Bouvier
  2026-09-22  4:34   ` Philippe Mathieu-Daudé
  2026-09-22 18:10   ` Daniel P. Berrangé
  2026-09-21 23:14 ` [PATCH 2/7] tests/docker/dockerfiles: refresh images Pierrick Bouvier
                   ` (6 subsequent siblings)
  7 siblings, 2 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-21 23:14 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Alex Bennée, Philippe Mathieu-Daudé,
	Pierrick Bouvier

On hosts != x64_64, we detect if host can run amd64 containers (usually
through qemu-user-binfmt). If not, we deactivate container support.

We could technically stop here and force container engine to use this
platform. Since existing base image (docker.io/library/debian:13-slim)
is multi platforms, container engine will enable this variant by
default.

Now the problem is that if user reuses this image for their own
Dockerfiles, they will run into unpleasant surprise that now, their
container engine is using x86_64 variant by default, on any host.

So, in next commit, we'll change base image we use to x86_64 variant,
which has a single platform: linux/amd64. This ensures we don't generate
any unwanted side effect when building our images.

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
---
 tests/tcg/meson.build | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/tests/tcg/meson.build b/tests/tcg/meson.build
index 75f0a52fd22..4cf4865461e 100644
--- a/tests/tcg/meson.build
+++ b/tests/tcg/meson.build
@@ -81,6 +81,7 @@ tcg_tests_summary += {'gdb': gdb}
 
 docker_supported = false
 container_command = false
+docker_platform = ['--platform', 'linux/amd64']
 if get_option('containers')
   if get_option('container_command') != ''
     # make sure command is working
@@ -99,6 +100,15 @@ if get_option('containers')
                         container_command]
     endif
   endif
+
+  if docker_supported
+    docker_supported = run_command([docker_wrapper, 'run', '--',
+                                    docker_platform,
+                                    'docker.io/amd64/debian:13-slim',
+                                    '/bin/true'],
+                                    check: false).returncode() == 0
+    tcg_tests_summary += {'x86_64 container support': docker_supported}
+  endif
 endif
 tcg_tests_summary += {'container command': container_command}
 if get_option('container_registry') != ''
@@ -253,13 +263,11 @@ foreach target, plan: tcg_tests
               target + ' (possible: [' + ', '.join(allowed) + '])')
       endif
     endforeach
-    docker_host_arch_supported = host_machine.cpu_family() in cc_docker_host_arch
     dockerfile = files('..'/'docker'/'dockerfiles'/cc_dockerfile + '.docker')
     image_name = 'image-' + cc_dockerfile
-    has_docker = docker_host_arch_supported and docker_supported
-    if cc_dockerfile not in image_targets and has_docker
+    if cc_dockerfile not in image_targets and docker_supported
       cmd = [docker_wrapper, 'build', '-f', dockerfile, '-t', 'qemu/' + cc_dockerfile,
-             '--add-current-user']
+             docker_platform, '--add-current-user']
       if get_option('container_registry') != ''
         cmd += ['--registry', get_option('container_registry')]
       endif
@@ -270,7 +278,7 @@ foreach target, plan: tcg_tests
       image_targets += {cc_dockerfile: t}
     endif
 
-    if not has_cc and has_docker
+    if not has_cc and docker_supported
       build_test_depends += image_targets[cc_dockerfile]
       build_test_depend_files += dockerfile
       mount = meson.project_source_root()
@@ -279,6 +287,7 @@ foreach target, plan: tcg_tests
       cc = [docker_wrapper, 'run', '--run-as-current-user', '--',
             # SELinux blocks modification of host fs by default
             '--security-opt', 'label=disable',
+            docker_platform,
             '-w', here, '-v', here + ':' + here, '-v', mount,
             'qemu/' + cc_dockerfile, plan['cc']]
       has_cc = true
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH 2/7] tests/docker/dockerfiles: refresh images
  2026-09-21 23:14 [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
  2026-09-21 23:14 ` [PATCH 1/7] tests/tcg/meson.build: force use of linux/amd64 platform for containers Pierrick Bouvier
@ 2026-09-21 23:14 ` Pierrick Bouvier
  2026-09-22  4:29   ` Philippe Mathieu-Daudé
  2026-09-22 16:15   ` Pierrick Bouvier
  2026-09-21 23:14 ` [PATCH 3/7] tests/lci/refresh: add parameter to override container registry Pierrick Bouvier
                   ` (5 subsequent siblings)
  7 siblings, 2 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-21 23:14 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Alex Bennée, Philippe Mathieu-Daudé,
	Pierrick Bouvier

latest update of libvirt-ci changed packages, but images were not
refreshed.

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
---
 tests/docker/dockerfiles/debian.docker     | 1 -
 tests/docker/dockerfiles/ubuntu2404.docker | 1 -
 2 files changed, 2 deletions(-)

diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
index 77869f71546..2d03ff03c8d 100644
--- a/tests/docker/dockerfiles/debian.docker
+++ b/tests/docker/dockerfiles/debian.docker
@@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libpcre2-dev \
                       libpipewire-0.3-dev \
                       libpixman-1-dev \
-                      libpmem-dev \
                       libpng-dev \
                       libpulse-dev \
                       librbd-dev \
diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
index bb8f4e4e53f..440699a5005 100644
--- a/tests/docker/dockerfiles/ubuntu2404.docker
+++ b/tests/docker/dockerfiles/ubuntu2404.docker
@@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       libpcre2-dev \
                       libpipewire-0.3-dev \
                       libpixman-1-dev \
-                      libpmem-dev \
                       libpng-dev \
                       libpulse-dev \
                       librbd-dev \
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH 3/7] tests/lci/refresh: add parameter to override container registry
  2026-09-21 23:14 [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
  2026-09-21 23:14 ` [PATCH 1/7] tests/tcg/meson.build: force use of linux/amd64 platform for containers Pierrick Bouvier
  2026-09-21 23:14 ` [PATCH 2/7] tests/docker/dockerfiles: refresh images Pierrick Bouvier
@ 2026-09-21 23:14 ` Pierrick Bouvier
  2026-09-22  4:31   ` Philippe Mathieu-Daudé
  2026-09-22 17:55   ` Daniel P. Berrangé
  2026-09-21 23:14 ` [PATCH 4/7] tests/docker/dockerfiles: use docker.io/amd64 for tcg-tests containers Pierrick Bouvier
                   ` (4 subsequent siblings)
  7 siblings, 2 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-21 23:14 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Alex Bennée, Philippe Mathieu-Daudé,
	Pierrick Bouvier

We'll use this in next patch to switch FROM docker.io/library to
docker.io/amd64. It would not make sense to add a new target to
libvirt-ci for this, since it's just a variant of an existing target.
Simply replace container registry with arch specific one.

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
---
 tests/lcitool/refresh | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index 9a71af0e41d..4e3cbb81acf 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -12,6 +12,7 @@
 # or (at your option) any later version. See the COPYING file in
 # the top-level directory.
 
+import re
 import sys
 import subprocess
 
@@ -41,7 +42,7 @@ def atomic_write(filename, content):
         raise
 
 
-def generate(filename, cmd, trailer):
+def generate(filename, cmd, trailer, registry_path):
     print("Generate %s" % filename)
     lcitool = subprocess.run(cmd, capture_output=True, encoding='utf8')
 
@@ -49,6 +50,10 @@ def generate(filename, cmd, trailer):
         raise Exception("Failed to generate %s: %s" % (filename, lcitool.stderr))
 
     content = lcitool.stdout
+
+    if registry_path is not None:
+        content = re.sub("FROM.*/", "FROM " + registry_path + '/', content)
+
     if trailer is not None:
         content += trailer
     atomic_write(filename, content)
@@ -64,7 +69,7 @@ add_user_mapping = [
 ]
 
 def generate_dockerfile(host, target, project="qemu", cross=None, trailer=None,
-                        enable_rust=True):
+                        enable_rust=True, registry_path=None):
     filename = Path(src_dir, "tests", "docker", "dockerfiles", host + ".docker")
     cmd = lcitool_cmd + ["dockerfile"]
     if cross is not None:
@@ -79,26 +84,26 @@ def generate_dockerfile(host, target, project="qemu", cross=None, trailer=None,
 
     if enable_rust:
         trailer += "\nENV ENABLE_RUST=1\n"
-    generate(filename, cmd, trailer)
+    generate(filename, cmd, trailer, registry_path)
 
 
 def generate_vars(target, trailer=None):
     filename = Path(src_dir, ".gitlab-ci.d", target + ".vars")
     cmd = lcitool_cmd + ["variables", "--format", "shell", target, "qemu"]
-    generate(filename, cmd, trailer)
+    generate(filename, cmd, trailer, None)
 
 
 def generate_pkglist(vm, target, project="qemu"):
     filename = Path(src_dir, "tests", "vm", "generated", vm + ".json")
     cmd = lcitool_cmd + ["variables", "--format", "json", target, project]
-    generate(filename, cmd, None)
+    generate(filename, cmd, None, None)
 
 
 def generate_yaml(os, target, arch, trailer=None):
     filename = Path(src_dir, "scripts", "ci", "setup", os, f"{target}-{arch}.yaml")
     cmd = lcitool_cmd + ["variables", "--format", "yaml", "-a",
                          arch, target, "qemu"]
-    generate(filename, cmd, trailer)
+    generate(filename, cmd, trailer, None)
 
 
 alpine_extras = r"""
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH 4/7] tests/docker/dockerfiles: use docker.io/amd64 for tcg-tests containers
  2026-09-21 23:14 [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
                   ` (2 preceding siblings ...)
  2026-09-21 23:14 ` [PATCH 3/7] tests/lci/refresh: add parameter to override container registry Pierrick Bouvier
@ 2026-09-21 23:14 ` Pierrick Bouvier
  2026-09-22  4:31   ` Philippe Mathieu-Daudé
  2026-09-21 23:14 ` [PATCH 5/7] tests/docker/dockerfiles/debian-all-test: remove arch specific bits Pierrick Bouvier
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-21 23:14 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Alex Bennée, Philippe Mathieu-Daudé,
	Pierrick Bouvier

We now restrict those containers to amd64 variants only.

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
---
 tests/docker/dockerfiles/debian-all-test-cross.docker  | 2 +-
 tests/docker/dockerfiles/debian-amd64-cross.docker     | 2 +-
 tests/docker/dockerfiles/debian-hexagon-cross.docker   | 2 +-
 tests/docker/dockerfiles/debian-i686-cross.docker      | 2 +-
 tests/docker/dockerfiles/debian-loongarch-cross.docker | 2 +-
 tests/docker/dockerfiles/debian-tricore-cross.docker   | 2 +-
 tests/docker/dockerfiles/debian-xtensa-cross.docker    | 2 +-
 tests/lcitool/refresh                                  | 6 ++++++
 8 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/tests/docker/dockerfiles/debian-all-test-cross.docker b/tests/docker/dockerfiles/debian-all-test-cross.docker
index c0ab05a5ff3..b6aba26c0c8 100644
--- a/tests/docker/dockerfiles/debian-all-test-cross.docker
+++ b/tests/docker/dockerfiles/debian-all-test-cross.docker
@@ -4,7 +4,7 @@
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
diff --git a/tests/docker/dockerfiles/debian-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker
index 975b9f346e6..728803aeaa1 100644
--- a/tests/docker/dockerfiles/debian-amd64-cross.docker
+++ b/tests/docker/dockerfiles/debian-amd64-cross.docker
@@ -4,7 +4,7 @@
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
diff --git a/tests/docker/dockerfiles/debian-hexagon-cross.docker b/tests/docker/dockerfiles/debian-hexagon-cross.docker
index e07a2be37e2..7753eab9706 100644
--- a/tests/docker/dockerfiles/debian-hexagon-cross.docker
+++ b/tests/docker/dockerfiles/debian-hexagon-cross.docker
@@ -5,7 +5,7 @@
 # needs to be able to build QEMU itself in CI we include its
 # build-deps.
 #
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 # Add deb-src repository sources
 RUN sed -i "s/^Types: deb$/Types: deb deb-src/" \
diff --git a/tests/docker/dockerfiles/debian-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker
index a60b72e05b9..1b8f9609b2a 100644
--- a/tests/docker/dockerfiles/debian-i686-cross.docker
+++ b/tests/docker/dockerfiles/debian-i686-cross.docker
@@ -4,7 +4,7 @@
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN export DEBIAN_FRONTEND=noninteractive && \
     apt-get update && \
diff --git a/tests/docker/dockerfiles/debian-loongarch-cross.docker b/tests/docker/dockerfiles/debian-loongarch-cross.docker
index d2ba07972ce..a053486cf3b 100644
--- a/tests/docker/dockerfiles/debian-loongarch-cross.docker
+++ b/tests/docker/dockerfiles/debian-loongarch-cross.docker
@@ -4,7 +4,7 @@
 # This docker target uses prebuilt toolchains for LoongArch64 from:
 # https://github.com/loongson/build-tools/releases
 #
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 # Add deb-src repository sources
 RUN sed -i "s/^Types: deb$/Types: deb deb-src/" \
diff --git a/tests/docker/dockerfiles/debian-tricore-cross.docker b/tests/docker/dockerfiles/debian-tricore-cross.docker
index 9e7ff321677..94273e498b1 100644
--- a/tests/docker/dockerfiles/debian-tricore-cross.docker
+++ b/tests/docker/dockerfiles/debian-tricore-cross.docker
@@ -9,7 +9,7 @@
 #
 # SPDX-License-Identifier: GPL-2.0-or-later
 #
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN apt update && \
     DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
diff --git a/tests/docker/dockerfiles/debian-xtensa-cross.docker b/tests/docker/dockerfiles/debian-xtensa-cross.docker
index 0eb6d98cc75..801768ce11d 100644
--- a/tests/docker/dockerfiles/debian-xtensa-cross.docker
+++ b/tests/docker/dockerfiles/debian-xtensa-cross.docker
@@ -5,7 +5,7 @@
 # using a prebuilt toolchains for Xtensa cores from:
 # https://github.com/foss-xtensa/toolchain/releases
 #
-FROM docker.io/library/debian:13-slim
+FROM docker.io/amd64/debian:13-slim
 
 RUN apt-get update && \
     DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index 4e3cbb81acf..ceabb9e978a 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -240,6 +240,8 @@ def cross_build(prefix, targets):
 # Please keep each group sorted alphabetically for easy reading.
 #
 
+DOCKER_IO_AMD64 = "docker.io/amd64"
+
 try:
     #
     # Standard native builds
@@ -264,6 +266,7 @@ try:
     # Cross compiling builds
     #
     generate_dockerfile("debian-amd64-cross", "debian-13",
+                        registry_path=DOCKER_IO_AMD64,
                         cross="x86_64",
                         trailer=cross_build("x86_64-linux-gnu-",
                                             "x86_64-softmmu,"
@@ -281,6 +284,7 @@ try:
                                             "arm-softmmu,arm-linux-user"))
 
     generate_dockerfile("debian-i686-cross", "debian-13",
+                        registry_path=DOCKER_IO_AMD64,
                         cross="i686",
                         trailer=cross_build("i686-linux-gnu-",
                                             "i386-softmmu,i386-linux-user"))
@@ -313,10 +317,12 @@ try:
     # tests.
 
     generate_dockerfile("debian-all-test-cross", "debian-13",
+                        registry_path=DOCKER_IO_AMD64,
                         project="qemu-minimal",
                         enable_rust=False,
                         trailer=debian_all_test_cross_compilers)
 
+
     #
     # GitLab packages lists
     #
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH 5/7] tests/docker/dockerfiles/debian-all-test: remove arch specific bits
  2026-09-21 23:14 [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
                   ` (3 preceding siblings ...)
  2026-09-21 23:14 ` [PATCH 4/7] tests/docker/dockerfiles: use docker.io/amd64 for tcg-tests containers Pierrick Bouvier
@ 2026-09-21 23:14 ` Pierrick Bouvier
  2026-09-21 23:14 ` [PATCH 6/7] tests/tcg/meson.build: remove cc_docker_host_arch Pierrick Bouvier
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-21 23:14 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Alex Bennée, Philippe Mathieu-Daudé,
	Pierrick Bouvier

Now that this image is amd64 only, we don't need those ifs anymore.

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
---
 .../dockerfiles/debian-all-test-cross.docker  | 35 +++++++++----------
 tests/lcitool/refresh                         | 35 +++++++++----------
 2 files changed, 34 insertions(+), 36 deletions(-)

diff --git a/tests/docker/dockerfiles/debian-all-test-cross.docker b/tests/docker/dockerfiles/debian-all-test-cross.docker
index b6aba26c0c8..1eb419bb8fd 100644
--- a/tests/docker/dockerfiles/debian-all-test-cross.docker
+++ b/tests/docker/dockerfiles/debian-all-test-cross.docker
@@ -66,15 +66,15 @@ RUN apt update && \
   rsync
 
 # https://openrisc.io/2025/04/20/toolchainrootfsbins
-RUN if dpkg-architecture -e amd64; then \
-cd /tmp && \
+RUN cd /tmp && \
   wget -q https://github.com/stffrdhrn/or1k-toolchain-build/releases/download/or1k-16.1.0-20260614/or1k-none-linux-musl-16.1.0-20260614.tar.xz && \
   tar --no-same-owner -xf *.tar.xz && \
   rsync -a or1k-none-linux-musl/ /usr/ && \
-  rm -rf /tmp/*; \
-fi
+  rm -rf /tmp/*
 
-ENV AVAILABLE_COMPILERS="\
+RUN apt update && \
+  DEBIAN_FRONTEND=noninteractive eatmydata \
+  apt install -y --no-install-recommends \
   gcc-aarch64-linux-gnu \
   libc6-dev-arm64-cross \
   gcc-arm-linux-gnueabihf \
@@ -97,19 +97,18 @@ ENV AVAILABLE_COMPILERS="\
   libc6-dev-s390x-cross\
   gcc-sh4-linux-gnu \
   libc6-dev-sh4-cross \
-  "
-RUN if dpkg-architecture -e amd64; then \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-hppa-linux-gnu libc6-dev-hppa-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-m68k-linux-gnu libc6-dev-m68k-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-powerpc-linux-gnu libc6-dev-powerpc-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-powerpc64-linux-gnu libc6-dev-ppc64-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-sparc64-linux-gnu libc6-dev-sparc64-cross"; \
-fi && \
-apt update && \
-DEBIAN_FRONTEND=noninteractive eatmydata \
-apt install -y --no-install-recommends \
-${AVAILABLE_COMPILERS} && \
-dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt
+  gcc-hppa-linux-gnu \
+  libc6-dev-hppa-cross \
+  gcc-m68k-linux-gnu \
+  libc6-dev-m68k-cross \
+  gcc-powerpc-linux-gnu \
+  libc6-dev-powerpc-cross \
+  gcc-powerpc64-linux-gnu \
+  libc6-dev-ppc64-cross \
+  gcc-sparc64-linux-gnu \
+  libc6-dev-sparc64-cross \
+  && \
+  dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt
 ENV QEMU_CONFIGURE_OPTS=--disable-docs
 ENV DEF_TARGET_LIST=aarch64-linux-user,alpha-linux-user,arm-linux-user,hppa-linux-user,i386-linux-user,m68k-linux-user,mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user,ppc-linux-user,ppc64-linux-user,ppc64le-linux-user,riscv64-linux-user,s390x-linux-user,sh4-linux-user,sparc64-linux-user
 # As a final step configure the user (if env is defined)
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index ceabb9e978a..2bf5896a7d3 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -182,15 +182,15 @@ RUN apt update && \
   rsync
 
 # https://openrisc.io/2025/04/20/toolchainrootfsbins
-RUN if dpkg-architecture -e amd64; then \
-cd /tmp && \
+RUN cd /tmp && \
   wget -q https://github.com/stffrdhrn/or1k-toolchain-build/releases/download/or1k-16.1.0-20260614/or1k-none-linux-musl-16.1.0-20260614.tar.xz && \
   tar --no-same-owner -xf *.tar.xz && \
   rsync -a or1k-none-linux-musl/ /usr/ && \
-  rm -rf /tmp/*; \
-fi
+  rm -rf /tmp/*
 
-ENV AVAILABLE_COMPILERS="\
+RUN apt update && \
+  DEBIAN_FRONTEND=noninteractive eatmydata \
+  apt install -y --no-install-recommends \
   gcc-aarch64-linux-gnu \
   libc6-dev-arm64-cross \
   gcc-arm-linux-gnueabihf \
@@ -213,19 +213,18 @@ ENV AVAILABLE_COMPILERS="\
   libc6-dev-s390x-cross\
   gcc-sh4-linux-gnu \
   libc6-dev-sh4-cross \
-  "
-RUN if dpkg-architecture -e amd64; then \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-hppa-linux-gnu libc6-dev-hppa-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-m68k-linux-gnu libc6-dev-m68k-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-powerpc-linux-gnu libc6-dev-powerpc-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-powerpc64-linux-gnu libc6-dev-ppc64-cross"; \
-  export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-sparc64-linux-gnu libc6-dev-sparc64-cross"; \
-fi && \
-apt update && \
-DEBIAN_FRONTEND=noninteractive eatmydata \
-apt install -y --no-install-recommends \
-${AVAILABLE_COMPILERS} && \
-dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt
+  gcc-hppa-linux-gnu \
+  libc6-dev-hppa-cross \
+  gcc-m68k-linux-gnu \
+  libc6-dev-m68k-cross \
+  gcc-powerpc-linux-gnu \
+  libc6-dev-powerpc-cross \
+  gcc-powerpc64-linux-gnu \
+  libc6-dev-ppc64-cross \
+  gcc-sparc64-linux-gnu \
+  libc6-dev-sparc64-cross \
+  && \
+  dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt
 ENV QEMU_CONFIGURE_OPTS=--disable-docs
 ENV DEF_TARGET_LIST=aarch64-linux-user,alpha-linux-user,arm-linux-user,hppa-linux-user,i386-linux-user,m68k-linux-user,mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user,ppc-linux-user,ppc64-linux-user,ppc64le-linux-user,riscv64-linux-user,s390x-linux-user,sh4-linux-user,sparc64-linux-user
 """
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH 6/7] tests/tcg/meson.build: remove cc_docker_host_arch
  2026-09-21 23:14 [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
                   ` (4 preceding siblings ...)
  2026-09-21 23:14 ` [PATCH 5/7] tests/docker/dockerfiles/debian-all-test: remove arch specific bits Pierrick Bouvier
@ 2026-09-21 23:14 ` Pierrick Bouvier
  2026-09-21 23:14 ` [PATCH 7/7] tests/tcg/loongarch64/system: deactivate loongarch64-softmmu-memory (hang on aarch64 host) Pierrick Bouvier
  2026-09-23 18:59 ` [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
  7 siblings, 0 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-21 23:14 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Alex Bennée, Philippe Mathieu-Daudé,
	Pierrick Bouvier

Now we know all container images used for tcg-tests are x86_64 only, we
don't need to specify anymore which arch they support.

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
---
 tests/tcg/aarch64/meson.build            |  2 --
 tests/tcg/aarch64/system/meson.build     |  1 -
 tests/tcg/aarch64_be/meson.build         |  1 -
 tests/tcg/alpha/meson.build              |  2 --
 tests/tcg/alpha/system/meson.build       |  1 -
 tests/tcg/arm/meson.build                |  2 --
 tests/tcg/arm/system/meson.build         |  1 -
 tests/tcg/hexagon/meson.build            |  1 -
 tests/tcg/hppa/meson.build               |  1 -
 tests/tcg/i386/meson.build               |  2 --
 tests/tcg/i386/system/meson.build        |  1 -
 tests/tcg/loongarch64/meson.build        |  2 --
 tests/tcg/loongarch64/system/meson.build |  1 -
 tests/tcg/m68k/meson.build               |  1 -
 tests/tcg/meson.build                    | 11 +----------
 tests/tcg/mips/meson.build               |  1 -
 tests/tcg/mips64/meson.build             |  1 -
 tests/tcg/mips64el/meson.build           |  1 -
 tests/tcg/or1k/meson.build               |  1 -
 tests/tcg/ppc64/meson.build              |  1 -
 tests/tcg/ppc64le/meson.build            |  1 -
 tests/tcg/riscv64/meson.build            |  2 --
 tests/tcg/riscv64/system/meson.build     |  1 -
 tests/tcg/s390x/meson.build              |  2 --
 tests/tcg/s390x/system/meson.build       |  1 -
 tests/tcg/sh4/meson.build                |  1 -
 tests/tcg/tricore/meson.build            |  1 -
 tests/tcg/x86_64/meson.build             |  2 --
 tests/tcg/x86_64/system/meson.build      |  1 -
 tests/tcg/xtensa/meson.build             |  3 ---
 30 files changed, 1 insertion(+), 49 deletions(-)

diff --git a/tests/tcg/aarch64/meson.build b/tests/tcg/aarch64/meson.build
index 28498e82cba..cc2c59fb4b6 100644
--- a/tests/tcg/aarch64/meson.build
+++ b/tests/tcg/aarch64/meson.build
@@ -1,6 +1,5 @@
 cc = 'aarch64-linux-gnu-gcc'
 cc_dockerfile = 'debian-all-test-cross'
-cc_docker_host_arch = ['aarch64', 'x86_64']
 
 cc_feat_cflags = {
   'aes': '-march=armv8-a+aes',
@@ -198,7 +197,6 @@ if 'qemu-aarch64' in emulators
     'aarch64-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'aarch64',
       'gdb_arch': 'aarch64',
diff --git a/tests/tcg/aarch64/system/meson.build b/tests/tcg/aarch64/system/meson.build
index 94e16ba3300..6ba35a9f722 100644
--- a/tests/tcg/aarch64/system/meson.build
+++ b/tests/tcg/aarch64/system/meson.build
@@ -97,7 +97,6 @@ if 'qemu-system-aarch64' in emulators
     'aarch64-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'aarch64/system',
       'gdb_arch': 'aarch64',
diff --git a/tests/tcg/aarch64_be/meson.build b/tests/tcg/aarch64_be/meson.build
index 9ea111f9885..e45a49ec2da 100644
--- a/tests/tcg/aarch64_be/meson.build
+++ b/tests/tcg/aarch64_be/meson.build
@@ -11,7 +11,6 @@ if 'qemu-aarch64_be' in emulators
     'aarch64_be-linux-user': {
       'cc': 'aarch64-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['aarch64', 'x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'aarch64_be',
       'gdb_arch': 'aarch64_be',
diff --git a/tests/tcg/alpha/meson.build b/tests/tcg/alpha/meson.build
index fe60ce2496a..30ea2a6978e 100644
--- a/tests/tcg/alpha/meson.build
+++ b/tests/tcg/alpha/meson.build
@@ -1,6 +1,5 @@
 cc = 'alpha-linux-gnu-gcc'
 cc_dockerfile = 'debian-all-test-cross'
-cc_docker_host_arch = ['aarch64', 'x86_64']
 
 subdir('system')
 
@@ -45,7 +44,6 @@ if 'qemu-alpha' in emulators
     'alpha-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'alpha',
       'gdb_arch': 'alpha',
       'qemu': emulators['qemu-alpha'],
diff --git a/tests/tcg/alpha/system/meson.build b/tests/tcg/alpha/system/meson.build
index b10f2c3e28d..5388e17a2f7 100644
--- a/tests/tcg/alpha/system/meson.build
+++ b/tests/tcg/alpha/system/meson.build
@@ -37,7 +37,6 @@ if 'qemu-system-alpha' in emulators
     'alpha-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'alpha/system',
       'gdb_arch': 'alpha',
       'qemu': emulators['qemu-system-alpha'],
diff --git a/tests/tcg/arm/meson.build b/tests/tcg/arm/meson.build
index 1b491cea026..30154efaec8 100644
--- a/tests/tcg/arm/meson.build
+++ b/tests/tcg/arm/meson.build
@@ -1,6 +1,5 @@
 cc = 'arm-linux-gnueabihf-gcc'
 cc_dockerfile = 'debian-all-test-cross'
-cc_docker_host_arch = ['aarch64', 'x86_64']
 
 subdir('system')
 
@@ -70,7 +69,6 @@ if 'qemu-arm' in emulators
     'arm-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'arm',
       'gdb_arch': 'arm',
       'qemu': emulators['qemu-arm'],
diff --git a/tests/tcg/arm/system/meson.build b/tests/tcg/arm/system/meson.build
index 52869976704..93d0cfec24e 100644
--- a/tests/tcg/arm/system/meson.build
+++ b/tests/tcg/arm/system/meson.build
@@ -65,7 +65,6 @@ if 'qemu-system-arm' in emulators
     'arm-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'arm/system',
       'gdb_arch': 'arm',
       'qemu': emulators['qemu-system-arm'],
diff --git a/tests/tcg/hexagon/meson.build b/tests/tcg/hexagon/meson.build
index 6e36a9a1220..f3d20091aa9 100644
--- a/tests/tcg/hexagon/meson.build
+++ b/tests/tcg/hexagon/meson.build
@@ -111,7 +111,6 @@ if 'qemu-hexagon' in emulators
     'hexagon-linux-user': {
       'cc': 'hexagon-unknown-linux-musl-clang',
       'cc_dockerfile': 'debian-hexagon-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'folder': 'hexagon',
       'gdb_arch': 'hexagon_is_not_supported_by_gdb',
       'qemu': emulators['qemu-hexagon'],
diff --git a/tests/tcg/hppa/meson.build b/tests/tcg/hppa/meson.build
index 9ca8f29fa93..01d4554d993 100644
--- a/tests/tcg/hppa/meson.build
+++ b/tests/tcg/hppa/meson.build
@@ -11,7 +11,6 @@ if 'qemu-hppa' in emulators
     'hppa-linux-user': {
       'cc': 'hppa-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'hppa',
       'gdb_arch': 'hppa',
diff --git a/tests/tcg/i386/meson.build b/tests/tcg/i386/meson.build
index 5cda03655fa..04d438a062a 100644
--- a/tests/tcg/i386/meson.build
+++ b/tests/tcg/i386/meson.build
@@ -1,6 +1,5 @@
 cc = 'i686-linux-gnu-gcc'
 cc_dockerfile = 'debian-i686-cross'
-cc_docker_host_arch = ['x86_64']
 
 subdir('system')
 
@@ -48,7 +47,6 @@ if 'qemu-i386' in emulators
     'i386-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'i386',
       'gdb_arch': 'i386',
       'qemu': emulators['qemu-i386'],
diff --git a/tests/tcg/i386/system/meson.build b/tests/tcg/i386/system/meson.build
index d3f73997c7f..0986f5898d4 100644
--- a/tests/tcg/i386/system/meson.build
+++ b/tests/tcg/i386/system/meson.build
@@ -39,7 +39,6 @@ if 'qemu-system-i386' in emulators
     'i386-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'i386/system',
       'gdb_arch': 'i386',
       'qemu': emulators['qemu-system-i386'],
diff --git a/tests/tcg/loongarch64/meson.build b/tests/tcg/loongarch64/meson.build
index 1d62de64ed6..4dd64f16d87 100644
--- a/tests/tcg/loongarch64/meson.build
+++ b/tests/tcg/loongarch64/meson.build
@@ -1,6 +1,5 @@
 cc = 'loongarch64-unknown-linux-gnu-gcc'
 cc_dockerfile = 'debian-loongarch-cross'
-cc_docker_host_arch = ['x86_64']
 
 subdir('system')
 
@@ -22,7 +21,6 @@ if 'qemu-loongarch64' in emulators
     'loongarch64-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'loongarch64',
       'gdb_arch': 'loongarch64',
       'qemu': emulators['qemu-loongarch64'],
diff --git a/tests/tcg/loongarch64/system/meson.build b/tests/tcg/loongarch64/system/meson.build
index 5bf4c56e385..035dd5f85fb 100644
--- a/tests/tcg/loongarch64/system/meson.build
+++ b/tests/tcg/loongarch64/system/meson.build
@@ -38,7 +38,6 @@ if 'qemu-system-loongarch64' in emulators
     'loongarch64-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'loongarch64/system',
       'gdb_arch': 'loongarch64',
       'qemu': emulators['qemu-system-loongarch64'],
diff --git a/tests/tcg/m68k/meson.build b/tests/tcg/m68k/meson.build
index 8ecf450ac68..4b73d7fc57d 100644
--- a/tests/tcg/m68k/meson.build
+++ b/tests/tcg/m68k/meson.build
@@ -12,7 +12,6 @@ if 'qemu-m68k' in emulators
     'm68k-linux-user': {
       'cc': 'm68k-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'm68k',
       'gdb_arch': 'm68k',
diff --git a/tests/tcg/meson.build b/tests/tcg/meson.build
index 4cf4865461e..f46516d6e72 100644
--- a/tests/tcg/meson.build
+++ b/tests/tcg/meson.build
@@ -22,7 +22,6 @@ tcg_tests = {}
 #   'name_of_target': {
 #     'cc': 'cross_compiler',
 #     'cc_dockerfile': 'name_of_dockerfile',
-#     'cc_docker_host_arch': ['host_arch_supported (meson cpu)', ...],
 #     'cc_feat_cflags': {
 #       'name': ['feature cflags'],
 #       ...
@@ -208,7 +207,7 @@ foreach target, plan: tcg_tests
 
   # return a clear error if user misspell a target entry
   foreach key, _ : plan
-    allowed = ['cc', 'cc_dockerfile', 'cc_docker_host_arch', 'cc_feat_cflags',
+    allowed = ['cc', 'cc_dockerfile', 'cc_feat_cflags',
                'folder', 'gdb_arch', 'gdb_feat_version', 'qemu', 'tests']
     if key not in allowed
       error('unknown tcg test plan entry \'' + key + '\' for target ' + target +
@@ -255,14 +254,6 @@ foreach target, plan: tcg_tests
 
   if 'cc_dockerfile' in plan
     cc_dockerfile = plan['cc_dockerfile']
-    cc_docker_host_arch = plan['cc_docker_host_arch']
-    allowed = ['aarch64', 'x86_64']
-    foreach arch: cc_docker_host_arch
-      if arch not in allowed
-        error('incorrect docker arch ' + arch + ' for target ' +
-              target + ' (possible: [' + ', '.join(allowed) + '])')
-      endif
-    endforeach
     dockerfile = files('..'/'docker'/'dockerfiles'/cc_dockerfile + '.docker')
     image_name = 'image-' + cc_dockerfile
     if cc_dockerfile not in image_targets and docker_supported
diff --git a/tests/tcg/mips/meson.build b/tests/tcg/mips/meson.build
index 3c4f6ec482d..efda857ab61 100644
--- a/tests/tcg/mips/meson.build
+++ b/tests/tcg/mips/meson.build
@@ -14,7 +14,6 @@ if 'qemu-mips' in emulators
     'mips-linux-user': {
       'cc': 'mips-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['aarch64', 'x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'mips',
       'gdb_arch': 'mips',
diff --git a/tests/tcg/mips64/meson.build b/tests/tcg/mips64/meson.build
index 69391c23187..b8eb6705eae 100644
--- a/tests/tcg/mips64/meson.build
+++ b/tests/tcg/mips64/meson.build
@@ -16,7 +16,6 @@ if 'qemu-mips64' in emulators
     'mips64-linux-user': {
       'cc': 'mips64-linux-gnuabi64-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['aarch64', 'x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'mips64',
       'gdb_arch': 'mips64',
diff --git a/tests/tcg/mips64el/meson.build b/tests/tcg/mips64el/meson.build
index f6c0fae7981..2aafbba750d 100644
--- a/tests/tcg/mips64el/meson.build
+++ b/tests/tcg/mips64el/meson.build
@@ -3,7 +3,6 @@ if 'qemu-mips64el' in emulators
     'mips64el-linux-user': {
       'cc': 'mips64el-linux-gnuabi64-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['aarch64', 'x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'mips64el',
       'gdb_arch': 'mips64el',
diff --git a/tests/tcg/or1k/meson.build b/tests/tcg/or1k/meson.build
index 5151e8f361f..c89bb372b47 100644
--- a/tests/tcg/or1k/meson.build
+++ b/tests/tcg/or1k/meson.build
@@ -61,7 +61,6 @@ if 'qemu-or1k' in emulators
     'or1k-linux-user': {
       'cc': 'or1k-none-linux-musl-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'or1k',
       'gdb_arch': 'or1k',
diff --git a/tests/tcg/ppc64/meson.build b/tests/tcg/ppc64/meson.build
index c7e495f3d34..8cca4d65a4c 100644
--- a/tests/tcg/ppc64/meson.build
+++ b/tests/tcg/ppc64/meson.build
@@ -44,7 +44,6 @@ if 'qemu-ppc64' in emulators
     'ppc64-linux-user': {
       'cc': 'powerpc64-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'ppc64',
       'gdb_arch': 'ppc64',
diff --git a/tests/tcg/ppc64le/meson.build b/tests/tcg/ppc64le/meson.build
index 720aa167f23..a0f3e62e4d3 100644
--- a/tests/tcg/ppc64le/meson.build
+++ b/tests/tcg/ppc64le/meson.build
@@ -3,7 +3,6 @@ if 'qemu-ppc64le' in emulators
     'ppc64le-linux-user': {
       'cc': 'powerpc64le-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'ppc64le',
       'gdb_arch': 'ppc64le',
diff --git a/tests/tcg/riscv64/meson.build b/tests/tcg/riscv64/meson.build
index 2292bf8ed1b..5ee20a1e98d 100644
--- a/tests/tcg/riscv64/meson.build
+++ b/tests/tcg/riscv64/meson.build
@@ -1,6 +1,5 @@
 cc = 'riscv64-linux-gnu-gcc'
 cc_dockerfile = 'debian-all-test-cross'
-cc_docker_host_arch = ['aarch64', 'x86_64']
 
 subdir('system')
 
@@ -28,7 +27,6 @@ if 'qemu-riscv64' in emulators
     'riscv64-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'riscv64',
       'gdb_arch': 'riscv64',
       'qemu': emulators['qemu-riscv64'],
diff --git a/tests/tcg/riscv64/system/meson.build b/tests/tcg/riscv64/system/meson.build
index 8604c2a45a9..87c3f9f11ce 100644
--- a/tests/tcg/riscv64/system/meson.build
+++ b/tests/tcg/riscv64/system/meson.build
@@ -66,7 +66,6 @@ if 'qemu-system-riscv64' in emulators
     'riscv64-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'riscv64',
       'gdb_arch': 'riscv64',
       'qemu': emulators['qemu-system-riscv64'],
diff --git a/tests/tcg/s390x/meson.build b/tests/tcg/s390x/meson.build
index c9af66aa1b0..35e27b47141 100644
--- a/tests/tcg/s390x/meson.build
+++ b/tests/tcg/s390x/meson.build
@@ -1,6 +1,5 @@
 cc = 's390x-linux-gnu-gcc'
 cc_dockerfile = 'debian-all-test-cross'
-cc_docker_host_arch = ['aarch64', 'x86_64']
 
 cc_feat_cflags = {
   'z14': '-march=z14',
@@ -131,7 +130,6 @@ if 'qemu-s390x' in emulators
     's390x-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 's390x',
       'gdb_arch': 's390x',
diff --git a/tests/tcg/s390x/system/meson.build b/tests/tcg/s390x/system/meson.build
index 1e360e70821..ef19c4831fd 100644
--- a/tests/tcg/s390x/system/meson.build
+++ b/tests/tcg/s390x/system/meson.build
@@ -83,7 +83,6 @@ if 'qemu-system-s390x' in emulators
     's390x-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 's390x',
       'gdb_arch': 's390x',
diff --git a/tests/tcg/sh4/meson.build b/tests/tcg/sh4/meson.build
index d73df074497..12b24fffc77 100644
--- a/tests/tcg/sh4/meson.build
+++ b/tests/tcg/sh4/meson.build
@@ -14,7 +14,6 @@ if 'qemu-sh4' in emulators
     'sh4-linux-user': {
       'cc': 'sh4-linux-gnu-gcc',
       'cc_dockerfile': 'debian-all-test-cross',
-      'cc_docker_host_arch': ['aarch64', 'x86_64'],
       'cc_feat_cflags': cc_feat_cflags,
       'folder': 'sh4',
       'gdb_arch': 'sh4',
diff --git a/tests/tcg/tricore/meson.build b/tests/tcg/tricore/meson.build
index d0bf55dedce..837a3d5e22f 100644
--- a/tests/tcg/tricore/meson.build
+++ b/tests/tcg/tricore/meson.build
@@ -47,7 +47,6 @@ if 'qemu-system-tricore' in emulators
     'tricore-softmmu': {
       'cc': 'tricore-gcc',
       'cc_dockerfile': 'debian-tricore-cross',
-      'cc_docker_host_arch': ['x86_64'],
       'folder': 'tricore',
       'gdb_arch': 'tricore',
       'qemu': emulators['qemu-system-tricore'],
diff --git a/tests/tcg/x86_64/meson.build b/tests/tcg/x86_64/meson.build
index ab336eca9b2..787a2ca61b2 100644
--- a/tests/tcg/x86_64/meson.build
+++ b/tests/tcg/x86_64/meson.build
@@ -1,6 +1,5 @@
 cc = 'x86_64-linux-gnu-gcc'
 cc_dockerfile = 'debian-amd64-cross'
-cc_docker_host_arch = ['x86_64']
 
 subdir('system')
 
@@ -74,7 +73,6 @@ if 'qemu-x86_64' in emulators
     'x86_64-linux-user': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'x86_64',
       'gdb_arch': 'x86_64',
       'qemu': emulators['qemu-x86_64'],
diff --git a/tests/tcg/x86_64/system/meson.build b/tests/tcg/x86_64/system/meson.build
index 80110d0ae57..43e7d7afa85 100644
--- a/tests/tcg/x86_64/system/meson.build
+++ b/tests/tcg/x86_64/system/meson.build
@@ -53,7 +53,6 @@ if 'qemu-system-x86_64' in emulators
     'x86_64-softmmu': {
       'cc': cc,
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'x86_64/system',
       'gdb_arch': 'x86_64',
       'qemu': emulators['qemu-system-x86_64'],
diff --git a/tests/tcg/xtensa/meson.build b/tests/tcg/xtensa/meson.build
index bb1dd1542e5..5ff9c6cd548 100644
--- a/tests/tcg/xtensa/meson.build
+++ b/tests/tcg/xtensa/meson.build
@@ -79,14 +79,12 @@ foreach core: cores
 endforeach
 
 cc_dockerfile = 'debian-xtensa-cross'
-cc_docker_host_arch = ['x86_64']
 
 if 'qemu-system-xtensa' in emulators
   tcg_tests += {
     'xtensa-softmmu': {
       'cc': 'xtensa-dc232b-elf-gcc',
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'xtensa',
       'gdb_arch': 'xtensa',
       'qemu': emulators['qemu-system-xtensa'],
@@ -100,7 +98,6 @@ if 'qemu-system-xtensaeb' in emulators
     'xtensaeb-softmmu': {
       'cc': 'xtensa-test_kc705_be-elf-gcc',
       'cc_dockerfile': cc_dockerfile,
-      'cc_docker_host_arch': cc_docker_host_arch,
       'folder': 'xtensa',
       'gdb_arch': 'xtensaeb',
       'qemu': emulators['qemu-system-xtensaeb'],
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH 7/7] tests/tcg/loongarch64/system: deactivate loongarch64-softmmu-memory (hang on aarch64 host)
  2026-09-21 23:14 [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
                   ` (5 preceding siblings ...)
  2026-09-21 23:14 ` [PATCH 6/7] tests/tcg/meson.build: remove cc_docker_host_arch Pierrick Bouvier
@ 2026-09-21 23:14 ` Pierrick Bouvier
  2026-09-23 18:59 ` [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
  7 siblings, 0 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-21 23:14 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Alex Bennée, Philippe Mathieu-Daudé,
	Pierrick Bouvier

Created associated issue:
https://gitlab.com/qemu-project/qemu/-/work_items/4567

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
---
 tests/tcg/loongarch64/system/meson.build | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tests/tcg/loongarch64/system/meson.build b/tests/tcg/loongarch64/system/meson.build
index 035dd5f85fb..33e9f58cc28 100644
--- a/tests/tcg/loongarch64/system/meson.build
+++ b/tests/tcg/loongarch64/system/meson.build
@@ -24,6 +24,11 @@ foreach t: tcg_tests['multiarch-softmmu']['tests']
     new_cflags = cflags
     if fs.stem(src) == 'memory'
       new_cflags += '-DCHECK_UNALIGNED=0'
+      # TODO: memory test hangs on aarch64 host
+      # https://gitlab.com/qemu-project/qemu/-/work_items/4567
+      if host_machine.cpu_family() == 'aarch64'
+        continue
+      endif
     endif
     if src not in multi_src
       setup += {'cflags': [new_cflags]}
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/7] tests/docker/dockerfiles: refresh images
  2026-09-21 23:14 ` [PATCH 2/7] tests/docker/dockerfiles: refresh images Pierrick Bouvier
@ 2026-09-22  4:29   ` Philippe Mathieu-Daudé
  2026-09-22 16:15   ` Pierrick Bouvier
  1 sibling, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-09-22  4:29 UTC (permalink / raw)
  To: Pierrick Bouvier, qemu-devel; +Cc: Richard Henderson, Alex Bennée

On 22/9/26 01:14, Pierrick Bouvier wrote:
> latest update of libvirt-ci changed packages, but images were not
> refreshed.
> 
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
> ---
>   tests/docker/dockerfiles/debian.docker     | 1 -
>   tests/docker/dockerfiles/ubuntu2404.docker | 1 -
>   2 files changed, 2 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 4/7] tests/docker/dockerfiles: use docker.io/amd64 for tcg-tests containers
  2026-09-21 23:14 ` [PATCH 4/7] tests/docker/dockerfiles: use docker.io/amd64 for tcg-tests containers Pierrick Bouvier
@ 2026-09-22  4:31   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-09-22  4:31 UTC (permalink / raw)
  To: Pierrick Bouvier, qemu-devel; +Cc: Richard Henderson, Alex Bennée

On 22/9/26 01:14, Pierrick Bouvier wrote:
> We now restrict those containers to amd64 variants only.
> 
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
> ---
>   tests/docker/dockerfiles/debian-all-test-cross.docker  | 2 +-
>   tests/docker/dockerfiles/debian-amd64-cross.docker     | 2 +-
>   tests/docker/dockerfiles/debian-hexagon-cross.docker   | 2 +-
>   tests/docker/dockerfiles/debian-i686-cross.docker      | 2 +-
>   tests/docker/dockerfiles/debian-loongarch-cross.docker | 2 +-
>   tests/docker/dockerfiles/debian-tricore-cross.docker   | 2 +-
>   tests/docker/dockerfiles/debian-xtensa-cross.docker    | 2 +-
>   tests/lcitool/refresh                                  | 6 ++++++
>   8 files changed, 13 insertions(+), 7 deletions(-)

Thanks for cleaning this, this was annoying on arm64 hosts.

Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 3/7] tests/lci/refresh: add parameter to override container registry
  2026-09-21 23:14 ` [PATCH 3/7] tests/lci/refresh: add parameter to override container registry Pierrick Bouvier
@ 2026-09-22  4:31   ` Philippe Mathieu-Daudé
  2026-09-22 17:55   ` Daniel P. Berrangé
  1 sibling, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-09-22  4:31 UTC (permalink / raw)
  To: Pierrick Bouvier, qemu-devel; +Cc: Richard Henderson, Alex Bennée

On 22/9/26 01:14, Pierrick Bouvier wrote:
> We'll use this in next patch to switch FROM docker.io/library to
> docker.io/amd64. It would not make sense to add a new target to
> libvirt-ci for this, since it's just a variant of an existing target.
> Simply replace container registry with arch specific one.
> 
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
> ---
>   tests/lcitool/refresh | 17 +++++++++++------
>   1 file changed, 11 insertions(+), 6 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 1/7] tests/tcg/meson.build: force use of linux/amd64 platform for containers
  2026-09-21 23:14 ` [PATCH 1/7] tests/tcg/meson.build: force use of linux/amd64 platform for containers Pierrick Bouvier
@ 2026-09-22  4:34   ` Philippe Mathieu-Daudé
  2026-09-22 18:10   ` Daniel P. Berrangé
  1 sibling, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-09-22  4:34 UTC (permalink / raw)
  To: Pierrick Bouvier, qemu-devel; +Cc: Richard Henderson, Alex Bennée

On 22/9/26 01:14, Pierrick Bouvier wrote:
> On hosts != x64_64, we detect if host can run amd64 containers (usually
> through qemu-user-binfmt). If not, we deactivate container support.
> 
> We could technically stop here and force container engine to use this
> platform. Since existing base image (docker.io/library/debian:13-slim)
> is multi platforms, container engine will enable this variant by
> default.
> 
> Now the problem is that if user reuses this image for their own
> Dockerfiles, they will run into unpleasant surprise that now, their
> container engine is using x86_64 variant by default, on any host.
> 
> So, in next commit, we'll change base image we use to x86_64 variant,
> which has a single platform: linux/amd64. This ensures we don't generate
> any unwanted side effect when building our images.
> 
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
> ---
>   tests/tcg/meson.build | 19 ++++++++++++++-----
>   1 file changed, 14 insertions(+), 5 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/7] tests/docker/dockerfiles: refresh images
  2026-09-21 23:14 ` [PATCH 2/7] tests/docker/dockerfiles: refresh images Pierrick Bouvier
  2026-09-22  4:29   ` Philippe Mathieu-Daudé
@ 2026-09-22 16:15   ` Pierrick Bouvier
  2026-09-22 16:41     ` Philippe Mathieu-Daudé
  2026-09-22 16:54     ` Daniel P. Berrangé
  1 sibling, 2 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-22 16:15 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Alex Bennée, Philippe Mathieu-Daudé

On 9/21/2026 4:14 PM, Pierrick Bouvier wrote:
> latest update of libvirt-ci changed packages, but images were not
> refreshed.
> 
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
> ---
>  tests/docker/dockerfiles/debian.docker     | 1 -
>  tests/docker/dockerfiles/ubuntu2404.docker | 1 -
>  2 files changed, 2 deletions(-)
> 
> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
> index 77869f71546..2d03ff03c8d 100644
> --- a/tests/docker/dockerfiles/debian.docker
> +++ b/tests/docker/dockerfiles/debian.docker
> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        libpcre2-dev \
>                        libpipewire-0.3-dev \
>                        libpixman-1-dev \
> -                      libpmem-dev \
>                        libpng-dev \
>                        libpulse-dev \
>                        librbd-dev \
> diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
> index bb8f4e4e53f..440699a5005 100644
> --- a/tests/docker/dockerfiles/ubuntu2404.docker
> +++ b/tests/docker/dockerfiles/ubuntu2404.docker
> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>                        libpcre2-dev \
>                        libpipewire-0.3-dev \
>                        libpixman-1-dev \
> -                      libpmem-dev \
>                        libpng-dev \
>                        libpulse-dev \
>                        librbd-dev \

Dropping this patch, as it's incorrect.
In libvirt-ci, libpmem-dev is a dependency of targets debian-13 and
ubuntu2404, so not sure why it removes it here. Seems like a bug in
libvirt-ci itself.


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/7] tests/docker/dockerfiles: refresh images
  2026-09-22 16:15   ` Pierrick Bouvier
@ 2026-09-22 16:41     ` Philippe Mathieu-Daudé
  2026-09-22 16:54     ` Daniel P. Berrangé
  1 sibling, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-09-22 16:41 UTC (permalink / raw)
  To: Pierrick Bouvier, qemu-devel; +Cc: Richard Henderson, Alex Bennée

On 2026-09-22 18:15, Pierrick Bouvier wrote:
> On 9/21/2026 4:14 PM, Pierrick Bouvier wrote:
>> latest update of libvirt-ci changed packages, but images were not
>> refreshed.
>>
>> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
>> ---
>>   tests/docker/dockerfiles/debian.docker     | 1 -
>>   tests/docker/dockerfiles/ubuntu2404.docker | 1 -
>>   2 files changed, 2 deletions(-)
>>
>> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
>> index 77869f71546..2d03ff03c8d 100644
>> --- a/tests/docker/dockerfiles/debian.docker
>> +++ b/tests/docker/dockerfiles/debian.docker
>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>                         libpcre2-dev \
>>                         libpipewire-0.3-dev \
>>                         libpixman-1-dev \
>> -                      libpmem-dev \
>>                         libpng-dev \
>>                         libpulse-dev \
>>                         librbd-dev \
>> diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
>> index bb8f4e4e53f..440699a5005 100644
>> --- a/tests/docker/dockerfiles/ubuntu2404.docker
>> +++ b/tests/docker/dockerfiles/ubuntu2404.docker
>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>                         libpcre2-dev \
>>                         libpipewire-0.3-dev \
>>                         libpixman-1-dev \
>> -                      libpmem-dev \
>>                         libpng-dev \
>>                         libpulse-dev \
>>                         librbd-dev \
> 
> Dropping this patch, as it's incorrect.
> In libvirt-ci, libpmem-dev is a dependency of targets debian-13 and
> ubuntu2404, so not sure why it removes it here. Seems like a bug in
> libvirt-ci itself.

https://lore.kernel.org/qemu-devel/37057f38-5326-48e2-9646-b356f13da11e@linaro.org/


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/7] tests/docker/dockerfiles: refresh images
  2026-09-22 16:15   ` Pierrick Bouvier
  2026-09-22 16:41     ` Philippe Mathieu-Daudé
@ 2026-09-22 16:54     ` Daniel P. Berrangé
  2026-09-22 17:16       ` Pierrick Bouvier
  2026-09-22 17:54       ` Pierrick Bouvier
  1 sibling, 2 replies; 35+ messages in thread
From: Daniel P. Berrangé @ 2026-09-22 16:54 UTC (permalink / raw)
  To: Pierrick Bouvier
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On Tue, Sep 22, 2026 at 09:15:02AM -0700, Pierrick Bouvier wrote:
> On 9/21/2026 4:14 PM, Pierrick Bouvier wrote:
> > latest update of libvirt-ci changed packages, but images were not
> > refreshed.
> > 
> > Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
> > ---
> >  tests/docker/dockerfiles/debian.docker     | 1 -
> >  tests/docker/dockerfiles/ubuntu2404.docker | 1 -
> >  2 files changed, 2 deletions(-)
> > 
> > diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
> > index 77869f71546..2d03ff03c8d 100644
> > --- a/tests/docker/dockerfiles/debian.docker
> > +++ b/tests/docker/dockerfiles/debian.docker
> > @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
> >                        libpcre2-dev \
> >                        libpipewire-0.3-dev \
> >                        libpixman-1-dev \
> > -                      libpmem-dev \
> >                        libpng-dev \
> >                        libpulse-dev \
> >                        librbd-dev \
> > diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
> > index bb8f4e4e53f..440699a5005 100644
> > --- a/tests/docker/dockerfiles/ubuntu2404.docker
> > +++ b/tests/docker/dockerfiles/ubuntu2404.docker
> > @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
> >                        libpcre2-dev \
> >                        libpipewire-0.3-dev \
> >                        libpixman-1-dev \
> > -                      libpmem-dev \
> >                        libpng-dev \
> >                        libpulse-dev \
> >                        librbd-dev \
> 
> Dropping this patch, as it's incorrect.
> In libvirt-ci, libpmem-dev is a dependency of targets debian-13 and
> ubuntu2404, so not sure why it removes it here. Seems like a bug in
> libvirt-ci itself.

Most likely you ran invoked lcitool from an aarch64 host OS, so it
filtered out libpmem-dev which is only valid on x86_64 targets.
The non-cross containers we have defined here are assumed to be
for x86_64 targets.

We should change the tests/lcitool/refresh script in QEMU to pass
'--host-arch x86_64' to lcitool, rather than defaulting to the
developers' machine's arch.

With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/7] tests/docker/dockerfiles: refresh images
  2026-09-22 16:54     ` Daniel P. Berrangé
@ 2026-09-22 17:16       ` Pierrick Bouvier
  2026-09-22 17:35         ` Daniel P. Berrangé
  2026-09-22 17:54       ` Pierrick Bouvier
  1 sibling, 1 reply; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-22 17:16 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On 9/22/2026 9:54 AM, Daniel P. Berrangé wrote:
> On Tue, Sep 22, 2026 at 09:15:02AM -0700, Pierrick Bouvier wrote:
>> On 9/21/2026 4:14 PM, Pierrick Bouvier wrote:
>>> latest update of libvirt-ci changed packages, but images were not
>>> refreshed.
>>>
>>> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
>>> ---
>>>  tests/docker/dockerfiles/debian.docker     | 1 -
>>>  tests/docker/dockerfiles/ubuntu2404.docker | 1 -
>>>  2 files changed, 2 deletions(-)
>>>
>>> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
>>> index 77869f71546..2d03ff03c8d 100644
>>> --- a/tests/docker/dockerfiles/debian.docker
>>> +++ b/tests/docker/dockerfiles/debian.docker
>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>>                        libpcre2-dev \
>>>                        libpipewire-0.3-dev \
>>>                        libpixman-1-dev \
>>> -                      libpmem-dev \
>>>                        libpng-dev \
>>>                        libpulse-dev \
>>>                        librbd-dev \
>>> diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
>>> index bb8f4e4e53f..440699a5005 100644
>>> --- a/tests/docker/dockerfiles/ubuntu2404.docker
>>> +++ b/tests/docker/dockerfiles/ubuntu2404.docker
>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>>                        libpcre2-dev \
>>>                        libpipewire-0.3-dev \
>>>                        libpixman-1-dev \
>>> -                      libpmem-dev \
>>>                        libpng-dev \
>>>                        libpulse-dev \
>>>                        librbd-dev \
>>
>> Dropping this patch, as it's incorrect.
>> In libvirt-ci, libpmem-dev is a dependency of targets debian-13 and
>> ubuntu2404, so not sure why it removes it here. Seems like a bug in
>> libvirt-ci itself.
> 
> Most likely you ran invoked lcitool from an aarch64 host OS, so it
> filtered out libpmem-dev which is only valid on x86_64 targets.
> The non-cross containers we have defined here are assumed to be
> for x86_64 targets.
> 
> We should change the tests/lcitool/refresh script in QEMU to pass
> '--host-arch x86_64' to lcitool, rather than defaulting to the
> developers' machine's arch.
>

Thanks for the sharing the reason, I'll add this option.

Out of curiosity, what's the reason to differentiate generation based on
host arch?
Wouldn't that be better to be explicit if you want to generate an arch
specific Dockerfile (and use FROM docker.io/arch/... instead of
docker.io/library)?

> With regards,
> Daniel

Thanks,
Pierrick


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/7] tests/docker/dockerfiles: refresh images
  2026-09-22 17:16       ` Pierrick Bouvier
@ 2026-09-22 17:35         ` Daniel P. Berrangé
  2026-09-22 17:41           ` Philippe Mathieu-Daudé
  2026-09-22 17:41           ` Pierrick Bouvier
  0 siblings, 2 replies; 35+ messages in thread
From: Daniel P. Berrangé @ 2026-09-22 17:35 UTC (permalink / raw)
  To: Pierrick Bouvier
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On Tue, Sep 22, 2026 at 10:16:27AM -0700, Pierrick Bouvier wrote:
> On 9/22/2026 9:54 AM, Daniel P. Berrangé wrote:
> > On Tue, Sep 22, 2026 at 09:15:02AM -0700, Pierrick Bouvier wrote:
> >> On 9/21/2026 4:14 PM, Pierrick Bouvier wrote:
> >>> latest update of libvirt-ci changed packages, but images were not
> >>> refreshed.
> >>>
> >>> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
> >>> ---
> >>>  tests/docker/dockerfiles/debian.docker     | 1 -
> >>>  tests/docker/dockerfiles/ubuntu2404.docker | 1 -
> >>>  2 files changed, 2 deletions(-)
> >>>
> >>> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
> >>> index 77869f71546..2d03ff03c8d 100644
> >>> --- a/tests/docker/dockerfiles/debian.docker
> >>> +++ b/tests/docker/dockerfiles/debian.docker
> >>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
> >>>                        libpcre2-dev \
> >>>                        libpipewire-0.3-dev \
> >>>                        libpixman-1-dev \
> >>> -                      libpmem-dev \
> >>>                        libpng-dev \
> >>>                        libpulse-dev \
> >>>                        librbd-dev \
> >>> diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
> >>> index bb8f4e4e53f..440699a5005 100644
> >>> --- a/tests/docker/dockerfiles/ubuntu2404.docker
> >>> +++ b/tests/docker/dockerfiles/ubuntu2404.docker
> >>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
> >>>                        libpcre2-dev \
> >>>                        libpipewire-0.3-dev \
> >>>                        libpixman-1-dev \
> >>> -                      libpmem-dev \
> >>>                        libpng-dev \
> >>>                        libpulse-dev \
> >>>                        librbd-dev \
> >>
> >> Dropping this patch, as it's incorrect.
> >> In libvirt-ci, libpmem-dev is a dependency of targets debian-13 and
> >> ubuntu2404, so not sure why it removes it here. Seems like a bug in
> >> libvirt-ci itself.
> > 
> > Most likely you ran invoked lcitool from an aarch64 host OS, so it
> > filtered out libpmem-dev which is only valid on x86_64 targets.
> > The non-cross containers we have defined here are assumed to be
> > for x86_64 targets.
> > 
> > We should change the tests/lcitool/refresh script in QEMU to pass
> > '--host-arch x86_64' to lcitool, rather than defaulting to the
> > developers' machine's arch.
> >
> 
> Thanks for the sharing the reason, I'll add this option.
> 
> Out of curiosity, what's the reason to differentiate generation based on
> host arch?
> Wouldn't that be better to be explicit if you want to generate an arch
> specific Dockerfile (and use FROM docker.io/arch/... instead of
> docker.io/library)?

I'm not familiar with docker.io/arch/ but this all just grew up
organically over time, and since most usage was x86_64 host based
there  was not much need to think about other scenarios.

If we want the tests/docker/dockerfiles to be portable to non-x86
hosts, then we'd need to either have many dockerfiles there for
each arch, or drop packages that are arch specific from the
install list.

With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/7] tests/docker/dockerfiles: refresh images
  2026-09-22 17:35         ` Daniel P. Berrangé
@ 2026-09-22 17:41           ` Philippe Mathieu-Daudé
  2026-09-22 17:41           ` Pierrick Bouvier
  1 sibling, 0 replies; 35+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-09-22 17:41 UTC (permalink / raw)
  To: Daniel P. Berrangé, Pierrick Bouvier
  Cc: qemu-devel, Richard Henderson, Alex Bennée

On 2026-09-22 19:35, Daniel P. Berrangé wrote:
> On Tue, Sep 22, 2026 at 10:16:27AM -0700, Pierrick Bouvier wrote:
>> On 9/22/2026 9:54 AM, Daniel P. Berrangé wrote:
>>> On Tue, Sep 22, 2026 at 09:15:02AM -0700, Pierrick Bouvier wrote:
>>>> On 9/21/2026 4:14 PM, Pierrick Bouvier wrote:
>>>>> latest update of libvirt-ci changed packages, but images were not
>>>>> refreshed.
>>>>>
>>>>> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
>>>>> ---
>>>>>   tests/docker/dockerfiles/debian.docker     | 1 -
>>>>>   tests/docker/dockerfiles/ubuntu2404.docker | 1 -
>>>>>   2 files changed, 2 deletions(-)
>>>>>
>>>>> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
>>>>> index 77869f71546..2d03ff03c8d 100644
>>>>> --- a/tests/docker/dockerfiles/debian.docker
>>>>> +++ b/tests/docker/dockerfiles/debian.docker
>>>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>>>>                         libpcre2-dev \
>>>>>                         libpipewire-0.3-dev \
>>>>>                         libpixman-1-dev \
>>>>> -                      libpmem-dev \
>>>>>                         libpng-dev \
>>>>>                         libpulse-dev \
>>>>>                         librbd-dev \
>>>>> diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
>>>>> index bb8f4e4e53f..440699a5005 100644
>>>>> --- a/tests/docker/dockerfiles/ubuntu2404.docker
>>>>> +++ b/tests/docker/dockerfiles/ubuntu2404.docker
>>>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>>>>                         libpcre2-dev \
>>>>>                         libpipewire-0.3-dev \
>>>>>                         libpixman-1-dev \
>>>>> -                      libpmem-dev \
>>>>>                         libpng-dev \
>>>>>                         libpulse-dev \
>>>>>                         librbd-dev \
>>>>
>>>> Dropping this patch, as it's incorrect.
>>>> In libvirt-ci, libpmem-dev is a dependency of targets debian-13 and
>>>> ubuntu2404, so not sure why it removes it here. Seems like a bug in
>>>> libvirt-ci itself.
>>>
>>> Most likely you ran invoked lcitool from an aarch64 host OS, so it
>>> filtered out libpmem-dev which is only valid on x86_64 targets.
>>> The non-cross containers we have defined here are assumed to be
>>> for x86_64 targets.
>>>
>>> We should change the tests/lcitool/refresh script in QEMU to pass
>>> '--host-arch x86_64' to lcitool, rather than defaulting to the
>>> developers' machine's arch.
>>>
>>
>> Thanks for the sharing the reason, I'll add this option.
>>
>> Out of curiosity, what's the reason to differentiate generation based on
>> host arch?
>> Wouldn't that be better to be explicit if you want to generate an arch
>> specific Dockerfile (and use FROM docker.io/arch/... instead of
>> docker.io/library)?
> 
> I'm not familiar with docker.io/arch/

IIRC this was not available back then when lcitool was started.

> but this all just grew up
> organically over time, and since most usage was x86_64 host based
> there  was not much need to think about other scenarios.
> 
> If we want the tests/docker/dockerfiles to be portable to non-x86
> hosts, then we'd need to either have many dockerfiles there for
> each arch, or drop packages that are arch specific from the
> install list.
> 
> With regards,
> Daniel



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/7] tests/docker/dockerfiles: refresh images
  2026-09-22 17:35         ` Daniel P. Berrangé
  2026-09-22 17:41           ` Philippe Mathieu-Daudé
@ 2026-09-22 17:41           ` Pierrick Bouvier
  2026-09-22 17:42             ` Pierrick Bouvier
  2026-09-22 17:44             ` Daniel P. Berrangé
  1 sibling, 2 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-22 17:41 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On 9/22/2026 10:35 AM, Daniel P. Berrangé wrote:
> On Tue, Sep 22, 2026 at 10:16:27AM -0700, Pierrick Bouvier wrote:
>> On 9/22/2026 9:54 AM, Daniel P. Berrangé wrote:
>>> On Tue, Sep 22, 2026 at 09:15:02AM -0700, Pierrick Bouvier wrote:
>>>> On 9/21/2026 4:14 PM, Pierrick Bouvier wrote:
>>>>> latest update of libvirt-ci changed packages, but images were not
>>>>> refreshed.
>>>>>
>>>>> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
>>>>> ---
>>>>>  tests/docker/dockerfiles/debian.docker     | 1 -
>>>>>  tests/docker/dockerfiles/ubuntu2404.docker | 1 -
>>>>>  2 files changed, 2 deletions(-)
>>>>>
>>>>> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
>>>>> index 77869f71546..2d03ff03c8d 100644
>>>>> --- a/tests/docker/dockerfiles/debian.docker
>>>>> +++ b/tests/docker/dockerfiles/debian.docker
>>>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>>>>                        libpcre2-dev \
>>>>>                        libpipewire-0.3-dev \
>>>>>                        libpixman-1-dev \
>>>>> -                      libpmem-dev \
>>>>>                        libpng-dev \
>>>>>                        libpulse-dev \
>>>>>                        librbd-dev \
>>>>> diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
>>>>> index bb8f4e4e53f..440699a5005 100644
>>>>> --- a/tests/docker/dockerfiles/ubuntu2404.docker
>>>>> +++ b/tests/docker/dockerfiles/ubuntu2404.docker
>>>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>>>>                        libpcre2-dev \
>>>>>                        libpipewire-0.3-dev \
>>>>>                        libpixman-1-dev \
>>>>> -                      libpmem-dev \
>>>>>                        libpng-dev \
>>>>>                        libpulse-dev \
>>>>>                        librbd-dev \
>>>>
>>>> Dropping this patch, as it's incorrect.
>>>> In libvirt-ci, libpmem-dev is a dependency of targets debian-13 and
>>>> ubuntu2404, so not sure why it removes it here. Seems like a bug in
>>>> libvirt-ci itself.
>>>
>>> Most likely you ran invoked lcitool from an aarch64 host OS, so it
>>> filtered out libpmem-dev which is only valid on x86_64 targets.
>>> The non-cross containers we have defined here are assumed to be
>>> for x86_64 targets.
>>>
>>> We should change the tests/lcitool/refresh script in QEMU to pass
>>> '--host-arch x86_64' to lcitool, rather than defaulting to the
>>> developers' machine's arch.
>>>
>>
>> Thanks for the sharing the reason, I'll add this option.
>>
>> Out of curiosity, what's the reason to differentiate generation based on
>> host arch?
>> Wouldn't that be better to be explicit if you want to generate an arch
>> specific Dockerfile (and use FROM docker.io/arch/... instead of
>> docker.io/library)?
> 
> I'm not familiar with docker.io/arch/ but this all just grew up
> organically over time, and since most usage was x86_64 host based
> there  was not much need to think about other scenarios.
>

Basically, it's (official) docker images per arch, following docker
platform naming:
- docker.io/amd64
- docker.io/aarch64

https://github.com/docker-library/official-images#architectures-other-than-amd64

Advantage is that image are provided for a specific platform, which
avoid some of the issue multi plaform images have.

For instance, on aarch64 host:
$ podman run --platform linux/amd64 docker.io/library/debian:latest true
$ podman run docker.io/library/debian:latest true
WARNING: image platform (linux/amd64) does not match the expected
platform (linux/arm64)
# podman/docker now select the amd64 version by default, which can break
build of other containers. It's a design issue with docker cli IMHO.

> If we want the tests/docker/dockerfiles to be portable to non-x86
> hosts, then we'd need to either have many dockerfiles there for
> each arch, or drop packages that are arch specific from the
> install list.
>

I'll add the --host-arch x86_64 option to lcitool as recommended, which
should be enough for our need.

> With regards,
> Daniel

Regards,
Pierrick


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/7] tests/docker/dockerfiles: refresh images
  2026-09-22 17:41           ` Pierrick Bouvier
@ 2026-09-22 17:42             ` Pierrick Bouvier
  2026-09-22 17:44             ` Daniel P. Berrangé
  1 sibling, 0 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-22 17:42 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On 9/22/2026 10:41 AM, Pierrick Bouvier wrote:
> On 9/22/2026 10:35 AM, Daniel P. Berrangé wrote:
>> On Tue, Sep 22, 2026 at 10:16:27AM -0700, Pierrick Bouvier wrote:
>>> On 9/22/2026 9:54 AM, Daniel P. Berrangé wrote:
>>>> On Tue, Sep 22, 2026 at 09:15:02AM -0700, Pierrick Bouvier wrote:
>>>>> On 9/21/2026 4:14 PM, Pierrick Bouvier wrote:
>>>>>> latest update of libvirt-ci changed packages, but images were not
>>>>>> refreshed.
>>>>>>
>>>>>> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
>>>>>> ---
>>>>>>  tests/docker/dockerfiles/debian.docker     | 1 -
>>>>>>  tests/docker/dockerfiles/ubuntu2404.docker | 1 -
>>>>>>  2 files changed, 2 deletions(-)
>>>>>>
>>>>>> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
>>>>>> index 77869f71546..2d03ff03c8d 100644
>>>>>> --- a/tests/docker/dockerfiles/debian.docker
>>>>>> +++ b/tests/docker/dockerfiles/debian.docker
>>>>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>>>>>                        libpcre2-dev \
>>>>>>                        libpipewire-0.3-dev \
>>>>>>                        libpixman-1-dev \
>>>>>> -                      libpmem-dev \
>>>>>>                        libpng-dev \
>>>>>>                        libpulse-dev \
>>>>>>                        librbd-dev \
>>>>>> diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
>>>>>> index bb8f4e4e53f..440699a5005 100644
>>>>>> --- a/tests/docker/dockerfiles/ubuntu2404.docker
>>>>>> +++ b/tests/docker/dockerfiles/ubuntu2404.docker
>>>>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>>>>>                        libpcre2-dev \
>>>>>>                        libpipewire-0.3-dev \
>>>>>>                        libpixman-1-dev \
>>>>>> -                      libpmem-dev \
>>>>>>                        libpng-dev \
>>>>>>                        libpulse-dev \
>>>>>>                        librbd-dev \
>>>>>
>>>>> Dropping this patch, as it's incorrect.
>>>>> In libvirt-ci, libpmem-dev is a dependency of targets debian-13 and
>>>>> ubuntu2404, so not sure why it removes it here. Seems like a bug in
>>>>> libvirt-ci itself.
>>>>
>>>> Most likely you ran invoked lcitool from an aarch64 host OS, so it
>>>> filtered out libpmem-dev which is only valid on x86_64 targets.
>>>> The non-cross containers we have defined here are assumed to be
>>>> for x86_64 targets.
>>>>
>>>> We should change the tests/lcitool/refresh script in QEMU to pass
>>>> '--host-arch x86_64' to lcitool, rather than defaulting to the
>>>> developers' machine's arch.
>>>>
>>>
>>> Thanks for the sharing the reason, I'll add this option.
>>>
>>> Out of curiosity, what's the reason to differentiate generation based on
>>> host arch?
>>> Wouldn't that be better to be explicit if you want to generate an arch
>>> specific Dockerfile (and use FROM docker.io/arch/... instead of
>>> docker.io/library)?
>>
>> I'm not familiar with docker.io/arch/ but this all just grew up
>> organically over time, and since most usage was x86_64 host based
>> there  was not much need to think about other scenarios.
>>
> 
> Basically, it's (official) docker images per arch, following docker
> platform naming:
> - docker.io/amd64
> - docker.io/aarch64
>

s/aarch64/arm64v8

> https://github.com/docker-library/official-images#architectures-other-than-amd64
> 
> Advantage is that image are provided for a specific platform, which
> avoid some of the issue multi plaform images have.
> 
> For instance, on aarch64 host:
> $ podman run --platform linux/amd64 docker.io/library/debian:latest true
> $ podman run docker.io/library/debian:latest true
> WARNING: image platform (linux/amd64) does not match the expected
> platform (linux/arm64)
> # podman/docker now select the amd64 version by default, which can break
> build of other containers. It's a design issue with docker cli IMHO.
> 
>> If we want the tests/docker/dockerfiles to be portable to non-x86
>> hosts, then we'd need to either have many dockerfiles there for
>> each arch, or drop packages that are arch specific from the
>> install list.
>>
> 
> I'll add the --host-arch x86_64 option to lcitool as recommended, which
> should be enough for our need.
> 
>> With regards,
>> Daniel
> 
> Regards,
> Pierrick



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/7] tests/docker/dockerfiles: refresh images
  2026-09-22 17:41           ` Pierrick Bouvier
  2026-09-22 17:42             ` Pierrick Bouvier
@ 2026-09-22 17:44             ` Daniel P. Berrangé
  2026-09-22 17:46               ` Pierrick Bouvier
  1 sibling, 1 reply; 35+ messages in thread
From: Daniel P. Berrangé @ 2026-09-22 17:44 UTC (permalink / raw)
  To: Pierrick Bouvier
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On Tue, Sep 22, 2026 at 10:41:38AM -0700, Pierrick Bouvier wrote:
> On 9/22/2026 10:35 AM, Daniel P. Berrangé wrote:
> > On Tue, Sep 22, 2026 at 10:16:27AM -0700, Pierrick Bouvier wrote:
> >> On 9/22/2026 9:54 AM, Daniel P. Berrangé wrote:
> >>> On Tue, Sep 22, 2026 at 09:15:02AM -0700, Pierrick Bouvier wrote:
> >>>> On 9/21/2026 4:14 PM, Pierrick Bouvier wrote:
> >>>>> latest update of libvirt-ci changed packages, but images were not
> >>>>> refreshed.
> >>>>>
> >>>>> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
> >>>>> ---
> >>>>>  tests/docker/dockerfiles/debian.docker     | 1 -
> >>>>>  tests/docker/dockerfiles/ubuntu2404.docker | 1 -
> >>>>>  2 files changed, 2 deletions(-)
> >>>>>
> >>>>> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
> >>>>> index 77869f71546..2d03ff03c8d 100644
> >>>>> --- a/tests/docker/dockerfiles/debian.docker
> >>>>> +++ b/tests/docker/dockerfiles/debian.docker
> >>>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
> >>>>>                        libpcre2-dev \
> >>>>>                        libpipewire-0.3-dev \
> >>>>>                        libpixman-1-dev \
> >>>>> -                      libpmem-dev \
> >>>>>                        libpng-dev \
> >>>>>                        libpulse-dev \
> >>>>>                        librbd-dev \
> >>>>> diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
> >>>>> index bb8f4e4e53f..440699a5005 100644
> >>>>> --- a/tests/docker/dockerfiles/ubuntu2404.docker
> >>>>> +++ b/tests/docker/dockerfiles/ubuntu2404.docker
> >>>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
> >>>>>                        libpcre2-dev \
> >>>>>                        libpipewire-0.3-dev \
> >>>>>                        libpixman-1-dev \
> >>>>> -                      libpmem-dev \
> >>>>>                        libpng-dev \
> >>>>>                        libpulse-dev \
> >>>>>                        librbd-dev \
> >>>>
> >>>> Dropping this patch, as it's incorrect.
> >>>> In libvirt-ci, libpmem-dev is a dependency of targets debian-13 and
> >>>> ubuntu2404, so not sure why it removes it here. Seems like a bug in
> >>>> libvirt-ci itself.
> >>>
> >>> Most likely you ran invoked lcitool from an aarch64 host OS, so it
> >>> filtered out libpmem-dev which is only valid on x86_64 targets.
> >>> The non-cross containers we have defined here are assumed to be
> >>> for x86_64 targets.
> >>>
> >>> We should change the tests/lcitool/refresh script in QEMU to pass
> >>> '--host-arch x86_64' to lcitool, rather than defaulting to the
> >>> developers' machine's arch.
> >>>
> >>
> >> Thanks for the sharing the reason, I'll add this option.
> >>
> >> Out of curiosity, what's the reason to differentiate generation based on
> >> host arch?
> >> Wouldn't that be better to be explicit if you want to generate an arch
> >> specific Dockerfile (and use FROM docker.io/arch/... instead of
> >> docker.io/library)?
> > 
> > I'm not familiar with docker.io/arch/ but this all just grew up
> > organically over time, and since most usage was x86_64 host based
> > there  was not much need to think about other scenarios.
> >
> 
> Basically, it's (official) docker images per arch, following docker
> platform naming:
> - docker.io/amd64
> - docker.io/aarch64
> 
> https://github.com/docker-library/official-images#architectures-other-than-amd64
> 
> Advantage is that image are provided for a specific platform, which
> avoid some of the issue multi plaform images have.
> 
> For instance, on aarch64 host:
> $ podman run --platform linux/amd64 docker.io/library/debian:latest true
> $ podman run docker.io/library/debian:latest true
> WARNING: image platform (linux/amd64) does not match the expected
> platform (linux/arm64)
> # podman/docker now select the amd64 version by default, which can break
> build of other containers. It's a design issue with docker cli IMHO.
> 
> > If we want the tests/docker/dockerfiles to be portable to non-x86
> > hosts, then we'd need to either have many dockerfiles there for
> > each arch, or drop packages that are arch specific from the
> > install list.
> >
> 
> I'll add the --host-arch x86_64 option to lcitool as recommended, which
> should be enough for our need.

Hmm, I think we also need '--arch x86_64' passed to 'docker build' for
similar reasons, since the dockerfile input to the build has an
arch specific list of packages.


With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/7] tests/docker/dockerfiles: refresh images
  2026-09-22 17:44             ` Daniel P. Berrangé
@ 2026-09-22 17:46               ` Pierrick Bouvier
  0 siblings, 0 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-22 17:46 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On 9/22/2026 10:44 AM, Daniel P. Berrangé wrote:
> On Tue, Sep 22, 2026 at 10:41:38AM -0700, Pierrick Bouvier wrote:
>> On 9/22/2026 10:35 AM, Daniel P. Berrangé wrote:
>>> On Tue, Sep 22, 2026 at 10:16:27AM -0700, Pierrick Bouvier wrote:
>>>> On 9/22/2026 9:54 AM, Daniel P. Berrangé wrote:
>>>>> On Tue, Sep 22, 2026 at 09:15:02AM -0700, Pierrick Bouvier wrote:
>>>>>> On 9/21/2026 4:14 PM, Pierrick Bouvier wrote:
>>>>>>> latest update of libvirt-ci changed packages, but images were not
>>>>>>> refreshed.
>>>>>>>
>>>>>>> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
>>>>>>> ---
>>>>>>>  tests/docker/dockerfiles/debian.docker     | 1 -
>>>>>>>  tests/docker/dockerfiles/ubuntu2404.docker | 1 -
>>>>>>>  2 files changed, 2 deletions(-)
>>>>>>>
>>>>>>> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
>>>>>>> index 77869f71546..2d03ff03c8d 100644
>>>>>>> --- a/tests/docker/dockerfiles/debian.docker
>>>>>>> +++ b/tests/docker/dockerfiles/debian.docker
>>>>>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>>>>>>                        libpcre2-dev \
>>>>>>>                        libpipewire-0.3-dev \
>>>>>>>                        libpixman-1-dev \
>>>>>>> -                      libpmem-dev \
>>>>>>>                        libpng-dev \
>>>>>>>                        libpulse-dev \
>>>>>>>                        librbd-dev \
>>>>>>> diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
>>>>>>> index bb8f4e4e53f..440699a5005 100644
>>>>>>> --- a/tests/docker/dockerfiles/ubuntu2404.docker
>>>>>>> +++ b/tests/docker/dockerfiles/ubuntu2404.docker
>>>>>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>>>>>>                        libpcre2-dev \
>>>>>>>                        libpipewire-0.3-dev \
>>>>>>>                        libpixman-1-dev \
>>>>>>> -                      libpmem-dev \
>>>>>>>                        libpng-dev \
>>>>>>>                        libpulse-dev \
>>>>>>>                        librbd-dev \
>>>>>>
>>>>>> Dropping this patch, as it's incorrect.
>>>>>> In libvirt-ci, libpmem-dev is a dependency of targets debian-13 and
>>>>>> ubuntu2404, so not sure why it removes it here. Seems like a bug in
>>>>>> libvirt-ci itself.
>>>>>
>>>>> Most likely you ran invoked lcitool from an aarch64 host OS, so it
>>>>> filtered out libpmem-dev which is only valid on x86_64 targets.
>>>>> The non-cross containers we have defined here are assumed to be
>>>>> for x86_64 targets.
>>>>>
>>>>> We should change the tests/lcitool/refresh script in QEMU to pass
>>>>> '--host-arch x86_64' to lcitool, rather than defaulting to the
>>>>> developers' machine's arch.
>>>>>
>>>>
>>>> Thanks for the sharing the reason, I'll add this option.
>>>>
>>>> Out of curiosity, what's the reason to differentiate generation based on
>>>> host arch?
>>>> Wouldn't that be better to be explicit if you want to generate an arch
>>>> specific Dockerfile (and use FROM docker.io/arch/... instead of
>>>> docker.io/library)?
>>>
>>> I'm not familiar with docker.io/arch/ but this all just grew up
>>> organically over time, and since most usage was x86_64 host based
>>> there  was not much need to think about other scenarios.
>>>
>>
>> Basically, it's (official) docker images per arch, following docker
>> platform naming:
>> - docker.io/amd64
>> - docker.io/aarch64
>>
>> https://github.com/docker-library/official-images#architectures-other-than-amd64
>>
>> Advantage is that image are provided for a specific platform, which
>> avoid some of the issue multi plaform images have.
>>
>> For instance, on aarch64 host:
>> $ podman run --platform linux/amd64 docker.io/library/debian:latest true
>> $ podman run docker.io/library/debian:latest true
>> WARNING: image platform (linux/amd64) does not match the expected
>> platform (linux/arm64)
>> # podman/docker now select the amd64 version by default, which can break
>> build of other containers. It's a design issue with docker cli IMHO.
>>
>>> If we want the tests/docker/dockerfiles to be portable to non-x86
>>> hosts, then we'd need to either have many dockerfiles there for
>>> each arch, or drop packages that are arch specific from the
>>> install list.
>>>
>>
>> I'll add the --host-arch x86_64 option to lcitool as recommended, which
>> should be enough for our need.
> 
> Hmm, I think we also need '--arch x86_64' passed to 'docker build' for
> similar reasons, since the dockerfile input to the build has an
> arch specific list of packages.
>

That's what patch 1 is doing, adding --platform to build and run
commands 👍.

> 
> With regards,
> Daniel



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/7] tests/docker/dockerfiles: refresh images
  2026-09-22 16:54     ` Daniel P. Berrangé
  2026-09-22 17:16       ` Pierrick Bouvier
@ 2026-09-22 17:54       ` Pierrick Bouvier
  1 sibling, 0 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-22 17:54 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On 9/22/2026 9:54 AM, Daniel P. Berrangé wrote:
> On Tue, Sep 22, 2026 at 09:15:02AM -0700, Pierrick Bouvier wrote:
>> On 9/21/2026 4:14 PM, Pierrick Bouvier wrote:
>>> latest update of libvirt-ci changed packages, but images were not
>>> refreshed.
>>>
>>> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
>>> ---
>>>  tests/docker/dockerfiles/debian.docker     | 1 -
>>>  tests/docker/dockerfiles/ubuntu2404.docker | 1 -
>>>  2 files changed, 2 deletions(-)
>>>
>>> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
>>> index 77869f71546..2d03ff03c8d 100644
>>> --- a/tests/docker/dockerfiles/debian.docker
>>> +++ b/tests/docker/dockerfiles/debian.docker
>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>>                        libpcre2-dev \
>>>                        libpipewire-0.3-dev \
>>>                        libpixman-1-dev \
>>> -                      libpmem-dev \
>>>                        libpng-dev \
>>>                        libpulse-dev \
>>>                        librbd-dev \
>>> diff --git a/tests/docker/dockerfiles/ubuntu2404.docker b/tests/docker/dockerfiles/ubuntu2404.docker
>>> index bb8f4e4e53f..440699a5005 100644
>>> --- a/tests/docker/dockerfiles/ubuntu2404.docker
>>> +++ b/tests/docker/dockerfiles/ubuntu2404.docker
>>> @@ -73,7 +73,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
>>>                        libpcre2-dev \
>>>                        libpipewire-0.3-dev \
>>>                        libpixman-1-dev \
>>> -                      libpmem-dev \
>>>                        libpng-dev \
>>>                        libpulse-dev \
>>>                        librbd-dev \
>>
>> Dropping this patch, as it's incorrect.
>> In libvirt-ci, libpmem-dev is a dependency of targets debian-13 and
>> ubuntu2404, so not sure why it removes it here. Seems like a bug in
>> libvirt-ci itself.
> 
> Most likely you ran invoked lcitool from an aarch64 host OS, so it
> filtered out libpmem-dev which is only valid on x86_64 targets.
> The non-cross containers we have defined here are assumed to be
> for x86_64 targets.
> 
> We should change the tests/lcitool/refresh script in QEMU to pass
> '--host-arch x86_64' to lcitool, rather than defaulting to the
> developers' machine's arch.
>

This solved the problem, thanks. I'll add this patch in v2.

> With regards,
> Daniel



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 3/7] tests/lci/refresh: add parameter to override container registry
  2026-09-21 23:14 ` [PATCH 3/7] tests/lci/refresh: add parameter to override container registry Pierrick Bouvier
  2026-09-22  4:31   ` Philippe Mathieu-Daudé
@ 2026-09-22 17:55   ` Daniel P. Berrangé
  2026-09-22 18:04     ` Daniel P. Berrangé
  1 sibling, 1 reply; 35+ messages in thread
From: Daniel P. Berrangé @ 2026-09-22 17:55 UTC (permalink / raw)
  To: Pierrick Bouvier
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On Mon, Sep 21, 2026 at 11:14:54PM +0000, Pierrick Bouvier wrote:
> We'll use this in next patch to switch FROM docker.io/library to
> docker.io/amd64. It would not make sense to add a new target to
> libvirt-ci for this, since it's just a variant of an existing target.
> Simply replace container registry with arch specific one.

We shouldn't need to add new targets to lcitool for this,
rather it would be enhanced to include a list of arch
specific container images.

eg in

https://gitlab.com/libvirt/libvirt-ci/-/blob/master/lcitool/facts/targets/debian-13.yml?ref_type=heads

We would extend:

  containers:
    base: docker.io/library/debian:13-slim

to allow for

  containers:
    base: docker.io/library/debian:13-slim
    aarch64:  docker.io/amd64/debian:13-slim
    ...more...

such that we default to the 'base' image name, unless
there is an arch specific name defined. That would be
a fairly quick extension to impl in lcitool.

> 
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
> ---
>  tests/lcitool/refresh | 17 +++++++++++------
>  1 file changed, 11 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
> index 9a71af0e41d..4e3cbb81acf 100755
> --- a/tests/lcitool/refresh
> +++ b/tests/lcitool/refresh
> @@ -12,6 +12,7 @@
>  # or (at your option) any later version. See the COPYING file in
>  # the top-level directory.
>  
> +import re
>  import sys
>  import subprocess
>  
> @@ -41,7 +42,7 @@ def atomic_write(filename, content):
>          raise
>  
>  
> -def generate(filename, cmd, trailer):
> +def generate(filename, cmd, trailer, registry_path):
>      print("Generate %s" % filename)
>      lcitool = subprocess.run(cmd, capture_output=True, encoding='utf8')
>  
> @@ -49,6 +50,10 @@ def generate(filename, cmd, trailer):
>          raise Exception("Failed to generate %s: %s" % (filename, lcitool.stderr))
>  
>      content = lcitool.stdout
> +
> +    if registry_path is not None:
> +        content = re.sub("FROM.*/", "FROM " + registry_path + '/', content)
> +
>      if trailer is not None:
>          content += trailer
>      atomic_write(filename, content)
> @@ -64,7 +69,7 @@ add_user_mapping = [
>  ]
>  
>  def generate_dockerfile(host, target, project="qemu", cross=None, trailer=None,
> -                        enable_rust=True):
> +                        enable_rust=True, registry_path=None):
>      filename = Path(src_dir, "tests", "docker", "dockerfiles", host + ".docker")
>      cmd = lcitool_cmd + ["dockerfile"]
>      if cross is not None:
> @@ -79,26 +84,26 @@ def generate_dockerfile(host, target, project="qemu", cross=None, trailer=None,
>  
>      if enable_rust:
>          trailer += "\nENV ENABLE_RUST=1\n"
> -    generate(filename, cmd, trailer)
> +    generate(filename, cmd, trailer, registry_path)
>  
>  
>  def generate_vars(target, trailer=None):
>      filename = Path(src_dir, ".gitlab-ci.d", target + ".vars")
>      cmd = lcitool_cmd + ["variables", "--format", "shell", target, "qemu"]
> -    generate(filename, cmd, trailer)
> +    generate(filename, cmd, trailer, None)
>  
>  
>  def generate_pkglist(vm, target, project="qemu"):
>      filename = Path(src_dir, "tests", "vm", "generated", vm + ".json")
>      cmd = lcitool_cmd + ["variables", "--format", "json", target, project]
> -    generate(filename, cmd, None)
> +    generate(filename, cmd, None, None)
>  
>  
>  def generate_yaml(os, target, arch, trailer=None):
>      filename = Path(src_dir, "scripts", "ci", "setup", os, f"{target}-{arch}.yaml")
>      cmd = lcitool_cmd + ["variables", "--format", "yaml", "-a",
>                           arch, target, "qemu"]
> -    generate(filename, cmd, trailer)
> +    generate(filename, cmd, trailer, None)
>  
>  
>  alpine_extras = r"""
> -- 
> 2.43.0
> 
> 

With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 3/7] tests/lci/refresh: add parameter to override container registry
  2026-09-22 17:55   ` Daniel P. Berrangé
@ 2026-09-22 18:04     ` Daniel P. Berrangé
  2026-09-22 18:22       ` Pierrick Bouvier
  0 siblings, 1 reply; 35+ messages in thread
From: Daniel P. Berrangé @ 2026-09-22 18:04 UTC (permalink / raw)
  To: Pierrick Bouvier, qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On Tue, Sep 22, 2026 at 06:55:18PM +0100, Daniel P. Berrangé wrote:
> On Mon, Sep 21, 2026 at 11:14:54PM +0000, Pierrick Bouvier wrote:
> > We'll use this in next patch to switch FROM docker.io/library to
> > docker.io/amd64. It would not make sense to add a new target to
> > libvirt-ci for this, since it's just a variant of an existing target.
> > Simply replace container registry with arch specific one.
> 
> We shouldn't need to add new targets to lcitool for this,
> rather it would be enhanced to include a list of arch
> specific container images.
> 
> eg in
> 
> https://gitlab.com/libvirt/libvirt-ci/-/blob/master/lcitool/facts/targets/debian-13.yml?ref_type=heads
> 
> We would extend:
> 
>   containers:
>     base: docker.io/library/debian:13-slim
> 
> to allow for
> 
>   containers:
>     base: docker.io/library/debian:13-slim
>     aarch64:  docker.io/amd64/debian:13-slim
>     ...more...
> 
> such that we default to the 'base' image name, unless
> there is an arch specific name defined. That would be
> a fairly quick extension to impl in lcitool.

Quicker than I thought.... take a look at this, which
I think will enable you to drop this patch and the
next one and get the same end result:

  https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/588


With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 1/7] tests/tcg/meson.build: force use of linux/amd64 platform for containers
  2026-09-21 23:14 ` [PATCH 1/7] tests/tcg/meson.build: force use of linux/amd64 platform for containers Pierrick Bouvier
  2026-09-22  4:34   ` Philippe Mathieu-Daudé
@ 2026-09-22 18:10   ` Daniel P. Berrangé
  2026-09-22 18:17     ` Pierrick Bouvier
  1 sibling, 1 reply; 35+ messages in thread
From: Daniel P. Berrangé @ 2026-09-22 18:10 UTC (permalink / raw)
  To: Pierrick Bouvier
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On Mon, Sep 21, 2026 at 11:14:52PM +0000, Pierrick Bouvier wrote:
> On hosts != x64_64, we detect if host can run amd64 containers (usually
> through qemu-user-binfmt). If not, we deactivate container support.
> 
> We could technically stop here and force container engine to use this
> platform. Since existing base image (docker.io/library/debian:13-slim)
> is multi platforms, container engine will enable this variant by
> default.
> 
> Now the problem is that if user reuses this image for their own
> Dockerfiles, they will run into unpleasant surprise that now, their
> container engine is using x86_64 variant by default, on any host.
> 
> So, in next commit, we'll change base image we use to x86_64 variant,
> which has a single platform: linux/amd64. This ensures we don't generate
> any unwanted side effect when building our images.
> 
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
> ---
>  tests/tcg/meson.build | 19 ++++++++++++++-----
>  1 file changed, 14 insertions(+), 5 deletions(-)

> 
> diff --git a/tests/tcg/meson.build b/tests/tcg/meson.build
> index 75f0a52fd22..4cf4865461e 100644
> --- a/tests/tcg/meson.build
> +++ b/tests/tcg/meson.build
> @@ -81,6 +81,7 @@ tcg_tests_summary += {'gdb': gdb}
>  
>  docker_supported = false
>  container_command = false
> +docker_platform = ['--platform', 'linux/amd64']
>  if get_option('containers')
>    if get_option('container_command') != ''
>      # make sure command is working
> @@ -99,6 +100,15 @@ if get_option('containers')
>                          container_command]
>      endif
>    endif
> +
> +  if docker_supported
> +    docker_supported = run_command([docker_wrapper, 'run', '--',
> +                                    docker_platform,
> +                                    'docker.io/amd64/debian:13-slim',
> +                                    '/bin/true'],
> +                                    check: false).returncode() == 0

IIUC, this is checking that  podman/docker is capable of running
(potentially)  foreign-arch containers ? ie that qemu-user is
setup on the host.  If so, would be worth a short comment here.

> +    tcg_tests_summary += {'x86_64 container support': docker_supported}
> +  endif
>  endif
>  tcg_tests_summary += {'container command': container_command}
>  if get_option('container_registry') != ''

None the less:

  Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 1/7] tests/tcg/meson.build: force use of linux/amd64 platform for containers
  2026-09-22 18:10   ` Daniel P. Berrangé
@ 2026-09-22 18:17     ` Pierrick Bouvier
  0 siblings, 0 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-22 18:17 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On 9/22/2026 11:10 AM, Daniel P. Berrangé wrote:
> On Mon, Sep 21, 2026 at 11:14:52PM +0000, Pierrick Bouvier wrote:
>> On hosts != x64_64, we detect if host can run amd64 containers (usually
>> through qemu-user-binfmt). If not, we deactivate container support.
>>
>> We could technically stop here and force container engine to use this
>> platform. Since existing base image (docker.io/library/debian:13-slim)
>> is multi platforms, container engine will enable this variant by
>> default.
>>
>> Now the problem is that if user reuses this image for their own
>> Dockerfiles, they will run into unpleasant surprise that now, their
>> container engine is using x86_64 variant by default, on any host.
>>
>> So, in next commit, we'll change base image we use to x86_64 variant,
>> which has a single platform: linux/amd64. This ensures we don't generate
>> any unwanted side effect when building our images.
>>
>> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
>> ---
>>  tests/tcg/meson.build | 19 ++++++++++++++-----
>>  1 file changed, 14 insertions(+), 5 deletions(-)
> 
>>
>> diff --git a/tests/tcg/meson.build b/tests/tcg/meson.build
>> index 75f0a52fd22..4cf4865461e 100644
>> --- a/tests/tcg/meson.build
>> +++ b/tests/tcg/meson.build
>> @@ -81,6 +81,7 @@ tcg_tests_summary += {'gdb': gdb}
>>  
>>  docker_supported = false
>>  container_command = false
>> +docker_platform = ['--platform', 'linux/amd64']
>>  if get_option('containers')
>>    if get_option('container_command') != ''
>>      # make sure command is working
>> @@ -99,6 +100,15 @@ if get_option('containers')
>>                          container_command]
>>      endif
>>    endif
>> +
>> +  if docker_supported
>> +    docker_supported = run_command([docker_wrapper, 'run', '--',
>> +                                    docker_platform,
>> +                                    'docker.io/amd64/debian:13-slim',
>> +                                    '/bin/true'],
>> +                                    check: false).returncode() == 0
> 
> IIUC, this is checking that  podman/docker is capable of running
> (potentially)  foreign-arch containers ? ie that qemu-user is
> setup on the host.  If so, would be worth a short comment here.
>

Correct.
I'll add the comment.

>> +    tcg_tests_summary += {'x86_64 container support': docker_supported}
>> +  endif
>>  endif
>>  tcg_tests_summary += {'container command': container_command}
>>  if get_option('container_registry') != ''
> 
> None the less:
> 
>   Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> 
> 
> With regards,
> Daniel



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 3/7] tests/lci/refresh: add parameter to override container registry
  2026-09-22 18:04     ` Daniel P. Berrangé
@ 2026-09-22 18:22       ` Pierrick Bouvier
  2026-09-22 18:29         ` Daniel P. Berrangé
  0 siblings, 1 reply; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-22 18:22 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel, Richard Henderson,
	Alex Bennée, Philippe Mathieu-Daudé

On 9/22/2026 11:04 AM, Daniel P. Berrangé wrote:
> On Tue, Sep 22, 2026 at 06:55:18PM +0100, Daniel P. Berrangé wrote:
>> On Mon, Sep 21, 2026 at 11:14:54PM +0000, Pierrick Bouvier wrote:
>>> We'll use this in next patch to switch FROM docker.io/library to
>>> docker.io/amd64. It would not make sense to add a new target to
>>> libvirt-ci for this, since it's just a variant of an existing target.
>>> Simply replace container registry with arch specific one.
>>
>> We shouldn't need to add new targets to lcitool for this,
>> rather it would be enhanced to include a list of arch
>> specific container images.
>>
>> eg in
>>
>> https://gitlab.com/libvirt/libvirt-ci/-/blob/master/lcitool/facts/targets/debian-13.yml?ref_type=heads
>>
>> We would extend:
>>
>>   containers:
>>     base: docker.io/library/debian:13-slim
>>
>> to allow for
>>
>>   containers:
>>     base: docker.io/library/debian:13-slim
>>     aarch64:  docker.io/amd64/debian:13-slim
>>     ...more...
>>
>> such that we default to the 'base' image name, unless
>> there is an arch specific name defined. That would be
>> a fairly quick extension to impl in lcitool.
> 
> Quicker than I thought.... take a look at this, which
> I think will enable you to drop this patch and the
> next one and get the same end result:
> 
>   https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/588
> 

Very quick indeed, good job :)

IIUC, when no host-arch is given, we keep on using base, but in case
user specifies -host-arch, in this case we use one of specialized image
(if available)?

> 
> With regards,
> Daniel



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 3/7] tests/lci/refresh: add parameter to override container registry
  2026-09-22 18:22       ` Pierrick Bouvier
@ 2026-09-22 18:29         ` Daniel P. Berrangé
  2026-09-22 18:33           ` Pierrick Bouvier
  0 siblings, 1 reply; 35+ messages in thread
From: Daniel P. Berrangé @ 2026-09-22 18:29 UTC (permalink / raw)
  To: Pierrick Bouvier
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On Tue, Sep 22, 2026 at 11:22:43AM -0700, Pierrick Bouvier wrote:
> On 9/22/2026 11:04 AM, Daniel P. Berrangé wrote:
> > On Tue, Sep 22, 2026 at 06:55:18PM +0100, Daniel P. Berrangé wrote:
> >> On Mon, Sep 21, 2026 at 11:14:54PM +0000, Pierrick Bouvier wrote:
> >>> We'll use this in next patch to switch FROM docker.io/library to
> >>> docker.io/amd64. It would not make sense to add a new target to
> >>> libvirt-ci for this, since it's just a variant of an existing target.
> >>> Simply replace container registry with arch specific one.
> >>
> >> We shouldn't need to add new targets to lcitool for this,
> >> rather it would be enhanced to include a list of arch
> >> specific container images.
> >>
> >> eg in
> >>
> >> https://gitlab.com/libvirt/libvirt-ci/-/blob/master/lcitool/facts/targets/debian-13.yml?ref_type=heads
> >>
> >> We would extend:
> >>
> >>   containers:
> >>     base: docker.io/library/debian:13-slim
> >>
> >> to allow for
> >>
> >>   containers:
> >>     base: docker.io/library/debian:13-slim
> >>     aarch64:  docker.io/amd64/debian:13-slim
> >>     ...more...
> >>
> >> such that we default to the 'base' image name, unless
> >> there is an arch specific name defined. That would be
> >> a fairly quick extension to impl in lcitool.
> > 
> > Quicker than I thought.... take a look at this, which
> > I think will enable you to drop this patch and the
> > next one and get the same end result:
> > 
> >   https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/588
> > 
> 
> Very quick indeed, good job :)
> 
> IIUC, when no host-arch is given, we keep on using base, but in case
> user specifies -host-arch, in this case we use one of specialized image
> (if available)?

Actually it is indepedent of --host-arch.

If --host-arch is omitted we default it to what uname() reports,
and the result then goes into the container image lookup, which
is optionally specialized per arch.

With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 3/7] tests/lci/refresh: add parameter to override container registry
  2026-09-22 18:29         ` Daniel P. Berrangé
@ 2026-09-22 18:33           ` Pierrick Bouvier
  2026-09-22 19:01             ` Daniel P. Berrangé
  0 siblings, 1 reply; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-22 18:33 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On 9/22/2026 11:29 AM, Daniel P. Berrangé wrote:
> On Tue, Sep 22, 2026 at 11:22:43AM -0700, Pierrick Bouvier wrote:
>> On 9/22/2026 11:04 AM, Daniel P. Berrangé wrote:
>>> On Tue, Sep 22, 2026 at 06:55:18PM +0100, Daniel P. Berrangé wrote:
>>>> On Mon, Sep 21, 2026 at 11:14:54PM +0000, Pierrick Bouvier wrote:
>>>>> We'll use this in next patch to switch FROM docker.io/library to
>>>>> docker.io/amd64. It would not make sense to add a new target to
>>>>> libvirt-ci for this, since it's just a variant of an existing target.
>>>>> Simply replace container registry with arch specific one.
>>>>
>>>> We shouldn't need to add new targets to lcitool for this,
>>>> rather it would be enhanced to include a list of arch
>>>> specific container images.
>>>>
>>>> eg in
>>>>
>>>> https://gitlab.com/libvirt/libvirt-ci/-/blob/master/lcitool/facts/targets/debian-13.yml?ref_type=heads
>>>>
>>>> We would extend:
>>>>
>>>>   containers:
>>>>     base: docker.io/library/debian:13-slim
>>>>
>>>> to allow for
>>>>
>>>>   containers:
>>>>     base: docker.io/library/debian:13-slim
>>>>     aarch64:  docker.io/amd64/debian:13-slim
>>>>     ...more...
>>>>
>>>> such that we default to the 'base' image name, unless
>>>> there is an arch specific name defined. That would be
>>>> a fairly quick extension to impl in lcitool.
>>>
>>> Quicker than I thought.... take a look at this, which
>>> I think will enable you to drop this patch and the
>>> next one and get the same end result:
>>>
>>>   https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/588
>>>
>>
>> Very quick indeed, good job :)
>>
>> IIUC, when no host-arch is given, we keep on using base, but in case
>> user specifies -host-arch, in this case we use one of specialized image
>> (if available)?
> 
> Actually it is indepedent of --host-arch.
> 
> If --host-arch is omitted we default it to what uname() reports,
> and the result then goes into the container image lookup, which
> is optionally specialized per arch.
>

It works for QEMU needs, but would that be a safe default for other
users of lcitool?

Technically, you can write portable Dockerfiles between arch. Our
current debian-all-test is kind of an example of it (ignoring the change
this series does).

> With regards,
> Daniel



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 3/7] tests/lci/refresh: add parameter to override container registry
  2026-09-22 18:33           ` Pierrick Bouvier
@ 2026-09-22 19:01             ` Daniel P. Berrangé
  2026-09-22 19:03               ` Pierrick Bouvier
  0 siblings, 1 reply; 35+ messages in thread
From: Daniel P. Berrangé @ 2026-09-22 19:01 UTC (permalink / raw)
  To: Pierrick Bouvier
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On Tue, Sep 22, 2026 at 11:33:47AM -0700, Pierrick Bouvier wrote:
> On 9/22/2026 11:29 AM, Daniel P. Berrangé wrote:
> > On Tue, Sep 22, 2026 at 11:22:43AM -0700, Pierrick Bouvier wrote:
> >> On 9/22/2026 11:04 AM, Daniel P. Berrangé wrote:
> >>> On Tue, Sep 22, 2026 at 06:55:18PM +0100, Daniel P. Berrangé wrote:
> >>>> On Mon, Sep 21, 2026 at 11:14:54PM +0000, Pierrick Bouvier wrote:
> >>>>> We'll use this in next patch to switch FROM docker.io/library to
> >>>>> docker.io/amd64. It would not make sense to add a new target to
> >>>>> libvirt-ci for this, since it's just a variant of an existing target.
> >>>>> Simply replace container registry with arch specific one.
> >>>>
> >>>> We shouldn't need to add new targets to lcitool for this,
> >>>> rather it would be enhanced to include a list of arch
> >>>> specific container images.
> >>>>
> >>>> eg in
> >>>>
> >>>> https://gitlab.com/libvirt/libvirt-ci/-/blob/master/lcitool/facts/targets/debian-13.yml?ref_type=heads
> >>>>
> >>>> We would extend:
> >>>>
> >>>>   containers:
> >>>>     base: docker.io/library/debian:13-slim
> >>>>
> >>>> to allow for
> >>>>
> >>>>   containers:
> >>>>     base: docker.io/library/debian:13-slim
> >>>>     aarch64:  docker.io/amd64/debian:13-slim
> >>>>     ...more...
> >>>>
> >>>> such that we default to the 'base' image name, unless
> >>>> there is an arch specific name defined. That would be
> >>>> a fairly quick extension to impl in lcitool.
> >>>
> >>> Quicker than I thought.... take a look at this, which
> >>> I think will enable you to drop this patch and the
> >>> next one and get the same end result:
> >>>
> >>>   https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/588
> >>>
> >>
> >> Very quick indeed, good job :)
> >>
> >> IIUC, when no host-arch is given, we keep on using base, but in case
> >> user specifies -host-arch, in this case we use one of specialized image
> >> (if available)?
> > 
> > Actually it is indepedent of --host-arch.
> > 
> > If --host-arch is omitted we default it to what uname() reports,
> > and the result then goes into the container image lookup, which
> > is optionally specialized per arch.
> >
> 
> It works for QEMU needs, but would that be a safe default for other
> users of lcitool?

Yes, I think it ought to be OK.  If something unexpected crops up
we'll deal with it as needed.

> Technically, you can write portable Dockerfiles between arch. Our
> current debian-all-test is kind of an example of it (ignoring the change
> this series does).

True, but lcitool isn't guaranteeing it can be done, as we allow
output to filter per-arch, so there's always the risk of getting
the libpmem situation - IIRC it hits with 'xen-devel' too as some
arches lack Xen.

So realistically I think we would say lcitool container outputs
are arch specific.

With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 3/7] tests/lci/refresh: add parameter to override container registry
  2026-09-22 19:01             ` Daniel P. Berrangé
@ 2026-09-22 19:03               ` Pierrick Bouvier
  2026-09-23 12:13                 ` Daniel P. Berrangé
  0 siblings, 1 reply; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-22 19:03 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On 9/22/2026 12:01 PM, Daniel P. Berrangé wrote:
> On Tue, Sep 22, 2026 at 11:33:47AM -0700, Pierrick Bouvier wrote:
>> On 9/22/2026 11:29 AM, Daniel P. Berrangé wrote:
>>> On Tue, Sep 22, 2026 at 11:22:43AM -0700, Pierrick Bouvier wrote:
>>>> On 9/22/2026 11:04 AM, Daniel P. Berrangé wrote:
>>>>> On Tue, Sep 22, 2026 at 06:55:18PM +0100, Daniel P. Berrangé wrote:
>>>>>> On Mon, Sep 21, 2026 at 11:14:54PM +0000, Pierrick Bouvier wrote:
>>>>>>> We'll use this in next patch to switch FROM docker.io/library to
>>>>>>> docker.io/amd64. It would not make sense to add a new target to
>>>>>>> libvirt-ci for this, since it's just a variant of an existing target.
>>>>>>> Simply replace container registry with arch specific one.
>>>>>>
>>>>>> We shouldn't need to add new targets to lcitool for this,
>>>>>> rather it would be enhanced to include a list of arch
>>>>>> specific container images.
>>>>>>
>>>>>> eg in
>>>>>>
>>>>>> https://gitlab.com/libvirt/libvirt-ci/-/blob/master/lcitool/facts/targets/debian-13.yml?ref_type=heads
>>>>>>
>>>>>> We would extend:
>>>>>>
>>>>>>   containers:
>>>>>>     base: docker.io/library/debian:13-slim
>>>>>>
>>>>>> to allow for
>>>>>>
>>>>>>   containers:
>>>>>>     base: docker.io/library/debian:13-slim
>>>>>>     aarch64:  docker.io/amd64/debian:13-slim
>>>>>>     ...more...
>>>>>>
>>>>>> such that we default to the 'base' image name, unless
>>>>>> there is an arch specific name defined. That would be
>>>>>> a fairly quick extension to impl in lcitool.
>>>>>
>>>>> Quicker than I thought.... take a look at this, which
>>>>> I think will enable you to drop this patch and the
>>>>> next one and get the same end result:
>>>>>
>>>>>   https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/588
>>>>>
>>>>
>>>> Very quick indeed, good job :)
>>>>
>>>> IIUC, when no host-arch is given, we keep on using base, but in case
>>>> user specifies -host-arch, in this case we use one of specialized image
>>>> (if available)?
>>>
>>> Actually it is indepedent of --host-arch.
>>>
>>> If --host-arch is omitted we default it to what uname() reports,
>>> and the result then goes into the container image lookup, which
>>> is optionally specialized per arch.
>>>
>>
>> It works for QEMU needs, but would that be a safe default for other
>> users of lcitool?
> 
> Yes, I think it ought to be OK.  If something unexpected crops up
> we'll deal with it as needed.
> 
>> Technically, you can write portable Dockerfiles between arch. Our
>> current debian-all-test is kind of an example of it (ignoring the change
>> this series does).
> 
> True, but lcitool isn't guaranteeing it can be done, as we allow
> output to filter per-arch, so there's always the risk of getting
> the libpmem situation - IIRC it hits with 'xen-devel' too as some
> arches lack Xen.
> 
> So realistically I think we would say lcitool container outputs
> are arch specific.
>

I'm good with this assumption. There are always small details that makes
it hard to have truly portable Dockerfiles.

I'll wait for PR to be merged on libvirt-ci, then update current series
with it for v2.

> With regards,
> Daniel

Thanks for the help on this,
Pierrick


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 3/7] tests/lci/refresh: add parameter to override container registry
  2026-09-22 19:03               ` Pierrick Bouvier
@ 2026-09-23 12:13                 ` Daniel P. Berrangé
  2026-09-23 14:00                   ` Pierrick Bouvier
  0 siblings, 1 reply; 35+ messages in thread
From: Daniel P. Berrangé @ 2026-09-23 12:13 UTC (permalink / raw)
  To: Pierrick Bouvier
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On Tue, Sep 22, 2026 at 12:03:59PM -0700, Pierrick Bouvier wrote:
> On 9/22/2026 12:01 PM, Daniel P. Berrangé wrote:
> > On Tue, Sep 22, 2026 at 11:33:47AM -0700, Pierrick Bouvier wrote:
> >> On 9/22/2026 11:29 AM, Daniel P. Berrangé wrote:
> >>> On Tue, Sep 22, 2026 at 11:22:43AM -0700, Pierrick Bouvier wrote:
> >>>> On 9/22/2026 11:04 AM, Daniel P. Berrangé wrote:
> >>>>> On Tue, Sep 22, 2026 at 06:55:18PM +0100, Daniel P. Berrangé wrote:
> >>>>>> On Mon, Sep 21, 2026 at 11:14:54PM +0000, Pierrick Bouvier wrote:
> >>>>>>> We'll use this in next patch to switch FROM docker.io/library to
> >>>>>>> docker.io/amd64. It would not make sense to add a new target to
> >>>>>>> libvirt-ci for this, since it's just a variant of an existing target.
> >>>>>>> Simply replace container registry with arch specific one.
> >>>>>>
> >>>>>> We shouldn't need to add new targets to lcitool for this,
> >>>>>> rather it would be enhanced to include a list of arch
> >>>>>> specific container images.
> >>>>>>
> >>>>>> eg in
> >>>>>>
> >>>>>> https://gitlab.com/libvirt/libvirt-ci/-/blob/master/lcitool/facts/targets/debian-13.yml?ref_type=heads
> >>>>>>
> >>>>>> We would extend:
> >>>>>>
> >>>>>>   containers:
> >>>>>>     base: docker.io/library/debian:13-slim
> >>>>>>
> >>>>>> to allow for
> >>>>>>
> >>>>>>   containers:
> >>>>>>     base: docker.io/library/debian:13-slim
> >>>>>>     aarch64:  docker.io/amd64/debian:13-slim
> >>>>>>     ...more...
> >>>>>>
> >>>>>> such that we default to the 'base' image name, unless
> >>>>>> there is an arch specific name defined. That would be
> >>>>>> a fairly quick extension to impl in lcitool.
> >>>>>
> >>>>> Quicker than I thought.... take a look at this, which
> >>>>> I think will enable you to drop this patch and the
> >>>>> next one and get the same end result:
> >>>>>
> >>>>>   https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/588
> >>>>>
> >>>>
> >>>> Very quick indeed, good job :)
> >>>>
> >>>> IIUC, when no host-arch is given, we keep on using base, but in case
> >>>> user specifies -host-arch, in this case we use one of specialized image
> >>>> (if available)?
> >>>
> >>> Actually it is indepedent of --host-arch.
> >>>
> >>> If --host-arch is omitted we default it to what uname() reports,
> >>> and the result then goes into the container image lookup, which
> >>> is optionally specialized per arch.
> >>>
> >>
> >> It works for QEMU needs, but would that be a safe default for other
> >> users of lcitool?
> > 
> > Yes, I think it ought to be OK.  If something unexpected crops up
> > we'll deal with it as needed.
> > 
> >> Technically, you can write portable Dockerfiles between arch. Our
> >> current debian-all-test is kind of an example of it (ignoring the change
> >> this series does).
> > 
> > True, but lcitool isn't guaranteeing it can be done, as we allow
> > output to filter per-arch, so there's always the risk of getting
> > the libpmem situation - IIRC it hits with 'xen-devel' too as some
> > arches lack Xen.
> > 
> > So realistically I think we would say lcitool container outputs
> > are arch specific.
> >
> 
> I'm good with this assumption. There are always small details that makes
> it hard to have truly portable Dockerfiles.
> 
> I'll wait for PR to be merged on libvirt-ci, then update current series
> with it for v2.

FYI, it is merged now.

With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 3/7] tests/lci/refresh: add parameter to override container registry
  2026-09-23 12:13                 ` Daniel P. Berrangé
@ 2026-09-23 14:00                   ` Pierrick Bouvier
  0 siblings, 0 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-23 14:00 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: qemu-devel, Richard Henderson, Alex Bennée,
	Philippe Mathieu-Daudé

On 9/23/2026 5:13 AM, Daniel P. Berrangé wrote:
> On Tue, Sep 22, 2026 at 12:03:59PM -0700, Pierrick Bouvier wrote:
>> On 9/22/2026 12:01 PM, Daniel P. Berrangé wrote:
>>> On Tue, Sep 22, 2026 at 11:33:47AM -0700, Pierrick Bouvier wrote:
>>>> On 9/22/2026 11:29 AM, Daniel P. Berrangé wrote:
>>>>> On Tue, Sep 22, 2026 at 11:22:43AM -0700, Pierrick Bouvier wrote:
>>>>>> On 9/22/2026 11:04 AM, Daniel P. Berrangé wrote:
>>>>>>> On Tue, Sep 22, 2026 at 06:55:18PM +0100, Daniel P. Berrangé wrote:
>>>>>>>> On Mon, Sep 21, 2026 at 11:14:54PM +0000, Pierrick Bouvier wrote:
>>>>>>>>> We'll use this in next patch to switch FROM docker.io/library to
>>>>>>>>> docker.io/amd64. It would not make sense to add a new target to
>>>>>>>>> libvirt-ci for this, since it's just a variant of an existing target.
>>>>>>>>> Simply replace container registry with arch specific one.
>>>>>>>>
>>>>>>>> We shouldn't need to add new targets to lcitool for this,
>>>>>>>> rather it would be enhanced to include a list of arch
>>>>>>>> specific container images.
>>>>>>>>
>>>>>>>> eg in
>>>>>>>>
>>>>>>>> https://gitlab.com/libvirt/libvirt-ci/-/blob/master/lcitool/facts/targets/debian-13.yml?ref_type=heads
>>>>>>>>
>>>>>>>> We would extend:
>>>>>>>>
>>>>>>>>   containers:
>>>>>>>>     base: docker.io/library/debian:13-slim
>>>>>>>>
>>>>>>>> to allow for
>>>>>>>>
>>>>>>>>   containers:
>>>>>>>>     base: docker.io/library/debian:13-slim
>>>>>>>>     aarch64:  docker.io/amd64/debian:13-slim
>>>>>>>>     ...more...
>>>>>>>>
>>>>>>>> such that we default to the 'base' image name, unless
>>>>>>>> there is an arch specific name defined. That would be
>>>>>>>> a fairly quick extension to impl in lcitool.
>>>>>>>
>>>>>>> Quicker than I thought.... take a look at this, which
>>>>>>> I think will enable you to drop this patch and the
>>>>>>> next one and get the same end result:
>>>>>>>
>>>>>>>   https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/588
>>>>>>>
>>>>>>
>>>>>> Very quick indeed, good job :)
>>>>>>
>>>>>> IIUC, when no host-arch is given, we keep on using base, but in case
>>>>>> user specifies -host-arch, in this case we use one of specialized image
>>>>>> (if available)?
>>>>>
>>>>> Actually it is indepedent of --host-arch.
>>>>>
>>>>> If --host-arch is omitted we default it to what uname() reports,
>>>>> and the result then goes into the container image lookup, which
>>>>> is optionally specialized per arch.
>>>>>
>>>>
>>>> It works for QEMU needs, but would that be a safe default for other
>>>> users of lcitool?
>>>
>>> Yes, I think it ought to be OK.  If something unexpected crops up
>>> we'll deal with it as needed.
>>>
>>>> Technically, you can write portable Dockerfiles between arch. Our
>>>> current debian-all-test is kind of an example of it (ignoring the change
>>>> this series does).
>>>
>>> True, but lcitool isn't guaranteeing it can be done, as we allow
>>> output to filter per-arch, so there's always the risk of getting
>>> the libpmem situation - IIRC it hits with 'xen-devel' too as some
>>> arches lack Xen.
>>>
>>> So realistically I think we would say lcitool container outputs
>>> are arch specific.
>>>
>>
>> I'm good with this assumption. There are always small details that makes
>> it hard to have truly portable Dockerfiles.
>>
>> I'll wait for PR to be merged on libvirt-ci, then update current series
>> with it for v2.
> 
> FYI, it is merged now.
>

Thanks, I'll update series today.

> With regards,
> Daniel



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures
  2026-09-21 23:14 [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
                   ` (6 preceding siblings ...)
  2026-09-21 23:14 ` [PATCH 7/7] tests/tcg/loongarch64/system: deactivate loongarch64-softmmu-memory (hang on aarch64 host) Pierrick Bouvier
@ 2026-09-23 18:59 ` Pierrick Bouvier
  7 siblings, 0 replies; 35+ messages in thread
From: Pierrick Bouvier @ 2026-09-23 18:59 UTC (permalink / raw)
  To: qemu-devel
  Cc: Richard Henderson, Alex Bennée, Philippe Mathieu-Daudé

On 9/21/2026 4:14 PM, Pierrick Bouvier wrote:
> To increase our testing surface on aarch64 and other hosts, and also to ease
> maintenance of docker images, this series introduces x86_64 base containers.
> We rely on qemu-user-binfmt (available at least on Fedora and Debian/Ubuntu) to
> be installed to execute x86_64 binaries on other host arch.
> With this, we can run the full tcg tests suite on any host architecture.
> 
> This series exposed an issue with on aarch64 hosts with test
> loongarch64-softmmu-memory that was reported in issue:
> https://gitlab.com/qemu-project/qemu/-/work_items/4567
> 
> Pierrick Bouvier (7):
>   tests/tcg/meson.build: force use of linux/amd64 platform for
>     containers
>   tests/docker/dockerfiles: refresh images
>   tests/lci/refresh: add parameter to override container registry
>   tests/docker/dockerfiles: use docker.io/amd64 for tcg-tests containers
>   tests/docker/dockerfiles/debian-all-test: remove arch specific bits
>   tests/tcg/meson.build: remove cc_docker_host_arch
>   tests/tcg/loongarch64/system: deactivate loongarch64-softmmu-memory
>     (hang on aarch64 host)
>

Sent v2:
https://lore.kernel.org/qemu-devel/20260923185725.863311-1-pierrick.bouvier@oss.qualcomm.com/T/#t

Regards,
Pierrick


^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2026-09-23 18:59 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-21 23:14 [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier
2026-09-21 23:14 ` [PATCH 1/7] tests/tcg/meson.build: force use of linux/amd64 platform for containers Pierrick Bouvier
2026-09-22  4:34   ` Philippe Mathieu-Daudé
2026-09-22 18:10   ` Daniel P. Berrangé
2026-09-22 18:17     ` Pierrick Bouvier
2026-09-21 23:14 ` [PATCH 2/7] tests/docker/dockerfiles: refresh images Pierrick Bouvier
2026-09-22  4:29   ` Philippe Mathieu-Daudé
2026-09-22 16:15   ` Pierrick Bouvier
2026-09-22 16:41     ` Philippe Mathieu-Daudé
2026-09-22 16:54     ` Daniel P. Berrangé
2026-09-22 17:16       ` Pierrick Bouvier
2026-09-22 17:35         ` Daniel P. Berrangé
2026-09-22 17:41           ` Philippe Mathieu-Daudé
2026-09-22 17:41           ` Pierrick Bouvier
2026-09-22 17:42             ` Pierrick Bouvier
2026-09-22 17:44             ` Daniel P. Berrangé
2026-09-22 17:46               ` Pierrick Bouvier
2026-09-22 17:54       ` Pierrick Bouvier
2026-09-21 23:14 ` [PATCH 3/7] tests/lci/refresh: add parameter to override container registry Pierrick Bouvier
2026-09-22  4:31   ` Philippe Mathieu-Daudé
2026-09-22 17:55   ` Daniel P. Berrangé
2026-09-22 18:04     ` Daniel P. Berrangé
2026-09-22 18:22       ` Pierrick Bouvier
2026-09-22 18:29         ` Daniel P. Berrangé
2026-09-22 18:33           ` Pierrick Bouvier
2026-09-22 19:01             ` Daniel P. Berrangé
2026-09-22 19:03               ` Pierrick Bouvier
2026-09-23 12:13                 ` Daniel P. Berrangé
2026-09-23 14:00                   ` Pierrick Bouvier
2026-09-21 23:14 ` [PATCH 4/7] tests/docker/dockerfiles: use docker.io/amd64 for tcg-tests containers Pierrick Bouvier
2026-09-22  4:31   ` Philippe Mathieu-Daudé
2026-09-21 23:14 ` [PATCH 5/7] tests/docker/dockerfiles/debian-all-test: remove arch specific bits Pierrick Bouvier
2026-09-21 23:14 ` [PATCH 6/7] tests/tcg/meson.build: remove cc_docker_host_arch Pierrick Bouvier
2026-09-21 23:14 ` [PATCH 7/7] tests/tcg/loongarch64/system: deactivate loongarch64-softmmu-memory (hang on aarch64 host) Pierrick Bouvier
2026-09-23 18:59 ` [PATCH 0/7] tests/tcg: use x86_64 cross containers on all host architectures Pierrick Bouvier

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.