GNOME Bugzilla – Bug 656277
Install failure due undefined reference to `e_book_backend_sqlitedb_is_summary_fields'
Last modified: 2012-11-16 12:58:25 UTC
Building from git with jhbuild libtool: relink: gcc -shared .libs/libebookbackendfile_la-e-book-backend-file.o .libs/libebookbackendfile_la-e-book-backend-file-factory.o -Wl,-rpath -Wl,/opt/gnome3/lib64 -L/opt/gnome3/lib64 -L/opt/gnome3/_jhbuild/root-evolution-data-server/opt/gnome3/lib64 -lebook-1.2 -ledata-book-1.2 -ledataserver-1.2 -lebackend-1.2 -L/opt/gnome3/lib -ldb -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lgconf-2 -lglib-2.0 -Wl,--no-undefined -pthread -pthread -Wl,-soname -Wl,libebookbackendfile.so -o .libs/libebookbackendfile.so .libs/libebookbackendfile_la-e-book-backend-file.o: In function `view_notify_update': /home/betatester/Source/gnome3/evolution-data-server/addressbook/backends/file/e-book-backend-file.c:1524: undefined reference to `e_book_backend_sqlitedb_is_summary_fields' collect2: ld returned 1 exit status libtool: install: error: relink `libebookbackendfile.la' with the above command before installing it
Same here.
Wild guess: Triggered by bug 656058.
Thanks for a bug report. This is yet another similar bug report involving jhbuild. It makes me think of jhbuild doing things wrong. As far as I can tell, the $(top_builddir)/addressbook/libedata-book/libedata-book-1.2.la contains the function, same as other e_book_backend_sqlitedb_* functions, but the linker claims about this one only. I believe the libedata-book-1.2.la wasn't rebuilt for some reason, or, as stated in bug 656026, the jhbuild links against old library, which doesn't have the new function. Please ask some jhbuild expert, as I do not know jhbuild at all, and building "by-hand" works for me without any issue.
Maybe this is just the regular problem of the libraries in /usr/lib/ being used because /usr/lib also has .la files, and .la files just don't seem to work properly. This often happens when a library (such as glib or GTK+) adds new functions. Removing the .la files is the general solution.
Sorry I somehow did not receive notification of this bug, but as I can see Murray and Milan already made comments. afaics EDS compiles fine from git, if jhbuild fails inside a dirty environment (or an environment with a previous development checkout already built and installed)... then this kind of thing is very typical and as Murray says typically just removing the .la files from the install root is sufficient to fix. I think this is only an issue when the code changes between 2 development installations without incrementing the library version number. Let's leave this for an EDS maintainer to close...
There have been numerous E-D-S releases since this was first reported, so closing this as OBSOLETE.