* [PULL v2 00/59] i386, build system, KVM changes for 2023-05-18
@ 2023-05-18 10:17 Paolo Bonzini
2023-05-18 10:17 ` [PULL v2 39/59] configure: bootstrap sphinx with mkvenv Paolo Bonzini
0 siblings, 1 reply; 2+ messages in thread
From: Paolo Bonzini @ 2023-05-18 10:17 UTC (permalink / raw)
To: qemu-devel
The following changes since commit d27e7c359330ba7020bdbed7ed2316cb4cf6ffc1:
qapi/parser: Drop two bad type hints for now (2023-05-17 10:18:33 -0700)
are available in the Git repository at:
https://gitlab.com/bonzini/qemu.git tags/for-upstream
for you to fetch changes up to 43663e2f0acc8f56126537c914637b3b32f5a752:
build: move warning flag selection to meson (2023-05-18 08:53:52 +0200)
----------------------------------------------------------------
* kvm: enable dirty ring for arm64
* target/i386: new features
* target/i386: AVX fixes
* configure: create a python venv unconditionally
* meson: bump to 0.63.0 and move tests from configure
* meson: Pass -j option to sphinx
* drop support for Python 3.6
* fix check-python-tox
* fix "make clean" in the source directory
----------------------------------------------------------------
v1->v2:
required sphinx-rtd-theme 0.5.0
interrupted series at likely breakage point
Emanuele Giuseppe Esposito (2):
target/i386: add support for FLUSH_L1D feature
target/i386: add support for FB_CLEAR feature
Fabiano Rosas (1):
meson: Pass -j option to sphinx
Gavin Shan (4):
migration: Add last stage indicator to global dirty log
kvm: Synchronize the backup bitmap in the last stage
kvm: Add helper kvm_dirty_ring_init()
kvm: Enable dirty ring for arm64
John Snow (23):
python: update pylint configuration
python: add mkvenv.py
mkvenv: add better error message for broken or missing ensurepip
mkvenv: add nested venv workaround
mkvenv: add ensure subcommand
mkvenv: add --diagnose option to explain "ensure" failures
mkvenv: add console script entry point generation
mkvenv: use pip's vendored distlib as a fallback
mkvenv: avoid ensurepip if pip is installed
mkvenv: work around broken pip installations on Debian 10
tests/docker: add python3-venv dependency
tests/vm: Configure netbsd to use Python 3.10
tests/vm: add py310-expat to NetBSD
python: add vendor.py utility
configure: create a python venv unconditionally
python/wheels: add vendored meson package
configure: use 'mkvenv ensure meson' to bootstrap meson
qemu.git: drop meson git submodule
tests: Use configure-provided pyvenv for tests
configure: move --enable-docs and --disable-docs back to configure
configure: bootstrap sphinx with mkvenv
configure: add --enable-pypi and --disable-pypi
configure: Add courtesy hint to Python version failure message
Paolo Bonzini (24):
target/i386: fix operand size for VCOMI/VUCOMI instructions
tests/tcg/i386: correct mask for VPERM2F128/VPERM2I128
tcg: round-robin: do not use mb_read for rr_current_cpu
coverity: the definitive COMPONENTS.md update
scsi-generic: fix buffer overflow on block limits inquiry
python: shut up "pip install" during "make check-minreqs"
Python: Drop support for Python 3.6
mkvenv: mark command as required
python: bump some of the dependencies
meson: regenerate meson-buildoptions.sh
meson: require 0.63.0
meson: use prefer_static option
meson: remove static_kwargs
meson: add more version numbers to the summary
meson: drop unnecessary declare_dependency()
build: move glib detection and workarounds to meson
configure: remove pkg-config functions
configure, meson: move --enable-modules to Meson
meson: prepare move of QEMU_CFLAGS to meson
build: move sanitizer tests to meson
build: move SafeStack tests to meson
build: move coroutine backend selection to meson
build: move stack protector flag selection to meson
build: move warning flag selection to meson
Ricky Zhou (3):
target/i386: Fix and add some comments next to SSE/AVX instructions.
target/i386: Fix exception classes for SSE/AVX instructions.
target/i386: Fix exception classes for MOVNTPS/MOVNTPD.
Steve Sistare (1):
make: clean after distclean deletes source files
Xinyu Li (1):
target/i386: fix avx2 instructions vzeroall and vpermdq
.gitlab-ci.d/buildtest-template.yml | 4 +-
.gitlab-ci.d/buildtest.yml | 6 +-
.gitmodules | 3 -
Makefile | 6 +-
accel/kvm/kvm-all.c | 108 ++-
accel/tcg/tcg-accel-ops-rr.c | 11 +-
configure | 699 +++-------------
contrib/plugins/Makefile | 7 +-
docs/about/build-platforms.rst | 2 +-
docs/conf.py | 9 -
docs/devel/acpi-bits.rst | 6 +-
docs/devel/build-system.rst | 11 +-
docs/devel/testing.rst | 14 +-
docs/meson.build | 14 +-
docs/sphinx/dbusdomain.py | 4 +
docs/sphinx/fakedbusdoc.py | 5 +
docs/sphinx/qmp_lexer.py | 5 +
hw/scsi/scsi-generic.c | 14 +-
include/exec/memory.h | 9 +-
include/sysemu/kvm_int.h | 1 +
meson | 1 -
meson.build | 591 +++++++++-----
meson_options.txt | 15 +-
migration/dirtyrate.c | 4 +-
migration/ram.c | 20 +-
python/Makefile | 19 +-
python/scripts/mkvenv.py | 897 +++++++++++++++++++++
python/scripts/vendor.py | 74 ++
python/setup.cfg | 46 +-
python/tests/flake8.sh | 1 +
python/tests/isort.sh | 1 +
python/tests/minreqs.txt | 19 +-
python/tests/mypy.sh | 1 +
python/tests/pylint.sh | 1 +
python/wheels/meson-0.63.3-py3-none-any.whl | Bin 0 -> 926526 bytes
qga/meson.build | 2 +-
scripts/ci/org.centos/stream/8/x86_64/test-avocado | 4 +-
scripts/coverity-scan/COMPONENTS.md | 45 +-
scripts/device-crash-test | 2 +-
scripts/meson-buildoptions.py | 1 +
scripts/meson-buildoptions.sh | 28 +-
scripts/qapi/mypy.ini | 2 +-
softmmu/memory.c | 10 +-
target/i386/cpu.c | 4 +-
target/i386/cpu.h | 3 +
target/i386/ops_sse.h | 8 +
target/i386/tcg/decode-new.c.inc | 90 ++-
target/i386/tcg/emit.c.inc | 2 +-
tcg/meson.build | 2 +-
tests/Makefile.include | 10 +-
.../dockerfiles/debian-all-test-cross.docker | 3 +-
.../docker/dockerfiles/debian-hexagon-cross.docker | 3 +-
.../docker/dockerfiles/debian-riscv64-cross.docker | 3 +-
.../docker/dockerfiles/debian-tricore-cross.docker | 3 +-
tests/qemu-iotests/meson.build | 2 +-
tests/qtest/meson.build | 2 +-
tests/requirements.txt | 7 +-
tests/tcg/i386/test-avx.py | 2 +-
tests/unit/meson.build | 2 +-
tests/vm/netbsd | 2 +
util/{coroutine-win32.c => coroutine-windows.c} | 0
util/meson.build | 6 +-
62 files changed, 1847 insertions(+), 1029 deletions(-)
delete mode 160000 meson
create mode 100644 python/scripts/mkvenv.py
create mode 100755 python/scripts/vendor.py
create mode 100644 python/wheels/meson-0.63.3-py3-none-any.whl
rename util/{coroutine-win32.c => coroutine-windows.c} (100%)
--
2.40.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PULL v2 39/59] configure: bootstrap sphinx with mkvenv
2023-05-18 10:17 [PULL v2 00/59] i386, build system, KVM changes for 2023-05-18 Paolo Bonzini
@ 2023-05-18 10:17 ` Paolo Bonzini
0 siblings, 0 replies; 2+ messages in thread
From: Paolo Bonzini @ 2023-05-18 10:17 UTC (permalink / raw)
To: qemu-devel; +Cc: John Snow
From: John Snow <jsnow@redhat.com>
When docs are explicitly requested, require Sphinx>=1.6.0. When docs are
explicitly disabled, don't bother to check for Sphinx at all. If docs
are set to "auto", attempt to locate Sphinx, but continue onward if it
wasn't located.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Message-Id: <20230511035435.734312-22-jsnow@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 21 +++++++++++++++++++--
docs/conf.py | 9 ---------
docs/meson.build | 2 +-
meson_options.txt | 2 --
scripts/meson-buildoptions.sh | 3 ---
5 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/configure b/configure
index f8308926bbc6..e0832f13ff49 100755
--- a/configure
+++ b/configure
@@ -1115,9 +1115,9 @@ fi
# Suppress writing compiled files
python="$python -B"
+mkvenv="$python ${source_path}/python/scripts/mkvenv.py"
-
-if ! $python "${source_path}/python/scripts/mkvenv.py" ensure \
+if ! $mkvenv ensure \
--dir "${source_path}/python/wheels" \
--diagnose "meson" \
"meson>=0.61.5" ;
@@ -1132,6 +1132,23 @@ fi
meson="$(cd pyvenv/bin; pwd)/meson"
+# Conditionally ensure Sphinx is installed.
+
+if test "$docs" != "disabled" ; then
+ if ! $mkvenv ensure \
+ --diagnose "sphinx-build" \
+ "sphinx>=1.6.0" "sphinx-rtd-theme>=0.5.0";
+ then
+ if test "$docs" = "enabled" ; then
+ exit 1
+ fi
+ echo "Sphinx not found/usable, disabling docs."
+ docs=disabled
+ else
+ docs=enabled
+ fi
+fi
+
# Probe for ninja
if test -z "$ninja"; then
diff --git a/docs/conf.py b/docs/conf.py
index 00767b0e24fb..c687ff266301 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -32,15 +32,6 @@
from distutils.version import LooseVersion
from sphinx.errors import ConfigError
-# Make Sphinx fail cleanly if using an old Python, rather than obscurely
-# failing because some code in one of our extensions doesn't work there.
-# In newer versions of Sphinx this will display nicely; in older versions
-# Sphinx will also produce a Python backtrace but at least the information
-# gets printed...
-if sys.version_info < (3,6):
- raise ConfigError(
- "QEMU requires a Sphinx that uses Python 3.6 or better\n")
-
# The per-manual conf.py will set qemu_docdir for a single-manual build;
# otherwise set it here if this is an entire-manual-set build.
# This is always the absolute path of the docs/ directory in the source tree.
diff --git a/docs/meson.build b/docs/meson.build
index 6d0986579e17..9040f860ae1a 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -1,4 +1,4 @@
-sphinx_build = find_program(get_option('sphinx_build'),
+sphinx_build = find_program(fs.parent(python.full_path()) / 'sphinx-build',
required: get_option('docs'))
# Check if tools are available to build documentation.
diff --git a/meson_options.txt b/meson_options.txt
index 11aec2a441a4..f27aa43de1d9 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -12,8 +12,6 @@ option('pkgversion', type : 'string', value : '',
description: 'use specified string as sub-version of the package')
option('smbd', type : 'string', value : '',
description: 'Path to smbd for slirp networking')
-option('sphinx_build', type : 'string', value : 'sphinx-build',
- description: 'Use specified sphinx-build for building document')
option('iasl', type : 'string', value : '',
description: 'Path to ACPI disassembler')
option('tls_priority', type : 'string', value : 'NORMAL',
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index 52fb079a6005..f86f75fa0b5f 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -57,8 +57,6 @@ meson_options_help() {
printf "%s\n" ' --localedir=VALUE Locale data directory [share/locale]'
printf "%s\n" ' --localstatedir=VALUE Localstate data directory [/var/local]'
printf "%s\n" ' --mandir=VALUE Manual page directory [share/man]'
- printf "%s\n" ' --sphinx-build=VALUE Use specified sphinx-build for building document'
- printf "%s\n" ' [sphinx-build]'
printf "%s\n" ' --sysconfdir=VALUE Sysconf data directory [etc]'
printf "%s\n" ' --tls-priority=VALUE Default TLS protocol/cipher priority string'
printf "%s\n" ' [NORMAL]'
@@ -427,7 +425,6 @@ _meson_option_parse() {
--disable-sndio) printf "%s" -Dsndio=disabled ;;
--enable-sparse) printf "%s" -Dsparse=enabled ;;
--disable-sparse) printf "%s" -Dsparse=disabled ;;
- --sphinx-build=*) quote_sh "-Dsphinx_build=$2" ;;
--enable-spice) printf "%s" -Dspice=enabled ;;
--disable-spice) printf "%s" -Dspice=disabled ;;
--enable-spice-protocol) printf "%s" -Dspice_protocol=enabled ;;
--
2.40.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-05-18 10:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-18 10:17 [PULL v2 00/59] i386, build system, KVM changes for 2023-05-18 Paolo Bonzini
2023-05-18 10:17 ` [PULL v2 39/59] configure: bootstrap sphinx with mkvenv Paolo Bonzini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).