Compiling source code

From Zarafa wiki

Jump to: navigation, search



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.

RedHat openSUSE Debian
  • gcc
  • libgcc
  • automake
  • autoconf
  • imake
  • ncurses-devel
  • gcc-c++
  • openssl-devel
  • e2fsprogs-devel
  • keyutils-libs-devel
  • krb5-devel
  • libselinux-devel
  • libsepol-devel
  • mysql-devel
  • zlib-devel
  • libical-dev
  • libstdc++-devel
  • bison
  • flex
  • php-devel
  • libidn-devel
  • curl-devel
  • libtool
  • libxml2-devel
  • boost, boost-devel, boost-system and boost-filesystem (rhel6) -- or boost-zarafa (rhel5)
  • python-devel
  • libicu-devel
  • Standard stuff: autoconf, automake, libtool, gcc, make
  • bison
  • clucene-core-devel
  • flex
  • gcc-c++
  • gettext-devel
  • krb5-devel
  • libcom_err-devel
  • libcurl-devel
  • libical-devel
  • libmysqlclient-devel
  • libopenssl-devel
  • libuuid-devel
  • libxml2-devel
  • ncurses-devel
  • openldap2-devel
  • pam-devel
  • php5-devel
  • pkg-config
  • xmlto
  • zlib-devel
  • boost-zarafa
  • python-devel
  • libicu-devel
  • automake
  • bison
  • build-essential
  • debhelper
  • flex
  • gettext
  • gsoap
  • libboost-dev libboost-system-dev libboost-filesystem-dev libboost-date-time-dev
  • libcurl4-openssl-dev
  • libical-dev
  • libicu-dev
  • libncursesw5-dev
  • libldap2-dev
  • libmysqlclient-dev
  • libncurses5-dev
  • libssl-dev
  • libtool
  • libxml2-dev
  • php5-dev
  • pkg-config
  • python-dev
  • python2.7-dev
  • swig
  • uuid-dev
  • xmlto
  • zlib1g-dev

While these lists may not be complete, it will get you in the right direction of most packages that are required.

Extra dependencies

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:

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: 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:

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:

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.

7.1 and up specific dependencies

The new storage method of the zarafa-search has extra dependencies:


The Zarafa source code can be found on


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 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!


The Zarafa source code is licensed under the AGPLv3 license.
All patches can be send to [email protected].

Personal tools