Skip to content

Commit 11ba421

Browse files
author
Jonathan Corbet
committed
Merge branch 'mauro' into docs-mw
A combination of Mauro's -Werror work and my long-belated kernel-doc move.
2 parents b2664a9 + a9e732c commit 11ba421

19 files changed

Lines changed: 121 additions & 118 deletions

File tree

Documentation/conf.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -582,10 +582,6 @@ def get_cline_version():
582582
("kernel-documentation", "Kernel", "Kernel", "J. Random Bozo"),
583583
]
584584

585-
# kernel-doc extension configuration for running Sphinx directly (e.g. by Read
586-
# the Docs). In a normal build, these are supplied from the Makefile via command
587-
# line arguments.
588-
kerneldoc_bin = "../scripts/kernel-doc.py"
589585
kerneldoc_srctree = ".."
590586

591587
def setup(app):

Documentation/doc-guide/kernel-doc.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Running the ``kernel-doc`` tool with increased verbosity and without actual
5454
output generation may be used to verify proper formatting of the
5555
documentation comments. For example::
5656

57-
scripts/kernel-doc -v -none drivers/foo/bar.c
57+
tools/docs/kernel-doc -v -none drivers/foo/bar.c
5858

5959
The documentation format of ``.c`` files is also verified by the kernel build
6060
when it is requested to perform extra gcc checks::
@@ -365,7 +365,7 @@ differentiated by whether the macro name is immediately followed by a
365365
left parenthesis ('(') for function-like macros or not followed by one
366366
for object-like macros.
367367

368-
Function-like macros are handled like functions by ``scripts/kernel-doc``.
368+
Function-like macros are handled like functions by ``tools/docs/kernel-doc``.
369369
They may have a parameter list. Object-like macros have do not have a
370370
parameter list.
371371

@@ -596,8 +596,8 @@ from the source file.
596596

597597
The kernel-doc extension is included in the kernel source tree, at
598598
``Documentation/sphinx/kerneldoc.py``. Internally, it uses the
599-
``scripts/kernel-doc`` script to extract the documentation comments from the
600-
source.
599+
``tools/docs/kernel-doc`` script to extract the documentation comments from
600+
the source.
601601

602602
.. _kernel_doc:
603603

Documentation/kbuild/kbuild.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ architecture.
180180
KDOCFLAGS
181181
---------
182182
Specify extra (warning/error) flags for kernel-doc checks during the build,
183-
see scripts/kernel-doc for which flags are supported. Note that this doesn't
183+
see tools/docs/kernel-doc for which flags are supported. Note that this doesn't
184184
(currently) apply to documentation builds.
185185

186186
ARCH

Documentation/process/coding-style.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,7 @@ it.
614614

615615
When commenting the kernel API functions, please use the kernel-doc format.
616616
See the files at :ref:`Documentation/doc-guide/ <doc_guide>` and
617-
``scripts/kernel-doc`` for details. Note that the danger of over-commenting
617+
``tools/docs/kernel-doc`` for details. Note that the danger of over-commenting
618618
applies to kernel-doc comments all the same. Do not add boilerplate
619619
kernel-doc which simply reiterates what's obvious from the signature
620620
of the function.

Documentation/sphinx/kerneldoc.py

Lines changed: 11 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@
4747
from kdoc.kdoc_files import KernelFiles
4848
from kdoc.kdoc_output import RestFormat
4949

50+
# Used when verbose is active to show how to reproduce kernel-doc
51+
# issues via command line
52+
kerneldoc_bin = "tools/docs/kernel-doc"
53+
5054
__version__ = '1.0'
5155
kfiles = None
5256
logger = logging.getLogger(__name__)
@@ -95,7 +99,7 @@ class KernelDocDirective(Directive):
9599
def handle_args(self):
96100

97101
env = self.state.document.settings.env
98-
cmd = [env.config.kerneldoc_bin, '-rst', '-enable-lineno']
102+
cmd = [kerneldoc_bin, '-rst', '-enable-lineno']
99103

100104
filename = env.config.kerneldoc_srctree + '/' + self.arguments[0]
101105

@@ -190,35 +194,7 @@ def handle_args(self):
190194

191195
return cmd
192196

193-
def run_cmd(self, cmd):
194-
"""
195-
Execute an external kernel-doc command.
196-
"""
197-
198-
env = self.state.document.settings.env
199-
node = nodes.section()
200-
201-
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
202-
out, err = p.communicate()
203-
204-
out, err = codecs.decode(out, 'utf-8'), codecs.decode(err, 'utf-8')
205-
206-
if p.returncode != 0:
207-
sys.stderr.write(err)
208-
209-
logger.warning("kernel-doc '%s' failed with return code %d"
210-
% (" ".join(cmd), p.returncode))
211-
return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))]
212-
elif env.config.kerneldoc_verbosity > 0:
213-
sys.stderr.write(err)
214-
215-
filenames = self.parse_args["file_list"]
216-
for filename in filenames:
217-
self.parse_msg(filename, node, out, cmd)
218-
219-
return node.children
220-
221-
def parse_msg(self, filename, node, out, cmd):
197+
def parse_msg(self, filename, node, out):
222198
"""
223199
Handles a kernel-doc output for a given file
224200
"""
@@ -244,7 +220,7 @@ def parse_msg(self, filename, node, out, cmd):
244220

245221
self.do_parse(result, node)
246222

247-
def run_kdoc(self, cmd, kfiles):
223+
def run_kdoc(self, kfiles):
248224
"""
249225
Execute kernel-doc classes directly instead of running as a separate
250226
command.
@@ -258,23 +234,17 @@ def run_kdoc(self, cmd, kfiles):
258234
filenames = self.parse_args["file_list"]
259235

260236
for filename, out in kfiles.msg(**self.msg_args, filenames=filenames):
261-
self.parse_msg(filename, node, out, cmd)
237+
self.parse_msg(filename, node, out)
262238

263239
return node.children
264240

265241
def run(self):
266-
global kfiles
267-
268242
cmd = self.handle_args()
269243
if self.verbose >= 1:
270244
logger.info(cmd_str(cmd))
271245

272246
try:
273-
if kfiles:
274-
return self.run_kdoc(cmd, kfiles)
275-
else:
276-
return self.run_cmd(cmd)
277-
247+
return self.run_kdoc(kfiles)
278248
except Exception as e: # pylint: disable=W0703
279249
logger.warning("kernel-doc '%s' processing failed with: %s" %
280250
(cmd_str(cmd), pformat(e)))
@@ -286,19 +256,11 @@ def do_parse(self, result, node):
286256

287257
def setup_kfiles(app):
288258
global kfiles
289-
290-
kerneldoc_bin = app.env.config.kerneldoc_bin
291-
292-
if kerneldoc_bin and kerneldoc_bin.endswith("kernel-doc.py"):
293-
print("Using Python kernel-doc")
294-
out_style = RestFormat()
295-
kfiles = KernelFiles(out_style=out_style, logger=logger)
296-
else:
297-
print(f"Using {kerneldoc_bin}")
259+
out_style = RestFormat()
260+
kfiles = KernelFiles(out_style=out_style, logger=logger)
298261

299262

300263
def setup(app):
301-
app.add_config_value('kerneldoc_bin', None, 'env')
302264
app.add_config_value('kerneldoc_srctree', None, 'env')
303265
app.add_config_value('kerneldoc_verbosity', 1, 'env')
304266

Documentation/translations/it_IT/doc-guide/kernel-doc.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ Al fine di verificare che i commenti siano formattati correttamente, potete
8080
eseguire il programma ``kernel-doc`` con un livello di verbosità alto e senza
8181
che questo produca alcuna documentazione. Per esempio::
8282

83-
scripts/kernel-doc -v -none drivers/foo/bar.c
83+
tools/docs/kernel-doc -v -none drivers/foo/bar.c
8484

8585
Il formato della documentazione è verificato della procedura di generazione
8686
del kernel quando viene richiesto di effettuare dei controlli extra con GCC::
@@ -378,7 +378,7 @@ distinguono in base al fatto che il nome della macro simile a funzione sia
378378
immediatamente seguito da una parentesi sinistra ('(') mentre in quelle simili a
379379
oggetti no.
380380

381-
Le macro simili a funzioni sono gestite come funzioni da ``scripts/kernel-doc``.
381+
Le macro simili a funzioni sono gestite come funzioni da ``tools/docs/kernel-doc``.
382382
Possono avere un elenco di parametri. Le macro simili a oggetti non hanno un
383383
elenco di parametri.
384384

@@ -595,7 +595,7 @@ documentazione presenti nel file sorgente (*source*).
595595

596596
L'estensione kernel-doc fa parte dei sorgenti del kernel, la si può trovare
597597
in ``Documentation/sphinx/kerneldoc.py``. Internamente, viene utilizzato
598-
lo script ``scripts/kernel-doc`` per estrarre i commenti di documentazione
598+
lo script ``tools/docs/kernel-doc`` per estrarre i commenti di documentazione
599599
dai file sorgenti.
600600

601601
Come utilizzare kernel-doc per generare pagine man
@@ -604,4 +604,4 @@ Come utilizzare kernel-doc per generare pagine man
604604
Se volete utilizzare kernel-doc solo per generare delle pagine man, potete
605605
farlo direttamente dai sorgenti del kernel::
606606

607-
$ scripts/kernel-doc -man $(git grep -l '/\*\*' -- :^Documentation :^tools) | scripts/split-man.pl /tmp/man
607+
$ tools/docs/kernel-doc -man $(git grep -l '/\*\*' -- :^Documentation :^tools) | scripts/split-man.pl /tmp/man

Documentation/translations/sp_SP/process/coding-style.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,7 @@ posiblemente POR QUÉ hace esto.
633633

634634
Al comentar las funciones de la API del kernel, utilice el formato
635635
kernel-doc. Consulte los archivos en :ref:`Documentation/doc-guide/ <doc_guide>`
636-
y ``scripts/kernel-doc`` para más detalles.
636+
y ``tools/docs/kernel-doc`` para más detalles.
637637

638638
El estilo preferido para comentarios largos (de varias líneas) es:
639639

Documentation/translations/zh_CN/doc-guide/kernel-doc.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ kernel-doc注释用 ``/**`` 作为开始标记。 ``kernel-doc`` 工具将提取
4343
用详细模式和不生成实际输出来运行 ``kernel-doc`` 工具,可以验证文档注释的格式
4444
是否正确。例如::
4545

46-
scripts/kernel-doc -v -none drivers/foo/bar.c
46+
tools/docs/kernel-doc -v -none drivers/foo/bar.c
4747

4848
当请求执行额外的gcc检查时,内核构建将验证文档格式::
4949

@@ -473,7 +473,7 @@ doc: *title*
473473
如果没有选项,kernel-doc指令将包含源文件中的所有文档注释。
474474

475475
kernel-doc扩展包含在内核源代码树中,位于 ``Documentation/sphinx/kerneldoc.py`` 。
476-
在内部,它使用 ``scripts/kernel-doc`` 脚本从源代码中提取文档注释。
476+
在内部,它使用 ``tools/docs/kernel-doc`` 脚本从源代码中提取文档注释。
477477

478478
.. _kernel_doc_zh:
479479

@@ -482,18 +482,18 @@ kernel-doc扩展包含在内核源代码树中,位于 ``Documentation/sphinx/k
482482

483483
如果您只想使用kernel-doc生成手册页,可以从内核git树这样做::
484484

485-
$ scripts/kernel-doc -man \
485+
$ tools/docs/kernel-doc -man \
486486
$(git grep -l '/\*\*' -- :^Documentation :^tools) \
487487
| scripts/split-man.pl /tmp/man
488488

489489
一些旧版本的git不支持路径排除语法的某些变体。
490490
以下命令之一可能适用于这些版本::
491491

492-
$ scripts/kernel-doc -man \
492+
$ tools/docs/kernel-doc -man \
493493
$(git grep -l '/\*\*' -- . ':!Documentation' ':!tools') \
494494
| scripts/split-man.pl /tmp/man
495495

496-
$ scripts/kernel-doc -man \
496+
$ tools/docs/kernel-doc -man \
497497
$(git grep -l '/\*\*' -- . ":(exclude)Documentation" ":(exclude)tools") \
498498
| scripts/split-man.pl /tmp/man
499499

Documentation/translations/zh_CN/kbuild/kbuild.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ UTS_MACHINE 变量(在某些架构中还包括内核配置)来猜测正确
174174
KDOCFLAGS
175175
---------
176176
指定在构建过程中用于 kernel-doc 检查的额外(警告/错误)标志,查看
177-
scripts/kernel-doc 了解支持的标志。请注意,这目前不适用于文档构建。
177+
tools/docs/kernel-doc 了解支持的标志。请注意,这目前不适用于文档构建。
178178

179179
ARCH
180180
----

Documentation/translations/zh_CN/process/coding-style.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ Linux 里这是提倡的做法,因为这样可以很简单的给读者提供
545545
也可以加上它做这些事情的原因。
546546

547547
当注释内核 API 函数时,请使用 kernel-doc 格式。详见
548-
Documentation/translations/zh_CN/doc-guide/index.rst 和 scripts/kernel-doc 。
548+
Documentation/translations/zh_CN/doc-guide/index.rst 和 tools/docs/kernel-doc 。
549549

550550
长 (多行) 注释的首选风格是:
551551

0 commit comments

Comments
 (0)