Hadn’t compiled GNOME for a while so I gave it a shot yesterday evening. I ran jhbuild build evolution which should build everything required for Evolution. I had a fresh and empty install directory.
I don’t post this to blame anybody but I wonder how many people give up at this stage and how many potential non-1337h4x0r5 contributors GNOME loses because of such build problems. Teh fun.
gtk+-3 and gtk+:
Workaround: Edit /home/user/installdir/share/gir-1.0/Atk-1.0.gir by changing the line <repository version=”1.0″ to <repository version=”1.2″.
make: Entering directory `/home/user/checkoutdir/gnutls-2.8.6/doc/examples’
/usr/bin/ld: ex-serv1.o: undefined reference to symbol ‘gcry_control@@GCRYPT_1.2′
/usr/bin/ld: note: ‘gcry_control@@GCRYPT_1.2′ is defined in DSO /home/user/installdir//lib/libgcrypt.so.11 so try adding it to the linker command line
/home/user/installdir//lib/libgcrypt.so.11: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make: *** [ex-serv1] Error 1
and change AM_LDFLAGS = -no-install
to AM_LDFLAGS = -no-install -lgcrypt
. See this bug report
drbg.c: In function ‘RNG_RandomUpdate’:
drbg.c:510: error: size of array ‘arg’ is negative
drbg.c:513: warning: large integer implicitly truncated to unsigned type
make: *** [Linux2.6_x86_glibc_PTH_OPT.OBJ/Linux_SINGLE_SHLIB/drbg.o] Error 1
make: Leaving directory `/home/user/checkoutdir/nss-3.12.6/mozilla/security/nss/lib/freebl’
make: *** [libs] Error 2
Workaround: Could not find any, hence ugly: Commented line 510.
Next problem: Now the next modules will fail with
/usr/bin/perl: /home/user/installdir/lib/libfreebl3.so: version `NSSRAWHASH_3.12.3′ not found (required by /lib/libcrypt.so.1)
Workaround: Tried adding #module_makeargs['nss'] = makeargs + ‘CFLAGS+=”-FREEBL_NO_DEPEND=1″‘ to ~/.jhbuildrc but that did not help. Just deleting the offending file /home/user/installdir/lib/libfreebl3.so worked though (probably uses the system one in that case). Hmm.
NetworkManager (branch NETWORKMANAGER_0_7)
configure.ac:64: warning: AM_NLS is m4_require’d but not m4_defun’d
checking for POLKIT… configure: error: Package requirements (polkit-dbus) were not met:
No package ‘polkit-dbus’ found
Workaround: jhbuild build PolicyKit (which will create the missing file /home/user/installdir/lib/pkgconfig/polkit-dbus.pc)
tclsh ./tool/mksqlite3h.tcl . >sqlite3.h
/bin/sh: tclsh: Command not found
make: *** [sqlite3.h] Error 127
Using module_autogenargs['sqlite3'] = autogenargs + ‘ –disable-tcl’
did not work anymore, hence after reading the upstream bug report
I grumpily installed TCL from the system repository.
In file included from html.c:32:
../gtkhtml/htmlengine.h:63: error: expected specifier-qualifier-list before ‘GdkGC’
html.c: In function ‘html_a11y_get_extents’:
html.c:321: error: ‘HTMLEngine’ has no member named ‘x_offset’
html.c:322: error: ‘HTMLEngine’ has no member named ‘y_offset’
make: *** [html.lo] Error 1
make: Leaving directory `/home/user/checkoutdir/gtkhtml/a11y’
g-ir-scanner: warning: Option –strip-prefix has been deprecated;
see –identifier-prefix and –symbol-prefix.
AvahiCore-0.6.gir: Incompatible version 1.0 (supported: 1.2)
make: *** [Avahi-0.6.gir] Error 1
make: Leaving directory `/home/user/checkoutdir/avahi-0.6.27/avahi-gobject’
Reason: Old .gir format. I edited avahi-gobject/AvahiCore-0.6.gir and replaced <repository version=”1.0″ by <repository version=”1.2″, and in configure.ac I replaced GOBJECT_INTROSPECTION_CHECK([0.6.7]) by GOBJECT_INTROSPECTION_CHECK([0.9.5]).
But that did not help – next problem:
AssertionError: Failed to parse toplevel type
After finding the corresponding bug report
I gave up on this module.
After all I couldn’t build evolution of course (No package ‘libgtkhtml-4.0′ found).
Not very productive, and right now I’m too annoyed to edit the JhbuildIssues wikipage.