From e0ef9213e4a99c7cf12aed4d21dc3b5338d81d50 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 28 Jan 2024 14:20:51 +0100 Subject: [PATCH] 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 Cc: Adam Duskett Reviewed-by: Adam Duskett Tested-by: Adam Duskett Signed-off-by: Thomas Petazzoni --- package/ivi-homescreen/Config.in | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/package/ivi-homescreen/Config.in b/package/ivi-homescreen/Config.in index de7509320f..c24df05b6d 100644 --- a/package/ivi-homescreen/Config.in +++ b/package/ivi-homescreen/Config.in @@ -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"