- This is certified documentation and is protected for editing by Zimbra Employees & Moderators only.

General Information

The git fusion server gives users access to download and build/modify Zimbra source code for Open Source products. Building Zimbra Collaboration Suite from Zimbra's git fusion server requires advanced knowledge of troubleshooting. It is not available for Network Edition components. Changes cannot be committed to the git fusion server.

By building Zimbra, you agree to Zimbra's licensing terms. Building from source is not covered under the ZEUL, unlike pre-compiled binaries, but rather the Open Source licenses as descrived on the licensing page. Please read the page on contributing if you plan to submit back any patches.

By default, you will only be able to build "out of the box" with supported operating systems (see list on site or files in ZimbraBuild/defs). However, you may be able to modify the source to get Zimbra to build on your OS of choice.

Initial Setup

At it's simplest, to obtain the source you need to essentially:

Install git

yum install git (RHEL, SLES, etc)

apt-get install git (Ubuntu, etc)

ZCS 8.7.6 and above

Starting ZCS 8.7.6 and above we have moved all our repositories to our public GitHub, so we have changed the way you can download, review and of course build the product, you can find all the details here:

Cloning using SSH. Requires SSH access keys above

Cloning using anonymous HTTPS

Source for the "main" branch

main is the development branch.

The 'main' branch, (often referred to as mainline) contains the latest code - if your interested in seeing pre-release software check it out.

It is constantly in flux (for instance we might stagger spec files to avoid the need to always rebuild ThirdParty), if you're hitting a error in the Zimbra build side the first thing to do is re-sync, as we typically resolve these fast.

It is the default branch in use after doing a checkout of zimbra-foss

Listing available branches

The zimbra-foss repo contains all the available release branches. You can obtain a list of the branches via:

Changing the active checkout

To change the active branch, you use the git checkout command, and supply the release you are interested in.

For example, to switch to the IRONMAIDEN 8.0.7 release branch, one would execute:

git checkout ironmaiden-807-foss

Updating an existing clone

To update an already existing clone:

cd ~/git/zimbra-foss
git pull

Building Zimbra Collaboration Server

To build Zimbra Collaboration Server, the "buildZCS.sh" script can be used, that is located in the ZimbraBuild directory after the checkout completes.

The first time you go to build, it is recommended to execute

cd ~/git/zimbra-foss/ZimbraBuild

ZCS 8.6 and prior

./buildZCS.sh -t -u

This will help you through adding Ant & JDK, check dependencies, build ThridParty using a public CPAN mirror for Perl, then start the ZCS build process. It requires sudo access to install the various required binaries and libraries for build (The -u option).

This will help you through adding Ant & the required Java JDK. It is no longer necessary to build Third Party to build ZCS with 8.7 and later.

For 8.6 and previous, if the server already has the various required binaries and libraries installed, then:

cd ~/git/zimbra-foss/ZimbraBuild
./buildZCS.sh -t

Can be used to just build out Third Party and ZCS.

If Third Party has already been built, and simply rebuilding ZCS is desired, this can be achieved with:

cd ~/git/zimbra-foss/ZimbraBuild
./buildZCS.sh

ZCS 8.7 and 8.7.1

./buildZCS.sh

This will help you through adding Ant & JDK. Note that JAVA_HOME will need to be set correctly to the location of the JDK.

Third party packages

If working on adding recognition for a new OS, it will be necessary to build out a related 3rd party package repository. The overall build process is located on github, and there is a vagrant profile also noted on github for helping with the process. More documentation will be provided soon, as the github migration is still underway.