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 471895 - runtime unresolved symbols cause by inter-library dependencies
runtime unresolved symbols cause by inter-library dependencies
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Mailer
2.24.x (obsolete)
Other All
: Normal major
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
evolution[kill-bonobo]
Depends on:
Blocks:
 
 
Reported: 2007-08-30 15:18 UTC by Peter
Modified: 2009-10-27 23:34 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Peter 2007-08-30 15:18:54 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:
Comment 1 Matthew Barnes 2008-03-16 17:46:40 UTC
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?
Comment 2 Tobias Mueller 2008-08-14 22:23:14 UTC
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!
Comment 3 Peter Hjalmarsson 2008-09-15 09:05:53 UTC
Got bitten by this with 2.23.92
Comment 4 Peter Hjalmarsson 2008-11-20 18:52:48 UTC
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
Comment 5 Matthew Barnes 2008-11-20 19:31:01 UTC
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.
Comment 6 Frederic Crozat 2008-12-03 10:54:37 UTC
Really reopening : it is confirmed with evo 2.24.3 on Mandriva 2009.0 : https://qa.mandriva.com/show_bug.cgi?id=46144
Comment 7 Matthew Barnes 2008-12-03 13:59:33 UTC
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.
Comment 8 H.Habighorst 2009-08-28 07:20:19 UTC
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?
Comment 9 Matthew Barnes 2009-08-28 12:38:33 UTC
FWIW, the kill-bonobo branch now builds with -Wl,--no-undefined.
I've added that to configure.ac as a permanent linker flag.
Comment 10 Matthew Barnes 2009-10-27 23:34:34 UTC
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.