diff mbox series

[v2,1/1] package/rygel: gobject-introspection is mandatory

Message ID 20220206095359.854435-1-fontaine.fabrice@gmail.com
State Accepted
Headers show
Series [v2,1/1] package/rygel: gobject-introspection is mandatory | expand

Commit Message

Fabrice Fontaine Feb. 6, 2022, 9:53 a.m. UTC
vapi (and gobject-introspection) is mandatory since bump to version
0.40.2 in commit 6acdbb81c8d6cdd3ecb476ae24e72fd4547011c3:

valac -C --pkg posix --pkg libxml-2.0 --pkg gmodule-2.0 --pkg gio-2.0 --pkg gssdp-1.2 --pkg gee-0.8 --pkg gupnp-1.2 --target-glib ' 2.56' --pkg glib-2.0 --color=always --directory src/librygel-core/librygel-core-2.6.so.2.0.4.p --basedir ../src/librygel-core --library rygel-core-2.6 --header src/librygel-core/rygel-core.h --vapi ../rygel-core-2.6.vapi --gir ../Rygel-2.6.gir ../src/librygel-core/rygel-build-config.vapi ../src/librygel-core/rygel-connection-manager.vala ../src/librygel-core/rygel-basic-management.vala ../src/librygel-core/rygel-basic-management-test.vala ../src/librygel-core/rygel-basic-management-test-ping.vala ../src/librygel-core/rygel-basic-management-test-nslookup.vala ../src/librygel-core/rygel-basic-management-test-traceroute.vala ../src/librygel-core/rygel-description-file.vala ../src/librygel-core/rygel-dlna-profile.vala ../src/librygel-core/rygel-energy-management.vala ../src/librygel-core/rygel-root-device.vala ../src/librygel-core/rygel-root-device-factory.v
 ala ../src/librygel-core/rygel-dbus-interface.vala ../src/librygel-core/rygel-log-handler.vala ../src/librygel-core/rygel-meta-config.vala ../src/librygel-core/rygel-plugin-loader.vala ../src/librygel-core/rygel-recursive-module-loader.vala ../src/librygel-core/rygel-plugin.vala ../src/librygel-core/rygel-resource-info.vala ../src/librygel-core/rygel-media-device.vala ../src/librygel-core/rygel-configuration.vala ../src/librygel-core/rygel-base-configuration.vala ../src/librygel-core/rygel-cmdline-config.vala ../src/librygel-core/rygel-environment-config.vala ../src/librygel-core/rygel-user-config.vala ../src/librygel-core/rygel-state-machine.vala ../src/librygel-core/rygel-v1-hacks.vala ../src/librygel-core/rygel-icon-info.vala ../src/librygel-core/rygel-xml-utils.vala ../src/librygel-core/rygel-plugin-information.vala
error: Package `gssdp-1.2' not found in specified Vala API directories or GObject-Introspection GIR directories
error: Package `gupnp-1.2' not found in specified Vala API directories or GObject-Introspection GIR directories

Depends on BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES instead of selecting
it to avoid the following recursive dependency:

package/gstreamer1/gstreamer1/Config.in:5:error: recursive dependency detected!
package/gstreamer1/gstreamer1/Config.in:5:	symbol BR2_PACKAGE_GSTREAMER1 is selected by BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1
package/rygel/Config.in:46:	symbol BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1 is part of choice <choice>
package/rygel/Config.in:39:	choice <choice> contains symbol <choice>
package/rygel/Config.in:39:	choice <choice> contains symbol BR2_PACKAGE_RYGEL
package/rygel/Config.in:1:	symbol BR2_PACKAGE_RYGEL depends on BR2_PACKAGE_PYTHON3
package/python3/Config.in:5:	symbol BR2_PACKAGE_PYTHON3 is selected by BR2_PACKAGE_JACK2_DBUS
package/jack2/Config.in:35:	symbol BR2_PACKAGE_JACK2_DBUS depends on BR2_PACKAGE_JACK2
package/jack2/Config.in:1:	symbol BR2_PACKAGE_JACK2 is selected by BR2_PACKAGE_FLUIDSYNTH_JACK2
package/fluidsynth/Config.in:37:	symbol BR2_PACKAGE_FLUIDSYNTH_JACK2 depends on BR2_PACKAGE_FLUIDSYNTH
package/fluidsynth/Config.in:1:	symbol BR2_PACKAGE_FLUIDSYNTH is selected by BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FLUIDSYNTH
package/gstreamer1/gst1-plugins-bad/Config.in:425:	symbol BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FLUIDSYNTH depends on BR2_PACKAGE_GSTREAMER1

Fixes:
 - http://autobuild.buildroot.org/results/027ce84895fab6fb251dd37cd5cfb7169287a2de

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v1 -> v2:
 - Depends on BR2_PACKAGE_{PYTHON3,GSTREAMER1_EDITING_SERVICES}

 package/rygel/Config.in | 23 +++++++++++++++++------
 package/rygel/rygel.mk  |  9 ++-------
 2 files changed, 19 insertions(+), 13 deletions(-)

Comments

Arnout Vandecappelle Feb. 13, 2022, 3:18 p.m. UTC | #1
On 06/02/2022 10:53, Fabrice Fontaine wrote:
> vapi (and gobject-introspection) is mandatory since bump to version
> 0.40.2 in commit 6acdbb81c8d6cdd3ecb476ae24e72fd4547011c3:
> 
> valac -C --pkg posix --pkg libxml-2.0 --pkg gmodule-2.0 --pkg gio-2.0 --pkg gssdp-1.2 --pkg gee-0.8 --pkg gupnp-1.2 --target-glib ' 2.56' --pkg glib-2.0 --color=always --directory src/librygel-core/librygel-core-2.6.so.2.0.4.p --basedir ../src/librygel-core --library rygel-core-2.6 --header src/librygel-core/rygel-core.h --vapi ../rygel-core-2.6.vapi --gir ../Rygel-2.6.gir ../src/librygel-core/rygel-build-config.vapi ../src/librygel-core/rygel-connection-manager.vala ../src/librygel-core/rygel-basic-management.vala ../src/librygel-core/rygel-basic-management-test.vala ../src/librygel-core/rygel-basic-management-test-ping.vala ../src/librygel-core/rygel-basic-management-test-nslookup.vala ../src/librygel-core/rygel-basic-management-test-traceroute.vala ../src/librygel-core/rygel-description-file.vala ../src/librygel-core/rygel-dlna-profile.vala ../src/librygel-core/rygel-energy-management.vala ../src/librygel-core/rygel-root-device.vala ../src/librygel-core/rygel-root-device-factory
 .v
>   ala ../src/librygel-core/rygel-dbus-interface.vala ../src/librygel-core/rygel-log-handler.vala ../src/librygel-core/rygel-meta-config.vala ../src/librygel-core/rygel-plugin-loader.vala ../src/librygel-core/rygel-recursive-module-loader.vala ../src/librygel-core/rygel-plugin.vala ../src/librygel-core/rygel-resource-info.vala ../src/librygel-core/rygel-media-device.vala ../src/librygel-core/rygel-configuration.vala ../src/librygel-core/rygel-base-configuration.vala ../src/librygel-core/rygel-cmdline-config.vala ../src/librygel-core/rygel-environment-config.vala ../src/librygel-core/rygel-user-config.vala ../src/librygel-core/rygel-state-machine.vala ../src/librygel-core/rygel-v1-hacks.vala ../src/librygel-core/rygel-icon-info.vala ../src/librygel-core/rygel-xml-utils.vala ../src/librygel-core/rygel-plugin-information.vala
> error: Package `gssdp-1.2' not found in specified Vala API directories or GObject-Introspection GIR directories
> error: Package `gupnp-1.2' not found in specified Vala API directories or GObject-Introspection GIR directories
> 
> Depends on BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES instead of selecting
> it to avoid the following recursive dependency:
> 
> package/gstreamer1/gstreamer1/Config.in:5:error: recursive dependency detected!
> package/gstreamer1/gstreamer1/Config.in:5:	symbol BR2_PACKAGE_GSTREAMER1 is selected by BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1
> package/rygel/Config.in:46:	symbol BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1 is part of choice <choice>
> package/rygel/Config.in:39:	choice <choice> contains symbol <choice>
> package/rygel/Config.in:39:	choice <choice> contains symbol BR2_PACKAGE_RYGEL
> package/rygel/Config.in:1:	symbol BR2_PACKAGE_RYGEL depends on BR2_PACKAGE_PYTHON3
> package/python3/Config.in:5:	symbol BR2_PACKAGE_PYTHON3 is selected by BR2_PACKAGE_JACK2_DBUS
> package/jack2/Config.in:35:	symbol BR2_PACKAGE_JACK2_DBUS depends on BR2_PACKAGE_JACK2
> package/jack2/Config.in:1:	symbol BR2_PACKAGE_JACK2 is selected by BR2_PACKAGE_FLUIDSYNTH_JACK2
> package/fluidsynth/Config.in:37:	symbol BR2_PACKAGE_FLUIDSYNTH_JACK2 depends on BR2_PACKAGE_FLUIDSYNTH
> package/fluidsynth/Config.in:1:	symbol BR2_PACKAGE_FLUIDSYNTH is selected by BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FLUIDSYNTH
> package/gstreamer1/gst1-plugins-bad/Config.in:425:	symbol BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FLUIDSYNTH depends on BR2_PACKAGE_GSTREAMER1

  I think that now python2 has been removed, we can select python3 for 
gobject-introspection instead of depending on it, and that that would break this 
circular dependency.

  select python3 would also allow us to remove the python3 dependency from all 
transitive dependencies of gobject-introspection.

  Regards,
  Arnout

> 
> Fixes:
>   - http://autobuild.buildroot.org/results/027ce84895fab6fb251dd37cd5cfb7169287a2de
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
> Changes v1 -> v2:
>   - Depends on BR2_PACKAGE_{PYTHON3,GSTREAMER1_EDITING_SERVICES}
> 
>   package/rygel/Config.in | 23 +++++++++++++++++------
>   package/rygel/rygel.mk  |  9 ++-------
>   2 files changed, 19 insertions(+), 13 deletions(-)
> 
> diff --git a/package/rygel/Config.in b/package/rygel/Config.in
> index df48918833..30e8430537 100644
> --- a/package/rygel/Config.in
> +++ b/package/rygel/Config.in
> @@ -2,8 +2,14 @@ config BR2_PACKAGE_RYGEL
>   	bool "rygel"
>   	depends on BR2_USE_WCHAR # gupnp-av
>   	depends on BR2_TOOLCHAIN_HAS_THREADS # gupnp-av
> -	depends on BR2_USE_MMU # gupnp-av
> +	depends on BR2_USE_MMU # gupnp-av, gobject-introspection
> +	depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS # gobject-introspection
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # gobject-introspection
> +	depends on BR2_HOST_GCC_AT_LEAST_8 # gobject-introspection -> host-qemu
> +	depends on BR2_TOOLCHAIN_USES_GLIBC # gobject-introspection
> +	depends on BR2_PACKAGE_PYTHON3 # gobject-introspection
>   	select BR2_PACKAGE_GDK_PIXBUF
> +	select BR2_PACKAGE_GOBJECT_INTROSPECTION
>   	select BR2_PACKAGE_GUPNP_AV
>   	select BR2_PACKAGE_GUPNP_DLNA
>   	select BR2_PACKAGE_LIBGEE
> @@ -39,14 +45,19 @@ config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_SIMPLE
>   
>   config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1
>   	bool "gstreamer1"
> -	select BR2_PACKAGE_GSTREAMER1
> -	select BR2_PACKAGE_GST1_PLUGINS_BASE
> -	select BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES
> +	depends on BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES
> +
> +comment "gstreamer1 needs gst1-editing-services"
> +	depends on !BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES
>   
>   endchoice
>   
> -comment "rygel needs a toolchain w/ wchar, threads"
> +comment "rygel needs a glibc toolchain w/ wchar, threads, gcc >= 4.9, host gcc >= 8"
>   	depends on BR2_USE_MMU
> -	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS
> +	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_USES_GLIBC || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
> +		!BR2_HOST_GCC_AT_LEAST_8
>   
>   endif # BR2_PACKAGE_RYGEL
> diff --git a/package/rygel/rygel.mk b/package/rygel/rygel.mk
> index c541cdc0ed..bfcd5df3c6 100644
> --- a/package/rygel/rygel.mk
> +++ b/package/rygel/rygel.mk
> @@ -12,6 +12,7 @@ RYGEL_LICENSE = LGPL-2.1+, CC-BY-SA-3.0 (logo)
>   RYGEL_LICENSE_FILES = COPYING COPYING.logo
>   RYGEL_DEPENDENCIES = \
>   	gdk-pixbuf \
> +	gobject-introspection \
>   	gupnp-av \
>   	gupnp-dlna \
>   	libgee \
> @@ -24,16 +25,10 @@ RYGEL_CONF_ENV = LIBS=$(TARGET_NLS_LIBS)
>   RYGEL_CONF_OPTS += \
>   	-Dapi-docs=false \
>   	-Dexamples=false \
> +	-Dintrospection=enabled \
>   	-Dtests=false
>   RYGEL_PLUGINS = external,lms,mpris,ruih
>   
> -ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y)
> -RYGEL_CONF_OPTS += -Dintrospection=enabled
> -RYGEL_DEPENDENCIES += gobject-introspection
> -else
> -RYGEL_CONF_OPTS += -Dintrospection=disabled
> -endif
> -
>   ifeq ($(BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1),y)
>   RYGEL_CONF_OPTS += \
>   	-Dengines=gstreamer \
Fabrice Fontaine Feb. 13, 2022, 4:59 p.m. UTC | #2
Dear Arnout,

Le dim. 13 févr. 2022 à 16:18, Arnout Vandecappelle <arnout@mind.be> a écrit :
>
>
>
> On 06/02/2022 10:53, Fabrice Fontaine wrote:
> > vapi (and gobject-introspection) is mandatory since bump to version
> > 0.40.2 in commit 6acdbb81c8d6cdd3ecb476ae24e72fd4547011c3:
> >
> > valac -C --pkg posix --pkg libxml-2.0 --pkg gmodule-2.0 --pkg gio-2.0 --pkg gssdp-1.2 --pkg gee-0.8 --pkg gupnp-1.2 --target-glib ' 2.56' --pkg glib-2.0 --color=always --directory src/librygel-core/librygel-core-2.6.so.2.0.4.p --basedir ../src/librygel-core --library rygel-core-2.6 --header src/librygel-core/rygel-core.h --vapi ../rygel-core-2.6.vapi --gir ../Rygel-2.6.gir ../src/librygel-core/rygel-build-config.vapi ../src/librygel-core/rygel-connection-manager.vala ../src/librygel-core/rygel-basic-management.vala ../src/librygel-core/rygel-basic-management-test.vala ../src/librygel-core/rygel-basic-management-test-ping.vala ../src/librygel-core/rygel-basic-management-test-nslookup.vala ../src/librygel-core/rygel-basic-management-test-traceroute.vala ../src/librygel-core/rygel-description-file.vala ../src/librygel-core/rygel-dlna-profile.vala ../src/librygel-core/rygel-energy-management.vala ../src/librygel-core/rygel-root-device.vala ../src/librygel-core/rygel-root-device-factory.v
> >   ala ../src/librygel-core/rygel-dbus-interface.vala ../src/librygel-core/rygel-log-handler.vala ../src/librygel-core/rygel-meta-config.vala ../src/librygel-core/rygel-plugin-loader.vala ../src/librygel-core/rygel-recursive-module-loader.vala ../src/librygel-core/rygel-plugin.vala ../src/librygel-core/rygel-resource-info.vala ../src/librygel-core/rygel-media-device.vala ../src/librygel-core/rygel-configuration.vala ../src/librygel-core/rygel-base-configuration.vala ../src/librygel-core/rygel-cmdline-config.vala ../src/librygel-core/rygel-environment-config.vala ../src/librygel-core/rygel-user-config.vala ../src/librygel-core/rygel-state-machine.vala ../src/librygel-core/rygel-v1-hacks.vala ../src/librygel-core/rygel-icon-info.vala ../src/librygel-core/rygel-xml-utils.vala ../src/librygel-core/rygel-plugin-information.vala
> > error: Package `gssdp-1.2' not found in specified Vala API directories or GObject-Introspection GIR directories
> > error: Package `gupnp-1.2' not found in specified Vala API directories or GObject-Introspection GIR directories
> >
> > Depends on BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES instead of selecting
> > it to avoid the following recursive dependency:
> >
> > package/gstreamer1/gstreamer1/Config.in:5:error: recursive dependency detected!
> > package/gstreamer1/gstreamer1/Config.in:5:    symbol BR2_PACKAGE_GSTREAMER1 is selected by BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1
> > package/rygel/Config.in:46:   symbol BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1 is part of choice <choice>
> > package/rygel/Config.in:39:   choice <choice> contains symbol <choice>
> > package/rygel/Config.in:39:   choice <choice> contains symbol BR2_PACKAGE_RYGEL
> > package/rygel/Config.in:1:    symbol BR2_PACKAGE_RYGEL depends on BR2_PACKAGE_PYTHON3
> > package/python3/Config.in:5:  symbol BR2_PACKAGE_PYTHON3 is selected by BR2_PACKAGE_JACK2_DBUS
> > package/jack2/Config.in:35:   symbol BR2_PACKAGE_JACK2_DBUS depends on BR2_PACKAGE_JACK2
> > package/jack2/Config.in:1:    symbol BR2_PACKAGE_JACK2 is selected by BR2_PACKAGE_FLUIDSYNTH_JACK2
> > package/fluidsynth/Config.in:37:      symbol BR2_PACKAGE_FLUIDSYNTH_JACK2 depends on BR2_PACKAGE_FLUIDSYNTH
> > package/fluidsynth/Config.in:1:       symbol BR2_PACKAGE_FLUIDSYNTH is selected by BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FLUIDSYNTH
> > package/gstreamer1/gst1-plugins-bad/Config.in:425:    symbol BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FLUIDSYNTH depends on BR2_PACKAGE_GSTREAMER1
>
>   I think that now python2 has been removed, we can select python3 for
> gobject-introspection instead of depending on it, and that that would break this
> circular dependency.

I tried to work around your suggestion but it seems this adds another
circular dependency :-(

package/python3/Config.in:5:error: recursive dependency detected!
package/python3/Config.in:5:    symbol BR2_PACKAGE_PYTHON3 is selected
by BR2_PACKAGE_GOBJECT_INTROSPECTION
package/gobject-introspection/Config.in:6:    symbol
BR2_PACKAGE_GOBJECT_INTROSPECTION is selected by
BR2_PACKAGE_PYTHON_GOBJECT
package/python-gobject/Config.in:1:    symbol
BR2_PACKAGE_PYTHON_GOBJECT is selected by BR2_PACKAGE_PYTHON_BLUEZERO
package/python-bluezero/Config.in:1:    symbol
BR2_PACKAGE_PYTHON_BLUEZERO depends on BR2_PACKAGE_PYTHON3

>
>   select python3 would also allow us to remove the python3 dependency from all
> transitive dependencies of gobject-introspection.
>
>   Regards,
>   Arnout
>
> >
> > Fixes:
> >   - http://autobuild.buildroot.org/results/027ce84895fab6fb251dd37cd5cfb7169287a2de
> >
> > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> > ---
> > Changes v1 -> v2:
> >   - Depends on BR2_PACKAGE_{PYTHON3,GSTREAMER1_EDITING_SERVICES}
> >
> >   package/rygel/Config.in | 23 +++++++++++++++++------
> >   package/rygel/rygel.mk  |  9 ++-------
> >   2 files changed, 19 insertions(+), 13 deletions(-)
> >
> > diff --git a/package/rygel/Config.in b/package/rygel/Config.in
> > index df48918833..30e8430537 100644
> > --- a/package/rygel/Config.in
> > +++ b/package/rygel/Config.in
> > @@ -2,8 +2,14 @@ config BR2_PACKAGE_RYGEL
> >       bool "rygel"
> >       depends on BR2_USE_WCHAR # gupnp-av
> >       depends on BR2_TOOLCHAIN_HAS_THREADS # gupnp-av
> > -     depends on BR2_USE_MMU # gupnp-av
> > +     depends on BR2_USE_MMU # gupnp-av, gobject-introspection
> > +     depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS # gobject-introspection
> > +     depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # gobject-introspection
> > +     depends on BR2_HOST_GCC_AT_LEAST_8 # gobject-introspection -> host-qemu
> > +     depends on BR2_TOOLCHAIN_USES_GLIBC # gobject-introspection
> > +     depends on BR2_PACKAGE_PYTHON3 # gobject-introspection
> >       select BR2_PACKAGE_GDK_PIXBUF
> > +     select BR2_PACKAGE_GOBJECT_INTROSPECTION
> >       select BR2_PACKAGE_GUPNP_AV
> >       select BR2_PACKAGE_GUPNP_DLNA
> >       select BR2_PACKAGE_LIBGEE
> > @@ -39,14 +45,19 @@ config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_SIMPLE
> >
> >   config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1
> >       bool "gstreamer1"
> > -     select BR2_PACKAGE_GSTREAMER1
> > -     select BR2_PACKAGE_GST1_PLUGINS_BASE
> > -     select BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES
> > +     depends on BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES
> > +
> > +comment "gstreamer1 needs gst1-editing-services"
> > +     depends on !BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES
> >
> >   endchoice
> >
> > -comment "rygel needs a toolchain w/ wchar, threads"
> > +comment "rygel needs a glibc toolchain w/ wchar, threads, gcc >= 4.9, host gcc >= 8"
> >       depends on BR2_USE_MMU
> > -     depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> > +     depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS
> > +     depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
> > +             !BR2_TOOLCHAIN_USES_GLIBC || \
> > +             !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
> > +             !BR2_HOST_GCC_AT_LEAST_8
> >
> >   endif # BR2_PACKAGE_RYGEL
> > diff --git a/package/rygel/rygel.mk b/package/rygel/rygel.mk
> > index c541cdc0ed..bfcd5df3c6 100644
> > --- a/package/rygel/rygel.mk
> > +++ b/package/rygel/rygel.mk
> > @@ -12,6 +12,7 @@ RYGEL_LICENSE = LGPL-2.1+, CC-BY-SA-3.0 (logo)
> >   RYGEL_LICENSE_FILES = COPYING COPYING.logo
> >   RYGEL_DEPENDENCIES = \
> >       gdk-pixbuf \
> > +     gobject-introspection \
> >       gupnp-av \
> >       gupnp-dlna \
> >       libgee \
> > @@ -24,16 +25,10 @@ RYGEL_CONF_ENV = LIBS=$(TARGET_NLS_LIBS)
> >   RYGEL_CONF_OPTS += \
> >       -Dapi-docs=false \
> >       -Dexamples=false \
> > +     -Dintrospection=enabled \
> >       -Dtests=false
> >   RYGEL_PLUGINS = external,lms,mpris,ruih
> >
> > -ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y)
> > -RYGEL_CONF_OPTS += -Dintrospection=enabled
> > -RYGEL_DEPENDENCIES += gobject-introspection
> > -else
> > -RYGEL_CONF_OPTS += -Dintrospection=disabled
> > -endif
> > -
> >   ifeq ($(BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1),y)
> >   RYGEL_CONF_OPTS += \
> >       -Dengines=gstreamer \
Best Regards,

Fabrice
Arnout Vandecappelle Feb. 13, 2022, 7:59 p.m. UTC | #3
On 13/02/2022 17:59, Fabrice Fontaine wrote:
> Dear Arnout,
> 
> Le dim. 13 févr. 2022 à 16:18, Arnout Vandecappelle <arnout@mind.be> a écrit :
>>
>>
>>
>> On 06/02/2022 10:53, Fabrice Fontaine wrote:
>>> vapi (and gobject-introspection) is mandatory since bump to version
>>> 0.40.2 in commit 6acdbb81c8d6cdd3ecb476ae24e72fd4547011c3:
>>>
>>> valac -C --pkg posix --pkg libxml-2.0 --pkg gmodule-2.0 --pkg gio-2.0 --pkg gssdp-1.2 --pkg gee-0.8 --pkg gupnp-1.2 --target-glib ' 2.56' --pkg glib-2.0 --color=always --directory src/librygel-core/librygel-core-2.6.so.2.0.4.p --basedir ../src/librygel-core --library rygel-core-2.6 --header src/librygel-core/rygel-core.h --vapi ../rygel-core-2.6.vapi --gir ../Rygel-2.6.gir ../src/librygel-core/rygel-build-config.vapi ../src/librygel-core/rygel-connection-manager.vala ../src/librygel-core/rygel-basic-management.vala ../src/librygel-core/rygel-basic-management-test.vala ../src/librygel-core/rygel-basic-management-test-ping.vala ../src/librygel-core/rygel-basic-management-test-nslookup.vala ../src/librygel-core/rygel-basic-management-test-traceroute.vala ../src/librygel-core/rygel-description-file.vala ../src/librygel-core/rygel-dlna-profile.vala ../src/librygel-core/rygel-energy-management.vala ../src/librygel-core/rygel-root-device.vala ../src/librygel-core/rygel-root-device-factory.v
>>>    ala ../src/librygel-core/rygel-dbus-interface.vala ../src/librygel-core/rygel-log-handler.vala ../src/librygel-core/rygel-meta-config.vala ../src/librygel-core/rygel-plugin-loader.vala ../src/librygel-core/rygel-recursive-module-loader.vala ../src/librygel-core/rygel-plugin.vala ../src/librygel-core/rygel-resource-info.vala ../src/librygel-core/rygel-media-device.vala ../src/librygel-core/rygel-configuration.vala ../src/librygel-core/rygel-base-configuration.vala ../src/librygel-core/rygel-cmdline-config.vala ../src/librygel-core/rygel-environment-config.vala ../src/librygel-core/rygel-user-config.vala ../src/librygel-core/rygel-state-machine.vala ../src/librygel-core/rygel-v1-hacks.vala ../src/librygel-core/rygel-icon-info.vala ../src/librygel-core/rygel-xml-utils.vala ../src/librygel-core/rygel-plugin-information.vala
>>> error: Package `gssdp-1.2' not found in specified Vala API directories or GObject-Introspection GIR directories
>>> error: Package `gupnp-1.2' not found in specified Vala API directories or GObject-Introspection GIR directories
>>>
>>> Depends on BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES instead of selecting
>>> it to avoid the following recursive dependency:
>>>
>>> package/gstreamer1/gstreamer1/Config.in:5:error: recursive dependency detected!
>>> package/gstreamer1/gstreamer1/Config.in:5:    symbol BR2_PACKAGE_GSTREAMER1 is selected by BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1
>>> package/rygel/Config.in:46:   symbol BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1 is part of choice <choice>
>>> package/rygel/Config.in:39:   choice <choice> contains symbol <choice>
>>> package/rygel/Config.in:39:   choice <choice> contains symbol BR2_PACKAGE_RYGEL
>>> package/rygel/Config.in:1:    symbol BR2_PACKAGE_RYGEL depends on BR2_PACKAGE_PYTHON3
>>> package/python3/Config.in:5:  symbol BR2_PACKAGE_PYTHON3 is selected by BR2_PACKAGE_JACK2_DBUS
>>> package/jack2/Config.in:35:   symbol BR2_PACKAGE_JACK2_DBUS depends on BR2_PACKAGE_JACK2
>>> package/jack2/Config.in:1:    symbol BR2_PACKAGE_JACK2 is selected by BR2_PACKAGE_FLUIDSYNTH_JACK2
>>> package/fluidsynth/Config.in:37:      symbol BR2_PACKAGE_FLUIDSYNTH_JACK2 depends on BR2_PACKAGE_FLUIDSYNTH
>>> package/fluidsynth/Config.in:1:       symbol BR2_PACKAGE_FLUIDSYNTH is selected by BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FLUIDSYNTH
>>> package/gstreamer1/gst1-plugins-bad/Config.in:425:    symbol BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FLUIDSYNTH depends on BR2_PACKAGE_GSTREAMER1
>>
>>    I think that now python2 has been removed, we can select python3 for
>> gobject-introspection instead of depending on it, and that that would break this
>> circular dependency.
> 
> I tried to work around your suggestion but it seems this adds another
> circular dependency :-(
> 
> package/python3/Config.in:5:error: recursive dependency detected!
> package/python3/Config.in:5:    symbol BR2_PACKAGE_PYTHON3 is selected
> by BR2_PACKAGE_GOBJECT_INTROSPECTION
> package/gobject-introspection/Config.in:6:    symbol
> BR2_PACKAGE_GOBJECT_INTROSPECTION is selected by
> BR2_PACKAGE_PYTHON_GOBJECT
> package/python-gobject/Config.in:1:    symbol
> BR2_PACKAGE_PYTHON_GOBJECT is selected by BR2_PACKAGE_PYTHON_BLUEZERO
> package/python-bluezero/Config.in:1:    symbol
> BR2_PACKAGE_PYTHON_BLUEZERO depends on BR2_PACKAGE_PYTHON3

  Heh. In that case let's keep it as is.

  Patch applied to master, thanks.

  Regards,
  Arnout


> 
>>
>>    select python3 would also allow us to remove the python3 dependency from all
>> transitive dependencies of gobject-introspection.
>>
>>    Regards,
>>    Arnout
>>
>>>
>>> Fixes:
>>>    - http://autobuild.buildroot.org/results/027ce84895fab6fb251dd37cd5cfb7169287a2de
>>>
>>> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
>>> ---
>>> Changes v1 -> v2:
>>>    - Depends on BR2_PACKAGE_{PYTHON3,GSTREAMER1_EDITING_SERVICES}
>>>
>>>    package/rygel/Config.in | 23 +++++++++++++++++------
>>>    package/rygel/rygel.mk  |  9 ++-------
>>>    2 files changed, 19 insertions(+), 13 deletions(-)
>>>
>>> diff --git a/package/rygel/Config.in b/package/rygel/Config.in
>>> index df48918833..30e8430537 100644
>>> --- a/package/rygel/Config.in
>>> +++ b/package/rygel/Config.in
>>> @@ -2,8 +2,14 @@ config BR2_PACKAGE_RYGEL
>>>        bool "rygel"
>>>        depends on BR2_USE_WCHAR # gupnp-av
>>>        depends on BR2_TOOLCHAIN_HAS_THREADS # gupnp-av
>>> -     depends on BR2_USE_MMU # gupnp-av
>>> +     depends on BR2_USE_MMU # gupnp-av, gobject-introspection
>>> +     depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS # gobject-introspection
>>> +     depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # gobject-introspection
>>> +     depends on BR2_HOST_GCC_AT_LEAST_8 # gobject-introspection -> host-qemu
>>> +     depends on BR2_TOOLCHAIN_USES_GLIBC # gobject-introspection
>>> +     depends on BR2_PACKAGE_PYTHON3 # gobject-introspection
>>>        select BR2_PACKAGE_GDK_PIXBUF
>>> +     select BR2_PACKAGE_GOBJECT_INTROSPECTION
>>>        select BR2_PACKAGE_GUPNP_AV
>>>        select BR2_PACKAGE_GUPNP_DLNA
>>>        select BR2_PACKAGE_LIBGEE
>>> @@ -39,14 +45,19 @@ config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_SIMPLE
>>>
>>>    config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1
>>>        bool "gstreamer1"
>>> -     select BR2_PACKAGE_GSTREAMER1
>>> -     select BR2_PACKAGE_GST1_PLUGINS_BASE
>>> -     select BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES
>>> +     depends on BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES
>>> +
>>> +comment "gstreamer1 needs gst1-editing-services"
>>> +     depends on !BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES
>>>
>>>    endchoice
>>>
>>> -comment "rygel needs a toolchain w/ wchar, threads"
>>> +comment "rygel needs a glibc toolchain w/ wchar, threads, gcc >= 4.9, host gcc >= 8"
>>>        depends on BR2_USE_MMU
>>> -     depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
>>> +     depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS
>>> +     depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
>>> +             !BR2_TOOLCHAIN_USES_GLIBC || \
>>> +             !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
>>> +             !BR2_HOST_GCC_AT_LEAST_8
>>>
>>>    endif # BR2_PACKAGE_RYGEL
>>> diff --git a/package/rygel/rygel.mk b/package/rygel/rygel.mk
>>> index c541cdc0ed..bfcd5df3c6 100644
>>> --- a/package/rygel/rygel.mk
>>> +++ b/package/rygel/rygel.mk
>>> @@ -12,6 +12,7 @@ RYGEL_LICENSE = LGPL-2.1+, CC-BY-SA-3.0 (logo)
>>>    RYGEL_LICENSE_FILES = COPYING COPYING.logo
>>>    RYGEL_DEPENDENCIES = \
>>>        gdk-pixbuf \
>>> +     gobject-introspection \
>>>        gupnp-av \
>>>        gupnp-dlna \
>>>        libgee \
>>> @@ -24,16 +25,10 @@ RYGEL_CONF_ENV = LIBS=$(TARGET_NLS_LIBS)
>>>    RYGEL_CONF_OPTS += \
>>>        -Dapi-docs=false \
>>>        -Dexamples=false \
>>> +     -Dintrospection=enabled \
>>>        -Dtests=false
>>>    RYGEL_PLUGINS = external,lms,mpris,ruih
>>>
>>> -ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y)
>>> -RYGEL_CONF_OPTS += -Dintrospection=enabled
>>> -RYGEL_DEPENDENCIES += gobject-introspection
>>> -else
>>> -RYGEL_CONF_OPTS += -Dintrospection=disabled
>>> -endif
>>> -
>>>    ifeq ($(BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1),y)
>>>    RYGEL_CONF_OPTS += \
>>>        -Dengines=gstreamer \
> Best Regards,
> 
> Fabrice
diff mbox series

Patch

diff --git a/package/rygel/Config.in b/package/rygel/Config.in
index df48918833..30e8430537 100644
--- a/package/rygel/Config.in
+++ b/package/rygel/Config.in
@@ -2,8 +2,14 @@  config BR2_PACKAGE_RYGEL
 	bool "rygel"
 	depends on BR2_USE_WCHAR # gupnp-av
 	depends on BR2_TOOLCHAIN_HAS_THREADS # gupnp-av
-	depends on BR2_USE_MMU # gupnp-av
+	depends on BR2_USE_MMU # gupnp-av, gobject-introspection
+	depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS # gobject-introspection
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # gobject-introspection
+	depends on BR2_HOST_GCC_AT_LEAST_8 # gobject-introspection -> host-qemu
+	depends on BR2_TOOLCHAIN_USES_GLIBC # gobject-introspection
+	depends on BR2_PACKAGE_PYTHON3 # gobject-introspection
 	select BR2_PACKAGE_GDK_PIXBUF
+	select BR2_PACKAGE_GOBJECT_INTROSPECTION
 	select BR2_PACKAGE_GUPNP_AV
 	select BR2_PACKAGE_GUPNP_DLNA
 	select BR2_PACKAGE_LIBGEE
@@ -39,14 +45,19 @@  config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_SIMPLE
 
 config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1
 	bool "gstreamer1"
-	select BR2_PACKAGE_GSTREAMER1
-	select BR2_PACKAGE_GST1_PLUGINS_BASE
-	select BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES
+	depends on BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES
+
+comment "gstreamer1 needs gst1-editing-services"
+	depends on !BR2_PACKAGE_GSTREAMER1_EDITING_SERVICES
 
 endchoice
 
-comment "rygel needs a toolchain w/ wchar, threads"
+comment "rygel needs a glibc toolchain w/ wchar, threads, gcc >= 4.9, host gcc >= 8"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_TOOLCHAIN_USES_GLIBC || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
+		!BR2_HOST_GCC_AT_LEAST_8
 
 endif # BR2_PACKAGE_RYGEL
diff --git a/package/rygel/rygel.mk b/package/rygel/rygel.mk
index c541cdc0ed..bfcd5df3c6 100644
--- a/package/rygel/rygel.mk
+++ b/package/rygel/rygel.mk
@@ -12,6 +12,7 @@  RYGEL_LICENSE = LGPL-2.1+, CC-BY-SA-3.0 (logo)
 RYGEL_LICENSE_FILES = COPYING COPYING.logo
 RYGEL_DEPENDENCIES = \
 	gdk-pixbuf \
+	gobject-introspection \
 	gupnp-av \
 	gupnp-dlna \
 	libgee \
@@ -24,16 +25,10 @@  RYGEL_CONF_ENV = LIBS=$(TARGET_NLS_LIBS)
 RYGEL_CONF_OPTS += \
 	-Dapi-docs=false \
 	-Dexamples=false \
+	-Dintrospection=enabled \
 	-Dtests=false
 RYGEL_PLUGINS = external,lms,mpris,ruih
 
-ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y)
-RYGEL_CONF_OPTS += -Dintrospection=enabled
-RYGEL_DEPENDENCIES += gobject-introspection
-else
-RYGEL_CONF_OPTS += -Dintrospection=disabled
-endif
-
 ifeq ($(BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1),y)
 RYGEL_CONF_OPTS += \
 	-Dengines=gstreamer \