Support #427
Updated by Daniel Curtis over 10 years ago
h2. Initial Setup
* Install git:
<pre>
apt-get install git
</pre>
* Obtain the git ssh access keys:
<pre>
mkdir -p /tmp/zimbra-git
cd /tmp/zimbra-git
wget http://files2.zimbra.com/downloads/git-fusion/zimbra-git-ssh.tgz
tar xfz zimbra-git-ssh.tgz
</pre>
* Add the access keys to your own user account:
<pre>
cd ~/.ssh
cp /tmp/zimbra-git/id_rsa_git* .
</pre>
* Add the following @~/.ssh/config@. Create the file if it doesn't exist:
<pre>
Host zimbra-git
User public
Hostname git.zimbra.com
IdentityFile ~/.ssh/id_rsa_git
IdentitiesOnly yes
Port 1067
</pre>
* Ensure the permissions on the config file are correct
<pre>
chmod 600 ~/.ssh/config
</pre>
h2. Obtaining the source to Zimbra Collaboration Suite
The source code for ZCS is retrieved from git.zimbra.com as described above.
* To obtain the source:
<pre>
mkdir -p ~/git
cd ~/git
git clone git@zimbra-git:zimbra-foss
</pre>
h3. 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+
h3. Listing available branches
* The zimbra-foss repo contains all the available release branches. You can obtain a list of the branches via:
<pre>
git branch -a
</pre>
> *! main-foss
> remotes/origin/HEAD -> origin/main-foss
> remotes/origin/frank-foss
> remotes/origin/franklin-5010-foss
> remotes/origin/franklin-5011-foss
> remotes/origin/franklin-5012-foss
> remotes/origin/franklin-5013-foss
> remotes/origin/franklin-5014-foss
> remotes/origin/franklin-5015-foss
> remotes/origin/franklin-5016-foss
> remotes/origin/franklin-5017-foss
> remotes/origin/franklin-5018-foss
> remotes/origin/franklin-5019-foss
> remotes/origin/franklin-5020-foss
The branch with a * in front of it is your active checkout.
h3. 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 release branch, one would execute:
<pre>
cd ~/git/zimbra-foss
git checkout ironmaiden-foss
</pre>
h3. Updating an existing clone
* To update an already existing clone:
<pre>
cd ~/git/zimbra-foss
git pull
</pre>
h2. Building Zimbra Collaboration Server
To build Zimbra Collaboration Server, the "buildZCSH.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:
<pre>
cd ~/git/zimbra-foss/ZimbraBuild
./buildZCS.sh -t -u
</pre>
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).
If the server already has the various required binaries and libraries installed, then:
<pre>
cd ~/git/zimbra-foss/ZimbraBuild
./buildZCS.sh -t
</pre>
h2. Install JDK 7
* Install some prerequisites:
<pre>
sudo apt-get install software-properties-common python-software-properties
</pre>
* Install the Java Development Kit 7:
<pre>
sudo apt-get install openjdk-7jdk
</pre>
h2. Install Apache Ant
* Install the eclipse ppa and apache ant:
<pre>
sudo add-apt-repository ppa:eclipse-team/debian-package
sudo apt-get update
</pre>