Skip to content

Commit

Permalink
configure: switch to ensuregroup
Browse files Browse the repository at this point in the history
Using the new ensuregroup command, the desired versions of meson and
sphinx can be placed in pythondeps.toml rather than configure.

The meson.install entry in pythondeps.toml matches the version that is
found in python/wheels.  This ensures that mkvenv.py uses the bundled
wheel even if PyPI is enabled; thus not introducing warnings or errors
from versions that are more recent than the one used in CI.

The sphinx entries match what is shipped in Fedora 38.  It's the
last release that has support for older versions of Python (sphinx 6.0
requires Python 3.8) and especially docutils (of which sphinx 6.0 requires
version 0.18).  This is important because Ubuntu 20.04 has docutils 0.14
and Debian 11 has docutils 0.16.

"mkvenv.py ensure" is only used to bootstrap tomli.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
bonzini committed Aug 28, 2023
1 parent edc2107 commit c853c4d
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 10 deletions.
14 changes: 4 additions & 10 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -1024,13 +1024,8 @@ if $python -c 'import sys; sys.exit(sys.version_info >= (3,11))'; then
$mkvenv ensure --dir "${source_path}/python/wheels" \
'tomli>=1.2.0' || exit 1
fi
if ! $mkvenv ensure \
--dir "${source_path}/python/wheels" \
--diagnose "meson" \
"meson>=0.63.0" ;
then
exit 1
fi
$mkvenv ensuregroup --dir "${source_path}/python/wheels" \
${source_path}/pythondeps.toml meson || exit 1

# At this point, we expect Meson to be installed and available.
# We expect mkvenv or pip to have created pyvenv/bin/meson for us.
Expand All @@ -1047,10 +1042,9 @@ if test "$download" = "enabled" -a "$docs" = "enabled" ; then
fi

if test "$docs" != "disabled" ; then
if ! $mkvenv ensure \
if ! $mkvenv ensuregroup \
$mkvenv_flags \
--diagnose "sphinx-build" \
"sphinx>=1.6.0" "sphinx-rtd-theme>=0.5.0";
${source_path}/pythondeps.toml docs;
then
if test "$docs" = "enabled" ; then
exit 1
Expand Down
8 changes: 8 additions & 0 deletions pythondeps.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,11 @@
# precise error diagnostics to the user. For example,
# 'sphinx-build' can be used as a bellwether for the
# presence of 'sphinx' in the system.

[meson]
# The install key should match the version in python/wheels/
meson = { accepted = ">=0.63.0", installed = "0.63.3", canary = "meson" }

[docs]
sphinx = { accepted = ">=1.6", installed = "5.3.0", canary = "sphinx-build" }
sphinx_rtd_theme = { accepted = ">=0.5", installed = "1.1.1" }

0 comments on commit c853c4d

Please sign in to comment.