* [PATCH 0/2] Better handle and document Python needs for Kernel build @ 2025-07-28 14:54 Mauro Carvalho Chehab 2025-07-28 14:54 ` [PATCH 2/2] docs: changes: better document Python needs Mauro Carvalho Chehab 0 siblings, 1 reply; 4+ messages in thread From: Mauro Carvalho Chehab @ 2025-07-28 14:54 UTC (permalink / raw) To: Linux Doc Mailing List Cc: Mauro Carvalho Chehab, linux-kernel, Jonathan Corbet, workflows Hi Jon, As promised, I'm sending you the missing patches from the python backward-compatibility series. They're not urgent, IMO it should be OK to have them merged for 6.17. The first patch fix process/changes.rst. Currently, it makes one think that Python is optional. While not having python may work on some environments, there are some python scripts called during Kernel build time that require python. Document them. Also, in order to avoid breaking compilation, make kernel-doc's main script executable with elder Python versions. Backward-compatibility tested with Python 2.7 and 3.4 (although it may work since 3.2). On elder versions, it would emit a warning and do nothing, as the actual code depends on features at 3.6 (f-strings) and 3.7 (ordered dict). Mauro Carvalho Chehab (2): docs: kernel-doc: avoid script crash on ancient Python docs: changes: better document Python needs Documentation/process/changes.rst | 13 ++++++++++- scripts/kernel-doc.py | 37 ++++++++++++++++++++++--------- 2 files changed, 38 insertions(+), 12 deletions(-) -- 2.49.0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2/2] docs: changes: better document Python needs 2025-07-28 14:54 [PATCH 0/2] Better handle and document Python needs for Kernel build Mauro Carvalho Chehab @ 2025-07-28 14:54 ` Mauro Carvalho Chehab 2025-07-29 10:35 ` Akira Yokosawa 0 siblings, 1 reply; 4+ messages in thread From: Mauro Carvalho Chehab @ 2025-07-28 14:54 UTC (permalink / raw) To: Linux Doc Mailing List Cc: Mauro Carvalho Chehab, Jonathan Corbet, linux-kernel, workflows Python is listed as an optional dependency, but this is not true, as: 1) CONFIG_LTO_CLANG runs a python script at scripts/Makefile.vmlinux_o; 2) kernel-doc is called during compilation when some DRM options like CONFIG_DRM_I915_WERROR are enabled; 3) allyesconfig/allmodconfig will enable both. So, better document that. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> --- Documentation/process/changes.rst | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst index bccfa19b45df..f6abecf6da86 100644 --- a/Documentation/process/changes.rst +++ b/Documentation/process/changes.rst @@ -61,7 +61,7 @@ Sphinx\ [#f1]_ 3.4.3 sphinx-build --version GNU tar 1.28 tar --version gtags (optional) 6.6.5 gtags --version mkimage (optional) 2017.01 mkimage --version -Python (optional) 3.9.x python3 --version +Python 3.9.x python3 --version GNU AWK (optional) 5.1.0 gawk --version ====================== =============== ======================================== @@ -154,6 +154,17 @@ Perl You will need perl 5 and the following modules: ``Getopt::Long``, ``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel. +Python +------ + +CONFIG_LTO_CLANG requires python 2.7 or 3.0+; some DRM config options like +CONFIG_DRM_I915_WERROR require at least Python 2.7 or 3.4+. + +The kernel-doc tool and docs build require at least 3.6, but they depend on +dict changes that happened on 3.7 to produce valid results. + +Other tools within the Kernel tree require newer versions. + BC -- -- 2.49.0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] docs: changes: better document Python needs 2025-07-28 14:54 ` [PATCH 2/2] docs: changes: better document Python needs Mauro Carvalho Chehab @ 2025-07-29 10:35 ` Akira Yokosawa 2025-07-29 13:37 ` Mauro Carvalho Chehab 0 siblings, 1 reply; 4+ messages in thread From: Akira Yokosawa @ 2025-07-29 10:35 UTC (permalink / raw) To: mchehab+huawei Cc: corbet, linux-doc, linux-kernel, workflows, Laurent Pinchart, Jani Nikula, Akira Yokosawa [+CC Laurent and Jani] Hi, On Mon, 28 Jul 2025 16:54:29 +0200, Mauro Carvalho Chehab wrote: > Python is listed as an optional dependency, but this is not > true, as: > > 1) CONFIG_LTO_CLANG runs a python script at scripts/Makefile.vmlinux_o; > > 2) kernel-doc is called during compilation when some DRM options > like CONFIG_DRM_I915_WERROR are enabled; > > 3) allyesconfig/allmodconfig will enable both. Well, these conditions still sound to me optional. > > So, better document that. > > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> > --- > Documentation/process/changes.rst | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst > index bccfa19b45df..f6abecf6da86 100644 > --- a/Documentation/process/changes.rst > +++ b/Documentation/process/changes.rst > @@ -61,7 +61,7 @@ Sphinx\ [#f1]_ 3.4.3 sphinx-build --version > GNU tar 1.28 tar --version > gtags (optional) 6.6.5 gtags --version > mkimage (optional) 2017.01 mkimage --version > -Python (optional) 3.9.x python3 --version > +Python 3.9.x python3 --version > GNU AWK (optional) 5.1.0 gawk --version > ====================== =============== ======================================== > > @@ -154,6 +154,17 @@ Perl > You will need perl 5 and the following modules: ``Getopt::Long``, > ``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel. > > +Python > +------ > + > +CONFIG_LTO_CLANG requires python 2.7 or 3.0+; some DRM config options like > +CONFIG_DRM_I915_WERROR require at least Python 2.7 or 3.4+. > + > +The kernel-doc tool and docs build require at least 3.6, but they depend on > +dict changes that happened on 3.7 to produce valid results. > + > +Other tools within the Kernel tree require newer versions. > + These details look confusing in changes.rst. The table above says python >=3.9.x. All you need to say here would just something lile: +Python +------ + +Required with CONFIG_LTO_CLANG, some DRM config options like +CONFIG_DRM_I915_WERROR, the kernel-doc tool, and docs build (Sphinx), +among others. Other details can go to comments in each script or other docs if necessary. Thanks, Akira ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] docs: changes: better document Python needs 2025-07-29 10:35 ` Akira Yokosawa @ 2025-07-29 13:37 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 4+ messages in thread From: Mauro Carvalho Chehab @ 2025-07-29 13:37 UTC (permalink / raw) To: Akira Yokosawa Cc: corbet, linux-doc, linux-kernel, workflows, Laurent Pinchart, Jani Nikula Em Tue, 29 Jul 2025 19:35:57 +0900 Akira Yokosawa <akiyks@gmail.com> escreveu: > [+CC Laurent and Jani] > > Hi, > > On Mon, 28 Jul 2025 16:54:29 +0200, Mauro Carvalho Chehab wrote: > > Python is listed as an optional dependency, but this is not > > true, as: > > > > 1) CONFIG_LTO_CLANG runs a python script at scripts/Makefile.vmlinux_o; > > > > 2) kernel-doc is called during compilation when some DRM options > > like CONFIG_DRM_I915_WERROR are enabled; > > > > 3) allyesconfig/allmodconfig will enable both. > > Well, these conditions still sound to me optional. Then we agree to disagree: if a missing package prevents building the kernel with allyesconfig/allmodconfig, IMO it is mandatory. In any case, as Jani pointed out, DRM_MSM, which is part of arm default configs also require Python. Building with clang also requires it on several archs. There are other parts that seem to require it, but I didn't dig into it. So, IMHO, even if you consider allmodconfig/allyesconfig as "optional", and you also consider clang as "optional" (it is marked as optional at changes), it is still mandatory for arm 32-bit most common config (multi_v7_defconfig) and for arm64 defconfig. It sounds pretty much mandatory to me: if a distro doesn't have it, it can't support arm architectures. IMO, it should not be tagged as optional there. At max, a note under Python description could mention what scenarios one still may not have it. Now, adding a note like that means that someone would need to be periodically updating it when people add more auto-generated stuff that may require it. > > So, better document that. > > > > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> > > --- > > Documentation/process/changes.rst | 13 ++++++++++++- > > 1 file changed, 12 insertions(+), 1 deletion(-) > > > > diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst > > index bccfa19b45df..f6abecf6da86 100644 > > --- a/Documentation/process/changes.rst > > +++ b/Documentation/process/changes.rst > > @@ -61,7 +61,7 @@ Sphinx\ [#f1]_ 3.4.3 sphinx-build --version > > GNU tar 1.28 tar --version > > gtags (optional) 6.6.5 gtags --version > > mkimage (optional) 2017.01 mkimage --version > > -Python (optional) 3.9.x python3 --version > > +Python 3.9.x python3 --version > > GNU AWK (optional) 5.1.0 gawk --version > > ====================== =============== ======================================== > > > > @@ -154,6 +154,17 @@ Perl > > You will need perl 5 and the following modules: ``Getopt::Long``, > > ``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel. > > > > +Python > > +------ > > + > > +CONFIG_LTO_CLANG requires python 2.7 or 3.0+; some DRM config options like > > +CONFIG_DRM_I915_WERROR require at least Python 2.7 or 3.4+. > > + > > +The kernel-doc tool and docs build require at least 3.6, but they depend on > > +dict changes that happened on 3.7 to produce valid results. > > + > > +Other tools within the Kernel tree require newer versions. > > + > > These details look confusing in changes.rst. The table above says > python >=3.9.x. All you need to say here would just something lile: > > +Python > +------ > + > +Required with CONFIG_LTO_CLANG, some DRM config options like > +CONFIG_DRM_I915_WERROR, the kernel-doc tool, and docs build (Sphinx), > +among others. > > Other details can go to comments in each script or other docs if > necessary. Maybe something like: Python ------ Several config options require it: it is required for arm/arm64 default configs, CONFIG_LTO_CLANG, some DRM optional configs, the kernel-doc tool, and docs build (Sphinx), among others. Regards, Mauro ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-07-29 13:37 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-07-28 14:54 [PATCH 0/2] Better handle and document Python needs for Kernel build Mauro Carvalho Chehab 2025-07-28 14:54 ` [PATCH 2/2] docs: changes: better document Python needs Mauro Carvalho Chehab 2025-07-29 10:35 ` Akira Yokosawa 2025-07-29 13:37 ` Mauro Carvalho Chehab
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox