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 623698 - riff build error: requires GstInterfaces 1.1, has 1.0
riff build error: requires GstInterfaces 1.1, has 1.0
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-07-06 17:13 UTC by Frank Solensky
Modified: 2010-08-14 18:20 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Frank Solensky 2010-07-06 17:13:28 UTC
Building gnome 3.0 from scratch with jhbuild.
The gst-plugins-base module fails with the following errors:
---
Making all in riff
make[4]: Entering directory `/mnt/common/opt/gnome2/usr/src/gst-plugins-base/gst-libs/gst/riff'
  CC     libgstriff_0.10_la-riff.lo
  CC     libgstriff_0.10_la-riff-media.lo
  CC     libgstriff_0.10_la-riff-read.lo
  CCLD   libgstriff-0.10.la
  GEN    GstRiff-0.10.gir
/opt/gnome2/share/gir-1.0/GstInterfaces-0.10.gir: Incompatible version 1.0 (supported: 1.1)
make[4]: *** [GstRiff-0.10.gir] Error 1
make[4]: Leaving directory `/mnt/common/opt/gnome2/usr/src/gst-plugins-base/gst-libs/gst/riff'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/mnt/common/opt/gnome2/usr/src/gst-plugins-base/gst-libs/gst'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/mnt/common/opt/gnome2/usr/src/gst-plugins-base/gst-libs'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/common/opt/gnome2/usr/src/gst-plugins-base'
make: *** [all] Error 2
---
$ jhbuild info gst-plugins-base
Name: gst-plugins-base
Module Set: gnome-suites-3.0
Type: autogen
Install date: not installed
Git-Module: git://anongit.freedesktop.org/gstreamer/gst-plugins-base
Tree-ID: 115e503bdf03b7da241965c41be8dc401aec6b52
Requires: gstreamer, gtk+, liboil
Required-by: totem, gnome-media, gst-python, gst-plugins-bad, gst-plugins-good, meta-gnome-desktop-suite, gst-plugins-farsight, pitivi, gstreamermm, telepathy-stream-engine, meta-gnome-mobile-suite, gnonlin, gst-openmax, cheese, gnome-applets, gst-rtsp-server, gst-ffmpeg, sound-juicer, gst-fluendo-mp3, rhythmbox, libnice, gst-fluendo-mpegdemux, banshee, gst-plugins-ugly, gst-plugins-gl, clutter-gst, brasero, libdmapsharing, monkey-bubble
---
Comment 1 Tim-Philipp Müller 2010-07-06 17:56:18 UTC
Uhm, I have no idea why it's looking at the installed /opt/gnome2/share/gir-1.0/GstInterfaces-0.10.gir file. It should be using the GstInterfaces-0.10.gir from within the build tree.

I don't really know how to debug this. Maybe best to ask some introspection people. 

Does this make any difference? In gst-libs/gst/riff/Makefile.am:

 libgstriff_@GST_MAJORMINOR@_la_LIBADD = \
   $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
+  $(top_builddir)/gst-libs/gst/tag/libgstinterfaces-@GST_MAJORMINOR@.la \
   $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
   $(GST_BASE_LIBS) $(GST_LIBS)

?
Comment 2 Tim-Philipp Müller 2010-07-06 17:57:36 UTC
> +  $(top_builddir)/gst-libs/gst/tag/libgstinterfaces-@GST_MAJORMINOR@.la \

Sorry that should have been:

 +  $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
Comment 3 Frank Solensky 2010-07-06 19:22:36 UTC
Same result:

make[4]: Entering directory `/mnt/common/opt/gnome2/usr/src/gst-plugins-base/gst-libs/gst/riff'
 cd ../../.. && /bin/sh /mnt/common/opt/gnome2/usr/src/gst-plugins-base/missing --run automake-1.11 --gnu gst-libs/gst/riff/Makefile
 cd ../../.. && /bin/sh ./config.status gst-libs/gst/riff/Makefile depfiles
config.status: creating gst-libs/gst/riff/Makefile
config.status: executing depfiles commands
make[4]: Leaving directory `/mnt/common/opt/gnome2/usr/src/gst-plugins-base/gst-libs/gst/riff'
make[4]: Entering directory `/mnt/common/opt/gnome2/usr/src/gst-plugins-base/gst-libs/gst/riff'
  GEN    GstRiff-0.10.gir
/opt/gnome2/share/gir-1.0/GstInterfaces-0.10.gir: Incompatible version 1.0 (supported: 1.1)
Comment 4 Frank Solensky 2010-07-06 19:35:16 UTC
Your comment about it looking at the installed files rather than the build tree got me to thinking.  On a whim I tried "rm /opt/gnome2/share/gir/*" and running it again.  Now it fails when building GstInterfaces-0.10.gir:
---
  GEN    GstInterfaces-0.10.gir
Couldn't find include 'Gst-0.10.gir' (search path: ['/opt/gnome2/share/gir-1.0', '/opt/gnome2/share/gir-1.0', '/opt/gnome2/share/gir-1.0', '/usr/share/gir-1.0', '/opt/gnome2/share/gir-1.0'])
make[5]: *** [GstInterfaces-0.10.gir] Error 1
make[5]: Leaving directory `/mnt/common/opt/gnome2/usr/src/gst-plugins-base/gst-libs/gst/interfaces'
---
I suspect that the search path is missing the build tree directories for some reason.
Comment 5 Tim-Philipp Müller 2010-07-06 20:14:24 UTC
> Your comment about it looking at the installed files rather than the build tree
> got me to thinking.  On a whim I tried "rm /opt/gnome2/share/gir/*" and running
> it again.  Now it fails when building GstInterfaces-0.10.gir:
> ---
>   GEN    GstInterfaces-0.10.gir
> Couldn't find include 'Gst-0.10.gir' (search path:
> ['/opt/gnome2/share/gir-1.0', '/opt/gnome2/share/gir-1.0',
> '/opt/gnome2/share/gir-1.0', '/usr/share/gir-1.0',
> '/opt/gnome2/share/gir-1.0'])
> make[5]: *** [GstInterfaces-0.10.gir] Error 1
> make[5]: Leaving directory
> `/mnt/common/opt/gnome2/usr/src/gst-plugins-base/gst-libs/gst/interfaces'
> ---
> I suspect that the search path is missing the build tree directories for some
> reason.

Well, that's not entirely surprising, since it expects to find Gst-0.10.gir (from GStreamer core) in the installed location (check with pkg-config --variable=girdir gstreamer-0.10)
Comment 6 Tim-Philipp Müller 2010-07-06 20:17:40 UTC
I have another idea: how about changing this in gst-libs/gst/riff/Makefile.am (might need similar changes in other gst-libs/gst/*/Makefile.am):

  GstRiff-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstriff-@GST_MAJORMINOR@.la
- 	$(AM_V_GEN)PKG_CONFIG_PATH="$(PKG_CONFIG_PATH):$(top_builddir)/pkgconfig" \
+ 	$(AM_V_GEN)PKG_CONFIG_PATH="$(top_builddir)/pkgconfig:$(PKG_CONFIG_PATH)" \

?
Comment 7 Frank Solensky 2010-07-07 13:21:56 UTC
Well that's odd..  I started another build last night and ran into a link problem:
---
  GEN    GstRiff-0.10.gir
./.libs/libgstriff-0.10.so: undefined reference to `gst_tag_freeform_string_to_utf8'
collect2: ld returned 1 exit status
Traceback (most recent call last):
  • File "/opt/gnome2/bin/g-ir-scanner", line 38 in <module>
    sys.exit(scanner_main(sys.argv))
  • File "/opt/gnome2/lib64/gobject-introspection/giscanner/scannermain.py", line 325 in scanner_main
    glibtransformer.get_get_type_functions())
  • File "/opt/gnome2/lib64/gobject-introspection/giscanner/dumper.py", line 236 in compile_introspection_binary
    return dc.run()
  • File "/opt/gnome2/lib64/gobject-introspection/giscanner/dumper.py", line 132 in run
    self._link(bin_path, o_path)
  • File "/opt/gnome2/lib64/gobject-introspection/giscanner/dumper.py", line 231 in _link
    subprocess.check_call(args)
  • File "/usr/lib64/python2.6/subprocess.py", line 488 in check_call
    raise CalledProcessError(retcode, cmd)
ubprocess.CalledProcessError: Command '['../../../libtool', '--mode=link', '--tag=CC', '--silent', 'gcc', '-o', '/mnt/common/opt/gnome2/usr/src/gst-plugins-base/gst-libs/gst/riff/tmp-introspectoYd2T4/GstRiff-0.10', '-L.', '-Wl,--export-dynamic', '-pthread', '-L/opt/gnome2/lib64', '-lgirepository-1.0', '-lgobject-2.0', '-lgmodule-2.0', '-lffi', '-lgthread-2.0', '-lrt', '-lglib-2.0', 'libgstriff-0.10.la', '-pthread', '-Wl,--export-dynamic', '-L/opt/gnome2/lib64', '-lgio-2.0', '-lgirepository-1.0', '-lgobject-2.0', '-lgmodule-2.0', '-lffi', '-lgthread-2.0', '-lrt', '-lglib-2.0', '/mnt/common/opt/gnome2/usr/src/gst-plugins-base/gst-libs/gst/riff/tmp-introspectoYd2T4/GstRiff-0.10.o']' returned non-zero exit status 1
make[4]: *** [GstRiff-0.10.gir] Error 1
make[4]: Leaving directory `/mnt/common/opt/gnome2/usr/src/gst-plugins-base/gst-libs/gst/riff'
---

Figuring (read: 'guessing') that this might have been related to the earlier attempt to clear this up, I started clean:
  rm -rf /mnt/common/opt/gnome2/usr/src/gst-plugins-base
  jhbuild buildone gst-plugins-base

*** success ***

I don't see anything in the log for gst-plugins-base that looks like it may have fixed this indirectly but, well, it's fine now.

(shrug) Thanks anyway..
Comment 8 Tim-Philipp Müller 2010-07-07 16:41:51 UTC
Hrm, ok, mysterious. Well, if there's still an issue, I'm sure someone else will run into it soon enough. Thanks!
Comment 9 Tim-Philipp Müller 2010-08-14 18:20:14 UTC
This may or may not fix this issue (hard to test, everyone just deletes the installed .gir file instead of figuring out a fix):

commit b61b83376abc624b6c1f8156c8c91186e7897506
Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>
Date:   Sat Aug 14 18:36:55 2010 +0100

    introspection: set PKG_CONFIG_PATH so that our in-tree libs come first when calling scanner
    
    When calling gobject-introspection scanner, make sure our own
    freshly-built libs within the source tree (well, build dir) come
    first in the PKG_CONFIG_PATH. May or may not help to make sure
    that it doesn't pick up older external plugins-base libs (or
    .gir files) from outside the source tree / build directory as
    dependencies of the introspected lib instead of using the
    stuff we just built in a sibling directory.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=623698