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 656026 - Fails to build
Fails to build
Status: RESOLVED OBSOLETE
Product: evolution-data-server
Classification: Platform
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Evolution Shell Maintainers Team
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2011-08-05 13:39 UTC by sean finney
Modified: 2012-02-13 12:00 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description sean finney 2011-08-05 13:39:42 UTC
On a fresh jhbuild rebuild of master, into an empty prefix:


 /bin/bash ../../libtool   --mode=install /home/me/.local/bin/install-check   libebook-1.2.la '/opt/gnome/_jhbuild/root-evolution-data-server/opt/gnome/lib64'
libtool: install: warning: relinking `libebook-1.2.la'
libtool: install: (cd /home/me/gnome3/evolution-data-server/addressbook/libebook; /bin/bash /home/me/gnome3/evolution-data-server/libtool  --silent --tag CC --mode=relink gcc -g -O0 -Wl,-rpath=/opt/gnome/lib64 -version-info 15:1:3 -L/opt/gnome/lib64 -Wl,--no-undefined -o libebook-1.2.la -rpath /opt/gnome/lib64 libebook_1_2_la-e-book-marshal.lo libebook_1_2_la-e-address-western.lo libebook_1_2_la-e-book-client.lo libebook_1_2_la-e-book-client-view.lo libebook_1_2_la-e-book-query.lo libebook_1_2_la-e-book-view.lo libebook_1_2_la-e-book.lo libebook_1_2_la-e-contact.lo libebook_1_2_la-e-destination.lo libebook_1_2_la-e-name-western.lo libebook_1_2_la-e-vcard.lo ../../addressbook/libegdbus/libegdbus-book.la ../../camel/libcamel-1.2.la ../../libedataserver/libedataserver-1.2.la -pthread -L/opt/gnome/lib64 -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lgconf-2 -lglib-2.0 -pthread -L/opt/gnome/lib64 -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lnss3 -lnssutil3 -lsmime3 -lssl3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lsqlite3 -lz -L/usr/lib -lkrb5 -lk5crypto -lcom_err -lgssapi_krb5 -inst-prefix-dir /opt/gnome/_jhbuild/root-evolution-data-server)
.libs/libebook_1_2_la-e-book-client.o: In function `backend_property_changed_cb':
/home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:403: undefined reference to `e_gdbus_templates_decode_two_strings'
/home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:408: undefined reference to `e_client_emit_backend_property_changed'
.libs/libebook_1_2_la-e-book-client.o: In function `book_client_get_backend_property':
/home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:936: undefined reference to `e_client_get_backend_property_from_cache'
/home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:938: undefined reference to `e_client_finish_async_without_dbus'
/home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:940: undefined reference to `e_client_proxy_call_string_with_res_op_data'
.libs/libebook_1_2_la-e-book-client.o: In function `book_client_get_backend_property_finish':
/home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:962: undefined reference to `e_client_update_backend_property_cache'
.libs/libebook_1_2_la-e-book-client.o: In function `book_client_get_backend_property_sync':
/home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:990: undefined reference to `e_client_get_backend_property_from_cache'
/home/me/gnome3/evolution-data-server/addressbook/libebook/e-book-client.c:1002: undefined reference to `e_client_update_backend_property_cache'
../../addressbook/libegdbus/.libs/libegdbus-book.a(libegdbus_book_la-e-gdbus-book.o): In function `e_gdbus_book_encode_set_backend_property':
/home/me/gnome3/evolution-data-server/addressbook/libegdbus/e-gdbus-book.c:377: undefined reference to `e_gdbus_templates_encode_two_strings'
../../addressbook/libegdbus/.libs/libegdbus-book.a(libegdbus_book_la-e-gdbus-book.o): In function `e_gdbus_book_decode_set_backend_property':
/home/me/gnome3/evolution-data-server/addressbook/libegdbus/e-gdbus-book.c:384: undefined reference to `e_gdbus_templates_decode_two_strings'
collect2: ld returned 1 exit status
libtool: install: error: relink `libebook-1.2.la' with the above command before installing it
make[4]: *** [install-libLTLIBRARIES] Error 1
make[4]: Leaving directory `/home/me/gnome3/evolution-data-server/addressbook/libebook'
make[3]: *** [install-am] Error 2
make[3]: Leaving directory `/home/me/gnome3/evolution-data-server/addressbook/libebook'
make[2]: *** [install] Error 2
make[2]: Leaving directory `/home/me/gnome3/evolution-data-server/addressbook/libebook'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/me/gnome3/evolution-data-server/addressbook'
make: *** [install-recursive] Error 1
Comment 1 Milan Crha 2011-08-08 09:03:42 UTC
The function "e_gdbus_templates_decode_two_strings" is part
of libedataserver-1.2.la, which is linked to libebook-1.2.la,
as $(top_builddir)/libedataserver/libedataserver-1.2.la. I see it in the file. it doesn't make much sense it being missed. Could you make sure your jhbuild rebuild the libedataserver files too? This change was added very recently.
Comment 2 sean finney 2011-08-08 15:14:21 UTC
Hi Milan,

Yes, it does rebuild/link all files.  And note that this failure happens at install time, not build or link time.  

The problem from what I can tell is that a libedataserver-1.2.la file also already exists in an older version (without symbols) in $prefix, and libtool does not seem to know to install the new libedataserver-1.2.la file before libebook-1.2.la file.  The order really ought not to matter for how the files are install'd, except that libtool has this "nice feature" that it notices the library in the prefix is different and will automatically try to re-link the files being installed against it (note the first "Warning" in the above), and the symbols are missing there, hence the failure.

There was a similar problem with the camel filter provider code a couple weeks back, and the "workaround" is the same, to nuke the prefix and rebuild everything.  But ultimately the fault is either in the autofoo makefiles for not properly expressing the dependencies, or perhaps libtool for not realizing this.

To reproduce the problem:

 * nuke your prefix and destdir
 * rewind/reset/clean eds to before the symbols were introduced
 * jhbuild and install
 * fastforward
 * jhbuild and install again
Comment 3 Milan Crha 2011-08-09 17:01:29 UTC
Works for me. It might be something with jhbuild then? I'm not using jhbuild, I'm building evo on my own, and I did exactly what you wrote above. I was forced to run ./autogen.sh again, due to change in configure.ac, which maybe did the trick?
Comment 4 sean finney 2011-09-01 13:21:48 UTC
same problem again today, different symbols:

.libs/libcamelpop3_la-camel-pop3-folder.o: In function `pop3_folder_synchronize_sync':
/home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-folder.c:544: undefined reference to `camel_service_get_settings'
.libs/libcamelpop3_la-camel-pop3-settings.o: In function `camel_pop3_settings_get_type':
/home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-settings.c:41: undefined reference to `camel_store_settings_get_type'
/home/me/evolution-data-server/camel/providers/pop3/camel-pop3-settings.c:41: undefined reference to `camel_network_settings_get_type'
.libs/libcamelpop3_la-camel-pop3-settings.o: In function `pop3_settings_set_property':
/home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-settings.c:80: undefined reference to `camel_network_settings_get_type'
/home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-settings.c:80: undefined reference to `camel_network_settings_set_security_method'
.libs/libcamelpop3_la-camel-pop3-settings.o: In function `pop3_settings_get_property':
/home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-settings.c:127: undefined reference to `camel_network_settings_get_type'
/home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-settings.c:127: undefined reference to `camel_network_settings_get_security_method'
.libs/libcamelpop3_la-camel-pop3-store.o: In function `connect_to_server':
/home/me/gnome3/evolution-data-server/camel/providers/pop3/camel-pop3-store.c:106: undefined reference to `camel_service_get_settings'
collect2: ld returned 1 exit status



i suspect it may be a difference in how jhbuild builds and installs vs how you are doing it.  i.e. you're donig something along the lines of

./autogen.sh
./configure
make
make install

and jhbuild is more like

./autogen.sh
./configure
make
make install DESTDIR=somewhere-not-prefix
something-that-copies-destdir-to-prefix
Comment 5 Matthew Barnes 2011-09-01 13:29:32 UTC
I suggest getting distcheck working again, even if it means temporarily disabling the address book and calendar tests which have been semi-broken since the move to XDG base directories.

"make destdir" also uses DESTDIR when installing.  It should flush out any problems.
Comment 6 Matthew Barnes 2011-09-01 13:30:11 UTC
(In reply to comment #5)
> "make destdir" also uses DESTDIR when installing.

Grr... "make distcheck" I meant.
Comment 7 André Klapper 2012-01-11 12:25:59 UTC
seanius: Do you still run into this issue or can this be closed as OBSOLETE?
Comment 8 André Klapper 2012-02-13 12:00:21 UTC
No feedback => OBSOLETE.