b11f9bd9 | 19-May-2023 |
Paolo Bonzini <pbonzini@redhat.com> |
configure: move SLOF submodule handling to pc-bios/s390-ccw
Move the handling of the roms/SLOF submodule out of the main Makefile, since we are going to remove submodules from the build process of Q
configure: move SLOF submodule handling to pc-bios/s390-ccw
Move the handling of the roms/SLOF submodule out of the main Makefile, since we are going to remove submodules from the build process of QEMU.
Acked-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
2019cabf | 18-May-2023 |
Paolo Bonzini <pbonzini@redhat.com> |
meson: subprojects: replace submodules with wrap files
Compared to submodules, .wrap files have several advantages:
* option parsing and downloading is delegated to meson
* the commit is stored in
meson: subprojects: replace submodules with wrap files
Compared to submodules, .wrap files have several advantages:
* option parsing and downloading is delegated to meson
* the commit is stored in a text file instead of a magic entry in the git tree object
* we could stop shipping external dependencies that are only used as a fallback, but not break compilation on platforms that lack them. For example it may make sense to download dtc at build time, controlled by --enable-download, even when building from a tarball. Right now, this patch does the opposite: make-release treats dtc like libvfio-user (which is not stable API and therefore hasn't found its way into any distros) and keycodemap (which is a copylib, for better or worse).
dependency() can fall back to a wrap automatically. However, this is only possible for libraries that come with a .pc file, and this is not very common for libfdt even though the upstream project in principle provides it; it also removes the control that we provide with --enable-fdt={system,internal}. Therefore, the logic to pick system vs. internal libfdt is left untouched.
--enable-fdt=git is removed; it was already a synonym for --enable-fdt=internal.
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
e8e4298f | 05-Jun-2023 |
Paolo Bonzini <pbonzini@redhat.com> |
tests: Use separate virtual environment for avocado
This reverts commits eea2d141179 ("Makefile: remove $(TESTS_PYTHON)", 2023-05-26) and 9c6692db550 ("tests: Use configure-provided pyvenv for tests
tests: Use separate virtual environment for avocado
This reverts commits eea2d141179 ("Makefile: remove $(TESTS_PYTHON)", 2023-05-26) and 9c6692db550 ("tests: Use configure-provided pyvenv for tests", 2023-05-18).
Right now, there is a conflict between wanting a ">=" constraint when using a distro-provided package and wanting a "==" constraint when installing Avocado from PyPI; this would provide the best of both worlds in terms of resiliency for both distros that have required packages and distros that don't.
The conflict is visible also for meson, where we would like to install the latest 0.63.x version but also accept a distro 1.1.x version. But it is worse for avocado, for two reasons:
1) we cannot use an "==" constraint to install avocado if the venv includes a system avocado. The distro will package plugins that have "==" constraints on the version that is included in the distro, and, using "pip install avocado==88.1" on a venv that includes system packages will result in this error:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. avocado-framework-plugin-varianter-yaml-to-mux 98.0 requires avocado-framework==98.0, but you have avocado-framework 88.1 which is incompatible. avocado-framework-plugin-result-html 98.0 requires avocado-framework==98.0, but you have avocado-framework 88.1 which is incompatible. make[1]: Leaving directory '/home/berrange/src/virt/qemu/build'
2) we cannot use ">=" either if the venv does _not_ include a system avocado, because that would result in the installation of v101.0 which is the one we've just reverted.
So the idea is to encode the dependencies as an (acceptable, locked) tuple, like this hypothetical TOML that would be committed inside python/ and used by mkvenv.py:
[meson] meson = { minimum = "0.63.0", install = "0.63.3", canary = "meson" }
[docs] # 6.0 drops support for Python 3.7 sphinx = { minimum = "1.6", install = "<6.0", canary = "sphinx-build" } sphinx_rtd_theme = { minimum = "0.5" }
[avocado] avocado-framework = { minimum = "88.1", install = "88.1", canary = "avocado" }
Once this is implemented, it would also be possible to install avocado in pyvenv/ using "mkvenv.py ensure", thus using the distro package on Fedora and CentOS Stream (the only distros where it's available). But until this is implemented, keep avocado in a separate venv. There is still the benefit of using a single python for meson custom_targets and for sphinx.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
98300bcd | 31-May-2023 |
Camilla Conte <cconte@redhat.com> |
gitlab-ci: Remove unused Python package
Python should have been removed in this commit: https://gitlab.com/qemu-project/qemu/-/commit/94b8b146df84ba472f461398d93fb9cdf0db8f94
Signed-off-by: Camilla
gitlab-ci: Remove unused Python package
Python should have been removed in this commit: https://gitlab.com/qemu-project/qemu/-/commit/94b8b146df84ba472f461398d93fb9cdf0db8f94
Signed-off-by: Camilla Conte <cconte@redhat.com> Message-Id: <20230531150824.32349-2-cconte@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
ab725227 | 31-May-2023 |
Daniel P. Berrangé <berrange@redhat.com> |
gitlab: switch from 'stable' to 'latest' docker container tags
The 'stable' and 'stable-dind' tags are not documented as supported tags at:
https://hub.docker.com/_/docker
Looking at their conte
gitlab: switch from 'stable' to 'latest' docker container tags
The 'stable' and 'stable-dind' tags are not documented as supported tags at:
https://hub.docker.com/_/docker
Looking at their content they reflect docker 19.x.x release series, were last built in Dec 2020, and have 3 critical and 20 high rated CVEs unfixed. This obsolete status is attested by this commit:
https://github.com/docker-library/docker/commit/606c63960a4845af7077721eb3900c706f5d0c5e
The 'stable-dind' tag in particular appears buggy as it is unable to resolve DNS for Fedora repos:
- Curl error (6): Couldn't resolve host name for https://mirrors.fedoraproject.org/metalink?repo=fedora-37&arch=x86_64&countme=1 [getaddrinfo() thread failed to start]
We used the 'stable' tag previously at the recommendation of GitLab docs, but those docs are wrong and pending a fix:
https://gitlab.com/gitlab-org/gitlab/-/issues/409430
Fixes: 5f63a67adb58478974b91f5e5c2b1222b5c7f2cc Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Camilla Conte <cconte@redhat.com> Message-Id: <20230531140654.1141145-1-berrange@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
037a171a | 22-May-2023 |
Camilla Conte <cconte@redhat.com> |
Add CI variable RUNNER_TAG
This allows to set a job tag dynamically. We need this to be able to select the Kubernetes runner. See https://wiki.qemu.org/Testing/CI/KubernetesRunners.
Signed-off-by:
Add CI variable RUNNER_TAG
This allows to set a job tag dynamically. We need this to be able to select the Kubernetes runner. See https://wiki.qemu.org/Testing/CI/KubernetesRunners.
Signed-off-by: Camilla Conte <cconte@redhat.com> Message-Id: <20230522174153.46801-5-cconte@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
b105ce60 | 22-May-2023 |
Camilla Conte <cconte@redhat.com> |
Add loop over docker info
Wait for docker info to return successfuly to ensure that the docker server (daemon) started. This is needed for jobs running on Kubernetes. See https://wiki.qemu.org/Testi
Add loop over docker info
Wait for docker info to return successfuly to ensure that the docker server (daemon) started. This is needed for jobs running on Kubernetes. See https://wiki.qemu.org/Testing/CI/KubernetesRunners.
Signed-off-by: Camilla Conte <cconte@redhat.com> Message-Id: <20230522174153.46801-4-cconte@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
5f63a67a | 22-May-2023 |
Camilla Conte <cconte@redhat.com> |
Use docker "stable" tag
Use the same tag in all jobs.
Signed-off-by: Camilla Conte <cconte@redhat.com> Message-Id: <20230522174153.46801-3-cconte@redhat.com> Reviewed-by: Daniel P. Berrangé <berran
Use docker "stable" tag
Use the same tag in all jobs.
Signed-off-by: Camilla Conte <cconte@redhat.com> Message-Id: <20230522174153.46801-3-cconte@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
a878264d | 22-May-2023 |
Camilla Conte <cconte@redhat.com> |
Remove redundant CI variables
These are not needed when using gitlab.com shared runners.
Signed-off-by: Camilla Conte <cconte@redhat.com> Message-Id: <20230522174153.46801-2-cconte@redhat.com> Revi
Remove redundant CI variables
These are not needed when using gitlab.com shared runners.
Signed-off-by: Camilla Conte <cconte@redhat.com> Message-Id: <20230522174153.46801-2-cconte@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
bb6e4734 | 11-May-2023 |
Thomas Huth <thuth@redhat.com> |
.gitlab-ci.d/buildtest.yml: Run full "make check" with --without-default-devices
Thanks to the fixes from the previous patches, we can now run the full set of "make check" with all targets here.
Me
.gitlab-ci.d/buildtest.yml: Run full "make check" with --without-default-devices
Thanks to the fixes from the previous patches, we can now run the full set of "make check" with all targets here.
Message-Id: <20230512124033.502654-19-thuth@redhat.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
48727e57 | 19-May-2023 |
Richard Henderson <richard.henderson@linaro.org> |
Revert last two patches
Unintentionally pushed.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org> |
ee327b23 | 07-Apr-2023 |
Camilla Conte <cconte@redhat.com> |
Raise crash-test-debian timeout to 90 minutes
When running on the Kubernetes runner, this CI job is timing out. Raise the limit to give the job enough time to run.
Signed-off-by: Camilla Conte <cco
Raise crash-test-debian timeout to 90 minutes
When running on the Kubernetes runner, this CI job is timing out. Raise the limit to give the job enough time to run.
Signed-off-by: Camilla Conte <cconte@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-Id: <20230407145252.32955-2-cconte@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
e4da92d9 | 07-Apr-2023 |
Camilla Conte <cconte@redhat.com> |
Add CI configuration for Kubernetes
Configure Gitlab CI to run on Kubernetes according to the official documentation. https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#docker-in-docker-wi
Add CI configuration for Kubernetes
Configure Gitlab CI to run on Kubernetes according to the official documentation. https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#docker-in-docker-with-tls-enabled-in-kubernetes
These changes are needed because of the CI jobs using Docker-in-Docker (dind). As soon as Docker-in-Docker is replaced with Kaniko, these changes can be reverted.
I documented what I did to set up the Kubernetes runner on the wiki: https://wiki.qemu.org/Testing/CI/KubernetesRunners
Signed-off-by: Camilla Conte <cconte@redhat.com> Message-Id: <20230407145252.32955-1-cconte@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
9fd9f395 | 18-May-2023 |
Paolo Bonzini <pbonzini@redhat.com> |
gitlab: custom-runners: preserve more artifacts for debugging
Since custom runners are not generally available, make it possible to debug the differences between a successful and a failing build by
gitlab: custom-runners: preserve more artifacts for debugging
Since custom runners are not generally available, make it possible to debug the differences between a successful and a failing build by comparing the logs and the build.ninja rules.
Acked-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
dde001ef | 18-May-2023 |
Paolo Bonzini <pbonzini@redhat.com> |
remove remaining traces of meson submodule
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
9c6692db | 11-May-2023 |
John Snow <jsnow@redhat.com> |
tests: Use configure-provided pyvenv for tests
This patch changes how the avocado tests are provided, ever so slightly. Instead of creating a new testing venv, use the configure-provided 'pyvenv' in
tests: Use configure-provided pyvenv for tests
This patch changes how the avocado tests are provided, ever so slightly. Instead of creating a new testing venv, use the configure-provided 'pyvenv' instead, and install optional packages into that.
Signed-off-by: John Snow <jsnow@redhat.com> Message-Id: <20230511035435.734312-20-jsnow@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
66e2c6cb | 11-May-2023 |
John Snow <jsnow@redhat.com> |
configure: use 'mkvenv ensure meson' to bootstrap meson
This commit changes how we detect and install meson. It notably removes '--meson='.
Currently, configure creates a lightweight Python virtual
configure: use 'mkvenv ensure meson' to bootstrap meson
This commit changes how we detect and install meson. It notably removes '--meson='.
Currently, configure creates a lightweight Python virtual environment unconditionally using the user's configured $python that inherits system packages. Temporarily, we forced the use of meson source present via git submodule or in the release tarball.
With this patch, we restore the ability to use a system-provided meson:
If Meson is installed in the build venv and meets our minimum version requirements, we will use that Meson. This includes a system provided meson, which would be visible via system-site packages inside the venv.
In the event that Meson is installed but *not for the chosen Python interpreter*, not found, or of insufficient version, we will attempt to install Meson from vendored source into the newly created Python virtual environment. This vendored installation replaces both the git submodule and tarball source mechanisms for sourcing meson.
As a result of this patch, the Python interpreter we use for both our own build scripts *and* Meson extensions are always known to be the exact same Python. As a further benefit, there will also be a symlink available in the build directory that points to the correct, configured python and can be used by e.g. manual tests to invoke the correct, configured Python unambiguously.
Signed-off-by: John Snow <jsnow@redhat.com> Message-Id: <20230511035435.734312-18-jsnow@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
da900078 | 04-May-2023 |
Ani Sinha <anisinha@redhat.com> |
tests/lcitool: Add mtools and xorriso and remove genisoimage as dependencies
Bios bits avocado tests need mformat (provided by the mtools package) and xorriso tools in order to run within gitlab CI
tests/lcitool: Add mtools and xorriso and remove genisoimage as dependencies
Bios bits avocado tests need mformat (provided by the mtools package) and xorriso tools in order to run within gitlab CI containers. Add those dependencies within the Dockerfiles so that containers can be built with those tools present and bios bits avocado tests can be run there.
xorriso package conflicts with genisoimage package on some distributions. Therefore, it is not possible to have both the packages at the same time in the container image uniformly for all distribution flavors. Further, on some distributions like RHEL, both xorriso and genisoimage packages provide /usr/bin/genisoimage and on some other distributions like Fedora, only genisoimage package provides the same utility. Therefore, this change removes the dependency on geninsoimage for building container images altogether keeping only xorriso package. At the same time, cdrom-test.c is updated to use and check for existence of only xorrisofs.
Signed-off-by: Ani Sinha <anisinha@redhat.com> Message-Id: <20230504154611.85854-3-anisinha@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
2cf72cb5 | 02-May-2023 |
Alex Bennée <alex.bennee@linaro.org> |
gitlab: enable minimal device profile for aarch64 --disable-tcg
As this is likely the most common configuration people will want once the --disable-tcg patches land.
Signed-off-by: Alex Bennée <ale
gitlab: enable minimal device profile for aarch64 --disable-tcg
As this is likely the most common configuration people will want once the --disable-tcg patches land.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Cc: Fabiano Rosas <farosas@suse.de> Message-Id: <20230503091244.1450613-21-alex.bennee@linaro.org>
show more ...
|
eb8d413f | 02-May-2023 |
Alex Bennée <alex.bennee@linaro.org> |
gitlab: add ubuntu-22.04-aarch64-without-defaults
This does a very minimal build without default devices or features. I chose the aarch64 runner as it doesn't count towards CI minutes and is a fairl
gitlab: add ubuntu-22.04-aarch64-without-defaults
This does a very minimal build without default devices or features. I chose the aarch64 runner as it doesn't count towards CI minutes and is a fairly under-utilised builder.
Message-Id: <20230503091244.1450613-20-alex.bennee@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
show more ...
|
c1924cde | 02-May-2023 |
Alex Bennée <alex.bennee@linaro.org> |
scripts/ci: clean-up the 20.04/22.04 confusion in ansible
We have a bunch of references to 20.04 (which s390x is still on) although we are basically building on 22.04 now. Clean up the textual refer
scripts/ci: clean-up the 20.04/22.04 confusion in ansible
We have a bunch of references to 20.04 (which s390x is still on) although we are basically building on 22.04 now. Clean up the textual references and use lcitool to generate the full package list to be consistent.
We can drop "Install packages to build QEMU on Ubuntu on non-s390x" as when we upgrade the s390x builder to 22.04 it won't need this workaround.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20230503091244.1450613-19-alex.bennee@linaro.org>
show more ...
|
df1f50c3 | 24-Apr-2023 |
Thomas Huth <thuth@redhat.com> |
.gitlab-ci.d/cirrus: Drop the CI job for compiling with FreeBSD 12
FreeBSD 13.0 has been released in April 2021:
https://www.freebsd.org/releases/13.0R/announce/
According to QEMU's support polic
.gitlab-ci.d/cirrus: Drop the CI job for compiling with FreeBSD 12
FreeBSD 13.0 has been released in April 2021:
https://www.freebsd.org/releases/13.0R/announce/
According to QEMU's support policy, we stop supporting the previous major release two years after the the new major release has been published. So we can stop testing FreeBSD 12 in our CI now.
Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <20230418160225.529172-1-thuth@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Warner Losh <imp@bsdimp.com> Message-Id: <20230424092249.58552-8-alex.bennee@linaro.org>
show more ...
|
8b869aa5 | 24-Apr-2023 |
Thomas Huth <thuth@redhat.com> |
scripts/device-crash-test: Add a parameter to run with TCG only
We're currently facing the problem that the device-crash-test script runs twice as long in the CI when a runner supports KVM - which s
scripts/device-crash-test: Add a parameter to run with TCG only
We're currently facing the problem that the device-crash-test script runs twice as long in the CI when a runner supports KVM - which sometimes results in a timeout of the CI job. To get a more deterministic runtime here, add an option to the script that allows to run it with TCG only.
Reported-by: Eldon Stegall <eldon-qemu@eldondev.com> Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20230414145845.456145-3-thuth@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20230424092249.58552-6-alex.bennee@linaro.org>
show more ...
|
4d3bd91b | 24-Apr-2023 |
Thomas Huth <thuth@redhat.com> |
gitlab-ci: Avoid to re-run "configure" in the device-crash-test jobs
After "make check-venv" had been added to these jobs, they started to re-run "configure" each time since our logic in the makefil
gitlab-ci: Avoid to re-run "configure" in the device-crash-test jobs
After "make check-venv" had been added to these jobs, they started to re-run "configure" each time since our logic in the makefile thinks that some files are out of date here. Avoid it with the same trick that we are using in buildtest-template.yml already by disabling the up-to-date check via NINJA=":".
Fixes: 1d8cf47e5b ("tests: run 'device-crash-test' from tests/venv") Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <20230414145845.456145-2-thuth@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20230424092249.58552-5-alex.bennee@linaro.org>
show more ...
|
fc998891 | 03-Apr-2023 |
Alex Bennée <alex.bennee@linaro.org> |
gitlab: fix typo
Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20230403134920.2
gitlab: fix typo
Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20230403134920.2132362-11-alex.bennee@linaro.org>
show more ...
|