Building Zimbra using Git: Difference between revisions

(Update docs (mostly formatting and moving text around))
Line 12: Line 12:


* Install git
* Install git
** yum install git (RHEL, SLES, etc)
** <tt>yum install git</tt> (RHEL, SLES, etc)
** aptitude install git (Ubuntu, etc)
** <tt>aptitude install git</tt> (Ubuntu, etc)
 
* Obtain the git ssh access keys
* Obtain the git ssh access keys
** mkdir -p /tmp/zimbra-git
<nowiki>
** cd /tmp/zimbra-git
  mkdir -p /tmp/zimbra-git
** wget http://files2.zimbra.com/downloads/git-fusion/zimbra-git-ssh.tgz
  cd /tmp/zimbra-git
** tar xfz zimbra-git-ssh.tgz
  wget http://files2.zimbra.com/downloads/git-fusion/zimbra-git-ssh.tgz
  tar xfz zimbra-git-ssh.tgz
</nowiki>


* Add the access keys to your own user account:
* Add the access keys to your own user account:
** cd ~/.ssh
<nowiki>
** cp /tmp/zimbra-git/id_rsa_git* .
  cd ~/.ssh
  cp /tmp/zimbra-git/id_rsa_git* .
</nowiki>


* Add the following ~/.ssh/config.  Create the file if it doesn't exist:
* Add the following ~/.ssh/config.  Create the file if it doesn't exist:
Line 32: Line 37:
   IdentitiesOnly yes
   IdentitiesOnly yes
   Port 1067
   Port 1067
</nowiki>
</nowiki>
 
'''IMPORANT''': Before attempting to build, please be sure to read the README for the branch release you're building.
'''IMPORANT''': Before attempting to build, please be sure to read the README for the branch release you're building.


== 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:
<nowiki>
  mkdir -p ~/git
  cd ~/git
  git clone git@zimbra-git:REPOSITORY
</nowiki>
Replace <tt>REPOSITORY</tt> as described below.


New master script for (5.0.14+):
===Source for the "main" branch===
~/git/REPOSITORY/ZimbraBuild/buildZCS.sh -t
* main is the development branch.
(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.)
* The primary git respository for main is: '''main-foss'''


'''IMPORTANT: NOT YET UPDATED FOR GIT'''
To obtain the source: <tt>git clone git@zimbra-git:main-foss</tt>


== Obtaining the source to Zimbra Collaboration Suite ==
The 'main' branch, (often referred to as mainline) contains the latest code - if your interested in seeing pre-release software check it out.
The source code for ZCS is retrieved from git.zimbra.com.


===Source for the "main" branch===
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.
main is the development branch.
The primary git respository for main is: '''main-foss'''
 
To obtain the source:
* mkdir -p ~/git
* cd ~/git
* git clone git@zimbra-git:main-foss


===Source for the IronMaiden "8.0" branch===
===Source for the IronMaiden "8.0" branch===
IronMaiden is the 8.0 series release. Current version & changelist can be found on [http://pm.zimbra.com/pm_release.php?rel=8.0 Pmweb]
* IronMaiden is the 8.0 series release.
The primary git respository for IRONMAIDEN development is: '''ironmaiden-foss'''
* Current version & changelist can be found on [http://pm.zimbra.com/pm_release.php?rel=8.0 Pmweb]
The current release repository is '''ironmaiden-806-foss'''
* The primary git respository for IRONMAIDEN development is: '''ironmaiden-foss'''
* The current release repository is '''ironmaiden-807-foss'''


To obtain the source:
To obtain the source:
* mkdir -p ~/git
  <nowiki>
* cd ~/git
  git clone git@zimbra-git:ironmaiden-foss
* git clone git@zimbra-git:REPOSITORY Example:
</nowiki>
** git clone git@zimbra-git:ironmaiden-foss


===Source for the Helix "7.x" branch===
===Source for the Helix "7.x" branch===
Helix is the 7.0, 7.1, and 7.2 series release. Current version & changelist can be found on [http://pm.zimbra.com/pm_release.php?rel=7.0 Pmweb]
* Helix is the 7.0, 7.1, and 7.2 series release.
The primary git respository for HELIX development is: '''helix-foss'''.
* Current version & changelist can be found on [http://pm.zimbra.com/pm_release.php?rel=7.0 Pmweb]
The current release repository is '''helix-726-foss'''
* The primary git respository for HELIX development is: '''helix-foss'''.
* The current release repository is '''helix-727-foss'''


To obtain the source:
To obtain the source:
* mkdir -p ~/git
  <nowiki>
* cd ~/git
  git clone git@zimbra-git:helix-foss
* git clone git@zimbra-git:REPOSITORY Example:
</nowiki>
** git clone git@zimbra-git:helix-foss


===Updating an existing source clone===
===Updating an existing source clone===
To update an already existing clone:
To update an already existing clone:
* cd ~/git/REPOSITORY
<nowiki>
* git pull
  cd ~/git/REPOSITORY
==Building Zimbra Desktop==
  git checkout REPOSITORY
[[Building Zimbra Desktop on Linux]]
  git pull
</nowiki>


[[Building Zimbra Desktop on Windows (win32)]]
For example:
To update an already existing clone:
<nowiki>
  cd ~/git/main-foss
  git checkout main-foss
  git pull
</nowiki>


[[Building Zimbra Desktop on Macintosh (OS 10.4.6+)]]
==Building Zimbra Collaboration Server==


==Buiding Zimbra Mobile Edition==
'''IMPORTANT: NOT YET UPDATED FOR GIT'''
ZME (J2ME) Client: [[Building ZimbraME]]


==Building "Nightlies"==
New master script for (5.0.14+):
The 'main' branch, (often referred to as mainline) contains the latest code - if your interested in seeing pre-release software check it out.
~/git/REPOSITORY/ZimbraBuild/buildZCS.sh -t
(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 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.
==Building Zimbra Desktop==
* [[Building Zimbra Desktop on Linux]]
* [[Building Zimbra Desktop on Windows (win32)]]
* [[Building Zimbra Desktop on Macintosh (OS 10.4.6+)]]


Under Construction:  
==Buiding Zimbra Mobile Edition==
 
ZME (J2ME) Client: [[Building ZimbraME]]
Building nightlies README


==Troubleshooting==
==Troubleshooting==

Revision as of 09:05, 7 July 2014

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.

Technical support for source building can be found in the Zimbra Developers forum.

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)
    • aptitude install git (Ubuntu, etc)
  • Obtain the git ssh access keys
  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
 
  • Add the access keys to your own user account:
  cd ~/.ssh
  cp /tmp/zimbra-git/id_rsa_git* .
 
  • Add the following ~/.ssh/config. Create the file if it doesn't exist:
Host zimbra-git
  User public
  Hostname git.zimbra.com
  IdentityFile ~/.ssh/id_rsa_git
  IdentitiesOnly yes
  Port 1067
 

IMPORANT: Before attempting to build, please be sure to read the README for the branch release you're building.

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:

  mkdir -p ~/git
  cd ~/git
  git clone git@zimbra-git:REPOSITORY
 

Replace REPOSITORY as described below.

Source for the "main" branch

  • main is the development branch.
  • The primary git respository for main is: main-foss

To obtain the source: git clone git@zimbra-git:main-foss

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.

Source for the IronMaiden "8.0" branch

  • IronMaiden is the 8.0 series release.
  • Current version & changelist can be found on Pmweb
  • The primary git respository for IRONMAIDEN development is: ironmaiden-foss
  • The current release repository is ironmaiden-807-foss

To obtain the source:

  git clone git@zimbra-git:ironmaiden-foss
 

Source for the Helix "7.x" branch

  • Helix is the 7.0, 7.1, and 7.2 series release.
  • Current version & changelist can be found on Pmweb
  • The primary git respository for HELIX development is: helix-foss.
  • The current release repository is helix-727-foss

To obtain the source:

  git clone git@zimbra-git:helix-foss
 

Updating an existing source clone

To update an already existing clone:

  cd ~/git/REPOSITORY
  git checkout REPOSITORY
  git pull
 

For example: To update an already existing clone:

  cd ~/git/main-foss
  git checkout main-foss
  git pull
 

Building Zimbra Collaboration Server

IMPORTANT: NOT YET UPDATED FOR GIT

New master script for (5.0.14+):

~/git/REPOSITORY/ZimbraBuild/buildZCS.sh -t 

(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.)

Building Zimbra Desktop

Buiding Zimbra Mobile Edition

ZME (J2ME) Client: Building ZimbraME

Troubleshooting

Search the forums for any recent reports or create a new thread letting us know and we'll get right on it.


Third Party Component Failures | Perl Components fail to build configure: error: User zimbra (and/or group zimbra) doesn't exist.


Verified Against: unknown Date Created: 1/29/2014
Article ID: https://wiki.zimbra.com/index.php?title=Building_Zimbra_using_Git Date Modified: 2014-07-07



Try Zimbra

Try Zimbra Collaboration with a 60-day free trial.
Get it now »

Want to get involved?

You can contribute in the Community, Wiki, Code, or development of Zimlets.
Find out more. »

Looking for a Video?

Visit our YouTube channel to get the latest webinars, technology news, product overviews, and so much more.
Go to the YouTube channel »

Jump to: navigation, search