Re: arm64: defconfig: gcc-8: failed: AttributeError: module 'argparse' has no attribute 'BooleanOptionalAction'

From: Arnd Bergmann
Date: Tue May 07 2024 - 15:18:47 EST


On Tue, May 7, 2024, at 20:19, Dmitry Baryshkov wrote:
> On Tue, 7 May 2024 at 21:06, Naresh Kamboju <naresh.kamboju@xxxxxxxxxx> wrote:
>> On Tue, 7 May 2024 at 20:58, Dmitry Baryshkov
>> <dmitry.baryshkov@xxxxxxxxxx> wrote:
>> >
>> > On Tue, 7 May 2024 at 16:13, Naresh Kamboju <naresh.kamboju@xxxxxxxxxx> wrote:
>> > >
>> > > On Tue, 7 May 2024 at 17:13, Naresh Kamboju <naresh.kamboju@xxxxxxxxxx> wrote:
>> > > >
>> > > > The arm and arm64 with gcc-8 builds failed on Linux next-20240507 tag
>> > > > with gcc-8 due to following warnings / errors.
>> > > >
>> > > > arm64 and arm:
>> > > > defconfig - gcc-8 - failed
>> > >
>> > > Anders bisected this build problem and found the first bad commit:
>> > >
>> > > 07a2f8716c41 drm/msm/gen_header: allow skipping the validation
>> > >
>> > > Steps to reproduce:
>> > > -----
>> > > # tuxmake --runtime podman --target-arch arm64 --toolchain gcc-8
>> > > --kconfig defconfig
>> >
>> > What is the python version on that platform / system?
>>
>> # python --version
>> Python 3.7.3
>
> EOL.
> I'll check what we can do, but please consider updating the platform.

I don't think we can rely on everyone to have 3.9, 3.8
is not EOL yet, and we do want to still test in distros with
older compilers that may also come with old python.

It should just work with a regular optional argument instead
of the BooleanOptionalAction (without the --no-validate flag):

https://docs.python.org/3/howto/argparse.html#introducing-optional-arguments

> @@ -538,6 +538,9 @@ class Parser(object):
> self.variants.add(reg.domain)
>
> def do_validate(self, schemafile):
> + if self.validate == False:
> + return
> +
> try:
> from lxml import etree

This bit may have to become 'if not self.validate',
since the flag in this case is None rather than equal
to False. This also improves readability.

Arnd