Bug 43200 - Logger does not detect missing gobject-introspection tools
Summary: Logger does not detect missing gobject-introspection tools
Status: RESOLVED FIXED
Alias: None
Product: Telepathy
Classification: Unclassified
Component: logger (show other bugs)
Version: git master
Hardware: Other Linux (All)
: lowest enhancement
Assignee: Telepathy bugs list
QA Contact: Telepathy bugs list
URL: http://buildbot.telepathy.im/builders...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-11-23 06:20 UTC by Alvaro Soliverez
Modified: 2011-11-25 03:50 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Alvaro Soliverez 2011-11-23 06:20:49 UTC
While making changes on the buildbot to make projects build out-of-tree, I found tp-logger throws an error in that configuration.

Here is the error log:

make  all-recursive
make[1]: Entering directory `/var/lib/buildbot/telepathy/telepathy-logger-amd64/build/build'
Making all in tools
make[2]: Entering directory `/var/lib/buildbot/telepathy/telepathy-logger-amd64/build/build/tools'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/var/lib/buildbot/telepathy/telepathy-logger-amd64/build/build/tools'
Making all in extensions
make[2]: Entering directory `/var/lib/buildbot/telepathy/telepathy-logger-amd64/build/build/extensions'
  GEN    _gen/all.xml
  GEN    _gen/misc.xml
  GEN    _gen/cli-misc-body.h
  GEN    _gen/gtypes-body.h
  GEN    _gen/interfaces-body.h
  GEN    _gen/register-dbus-glib-marshallers-body.h
  GEN    _gen/signals-marshal.list
  GEN    _gen/signals-marshal.c
  GEN    _gen/signals-marshal.h
  GEN    _gen/svc-misc.c
  GEN    _gen/enums.h
make  all-am
make[3]: Entering directory `/var/lib/buildbot/telepathy/telepathy-logger-amd64/build/build/extensions'
  CC     extensions.lo
  CC     extensions-cli.lo
  CC     signals-marshal.lo
  CC     svc-misc.lo
  CCLD   libtpl-extensions-convenience.la
make[3]: Leaving directory `/var/lib/buildbot/telepathy/telepathy-logger-amd64/build/build/extensions'
make[2]: Leaving directory `/var/lib/buildbot/telepathy/telepathy-logger-amd64/build/build/extensions'
Making all in telepathy-logger
make[2]: Entering directory `/var/lib/buildbot/telepathy/telepathy-logger-amd64/build/build/telepathy-logger'
  GEN    tpl-marshal.c
  GEN    tpl-marshal.c
  GEN    tpl-marshal.h
make  all-am
make[3]: Entering directory `/var/lib/buildbot/telepathy/telepathy-logger-amd64/build/build/telepathy-logger'
  CC     action-chain.lo
  CC     call-event.lo
  CC     channel.lo
  CC     channel-factory.lo
  CC     conf.lo
  CC     entity.lo
  CC     dbus-service.lo
  CC     debug.lo
  CC     event.lo
  CC     log-manager.lo
  CC     log-store.lo
  CC     log-store-xml.lo
  CC     log-store-sqlite.lo
  CC     log-store-pidgin.lo
  CC     log-store-factory.lo
  CC     observer.lo
  CC     text-channel.lo
  CC     text-event.lo
  CC     util.lo
  CC     tpl-marshal.lo
  CCLD   libtelepathy-logger.la
make[3]: *** No rule to make target `TelepathyLogger-0.2.typelib', needed by `all-am'.  Stop.
make[3]: Leaving directory `/var/lib/buildbot/telepathy/telepathy-logger-amd64/build/build/telepathy-logger'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/var/lib/buildbot/telepathy/telepathy-logger-amd64/build/build/telepathy-logger'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/lib/buildbot/telepathy/telepathy-logger-amd64/build/build'
make: *** [all] Error 2
Comment 1 Cosimo Alfarano 2011-11-23 08:27:55 UTC
Related buildbot run: http://buildbot.telepathy.im/builders/telepathy-logger%20-%20amd64/builds/46/
Comment 2 Cosimo Alfarano 2011-11-23 08:33:49 UTC
I'm not a big autotools expert :(
but I cannot reproduce it on my box, what buildbot is doing more than:

<git stuff>
$ ./autogen.sh --prefix=/var/lib/buildbot/install/usr --enable-gtk-doc --no-configure
$ ./configure --prefix=/var/lib/buildbot/install/usr
$ make

?

It might help understanding what configuration has been changed in buildbot to compile out of tree.
Comment 3 Alvaro Soliverez 2011-11-23 08:54:06 UTC
(In reply to comment #2)
> I'm not a big autotools expert :(
> but I cannot reproduce it on my box, what buildbot is doing more than:
> 
> <git stuff>
> $ ./autogen.sh --prefix=/var/lib/buildbot/install/usr --enable-gtk-doc
> --no-configure
> $ ./configure --prefix=/var/lib/buildbot/install/usr
> $ make
> 
> ?
> 
> It might help understanding what configuration has been changed in buildbot to
> compile out of tree.

<git clean>
<git update>
./autogen.sh --prefix=/var/lib/buildbot/install/usr --enable-gtk-doc --no-configure
mkdir build
cd build
../configure --prefix=/var/lib/buildbot/install/usr --enable-gtk-doc
make
Comment 4 Cosimo Alfarano 2011-11-23 09:24:25 UTC
(In reply to comment #3)
> <git clean>
> <git update>
> ./autogen.sh --prefix=/var/lib/buildbot/install/usr --enable-gtk-doc
> --no-configure
> mkdir build
> cd build
> ../configure --prefix=/var/lib/buildbot/install/usr --enable-gtk-doc
> make

indeed. It still works for me; It's probably that on my laptop is missing/present and is not on buildbot.
TelepathyLogger-0.2.typelib is actually created correctly the make terminates normally.

I'll look into it, can you reproduce it on your box?
Comment 5 Alvaro Soliverez 2011-11-23 10:05:49 UTC
Ok. Now it's working, after we installed gobject-introspection for another project that was failing.

Perhaps there's a dependency check for that missing?
Comment 6 Nicolas Dufresne 2011-11-23 11:34:05 UTC
Interesting, we do exactly the same check as Telepathy GLib does, did you had he same issue building Telepathy GLib ?
Comment 7 Alvaro Soliverez 2011-11-23 11:41:17 UTC
(In reply to comment #6)
> Interesting, we do exactly the same check as Telepathy GLib does, did you had
> he same issue building Telepathy GLib ?

That's why we found the issue. But Tp Glib didn't catch the missing dependency either. 

kov fuound the missing dependency, but the configure didn't warn of any problem before building.
Comment 8 Nicolas Dufresne 2011-11-23 13:15:30 UTC
I've given a close look to this and all the check are dependent on the /usr/lib64/pkgconfig/gobject-introspection-1.0.pc file. It is assumed that this file is in the same package as the generator/compiler/makefiles (on Fedora it is all in gobject-introspection-devel).

From your configure trace, I see that this file is indeed present as the check succeed, but at least the makefile (/usr/share/gobject-introspection-1.0/Makefile.introspection) was missing. Thus no rules get created. This is a distribution error, but it could have been trapped at build time by replacing:

-include $(INTROSPECTION_MAKEFILE)

By:

if HAVE_INTROSPECTION
include $(INTROSPECTION_MAKEFILE)
endif

Which would have error out on "file not found" making it obvious your installation is not correct. We could also check if the different files exist, but I think we should be able to trust the .pc files in general. Up to you to propose a fix as this is not strictly our bug.
Comment 9 Simon McVittie 2011-11-24 03:17:40 UTC
(In reply to comment #8)
> I've given a close look to this and all the check are dependent on the
> /usr/lib64/pkgconfig/gobject-introspection-1.0.pc file. It is assumed that this
> file is in the same package as the generator/compiler/makefiles (on Fedora it
> is all in gobject-introspection-devel).

Right, on Debian the .pc is in libgirepository1.0-dev, but the makefile, executables etc. are in gobject-introspection.

I suspect the rationale for how it's packaged in Debian was that the .pc file represents the shared library, rather than the command-line tools - but it looks as though, upstream, the .pc is meant to fulfil both roles? So libgirepository1.0-dev should probably depend on gobject-introspection - I've opened a bug suggesting that.

> it could have been
> trapped at build time by replacing:
> 
> -include $(INTROSPECTION_MAKEFILE)
> 
> By:
> 
> if HAVE_INTROSPECTION
> include $(INTROSPECTION_MAKEFILE)
> endif

That sounds like a good idea, regardless - failing early is better.
Comment 10 Alvaro Soliverez 2011-11-24 03:24:46 UTC
From your description, I agree this is a packaging problem.

If you can include that fix to throw an early warning, that would be great.
Comment 11 Nicolas Dufresne 2011-11-24 08:08:02 UTC
(In reply to comment #9)
> I suspect the rationale for how it's packaged in Debian was that the .pc file
> represents the shared library, rather than the command-line tools - but it
> looks as though, upstream, the .pc is meant to fulfil both roles? So
> libgirepository1.0-dev should probably depend on gobject-introspection - I've
> opened a bug suggesting that.

A quick look at the PC file demonstrate the fact :)
  g_ir_scanner=${bindir}/g-ir-scanner
  g_ir_compiler=${bindir}/g-ir-compiler
  g_ir_generate=${bindir}/g-ir-generate
  gidatadir=${datadir}/gobject-introspection-1.0
  girdir=${datadir}/gir-1.0
  typelibdir=${libdir}/girepository-1.0
Comment 12 Nicolas Dufresne 2011-11-24 10:54:23 UTC
I added the fix to make it fail earlier, the rest is not our bug.
Comment 13 Simon McVittie 2011-11-25 03:50:18 UTC
Thanks. For the record, the Debian bug is <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=649859>


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.