From: Jacob Keller <jacob.e.keller@intel.com>
To: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>,
Linux Doc Mailing List <linux-doc@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
"Mauro Carvalho Chehab" <mchehab@kernel.org>,
Randy Dunlap <rdunlap@infradead.org>,
Shuah Khan <skhan@linuxfoundation.org>
Subject: Re: [PATCH] doc tools: better handle KBUILD_VERBOSE
Date: Mon, 30 Mar 2026 09:21:44 -0700 [thread overview]
Message-ID: <83572d0d-049f-48d0-800e-7f2f735aa611@intel.com> (raw)
In-Reply-To: <20260328010955.19a90582@foz.lan>
On 3/27/2026 5:09 PM, Mauro Carvalho Chehab wrote:
> On Fri, 27 Mar 2026 11:35:39 -0700
> Jacob Keller <jacob.e.keller@intel.com> wrote:
>
>> On 3/26/2026 10:57 PM, Mauro Carvalho Chehab wrote:
>>> As reported by Jacob, there are troubles when KBUILD_VERBOSE is
>>> set at the environment.
>>>
>>> Fix it on both kernel-doc and sphinx-build-wrapper.
>>>
>>> Reported-by: Jacob Keller <jacob.e.keller@intel.com>
>>> Closes: https://lore.kernel.org/linux-doc/9367d899-53af-4d9c-9320-22fc4dbadca5@intel.com/
>>> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
>>> ---
>>
>> I loaded this on my system and tested the build works as expected both
>> with V=0 and when I export KBUILD_VERBOSE manually.
>>
>> Thanks for fixing this quickly!
>>
>> Tested-by: Jacob Keller <jacob.e.keller@intel.com>
>>
>>> tools/docs/sphinx-build-wrapper | 7 ++++++-
>>> tools/lib/python/kdoc/kdoc_files.py | 7 ++++++-
>>> 2 files changed, 12 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/tools/docs/sphinx-build-wrapper b/tools/docs/sphinx-build-wrapper
>>> index 2c63d28f639d..1bb962202784 100755
>>> --- a/tools/docs/sphinx-build-wrapper
>>> +++ b/tools/docs/sphinx-build-wrapper
>>> @@ -238,7 +238,12 @@ class SphinxBuilder:
>>> self.latexopts = os.environ.get("LATEXOPTS", "")
>>>
>>> if not verbose:
>>> - verbose = bool(os.environ.get("KBUILD_VERBOSE", "") != "")
>>> + try:
>>> + verbose = bool(int(os.environ.get("KBUILD_VERBOSE", 0)))
>>> + except ValueError:
>>> + # Handles an eventual case where verbosity is not a number
>>> + # like KBUILD_VERBOSE=""
>>
>> Strictly speaking I think os.environ.get() will handle the case of an
>> empty KBUILD_VERBOSE by converting to the default value (in this case 0).
>
> It won't. See:
>
> $ FOO="" python3
> Python 3.14.3 (main, Feb 4 2026, 00:00:00) [GCC 15.2.1 20260123 (Red Hat 15.2.1-7)] on linux
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import os
> >>> os.environ.get("FOO", 0)
> ''
>
> $ FOO="0" python3
> Python 3.14.3 (main, Feb 4 2026, 00:00:00) [GCC 15.2.1 20260123 (Red Hat 15.2.1-7)] on linux
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import os
> >>> os.environ.get("FOO", 0)
> ...
> '0'
>
> $ unset FOO; python3
> Python 3.14.3 (main, Feb 4 2026, 00:00:00) [GCC 15.2.1 20260123 (Red Hat 15.2.1-7)] on linux
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import os
> >>> os.environ.get("FOO", 0)
> ...
> 0
>
> it will only get an integer 0 if the env var (at the above example, FOO)
> is not on env.
We always export KBUILD_VERBOSE regardless of its content, so we always
have os.environ.get("KBUILD_VERBOSE", 0) returning an empty string..
but the old bool() conversion would return false as expected. I.e. prior
to the change '' was handled as false as expected. but with int() then
we *do* get a ValueError now instead.
Ok.
>
>> The intent of the comment and code is pretty clear though, so I don't
>> know that deserves a re-roll.
>
> I opted to add a comment there because having two conversions,
> first to int then to bool is not that obvious ;-)
>
Yes. I was misunderstanding the intent of the comment, because I was
thinking that KBUILD_VERBOSE was unset, i.e. if you assign
KBUILD_VERBOSE= it would result in an unset value, but set and empty is
distinct from unset.
Prior to the int() conversion the bool() conversion did implicitly
handle the '' to false conversion, but now we'll get an exception first.
Thanks, and apologies for my confusion :D
> Thanks,
> Mauro
next prev parent reply other threads:[~2026-03-30 16:21 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-27 5:57 [PATCH] doc tools: better handle KBUILD_VERBOSE Mauro Carvalho Chehab
2026-03-27 18:35 ` Jacob Keller
2026-03-28 0:09 ` Mauro Carvalho Chehab
2026-03-30 16:21 ` Jacob Keller [this message]
2026-03-30 16:03 ` Jonathan Corbet
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=83572d0d-049f-48d0-800e-7f2f735aa611@intel.com \
--to=jacob.e.keller@intel.com \
--cc=corbet@lwn.net \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mchehab+huawei@kernel.org \
--cc=mchehab@kernel.org \
--cc=rdunlap@infradead.org \
--cc=skhan@linuxfoundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox