GNOME Bugzilla – Bug 617888
libwnck fails to build from git outside source tree
Last modified: 2010-07-06 10:49:37 UTC
By setting 'buildroot' in .jhbuildrc so that jhbuild builds stuffs from outside git source trees, libwnck fails to build, with the following messages: ---8<--- libtool: link: gcc -g -O2 -I/home/gnome2/include -Wall -o .libs/test-tasklist test-tasklist.o -pthread -L/home/gnome2/lib64 /home/gnome2/lib64/libgtk-x11-2.0.so /home/gnome2/lib64/libgdk-x11-2.0.so /home/gnome2/lib64/libatk-1.0.so /home/gnome2/lib64/libgio-2.0.so /home/gnome2/lib64/libpangoft2-1.0.so /home/gnome2/lib64/libgdk_pixbuf-2.0.so /home/gnome2/lib64/libpangocairo-1.0.so /home/gnome2/lib64/libcairo.so /home/gnome2/lib64/libpango-1.0.so /usr/lib/libfreetype.so /home/gnome2/lib64/libfontconfig.so /home/gnome2/lib64/libgmodule-2.0.so /home/gnome2/lib64/libgobject-2.0.so /home/gnome2/lib64/libgthread-2.0.so -lrt /home/gnome2/lib64/libglib-2.0.so /home/gnome2/lib64/libstartup-notification-1.so ./.libs/libwnck-1.so -pthread -Wl,-rpath -Wl,/home/gnome2/lib64 make[2]: *** No rule to make target `/home/thep/vcs/gnome_git/libwnck/libwnck/wnck-enum-types.h', needed by `Wnck-1.0.gir'. Stop. make[2]: Leaving directory `/home/thep/build/gnome_git/libwnck/libwnck' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/thep/build/gnome_git/libwnck' make: *** [all] Error 2 ---8<--- It's this line that caused the problem: > Wnck_1_0_gir_FILES = $(addprefix $(srcdir)/,$(introspection_sources)) $(introspection_sources) includes all sources and headers, including wnck-enum-types.h, which is generated in $(builddir). So, adding $(srcdir) prefix here is just wrong. Note that this kind of problem may not be caught by 'make distcheck', as the generated files are included in the distributed tarball. But this is not the case for VCS builds, such as with jhbuild.
Created attachment 160432 [details] [review] Split the generated header list This patch split the generated headers from the list, and treat them differently.
This problem has been fixed in our software repository. The fix will go into the next software release. Thank you for your bug report.
This seems to break distcheck. I might investigate tomorrow before I release 2.30.2, else I'l just revert.
I've reverted; the issue is that the generated files are shipped with the tarballs. We should fix this, but I don't have time to find the right tweak for this. Could you investigate this?
(In reply to comment #4) > Could you investigate this? I'll have to restart the builds after having been distracted to other things for a long time. Now getting stuck at gobject-introspection build (Bug 571591), whose fix looked trivial to me at first, but turned out to be not.
The error I find from the mandatory "make" before "make distcheck" is: ---8<--- gtk-doc: Compiling scanner libtool: compile: gcc -g -O2 -I/home/gnome3/include -Wall -I/home/thep/vcs/gnome_git/libwnck -pthread -I/home/gnome3/include/gtk-2.0 -I/home/gnome3/lib64/gtk-2.0/include -I/home/gnome3/include/atk-1.0 -I/home/gnome3/include/cairo -I/home/gnome3/include/gdk-pixbuf-2.0 -I/home/gnome3/include/pango-1.0 -I/home/gnome3/include/glib-2.0 -I/home/gnome3/lib64/glib-2.0/include -I/home/gnome3/include/pixman-1 -I/home/gnome3/include/startup-notification-1.0 -I/usr/include/freetype2 -I/usr/include/libpng12 -DWNCK_I_KNOW_THIS_IS_UNSTABLE -g -O2 -I/home/gnome3/include -Wall -c libwnck-scan.c -fPIC -DPIC -o .libs/libwnck-scan.o In file included from libwnck-scan.c:7: /home/thep/vcs/gnome_git/libwnck/libwnck/libwnck.h:39:37: error: libwnck/wnck-enum-types.h: No such file or directory Compilation of scanner failed: make[2]: *** [scan-build.stamp] Error 1 make[2]: Leaving directory `/home/thep/build/gnome_git/libwnck/doc' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/thep/build/gnome_git/libwnck' make: *** [all] Error 2 ---8<--- This can be fixed by adding -I$(top_builddir) to GTKDOC_CFLAGS in doc/Makefile.am. However, I'd like to update the previous patch by adopting the new introspection make rule as introduced in gobject-introspection 0.6.14 (bug 616425). The generated/manual source split is no more needed.
Feel free to do any change you want in the patch, as long as both "make" and "make distcheck" work :-)
Created attachment 165342 [details] [review] Use g-i 0.6.14 + distcheck fix The updated patch, with 'make distcheck' error fixed.
Comment on attachment 165342 [details] [review] Use g-i 0.6.14 + distcheck fix Thanks, please commit.
Pushed. (Just realized after that that I forgot to refer to this bug in the log.) Closing the bug anyway.