Jan 19, 2009

HOWTO: building evolution on Ubuntu 8.10 (to fix IMAP slowness...)

[Updated on 2009/01/29: evolution 2.24.3-0ubuntu1 - available in today's package updates - fixes the IMAP issue. I guess people yelled hard enough!]

I finally got around to upgrading my Ubuntu laptop this week-end.

The 8.04-->8.10 upgrade process went like a breeze. However, if you use the evolution e-mail client with an IMAP account storing large folders, chances are you will face the same issues as I did, namely evolution being completely unresponsive and unbelievably slow...

This issue has been around for a while (see bug #558883 on the Gnome Bugzilla). I'm not quite sure it's really fixed and given the Gnome release schedule, the next evolution release would probably be quite far away...

I kind of like evolution and I don't want to switch to another client, so I digged around and found an easy way to rebuild the latest evolution source from the SVN repository, thanks to this fantastic post by Paul Smith (Mr "make", as in GNU make).

First of all, let's install a few dependencies:
ubuntu% sudo apt-get install bison flex libenchant-dev libnss3-dev ccache \
evolution-dev gnome-common gtk-doc-tools libsoup2.4-dev
As of now (mid-January 2009), evolution also requires libical 0.43 or higher. If you need to build it from source, here's how:
ubuntu% svn co https://freeassociation.svn.sourceforge.net/svnroot/freeassociation/trunk freeassociation
ubuntu% cd freeassociation/libical
ubuntu% cmake .
ubuntu% sudo make install
Now, let's build evolution. First, let's fetch the Makefile:

ubuntu% wget http://mad-scientist.us/Makefile

Then, change the Makefile to remove support for libgweather. I neither need it nor want it, so I didn't waste any time trying to install it. You can either modify the file or apply the patch below:
ubuntu% diff -u Makefile.old Makefile
--- Makefile.old 2008-05-29 14:20:42.000000000 +0200
+++ Makefile 2009-01-19 13:36:01.000000000 +0100
@@ -183,7 +183,8 @@
evolution-data-server_PREREQS := glib libsoup libbonobo gtkhtml
evolution-data-server_CONFIG_OPTS = \
--with-openldap=yes --enable-gnome-keyring=yes --with-e2k-debug \
- --with-gconf-source='xml:merged:$(PREFIX)/etc/gconf/gconf.xml.defaults'
+ --with-gconf-source='xml:merged:$(PREFIX)/etc/gconf/gconf.xml.defaults'\
+ --without-weather

# I decided to disable scrollkeeper since otherwise Evolution will try
# to register it, and this requires root privileges.
@@ -194,7 +195,8 @@
--enable-nss=yes --enable-smime=yes --enable-plugins=all \
--enable-cairo-calendar=yes --enable-imap4=yes --with-e2k-debug \
--disable-scrollkeeper $(CONFIG_exchange-$(ENABLE_exchange)) \
- --with-gconf-source='xml:merged:$(PREFIX)/etc/gconf/gconf.xml.defaults'
+ --with-gconf-source='xml:merged:$(PREFIX)/etc/gconf/gconf.xml.defaults'\
+ --without-weather

evolution-exchange_PREREQS := glib libsoup libbonobo evolution-data-server evolution
evolution-exchange_CONFIG_OPTS = \
Now you can run 'make'... and wait a while :)

Once this is complete, the new evolution has been built and installed. Before you can run it, you need to:
  • modify /etc/bonobo-activation/bonobo-activation-config.xml, by adding <item>$PREFIX/lib/bonobo/servers</item> in the <searchpath> section,

  • kill the bonobo-activation-server process (it will restart automatically).
I would also recommend backing up your evolution directory:

ubuntu% cd ~
ubuntu% mv .evolution .evolution-backup

You can now start /opt/evo/bin/evolution-svn and read your e-mail at last...

No comments:

Post a Comment