1 From 2404dad1f67f8917e30fc22a85e0dbcc85b99955 Mon Sep 17 00:00:00 2001
2 From: Jonathan Corbet <corbet@lwn.net>
3 Date: Tue, 21 May 2019 14:42:34 -0600
4 Subject: doc: Cope with the deprecation of AutoReporter
6 From: Jonathan Corbet <corbet@lwn.net>
8 commit 2404dad1f67f8917e30fc22a85e0dbcc85b99955 upstream.
10 AutoReporter is going away; recent versions of sphinx emit a warning like:
12 Documentation/sphinx/kerneldoc.py:125:
13 RemovedInSphinx20Warning: AutodocReporter is now deprecated.
14 Use sphinx.util.docutils.switch_source_input() instead.
16 Make the switch. But switch_source_input() only showed up in 1.7, so we
17 have to do ugly version checks to keep things working in older versions.
19 Cc: stable@vger.kernel.org
20 Signed-off-by: Jonathan Corbet <corbet@lwn.net>
21 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
24 Documentation/sphinx/kerneldoc.py | 34 ++++++++++++++++++++++++++--------
25 1 file changed, 26 insertions(+), 8 deletions(-)
27 --- a/Documentation/sphinx/kerneldoc.py
28 +++ b/Documentation/sphinx/kerneldoc.py
29 @@ -37,7 +37,17 @@ import glob
30 from docutils import nodes, statemachine
31 from docutils.statemachine import ViewList
32 from docutils.parsers.rst import directives, Directive
33 -from sphinx.ext.autodoc import AutodocReporter
36 +# AutodocReporter is only good up to Sphinx 1.7
40 +Use_SSI = sphinx.__version__[:3] >= '1.7'
42 + from sphinx.util.docutils import switch_source_input
44 + from sphinx.ext.autodoc import AutodocReporter
48 @@ -121,13 +131,7 @@ class KernelDocDirective(Directive):
51 node = nodes.section()
52 - buf = self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter
53 - self.state.memo.reporter = AutodocReporter(result, self.state.memo.reporter)
54 - self.state.memo.title_styles, self.state.memo.section_level = [], 0
56 - self.state.nested_parse(result, 0, node, match_titles=1)
58 - self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter = buf
59 + self.do_parse(result, node)
63 @@ -136,6 +140,20 @@ class KernelDocDirective(Directive):
64 (" ".join(cmd), str(e)))
65 return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))]
67 + def do_parse(self, result, node):
69 + with switch_source_input(self.state, result):
70 + self.state.nested_parse(result, 0, node, match_titles=1)
72 + save = self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter
73 + self.state.memo.reporter = AutodocReporter(result, self.state.memo.reporter)
74 + self.state.memo.title_styles, self.state.memo.section_level = [], 0
76 + self.state.nested_parse(result, 0, node, match_titles=1)
78 + self.state.memo.title_styles, self.state.memo.section_level, self.state.memo.reporter = save
82 app.add_config_value('kerneldoc_bin', None, 'env')
83 app.add_config_value('kerneldoc_srctree', None, 'env')