milos-linux/scripts
Mauro Carvalho Chehab fc973dcd73 docs: kernel-doc: avoid script crash on ancient Python
While we do need at least 3.6 for kernel-doc to work, and at least
3.7 for it to output functions and structs with parameters at the
right order, let the python binary be compatible with legacy
versions.

The rationale is that the Kernel build nowadays calls kernel-doc
with -none on some places. Better not to bail out when older
versions are found.

With that, potentially this will run with python 2.7 and 3.2+,
according with vermin:

	$ vermin --no-tips -v ./scripts/kernel-doc
	Detecting python files..
	Analyzing using 24 processes..
	2.7, 3.2     /new_devel/v4l/docs/scripts/kernel-doc
	Minimum required versions: 2.7, 3.2

3.2 minimal requirement is due to argparse.

The minimal version I could check was version 3.4
(using anaconda). Anaconda doesn't support 3.2 or 3.3
anymore, and 3.2 doesn't even compile (I tested compiling
Python 3.2 on Fedora 42 and on Fedora 32 - no show).

With 3.4, the script didn't crash and emitted the right warning:

	$ conda create -n py34 python=3.4
	$ conda activate py34
	python --version
        Python 3.4.5
        $ python ./scripts/kernel-doc --none include/media
	Error: Python 3.6 or later is required by kernel-doc
	$ conda deactivate

	$ python --version
	Python 3.13.5
        $ python ./scripts/kernel-doc --none include/media
	(no warnings and script ran properly)

Supporting 2.7 is out of scope, as it is EOL for 5 years, and
changing shebang to point to "python" instead of "python3"
would have a wider impact.

I did some extra checks about the differences from 3.2 and
3.4, and didn't find anything that would cause troubles:

	grep -rE "yield from|asyncio|pathlib|async|await|enum" scripts/kernel-doc

Also, it doesn't use "@" operator. So, I'm confident that it
should run (producing the exit warning) since Python 3.2.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/87d55e76b0b1391cb7a83e3e965dbddb83fa9786.1753806485.git.mchehab+huawei@kernel.org
2025-08-11 10:54:29 -06:00
..
atomic
bash-completion kbuild: add Kbuild bash completion 2025-03-15 21:22:52 +09:00
basic integer-wrap: Force full rebuild when .scl file changes 2025-05-08 09:42:06 -07:00
clang-tools gen_compile_commands.py: remove code for '\#' replacement 2025-03-15 21:16:21 +09:00
coccinelle coccinelle: misc: secs_to_jiffies: implement context and report modes 2025-07-19 19:08:25 -07:00
crypto lib/crypto: tests: Add KUnit tests for Poly1305 2025-07-14 11:29:36 -07:00
dtc
dummy-tools
gcc-plugins stackleak: Rename stackleak_track_stack to __sanitizer_cov_stack_depth 2025-07-21 21:40:39 -07:00
gdb Significant patch series in this pull request: 2025-08-03 16:23:09 -07:00
gendwarfksyms gendwarfksyms: order -T symtypes output by name 2025-07-26 15:31:30 +09:00
genksyms genksyms: Fix enum consts from a reference affecting new values 2025-06-07 14:38:07 +09:00
include
ipe
kconfig kconfig: lxdialog: replace strcpy() with strncpy() in inputbox.c 2025-08-06 10:23:36 +09:00
ksymoops
lib Merge branch 'dump-struct' into docs-mw 2025-08-11 10:29:07 -06:00
mod modpost: check forbidden MODULE_IMPORT_NS("module:") at compile time 2025-05-25 18:15:51 +09:00
package kbuild: rpm-pkg: Add (elfutils-devel or libdw-devel) to BuildRequires 2025-05-12 15:03:17 +09:00
selinux selinux: Chain up tool resolving errors in install_policy.sh 2025-03-07 14:38:34 -05:00
tracing scripts/tracing: Remove scripts/tracing/draw_functrace.py 2025-03-20 07:02:21 -04:00
.gitignore
as-version.sh
asn1_compiler.c
bloat-o-meter
bootgraph.pl
bpf_doc.py scripts/bpf_doc.py: implement json output format 2025-05-09 11:31:23 -07:00
build-version
cc-can-link.sh
cc-version.sh
check-git
check-sysctl-docs docs: Replace spaces with tabs in check-sysctl-docs 2025-07-23 11:57:05 +02:00
check-uapi.sh
check-variable-fonts.sh
check_extable.sh
checkdeclares.pl
checkincludes.pl
checkkconfigsymbols.py
checkpatch.pl Significant patch series in this pull request: 2025-08-03 16:23:09 -07:00
checkstack.pl
checksyscalls.sh
checktransupdate.py scripts: add origin commit identification based on specific patterns 2025-07-24 08:41:15 -06:00
checkversion.pl
cleanfile
cleanpatch
coccicheck
config kbuild: fix argument parsing in scripts/config 2025-03-15 21:22:42 +09:00
const_structs.checkpatch const_structs.checkpatch: add bin_attribute 2025-06-17 10:44:07 +02:00
decode_stacktrace.sh
decodecode
depmod.sh
dev-needs.sh
diffconfig
documentation-file-ref-check scripts/documentation-file-ref-check: don't check perl/python scripts 2025-02-10 11:19:56 -07:00
extract-fwblobs scripts: add script to extract built-in firmware blobs 2025-03-16 22:30:46 -07:00
extract-ikconfig
extract-module-sig.pl
extract-sys-certs.pl
extract-vmlinux scripts: add zboot support to extract-vmlinux 2025-07-26 15:31:30 +09:00
extract_xc3028.pl
faddr2line
file-size.sh
find-unused-docs.sh scripts/kernel-doc.py: don't create *.pyc files 2025-04-24 10:12:46 -06:00
gen-crc-consts.py riscv/crc: add "template" for Zbc optimized CRC functions 2025-03-10 09:29:08 -07:00
gen-randstruct-seed.sh
gen_packed_field_checks.c
generate_builtin_ranges.awk kbuild: exclude .rodata.(cst|str)* when building ranges 2025-03-15 21:22:52 +09:00
generate_initcall_order.pl
generate_rust_analyzer.py rust: compile libcore with edition 2024 for 1.87+ 2025-05-25 22:59:47 +02:00
generate_rust_target.rs rust: convert raw URLs to Markdown autolinks in comments 2025-05-12 00:20:25 +02:00
get_abi.py scripts/get_abi.py: add support for undefined ABIs 2025-02-10 11:19:57 -07:00
get_dvb_firmware
get_feat.pl scripts: get_feat.pl: substitute s390x with s390 2025-03-12 16:25:50 -06:00
get_maintainer.pl get_maintainer: stop reporting subsystem status as maintainer role 2025-03-16 22:30:49 -07:00
gfp-translate
git-resolve.sh git-resolve: add SPDX and copyright line 2025-04-25 15:54:24 +02:00
git.orderFile
head-object-list.txt
headerdep.pl
headers_install.sh
insert-sys-cert.c
install.sh
integer-wrap-ignore.scl ubsan/overflow: Enable ignorelist parsing and add type filter 2025-03-07 19:58:05 -08:00
jobserver-exec
kallsyms.c kallsyms: Remove KALLSYMS_ABSOLUTE_PERCPU 2025-02-18 10:16:04 +01:00
Kbuild.include
Kconfig.include
kernel-doc scripts/kernel-doc: switch to use kernel-doc.py 2025-04-09 12:10:34 -06:00
kernel-doc.pl scripts: kernel-doc: fix parsing function-like typedefs (again) 2025-04-09 12:10:34 -06:00
kernel-doc.py docs: kernel-doc: avoid script crash on ancient Python 2025-08-11 10:54:29 -06:00
ld-version.sh
leaking_addresses.pl
Lindent
link-vmlinux.sh Kbuild updates for v6.15 2025-04-05 15:46:50 -07:00
macro_checker.py
make_fit.py scripts/make_fit: Print DT name before libfdt errors 2025-03-27 14:03:32 -05:00
Makefile Kbuild updates for v6.14 2025-01-31 12:07:07 -08:00
Makefile.asm-headers
Makefile.autofdo
Makefile.btf kbuild, bpf: Enable --btf_features=attributes 2025-04-15 11:17:50 -07:00
Makefile.build Rust changes for v6.17 2025-08-03 13:49:10 -07:00
Makefile.clang kbuild: clang: Support building UM with SUBARCH=i386 2025-03-04 09:40:13 -08:00
Makefile.clean
Makefile.compiler require gcc-8 and binutils-2.30 2025-05-31 08:16:52 -07:00
Makefile.debug
Makefile.defconf
Makefile.dtbinst
Makefile.dtbs
Makefile.extrawarn hardening updates for v6.16-rc1 2025-05-28 07:47:10 -07:00
Makefile.gcc-plugins stackleak: Split KSTACK_ERASE_CFLAGS from GCC_PLUGINS_CFLAGS 2025-07-21 21:40:57 -07:00
Makefile.headersinst
Makefile.host
Makefile.kasan
Makefile.kcov - The 2 patch series "zram: support algorithm-specific parameters" from 2025-06-02 16:00:26 -07:00
Makefile.kcsan
Makefile.kmsan
Makefile.kstack_erase kstack_erase: Fix missed export of renamed KSTACK_ERASE_CFLAGS 2025-07-29 17:17:46 -07:00
Makefile.lib Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
Makefile.modfinal
Makefile.modinst
Makefile.modpost
Makefile.package
Makefile.propeller
Makefile.randstruct
Makefile.ubsan ARM: 2025-05-29 08:10:01 -07:00
Makefile.userprogs
Makefile.vdsoinst
Makefile.vmlinux kbuild: fix typos "module.builtin" to "modules.builtin" 2025-05-12 15:04:52 +09:00
Makefile.vmlinux_o kbuild: fix typos "module.builtin" to "modules.builtin" 2025-05-12 15:04:52 +09:00
makelst
markup_oops.pl
min-tool-version.sh kbuild: require gcc-8 and binutils-2.30 2025-04-30 21:53:35 +02:00
misc-check kbuild: move warnings about linux/export.h from W=1 to W=2 2025-06-16 00:41:40 +09:00
mkcompile_h
mksysmap
mkuboot.sh
module-common.c
module.lds.S alloc_tag: remove empty module tag section 2025-07-09 22:42:03 -07:00
modules-check.sh
nsdeps
objdiff
objdump-func
orc_hash.sh
pahole-version.sh
parse-maintainers.pl
patch-kernel
profile2linkerlist.pl
prune-kernel
recordmcount.c
recordmcount.h
recordmcount.pl tracing: Remove redundant config HAVE_FTRACE_MCOUNT_RECORD 2025-07-22 20:15:56 -04:00
relocs_check.sh
remove-stale-files
rust_is_available.sh
rust_is_available_bindgen_0_66.h
rust_is_available_bindgen_libclang.h
rust_is_available_bindgen_libclang_concat.h
rust_is_available_test.py
rustc-llvm-version.sh
rustc-version.sh
rustdoc_test_builder.rs rust: use absolute paths in macros referencing core and kernel 2025-05-23 00:12:14 +02:00
rustdoc_test_gen.rs scripts: rust: emit path candidates in panic message 2025-07-21 00:18:43 +02:00
setlocalversion
show_delta scripts: make python shebangs specific about desired version 2025-03-15 21:19:44 +09:00
sign-file.c
sorttable.c scripts/sorttable: Fix endianness handling in build-time mcount sort 2025-04-02 09:51:26 -04:00
spdxcheck-test.sh
spdxcheck.py
spdxexclude
spelling.txt scripts/spelling.txt: add notifer||notifier to spelling.txt 2025-08-02 12:01:40 -07:00
sphinx-pre-install scripts: sphinx-pre-install: fix release detection for Fedora 2025-06-25 12:22:48 -06:00
split-man.pl
ssl-common.h
stackdelta
stackusage
subarch.include
syscall.tbl fs: introduce file_getattr and file_setattr syscalls 2025-07-02 17:05:17 +02:00
syscallhdr.sh
syscallnr.sh
syscalltbl.sh
tags.sh scripts/tags.sh: allow to use alternative ctags implementation 2025-06-06 05:40:25 +09:00
test_doc_build.py scripts: test_doc_build.py: regroup and rename arguments 2025-06-25 12:22:48 -06:00
tools-support-relr.sh
unifdef.c
ver_linux ver_linux: Remove checks for reiserfsprogs. 2025-06-09 14:53:16 -06:00
verify_builtin_ranges.awk
xen-hypercalls.sh
xz_wrap.sh