GNOME Bugzilla – Bug 659890
Merge addressbook 'widgets' and 'merging' libraries
Last modified: 2015-02-18 12:40:51 UTC
Running 3.1.91 on Ubuntu 11.10 B1 Steps to reproduce: a) Create a contact with name "A" in local address book b) Drag from local addressbook to google addressbook (contact moves) c) Create another contact with name "A" in local address book d) Drag from local addressbook to google addressbook (evolution crashed) Expected behavior would be to pull up the merge dialogue Downstream bug https://bugs.launchpad.net/ubuntu/+source/evolution/+bug/856937
The stacktrace from launchpad .
+ Trace 228548
Thread 2 (Thread 0xb75f9b70 (LWP 15578))
This part is interesting:
+ Trace 228556
Thanks for a bug report. I tried to reproduce this and I do not see any such issue, evolution doesn't crash for me, nether prints any critical warning when dropping the contact above the google address book. Could you run evolution from console, reproduce the issue and paste here the output shown in the console since evolution's start, please? Thanks in advance.
imac@n8-laptop:~$ evolution dragging 1 card(s) (evolution:4508): GLib-GObject-WARNING **: cannot register existing type `EABContactDisplay' e-utils-ERROR **: eab-contact-duplicate-detected.ui: Invalid type function on line 90: 'eab_contact_display_get_type' Trace/breakpoint trap (core dumped) Attached is gdb backtrace from an identical session. Re your comment, the issue occurs when you drop the contact the second time in the google address book, not the first time.
Created attachment 197363 [details] gdb backtrace output Opened evolution (in mail) switched to contacts (local addressbook) and created an "A" contact and dragged it to my Google contacts. Repeated to crash point. (gdb) handle SIG33 pass nostop noprint (gdb) set pagination 0 (gdb) run (gdb) backtrace full (gdb) info registers (gdb) x/16i $pc (gdb) thread apply all backtrace
Exactly the same steps work for me without any issue, even when I try 3 times with the same contact (only fullname set to "A"). the warning: > (evolution:4508): GLib-GObject-WARNING **: cannot register existing > type `EABContactDisplay' usually means that either the dynamicly linked library which provides this type was unloaded, but the GType system didn't notice and left the type registered. (this type is not unloaded for me) or that other library has this module linked in statically or somehow, that it thinks the type isn't registered yet and thus it registers it again. Also, the eab_contact_display_get_type() uses g_type_register_static(), and it's part of libeabwidgets.la library, which is not installed. I also see that this function is called multiple times whenever I change selection in the Contacts view (with a minicard view), thus I expect this being some linking issue, but I do not know why you face it, but I do not. Matthew, do you recall anything similar with other libs and what was done to fix it? (apart of finding since when and why this happened).
I know we recently made all dynamically-loaded modules resident so they're never unloaded, but that should have _fixed_ bugs like this and I think that happened prior to 3.1.91. Beyond that nothing springs to mind.
Still happening in 3.2.0, also added downstream link where there are other reporters.
Could you check what compiler and linker flags are used when building evolution, please? Maybe also ./configure parameters being used. Maybe it's somehow related to a way how evolution is built.
Created attachment 197834 [details] config log from evolution 3.2.0 dpkg-build on Ubuntu 11.10 Here's the config.log from the dpkg-build
Thanks for the update. I tried with your CFLAGS and LDFLAGS, but I didn't face the issue. Maybe it's related to something else. I'll try to reproduce once I upgrade my OS to 3.2.x.
When you get to a clean 3.2, I was able to reproduce using the following steps with just a Google account and no pre-existing data on 3.2.0. 1) Purge evolution from .config, .local, .cache, .gconf and remove online accounts 2) Reboot 3) Add a Google online account, only contacts and email(to skip wizard on evo startup) 4) Allow contacts to refresh (I have about 1900) 5) Restart evolution (another google contacts bug jams up address-book factory on first load sometimes, this gets it back to normal) 6) Create contact "A" in local address book 7) Move to Google addressbook 8) Repeat 6-7
this still seems to be an issue with 3.2, backtrace of the downstream report: Program received signal SIGTRAP, Trace/breakpoint trap. g_logv (log_domain=0x7ffff7980a9c "e-utils", log_level=<optimized out>, format=0x7ffff798524b "%s: %s", args1=0x7fffffffdc88) at /build/buildd/glib2.0-2.30.0/./glib/gmessages.c:577 577 /build/buildd/glib2.0-2.30.0/./glib/gmessages.c: No such file or directory. in /build/buildd/glib2.0-2.30.0/./glib/gmessages.c (gdb) backtrace full
+ Trace 228670
Hrm, so I have a fresh installation of F16 Beta, updated to 3.2.0 versions, and it works as expected, I am asked for a merge and when I accept it I have the second contact 'A' merged into the previous one. Might valgrind help here? My usual valgrind command looks like this: $ G_SLICE=always-malloc valgrind --num-callers=50 evolution &>log.txt
Created attachment 198975 [details] valgrind output Attached is valgrind from the same command
Thanks for the update. I see that more than half of the log comes for invalid reads and using uninitialized memory inside PyObject_Free() which is called from a Py module for evolution. I would start with a simple thing of removing this module from evolution, to not load/use it on start. Invalid reads are usually harmless, in a sense of modifying memory memory not belonging to it (otherwise invalid reads are not good too, because the code can do anything afterwards), but because this one comes from a 'free' functions, then I'm wondering whether this cannot free foreign memory, the one where the invalid read pointed to. In that case it can break any object being allocated in a memory. Not using the Py module may show us whether my guess is right.
Created attachment 199014 [details] [review] little evo patch for evolution; At the bottom of the log is shown as you dragged one contact, which resulted in uninitialized memory usage on drop in evolution. This patch is fixing this particular thing from your valgrind log. I do not expect it being related to the crash itself, because I saw this claim on my machine too.
Applied patch, no change on crash scenario.
What about disabled python module/plugin for evolution? Modules are at /usr/lib/evolution/3.2/modules/ and plugins at /usr/lib/evolution/3.2/plugins/ Notice it can differ on your system, this in on Fedora (I have it lib64 instead of lib too).
Created attachment 199219 [details] stack trace without python module I moved the module (shown below) out of the module path, confirmed no e-addressbook factory was running and restarted evolution. It crashed in a similar manner. I attached the stack trace in case there are any new hints. /usr/lib/evolution/3.2/modules# mv libevolution-module-plugin-python.so /usr/src
hrm, still the same. When you run this under valgrind, will it show the Python issues? It might not, but I want to be sure, because if it's not it, then something with compile-time/run-time lefts.
Created attachment 199312 [details] [review] wild guess patch for evolution; Could you try with this patch, please? It's a wild guess, but maybe it'll help. Thanks in advance.
(In reply to comment #17) > Created an attachment (id=199014) [details] [review] > little evo patch Created commit a6830da in evo master (3.3.1+) Created commit b8f07af in evo gnome-3-2 (3.2.2+)
patch in #22 will not work with current 3.2.1 source I'm using in Ubuntu 11.10, even after applying manually. A series of multiple definition errors, including ../../../addressbook/gui/merging/.libs/libeabbookmerging.a(libeabbookmerging_la-eab-contact-compare.o): In function `eab_contact_compare_name_to_string_full': /usr/src/evolution-3.2.1/addressbook/gui/merging/eab-contact-compare.c:127: multiple definition of `eab_contact_compare_name_to_string_full' ../../../addressbook/gui/widgets/.libs/libeabwidgets.a(libeabbookmerging_la-eab-contact-compare.o):/usr/src/evolution-3.2.1/addressbook/gui/merging/eab-contact-compare.c:127: first defined here
Hrm, it didn't show up for me when I was testing the patch. Because of this circular dependency, I would join the 'merging' folder content into the 'widgets' folder and skip the libeabbookmerging.la creation, because it'll be part of libeabwidgets.la. I'll try to update the patch.
Created attachment 199810 [details] [review] wild guess patch ][ for evolution; Please revert the previous patch from here, and do the following: a) move all these files from addressbook/gui/merging to addressbook/gui/widgets eab-contact-commit-duplicate-detected.ui eab-contact-compare.c eab-contact-compare.h eab-contact-duplicate-detected.ui eab-contact-merging.c eab-contact-merging.h b) remove/rename the addressbook/gui/merging folder c) apply this patch d) reconfigure with $ ./autogen.sh && ./configure ...
Created attachment 199867 [details] pre-build steps per previous comment okay, I attempted this. Same steps, except I used dpkg-buildpackage to do the d) configure and make; I think this is okay. The result is a bunch of undefined references, starting with this one. .libs/libeabwidgets_la-e-minicard.o: In function `e_minicard_realize': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard.c:524: undefined reference to `e_text_get_type' I attached a session transcript from the pre-build steps to confirm I executed them correctly. You can observe that a couple of the hunks still needed to be manually applied because of a missing context in the Ubuntu source to, $(EVOLUTION_DATA_SERVER_LIBS) \ in each of the Makefile.am files. I assume this has to do with the fact that the EDS packages are built from a separate/different source in Ubuntu.
Steps looks good, thanks. The error "just" means that more libraries are supposed to be added (they didn't exhibit to me) into: addressbook/gui/widgets/Makefile.am below the just added + $(top_builddir)/addressbook/util/libeabutil.la \ I would add there these as a beginning: $(top_builddir)/shell/libeshell.la \ $(top_builddir)/widgets/table/libetable.la \ $(top_builddir)/widgets/text/libetext.la \ $(top_builddir)/widgets/misc/libemiscwidgets.la \ $(top_builddir)/widgets/menus/libmenus.la \ Maybe it's too many, but it may ensure it'll not be missing anything. In case you have there more missing, please attach all the errors here, and I'll provide you with the list of missing libraries. Thanks in advance.
After adding those above, missing these ones below, .libs/libecontacteditor_la-eab-editor.o: In function `eab_editor_class_init': /usr/src/evolution-3.2.1/addressbook/gui/contact-editor/eab-editor.c:163: undefined reference to `e_shell_get_type' .libs/libecontacteditor_la-eab-editor.o: In function `eab_editor_set_shell': /usr/src/evolution-3.2.1/addressbook/gui/contact-editor/eab-editor.c:78: undefined reference to `e_shell_get_type' .libs/libecontacteditor_la-eab-editor.o: In function `eab_editor_get_shell': /usr/src/evolution-3.2.1/addressbook/gui/contact-editor/eab-editor.c:255: undefined reference to `e_shell_get_type' .libs/libecontacteditor_la-eab-editor.o: In function `eab_editor_quit_requested_cb': /usr/src/evolution-3.2.1/addressbook/gui/contact-editor/eab-editor.c:70: undefined reference to `e_shell_cancel_quit' .libs/libecontacteditor_la-e-contact-editor.o: In function `e_contact_editor_init': /usr/src/evolution-3.2.1/addressbook/gui/contact-editor/e-contact-editor.c:4002: undefined reference to `e_shell_get_default' /usr/src/evolution-3.2.1/addressbook/gui/contact-editor/e-contact-editor.c:4015: undefined reference to `e_shell_get_express_mode' /usr/src/evolution-3.2.1/addressbook/gui/contact-editor/e-contact-editor.c:4118: undefined reference to `e_shell_watch_window' .libs/libecontacteditor_la-e-contact-editor.o: In function `e_contact_editor_new': /usr/src/evolution-3.2.1/addressbook/gui/contact-editor/e-contact-editor.c:4275: undefined reference to `e_shell_get_type' .libs/libecontacteditor_la-e-contact-quick-add.o: In function `build_quick_add_dialog': /usr/src/evolution-3.2.1/addressbook/gui/contact-editor/e-contact-quick-add.c:436: undefined reference to `e_shell_get_active_window' .libs/libecontacteditor_la-e-contact-quick-add.o: In function `merge_cb': /usr/src/evolution-3.2.1/addressbook/gui/contact-editor/e-contact-quick-add.c:161: undefined reference to `e_shell_get_active_window' .libs/libecontacteditor_la-e-contact-quick-add.o: In function `ce_have_contact': /usr/src/evolution-3.2.1/addressbook/gui/contact-editor/e-contact-quick-add.c:253: undefined reference to `e_shell_get_default' collect2: ld returned 1 exit status
Eh, of course, I missed this one, I'm sorry for that: $(top_builddir)/shell/libeshell.la \
Nope, you have that one :) .. but it is missing from contact-editor so I added it there as well. I also needed to add $(top_builddir)/addressbook/gui/widgets/libeabwidgets.la \ to contact-list-editor Upon successful rebuild and re-install, the problem has been resolved. Good wild guess. Thanks
FYI, since applying this patch, I have seen these two crashes - just thought I'd mention it if it was obvious they are related. https://bugzilla.gnome.org/show_bug.cgi?id=662803 https://bugzilla.gnome.org/show_bug.cgi?id=662788 I'm rolling back to see if I can repeat them without this change.
(In reply to comment #32) > FYI, since applying this patch, I have seen these two crashes - just thought > I'd mention it if it was obvious they are related. > > bug #662803 Crash within gnome-canvas inside e-week-view; we might not influence this part, as it's calendar. Even the calendar/gui/Makefile.am creates a dynamic library which links to addressbook parts too. What about adding $(top_builddir)/addressbook/gui/widgets/libeabwidgets.la there too? > bug #662788 Seems like a duplicate of the previous bug. Just different occasion. > I'm rolling back to see if I can repeat them without this change. I'll update the patch to contain your fixes too, and extend it even more for your runtime finding, to have it complete and ensure that the committed version will fit your version in use.
Created attachment 200081 [details] [review] (not-so) wild guess ]I[ for evolution; Please do same files movement from merging to widgets folder under addressbook/gui and then compile evolution with this patch applied, but I think there is something really wrong somewhere, because the only thing I did here was that I moved "all" LIBADD .la libraries which are installed in privsolib to each LIBADD where the library itself is used. I thought this should be done automatically, either by libtool or by autotools, because otherwise it's just about piling LIBADD together, which is really pain and proofe to break (like the missing libshell.la in the Makefile.am which is using internal evolution library which requires it.
Could you attach here your addressbook/gui/contact-editor/libecontacteditor.la and addressbook/gui/contact-list-editor/libecontactlisteditor.la files, please? The best before the patch applied, after make && make install. I think your 'dependency_libs' in the file are not populated as expected, which is causing this trouble. I tried to remove libeshell.la from LIBADD in both of these folders (in Makefile.am files) and they are part of dependency_libs of the result .la files, they only disappeared from relink_command, which is correct. If I'm right here, then we might rather find what the reason for missing chain dependency libraries is for you, instead of workarounding it. I believe the similar issue is with your two bugs from comment #32, there might be "missing" added a dependency library to libgnomecanvas.la in the calendar part. By the way, is it printing any errors when you run evolution from a console, similar to that in comment #4, only for the gnome-canvas type? Just curious, is your code compiled with "make -j" option, and if so, is it possible to let it know to not use parallel building, please? Just in case...
Created attachment 200116 [details] patch transcript Okay, I applied you updated patch. It still required a number of manual updates to add libraries to deal with some different context in my source. I attached a transcript so you can see the rejects. Per the dpkg-buildpackage man page (excerpt below), the -j option works to pass the the option on to make and there appears to be no overrides in the code base. -jjobs Number of jobs allowed to be run simultaneously, equivalent to the make(1) option of the same name. Will add itself to the MAKEFLAGS environment variable, which should cause all subsequent make invocations to inherit the option. Also adds parallel=jobs to the DEB_BUILD_OPTIONS environment variable which allows debian/rules files to use this information for their own purposes. The parallel=jobs in DEB_BUILD_OPTIONS environment variable will override the -j value if this option is given After applying the patch manually, still a bunch of missing libs, .libs/libeabwidgets_la-e-minicard.o: In function `e_minicard_realize': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard.c:524: undefined reference to `e_text_get_type' .libs/libeabwidgets_la-e-minicard.o: In function `e_minicard_drag_begin': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard.c:1175: undefined reference to `e_reflow_get_type' .libs/libeabwidgets_la-e-minicard.o: In function `e_minicard_event': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard.c:655: undefined reference to `e_reflow_get_type' /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard.c:703: undefined reference to `e_reflow_model_incarnate' .libs/libeabwidgets_la-e-minicard.o: In function `e_minicard_drag_begin': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard.c:1176: undefined reference to `e_reflow_get_type' .libs/libeabwidgets_la-e-minicard-label.o: In function `e_minicard_label_class_init': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard-label.c:150: undefined reference to `e_text_model_get_type' .libs/libeabwidgets_la-e-minicard-label.o: In function `e_minicard_label_event': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard-label.c:362: undefined reference to `e_text_get_type' /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard-label.c:362: undefined reference to `e_text_cancel_editing' .libs/libeabwidgets_la-e-minicard-label.o: In function `e_minicard_label_realize': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard-label.c:313: undefined reference to `e_text_get_type' /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard-label.c:325: undefined reference to `e_text_get_type' .libs/libeabwidgets_la-e-minicard-view.o: In function `e_minicard_view_get_type': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard-view.c:577: undefined reference to `e_reflow_get_type' .libs/libeabwidgets_la-e-minicard-view.o: In function `e_minicard_view_get_card_list': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard-view.c:621: undefined reference to `e_reflow_get_type' .libs/libeabwidgets_la-e-minicard-view-widget.o: In function `e_minicard_view_widget_real_focus_in_event': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard-view-widget.c:523: undefined reference to `e_reflow_get_type' .libs/libeabwidgets_la-e-minicard-view-widget.o: In function `e_minicard_view_widget_realize': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard-view-widget.c:425: undefined reference to `e_reflow_get_type' /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard-view-widget.c:429: undefined reference to `e_reflow_get_type' .libs/libeabwidgets_la-e-minicard-view-widget.o:/usr/src/evolution-3.2.1/addressbook/gui/widgets/e-minicard-view-widget.c:498: more undefined references to `e_reflow_get_type' follow .libs/libeabwidgets_la-e-addressbook-reflow-adapter.o: In function `search_result': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:404: undefined reference to `e_reflow_model_get_type' .libs/libeabwidgets_la-e-addressbook-reflow-adapter.o: In function `model_changed': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:383: undefined reference to `e_reflow_model_get_type' .libs/libeabwidgets_la-e-addressbook-reflow-adapter.o: In function `modify_contact': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:376: undefined reference to `e_reflow_model_get_type' .libs/libeabwidgets_la-e-addressbook-reflow-adapter.o: In function `create_contact': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:349: undefined reference to `e_reflow_model_get_type' .libs/libeabwidgets_la-e-addressbook-reflow-adapter.o: In function `remove_contacts': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:367: undefined reference to `e_reflow_model_get_type' .libs/libeabwidgets_la-e-addressbook-reflow-adapter.o:/usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:364: more undefined references to `e_reflow_model_get_type' follow .libs/libeabwidgets_la-e-addressbook-reflow-adapter.o: In function `addressbook_create_cmp_cache': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:199: undefined reference to `e_reflow_model_count' .libs/libeabwidgets_la-e-addressbook-reflow-adapter.o: In function `e_addressbook_reflow_adapter_new': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:625: undefined reference to `e_reflow_model_get_type' .libs/libeabwidgets_la-e-addressbook-reflow-adapter.o: In function `search_result': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:404: undefined reference to `e_reflow_model_comparison_changed' .libs/libeabwidgets_la-e-addressbook-reflow-adapter.o: In function `model_changed': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:383: undefined reference to `e_reflow_model_changed' .libs/libeabwidgets_la-e-addressbook-reflow-adapter.o: In function `modify_contact': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:376: undefined reference to `e_reflow_model_item_changed' .libs/libeabwidgets_la-e-addressbook-reflow-adapter.o: In function `create_contact': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:349: undefined reference to `e_reflow_model_items_inserted' .libs/libeabwidgets_la-e-addressbook-reflow-adapter.o: In function `remove_contacts': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:367: undefined reference to `e_reflow_model_changed' /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-reflow-adapter.c:363: undefined reference to `e_reflow_model_item_removed' .libs/libeabwidgets_la-e-addressbook-view.o: In function `addressbook_view_create_minicard_view': /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-view.c:375: undefined reference to `e_reflow_model_get_type' /usr/src/evolution-3.2.1/addressbook/gui/widgets/e-addressbook-view.c:375: undefined reference to `e_reflow_model_changed' .libs/libeabwidgets_la-ea-minicard-view.o: In function `selection_interface_is_child_selected': /usr/src/evolution-3.2.1/addressbook/gui/widgets/ea-minicard-view.c:357: undefined reference to `e_reflow_get_type' .libs/libeabwidgets_la-ea-minicard-view.o: In function `selection_interface_get_selection_count': /usr/src/evolution-3.2.1/addressbook/gui/widgets/ea-minicard-view.c:341: undefined reference to `e_reflow_get_type' .libs/libeabwidgets_la-ea-minicard-view.o: In function `selection_interface_clear_selection': /usr/src/evolution-3.2.1/addressbook/gui/widgets/ea-minicard-view.c:317: undefined reference to `e_reflow_get_type' .libs/libeabwidgets_la-ea-minicard-view.o: In function `selection_interface_add_selection': /usr/src/evolution-3.2.1/addressbook/gui/widgets/ea-minicard-view.c:299: undefined reference to `e_reflow_get_type' .libs/libeabwidgets_la-ea-minicard-view.o: In function `atk_action_interface_do_action': /usr/src/evolution-3.2.1/addressbook/gui/widgets/ea-minicard-view.c:384: undefined reference to `e_reflow_get_type' .libs/libeabwidgets_la-ea-minicard-view.o:/usr/src/evolution-3.2.1/addressbook/gui/widgets/ea-minicard-view.c:259: more undefined references to `e_reflow_get_type' follow collect2: ld returned 1 exit status
The e_text and e_reflow functions come from $(top_builddir)/widgets/text/libetext.la \ and I suppose you'll need also this one to be added: $(top_builddir)/libgnomecanvas/libgnomecanvas.la \ I'm sorry for failed chunks, the patch is still against git master. Good the issue is not with -j, still, it doesn't make much sense to me, as what can be so different on your build system that I do not face it myself.
Created attachment 200446 [details] [review] Updated patch to work with Ubuntu 11.10 source So I made modifications to the patch, and successfully applied it. Attached it here if you want to review.
Created attachment 200447 [details] requested la files Attached are the .la files you requested for comparison. The .la files marked pre-patch are those built against the vanilla Ubuntu source (3.2.1-0ubuntu1). The post-patch files are those created after applying the patch in the previous comment and executing the move from /merge/ to /widgets/ described above.
Thanks for the update. I see you've in dependency_libs same libraries as I do, only those from gtkhtml and evolution-data-server are used from the system. I suppose you build against system libraries then. They are otherwise quite same, which makes me wonder even more what can be so different in your build system. Anyway, does your attached patch fix the issue for you, and you can use calendar/tasks/memo/mailer/contacts parts as expected, same as merge contacts, with it, please? If yes, then I can make the change and commit it for 3.3.2.
The issues is resolved, but I now crash in calendar, likely in the same manner as above, reported below. https://bugs.launchpad.net/ubuntu/+source/evolution/+bug/885257 I think perhaps engaging a downstream dev that understands the subtleties of the dpkg-buildpackage process is prudent, https://launchpad.net/~pvillavi https://launchpad.net/~mathieu-tl
(The ling gives me "Lost something?" page, probably a private bug) I agree, having someone knowledgeable on the build system will be easier and quicker to both of us, because, as I said, you are the first facing the issue, after many years, thus it's possible some change in the build system or build flags "discovered" this issue. The file movement from merging to widgets seems correct to me, because these two folders are cross-referenced, which can make trouble, one day. If I recall correctly I was unable to build evolution if I kept noinst_LTLIBRARIES = libeabwidgets.la with added files. The thing is that this static library is linked into various modules, and each of them can have its own GType for the EABContactDisplay, which is the reason why I made it dynamically linked module in the "guess patch" above, to have only one GType across all modules whose are using this library.
*** Bug 665694 has been marked as a duplicate of this bug. ***
*** Bug 707884 has been marked as a duplicate of this bug. ***
I finally committed merge of the 'widgets' and 'merging' addressbook libraries, thus they do not cross-reference each other anymore. Please let me know in case I overlooked any library dependency in the project (it builds fine here on Fedora). Created commit a3b2e00 in evo master (3.11.1+)
*** Bug 709257 has been marked as a duplicate of this bug. ***
*** Bug 720025 has been marked as a duplicate of this bug. ***
*** Bug 744107 has been marked as a duplicate of this bug. ***