Peter Maydell <peter.mayd...@linaro.org> writes: > On Fri, 7 Feb 2020 at 16:18, Markus Armbruster <arm...@redhat.com> wrote: >> >> Peter Maydell <peter.mayd...@linaro.org> writes: >> >> > Currently configure's has_sphinx_build() check simply runs a dummy >> > sphinx-build and either passes or fails. This means that "no >> > sphinx-build at all" and "sphinx-build exists but is too old" are >> > both reported the same way. >> > >> > Further, we want to assume that all the Python we write is running >> > with at least Python 3.5; configure checks that for our scripts, but >> > Sphinx extensions run with whatever Python version sphinx-build >> > itself is using. >> > >> > Add a check to our conf.py which makes sphinx-build fail if it would >> > be running our extensions with an old Python, and handle this >> > in configure so we can report failure helpfully to the user. >> > This will mean that configure --enable-docs will fail like this >> > if the sphinx-build provided is not suitable: >> > >> > Warning: sphinx-build exists but it is either too old or uses too old a >> > Python version >> > >> > ERROR: User requested feature docs >> > configure was not able to find it. >> > Install texinfo, Perl/perl-podlators and a Python 3 version of >> > python-sphinx >> > >> > (As usual, the default is to simply not build the docs, as we would >> > if sphinx-build wasn't present at all.) >> > >> > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> >> > Reviewed-by: Alex Bennée <alex.ben...@linaro.org> >> > Reviewed-by: Wainer dos Santos Moschetta <waine...@redhat.com> >> > --- >> > configure | 12 ++++++++++-- >> > docs/conf.py | 10 ++++++++++ >> > 2 files changed, 20 insertions(+), 2 deletions(-) >> > >> > diff --git a/configure b/configure >> > index 0aceb8e50db..2c5cad13edd 100755 >> > --- a/configure >> > +++ b/configure >> >> Any particular reason for having $sphinx_build default to the >> indeterminate version sphinx-build rather than sphinx-build-3? > > Because that's the binary we were using before this patch. > "Allow the user to specify" shouldn't be tangled up with > "and also change the default". > > It might be sphinx-build-3 on RH, but on Debian/Ubuntu it's > just 'sphinx-build' assuming you installed the python3-sphinx > and not the python2-sphinx, or you can run it directly out of > /usr/share/sphinx/scripts/python3/sphinx-build, or (like > me) you might have a locally installed 'sphinx-build' which > is using Python 3. My assumption is that once the python2->3 > transition has faded into the rear view mirror most distros > will just have a /usr/bin/sphinx-build that's a Python 3 one.
Defaulting to sphinx-build-3 if it exists, else sphinx-build would be nicer for users on some common systems, and wouldn't hurt users on the other common systems. It's what we do for Python.