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 617888 - libwnck fails to build from git outside source tree
libwnck fails to build from git outside source tree
Status: RESOLVED FIXED
Product: libwnck
Classification: Core
Component: general
git master
Other All
: Normal normal
: ---
Assigned To: libwnck maintainers
libwnck maintainers
Depends on:
Blocks: 569778
 
 
Reported: 2010-05-06 12:36 UTC by Theppitak Karoonboonyanan
Modified: 2010-07-06 10:49 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Split the generated header list (956 bytes, patch)
2010-05-06 12:38 UTC, Theppitak Karoonboonyanan
none Details | Review
Use g-i 0.6.14 + distcheck fix (1.88 KB, patch)
2010-07-06 10:33 UTC, Theppitak Karoonboonyanan
accepted-commit_now Details | Review

Description Theppitak Karoonboonyanan 2010-05-06 12:36:33 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.
Comment 1 Theppitak Karoonboonyanan 2010-05-06 12:38:55 UTC
Created attachment 160432 [details] [review]
Split the generated header list

This patch split the generated headers from the list, and treat them differently.
Comment 2 Vincent Untz 2010-06-22 01:47:54 UTC
This problem has been fixed in our software repository. The fix will go into the next software release. Thank you for your bug report.
Comment 3 Vincent Untz 2010-06-22 02:44:44 UTC
This seems to break distcheck. I might investigate tomorrow before I release 2.30.2, else I'l just revert.
Comment 4 Vincent Untz 2010-06-22 03:11:59 UTC
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?
Comment 5 Theppitak Karoonboonyanan 2010-06-25 11:20:11 UTC
(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.
Comment 6 Theppitak Karoonboonyanan 2010-07-06 09:57:34 UTC
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.
Comment 7 Vincent Untz 2010-07-06 10:30:28 UTC
Feel free to do any change you want in the patch, as long as both "make" and "make distcheck" work :-)
Comment 8 Theppitak Karoonboonyanan 2010-07-06 10:33:42 UTC
Created attachment 165342 [details] [review]
Use g-i 0.6.14 + distcheck fix

The updated patch, with 'make distcheck' error fixed.
Comment 9 Vincent Untz 2010-07-06 10:41:45 UTC
Comment on attachment 165342 [details] [review]
Use g-i 0.6.14 + distcheck fix

Thanks, please commit.
Comment 10 Theppitak Karoonboonyanan 2010-07-06 10:49:37 UTC
Pushed. (Just realized after that that I forgot to refer to this bug in the log.)
Closing the bug anyway.