Merge tag 'pull-10.2-maintainer-171125-2' of https://gitlab.com/stsquad/qemu into staging

testing updates for 10.2

  - fix emsdk image for podman
  - update lcitool and clean-up ENV stanzas
  - include coreutils for io tests
  - move a number of assets due to linaro changes
  - add ppc64le custom runner
  - rationalise the gitlab custom runners with templates
  - clean-up the custom runner rules
  - add a scheduled container build

# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmkbRI0ACgkQ+9DbCVqe
# KkShRgf+Ma6E/m4ovXO/zrOqLx01XdXExbWPdCm+EqNc7OLvKKODFqFPaRtJvDRs
# s6JAiKWONJfXAHRmXGSlq2gHXMIyUlQds5K96tdyyXywKMOiOSTruOLJcOViWSP0
# i4o7AfxcsqKhIsy2/YaaMDHPcS4IR6AvoJCzgZVsEbSupbMYmLFsiOQa7uaauBtm
# BI2P07EN+q3DWFXnmKsYFtdqI0Kvazv5tMqR5y97TRX84yUAWJ7eVWwd2M7oFfRL
# eWmziUTzKGuwEkzGIxM4m3YD1iEmTKGp0B2se+wTFb0aIqWC5af+HdJvbUznasI/
# IAXZcFZbjSbn7yPLxV9x5CfJVdIYDg==
# =AM+R
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 17 Nov 2025 04:51:41 PM CET
# gpg:                using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 6685 AE99 E751 67BC AFC8  DF35 FBD0 DB09 5A9E 2A44

* tag 'pull-10.2-maintainer-171125-2' of https://gitlab.com/stsquad/qemu:
  gitlab: add a weekly container building job
  gitlab: make the schedule rules a bit more general
  gitlab: make custom runners need QEMU_CI to run
  gitlab: suppress custom runners being triggered by schedule
  gitlab: simplify the ubuntu-24.04-aarch64 rules
  gitlab: use template for ubuntu-24.04-s390x jobs
  gitlab: add initial ppc64le custom-runner test
  tests: move test_virt_gpu to share.linaro.org
  tests: move test_kvm to share.linaro.org
  tests: move test_kvm_xen to share.linaro.org
  tests: move test_netdev_ethtool to share.linaro.org
  tests: move test_virt assets to share.linaro.org
  tests: move test_xen assets to share.linaro.org
  docs/about/emulation: update assets for uftrace plugin documentation
  tests/docker: add coreutils to the package list
  tests/lcitool: update ENV stanzas outputted by refresh
  libvirt-ci: bump libvirt-ci to latest version
  tests/docker: drop --link from COPYs in emsdk docker

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson
2025-11-18 09:18:23 +01:00
43 changed files with 392 additions and 350 deletions

View File

@@ -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

View File

@@ -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'

View File

@@ -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'

View File

@@ -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'

View File

@@ -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"'

View File

@@ -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'

View File

@@ -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

View File

@@ -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
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
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
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
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"
allow_failure: true
when: manual

View File

@@ -2,7 +2,7 @@
# setup by the scripts/ci/setup/ubuntu/build-environment.yml task
# "Install basic packages to build QEMU on Ubuntu 24.04"
ubuntu-24.04-s390x-all-linux:
.ubuntu_s390x_template:
extends: .custom_runner_template
needs: []
stage: build
@@ -10,121 +10,80 @@ ubuntu-24.04-s390x-all-linux:
- ubuntu_24.04
- s390x
rules:
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
- if: "$S390X_RUNNER_AVAILABLE"
- 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
- ../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
- 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: .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
extends: .ubuntu_s390x_template
needs: []
stage: build
tags:
- ubuntu_24.04
- s390x
timeout: 75m
rules:
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
variables:
CONFIGURE_ARGS: --disable-user
MAKE_CHECK_ARGS: check
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
ubuntu-24.04-s390x-alldbg:
extends: .custom_runner_template
extends: .ubuntu_s390x_template
needs: []
stage: build
tags:
- ubuntu_24.04
- s390x
rules:
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
when: manual
variables:
CONFIGURE_ARGS: --enable-debug
MAKE_CHECK_ARGS: check
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
ubuntu-24.04-s390x-clang:
extends: .custom_runner_template
extends: .ubuntu_s390x_template
needs: []
stage: build
tags:
- ubuntu_24.04
- s390x
rules:
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
when: manual
variables:
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-ubsan
MAKE_CHECK_ARGS: check
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
ubuntu-24.04-s390x-tci:
extends: .ubuntu_s390x_template
needs: []
stage: build
tags:
- ubuntu_24.04
- s390x
rules:
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
when: manual
variables:
CONFIGURE_ARGS: --enable-tcg-interpreter
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`
ubuntu-24.04-s390x-notcg:
extends: .custom_runner_template
extends: .ubuntu_s390x_template
needs: []
stage: build
tags:
- ubuntu_24.04
- s390x
rules:
- if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
when: manual
variables:
CONFIGURE_ARGS: --disable-tcg
MAKE_CHECK_ARGS: check
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

View File

@@ -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
<https://fileserver.linaro.org/s/N8X8fnZ5yGRZLsT/download/qemu_aarch64_git_help.json.gz>`_.
<https://github.com/pbo-linaro/qemu-assets/raw/refs/heads/master/qemu-uftrace/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
<https://fileserver.linaro.org/s/WsemLboPEzo24nw/download/aarch64_boot.json.gz>`_.
<https://github.com/pbo-linaro/qemu-assets/raw/refs/heads/master/qemu-uftrace/aarch64_boot.json.gz>`_.
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

View File

@@ -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

View File

@@ -14,6 +14,7 @@ packages:
- ca-certificates
- ccache
- clang
- coreutils
- dbus
- debianutils
- diffutils

View File

@@ -14,6 +14,7 @@ packages:
- ca-certificates
- ccache
- clang
- coreutils
- dbus
- debianutils
- diffutils

View File

@@ -14,6 +14,7 @@ packages:
- ca-certificates
- ccache
- clang
- coreutils
- dbus
- debianutils
- diffutils

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 <<EOF
@@ -141,5 +141,5 @@ RUN sed -i -E "/#define HAVE_PTHREAD_GETNAME_NP 1/d" ./_build/config.h
RUN meson install -C _build
FROM build-base
COPY --link --from=glib-dev /builddeps/ /builddeps/
COPY --link --from=pixman-dev /builddeps/ /builddeps/
COPY --from=glib-dev /builddeps/ /builddeps/
COPY --from=pixman-dev /builddeps/ /builddeps/

View File

@@ -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"
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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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,

View File

@@ -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):

View File

@@ -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):

View File

@@ -23,17 +23,10 @@ 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'),
ASSET_KERNEL = Asset('https://share.linaro.org/downloadFile?id=UG0V8dzzHrrHb9X',
'ec0ad7bb8c33c5982baee0a75505fe7dbf29d3ff5d44258204d6307c6fe0132a')
ASSET_ROOTFS = Asset(
('https://fileserver.linaro.org/s/kE4nCFLdQcoBF9t/download?'
'path=%2Fkvm-xen-guest&files=rootfs.ext4'),
ASSET_ROOTFS = Asset('https://share.linaro.org/downloadFile?id=VwLRKDXKFl6oKti',
'b11045d649006c649c184e93339aaa41a8fe20a1a86620af70323252eb29e40b')
def common_vm_setup(self):

View File

@@ -16,15 +16,9 @@ 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",
ASSET_BZIMAGE = Asset("https://share.linaro.org/downloadFile?id=QD37GYYAJhGOgVe",
"ed62ee06ea620b1035747f3f66a5e9fc5d3096b29f75562ada888b04cd1c4baf")
ASSET_ROOTFS = Asset(
ASSET_BASEURL + "rootfs.squashfs",
ASSET_ROOTFS = Asset("https://share.linaro.org/downloadFile?id=YAqnr0W8fruDh3f",
"8f0207e3c4d40832ae73c1a927e42ca30ccb1e71f047acb6ddb161ba422934e6")
def common_test_code(self, netdev, extra_args=None):

View File

@@ -13,6 +13,7 @@ packages:
- clang
- cmocka
- column
- coreutils
- ctags
- cyrus-sasl
- daxctl

View File

@@ -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])
#

View File

@@ -15,6 +15,7 @@
"capstone4",
"ccache4",
"cmocka",
"coreutils",
"ctags",
"curl",
"cyrus-sasl",