diff mbox series

[V2] gstreamer1.0-plugins-bad: disble vulkan when x11/wayland not enabled

Message ID 20260508022311.3112415-1-changqing.li@windriver.com
State Under Review
Headers show
Series [V2] gstreamer1.0-plugins-bad: disble vulkan when x11/wayland not enabled | expand

Commit Message

Changqing Li May 8, 2026, 2:23 a.m. UTC
When vulkan is enabled in DISTRO_FEATURES without x11 or wayland,
do_configure will failed with error:
gst-libs/gst/vulkan/meson.build:311:4: ERROR: Problem encountered: No Windowing system found. vulkansink will not work

disable vulkan from PACKAGECONFIG when x11 and wayland is not enabled

Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
 .../gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb             | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Jose Quaresma May 8, 2026, 2:40 p.m. UTC | #1
Hi Changqing,

Changqing Li via lists.openembedded.org <changqing.li=
windriver.com@lists.openembedded.org> escreveu (sexta, 8/05/2026 à(s)
03:23):

> When vulkan is enabled in DISTRO_FEATURES without x11 or wayland,
> do_configure will failed with error:
> gst-libs/gst/vulkan/meson.build:311:4: ERROR: Problem encountered: No
> Windowing system found. vulkansink will not work
>
> disable vulkan from PACKAGECONFIG when x11 and wayland is not enabled
>
> Signed-off-by: Changqing Li <changqing.li@windriver.com>
> ---
>  .../gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb             | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> 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..c7f081e25b 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
> @@ -21,10 +21,13 @@ DEPENDS += "gstreamer1.0-plugins-base"
>
>  inherit gobject-introspection
>
> +PACKAGECONFIG_VULKAN ?= "${@bb.utils.filter('DISTRO_FEATURES', 'vulkan',
> d)}"
> +
>  PACKAGECONFIG ??= " \
>      ${GSTREAMER_ORC} \
> +    ${@'${PACKAGECONFIG_VULKAN}' if (bb.utils.filter('DISTRO_FEATURES',
> 'x11 wayland', d) != '') else ''} \
>

that is a little more difficult to understand than usual, why don't we just
use the bb.utils.contains?

${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', '${
PACKAGECONFIG_VULKAN}', '', d)

It seems to me that this would work.

Or even the following, dropping the PACKAGECONFIG_VULKAN but then it loses
some readability again.

${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland',
'${@bb.utils.filter('DISTRO_FEATURES', 'vulkan', d)}', '', d)

Jose


>      ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}
> \
> -    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan x11', d)} \
> +    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb x11', d)} \
>      ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}
> \
>      ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
>      bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \
> --
> 2.34.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#236630):
> https://lists.openembedded.org/g/openembedded-core/message/236630
> Mute This Topic: https://lists.openembedded.org/mt/119208574/5052612
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> quaresma.jose@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Quentin Schulz May 8, 2026, 2:53 p.m. UTC | #2
Hi Changqing,

On 5/8/26 4:23 AM, Changqing Li via lists.openembedded.org wrote:
> When vulkan is enabled in DISTRO_FEATURES without x11 or wayland,
> do_configure will failed with error:
> gst-libs/gst/vulkan/meson.build:311:4: ERROR: Problem encountered: No Windowing system found. vulkansink will not work
> 
> disable vulkan from PACKAGECONFIG when x11 and wayland is not enabled
> 
> Signed-off-by: Changqing Li <changqing.li@windriver.com>
> ---
>   .../gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb             | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
> 
> 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..c7f081e25b 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
> @@ -21,10 +21,13 @@ DEPENDS += "gstreamer1.0-plugins-base"
>   
>   inherit gobject-introspection
>   
> +PACKAGECONFIG_VULKAN ?= "${@bb.utils.filter('DISTRO_FEATURES', 'vulkan', d)}"
> +
>   PACKAGECONFIG ??= " \
>       ${GSTREAMER_ORC} \
> +    ${@'${PACKAGECONFIG_VULKAN}' if (bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d) != '') else ''} \
>       ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
> -    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan x11', d)} \
> +    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb x11', d)} \
>       ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
>       ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
>       bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \
> 

Should we really build gstreamer-1.0-plugins-bad without vulkan support 
even if DISTRO_FEATURES contains it? Seems odd to me.

If we can fail the build, then we could probably do:

ANY_OF_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 
'vulkan', 'x11 wayland', '', d)}"

Otherwise if this isn't desired, we could go for:

  # Vulkan requires a windowing system
PACKAGECONFIG_VULKAN = "${@bb.utils.contains_any('DISTRO_FEATURES', 'x11 
wayland', 'vulkan', '', d)}"

PACKAGECONFIG ??= "\
     ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 
'${PACKAGECONFIG_VULKAN}', '', d)}"

Cheers,
Quentin
Changqing Li May 9, 2026, 3:02 a.m. UTC | #3
On 5/8/26 22:40, Jose Quaresma wrote:
> **
> *CAUTION: This email comes from a non Wind River email account!*
> Do not click links or open attachments unless you recognize the sender 
> and know the content is safe.
> Hi Changqing,
>
> Changqing Li via lists.openembedded.org 
> <https://urldefense.com/v3/__http://lists.openembedded.org__;!!AjveYdw8EvQ!YccBDNYEXpz_MPACKZrYS72DaMJ3JFmzaPEFpg61gHblIUtXPjN5cX8_yJyXzKOahC1kLOSSX994Ry4PXOaXF1QVVTf7$> 
> <changqing.li 
> <https://urldefense.com/v3/__http://changqing.li__;!!AjveYdw8EvQ!YccBDNYEXpz_MPACKZrYS72DaMJ3JFmzaPEFpg61gHblIUtXPjN5cX8_yJyXzKOahC1kLOSSX994Ry4PXOaXF_bL7xxg$>=windriver.com@lists.openembedded.org> 
> escreveu (sexta, 8/05/2026 à(s) 03:23):
>
>     When vulkan is enabled in DISTRO_FEATURES without x11 or wayland,
>     do_configure will failed with error:
>     gst-libs/gst/vulkan/meson.build
>     <https://urldefense.com/v3/__http://meson.build__;!!AjveYdw8EvQ!YccBDNYEXpz_MPACKZrYS72DaMJ3JFmzaPEFpg61gHblIUtXPjN5cX8_yJyXzKOahC1kLOSSX994Ry4PXOaXF42PxkLg$>:311:4:
>     ERROR: Problem encountered: No Windowing system found. vulkansink
>     will not work
>
>     disable vulkan from PACKAGECONFIG when x11 and wayland is not enabled
>
>     Signed-off-by: Changqing Li <changqing.li@windriver.com>
>     ---
>      .../gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb
>     <https://urldefense.com/v3/__http://gstreamer1.0-plugins-bad_1.28.2.bb__;!!AjveYdw8EvQ!YccBDNYEXpz_MPACKZrYS72DaMJ3JFmzaPEFpg61gHblIUtXPjN5cX8_yJyXzKOahC1kLOSSX994Ry4PXOaXF-7hh1lL$>
>                | 5 ++++-
>      1 file changed, 4 insertions(+), 1 deletion(-)
>
>     diff --git
>     a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb
>     <https://urldefense.com/v3/__http://gstreamer1.0-plugins-bad_1.28.2.bb__;!!AjveYdw8EvQ!YccBDNYEXpz_MPACKZrYS72DaMJ3JFmzaPEFpg61gHblIUtXPjN5cX8_yJyXzKOahC1kLOSSX994Ry4PXOaXF-7hh1lL$>
>     b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb
>     <https://urldefense.com/v3/__http://gstreamer1.0-plugins-bad_1.28.2.bb__;!!AjveYdw8EvQ!YccBDNYEXpz_MPACKZrYS72DaMJ3JFmzaPEFpg61gHblIUtXPjN5cX8_yJyXzKOahC1kLOSSX994Ry4PXOaXF-7hh1lL$>
>     index cdf3a20dff..c7f081e25b 100644
>     ---
>     a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb
>     <https://urldefense.com/v3/__http://gstreamer1.0-plugins-bad_1.28.2.bb__;!!AjveYdw8EvQ!YccBDNYEXpz_MPACKZrYS72DaMJ3JFmzaPEFpg61gHblIUtXPjN5cX8_yJyXzKOahC1kLOSSX994Ry4PXOaXF-7hh1lL$>
>     +++
>     b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb
>     <https://urldefense.com/v3/__http://gstreamer1.0-plugins-bad_1.28.2.bb__;!!AjveYdw8EvQ!YccBDNYEXpz_MPACKZrYS72DaMJ3JFmzaPEFpg61gHblIUtXPjN5cX8_yJyXzKOahC1kLOSSX994Ry4PXOaXF-7hh1lL$>
>     @@ -21,10 +21,13 @@ DEPENDS += "gstreamer1.0-plugins-base"
>
>      inherit gobject-introspection
>
>     +PACKAGECONFIG_VULKAN ?= "${@bb.utils.filter('DISTRO_FEATURES',
>     'vulkan', d)}"
>     +
>      PACKAGECONFIG ??= " \
>          ${GSTREAMER_ORC} \
>     +    ${@'${PACKAGECONFIG_VULKAN}' if
>     (bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d) != '') else
>     ''} \
>
>
> that is a little more difficult to understand than usual, why don't we 
> just use the bb.utils.contains?
>
> ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 
> '${PACKAGECONFIG_VULKAN}', '', d)
>
> It seems to me that this would work.
>
> Or even the following, dropping the PACKAGECONFIG_VULKAN but then it 
> loses some readability again.
>
> ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 
> '${@bb.utils.filter('DISTRO_FEATURES', 'vulkan', d)}', '', d)

I don't use bb.utils.contains because we need any of x11, wayland, not 
all of them.

I changed to use contains_any to make things more simple in V3

Thanks

//changqing

>
> Jose
>
>          ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez',
>     '', d)} \
>     -    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan x11',
>     d)} \
>     +    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb x11', d)} \
>          ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland',
>     '', d)} \
>          ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
>          bz2 closedcaption curl dash dtls hls openssl sbc
>     smoothstreaming \
>     -- 
>     2.34.1
>
>
>     -=-=-=-=-=-=-=-=-=-=-=-
>     Links: You receive all messages sent to this group.
>     View/Reply Online (#236630):
>     https://lists.openembedded.org/g/openembedded-core/message/236630
>     <https://urldefense.com/v3/__https://lists.openembedded.org/g/openembedded-core/message/236630__;!!AjveYdw8EvQ!YccBDNYEXpz_MPACKZrYS72DaMJ3JFmzaPEFpg61gHblIUtXPjN5cX8_yJyXzKOahC1kLOSSX994Ry4PXOaXF7cjX7gU$>
>     Mute This Topic:
>     https://lists.openembedded.org/mt/119208574/5052612
>     <https://urldefense.com/v3/__https://lists.openembedded.org/mt/119208574/5052612__;!!AjveYdw8EvQ!YccBDNYEXpz_MPACKZrYS72DaMJ3JFmzaPEFpg61gHblIUtXPjN5cX8_yJyXzKOahC1kLOSSX994Ry4PXOaXF9IH9URn$>
>     Group Owner: openembedded-core+owner@lists.openembedded.org
>     <mailto:openembedded-core%2Bowner@lists.openembedded.org>
>     Unsubscribe:
>     https://lists.openembedded.org/g/openembedded-core/unsub
>     <https://urldefense.com/v3/__https://lists.openembedded.org/g/openembedded-core/unsub__;!!AjveYdw8EvQ!YccBDNYEXpz_MPACKZrYS72DaMJ3JFmzaPEFpg61gHblIUtXPjN5cX8_yJyXzKOahC1kLOSSX994Ry4PXOaXF3LviIFg$>
>     [quaresma.jose@gmail.com]
>     -=-=-=-=-=-=-=-=-=-=-=-
>
>
>
> -- 
> Best regards,
>
> José Quaresma
Changqing Li May 9, 2026, 4:59 a.m. UTC | #4
On 5/8/26 22:53, Quentin Schulz wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender 
> and know the content is safe.
>
> Hi Changqing,
>
> On 5/8/26 4:23 AM, Changqing Li via lists.openembedded.org wrote:
>> When vulkan is enabled in DISTRO_FEATURES without x11 or wayland,
>> do_configure will failed with error:
>> gst-libs/gst/vulkan/meson.build:311:4: ERROR: Problem encountered: No 
>> Windowing system found. vulkansink will not work
>>
>> disable vulkan from PACKAGECONFIG when x11 and wayland is not enabled
>>
>> Signed-off-by: Changqing Li <changqing.li@windriver.com>
>> ---
>>   .../gstreamer/gstreamer1.0-plugins-bad_1.28.2.bb             | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> 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..c7f081e25b 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
>> @@ -21,10 +21,13 @@ DEPENDS += "gstreamer1.0-plugins-base"
>>
>>   inherit gobject-introspection
>>
>> +PACKAGECONFIG_VULKAN ?= "${@bb.utils.filter('DISTRO_FEATURES', 
>> 'vulkan', d)}"
>> +
>>   PACKAGECONFIG ??= " \
>>       ${GSTREAMER_ORC} \
>> +    ${@'${PACKAGECONFIG_VULKAN}' if 
>> (bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d) != '') else ''} \
>>       ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', 
>> '', d)} \
>> -    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan x11', d)} \
>> +    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb x11', d)} \
>>       ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', 
>> '', d)} \
>>       ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
>>       bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \
>>
>
> Should we really build gstreamer-1.0-plugins-bad without vulkan support
> even if DISTRO_FEATURES contains it? Seems odd to me.
>
> If we can fail the build, then we could probably do:
>
> ANY_OF_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES',
> 'vulkan', 'x11 wayland', '', d)}"
>
I did like this in the first version, see subject: 
[gstreamer1.0-plugins-bad: add ANY_OF_DISTRO_FEATURES]
> Otherwise if this isn't desired, we could go for:
>
>  # Vulkan requires a windowing system
> PACKAGECONFIG_VULKAN = "${@bb.utils.contains_any('DISTRO_FEATURES', 'x11
> wayland', 'vulkan', '', d)}"
>
> PACKAGECONFIG ??= "\
>     ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan',
> '${PACKAGECONFIG_VULKAN}', '', d)}"
>
This seems more easy to understand,   change like this in V3

Thanks

//Changqing

> Cheers,
> Quentin
diff mbox series

Patch

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..c7f081e25b 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
@@ -21,10 +21,13 @@  DEPENDS += "gstreamer1.0-plugins-base"
 
 inherit gobject-introspection
 
+PACKAGECONFIG_VULKAN ?= "${@bb.utils.filter('DISTRO_FEATURES', 'vulkan', d)}"
+
 PACKAGECONFIG ??= " \
     ${GSTREAMER_ORC} \
+    ${@'${PACKAGECONFIG_VULKAN}' if (bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d) != '') else ''} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan x11', d)} \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'directfb x11', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \
     bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \