Evolution is the integrated mail, calendar and address book suite from Ximian, Inc. See http://www.ximian.com/products/evolution for more information. If you are using Evolution, you may wish to subscribe to the Evolution users mailing list. If you are interested in contributing to development on it, you should certainly subscribe to the Evolution Hackers mailing list. Visit http://developer.ximian.com/community/lists.html to subscribe or view archives of the Ximian mailing lists. If you are planning to work on any part of Evolution, please send mail to the mailing list first, to avoid duplicated effort (and to make sure that you aren't basing your work on interfaces that are expected to change). There is also a #evolution IRC channel on irc.gnome.org. Help for Evolution is available in the user manual (select "Help" from the menu after running the application), at the Ximian knowledge base (http://support.ximian.com), in the Evolution man page (run "man evolution" at the command line), and in the --help strings (run "evolution --help" at the command line). The rest of this file is dedicated to building Evolution. DEPENDENCIES ------------ In order to build Evolution you need to have the full set of GNOME 2 or GNOME 2.2 development libraries installed. GNOME 2 comes with most of the modern distributions, so in most cases it should be enough to just install all the devel packages from your distribution. If, on the other hand, you want to build GNOME 2 from source, please refer to this page: http://gnome.org/start/2.2/notes/rninstallation.html Please make sure you have the most recent versions of the libraries installed, since bugs in the libraries can cause bugs in Evolution. Additional dependencies, besides the stock GNOME libraries (the dependencies should be compiled in the order they are listed here): * [If compiling against GNOME 2.0] libgnomeprint and libgnomeprintui 2.2.0 or later These library come with GNOME 2.2 installations, but not with GNOME 2.0 ones. The source code can be downloaded from the following locations: ftp://ftp.gnome.org/pub/gnome/sources/libgnomeprint ftp://ftp.gnome.org/pub/gnome/sources/libgnomeprintui * [If compiling against GNOME 2.2] libgnomecanvas 2.2.0.2 or later If you have a GNOME 2.2 installation, you need to upgrade libgnomecanvas to this version (or a later one), since Evolution exposes a bug in the older versions of the library which causes a crash. If you have a GNOME 2.0 installation, libgnomecanvas 2.0 is safe to use. * gtkhtml 3.0.1 or later ftp://ftp.gnome.org/pub/gnome/sources/gtkhtml * gal 1.99.8 or later ftp://ftp.gnome.org/pub/gnome/sources/gal * Berkeley's libdb 3.1.17 It is important to use *exactly* this version, and not a later one, to compile Evolution. Please check the "Building Berkeley DB" section below for more information. ftp://ftp.ximian.com/pub/source/evolution * [Optional] Mozilla NSPR/NSS libraries These are needed if you want to compile Evolution with SSL support. http://www.mozilla.org/ Many distributions ship these as Mozilla development packages. * [Optional] gnome-pilot 2.0 or later This is only necessary if you want to be able to synchronize your Palm device with Evolution. ftp://ftp.gnome.org/pub/gnome/sources/gnome-pilot ftp://ftp.gnome.org/pub/gnome/sources/gnome-pilot-conduits * [Optional] gnome-spell 1.0.1 or later This is only necessary if you want to have the spell checking functionality in Evolution's message composer. ftp://ftp.gnome.org/pub/gnome/sources/gnome-spell COMPILING BERKELEY DB --------------------- --- IMPORTANT WARNING --- The on-disk format of DB files has been changing between versions 2, 3 and 4. Also, because of the libdb API, there is no way to easily handle the different formats from within the application. For this reason, Evolution has chosen to use one specific version of the library (version 3) and stick to it, so that users do not need to convert their addressbook files to use them with different version of Evolution. That's why Evolution REQUIRES libdb 3.1.17, and NO OTHER VERSION. If you force the check to accept a version different from 3.1.17, your binary of Evolution will be using a different format from the chosen one; this means that it will not be able to read addressbook databases created by other versions of Evolution which were compiled in the standard way. Also, we DO NOT GUARRANTEE that Evolution will work with different versions of libdb at all, even if it can be trivially made to compile against them. SPECIAL NOTE FOR BINARY PACKAGERS: If you are making binary packages for end-users (e.g. if you are a distribution vendor), please statically link Evolution to Berkeley DB 3.1.17, as mandated by the configure.in check. DO NOT patch configure.in to work around the check. Forcing the check to link to a different version of the library will only give headaches and pain to your users, who will see their addressbook disappear and will complain to us (the Evolution team) about losing their data. Besides, libdb will be linked statically, which means that your distribution doesn't actually need to ship DB 3.1.17 itself separately. The Evolution team will be infinitely grateful for your co-operation. Thanks! If you don't have version 3.1.17 installed on your system or Evolution doesn't detect it for some reason, here is a way to get Evolution to link to it without messing up your system installation. * Install the content of the tarball somewhere *other* than the evolution source tree, e.g: NOT evolution/db-3.1.17 . * Compile according to instructions, but installing into some custom prefix, for example: ../dist/configure --prefix=/home/user/berkeleydb-3.1.17 * Configure Evolution specifying that it has to look for the DB library there, for example: ./configure --prefix=/opt/gnome --with-db3-includes=/home/user/berkeleydb-3.1.17/include --with-db3-libs=/home/user/berkeleydb-3.1.17/lib Evolution links statically to the library, so after you have compiled Evolution you can remove the installed library from your system. CONFIGURING EVOLUTION --------------------- First you have to decide whether you want to install Evolution (and its dependencies) into the same prefix as the rest of your GNOME install, or into a new prefix. Installing everything into the same prefix as the rest of your GNOME install will make it much easier to build and run programs, and easier to switch between using packages and building it yourself, but it may also make it harder to uninstall later. Also, it increases the chance that something goes wrong and your GNOME installation gets ruined. If you want to install in a different prefix, you need to do the following things: * Set the PKG_CONFIG_PATH environment variable to contain a colon-separated list of all the pkg-config directories that will be involved in the build. This basically means a list of $prefix/lib/pkgconfig directory names, where $prefix is the prefix where a library is installed. For example, if you have GNOME installed in /usr and you are installing Evolution and its dependencies in /opt/evolution, you want to do something like the following (assuming you are using Bash): export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/opt/evolution/lib/pkgconfig * Edit the bonobo-activation-config.xml file (which is normally found in /etc/bonobo-activation/) to include the location where you are installing Evolution. In the example given above (GNOME in /usr, Evolution and dependencies in /opt/evolution), your bonobo-activation-config.xml will have to look like this: /usr/lib/bonobo/servers /opt/evolution/lib/bonobo/servers * Pass an appropriate --prefix parameter to the configure scripts of Evolution and its dependencies, eg: ./configure --prefix=/opt/evolution More information on how to use the configure script is available in the INSTALL file which is part of the Evolution tarball. OPTIONAL FEATURES ----------------- Some optional features can be enabled at compilation time by passing appropriate flags to the configure script: * GNOME Pilot support. Assuming you have installed gnome-pilot, add the following options: --with-pisock= --enable-pilot-conduits=yes Where is the location where pilot-link (a package that gnome-pilot depends on) was installed. * SSL support. Make sure you have Mozilla's NSS nad NSPR libraries installed and pass the following flag: --enable-nss