summaryrefslogtreecommitdiff
path: root/scripts/kernel-doc.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/kernel-doc.py')
-rwxr-xr-xscripts/kernel-doc.py34
1 files changed, 24 insertions, 10 deletions
diff --git a/scripts/kernel-doc.py b/scripts/kernel-doc.py
index fc3d46ef519f..d9fe2bcbd39c 100755
--- a/scripts/kernel-doc.py
+++ b/scripts/kernel-doc.py
@@ -2,8 +2,17 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright(c) 2025: Mauro Carvalho Chehab <mchehab@kernel.org>.
#
-# pylint: disable=C0103,R0915
-#
+# pylint: disable=C0103,R0912,R0914,R0915
+
+# NOTE: While kernel-doc requires at least version 3.6 to run, the
+# command line should work with Python 3.2+ (tested with 3.4).
+# The rationale is that it shall fail gracefully during Kernel
+# compilation with older Kernel versions. Due to that:
+# - encoding line is needed here;
+# - no f-strings can be used on this file.
+# - the libraries that require newer versions can only be included
+# after Python version is checked.
+
# Converted from the kernel-doc script originally written in Perl
# under GPLv2, copyrighted since 1998 by the following authors:
#
@@ -107,9 +116,6 @@ SRC_DIR = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, os.path.join(SRC_DIR, LIB_DIR))
-from kdoc_files import KernelFiles # pylint: disable=C0413
-from kdoc_output import RestFormat, ManFormat # pylint: disable=C0413
-
DESC = """
Read C language source or header FILEs, extract embedded documentation comments,
and print formatted documentation to standard output.
@@ -273,14 +279,22 @@ def main():
python_ver = sys.version_info[:2]
if python_ver < (3,6):
- logger.warning("Python 3.6 or later is required by kernel-doc")
+ # Depending on Kernel configuration, kernel-doc --none is called at
+ # build time. As we don't want to break compilation due to the
+ # usage of an old Python version, return 0 here.
+ if args.none:
+ logger.error("Python 3.6 or later is required by kernel-doc. skipping checks")
+ sys.exit(0)
- # Return 0 here to avoid breaking compilation
- sys.exit(0)
+ sys.exit("Python 3.6 or later is required by kernel-doc. Aborting.")
if python_ver < (3,7):
logger.warning("Python 3.7 or later is required for correct results")
+ # Import kernel-doc libraries only after checking Python version
+ from kdoc_files import KernelFiles # pylint: disable=C0415
+ from kdoc_output import RestFormat, ManFormat # pylint: disable=C0415
+
if args.man:
out_style = ManFormat(modulename=args.modulename)
elif args.none:
@@ -308,11 +322,11 @@ def main():
sys.exit(0)
if args.werror:
- print(f"{error_count} warnings as errors")
+ print("%s warnings as errors" % error_count) # pylint: disable=C0209
sys.exit(error_count)
if args.verbose:
- print(f"{error_count} errors")
+ print("%s errors" % error_count) # pylint: disable=C0209
if args.none:
sys.exit(0)