All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Akira Yokosawa <akiyks@gmail.com>
Cc: corbet@lwn.net, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, workflows@vger.kernel.org,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Jani Nikula <jani.nikula@intel.com>
Subject: Re: [PATCH 2/2] docs: changes: better document Python needs
Date: Tue, 29 Jul 2025 15:37:09 +0200	[thread overview]
Message-ID: <20250729153709.4040236a@sal.lan> (raw)
In-Reply-To: <3170902c-4a3a-4f85-8703-0e2cfc04201b@gmail.com>

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

      reply	other threads:[~2025-07-29 13:37 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 1/2] docs: kernel-doc: avoid script crash on ancient Python Mauro Carvalho Chehab
2025-07-29 10:08   ` Akira Yokosawa
2025-07-29 13:19     ` Jani Nikula
2025-07-29 13:57       ` Jonathan Corbet
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 message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250729153709.4040236a@sal.lan \
    --to=mchehab+huawei@kernel.org \
    --cc=akiyks@gmail.com \
    --cc=corbet@lwn.net \
    --cc=jani.nikula@intel.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=workflows@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.