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
Related buildbot run: http://buildbot.telepathy.im/builders/telepathy-logger%20-%20amd64/builds/46/
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.
(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
(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?
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?
Interesting, we do exactly the same check as Telepathy GLib does, did you had he same issue building Telepathy GLib ?
(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.
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.
(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.
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.
(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
I added the fix to make it fail earlier, the rest is not our bug.
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.