Re: [RFC PATCH 0/7] scripts: convert seven more Perl utilities to Python
From: Breno Rodrigues Alves
Date: Sun Oct 18 2026 - 19:19:34 EST
> So an important part of describing any change is *why* you are doing it.
> Why are you doing all of these conversions? Some of these scripts have
> not seen changes in decades and are likely unused; why do we want to
> mess with them now?
You're right, and thanks for pushing on this — I should have framed
the *why* in the cover letter.
I ran a quick analysis of each script to separate what's actually
used from what's likely dead code. Three groups:
1. Actively used by developers or build:
- get_maintainer.pl: 28 references in Documentation/ alone.
- recordmcount.pl: called from scripts/Makefile.build when
CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT is enabled.
- generate_initcall_order.pl: called from scripts/Makefile.build
when initcall tracing is enabled.
2. Used by developers, not integrated into the build:
- leaking_addresses.pl: security-research tool run manually.
3. Likely obsolete:
- checkdeclares.pl: no build, doc, or in-tree references.
(Last-modified not verified locally — shallow clone — but no
reference is the stronger signal.)
- checkversion.pl: one reference in scripts/Makefile.build, but
the check itself is narrow.
- extract_xc3028.pl: no references; extracts firmware for DVB
hardware unmaintained for over a decade.
The honest conclusion is that group 3 is a removal candidate, not
a conversion target. I did not do this analysis before v1 and I
should have.
Plan for v2:
- Keep get_maintainer, recordmcount, generate_initcall_order,
leaking_addresses.
- Drop checkdeclares and extract_xc3028 from the series.
- Decide checkversion separately (keep, or propose for removal
after a public call for users).
- Rewrite the cover letter to state the motivation explicitly.
Broader motivation for the kept four: kernel CI and tooling
already assume Python for kernel-doc, spdxcheck, bpf_doc.
Keeping Perl alive solely for a handful of scripts forces two
runtimes for the same class of tools. Converting the active ones
closes that gap; converting dead ones does not.
Breno