diff --git a/.gitlab-ci.d/base.yml b/.gitlab-ci.d/base.yml index 60a24a9d14..921c562000 100644 --- a/.gitlab-ci.d/base.yml +++ b/.gitlab-ci.d/base.yml @@ -45,8 +45,8 @@ variables: - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_TAG' when: never - # Scheduled runs on mainline don't get pipelines except for the special Coverity job - - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_PIPELINE_SOURCE == "schedule"' + # Scheduled jobs should explicitly enable the run in their job rules + - if: '$CI_PIPELINE_SOURCE == "schedule"' when: never # Cirrus jobs can't run unless the creds / target repo are set diff --git a/.gitlab-ci.d/cirrus/freebsd-14.vars b/.gitlab-ci.d/cirrus/freebsd-14.vars index 19ca0d3663..6477440ef3 100644 --- a/.gitlab-ci.d/cirrus/freebsd-14.vars +++ b/.gitlab-ci.d/cirrus/freebsd-14.vars @@ -11,6 +11,6 @@ MAKE='/usr/local/bin/gmake' NINJA='/usr/local/bin/ninja' PACKAGING_COMMAND='pkg' PIP3='/usr/local/bin/pip' -PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache4 cmocka ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk-vnc gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson mtools ncurses nettle ninja opencv pixman pkgconf png py311-numpy py311-pillow py311-pip py311-pyyaml py311-sphinx py311-sphinx_rtd_theme py311-tomli python3 rpm2cpio rust rust-bindgen-cli sdl2 sdl2_image snappy sndio socat spice-protocol tesseract usbredir virglrenderer vte3 vulkan-tools xorriso zstd' +PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache4 cmocka coreutils ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib gmake gnutls gsed gtk-vnc gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson mtools ncurses nettle ninja opencv pixman pkgconf png py311-numpy py311-pillow py311-pip py311-pyyaml py311-sphinx py311-sphinx_rtd_theme py311-tomli python3 rpm2cpio rust rust-bindgen-cli sdl2 sdl2_image snappy sndio socat spice-protocol tesseract usbredir virglrenderer vte3 vulkan-tools xorriso zstd' PYPI_PKGS='' PYTHON='/usr/local/bin/python3' diff --git a/.gitlab-ci.d/cirrus/macos-14.vars b/.gitlab-ci.d/cirrus/macos-14.vars index b039465f56..4701c388e1 100644 --- a/.gitlab-ci.d/cirrus/macos-14.vars +++ b/.gitlab-ci.d/cirrus/macos-14.vars @@ -11,6 +11,6 @@ MAKE='/opt/homebrew/bin/gmake' NINJA='/opt/homebrew/bin/ninja' PACKAGING_COMMAND='brew' PIP3='/opt/homebrew/bin/pip3' -PKGS='bash bc bindgen bison bzip2 capstone ccache cmocka ctags curl dbus diffutils dtc flex gcovr gettext git glib gnu-sed gnutls gtk+3 gtk-vnc jemalloc jpeg-turbo json-c libcbor libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb llvm lzo make meson mtools ncurses nettle ninja pixman pkg-config python3 rpm2cpio rust sdl2 sdl2_image snappy socat sparse spice-protocol swtpm tesseract usbredir vde vte3 vulkan-tools xorriso zlib zstd' +PKGS='bash bc bindgen bison bzip2 capstone ccache cmocka coreutils ctags curl dbus diffutils dtc flex gcovr gettext git glib gnu-sed gnutls gtk+3 gtk-vnc jemalloc jpeg-turbo json-c libcbor libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb llvm lzo make meson mtools ncurses nettle ninja pixman pkg-config python3 rpm2cpio rust sdl2 sdl2_image snappy socat sparse spice-protocol swtpm tesseract usbredir vde vte3 vulkan-tools xorriso zlib zstd' PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme tomli' PYTHON='/opt/homebrew/bin/python3' diff --git a/.gitlab-ci.d/container-template.yml b/.gitlab-ci.d/container-template.yml index 4eec72f383..82c1b69e8d 100644 --- a/.gitlab-ci.d/container-template.yml +++ b/.gitlab-ci.d/container-template.yml @@ -19,3 +19,8 @@ - docker push "$TAG" after_script: - docker logout + rules: + # because we want to enable this for scheduled runs we also have to replicate the normal rules + - if: '$CI_PIPELINE_SOURCE == "schedule"' + - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/' + - if: '$QEMU_CI && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM' diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml index db9b4d5e57..f7d3e7205d 100644 --- a/.gitlab-ci.d/containers.yml +++ b/.gitlab-ci.d/containers.yml @@ -33,3 +33,42 @@ amd64-fedora-rust-nightly-container: variables: NAME: fedora-rust-nightly allow_failure: true + +# this scheduled job will trigger all the containers to build +weekly-container-builds: + extends: .container_job_template + allow_failure: true + needs: + # core + - amd64-centos9-container + - amd64-fedora-container + # cross + - amd64-debian-cross-container + - amd64-debian-user-cross-container + - amd64-debian-legacy-cross-container + - arm64-debian-cross-container + - armhf-debian-cross-container + - hexagon-cross-container + - loongarch-debian-cross-container + - i686-debian-cross-container + - mips64el-debian-cross-container + - ppc64el-debian-cross-container + - riscv64-debian-cross-container + - s390x-debian-cross-container + - tricore-debian-cross-container + - xtensa-debian-cross-container + - win64-fedora-cross-container + - wasm-emsdk-cross-container + # containers + - amd64-alpine-container + - amd64-debian-container + - amd64-ubuntu2204-container + - amd64-opensuse-leap-container + - python-container + - amd64-fedora-rust-nightly-container + script: + - apk -U add make bash skopeo + - make docker-verify V=1 DOCKER_DEFAULT_REGISTRY=$CI_REGISTRY_IMAGE + rules: + # this only ever runes as a scheduled build + - if: '$CI_PIPELINE_SOURCE == "schedule"' diff --git a/.gitlab-ci.d/custom-runners.yml b/.gitlab-ci.d/custom-runners.yml index 142fbf4a24..3e28e48c97 100644 --- a/.gitlab-ci.d/custom-runners.yml +++ b/.gitlab-ci.d/custom-runners.yml @@ -31,3 +31,4 @@ include: - local: '/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml' - local: '/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml' + - local: '/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml' diff --git a/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml b/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml new file mode 100644 index 0000000000..23b188dc72 --- /dev/null +++ b/.gitlab-ci.d/custom-runners/debian-13-ppc64le.yml @@ -0,0 +1,45 @@ +# All jobs should run successfully in an environment setup by the +# scripts/ci/setup/build-environment.yml task: +# "Install basic packages to build QEMU on Ubuntu/Debian" + +.debian_ppc64le_template: + extends: .custom_runner_template + needs: [] + stage: build + tags: + - debian_13 + - ppc64le + rules: + - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/' + - if: '$QEMU_CI != "1" && $QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM' + when: never + - if: '$PPC64LE_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule" && $QEMU_CI == "1"' + when: manual + - if: '$PPC64LE_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule"' + before_script: + - source scripts/ci/gitlab-ci-section + - section_start setup "Pre-script setup" + - JOBS=$(expr $(nproc) - 2) + - section_end setup + script: + - mkdir build + - cd build + - section_start configure "Running configure" + - ../configure $CONFIGURE_ARGS || + { cat config.log meson-logs/meson-log.txt && exit 1; } + - section_end configure + - section_start build "Building QEMU" + - make --output-sync -j"$JOBS" + - section_end build + - section_start test "Running tests" + - if test -n "$MAKE_CHECK_ARGS"; + then + make -j"$JOBS" $MAKE_CHECK_ARGS ; + fi + - section_end test + +debian-13-ppc64le-default: + extends: .debian_ppc64le_template + variables: + # qtest currently fails: https://gitlab.com/qemu-project/qemu/-/issues/3207 + MAKE_CHECK_ARGS: check-unit check-tcg check-softfloat diff --git a/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml b/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml index ee13587d99..98d9919345 100644 --- a/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml +++ b/.gitlab-ci.d/custom-runners/ubuntu-24.04-aarch64.yml @@ -11,7 +11,11 @@ - aarch64 rules: - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - - if: "$AARCH64_RUNNER_AVAILABLE" + - if: '$QEMU_CI != "1" && $QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM' + when: never + - if: '$AARCH64_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule" && $QEMU_CI == "1"' + when: manual + - if: '$AARCH64_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule"' before_script: - source scripts/ci/gitlab-ci-section - section_start setup "Pre-script setup" @@ -46,26 +50,16 @@ ubuntu-24.04-aarch64-all: extends: .ubuntu_aarch64_template variables: MAKE_CHECK_ARGS: check - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual - allow_failure: true + allow_failure: true + when: manual ubuntu-24.04-aarch64-without-defaults: extends: .ubuntu_aarch64_template variables: CONFIGURE_ARGS: --disable-user --without-default-devices --without-default-features MAKE_CHECK_ARGS: check - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual - allow_failure: true + allow_failure: true + when: manual ubuntu-24.04-aarch64-alldbg: extends: .ubuntu_aarch64_template @@ -78,34 +72,21 @@ ubuntu-24.04-aarch64-clang: variables: CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-ubsan MAKE_CHECK_ARGS: check - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual - allow_failure: true + allow_failure: true + when: manual ubuntu-24.04-aarch64-tci: extends: .ubuntu_aarch64_template variables: CONFIGURE_ARGS: --enable-tcg-interpreter MAKE_CHECK_ARGS: check - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual - allow_failure: true + allow_failure: true + when: manual ubuntu-24.04-aarch64-notcg: extends: .ubuntu_aarch64_template variables: CONFIGURE_ARGS: --disable-tcg --with-devices-aarch64=minimal MAKE_CHECK_ARGS: check - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - - if: "$AARCH64_RUNNER_AVAILABLE" - when: manual + allow_failure: true + when: manual diff --git a/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml b/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml index 45dbee1788..efa8252d94 100644 --- a/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml +++ b/.gitlab-ci.d/custom-runners/ubuntu-24.04-s390x.yml @@ -2,129 +2,88 @@ # setup by the scripts/ci/setup/ubuntu/build-environment.yml task # "Install basic packages to build QEMU on Ubuntu 24.04" +.ubuntu_s390x_template: + extends: .custom_runner_template + needs: [] + stage: build + tags: + - ubuntu_24.04 + - s390x + rules: + - if: '$CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH =~ /^staging/' + - if: '$QEMU_CI != "1" && $QEMU_CI != "2" && $CI_PROJECT_NAMESPACE != $QEMU_CI_UPSTREAM' + when: never + - if: '$S390X_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule" && $QEMU_CI == "1"' + when: manual + - if: '$S390X_RUNNER_AVAILABLE && $CI_PIPELINE_SOURCE != "schedule"' + before_script: + - source scripts/ci/gitlab-ci-section + - section_start setup "Pre-script setup" + - JOBS=$(expr $(nproc) - 1) + - section_end setup + script: + - mkdir build + - cd build + - section_start configure "Running configure" + - ../configure $CONFIGURE_ARGS || + { cat config.log meson-logs/meson-log.txt; exit 1; } + - section_end configure + - section_start build "Building QEMU" + - make --output-sync -j"$JOBS" + - section_end build + - section_start test "Running tests" + - if test -n "$MAKE_CHECK_ARGS"; + then + make -j"$JOBS" $MAKE_CHECK_ARGS ; + fi + - section_end test + ubuntu-24.04-s390x-all-linux: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - - if: "$S390X_RUNNER_AVAILABLE" - script: - - mkdir build - - cd build - - ../configure --enable-debug --disable-system --disable-tools --disable-docs - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` - - make --output-sync check-tcg - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --enable-debug --disable-system --disable-tools --disable-docs + MAKE_CHECK_ARGS: check-tcg check ubuntu-24.04-s390x-all-system: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - timeout: 75m - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --disable-user - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --disable-user + MAKE_CHECK_ARGS: check + allow_failure: true ubuntu-24.04-s390x-alldbg: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --enable-debug - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make clean - - make --output-sync -j`nproc` - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --enable-debug + MAKE_CHECK_ARGS: check + allow_failure: true + when: manual ubuntu-24.04-s390x-clang: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --cc=clang --cxx=clang++ --enable-ubsan - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-ubsan + MAKE_CHECK_ARGS: check + allow_failure: true + when: manual ubuntu-24.04-s390x-tci: - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --enable-tcg-interpreter - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --enable-tcg-interpreter + allow_failure: true + when: manual ubuntu-24.04-s390x-notcg: - extends: .custom_runner_template - needs: [] - stage: build - tags: - - ubuntu_24.04 - - s390x - rules: - - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/' - when: manual - allow_failure: true - - if: "$S390X_RUNNER_AVAILABLE" - when: manual - allow_failure: true - script: - - mkdir build - - cd build - - ../configure --disable-tcg - || { cat config.log meson-logs/meson-log.txt; exit 1; } - - make --output-sync -j`nproc` - - make --output-sync -j`nproc` check + extends: .ubuntu_s390x_template + needs: [] + variables: + CONFIGURE_ARGS: --disable-tcg + MAKE_CHECK_ARGS: check + allow_failure: true + when: manual diff --git a/docs/about/emulation.rst b/docs/about/emulation.rst index 92c219119e..4a7d1f4178 100644 --- a/docs/about/emulation.rst +++ b/docs/about/emulation.rst @@ -886,24 +886,24 @@ As an example, we can trace qemu itself running git:: $ uftrace dump --chrome | gzip > ~/qemu_aarch64_git_help.json.gz For convenience, you can download this trace `qemu_aarch64_git_help.json.gz -`_. +`_. Download it and open this trace on https://ui.perfetto.dev/. You can zoom in/out using :kbd:`W`, :kbd:`A`, :kbd:`S`, :kbd:`D` keys. Some sequences taken from this trace: - Loading program and its interpreter -.. image:: https://fileserver.linaro.org/s/fie8JgX76yyL5cq/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/loader_exec.png?raw=true :height: 200px - open syscall -.. image:: https://fileserver.linaro.org/s/rsXPTeZZPza4PcE/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/open_syscall.png?raw=true :height: 200px - TB creation -.. image:: https://fileserver.linaro.org/s/GXY6NKMw5EeRCew/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/tb_translation.png?raw=true :height: 200px It's usually better to use ``uftrace record`` directly. However, tracing @@ -916,7 +916,7 @@ Example system trace A full trace example (chrome trace, from instructions below) generated from a system boot can be found `here -`_. +`_. Download it and open this trace on https://ui.perfetto.dev/. You can see code executed for all privilege levels, and zoom in/out using :kbd:`W`, :kbd:`A`, :kbd:`S`, :kbd:`D` keys. You can find below some sequences @@ -924,27 +924,27 @@ taken from this trace: - Two first stages of boot sequence in Arm Trusted Firmware (EL3 and S-EL1) -.. image:: https://fileserver.linaro.org/s/kkxBS552W7nYESX/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/bl3_to_bl1.png?raw=true :height: 200px - U-boot initialization (until code relocation, after which we can't track it) -.. image:: https://fileserver.linaro.org/s/LKTgsXNZFi5GFNC/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/uboot.png?raw=true :height: 200px - Stat and open syscalls in kernel -.. image:: https://fileserver.linaro.org/s/dXe4MfraKg2F476/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/stat.png?raw=true :height: 200px - Timer interrupt -.. image:: https://fileserver.linaro.org/s/TM5yobYzJtP7P3C/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/timer_interrupt.png?raw=true :height: 200px - Poweroff sequence (from kernel back to firmware, NS-EL2 to EL3) -.. image:: https://fileserver.linaro.org/s/oR2PtyGKJrqnfRf/preview +.. image:: https://github.com/pbo-linaro/qemu-assets/blob/master/qemu-uftrace/poweroff.png?raw=true :height: 200px Build and run system example diff --git a/docs/devel/testing/ci-jobs.rst.inc b/docs/devel/testing/ci-jobs.rst.inc index b92d372a0a..f1c70344ec 100644 --- a/docs/devel/testing/ci-jobs.rst.inc +++ b/docs/devel/testing/ci-jobs.rst.inc @@ -174,6 +174,12 @@ If you've got access to an IBM Z host that can be used as a gitlab-CI runner, you can set this variable to enable the tests that require this kind of host. The runner should be tagged with "s390x". +PPC64LE_RUNNER_AVAILABLE +~~~~~~~~~~~~~~~~~~~~~~~~ +If you've got access to an PPC64LE host that can be used as a gitlab-CI +runner, you can set this variable to enable the tests that require this +kind of host. The runner should be tagged with "ppc64le". + CCACHE_DISABLE ~~~~~~~~~~~~~~ The jobs are configured to use "ccache" by default since this typically diff --git a/scripts/ci/setup/debian/debian-13-ppc64le.yaml b/scripts/ci/setup/debian/debian-13-ppc64le.yaml index e29c9c1840..25d96cea46 100644 --- a/scripts/ci/setup/debian/debian-13-ppc64le.yaml +++ b/scripts/ci/setup/debian/debian-13-ppc64le.yaml @@ -14,6 +14,7 @@ packages: - ca-certificates - ccache - clang + - coreutils - dbus - debianutils - diffutils diff --git a/scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml b/scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml index d303411391..6a72eabca9 100644 --- a/scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml +++ b/scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml @@ -14,6 +14,7 @@ packages: - ca-certificates - ccache - clang + - coreutils - dbus - debianutils - diffutils diff --git a/scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml b/scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml index 4ee8630cc4..6001da1250 100644 --- a/scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml +++ b/scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml @@ -14,6 +14,7 @@ packages: - ca-certificates - ccache - clang + - coreutils - dbus - debianutils - diffutils diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 3959d8a028..38467cca61 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -49,6 +49,15 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker -t qemu/$* - < $< $(if $V,,> /dev/null),\ "BUILD", $*) +# General rule for inspecting registry images. +docker-verify-%: $(DOCKER_FILES_DIR)/%.docker + $(call quiet-command, \ + skopeo inspect \ + --format '{{.Created}}' \ + docker://$(DOCKER_REGISTRY)/qemu/$* \ + $(if $V,,> /dev/null),\ + "VERIFY", $*) + # Special rule for debootstraped binfmt linux-user images docker-binfmt-image-debian-%: $(DOCKER_FILES_DIR)/debian-bootstrap.docker $(if $(EXECUTABLE),,\ @@ -236,6 +245,8 @@ docker-run: docker-qemu-src docker-image: ${DOCKER_IMAGES:%=docker-image-%} +docker-verify: ${DOCKER_IMAGES:%=docker-verify-%} + docker-clean: $(call quiet-command, $(DOCKER_SCRIPT) clean) diff --git a/tests/docker/dockerfiles/alpine.docker b/tests/docker/dockerfiles/alpine.docker index 52adf9ccbb..03dd6851f6 100644 --- a/tests/docker/dockerfiles/alpine.docker +++ b/tests/docker/dockerfiles/alpine.docker @@ -22,6 +22,7 @@ RUN apk update && \ ceph-dev \ clang \ cmocka-dev \ + coreutils \ ctags \ curl-dev \ cyrus-sasl-dev \ @@ -126,11 +127,11 @@ RUN apk update && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" # https://gitlab.alpinelinux.org/alpine/aports/-/issues/17463 RUN apk add clang19-libclang # As a final step configure the user (if env is defined) diff --git a/tests/docker/dockerfiles/centos9.docker b/tests/docker/dockerfiles/centos9.docker index 0674d77826..670e22be5a 100644 --- a/tests/docker/dockerfiles/centos9.docker +++ b/tests/docker/dockerfiles/centos9.docker @@ -26,6 +26,7 @@ RUN dnf distro-sync -y && \ ccache \ clang \ compiler-rt \ + coreutils-single \ ctags \ cyrus-sasl-devel \ daxctl-devel \ @@ -132,11 +133,11 @@ RUN dnf distro-sync -y && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker index 7f4674400d..c386b658b0 100644 --- a/tests/docker/dockerfiles/debian-amd64-cross.docker +++ b/tests/docker/dockerfiles/debian-amd64-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ @@ -72,11 +73,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" RUN export DEBIAN_FRONTEND=noninteractive && \ dpkg --add-architecture amd64 && \ @@ -178,11 +179,11 @@ endian = 'little'\n" > /usr/local/share/meson/cross/x86_64-linux-gnu && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-linux-gnu-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-linux-gnu-gcc -ENV ABI "x86_64-linux-gnu" -ENV MESON_OPTS "--cross-file=x86_64-linux-gnu" -ENV RUST_TARGET "x86_64-unknown-linux-gnu" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-linux-gnu- -ENV DEF_TARGET_LIST x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user +ENV ABI="x86_64-linux-gnu" +ENV MESON_OPTS="--cross-file=x86_64-linux-gnu" +ENV RUST_TARGET="x86_64-unknown-linux-gnu" +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=x86_64-linux-gnu- +ENV DEF_TARGET_LIST=x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker index c7cd54ee5c..9d83ab7a32 100644 --- a/tests/docker/dockerfiles/debian-arm64-cross.docker +++ b/tests/docker/dockerfiles/debian-arm64-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ @@ -72,11 +73,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" RUN export DEBIAN_FRONTEND=noninteractive && \ dpkg --add-architecture arm64 && \ @@ -177,11 +178,11 @@ endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-linux-gnu && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-gcc -ENV ABI "aarch64-linux-gnu" -ENV MESON_OPTS "--cross-file=aarch64-linux-gnu" -ENV RUST_TARGET "aarch64-unknown-linux-gnu" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=aarch64-linux-gnu- -ENV DEF_TARGET_LIST aarch64-softmmu,aarch64-linux-user +ENV ABI="aarch64-linux-gnu" +ENV MESON_OPTS="--cross-file=aarch64-linux-gnu" +ENV RUST_TARGET="aarch64-unknown-linux-gnu" +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=aarch64-linux-gnu- +ENV DEF_TARGET_LIST=aarch64-softmmu,aarch64-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker index 627d41c6de..c2077ec7a2 100644 --- a/tests/docker/dockerfiles/debian-armhf-cross.docker +++ b/tests/docker/dockerfiles/debian-armhf-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ @@ -72,11 +73,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" RUN export DEBIAN_FRONTEND=noninteractive && \ dpkg --add-architecture armhf && \ @@ -174,11 +175,11 @@ endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc -ENV ABI "arm-linux-gnueabihf" -ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf" -ENV RUST_TARGET "armv7-unknown-linux-gnueabihf" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabihf- -ENV DEF_TARGET_LIST arm-softmmu,arm-linux-user +ENV ABI="arm-linux-gnueabihf" +ENV MESON_OPTS="--cross-file=arm-linux-gnueabihf" +ENV RUST_TARGET="armv7-unknown-linux-gnueabihf" +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=arm-linux-gnueabihf- +ENV DEF_TARGET_LIST=arm-softmmu,arm-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker index 2998764065..db9f04ee93 100644 --- a/tests/docker/dockerfiles/debian-i686-cross.docker +++ b/tests/docker/dockerfiles/debian-i686-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ @@ -72,11 +73,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" RUN export DEBIAN_FRONTEND=noninteractive && \ dpkg --add-architecture i386 && \ @@ -174,11 +175,11 @@ endian = 'little'\n" > /usr/local/share/meson/cross/i686-linux-gnu && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc -ENV ABI "i686-linux-gnu" -ENV MESON_OPTS "--cross-file=i686-linux-gnu" -ENV RUST_TARGET "i686-unknown-linux-gnu" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=i686-linux-gnu- -ENV DEF_TARGET_LIST i386-softmmu,i386-linux-user +ENV ABI="i686-linux-gnu" +ENV MESON_OPTS="--cross-file=i686-linux-gnu" +ENV RUST_TARGET="i686-unknown-linux-gnu" +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=i686-linux-gnu- +ENV DEF_TARGET_LIST=i386-softmmu,i386-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-mips64el-cross.docker b/tests/docker/dockerfiles/debian-mips64el-cross.docker index 6e88777f76..7758afd80a 100644 --- a/tests/docker/dockerfiles/debian-mips64el-cross.docker +++ b/tests/docker/dockerfiles/debian-mips64el-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ @@ -71,11 +72,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" RUN export DEBIAN_FRONTEND=noninteractive && \ dpkg --add-architecture mips64el && \ @@ -173,11 +174,11 @@ endian = 'little'\n" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-gcc -ENV ABI "mips64el-linux-gnuabi64" -ENV MESON_OPTS "--cross-file=mips64el-linux-gnuabi64" -ENV RUST_TARGET "mips64el-unknown-linux-gnuabi64" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=mips64el-linux-gnuabi64- -ENV DEF_TARGET_LIST mips64el-softmmu,mips64el-linux-user +ENV ABI="mips64el-linux-gnuabi64" +ENV MESON_OPTS="--cross-file=mips64el-linux-gnuabi64" +ENV RUST_TARGET="mips64el-unknown-linux-gnuabi64" +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=mips64el-linux-gnuabi64- +ENV DEF_TARGET_LIST=mips64el-softmmu,mips64el-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker index 5f4e3fa963..cba7f43870 100644 --- a/tests/docker/dockerfiles/debian-mipsel-cross.docker +++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ @@ -71,11 +72,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" RUN export DEBIAN_FRONTEND=noninteractive && \ dpkg --add-architecture mipsel && \ @@ -173,11 +174,11 @@ endian = 'little'\n" > /usr/local/share/meson/cross/mipsel-linux-gnu && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-gcc -ENV ABI "mipsel-linux-gnu" -ENV MESON_OPTS "--cross-file=mipsel-linux-gnu" -ENV RUST_TARGET "mipsel-unknown-linux-gnu" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=mipsel-linux-gnu- -ENV DEF_TARGET_LIST mipsel-softmmu,mipsel-linux-user +ENV ABI="mipsel-linux-gnu" +ENV MESON_OPTS="--cross-file=mipsel-linux-gnu" +ENV RUST_TARGET="mipsel-unknown-linux-gnu" +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=mipsel-linux-gnu- +ENV DEF_TARGET_LIST=mipsel-softmmu,mipsel-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker index dfa690616d..24f946d144 100644 --- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker +++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ @@ -72,11 +73,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" RUN export DEBIAN_FRONTEND=noninteractive && \ dpkg --add-architecture ppc64el && \ @@ -176,11 +177,11 @@ endian = 'little'\n" > /usr/local/share/meson/cross/powerpc64le-linux-gnu && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-gcc -ENV ABI "powerpc64le-linux-gnu" -ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu" -ENV RUST_TARGET "powerpc64le-unknown-linux-gnu" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc64le-linux-gnu- -ENV DEF_TARGET_LIST ppc64-softmmu,ppc64-linux-user +ENV ABI="powerpc64le-linux-gnu" +ENV MESON_OPTS="--cross-file=powerpc64le-linux-gnu" +ENV RUST_TARGET="powerpc64le-unknown-linux-gnu" +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=powerpc64le-linux-gnu- +ENV DEF_TARGET_LIST=ppc64-softmmu,ppc64-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-riscv64-cross.docker b/tests/docker/dockerfiles/debian-riscv64-cross.docker index 09b2953f32..f476cf65ea 100644 --- a/tests/docker/dockerfiles/debian-riscv64-cross.docker +++ b/tests/docker/dockerfiles/debian-riscv64-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ @@ -72,17 +73,14 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" RUN export DEBIAN_FRONTEND=noninteractive && \ dpkg --add-architecture riscv64 && \ - eatmydata apt-get install debian-ports-archive-keyring && \ - eatmydata echo 'deb http://ftp.ports.debian.org/debian-ports/ sid main' > /etc/apt/sources.list.d/ports.list && \ - eatmydata echo 'deb http://ftp.ports.debian.org/debian-ports/ unreleased main' >> /etc/apt/sources.list.d/ports.list && \ eatmydata apt-get update && \ eatmydata apt-get dist-upgrade -y && \ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ @@ -179,11 +177,11 @@ endian = 'little'\n" > /usr/local/share/meson/cross/riscv64-linux-gnu && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/riscv64-linux-gnu-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/riscv64-linux-gnu-gcc -ENV ABI "riscv64-linux-gnu" -ENV MESON_OPTS "--cross-file=riscv64-linux-gnu" -ENV RUST_TARGET "riscv64gc-unknown-linux-gnu" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=riscv64-linux-gnu- -ENV DEF_TARGET_LIST riscv64-softmmu,riscv64-linux-user +ENV ABI="riscv64-linux-gnu" +ENV MESON_OPTS="--cross-file=riscv64-linux-gnu" +ENV RUST_TARGET="riscv64gc-unknown-linux-gnu" +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=riscv64-linux-gnu- +ENV DEF_TARGET_LIST=riscv64-softmmu,riscv64-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker index 09a78c15ba..a60b4ab01d 100644 --- a/tests/docker/dockerfiles/debian-s390x-cross.docker +++ b/tests/docker/dockerfiles/debian-s390x-cross.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ bzip2 \ ca-certificates \ ccache \ + coreutils \ dbus \ debianutils \ diffutils \ @@ -72,11 +73,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" RUN export DEBIAN_FRONTEND=noninteractive && \ dpkg --add-architecture s390x && \ @@ -175,11 +176,11 @@ endian = 'big'\n" > /usr/local/share/meson/cross/s390x-linux-gnu && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-cc && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-gcc -ENV ABI "s390x-linux-gnu" -ENV MESON_OPTS "--cross-file=s390x-linux-gnu" -ENV RUST_TARGET "s390x-unknown-linux-gnu" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=s390x-linux-gnu- -ENV DEF_TARGET_LIST s390x-softmmu,s390x-linux-user +ENV ABI="s390x-linux-gnu" +ENV MESON_OPTS="--cross-file=s390x-linux-gnu" +ENV RUST_TARGET="s390x-unknown-linux-gnu" +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=s390x-linux-gnu- +ENV DEF_TARGET_LIST=s390x-softmmu,s390x-linux-user # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker index 8dd893be4b..6c6ab0256e 100644 --- a/tests/docker/dockerfiles/debian.docker +++ b/tests/docker/dockerfiles/debian.docker @@ -20,6 +20,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ ca-certificates \ ccache \ clang \ + coreutils \ dbus \ debianutils \ diffutils \ @@ -152,11 +153,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" # netmap/cscope/global RUN DEBIAN_FRONTEND=noninteractive eatmydata \ apt install -y --no-install-recommends \ @@ -169,7 +170,7 @@ RUN cd /usr/src/netmap/LINUX && \ ./configure --no-drivers --no-apps \ --kernel-dir=$(ls -d /usr/src/linux-headers-*-$(dpkg --print-architecture)) \ && make install -ENV QEMU_CONFIGURE_OPTS --enable-netmap +ENV QEMU_CONFIGURE_OPTS=--enable-netmap # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/emsdk-wasm32-cross.docker b/tests/docker/dockerfiles/emsdk-wasm32-cross.docker index 6b1642a207..1f08eb0b85 100644 --- a/tests/docker/dockerfiles/emsdk-wasm32-cross.docker +++ b/tests/docker/dockerfiles/emsdk-wasm32-cross.docker @@ -115,8 +115,8 @@ RUN mkdir -p /glib RUN curl -Lks https://download.gnome.org/sources/glib/${GLIB_MINOR_VERSION}/glib-$GLIB_VERSION.tar.xz | \ tar xJC /glib --strip-components=1 -COPY --link --from=zlib-dev /builddeps/ /builddeps/ -COPY --link --from=libffi-dev /builddeps/ /builddeps/ +COPY --from=zlib-dev /builddeps/ /builddeps/ +COPY --from=libffi-dev /builddeps/ /builddeps/ WORKDIR /glib RUN < /usr/bin/nosync && \ ccache \ clang \ compiler-rt \ + coreutils \ ctags \ cyrus-sasl-devel \ daxctl-devel \ @@ -152,11 +153,11 @@ exec "$@"\n' > /usr/bin/nosync && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" RUN dnf install -y wget ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo ENV RUSTC=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc diff --git a/tests/docker/dockerfiles/fedora-win64-cross.docker b/tests/docker/dockerfiles/fedora-win64-cross.docker index c76a70c368..4f743c0043 100644 --- a/tests/docker/dockerfiles/fedora-win64-cross.docker +++ b/tests/docker/dockerfiles/fedora-win64-cross.docker @@ -26,6 +26,7 @@ exec "$@"\n' > /usr/bin/nosync && \ ca-certificates \ ccache \ compiler-rt \ + coreutils \ ctags \ dbus-daemon \ diffutils \ @@ -72,11 +73,11 @@ exec "$@"\n' > /usr/bin/nosync && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" RUN nosync dnf install -y \ mingw-w64-tools \ @@ -110,10 +111,10 @@ RUN nosync dnf install -y \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-g++ && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-gcc -ENV ABI "x86_64-w64-mingw32" -ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw64.meson" -ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-w64-mingw32- -ENV DEF_TARGET_LIST x86_64-softmmu +ENV ABI="x86_64-w64-mingw32" +ENV MESON_OPTS="--cross-file=/usr/share/mingw/toolchain-mingw64.meson" +ENV QEMU_CONFIGURE_OPTS=--cross-prefix=x86_64-w64-mingw32- +ENV DEF_TARGET_LIST=x86_64-softmmu # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker index 891a740fcb..9278d79769 100644 --- a/tests/docker/dockerfiles/fedora.docker +++ b/tests/docker/dockerfiles/fedora.docker @@ -33,6 +33,7 @@ exec "$@"\n' > /usr/bin/nosync && \ ccache \ clang \ compiler-rt \ + coreutils \ ctags \ cyrus-sasl-devel \ daxctl-devel \ @@ -152,11 +153,11 @@ exec "$@"\n' > /usr/bin/nosync && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/opensuse-leap.docker b/tests/docker/dockerfiles/opensuse-leap.docker index 75e1747780..a041d43976 100644 --- a/tests/docker/dockerfiles/opensuse-leap.docker +++ b/tests/docker/dockerfiles/opensuse-leap.docker @@ -20,6 +20,7 @@ RUN zypper update -y && \ ccache \ clang \ clang-devel \ + coreutils \ ctags \ cyrus-sasl-devel \ dbus-1 \ @@ -138,11 +139,11 @@ RUN /usr/bin/pip3.11 install \ sphinx \ sphinx-rtd-theme -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3.11" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3.11" # As a final step configure the user (if env is defined) ARG USER ARG UID diff --git a/tests/docker/dockerfiles/ubuntu2204.docker b/tests/docker/dockerfiles/ubuntu2204.docker index 602d419624..23b33d6ad4 100644 --- a/tests/docker/dockerfiles/ubuntu2204.docker +++ b/tests/docker/dockerfiles/ubuntu2204.docker @@ -19,6 +19,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ ca-certificates \ ccache \ clang \ + coreutils \ dbus \ debianutils \ diffutils \ @@ -150,11 +151,11 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN /usr/bin/pip3 install meson==1.8.1 -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +ENV LANG="en_US.UTF-8" +ENV MAKE="/usr/bin/make" +ENV NINJA="/usr/bin/ninja" +ENV PYTHON="/usr/bin/python3" ENV RUSTC=/usr/bin/rustc-1.83 ENV RUSTDOC=/usr/bin/rustdoc-1.83 ENV CARGO_HOME=/usr/local/cargo diff --git a/tests/functional/aarch64/test_kvm.py b/tests/functional/aarch64/test_kvm.py index 9fb9286139..7545f5ed55 100755 --- a/tests/functional/aarch64/test_kvm.py +++ b/tests/functional/aarch64/test_kvm.py @@ -19,9 +19,7 @@ from qemu_test.linuxkernel import LinuxKernelTest class Aarch64VirtKVMTests(LinuxKernelTest): ASSET_KVM_TEST_KERNEL = Asset( - 'https://fileserver.linaro.org/s/HmjaxXXYHYSqbes/' - 'download?path=%2F&files=' - 'image-with-kvm-tool-and-unit-tests.gz', + 'https://share.linaro.org/downloadFile?id=Bs8Eb2Wb7yWtkTA', '34de4aaea90db5da42729e7d28b77f392c37a2f4da859f889a5234aaf0970696') # make it easier to detect successful return to shell diff --git a/tests/functional/aarch64/test_virt.py b/tests/functional/aarch64/test_virt.py index 63071f9b51..f9e3ec08fa 100755 --- a/tests/functional/aarch64/test_virt.py +++ b/tests/functional/aarch64/test_virt.py @@ -60,8 +60,7 @@ class Aarch64VirtMachine(QemuSystemTest): ASSET_KERNEL = Asset( - ('https://fileserver.linaro.org/s/' - 'z6B2ARM7DQT3HWN/download'), + 'https://share.linaro.org/downloadFile?id=3zGlbmXh8pXFewt', '12a54d4805cda6ab647cb7c7bbdb16fafb3df400e0d6f16445c1a0436100ef8d') def common_aarch64_virt(self, machine): @@ -77,7 +76,7 @@ class Aarch64VirtMachine(QemuSystemTest): self.vm.set_console() kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyAMA0') - self.vm.add_args('-cpu', 'max,pauth-impdef=on', + self.vm.add_args('-cpu', 'max', '-machine', machine, '-accel', 'tcg', '-kernel', kernel_path, diff --git a/tests/functional/aarch64/test_virt_gpu.py b/tests/functional/aarch64/test_virt_gpu.py index 4e50887c3e..c26a1f20c6 100755 --- a/tests/functional/aarch64/test_virt_gpu.py +++ b/tests/functional/aarch64/test_virt_gpu.py @@ -23,15 +23,11 @@ from subprocess import check_output, CalledProcessError class Aarch64VirtGPUMachine(LinuxKernelTest): ASSET_VIRT_GPU_KERNEL = Asset( - 'https://fileserver.linaro.org/s/ce5jXBFinPxtEdx/' - 'download?path=%2F&files=' - 'Image.6.12.16.aarch64', + 'https://share.linaro.org/downloadFile?id=lL8wgnMmSXZo7Co', '7888c51c55d37e86bbbdeb5acea9f08c34e6b0f03c1f5b2463285f6a6f6eec8b') ASSET_VIRT_GPU_ROOTFS = Asset( - 'https://fileserver.linaro.org/s/ce5jXBFinPxtEdx/' - 'download?path=%2F&files=' - 'rootfs.aarch64.ext2.zstd', + 'https://share.linaro.org/downloadFile?id=qOn1wbfKmS6KVHZ', 'd45118c899420b7e673f1539a37a35480134b3e36e3a59e2cb69b1781cbb14ef') def _launch_virt_gpu(self, gpu_device): diff --git a/tests/functional/aarch64/test_xen.py b/tests/functional/aarch64/test_xen.py index 261d796540..d90595cad3 100755 --- a/tests/functional/aarch64/test_xen.py +++ b/tests/functional/aarch64/test_xen.py @@ -25,8 +25,7 @@ class BootXen(LinuxKernelTest): XEN_COMMON_COMMAND_LINE = 'dom0_mem=128M loglvl=all guest_loglvl=all' ASSET_KERNEL = Asset( - ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/' - 'download?path=%2F&files=linux-5.9.9-arm64-ajb'), + 'https://share.linaro.org/downloadFile?id=RRahAWwAwYKTZQd', '00366fa51ea957c19462d2e2aefd480bef80ce727120e714ae48e0c88f261edb') def launch_xen(self, xen_path): @@ -55,8 +54,7 @@ class BootXen(LinuxKernelTest): wait_for_console_pattern(self, console_pattern, "Panic on CPU 0:") ASSET_XEN_4_11 = Asset( - ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/download?path=%2F&' - 'files=xen-hypervisor-4.11-arm64_4.11.4%2B37-g3263f257ca-1_arm64.deb'), + 'https://share.linaro.org/downloadFile?id=ALU4n2NGGYbE4fO', 'b745c2631342f9fcc0147ddc364edb62c20ecfebd430e5a3546e7d7c6891c0bc') def test_arm64_xen_411_and_dom0(self): @@ -66,8 +64,7 @@ class BootXen(LinuxKernelTest): self.launch_xen(xen_path) ASSET_XEN_4_14 = Asset( - ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/download?path=%2F&' - 'files=xen-hypervisor-4.14-arm64_4.14.0%2B80-gd101b417b7-1_arm64.deb'), + 'https://share.linaro.org/downloadFile?id=os4zSXPl7WW4lqX', 'e930a3293248edabd367d5b4b3b6448b9c99c057096ea8b47228a7870661d5cb') def test_arm64_xen_414_and_dom0(self): @@ -77,8 +74,7 @@ class BootXen(LinuxKernelTest): self.launch_xen(xen_path) ASSET_XEN_4_15 = Asset( - ('https://fileserver.linaro.org/s/JSsewXGZ6mqxPr5/download?path=%2F&' - 'files=xen-upstream-4.15-unstable.deb'), + 'https://share.linaro.org/downloadFile?id=jjjG4uTp2wuO4Ks', '2a9a8af8acf0231844657cc28baab95bd918b0ee2d493ee4ee6f8846e1358bc9') def test_arm64_xen_415_and_dom0(self): diff --git a/tests/functional/x86_64/test_kvm_xen.py b/tests/functional/x86_64/test_kvm_xen.py index a5d445023c..424d4b2001 100755 --- a/tests/functional/x86_64/test_kvm_xen.py +++ b/tests/functional/x86_64/test_kvm_xen.py @@ -23,18 +23,11 @@ class KVMXenGuest(QemuSystemTest): kernel_path = None kernel_params = None - # Fetch assets from the kvm-xen-guest subdir of my shared test - # images directory on fileserver.linaro.org where you can find - # build instructions for how they where assembled. - ASSET_KERNEL = Asset( - ('https://fileserver.linaro.org/s/kE4nCFLdQcoBF9t/download?' - 'path=%2Fkvm-xen-guest&files=bzImage'), - 'ec0ad7bb8c33c5982baee0a75505fe7dbf29d3ff5d44258204d6307c6fe0132a') - - ASSET_ROOTFS = Asset( - ('https://fileserver.linaro.org/s/kE4nCFLdQcoBF9t/download?' - 'path=%2Fkvm-xen-guest&files=rootfs.ext4'), - 'b11045d649006c649c184e93339aaa41a8fe20a1a86620af70323252eb29e40b') + ASSET_KERNEL = Asset('https://share.linaro.org/downloadFile?id=UG0V8dzzHrrHb9X', + 'ec0ad7bb8c33c5982baee0a75505fe7dbf29d3ff5d44258204d6307c6fe0132a') + + ASSET_ROOTFS = Asset('https://share.linaro.org/downloadFile?id=VwLRKDXKFl6oKti', + 'b11045d649006c649c184e93339aaa41a8fe20a1a86620af70323252eb29e40b') def common_vm_setup(self): # We also catch lack of KVM_XEN support if we fail to launch diff --git a/tests/functional/x86_64/test_netdev_ethtool.py b/tests/functional/x86_64/test_netdev_ethtool.py index ee1a397bd2..ac8a92512c 100755 --- a/tests/functional/x86_64/test_netdev_ethtool.py +++ b/tests/functional/x86_64/test_netdev_ethtool.py @@ -16,16 +16,10 @@ class NetDevEthtool(QemuSystemTest): # Runs in about 17s under KVM, 19s under TCG, 25s under GCOV timeout = 45 - # Fetch assets from the netdev-ethtool subdir of my shared test - # images directory on fileserver.linaro.org. - ASSET_BASEURL = ('https://fileserver.linaro.org/s/kE4nCFLdQcoBF9t/' - 'download?path=%2Fnetdev-ethtool&files=') - ASSET_BZIMAGE = Asset( - ASSET_BASEURL + "bzImage", - "ed62ee06ea620b1035747f3f66a5e9fc5d3096b29f75562ada888b04cd1c4baf") - ASSET_ROOTFS = Asset( - ASSET_BASEURL + "rootfs.squashfs", - "8f0207e3c4d40832ae73c1a927e42ca30ccb1e71f047acb6ddb161ba422934e6") + ASSET_BZIMAGE = Asset("https://share.linaro.org/downloadFile?id=QD37GYYAJhGOgVe", + "ed62ee06ea620b1035747f3f66a5e9fc5d3096b29f75562ada888b04cd1c4baf") + ASSET_ROOTFS = Asset("https://share.linaro.org/downloadFile?id=YAqnr0W8fruDh3f", + "8f0207e3c4d40832ae73c1a927e42ca30ccb1e71f047acb6ddb161ba422934e6") def common_test_code(self, netdev, extra_args=None): self.set_machine('q35') diff --git a/tests/lcitool/libvirt-ci b/tests/lcitool/libvirt-ci index 9da20ff7c3..caed407a0f 160000 --- a/tests/lcitool/libvirt-ci +++ b/tests/lcitool/libvirt-ci @@ -1 +1 @@ -Subproject commit 9da20ff7c3bc9067804a7561c2ff87583b434853 +Subproject commit caed407a0f1dfe3a3293a41c378c382deefbac36 diff --git a/tests/lcitool/projects/qemu.yml b/tests/lcitool/projects/qemu.yml index 82812e7736..1ee7dcf3d4 100644 --- a/tests/lcitool/projects/qemu.yml +++ b/tests/lcitool/projects/qemu.yml @@ -13,6 +13,7 @@ packages: - clang - cmocka - column + - coreutils - ctags - cyrus-sasl - daxctl diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh index df186caffe..3a31fcfee9 100755 --- a/tests/lcitool/refresh +++ b/tests/lcitool/refresh @@ -121,7 +121,7 @@ debian13_extras = [ " ./configure --no-drivers --no-apps \\\n", " --kernel-dir=$(ls -d /usr/src/linux-headers-*-$(dpkg --print-architecture)) \\\n", " && make install\n", - "ENV QEMU_CONFIGURE_OPTS --enable-netmap\n" + "ENV QEMU_CONFIGURE_OPTS=--enable-netmap\n" ] # Based on the hub.docker.com/library/rust Dockerfiles @@ -162,8 +162,8 @@ ubuntu2204_rust_extras = [ ] def cross_build(prefix, targets): - conf = "ENV QEMU_CONFIGURE_OPTS --cross-prefix=%s\n" % (prefix) - targets = "ENV DEF_TARGET_LIST %s\n" % (targets) + conf = "ENV QEMU_CONFIGURE_OPTS=--cross-prefix=%s\n" % (prefix) + targets = "ENV DEF_TARGET_LIST=%s\n" % (targets) return "".join([conf, targets]) # diff --git a/tests/vm/generated/freebsd.json b/tests/vm/generated/freebsd.json index c03e1cd586..f586827b13 100644 --- a/tests/vm/generated/freebsd.json +++ b/tests/vm/generated/freebsd.json @@ -15,6 +15,7 @@ "capstone4", "ccache4", "cmocka", + "coreutils", "ctags", "curl", "cyrus-sasl",