If I have both grilo-0.2 and grilo-0.3 installed on my system, configure detects both and enables both HAVE_GRILO3 and HAVE_GRILO2 conditionals. As a result, the plugins try to call both new and old routines which causes a build failure.
I think it would be less confusing if it skipped grilo-0.2 check if grilo-0.3 is found.
Build failure (for formality's sake):
/bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -pthread -I/usr/include/libpeas-1.0 -I/usr/include/gobject-introspection-1.0 -I/usr/lib64/libffi-3.2.1/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/libpeas-1.0 -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/libpeas-1.0 -I/usr/include/gobject-introspection-1.0 -I/usr/lib64/libffi-3.2.1/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/taglib -pthread -I/usr/include/libpeas-1.0 -I/usr/include/gobject-introspection-1.0 -I/usr/lib64/libffi-3.2.1/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/libpeas-1.0 -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/libpeas-1.0 -I/usr/include/gobject-introspection-1.0 -I/usr/lib64/libffi-3.2.1/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I../../src/include -Wall -pthread -I/usr/include/grilo-0.3 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libxml2 -pthread -I/usr/include/grilo-0.2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libxml2 -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/xfce4/libxfce4ui-2 -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/xfce4 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNDEBUG -MT libpdlnarenderer_la-pragha-dlna-renderer-plugin.lo -MD -MP -MF .deps/libpdlnarenderer_la-pragha-dlna-renderer-plugin.Tpo -c -o libpdlnarenderer_la-pragha-dlna-renderer-plugin.lo `test -f 'pragha-dlna-renderer-plugin.c' || echo './'`pragha-dlna-renderer-plugin.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -pthread -I/usr/include/libpeas-1.0 -I/usr/include/gobject-introspection-1.0 -I/usr/lib64/libffi-3.2.1/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/libpeas-1.0 -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/libpeas-1.0 -I/usr/include/gobject-introspection-1.0 -I/usr/lib64/libffi-3.2.1/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/taglib -pthread -I/usr/include/libpeas-1.0 -I/usr/include/gobject-introspection-1.0 -I/usr/lib64/libffi-3.2.1/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/libpeas-1.0 -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/libpeas-1.0 -I/usr/include/gobject-introspection-1.0 -I/usr/lib64/libffi-3.2.1/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I../../src/include -Wall -pthread -I/usr/include/grilo-0.3 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libxml2 -pthread -I/usr/include/grilo-0.2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libxml2 -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/xfce4/libxfce4ui-2 -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/xfce4 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNDEBUG -MT libpdlnarenderer_la-pragha-dlna-renderer-plugin.lo -MD -MP -MF .deps/libpdlnarenderer_la-pragha-dlna-renderer-plugin.Tpo -c pragha-dlna-renderer-plugin.c -fPIC -DPIC -o .libs/libpdlnarenderer_la-pragha-dlna-renderer-plugin.o
pragha-dlna-renderer-plugin.c: In function ‘pragha_dlna_renderer_append_source’:
pragha-dlna-renderer-plugin.c:152:2: warning: implicit declaration of function ‘grl_operation_options_set_flags’ [-Wimplicit-function-declaration]
grl_operation_options_set_flags (options, GRL_RESOLVE_IDLE_RELAY);
^
pragha-dlna-renderer-plugin.c:166:7: warning: implicit declaration of function ‘GRL_IS_MEDIA_BOX’ [-Wimplicit-function-declaration]
if (GRL_IS_MEDIA_BOX (media)) {
^
pragha-dlna-renderer-plugin.c:174:3: error: expected ‘}’ before ‘else’
else if (GRL_IS_MEDIA_AUDIO (media)) {
^
pragha-dlna-renderer-plugin.c:174:12: warning: implicit declaration of function ‘GRL_IS_MEDIA_AUDIO’ [-Wimplicit-function-declaration]
else if (GRL_IS_MEDIA_AUDIO (media)) {
^
pragha-dlna-renderer-plugin.c:192:1: error: invalid storage class for function ‘pragha_dlna_renderer_plugin_search_music’
pragha_dlna_renderer_plugin_search_music (PraghaDlnaRendererPlugin *plugin)
^
pragha-dlna-renderer-plugin.c:237:1: error: invalid storage class for function ‘pragha_plugin_activate’
pragha_plugin_activate (PeasActivatable *activatable)
^
pragha-dlna-renderer-plugin.c: In function ‘pragha_plugin_activate’:
pragha-dlna-renderer-plugin.c:258:7: warning: implicit declaration of function ‘grl_registry_load_plugin_by_id’ [-Wimplicit-function-declaration]
if (!grl_registry_load_plugin_by_id (registry, "grl-dleyna", &error)) {
^
pragha-dlna-renderer-plugin.c:288:1: error: invalid storage class for function ‘pragha_plugin_deactivate’
pragha_plugin_deactivate (PeasActivatable *activatable)
^
pragha-dlna-renderer-plugin.c:304:1: error: expected declaration or statement at end of input
}
^
pragha-dlna-renderer-plugin.c: In function ‘pragha_dlna_renderer_append_source’:
pragha-dlna-renderer-plugin.c:304:1: error: expected declaration or statement at end of input
In file included from pragha-dlna-renderer-plugin.c:51:0:
pragha-dlna-renderer-plugin.c: At top level:
../../plugins/pragha-plugin-macros.h:73:14: warning: ‘pragha_plugin_activate’ used but never defined
static void pragha_plugin_activate (PeasActivatable *plugin); \
^
../../plugins/pragha-plugin-macros.h:190:2: note: in expansion of macro ‘_REGISTER_PRIVATE_CODE’
_REGISTER_PRIVATE_CODE(TYPE_NAME, TypeName, type_name,,)
^
pragha-dlna-renderer-plugin.c:62:1: note: in expansion of macro ‘PRAGHA_PLUGIN_REGISTER’
PRAGHA_PLUGIN_REGISTER (PRAGHA_TYPE_DLNA_RENDERER_PLUGIN,
^
../../plugins/pragha-plugin-macros.h:74:14: warning: ‘pragha_plugin_deactivate’ used but never defined
static void pragha_plugin_deactivate (PeasActivatable *plugin); \
^
../../plugins/pragha-plugin-macros.h:190:2: note: in expansion of macro ‘_REGISTER_PRIVATE_CODE’
_REGISTER_PRIVATE_CODE(TYPE_NAME, TypeName, type_name,,)
^
pragha-dlna-renderer-plugin.c:62:1: note: in expansion of macro ‘PRAGHA_PLUGIN_REGISTER’
PRAGHA_PLUGIN_REGISTER (PRAGHA_TYPE_DLNA_RENDERER_PLUGIN,
^
pragha-dlna-renderer-plugin.c:69:1: warning: ‘pragha_dlna_renderer_plugin_search_music’ used but never defined
pragha_dlna_renderer_plugin_search_music (PraghaDlnaRendererPlugin *plugin);
^
pragha-dlna-renderer-plugin.c: In function ‘pragha_dlna_renderer_append_source’:
pragha-dlna-renderer-plugin.c:304:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
<bountysource-plugin>
---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/47884091-build-system-can-try-to-use-grilo-0-2-and-grilo-0-3-simultaneously?utm_campaign=plugin&utm_content=tracker%2F352350&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F352350&utm_medium=issues&utm_source=github).
</bountysource-plugin>
If I have both grilo-0.2 and grilo-0.3 installed on my system,
configure
detects both and enables bothHAVE_GRILO3
andHAVE_GRILO2
conditionals. As a result, the plugins try to call both new and old routines which causes a build failure.I think it would be less confusing if it skipped grilo-0.2 check if grilo-0.3 is found.
Build failure (for formality's sake):