Message ID | 20200327183000.1005676-7-aduskett@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
Series | [v3,1/7] package/vala/vala-wrapper: fix wrapper | expand |
Adam, All, Bringing Thomas in the loop: I have a question for you... Adam, there is also a question for you... On 2020-03-27 11:30 -0700, aduskett@gmail.com spake thusly: > From: Adam Duskett <Aduskett@gmail.com> > > If gobject-introspection is selected, explicitly set --enable-introspection in > the configure options and add a dependency for both gobject-introspection and > host-vala. > > Host-vala is necessary because the introspection includes vala bindings files > with no way to explicitly disable them. Adam, this one is for you: what good are vala bindings for? Why do we care in Buildroot, Do we have a package that may use them? > Signed-off-by: Adam Duskett <Aduskett@gmail.com> > --- > package/gupnp-dlna/gupnp-dlna.mk | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/package/gupnp-dlna/gupnp-dlna.mk b/package/gupnp-dlna/gupnp-dlna.mk > index 85d30b7cd2..845667ca53 100644 > --- a/package/gupnp-dlna/gupnp-dlna.mk > +++ b/package/gupnp-dlna/gupnp-dlna.mk > @@ -15,15 +15,21 @@ GUPNP_DLNA_LICENSE_FILES = COPYING > GUPNP_DLNA_INSTALL_STAGING = YES > GUPNP_DLNA_DEPENDENCIES = host-pkgconf libglib2 libxml2 > > -GUPNP_DLNA_CONF_OPTS = \ > - --disable-introspection \ > - --disable-legacy-gstreamer-metadata-backend > +GUPNP_DLNA_CONF_OPTS = --disable-legacy-gstreamer-metadata-backend > > ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y) > GUPNP_DLNA_CONF_OPTS += --enable-gstreamer-metadata-backend > GUPNP_DLNA_DEPENDENCIES += gstreamer1 gst1-plugins-base > +# Gobject-introspection requires gstreamer .gir files. > +# Vala bindings are created with the .gir files. > +ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) > +GUPNP_DLNA_CONF_OPTS += --enable-introspection > +GUPNP_DLNA_DEPENDENCIES += host-vala gobject-introspection > +endif So, vala is _not_ needed to build with introspection. However, when building with introspection, vala bindings _can_ be generated if the needed tools are present. But this is totally optional. However, vala is a host-only package, that has no entry on the menuconfig (because it is just a tool akin to bison, flex et al.). So, we have no way to express automatically whether vala bindings should be enabled. However, it might be possible that an earlier package has brought host-vala. So we may or may not have host-vala built by the time gupnp-dlna is built. As such, we have three options: 1. Forcibly bring a dependency ti host-vala and build vala bindings, like Adam did; 2. Add an option to gupnp-dlna to build vala bindings; 3. Add a vala/Config.in/host to manually enable vala, and thus automatically build the vala bindings. I am basically OK with point 1, but I'd like a second pair of eyes... Regards, Yann E. MORIN. > else > -GUPNP_DLNA_CONF_OPTS += --disable-gstreamer-metadata-backend > +GUPNP_DLNA_CONF_OPTS += \ > + --disable-gstreamer-metadata-backend \ > + --disable-introspection > endif > > $(eval $(autotools-package)) > -- > 2.25.1 > > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot
Hello, On Sun, 29 Mar 2020 22:42:51 +0200 "Yann E. MORIN" <yann.morin.1998@free.fr> wrote: > So, vala is _not_ needed to build with introspection. Right, totally correct. HAVE_INTROSPECTION is used in libgupnp-dlna/Makefile.am and vala/Makefile.am. In the former case, Vala support is not needed. > As such, we have three options: > > 1. Forcibly bring a dependency ti host-vala and build vala bindings, > like Adam did; > > 2. Add an option to gupnp-dlna to build vala bindings; I would prefer this solution, but there may not even be a need to add an option: there is an AC_PATH_PROG check for vapigen, so probably we can feed some stupid autoconf cache variable to make sure vapigen is not detected, even if available. > 3. Add a vala/Config.in/host to manually enable vala, and thus > automatically build the vala bindings. I would really prefer to handle the whole Vala binding thing once someone really needs to do Vala stuff with gupnp-dlna. Thomas
Thomas, Adam, All, On 2020-04-06 22:38 +0200, Thomas Petazzoni spake thusly: > On Sun, 29 Mar 2020 22:42:51 +0200 > "Yann E. MORIN" <yann.morin.1998@free.fr> wrote: [--SNIP--] > > As such, we have three options: > > > > 1. Forcibly bring a dependency ti host-vala and build vala bindings, > > like Adam did; > > 2. Add an option to gupnp-dlna to build vala bindings; > > I would prefer this solution, but there may not even be a need to add > an option: there is an AC_PATH_PROG check for vapigen, so probably we > can feed some stupid autoconf cache variable to make sure vapigen is > not detected, even if available. GUPNP_PROG_VAPIGEN uses AC_PATH_PROG under the hood, and we can override the detection by setting VAPIGEN="something". Not sure what happens if we pass it an empty string, or 'no'... Adam, care to look into this, please? Thanks! Regards, Yann E. MORIN.
diff --git a/package/gupnp-dlna/gupnp-dlna.mk b/package/gupnp-dlna/gupnp-dlna.mk index 85d30b7cd2..845667ca53 100644 --- a/package/gupnp-dlna/gupnp-dlna.mk +++ b/package/gupnp-dlna/gupnp-dlna.mk @@ -15,15 +15,21 @@ GUPNP_DLNA_LICENSE_FILES = COPYING GUPNP_DLNA_INSTALL_STAGING = YES GUPNP_DLNA_DEPENDENCIES = host-pkgconf libglib2 libxml2 -GUPNP_DLNA_CONF_OPTS = \ - --disable-introspection \ - --disable-legacy-gstreamer-metadata-backend +GUPNP_DLNA_CONF_OPTS = --disable-legacy-gstreamer-metadata-backend ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y) GUPNP_DLNA_CONF_OPTS += --enable-gstreamer-metadata-backend GUPNP_DLNA_DEPENDENCIES += gstreamer1 gst1-plugins-base +# Gobject-introspection requires gstreamer .gir files. +# Vala bindings are created with the .gir files. +ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y) +GUPNP_DLNA_CONF_OPTS += --enable-introspection +GUPNP_DLNA_DEPENDENCIES += host-vala gobject-introspection +endif else -GUPNP_DLNA_CONF_OPTS += --disable-gstreamer-metadata-backend +GUPNP_DLNA_CONF_OPTS += \ + --disable-gstreamer-metadata-backend \ + --disable-introspection endif $(eval $(autotools-package))