GNOME Bugzilla – Bug 680927
Build failure: Adapt to Evolution-Data-Server API changes
Last modified: 2018-08-17 18:48:13 UTC
I'm the Fedora maintainer for gnome-phone-manager. The culprit seems to be evolution-data-server 3.5.4. End of build log: ibtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/evolution-data-server-3.6 -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/gnome-keyring-1 -I/usr/include/libxml2 -I/usr/include/libsoup-2.4 -DDATA_DIR=\"/usr/share/gnome-phone-manager\" -DGNOMELOCALEDIR=\"/usr/share/locale\" -Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-sign-compare -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -c phonemgr-utils.c -fPIC -DPIC -o .libs/phonemgr-utils.o In file included from phonemgr-utils.c:30:0: /usr/include/evolution-data-server-3.6/libebook/e-contact.h:10:2: error: #error "Only <libebook/libebook.h> should be included directly." In file included from /usr/include/evolution-data-server-3.6/libebook/e-contact.h:18:0, from phonemgr-utils.c:30: /usr/include/evolution-data-server-3.6/libebook/e-vcard.h:24:2: error: #error "Only <libebook/libebook.h> should be included directly." phonemgr-utils.c: In function 'phonemgr_utils_start_parse': phonemgr-utils.c:423:2: warning: 'g_atexit' is deprecated (declared at /usr/include/glib-2.0/glib/gutils.h:239) [-Wdeprecated-declarations] phonemgr-utils.c: In function 'phonemgr_utils_connect': phonemgr-utils.c:525:2: warning: 'gn_cfg_memory_read' is deprecated (declared at /usr/include/gnokii.h:267) [-Wdeprecated-declarations] phonemgr-utils.c:535:2: warning: 'gn_cfg_phone_load' is deprecated (declared at /usr/include/gnokii.h:274) [-Wdeprecated-declarations] phonemgr-utils.c:540:2: warning: 'gn_gsm_initialise' is deprecated (declared at /usr/include/gnokii.h:259) [-Wdeprecated-declarations] ---------------------- I've made attempts at fixing the includes, but then it still fails: libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -pthread -D_REENTRANT -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng15 -I/usr/include/gconf/2 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/gnome-bluetooth -I/usr/include/evolution-data-server-3.6 -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/gnome-keyring-1 -I/usr/include/libxml2 -I/usr/include/libsoup-2.4 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -c e-contact-entry.c -fPIC -DPIC -o .libs/e-contact-entry.o In file included from e-contact-entry.c:44:0: e-contact-entry.h:73:61: error: unknown type name 'ESourceList' e-contact-entry.h:74:1: error: unknown type name 'ESourceList' e-contact-entry.c:71:3: error: unknown type name 'ESourceList' e-contact-entry.c: In function 'e_contact_entry_display_func': e-contact-entry.c:228:22: warning: operation on 'item->identifier' may be undefined [-Wsequence-point] e-contact-entry.c: In function 'view_contacts_added_cb': e-contact-entry.c:287:7: error: cannot convert to a pointer type e-contact-entry.c:288:15: error: 'EContactPhoto' has no member named 'length' e-contact-entry.c: In function 'view_completed_cb': e-contact-entry.c:345:78: warning: comparison between 'EBookViewStatus' and 'enum <anonymous>' [-Wenum-compare] e-contact-entry.c: At top level: e-contact-entry.c:460:11: error: unknown type name 'ESourceList' e-contact-entry.c:531:1: error: unknown type name 'ESourceList' e-contact-entry.c: In function 'e_contact_entry_set_property': e-contact-entry.c:603:5: warning: implicit declaration of function 'e_contact_entry_set_source_list' [-Wimplicit-function-declaration] e-contact-entry.c: In function 'e_contact_entry_class_init': e-contact-entry.c:721:57: error: 'E_TYPE_SOURCE_LIST' undeclared (first use in this function) e-contact-entry.c:721:57: note: each undeclared identifier is reported only once for each function it appears in e-contact-entry.c:708:19: warning: variable 'widget_class' set but not used [-Wunused-but-set-variable] e-contact-entry.c: At top level: e-contact-entry.c:420:1: warning: 'book_opened_cb' defined but not used [-Wunused-function] make[4]: *** [e-contact-entry.lo] Error 1 make[4]: Leaving directory `/home/limb/rpmbuild/BUILD/gnome-phone-manager-0.68/cut-n-paste/e-contact-entry' make[3]: *** [all] Error 2 -------------- Suggestions?
See https://bugzilla.gnome.org/buglist.cgi?bug_id=677725,677404,677402,677392,677383
Thanks. Good to know work is ongoing, CCing Matthew Barnes. Matthew, I'm a bit in the dark, do you want to see what I've got so far?
(In reply to comment #2) > do you want to see what I've got so far? Yes. (Though I'm not Matthew.)
Created attachment 220062 [details] An initial attempt. Attached.
I didn't realize there was still an active upstream for gnome-phone-manager! I landed a major Evolution-Data-Server API break in 3.5.3 as part of our transition off of GConf. You can read my announcement here: http://mbarnes.livejournal.com/4631.html I also put together a migration guide to serve as a starting point: https://live.gnome.org/Evolution/ESourceMigrationGuide If you need further help let me know. I'd be happy to try and provide a patch, but can't guarantee how soon I can get to it.
Excellent, thanks! Anything either of you can do would be great, since you're both far more familiar with this API than I.
Jon, the code in gnome-phone-manager is a cut and paste from nautilus-sendto/src/plugins/evolution
Created attachment 220456 [details] [review] Untested patch Here's a patch that builds but I haven't really tested it. The e-contact-entry.c part is an updated copy-and-paste from nautilus-sendto. Also, e-phone-entry.c introduces a blocking D-Bus call. I left a big comment in the code about how to maybe do that better, but didn't want the initial patch to be too intrusive. If you'd like me to implement my suggestion in the code comment I can do so, or maybe it's good enough as is.
This doesn't apply cleanly against 0.68 as we have it in Fedora, and when I start mucking about with it to try to get it to, I break it. :) Is this against HEAD?
(In reply to comment #9) >Is this against HEAD? Of course.
Ah, there we are. It builds beautifully, thanks! I can't test this, as I lack a computer with Bluetooth, but I'll get it in rawhide and put out a call for testers. Thanks very much, and please let me know if/when there's a new release, with or without your suggestion. If I get feedback that it's needed/desired, I'll let you know.
I spoke too soon. It builds OK on i686, but not on x86_64. End of build log: + make -j4 make all-recursive make[1]: Entering directory `/builddir/build/BUILD/gnome-phone-manager-0.68' Making all in po make[2]: Entering directory `/builddir/build/BUILD/gnome-phone-manager-0.68/po' MSGFMT ro.gmo make[2]: Leaving directory `/builddir/build/BUILD/gnome-phone-manager-0.68/po' Making all in libgsm make[2]: Entering directory `/builddir/build/BUILD/gnome-phone-manager-0.68/libgsm' make all-am make[3]: Entering directory `/builddir/build/BUILD/gnome-phone-manager-0.68/libgsm' CC phonemgr-utils.lo CC glibgsmtest.o CC phonemgr-marshal.lo CC test-sdp-search.o glibgsmtest.c: In function 'main': glibgsmtest.c:236:38: warning: 'type' may be used uninitialized in this function [-Wmaybe-uninitialized] phonemgr-utils.c: In function 'phonemgr_utils_start_parse': phonemgr-utils.c:423:2: warning: 'g_atexit' is deprecated (declared at /usr/include/glib-2.0/glib/gutils.h:239) [-Wdeprecated-declarations] phonemgr-utils.c: In function 'phonemgr_utils_connect': phonemgr-utils.c:525:2: warning: 'gn_cfg_memory_read' is deprecated (declared at /usr/include/gnokii.h:271) [-Wdeprecated-declarations] phonemgr-utils.c:538:2: warning: 'gn_cfg_phone_load' is deprecated (declared at /usr/include/gnokii.h:278) [-Wdeprecated-declarations] phonemgr-utils.c:546:2: warning: 'gn_gsm_initialise' is deprecated (declared at /usr/include/gnokii.h:263) [-Wdeprecated-declarations] CCLD libgsmwrap.la CCLD glibgsmtest CCLD test-sdp-search /usr/bin/ld: i386 architecture of input file `./.libs/libgsmwrap.a(phonemgr-listener.o)' is incompatible with i386:x86-64 output collect2: error: ld returned 1 exit status make[3]: *** [glibgsmtest] Error 1 make[3]: Leaving directory `/builddir/build/BUILD/gnome-phone-manager-0.68/libgsm' make[2]: Leaving directory `/builddir/build/BUILD/gnome-phone-manager-0.68/libgsm'
Any idea what might be causing this?
*** Bug 686088 has been marked as a duplicate of this bug. ***
Created attachment 227638 [details] [review] Addendum 1 Here's an addendum to the yet-to-be-merged patch in comment #8 which is shipping in Fedora 18. It removes the unnecessary libedataserverui dependency, which in the past was needed to call e_client_utils_get_sources(). That function was removed as part of the E-D-S 3.6 API changes, and the same result can be achieved with functions in libedataserver (no ui). My true motivation here is I'd like to absorb libedataserverui back into Evolution, since Evolution is very nearly the only thing actually using it and I'd like to make enhancements to some of those widgets without worrying about API stability. So I'm auditing modules that still depend on it.
gnome-phone-manager is not under active development anymore since 2013. Its codebase has been archived: https://gitlab.gnome.org/Archive/phonemgr/commits/master Closing this report as WONTFIX as part of Bugzilla Housekeeping to reflect reality. Please feel free to reopen this ticket (or rather transfer the project to GNOME Gitlab, as GNOME Bugzilla is deprecated) if anyone takes the responsibility for active development again.