diff mbox series

[v2,1/3] meta: simplify conditional operations with bb.utils.filter

Message ID 20260427130846.96013-2-joaomarcos.costa@bootlin.com
State Accepted, archived
Commit f38320c9646a90aca88e119e692136594f75230c
Headers show
Series Simplify conditional operations with bb.utils.filter | expand

Commit Message

Joao Marcos Costa April 27, 2026, 1:08 p.m. UTC
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(-)

Comments

Quentin Schulz April 27, 2026, 2:13 p.m. UTC | #1
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
diff mbox series

Patch

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 \