After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 622025 - Can't build gstreamer due to Gst-0.10.gir: error: Can't resolve type 'PadIntLinkFunction' for field Gst.Pad.intlinkfunc
Can't build gstreamer due to Gst-0.10.gir: error: Can't resolve type 'PadIntL...
Status: VERIFIED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal blocker
: 0.10.30
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 623242 623757 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2010-06-18 19:22 UTC by Tobias Mueller
Modified: 2010-07-07 15:53 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
config.log of failing gstreamer (88.35 KB, text/plain)
2010-06-19 08:46 UTC, Tobias Mueller
  Details
[gstpad] Add annotations for GstPadIntLinkFunction (1.13 KB, patch)
2010-06-22 13:21 UTC, Johan (not receiving bugmail) Dahlin
none Details | Review
[gstpad] Add annotations for GstPadIntLinkFunction (1.13 KB, patch)
2010-06-22 13:25 UTC, Johan (not receiving bugmail) Dahlin
committed Details | Review

Description Tobias Mueller 2010-06-18 19:22:26 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 :-( ).
Comment 1 Tim-Philipp Müller 2010-06-19 07:53:24 UTC
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 ?
Comment 2 Tobias Mueller 2010-06-19 08:46:00 UTC
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.
Comment 3 Tobias Mueller 2010-06-19 08:46:45 UTC
Created attachment 164065 [details]
config.log of failing gstreamer
Comment 4 Philipp 2010-06-20 08:16:03 UTC
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.
Comment 5 Tim-Philipp Müller 2010-06-21 14:30:49 UTC
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.
Comment 6 Johan (not receiving bugmail) Dahlin 2010-06-22 13:21:39 UTC
Created attachment 164306 [details] [review]
[gstpad] Add annotations for GstPadIntLinkFunction

This patch to gstpad.h fixes the g-ir-compiler error.
Comment 7 Johan (not receiving bugmail) Dahlin 2010-06-22 13:25:38 UTC
Created attachment 164307 [details] [review]
[gstpad] Add annotations for GstPadIntLinkFunction

This patch to gstpad.h fixes the g-ir-compiler error.
Comment 8 Tim-Philipp Müller 2010-06-22 14:07:24 UTC
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 9 Tim-Philipp Müller 2010-06-22 14:08:24 UTC
Comment on attachment 164307 [details] [review]
[gstpad] Add annotations for GstPadIntLinkFunction

Committed without the common submodule change.
Comment 10 Tobias Mueller 2010-06-22 20:39:36 UTC
FWIW: Works.
Comment 11 Tim-Philipp Müller 2010-06-30 21:45:32 UTC
*** Bug 623242 has been marked as a duplicate of this bug. ***
Comment 12 Tim-Philipp Müller 2010-06-30 21:59:52 UTC
Johan: btw, has the parsing failure been fixed in g-i ?
Comment 13 Tim-Philipp Müller 2010-07-07 15:53:59 UTC
*** Bug 623757 has been marked as a duplicate of this bug. ***