Compiling source code
From Zarafa wiki
The following packages are required to compile the Zarafa source code: Grouped by distribution type. For CentOS and Fedora, use the RedHat list, for Ubuntu and Debian and derivatives use the Debian list. For Ubuntu users we have the Install from source on Ubuntu guide.
While these lists may not be complete, it will get you in the right direction of most packages that are required.
After that there is one library which normally doesn't have a package, and must be compiled and installed by hand. The source can be downloaded here:
- libvmime-0.7 for versions up to 6.40
- libvmime-0.9.2+svn581.tar.bz2 libvmime-0.9 for versions from 7.0
Zarafa provides patches to fix some bugs in this library. If you are compiling the library, it would be best to apply the patches.
You can find a list of the patches and the download on the Libvmime patches page, or use the most up-to-date patches from the zcp source. The patches can be found in the inetmapi/vmime-patches directory.
Note: Debian 4.0 and Ubuntu 8.04 and newer do contain packages for these libraries, but are incompatible and buggy versions. You must use the Zarafa provided versions of the libraries in order to compile Zarafa.
6.20 specific dependencies
For version 6.20, libical 0.23 must be used, and can be downloaded here:
6.30 specific dependencies
For version 6.30, libical 0.44 is shipped with binaries, but the interface is compatible with slightly older and newer versions. If you want to compile this library too, use the upstream version, which can be found here: http://sourceforge.net/projects/freeassociation/ Your distribution may already ship this as a package, so maybe you would want to use those packages. To download the version Zarafa uses to compile the packages with, follow this link:
The extra patch is required to correctly disable a define. You also must add the --disable-icalerrors-are-fatal switch to the configure script to correctly compile the library for use with Zarafa.
6.40 and up specific dependencies
To compile 6.40 with the zarafa-indexer, you'll need CLucene. Please use the following downloads to compile the correct library (0.9.21b not just 0.9.21).
The upstream development can be found here: http://clucene.sourceforge.net/
6.30 and up optional dependencies
To improve memory usage, you can use the google-perftools to use the Thread-Cached malloc library. Zarafa allocates memory in one thread, and may free this in another thread. The default malloc in glibc6 cannot handle this well, and may use too much memory. Zarafa uses google-perftools 1.3, and can be downloaded here:
The upstream development can be found here: http://code.google.com/p/google-perftools/
7.0 and up specific dependencies
As mentioned in the lists above, new dependencies are present:
- libicu -- not required, but makes Zarafa sort correctly on language specific content
- python-devel -- required to build the python-mapi module
- perl-devel -- not recommended: the perl-mapi module is incomplete and buggy, preferred language is python
- boost -- boost development files with atleast the 'system' and 'filesystem' modules.
The Zarafa source code can be found on www.zarafa.com/community
Before compiling Zarafa make sure you compile and install libical and libvmime.
You can compile the Zarafa sourcecode with the following commands:
./configure --enable-release --disable-static --with-userscript-prefix=/etc/zarafa/userscripts --with-quotatemplate-prefix=/etc/zarafa/quotamails make make install
For Zarafa 7.0, the configure script needs more options, these are:
./configure --enable-release --disable-static --with-userscript-prefix=/etc/zarafa/userscripts --with-quotatemplate-prefix=/etc/zarafa/quotamails \ --enable-unicode --disable-perl
Do not forget the --enable-unicode switch, otherwise unicode will not be functional!