GNOME Bugzilla – Bug 622025
Can't build gstreamer due to Gst-0.10.gir: error: Can't resolve type 'PadIntLinkFunction' for field Gst.Pad.intlinkfunc
Last modified: 2010-07-07 15:53:59 UTC
I just tried to build gstreamer from git master and it failed with the following message: Gst-0.10.gir: error: Can't resolve type 'PadIntLinkFunction' for field Gst.Pad.intlinkfunc *disable intrspection* I configured with --with-introspection=no to work around that issue. I'll try to provide more information once I've finished building out totem (might take a while :-( ).
Other bits of possibly useful information from IRC: <muelli> hrm, I can't build gst-plugins-base due to /opt/gnome2/share/gir-1.0/Gst-0.10.gir: Incompatible version 1.0 (supported: 1.1) :( <MikeS> ... --disable-introspection ... <muelli> yeah, but the funny thing is that I just built gobject-introspection from master... So it can't be more recent. So what is it now that failed to build? gstreamer (core)? gst-plugins-base? Both? In what environment did this fail? jhbuild? Maybe we're using the wrong tool here somewhere (from /usr/bin)? Could you attach a config.log from when it fails, and the last few lines of output from make V=1 ?
Hey Tim :-) Note that this is a slightly different issue than the one I initially raised in IRC. So this is a jhbuild environment and building gstreamer fails: [jhbuild] muelli@bigbox ~/svn/gnome2/gstreamer $ make V=99 make all-recursive make[1]: Entering directory `/home/muelli/svn/gnome2/gstreamer' Making all in pkgconfig make[2]: Entering directory `/home/muelli/svn/gnome2/gstreamer/pkgconfig' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/home/muelli/svn/gnome2/gstreamer/pkgconfig' Making all in gst make[2]: Entering directory `/home/muelli/svn/gnome2/gstreamer/gst' make all-recursive make[3]: Entering directory `/home/muelli/svn/gnome2/gstreamer/gst' Making all in parse make[4]: Entering directory `/home/muelli/svn/gnome2/gstreamer/gst/parse' make[4]: Nothing to be done for `all'. make[4]: Leaving directory `/home/muelli/svn/gnome2/gstreamer/gst/parse' make[4]: Entering directory `/home/muelli/svn/gnome2/gstreamer/gst' /opt/gnome2/bin/g-ir-compiler --includedir=. --includedir=. Gst-0.10.gir -o Gst-0.10.typelib Gst-0.10.gir: error: Can't resolve type 'PadIntLinkFunction' for field Gst.Pad.intlinkfunc make[4]: *** [Gst-0.10.typelib] Error 1 make[4]: Leaving directory `/home/muelli/svn/gnome2/gstreamer/gst' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/home/muelli/svn/gnome2/gstreamer/gst' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/muelli/svn/gnome2/gstreamer/gst' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/muelli/svn/gnome2/gstreamer' make: *** [all] Error 2 [jhbuild] muelli@bigbox ~/svn/gnome2/gstreamer $ $ grep -ir PadIntLinkFunction /opt/gnome2/ /opt/gnome2/share/gir-1.0/Gst-0.10.gir: <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/> /opt/gnome2/share/gir-1.0/Gst-0.10.gir: <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/> /opt/gnome2/share/gir-1.0/Gst-0.10.gir: <callback name="PadIntLinkFunction" /opt/gnome2/share/gir-1.0/Gst-0.10.gir: c:type="GstPadIntLinkFunction" /opt/gnome2/share/vala/vapi/gstreamer-0.10.vapi: public weak Gst.PadIntLinkFunction intlinkfunc; /opt/gnome2/share/vala/vapi/gstreamer-0.10.vapi: public void set_internal_link_function (Gst.PadIntLinkFunction intlink); /opt/gnome2/share/vala/vapi/gstreamer-0.10.vapi: public delegate unowned GLib.List PadIntLinkFunction (Gst.Pad pad); Binary file /opt/gnome2/lib64/libgstreamer-0.10.so.0 matches [.. many libs matching ..] I've just done a new autogen and make clean before building. Same for gobject-introspection. g-i is configured like this: ./configure --enable-maintainer-mode --prefix /opt/gnome2 --libdir /opt/gnome2/lib64 --disable-static --enable-maintainer-mode --disable-scrollkeeper --disable-gtk-doc --disable-docs gstreamer is configured like this: ./autogen.sh -- --prefix /opt/gnome2 --libdir '/opt/gnome2/lib64' --disable-tests --disable-static --enable-maintainer-mode --disable-scrollkeeper --disable-gtk-doc --disable-docs I've just done a make uninstall in both, g-i and gstreamer. But jhbuild buildone -ac gpbject-instrospection gstreamer still fails with the same issue. [jhbuild] muelli@bigbox ~/svn/gnome2/gstreamer/gst $ strace -eopen /opt/gnome2/bin/g-ir-compiler --includedir=. --includedir=. Gst-0.10.gir -o Gst-0.10.typelib open("/opt/gnome2/lib64/tls/x86_64/libgirepository-1.0.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("/opt/gnome2/lib64/tls/libgirepository-1.0.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("/opt/gnome2/lib64/x86_64/libgirepository-1.0.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("/opt/gnome2/lib64/libgirepository-1.0.so.0", O_RDONLY) = 4 open("/opt/gnome2/lib64/libgio-2.0.so.0", O_RDONLY) = 4 open("/opt/gnome2/lib64/libgobject-2.0.so.0", O_RDONLY) = 4 open("/opt/gnome2/lib64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("/opt/gnome2/lib64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 4 open("/lib64/libpthread.so.0", O_RDONLY) = 4 open("/opt/gnome2/lib64/libglib-2.0.so.0", O_RDONLY) = 4 open("/opt/gnome2/lib64/libffi.so.5", O_RDONLY) = -1 ENOENT (No such file or directory) open("/opt/gnome2/lib64/libffi.so.5", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib64/libffi.so.5", O_RDONLY) = 4 open("/opt/gnome2/lib64/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("/opt/gnome2/lib64/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib64/libc.so.6", O_RDONLY) = 4 open("/opt/gnome2/lib64/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory) open("/opt/gnome2/lib64/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib64/libresolv.so.2", O_RDONLY) = 4 open("/opt/gnome2/lib64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) open("/opt/gnome2/lib64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib64/libz.so.1", O_RDONLY) = 4 open("/opt/gnome2/lib64/libselinux.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) open("/opt/gnome2/lib64/libselinux.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib64/libselinux.so.1", O_RDONLY) = 4 open("/opt/gnome2/lib64/libgmodule-2.0.so.0", O_RDONLY) = 4 open("/opt/gnome2/lib64/libgthread-2.0.so.0", O_RDONLY) = 4 open("/opt/gnome2/lib64/librt.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) open("/opt/gnome2/lib64/librt.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib64/librt.so.1", O_RDONLY) = 4 open("/opt/gnome2/lib64/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory) open("/opt/gnome2/lib64/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib64/libdl.so.2", O_RDONLY) = 4 open("/opt/gnome2/lib64/charset.alias", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/locale.alias", O_RDONLY) = 4 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 4 open("Gst-0.10.gir", O_RDONLY) = 4 open("/opt/gnome2/share/gir-1.0/GLib-2.0.gir", O_RDONLY) = 4 open("/opt/gnome2/share/gir-1.0/GModule-2.0.gir", O_RDONLY) = 4 open("/opt/gnome2/share/gir-1.0/GObject-2.0.gir", O_RDONLY) = 4 open("/opt/gnome2/share/gir-1.0/libxml2-2.0.gir", O_RDONLY) = 4 Gst-0.10.gir: error: Can't resolve type 'PadIntLinkFunction' for field Gst.Pad.intlinkfunc [jhbuild] muelli@bigbox ~/svn/gnome2/gstreamer/gst $ Attaching config.log now.
Created attachment 164065 [details] config.log of failing gstreamer
I can confirm this. I'm also seeing this with a fresh jhbuild environment and gobject-introspection build. make V=1 yields: make[4]: Entering directory `/mnt/data/src/gnome/gstreamer/gst' /opt/gnome/bin/g-ir-scanner -v --namespace Gst \ --nsversion=0.10 \ -I.. \ -I.. \ -DIN_GOBJECT_INTROSPECTION=1 \ --c-include='gst/gst.h' \ --library=libgstreamer-0.10.la \ --include=GLib-2.0 \ --include=GObject-2.0 \ --include=GModule-2.0 \ --include=libxml2-2.0 \ --libtool="../libtool" \ --pkg glib-2.0 \ --pkg gobject-2.0 \ --pkg gmodule-no-export-2.0 \ --pkg gthread-2.0 \ --pkg libxml-2.0 \ --output Gst-0.10.gir \ ./gst.h ./glib-compat.h ./gstobject.h ./gstbin.h ./gstbuffer.h ./gstbufferlist.h ./gstbus.h ./gstcaps.h ./gstchildproxy.h ./gstclock.h ./gstcompat.h ./gstdebugutils.h ./gstelement.h ./gstelementfactory.h ./gsterror.h ./gstevent.h ./gstfilter.h ./gstformat.h ./gstghostpad.h ./gstindex.h ./gstindexfactory.h ./gstinfo.h ./gstinterface.h ./gstiterator.h ./gstmacros.h ./gstmessage.h ./gstminiobject.h ./gstpad.h ./gstpadtemplate.h ./gstparamspecs.h ./gstpipeline.h ./gstplugin.h ./gstpluginfeature.h ./gstpoll.h ./gstpreset.h ./gstquery.h ./gstsegment.h ./gststructure.h ./gstsystemclock.h ./gsttaglist.h ./gsttagsetter.h ./gsttask.h ./gsttaskpool.h ./gsttrace.h ./gsttypefind.h ./gsttypefindfactory.h ./gsturi.h ./gstutils.h ./gstvalue.h ./gstregistry.h ./gstparse.h ./gstxml.h \ ./gst.c ./gstobject.c ./gstbin.c ./gstbuffer.c ./gstbufferlist.c ./gstbus.c ./gstcaps.c ./gstchildproxy.c ./gstclock.c ./gstdebugutils.c ./gstelement.c ./gstelementfactory.c ./gsterror.c ./gstevent.c ./gstfilter.c ./gstformat.c ./gstghostpad.c ./gstindex.c ./gstindexfactory.c ./gstinfo.c ./gstinterface.c ./gstiterator.c ./gstmessage.c ./gstminiobject.c ./gstpad.c ./gstpadtemplate.c ./gstparamspecs.c ./gstpipeline.c ./gstplugin.c ./gstpluginfeature.c ./gstpluginloader.c ./gstpoll.c ./gstpreset.c ./gstquark.c ./gstquery.c ./gstregistry.c ./gstregistrychunks.c ./gstsegment.c ./gststructure.c ./gstsystemclock.c ./gsttaglist.c ./gsttagsetter.c ./gsttask.c ./gsttaskpool.c ./gsttrace.c ./gsttypefind.c ./gsttypefindfactory.c ./gsturi.c ./gstutils.c ./gstvalue.c ./gstparse.c ./gstregistrybinary.c ./gstxml.c Symbol GBindingTransformFunc has multiple definition of tag 'target_value' Symbol Various defines for the various Link properties has multiple definition of tag 'note' /opt/gnome/bin/g-ir-compiler --includedir=. --includedir=. Gst-0.10.gir -o Gst-0.10.typelib Gst-0.10.gir: error: Can't resolve type 'PadIntLinkFunction' for field Gst.Pad.intlinkfunc make[4]: *** [Gst-0.10.typelib] Error 1 The callback type seems to be declared fine in the generated .gir file: <callback name="PadIntLinkFunction" c:type="GstPadIntLinkFunction" doc="The signature of the internal pad link function. the inside of the parent element. The caller must call g_list_free() on it after use." introspectable="0" deprecated="use the threadsafe #GstPadIterIntLinkFunction instead."> <return-value transfer-ownership="full"> <type name="GLib.List" c:type="GList*"/> </return-value> <parameters> <parameter name="pad" transfer-ownership="none"> <type name="Pad" c:type="GstPad*"/> </parameter> </parameters> </callback> but only after these two uses: <method name="set_internal_link_function" c:identifier="gst_pad_set_internal_link_function" doc="Sets the given internal link function for the pad." introspectable="0" deprecated="Use the thread-safe gst_pad_set_iterate_internal_links_function()"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> </return-value> <parameters> <parameter name="intlink" transfer-ownership="none" scope="call"> <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/> </parameter> </parameters> </method> ... <field name="intlinkfunc"> <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/> </field> of which it seems to complain about the latter.
Moving to gobject-introspection based on jdahlin's comments on IRC. Also marking as blocker for now, since it breaks the build. Please downgrade severity if you feel that's inappropriate. For what it's worth, the bits in the gstpad.h header file directly related to GstPadIntLinkFunction have not changed since 2008.
Created attachment 164306 [details] [review] [gstpad] Add annotations for GstPadIntLinkFunction This patch to gstpad.h fixes the g-ir-compiler error.
Created attachment 164307 [details] [review] [gstpad] Add annotations for GstPadIntLinkFunction This patch to gstpad.h fixes the g-ir-compiler error.
Thanks for the quick fix. commit 23faba019036f1d44e5ed0f98a052e98b1f36a12 Author: Johan Dahlin <johan@gnome.org> Date: Tue Jun 22 10:20:53 2010 -0300 Add gobject-introspection annotations for GstPadIntLinkFunction Fixes build with latest gobject-introspection from git. https://bugzilla.gnome.org/show_bug.cgi?id=622025
Comment on attachment 164307 [details] [review] [gstpad] Add annotations for GstPadIntLinkFunction Committed without the common submodule change.
FWIW: Works.
*** Bug 623242 has been marked as a duplicate of this bug. ***
Johan: btw, has the parsing failure been fixed in g-i ?
*** Bug 623757 has been marked as a duplicate of this bug. ***