* [PATCH v2 0/3] Simplify conditional operations with bb.utils.filter
@ 2026-04-27 13:08 João Marcos Costa
2026-04-27 13:08 ` [PATCH v2 1/3] meta: simplify " João Marcos Costa
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: João Marcos Costa @ 2026-04-27 13:08 UTC (permalink / raw)
To: openembedded-core
Cc: thomas.petazzoni, quentin.schulz, qi.chen, João Marcos Costa
Hello,
This patch series applies overall the same change, but to specific scopes:
the recipes, insane.bbclass, and a couple .inc files. The idea here is to
address the comments and concerns raised in v1.
Considering now I'm providing separate patches, the review process can be
focused on points where the debate is still ongoing, while the rest (i.e., the
recipes) can be picked.
Changes since v1:
- v1 was actually one single patch providing all of the changes
- the .strip() workaround was not provided in feature-arm-vfp.inc.
João Marcos Costa (3):
meta: simplify conditional operations with bb.utils.filter
classes-global: insane.bbclass : simplify conditional operations with bb.utils.filter
machine: include: arm: simplify conditional operations with bb.utils.filter
meta/classes-global/insane.bbclass | 2 +-
meta/conf/machine/include/arm/feature-arm-neon.inc | 8 ++++----
meta/conf/machine/include/arm/feature-arm-vfp.inc | 8 ++++----
meta/recipes-connectivity/connman/connman_2.0.bb | 2 +-
meta/recipes-core/coreutils/coreutils_9.10.bb | 2 +-
meta/recipes-core/ovmf/ovmf_git.bb | 2 +-
meta/recipes-extended/at/at_3.2.5.bb | 2 +-
meta/recipes-graphics/libglvnd/libglvnd_1.7.0.bb | 2 +-
meta/recipes-graphics/waffle/waffle_1.8.1.bb | 2 +-
.../gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb | 2 +-
10 files changed, 16 insertions(+), 16 deletions(-)
--
2.47.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/3] meta: simplify conditional operations with bb.utils.filter
2026-04-27 13:08 [PATCH v2 0/3] Simplify conditional operations with bb.utils.filter João Marcos Costa
@ 2026-04-27 13:08 ` João Marcos Costa
2026-04-27 14:13 ` Quentin Schulz
2026-04-27 13:08 ` [PATCH v2 2/3] classes-global: insane.bbclass : " João Marcos Costa
2026-04-27 13:08 ` [PATCH v2 3/3] machine: include: arm: " João Marcos Costa
2 siblings, 1 reply; 8+ messages in thread
From: João Marcos Costa @ 2026-04-27 13:08 UTC (permalink / raw)
To: openembedded-core
Cc: thomas.petazzoni, quentin.schulz, qi.chen, João Marcos Costa
Some recipes 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>
---
meta/recipes-connectivity/connman/connman_2.0.bb | 2 +-
meta/recipes-core/coreutils/coreutils_9.10.bb | 2 +-
meta/recipes-core/ovmf/ovmf_git.bb | 2 +-
meta/recipes-extended/at/at_3.2.5.bb | 2 +-
meta/recipes-graphics/libglvnd/libglvnd_1.7.0.bb | 2 +-
meta/recipes-graphics/waffle/waffle_1.8.1.bb | 2 +-
.../gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/meta/recipes-connectivity/connman/connman_2.0.bb b/meta/recipes-connectivity/connman/connman_2.0.bb
index 6f7093301b..e9873f3163 100644
--- a/meta/recipes-connectivity/connman/connman_2.0.bb
+++ b/meta/recipes-connectivity/connman/connman_2.0.bb
@@ -169,7 +169,7 @@ FILES:${PN}-tools = "${bindir}/wispr"
RDEPENDS:${PN}-tools = "${PN}"
FILES:${PN}-tests = "${bindir}/*-test"
-RDEPENDS:${PN}-tests = "${@bb.utils.contains('PACKAGECONFIG', 'iptables', 'iptables', '', d)}"
+RDEPENDS:${PN}-tests = "${@bb.utils.filter('PACKAGECONFIG', 'iptables', d)}"
FILES:${PN}-client = "${bindir}/connmanctl"
RDEPENDS:${PN}-client = "${PN}"
diff --git a/meta/recipes-core/coreutils/coreutils_9.10.bb b/meta/recipes-core/coreutils/coreutils_9.10.bb
index 984c5b5292..744d930272 100644
--- a/meta/recipes-core/coreutils/coreutils_9.10.bb
+++ b/meta/recipes-core/coreutils/coreutils_9.10.bb
@@ -222,6 +222,6 @@ do_install_ptest:append:libc-musl () {
}
RDEPENDS:${PN}-ptest += "xz \
- ${@bb.utils.contains('PACKAGECONFIG', 'acl', 'acl', '', d)} \
+ ${@bb.utils.filter('PACKAGECONFIG', 'acl', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'xattr', 'attr', '', d)}"
FILES:${PN}-ptest += "${bindir}/getlimits"
diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
index d731bca7f2..38d5d090b4 100644
--- a/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/meta/recipes-core/ovmf/ovmf_git.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://OvmfPkg/License.txt;md5=06357ddc23f46577c2aeaeaf7b776
# compiling OVMF twice, so it is disabled by default. Distros
# may change that default.
PACKAGECONFIG ??= ""
-PACKAGECONFIG += "${@bb.utils.contains('MACHINE_FEATURES', 'tpm', 'tpm', '', d)}"
+PACKAGECONFIG += "${@bb.utils.filter('MACHINE_FEATURES', 'tpm', d)}"
PACKAGECONFIG += "${@bb.utils.contains('MACHINE_FEATURES', 'tpm2', 'tpm', '', d)}"
PACKAGECONFIG[debug] = ",,,"
PACKAGECONFIG[secureboot] = ",,,"
diff --git a/meta/recipes-extended/at/at_3.2.5.bb b/meta/recipes-extended/at/at_3.2.5.bb
index 112d1c4adc..ee485f67ec 100644
--- a/meta/recipes-extended/at/at_3.2.5.bb
+++ b/meta/recipes-extended/at/at_3.2.5.bb
@@ -9,7 +9,7 @@ DEPENDS = "flex flex-native bison-native \
${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
PACKAGECONFIG ?= "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
"
PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux,"
diff --git a/meta/recipes-graphics/libglvnd/libglvnd_1.7.0.bb b/meta/recipes-graphics/libglvnd/libglvnd_1.7.0.bb
index 18eeaa5523..c76763f811 100644
--- a/meta/recipes-graphics/libglvnd/libglvnd_1.7.0.bb
+++ b/meta/recipes-graphics/libglvnd/libglvnd_1.7.0.bb
@@ -14,7 +14,7 @@ REQUIRED_DISTRO_FEATURES = "opengl glvnd"
inherit meson pkgconfig features_check
PACKAGECONFIG ?= "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'egl gles1 gles2', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'glx', '', d)} \
"
diff --git a/meta/recipes-graphics/waffle/waffle_1.8.1.bb b/meta/recipes-graphics/waffle/waffle_1.8.1.bb
index aefa0069cf..5d993cf254 100644
--- a/meta/recipes-graphics/waffle/waffle_1.8.1.bb
+++ b/meta/recipes-graphics/waffle/waffle_1.8.1.bb
@@ -21,7 +21,7 @@ DEPENDS:append = " python3"
# This should be overridden per-machine to reflect the capabilities of the GL
# stack.
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11-egl', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gbm surfaceless-egl', '', d)} \
"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb
index cdf3a20dff..9945e79bf7 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb
@@ -25,7 +25,7 @@ PACKAGECONFIG ??= " \
${GSTREAMER_ORC} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan x11', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \
sndfile ttml uvch264 webp analytics \
--
2.47.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/3] classes-global: insane.bbclass : simplify conditional operations with bb.utils.filter
2026-04-27 13:08 [PATCH v2 0/3] Simplify conditional operations with bb.utils.filter João Marcos Costa
2026-04-27 13:08 ` [PATCH v2 1/3] meta: simplify " João Marcos Costa
@ 2026-04-27 13:08 ` João Marcos Costa
2026-04-27 14:15 ` Quentin Schulz
2026-04-27 13:08 ` [PATCH v2 3/3] machine: include: arm: " João Marcos Costa
2 siblings, 1 reply; 8+ messages in thread
From: João Marcos Costa @ 2026-04-27 13:08 UTC (permalink / raw)
To: openembedded-core
Cc: thomas.petazzoni, quentin.schulz, qi.chen, João Marcos Costa
The append override on ERROR_QA uses 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>
---
meta/classes-global/insane.bbclass | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/classes-global/insane.bbclass b/meta/classes-global/insane.bbclass
index feddfe0335..04700be71c 100644
--- a/meta/classes-global/insane.bbclass
+++ b/meta/classes-global/insane.bbclass
@@ -46,7 +46,7 @@ ERROR_QA ?= "\
${CHECKLAYER_REQUIRED_TESTS}"
# Add usrmerge QA check based on distro feature
-ERROR_QA:append = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', ' usrmerge', '', d)}"
+ERROR_QA:append = " ${@bb.utils.filter('DISTRO_FEATURES', 'usrmerge', d)}"
WARN_QA:append:layer-core = " missing-metadata missing-maintainer"
FAKEROOT_QA = "host-user-contaminated"
--
2.47.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 3/3] machine: include: arm: simplify conditional operations with bb.utils.filter
2026-04-27 13:08 [PATCH v2 0/3] Simplify conditional operations with bb.utils.filter João Marcos Costa
2026-04-27 13:08 ` [PATCH v2 1/3] meta: simplify " João Marcos Costa
2026-04-27 13:08 ` [PATCH v2 2/3] classes-global: insane.bbclass : " João Marcos Costa
@ 2026-04-27 13:08 ` João Marcos Costa
2026-04-27 14:21 ` Quentin Schulz
2026-05-04 8:36 ` [OE-core] " Richard Purdie
2 siblings, 2 replies; 8+ messages in thread
From: João Marcos Costa @ 2026-04-27 13:08 UTC (permalink / raw)
To: openembedded-core
Cc: thomas.petazzoni, quentin.schulz, qi.chen, João Marcos Costa
Some 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)".
bb.utils.filter() does not return the string with a leading space, and
this is handled by a leading space outside of the helper. This
workaround, however, has its limitations: the leading space is always
added. To avoid any potential issues, use .strip() when dereferencing
TUNE_CCARGS_MFPU in the if statements.
Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
---
meta/conf/machine/include/arm/feature-arm-neon.inc | 8 ++++----
meta/conf/machine/include/arm/feature-arm-vfp.inc | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/meta/conf/machine/include/arm/feature-arm-neon.inc b/meta/conf/machine/include/arm/feature-arm-neon.inc
index 174b9b9f2a..2ec354bfeb 100644
--- a/meta/conf/machine/include/arm/feature-arm-neon.inc
+++ b/meta/conf/machine/include/arm/feature-arm-neon.inc
@@ -5,16 +5,16 @@
# 'vfp', -mfloat-abi parameter and 'hf' suffix is implemented in feature-arm-vfp.inc
TUNEVALID[neon] = "Enable Neon SIMD accelerator unit."
-TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'neon', ' neon', '', d)}"
+TUNE_CCARGS_MFPU .= " ${@bb.utils.filter('TUNE_FEATURES', 'neon', d)}"
TUNEVALID[vfpv3d16] = "Enable Vector Floating Point Version 3 with 16 registers (vfpv3-d16) unit."
-TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', ' vfpv3-d16', '', d)}"
+TUNE_CCARGS_MFPU .= " ${@bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', ' vfpv3-d16', '', d)}"
TUNEVALID[vfpv3] = "Enable Vector Floating Point Version 3 with 32 registers (vfpv3) unit."
-TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3', ' vfpv3', '' , d)}"
+TUNE_CCARGS_MFPU .= " ${@bb.utils.filter('TUNE_FEATURES', 'vfpv3', d)}"
TUNEVALID[vfpv4] = "Enable Vector Floating Point Version 4 (vfpv4) unit."
-TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv4', ' vfpv4', '', d)}"
+TUNE_CCARGS_MFPU .= " ${@bb.utils.filter('TUNE_FEATURES', 'vfpv4', d)}"
TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', [ 'vfpv4', 'neon' ], ' neon-vfpv4', '', d)}"
TUNEVALID[vfpv4d16] = "Enable Vector Floating Point Version 4 with 16 registers (vfpv4-d16) unit."
diff --git a/meta/conf/machine/include/arm/feature-arm-vfp.inc b/meta/conf/machine/include/arm/feature-arm-vfp.inc
index d020100daa..22cd5e1767 100644
--- a/meta/conf/machine/include/arm/feature-arm-vfp.inc
+++ b/meta/conf/machine/include/arm/feature-arm-vfp.inc
@@ -3,14 +3,14 @@
# and this .inc file is included from armv5
TUNEVALID[vfp] = "Enable Vector Floating Point (vfp) unit."
-TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfp', ' vfp', '', d)}"
+TUNE_CCARGS_MFPU .= " ${@bb.utils.filter('TUNE_FEATURES', 'vfp', d)}"
# simd is special, we don't pass this to the -mfpu, it's implied
-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 ''}"
TUNEVALID[callconvention-hard] = "Enable EABI hard float call convention, requires VFP."
-TUNE_CCARGS_MFLOAT = "${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d) if (d.getVar('TUNE_CCARGS_MFPU') != '' or bb.utils.contains('TUNE_FEATURES', 'simd', True, False, d)) else '' }"
+TUNE_CCARGS_MFLOAT = "${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d) if (d.getVar('TUNE_CCARGS_MFPU').strip() != '' or bb.utils.contains('TUNE_FEATURES', 'simd', True, False, d)) else '' }"
TUNE_CCARGS .= "${@ ' -mfloat-abi=${TUNE_CCARGS_MFLOAT}' if (d.getVar('TUNE_CCARGS_MFLOAT') != '') else ''}"
ARMPKGSFX_EABI = "${@ 'hf' if (d.getVar('TUNE_CCARGS_MFLOAT') == 'hard') else ''}"
--
2.47.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 1/3] meta: simplify conditional operations with bb.utils.filter
2026-04-27 13:08 ` [PATCH v2 1/3] meta: simplify " João Marcos Costa
@ 2026-04-27 14:13 ` Quentin Schulz
0 siblings, 0 replies; 8+ messages in thread
From: Quentin Schulz @ 2026-04-27 14:13 UTC (permalink / raw)
To: João Marcos Costa, openembedded-core; +Cc: thomas.petazzoni, qi.chen
Hi João,
On 4/27/26 3:08 PM, João Marcos Costa wrote:
> Some recipes 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>
> ---
> meta/recipes-connectivity/connman/connman_2.0.bb | 2 +-
> meta/recipes-core/coreutils/coreutils_9.10.bb | 2 +-
> meta/recipes-core/ovmf/ovmf_git.bb | 2 +-
> meta/recipes-extended/at/at_3.2.5.bb | 2 +-
> meta/recipes-graphics/libglvnd/libglvnd_1.7.0.bb | 2 +-
> meta/recipes-graphics/waffle/waffle_1.8.1.bb | 2 +-
> .../gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb | 2 +-
> 7 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/meta/recipes-connectivity/connman/connman_2.0.bb b/meta/recipes-connectivity/connman/connman_2.0.bb
> index 6f7093301b..e9873f3163 100644
> --- a/meta/recipes-connectivity/connman/connman_2.0.bb
> +++ b/meta/recipes-connectivity/connman/connman_2.0.bb
> @@ -169,7 +169,7 @@ FILES:${PN}-tools = "${bindir}/wispr"
> RDEPENDS:${PN}-tools = "${PN}"
>
> FILES:${PN}-tests = "${bindir}/*-test"
> -RDEPENDS:${PN}-tests = "${@bb.utils.contains('PACKAGECONFIG', 'iptables', 'iptables', '', d)}"
> +RDEPENDS:${PN}-tests = "${@bb.utils.filter('PACKAGECONFIG', 'iptables', d)}"
>
> FILES:${PN}-client = "${bindir}/connmanctl"
> RDEPENDS:${PN}-client = "${PN}"
> diff --git a/meta/recipes-core/coreutils/coreutils_9.10.bb b/meta/recipes-core/coreutils/coreutils_9.10.bb
> index 984c5b5292..744d930272 100644
> --- a/meta/recipes-core/coreutils/coreutils_9.10.bb
> +++ b/meta/recipes-core/coreutils/coreutils_9.10.bb
> @@ -222,6 +222,6 @@ do_install_ptest:append:libc-musl () {
> }
>
> RDEPENDS:${PN}-ptest += "xz \
> - ${@bb.utils.contains('PACKAGECONFIG', 'acl', 'acl', '', d)} \
> + ${@bb.utils.filter('PACKAGECONFIG', 'acl', d)} \
> ${@bb.utils.contains('PACKAGECONFIG', 'xattr', 'attr', '', d)}"
> FILES:${PN}-ptest += "${bindir}/getlimits"
> diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
> index d731bca7f2..38d5d090b4 100644
> --- a/meta/recipes-core/ovmf/ovmf_git.bb
> +++ b/meta/recipes-core/ovmf/ovmf_git.bb
> @@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://OvmfPkg/License.txt;md5=06357ddc23f46577c2aeaeaf7b776
> # compiling OVMF twice, so it is disabled by default. Distros
> # may change that default.
> PACKAGECONFIG ??= ""
> -PACKAGECONFIG += "${@bb.utils.contains('MACHINE_FEATURES', 'tpm', 'tpm', '', d)}"
> +PACKAGECONFIG += "${@bb.utils.filter('MACHINE_FEATURES', 'tpm', d)}"
> PACKAGECONFIG += "${@bb.utils.contains('MACHINE_FEATURES', 'tpm2', 'tpm', '', d)}"
I believe we could actually use
bb.utils.contains_any('MACHINE_FEATURES', 'tpm tpm2', 'tpm', '', d)
to merge the two tpm MACHINE_FEATURES that enable the same PACKAGECONFIG.
It also irks me that we're using += here instead of
PACKAGECONFIG ?= "${@bb.utils.contains_any('MACHINE_FEATURES', 'tpm
tpm2', 'tpm', '', d)}"
(or ??=), but maybe that's fine (or in a separate commit anyway).
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Thanks!
Quentin
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/3] classes-global: insane.bbclass : simplify conditional operations with bb.utils.filter
2026-04-27 13:08 ` [PATCH v2 2/3] classes-global: insane.bbclass : " João Marcos Costa
@ 2026-04-27 14:15 ` Quentin Schulz
0 siblings, 0 replies; 8+ messages in thread
From: Quentin Schulz @ 2026-04-27 14:15 UTC (permalink / raw)
To: João Marcos Costa, openembedded-core; +Cc: thomas.petazzoni, qi.chen
Hi João,
On 4/27/26 3:08 PM, João Marcos Costa wrote:
> The append override on ERROR_QA uses 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)".
>
*Technically*, you are replacing
bb.utils.contains(A, 'a', ' a', '', d)
with
bb.utils.filter(A, 'a', d)
You could have also said that you checked that ERROR_QA doesn't care
about spurious whitespaces so that is a fine change.
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Thanks!
Quentin
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 3/3] machine: include: arm: simplify conditional operations with bb.utils.filter
2026-04-27 13:08 ` [PATCH v2 3/3] machine: include: arm: " João Marcos Costa
@ 2026-04-27 14:21 ` Quentin Schulz
2026-05-04 8:36 ` [OE-core] " Richard Purdie
1 sibling, 0 replies; 8+ messages in thread
From: Quentin Schulz @ 2026-04-27 14:21 UTC (permalink / raw)
To: João Marcos Costa, openembedded-core; +Cc: thomas.petazzoni, qi.chen
Hi João,
On 4/27/26 3:08 PM, João Marcos Costa wrote:
> Some 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)".
>
> bb.utils.filter() does not return the string with a leading space, and
> this is handled by a leading space outside of the helper. This
> workaround, however, has its limitations: the leading space is always
> added. To avoid any potential issues, use .strip() when dereferencing
> TUNE_CCARGS_MFPU in the if statements.
>
I'm not sure this is worth it as this pattern means next time we add a
new tunefeatures we'll likely follow the same pattern. This means that
even though the existing machines won't set this new tunefeature,
they'll likely rebuild a few things because TUNE_CCARGS_MFPU will have
an additional space in it (but maybe BitBake parsing is smart enough to
realize that only
TUNE_CCARGS, ARMPKGSFX_FPU and TUNE_CCARGS_MFLOAT use it and they won't
change if there's only one space difference, so:
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Thanks!
Quentin
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [OE-core] [PATCH v2 3/3] machine: include: arm: simplify conditional operations with bb.utils.filter
2026-04-27 13:08 ` [PATCH v2 3/3] machine: include: arm: " João Marcos Costa
2026-04-27 14:21 ` Quentin Schulz
@ 2026-05-04 8:36 ` Richard Purdie
1 sibling, 0 replies; 8+ messages in thread
From: Richard Purdie @ 2026-05-04 8:36 UTC (permalink / raw)
To: joaomarcos.costa, openembedded-core
Cc: thomas.petazzoni, quentin.schulz, qi.chen
On Mon, 2026-04-27 at 15:08 +0200, Joao Marcos Costa via lists.openembedded.org wrote:
> Some 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)".
>
> bb.utils.filter() does not return the string with a leading space, and
> this is handled by a leading space outside of the helper. This
> workaround, however, has its limitations: the leading space is always
> added. To avoid any potential issues, use .strip() when dereferencing
> TUNE_CCARGS_MFPU in the if statements.
>
> Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
> ---
> meta/conf/machine/include/arm/feature-arm-neon.inc | 8 ++++----
> meta/conf/machine/include/arm/feature-arm-vfp.inc | 8 ++++----
> 2 files changed, 8 insertions(+), 8 deletions(-)
We've taken the other patches but not this one since we don't think
this one is a net gain in readability or usability and there is no
pressing reason we have to change.
Cheers,
Richard
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-05-04 8:36 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-27 13:08 [PATCH v2 0/3] Simplify conditional operations with bb.utils.filter João Marcos Costa
2026-04-27 13:08 ` [PATCH v2 1/3] meta: simplify " João Marcos Costa
2026-04-27 14:13 ` Quentin Schulz
2026-04-27 13:08 ` [PATCH v2 2/3] classes-global: insane.bbclass : " João Marcos Costa
2026-04-27 14:15 ` Quentin Schulz
2026-04-27 13:08 ` [PATCH v2 3/3] machine: include: arm: " João Marcos Costa
2026-04-27 14:21 ` Quentin Schulz
2026-05-04 8:36 ` [OE-core] " Richard Purdie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox