package/ivi-homescreen: fix dependencies for gstreamer plugin

The gstreamer plugin select the EGL backend of gst1-plugins-base, but
forgot to propagate all of its dependencies, notably the _HAS_API
condition, causing unmet dependencies warnings (unfortunately, not
errors), such as;

    $ KCONFIG_SEED=0x597D22A8 make randconfig
    WARNING: unmet direct dependencies detected for BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL
      Depends on [n]: BR2_PACKAGE_GSTREAMER1 [=y] && BR2_PACKAGE_GST1_PLUGINS_BASE [=y] && BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL [=y] && BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API [=n] && BR2_PACKAGE_HAS_LIBEGL [=y]
      Selected by [y]:
      - BR2_PACKAGE_IVI_HOMESCREEN_GSTREAMER_EGL_PLUGIN [=y] && BR2_PACKAGE_IVI_HOMESCREEN [=y] && BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS [=y] && BR2_PACKAGE_HAS_LIBEGL [=y]

We can't select _HAS_API, because it is a symbol that represents a
capability provided by other features of gst1-plugins-base; it's
semantically like a virtual package: we can't select it, we can only
depend on it.

Add this dependency to fix this situation.

This however causes circular (recursive) dependencies errors:

    package/gstreamer1/gst1-plugins-base/Config.in:135:error: recursive dependency detected!
    package/gstreamer1/gst1-plugins-base/Config.in:135:     symbol BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL is selected by BR2_PACKAGE_IVI_HOMESCREEN_GSTREAMER_EGL_PLUGIN
    package/ivi-homescreen/Config.in:221:   symbol BR2_PACKAGE_IVI_HOMESCREEN_GSTREAMER_EGL_PLUGIN depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API
    package/gstreamer1/gst1-plugins-base/Config.in:149:     symbol BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API is selected by BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_OPENGL
    package/gstreamer1/gst1-plugins-base/Config.in:152:     symbol BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_OPENGL depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL

Indeed, _HAS_API is only even set when gstreamer1, gst1-plugins-base,
and the gst1-plugins-base's lib-opengl support, are all already enabled.
As such, the dependency on _HAS_API already implies those, and there is
no need to select them.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Adam Duskett <adam.duskett@amarulasolutions.com>
Reviewed-by: Adam Duskett <Adam.Duskett@amarulasolutions.com>
Tested-by: Adam Duskett <Adam.Duskett@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Yann E. MORIN 2024-01-28 14:20:51 +01:00 committed by Thomas Petazzoni
parent 20ee36e0b0
commit e0ef9213e4

View File

@ -222,10 +222,8 @@ config BR2_PACKAGE_IVI_HOMESCREEN_GSTREAMER_EGL_PLUGIN
bool "GStreamer EGL"
depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
depends on BR2_PACKAGE_HAS_LIBEGL
depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API # GST1_PLUGINS_BASE_LIB_OPENGL_EGL
select BR2_PACKAGE_FFMPEG
select BR2_PACKAGE_GSTREAMER1
select BR2_PACKAGE_GST1_PLUGINS_BASE
select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL
select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL
help
A GStreamer-powered alternative to Flutter's video_player that
@ -233,9 +231,10 @@ config BR2_PACKAGE_IVI_HOMESCREEN_GSTREAMER_EGL_PLUGIN
https://pub.dev/packages/flutter_gstreamer_player
comment "GStreamer plugin needs an EGL backend"
comment "GStreamer plugin needs gst1-plugins-base with an EGL backend"
depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
depends on !BR2_PACKAGE_HAS_LIBEGL
depends on !BR2_PACKAGE_HAS_LIBEGL \
|| !BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API
config BR2_PACKAGE_IVI_HOMESCREEN_OPENGL_TEXTURE_PLUGIN
bool "OpenGL Texture"