GNOME Bugzilla – Bug 471895
runtime unresolved symbols cause by inter-library dependencies
Last modified: 2009-10-27 23:34:34 UTC
Please describe the problem: There is long standing bug in gentoo: bugs.gentoo.org/141448 . The problem is that: after a recent gnome-2.14 update and evolution I get the following errors. Nothing really displays outside of the Contacts window. (evolution-2.6:29052): evolution-shell-WARNING **: Cannot activate 'OAFIID:GNOME_Evolution_Mail_Component:2.6': g_module_open of `/usr/lib/evolution/2.6/components/libevolution-mail.so' failed with `/usr/lib/evolution/2.6/libecontactlisteditor.so.0: undefined symbol: eab_load_error_dialog' This is caused by inter-library dependencies in evolution and as stated in the bug there are two possible solutions for the problem: * -Wl,-z,lazy flag * assign the references with the __attribute__ ((weak)) gcc directive Possible workaround is stated in the bug as well. Steps to reproduce: Actual results: Expected results: Does this happen every time? Other information:
I ran "LD_BIND_NOW=1 evolution" as mentioned in the Gentoo bug on an i386 machine running Evolution 2.22. Haven't been able to reproduce the runtime warnings. Are you still seeing this problem with 2.22, or is there something else I need to do to trigger it?
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for. Thanks!
Got bitten by this with 2.23.92
I do not really know why you cannot replicate this. For me it is not a problem at all to do... So tell me what to do to get this thing reopened? [I] mail-client/evolution Installed versions: 2.22.3.1(2.0)(17:37:45 11/20/08)(dbus hal ipv6 ssl) Can replicate this with a computer running 2.24 also. xake@flyttis ~ $ DISPLAY=":0" evolution CalDAV Eplugin starting up ... ** (evolution:1303): DEBUG: mailto URL command: evolution %s ** (evolution:1303): DEBUG: mailto URL program: evolution xake@flyttis ~ $ LD_BIND_NOW="1" DISPLAY=":0" evolution CalDAV Eplugin starting up ... (evolution:1309): evolution-shell-WARNING **: Cannot activate 'OAFIID:GNOME_Evolution_Tasks_Component:2.22': g_module_open of `/usr/lib/evolution/2.22/components/libevolution-calendar.so' failed with `/usr/lib/evolution/2.22/components/libevolution-calendar.so: undefined symbol: mail_tool_uri_to_folder' (evolution:1309): evolution-shell-WARNING **: Cannot activate 'OAFIID:GNOME_Evolution_Memos_Component:2.22': g_module_open of `/usr/lib/evolution/2.22/components/libevolution-calendar.so' failed with `/usr/lib/evolution/2.22/components/libevolution-calendar.so: undefined symbol: mail_tool_uri_to_folder' (evolution:1309): evolution-shell-WARNING **: Cannot activate 'OAFIID:GNOME_Evolution_Calendar_Component:2.22': g_module_open of `/usr/lib/evolution/2.22/components/libevolution-calendar.so' failed with `/usr/lib/evolution/2.22/components/libevolution-calendar.so: undefined symbol: mail_tool_uri_to_folder' ** (evolution:1309): DEBUG: mailto URL command: evolution %s ** (evolution:1309): DEBUG: mailto URL program: evolution
Reopening and confirming because I'm struggling with this myself on the kill-bonobo branch, which removes Bonobo from Evolution. I'm still not having any problems with the Bonobo-based builds though, for some reason. We've got circular libraries dependencies all over the place. The addressbook libraries are particularly bad, but I've moved some code around on the branch which should help straighten it out. The remaining problem is the composer. Addressbook, calendar, and mail all depend on it, but the composer itself depends on mail. I'm chipping away at the problem but haven't fully untangled it yet.
Really reopening : it is confirmed with evo 2.24.3 on Mandriva 2009.0 : https://qa.mandriva.com/show_bug.cgi?id=46144
One idea I had to help deal with the composer issue was to move the composer integration, at least for the address book and calendar, into a plugin. Dependencies now: Addressbook Calendar Mail | | ^ | | | | v | Note the circular dependency between +------> Composer <--+ <-- Mail and Composer. This causes parts of Addressbook and Calendar to also depend on Mail. With a composer plugin: Composer Integration Plugin (implements "Forward" / "Send Message To" features) | | | | | | v v v Addressbook Calendar Composer <--> Mail The circular dependency between Mail and Composer still exists, but the other modules no longer depend on Mail.
mbarnes, as far as I can tell ( although I don't know much about the internals of evolution ) the only user of shell-code is in e-msg-composer.c : static void set_editor_text (EMsgComposer *composer, const gchar *text, gboolean set_signature) If I'm wrong, correct me... Couldn't this be fixed directly in kill-bonobo? Ore am I overseeing more users of shell code?
FWIW, the kill-bonobo branch now builds with -Wl,--no-undefined. I've added that to configure.ac as a permanent linker flag.
I believe this issue has been resolved by the Bonobo removal and source code reorganization effort in 2.29, so I'm closing this as FIXED for now. We can always reopen if there's still problems.