Skip to content

Commit bf3f857

Browse files
committed
docs: Require Sphinx 1.6 or better
Versions of Sphinx older than 1.6 can't build all of our documentation, because they are too picky about the syntax of the argument to the option:: directive; see Sphinx bugs #646, #3366: sphinx-doc/sphinx#646 sphinx-doc/sphinx#3366 Trying to build with a 1.4.x Sphinx fails with docs/system/images.rst:4: SEVERE: Duplicate ID: "cmdoption-qcow2-arg-encrypt" and a 1.5.x Sphinx fails with docs/system/invocation.rst:544: WARNING: Malformed option description '[enable=]PATTERN', should look like "opt", "-opt args", "--opt args", "/opt args" or "+opt args" Update our needs_sphinx setting to indicate that we require at least 1.6. This will allow configure to fall back to "don't build the docs" rather than causing the build to fail entirely, which is probably what most users building on a host old enough to have such an old Sphinx would want; if they do want the docs then they'll have a useful indication of what they need to do (upgrade Sphinx!) rather than a confusing error message. In theory our distro support policy would suggest that we should support building on the Sphinx shipped in those distros, but: * EPEL7 has Sphinx 1.2.3 (which we've never supported!) * Debian Stretch has Sphinx 1.4.8 Trying to get our docs to work with Sphinx 1.4 is not tractable for the 5.0 release and I'm not sure it's worthwhile effort anyway; at least with this change the build as a whole now succeeds. Thanks to John Snow for doing the investigation and testing to confirm what Sphinx versions fail in what ways and what distros shipped what. Signed-off-by: Peter Maydell <[email protected]> Reviewed-by: Richard Henderson <[email protected]>
1 parent 152d196 commit bf3f857

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

docs/conf.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,10 @@
5959

6060
# If your documentation needs a minimal Sphinx version, state it here.
6161
#
62-
# 1.3 is where the 'alabaster' theme was shipped with Sphinx.
63-
needs_sphinx = '1.3'
62+
# Sphinx 1.5 and earlier can't build our docs because they are too
63+
# picky about the syntax of the argument to the option:: directive
64+
# (see Sphinx bugs #646, #3366).
65+
needs_sphinx = '1.6'
6466

6567
# Add any Sphinx extension module names here, as strings. They can be
6668
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom

0 commit comments

Comments
 (0)