mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
tools/docs: sphinx-* break documentation bulds on openSUSE
Before this patch, building htmldocs on opensuseLEAP works
fine:
# make htmldocs
Available Python versions:
/usr/bin/python3.11
Python 3.6.15 not supported. Changing to /usr/bin/python3.11
Python 3.6.15 not supported. Changing to /usr/bin/python3.11
Using alabaster theme
Using Python kernel-doc
...
As the logic detects that Python 3.6 is too old and recommends
intalling python311-Sphinx. If installed, documentation builds
work like a charm.
Yet, some develpers complained that running python3.11 instead
of python3 should not happen. So, let's break the build to make
them happier:
$ make htmldocs
Python 3.6.15 not supported. Bailing out
You could run, instead:
/usr/bin/python3.11 tools/docs/sphinx-build-wrapper htmldocs \
--sphinxdirs=. --conf=conf.py --builddir=Documentation/output --theme= --css= \
--paper=
Python 3.6.15 not supported. Bailing out
make[2]: *** [Documentation/Makefile:76: htmldocs] Error 1
make[1]: *** [Makefile:1806: htmldocs] Error 2
make: *** [Makefile:248: __sub-make] Error 2
It should be noticed that:
1. after this change, sphinx-pre-install needs to be called
by hand:
$ /usr/bin/python3.11 tools/docs/sphinx-pre-install
Detected OS: openSUSE Leap 15.6.
Sphinx version: 7.2.6
All optional dependencies are met.
Needed package dependencies are met.
2. sphinx-build-wrapper will auto-detect python3.11 and
suggest a way to build the docs using the parameters passed
via make variables. In this specific example:
/usr/bin/python3.11 tools/docs/sphinx-build-wrapper htmldocs --sphinxdirs=. --conf=conf.py --theme= --css= --paper=
3. As this needs to be executed outside docs Makefile, it won't run
the validation check scripts nor build Rust documentation if
enabled, as the extra scripts are part of the docs Makefile.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Message-ID: <0635c311295300e9fb48c0ea607e2408910036e3.1758196090.git.mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
committed by
Jonathan Corbet
parent
2118ba7da6
commit
62ea383b44
@@ -20,9 +20,11 @@ Python version if present.
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import shlex
|
||||
import sys
|
||||
|
||||
from glob import glob
|
||||
from textwrap import indent
|
||||
|
||||
class PythonVersion:
|
||||
"""
|
||||
@@ -44,6 +46,25 @@ class PythonVersion:
|
||||
"""Returns a version tuple as major.minor.patch"""
|
||||
return ".".join([str(x) for x in version])
|
||||
|
||||
@staticmethod
|
||||
def cmd_print(cmd, max_len=80):
|
||||
cmd_line = []
|
||||
|
||||
for w in cmd:
|
||||
w = shlex.quote(w)
|
||||
|
||||
if cmd_line:
|
||||
if not max_len or len(cmd_line[-1]) + len(w) < max_len:
|
||||
cmd_line[-1] += " " + w
|
||||
continue
|
||||
else:
|
||||
cmd_line[-1] += " \\"
|
||||
cmd_line.append(w)
|
||||
else:
|
||||
cmd_line.append(w)
|
||||
|
||||
return "\n ".join(cmd_line)
|
||||
|
||||
def __str__(self):
|
||||
"""Returns a version tuple as major.minor.patch from self.version"""
|
||||
return self.ver_str(self.version)
|
||||
@@ -130,14 +151,13 @@ class PythonVersion:
|
||||
else:
|
||||
new_python_cmd = None
|
||||
|
||||
if show_alternatives:
|
||||
if show_alternatives and available_versions:
|
||||
print("You could run, instead:")
|
||||
for _, cmd in available_versions:
|
||||
args = [cmd, script_path] + sys.argv[1:]
|
||||
|
||||
cmd_str = " ".join(args)
|
||||
print(f" {cmd_str}")
|
||||
print()
|
||||
cmd_str = indent(PythonVersion.cmd_print(args), " ")
|
||||
print(f"{cmd_str}\n")
|
||||
|
||||
if bail_out:
|
||||
msg = f"Python {python_ver} not supported. Bailing out"
|
||||
|
||||
@@ -774,7 +774,8 @@ def main():
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
PythonVersion.check_python(MIN_PYTHON_VERSION)
|
||||
PythonVersion.check_python(MIN_PYTHON_VERSION, show_alternatives=True,
|
||||
bail_out=True)
|
||||
|
||||
builder = SphinxBuilder(builddir=args.builddir,
|
||||
verbose=args.verbose, n_jobs=args.jobs,
|
||||
|
||||
@@ -1531,7 +1531,8 @@ def main():
|
||||
|
||||
checker = SphinxDependencyChecker(args)
|
||||
|
||||
PythonVersion.check_python(MIN_PYTHON_VERSION)
|
||||
PythonVersion.check_python(MIN_PYTHON_VERSION,
|
||||
bail_out=True, success_on_error=True)
|
||||
checker.check_needs()
|
||||
|
||||
# Call main if not used as module
|
||||
|
||||
Reference in New Issue
Block a user