From: Quentin Schulz <quentin.schulz@cherry.de>
To: Joao Marcos Costa <joaomarcos.costa@bootlin.com>,
openembedded-core@lists.openembedded.org
Cc: thomas.petazzoni@bootlin.com
Subject: Re: [OE-core] [PATCH] meta: simplify conditional operations with bb.utils.filter
Date: Mon, 27 Apr 2026 12:45:16 +0200 [thread overview]
Message-ID: <f3192818-b214-4733-82e7-4799de9f2bc6@cherry.de> (raw)
In-Reply-To: <d34abdf5-0ea6-4aae-a334-14f85e12449c@bootlin.com>
Hi João,
On 4/27/26 10:38 AM, Joao Marcos Costa wrote:
> Hello, Quentin
>
> On 4/24/26 17:40, Quentin Schulz via lists.openembedded.org wrote:
>> Hi João,
>>
>> On 4/24/26 5:17 PM, Joao Marcos Costa via lists.openembedded.org wrote:
>>> Some recipes and configuration files use bb.utils.contains to check for
>>> a string inside a variable, and return the exact same string if true.
>>>
>>> This can be simplified by a call to bb.utils.filter, since the result is
>>> the same, and the inline is shorter.
>>>
>>> Replace "bb.utils.contains(A, 'a', 'a', '', d)" by
>>> "bb.utils.filter(A, 'a', d)".
>>>
>>> Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
>>> ---
>
> (...)
>
>> I'm pretty sure your changes in the conf files won't work, but maybe
>> I'm wrong?
>>
>> Before, we only added a space if there was a new tune to add. Now,
>> it's always added.
>>
>> Considering TUNE_CCARGS_MFPU can now possibly contain only spaces, the
>> check if TUNE_CCARGS_MFPU is not the empty string to access the last
>> element in the list returned by split(), which will now be the empty
>> list, will raise an IndexError exception.
>>
>> You need to adapt anything that's using this variable to check if it
>> only contains spaces or at least remove spurious ones, possibly with
>> str.strip() for example. Unfortunately, if TUNE_CCARGS_MFPU doesn't
>> exist, d.getVar() will return None and you cannot strip() on None. Of
>> course, considering TUNE_CCARGS_MFPU is declared just above in the
>> file, it'll always be defined, so maybe that's fine to not check for
>> None.
>>
>> If the space didn't matter, we probably would have used += instead
>> of .=, so I'm wary of this change (the rest looks fine).
>>
>> Cheers,
>> Quentin
>
> Thanks for your review. And yes, I'm looking at this part of the patch
> again, and I'm considering two things:
>
> a) Add the strip() as you said, here, and keep my changes:
>
> -TUNE_CCARGS .= "${@ (' -mfpu=%s' %
> d.getVar('TUNE_CCARGS_MFPU').split()[-1]) if
> (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}"
> +TUNE_CCARGS .= "${@ (' -mfpu=%s' %
> d.getVar('TUNE_CCARGS_MFPU').split()[-1]) if
> (d.getVar('TUNE_CCARGS_MFPU').strip() != '') else ''}"
> # The following deals with both vfpv3-d16 and vfpv4-d16
> -ARMPKGSFX_FPU = "${@ ('-%s' %
> d.getVar('TUNE_CCARGS_MFPU').split()[-1].replace('-d16', 'd16')) if
> (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}"
> +ARMPKGSFX_FPU = "${@ ('-%s' %
> d.getVar('TUNE_CCARGS_MFPU').split()[-1].replace('-d16', 'd16')) if
> (d.getVar('TUNE_CCARGS_MFPU').strip() != '') else ''}"
>
Yet another option is to do
(d.getVar('TUNE_CCARGS_MFPU') or '').strip() != ''
but it's a bit eww :)
> b) Simply remove those changes, then send another patch keeping only the
> changes in recipes.
>
Yeah that works too. It's the same change but the implications are
different. So maybe three patches (one for machihes, one for QA, one for
recipes (maybe even in two, one for PACKAGECONFIG, one for RDEPENDS
since Chen Qi doesn't seem to like the latter too much :) ) so everybody
can bikeshed as much as they want on one and still have the rest merged :)
Cheers,
Quentin
next prev parent reply other threads:[~2026-04-27 10:45 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-24 15:17 [PATCH] meta: simplify conditional operations with bb.utils.filter João Marcos Costa
2026-04-24 15:40 ` [OE-core] " Quentin Schulz
2026-04-27 8:38 ` Joao Marcos Costa
2026-04-27 10:45 ` Quentin Schulz [this message]
2026-04-27 10:53 ` Joao Marcos Costa
2026-04-27 8:49 ` ChenQi
2026-04-27 9:30 ` Joao Marcos Costa
2026-04-27 10:05 ` ChenQi
2026-04-27 11:01 ` Joao Marcos Costa
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=f3192818-b214-4733-82e7-4799de9f2bc6@cherry.de \
--to=quentin.schulz@cherry.de \
--cc=joaomarcos.costa@bootlin.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=thomas.petazzoni@bootlin.com \
/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