[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 39/68] configure: bootstrap sphinx with mkvenv
|
From: |
Paolo Bonzini |
|
Subject: |
[PULL 39/68] configure: bootstrap sphinx with mkvenv |
|
Date: |
Wed, 17 May 2023 19:44:51 +0200 |
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..411140a306ff 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;
+ 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 d8330a1f71e7..a350520f6abf 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 2805d1c14540..fedb93ada69e 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]'
@@ -425,7 +423,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
- [PULL 33/68] configure: create a python venv unconditionally, (continued)
- [PULL 33/68] configure: create a python venv unconditionally, Paolo Bonzini, 2023/05/17
- [PULL 38/68] configure: move --enable-docs and --disable-docs back to configure, Paolo Bonzini, 2023/05/17
- [PULL 36/68] qemu.git: drop meson git submodule, Paolo Bonzini, 2023/05/17
- [PULL 40/68] configure: add --enable-pypi and --disable-pypi, Paolo Bonzini, 2023/05/17
- [PULL 42/68] configure: Add courtesy hint to Python version failure message, Paolo Bonzini, 2023/05/17
- [PULL 43/68] mkvenv: mark command as required, Paolo Bonzini, 2023/05/17
- [PULL 27/68] mkvenv: avoid ensurepip if pip is installed, Paolo Bonzini, 2023/05/17
- [PULL 57/68] build: move coroutine backend selection to meson, Paolo Bonzini, 2023/05/17
- [PULL 56/68] build: move SafeStack tests to meson, Paolo Bonzini, 2023/05/17
- [PULL 35/68] configure: use 'mkvenv ensure meson' to bootstrap meson, Paolo Bonzini, 2023/05/17
- [PULL 39/68] configure: bootstrap sphinx with mkvenv,
Paolo Bonzini <=
- [PULL 44/68] python: bump some of the dependencies, Paolo Bonzini, 2023/05/17
- [PULL 49/68] meson: add more version numbers to the summary, Paolo Bonzini, 2023/05/17
- [PULL 53/68] configure, meson: move --enable-modules to Meson, Paolo Bonzini, 2023/05/17
- [PULL 59/68] build: move warning flag selection to meson, Paolo Bonzini, 2023/05/17
- [PULL 60/68] build: move remaining compiler flag tests to meson, Paolo Bonzini, 2023/05/17
- [PULL 67/68] configure: remove unnecessary check, Paolo Bonzini, 2023/05/17
- [PULL 52/68] configure: remove pkg-config functions, Paolo Bonzini, 2023/05/17
- [PULL 58/68] build: move stack protector flag selection to meson, Paolo Bonzini, 2023/05/17
- [PULL 66/68] configure: reorder option parsing code, Paolo Bonzini, 2023/05/17
- [PULL 63/68] configure: remove compiler sanity check, Paolo Bonzini, 2023/05/17