does not build with evolution 2.29

Bug #501624 reported by Götz Waschk on 2009-12-30
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Mail Notification
Undecided
Unassigned
mail-notification (Fedora)
Fix Released
High

Bug Description

mail-notification 5.4 does not build with evolution 2.29.4:
uilding class MNEvolutionFolderTreeServer
cc -c -o build/src/liborg-jylefort-mail-notification-mn-evolution-folder-tree-server.o -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS -DORBIT2=1 -pthread -I/usr/include/evolution-2.30 -I/usr/include/evolution-data-server-2.30 -I/usr/include/libxml2 -I/usr/include/unique-1.0 -I/usr/include/libgtkhtml-3.14 -I/usr/include/libgtkhtml-3.14/editor -I/usr/include/libgnomecanvas-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/nss -I/usr/include/nspr4 -I/usr/include/gconf/2 -I/usr/include/libsoup-2.4 -I/usr/include/orbit-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/enchant -I/usr/include/gail-1.0 -I/usr/include/libart-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -fPIC -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -DHAVE_REENTRANT_RESOLVER -DSTRING_ARCH_UNALIGNED -DHAVE_TIMEGM -DWITH_EVOLUTION=1 -DWITH_GMAIL=1 -DWITH_HOTMAIL=1 -DWITH_IMAP=1 -DWITH_MAILDIR=1 -DWITH_MBOX=1 -DWITH_MH=1 -DWITH_MOZILLA=1 -DWITH_POP3=1 -DWITH_SYLPHEED=1 -DWITH_YAHOO=1 -DWITH_IPV6=1 -DWITH_SASL=1 -DWITH_SSL=1 -DWITH_GCONF_SANITY_CHECK=1 -Isrc -Ibuild/src -DGETTEXT_PACKAGE='"mail-notification"' -DENABLE_NLS -DPIC -MT build/src/liborg-jylefort-mail-notification-mn-evolution-folder-tree-server.o -MD -MP -MF build/src/liborg-jylefort-mail-notification-mn-evolution-folder-tree-server.o.deps build/src/mn-evolution-folder-tree-server.c
ICECC[5730] 13:26:17: $ICECC_VERSION has to point to an existing file to be installed /var/cache/icecream-local-environment/c2a88666a47b728962525680b6994e03.tar.gz
src/mn-evolution-folder-tree-server.gob:26:33: error: mail/mail-component.h: No such file or directory
src/mn-evolution-folder-tree-server.gob: In function 'mn_evolution_folder_tree_server_constructor':
src/mn-evolution-folder-tree-server.gob:64: warning: assignment makes pointer from integer without a cast
src/mn-evolution-folder-tree-server.gob:65: warning: assignment makes pointer from integer without a cast
ERROR: command failed

The header mail/mail-component.h does not exist anymore. Evolution was ported away from bonobo to dbus.

mail-notification-5.4-16.fc12.src.rpm Failed To Build From Source against the rawhide tree. See http://fedoraproject.org/wiki/FTBFS for more information.

Setting to ASSIGNED per Fedora Bug Triage workflow. https://fedoraproject.org/wiki/BugZappers/BugStatusWorkFlow

Created attachment 370836
root.log

root.log for i386

Created attachment 370837
build.log

build.log for i386

Created attachment 370838
mock.log

mock.log for i386

Created attachment 370839
root.log

root.log for x86_64

Created attachment 370840
build.log

build.log for x86_64

Created attachment 370841
mock.log

mock.log for x86_64

The build logs indicate a broken build environment which isn't related to this package. However, this package needs to be patched in order to support evolution 2.29/2.30:

building class MNEvolutionFolderTreeServer
gcc -c -o build/src/liborg-jylefort-mail-notification-mn-evolution-folder-tree-server.o -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS -DORBIT2=1 -pthread -I/usr/include/evolution-2.30 -I/usr/include/evolution-data-server-2.30 -I/usr/include/libxml2 -I/usr/include/unique-1.0 -I/usr/include/libgtkhtml-3.14 -I/usr/include/libgtkhtml-3.14/editor -I/usr/include/libgnomecanvas-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/gconf/2 -I/usr/include/libsoup-2.4 -I/usr/include/orbit-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/enchant -I/usr/include/gail-1.0 -I/usr/include/libart-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DHAVE_REENTRANT_RESOLVER -DSTRING_ARCH_UNALIGNED -DHAVE_TIMEGM -DWITH_EVOLUTION=1 -DWITH_GMAIL=1 -DWITH_HOTMAIL=1 -DWITH_IMAP=1 -DWITH_MAILDIR=1 -DWITH_MBOX=1 -DWITH_MH=1 -DWITH_MOZILLA=1 -DWITH_POP3=1 -DWITH_SYLPHEED=1 -DWITH_YAHOO=1 -DWITH_IPV6=1 -DWITH_SASL=1 -DWITH_SSL=1 -DWITH_GCONF_SANITY_CHECK=1 -Isrc -Ibuild/src -DGETTEXT_PACKAGE='"mail-notification"' -DENABLE_NLS -DPIC -D_GNU_SOURCE -MT build/src/liborg-jylefort-mail-notification-mn-evolution-folder-tree-server.o -MD -MP -MF build/src/liborg-jylefort-mail-notification-mn-evolution-folder-tree-server.o.deps build/src/mn-evolution-folder-tree-server.c
build/src/mn-evolution-folder-tree-server.c:27:33: error: mail/mail-component.h: No such file or directory
build/src/mn-evolution-folder-tree-server.c: In function 'mn_evolution_folder_tree_server_constructor':
build/src/mn-evolution-folder-tree-server.c:399: warning: implicit declaration of function 'mail_component_peek_tree_model'
build/src/mn-evolution-folder-tree-server.c:399: warning: implicit declaration of function 'mail_component_peek'
build/src/mn-evolution-folder-tree-server.c:399: warning: assignment makes pointer from integer without a cast
build/src/mn-evolution-folder-tree-server.c:400: warning: implicit declaration of function 'em_folder_tree_new_with_model'
build/src/mn-evolution-folder-tree-server.c:400: warning: assignment makes pointer from integer without a cast
ERROR: command failed
fout: Bad exit status from /var/tmp/rpm-tmp.KpSlEV (%build)

These three functions and the header file appear to have been removed from evolution 2.29..

This is not a build system failure.
The package failed to depsolve for libexchange-storage-1.2.so.3.

On Fedora 12:
$ repoquery -C --whatprovides libexchange-storage-1.2.so.3
evolution-data-server-0:2.28.0-1.fc12.i686

however, in rawhide, evolution-data-server does not provide this library anymore.
$ rpm -qpl evolution-data-server-2.29.1-1.fc13.i686.rpm | grep storage

Since upstream (http://www.nongnu.org/mailnotify/) seems to be stalled a quite long time, and there are no any patches in another distros yet, the only chance to fix it now is to write a patch by someone who is capable to do it under rawhide...

Changed in mail-notification (Fedora):
status: Unknown → In Progress

Created attachment 381858
Initial patch (needs work)

Here's a patch to get mail-notification compiled again. With this patch, mail-notification should be able to show a notification when new mail arrives, but it isn't possible anymore to open new email or to change the configuration of the folders which need to be monitored.

CC'ed one of the evolution developers, Matthew Barnes, to this bug. Perhaps he can help to complete the patch as he's also the one who marked the file mail/mail-component.h as being dead (http://git.gnome.org/browse/evolution/commit/?id=9951a2dcb0b959d7e2b66f86ebf6e7c19b0c2152)

Sure, I can help with this. Should be possible to get the folder configuration working again using the newer APIs.

OK.
It could be fine if you provide a patch with the appropriate "EDS_CHECK_VERSION" etc... ifdefs. IOW to create the source suitable for the old evolution versions as well.

I'll try then to publish such a patch upstream.

(In reply to comment #13)
> Sure, I can help with this. Should be possible to get the folder configuration
> working again using the newer APIs.

Matthew, did you already have time to take a look at this?

I'll try to make some more time for it this week. Last time I attempted a patch I spent the whole time wresting with the strange and obsolete build tools the package uses.

Yeah I know..the build system is a bit messy. It requires a version of a tool named GOB which isn't released yet (last time I checked anyway).. I guess that the original developer of mail-notification used a locally patched version of the GOB tool. But in order to build this package you don't need to have this tool installed (both the original GOB code as the resulting C code is bundled with the source tarball).

To get this package compiled you need to run the command './jb build'. The C source code can be found in build/src and can be adjusted without issues

Created attachment 388098
Updated patch

Here's an updated patch that allows opening new mails and selecting folders to monitor in Evolution 2.29.

Tested in Rawhide, and builds cleanly in both Rawhide and Fedora 12.

Sorry for taking so long with this.

Vincent Untz (vuntz) wrote :

This is the patch that was done in Fedora (and that is used in openSUSE too).

Changed in mail-notification (Fedora):
importance: Unknown → High
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.