Difference between revisions of "Franklin README"

(Setting up Perl)
Line 5: Line 5:
  export P4EDITOR=vi
  export P4EDITOR=vi
  export P4PORT=codes.zimbra.com:2666
  export BUILD_HOME="/home/public/p4/zcs"
  export BUILD_HOME="/home/public/p4/zcs"

Revision as of 17:56, 1 February 2008


Make sure that the p4 binary is in your path. You can download the Binary here for your platform. Knowledge of the Perforce development platform is strongly encouraged. You can find help documentation here


export P4EDITOR=vi
export P4PORT=codes.zimbra.com:2666
export BUILD_HOME="/home/public/p4/zcs"

Getting the Source

Perforce uses relative paths to figure out what you want (unless specified). For example, the BUILD_HOME is /home/public/zcs. That location (zcs) is considered the root of the depot/public cache. To get the "main" sources, run:

p4 -u public -P [NOT AVAILABLE YET] -c public-view sync /home/public/p4/main/...

Syncing updates all of your local source files to match the files on the server. These files update regularly. If, for some reason, P4 is telling you the source is up to date, but you know it's not, then you can force a sync by running:

p4 -u public -P [NOT AVAILABLE YET] -c public-view sync -f /home/public/p4/main/...

Setting Up & Building Third Party

If this is a new platform, edit ZimbraBuild/rpmconf/Build/get_plat_tag.sh and add the appropriate function to add a new tag for your platform.

Edit the Makefiles in the ThirdParty/* directories as appropriate for build options for your new platform. If your platform already includes pcre, popt, and expat, make sure to add the appropriate lines so that building those pieces of software gets skipped.

If you have added a platform tag to get_plat_tag.sh, update the buildThirdParty.sh script appropriately for setting the Perl library paths.

Configuring and Installing Java (JDK)

JDK 1.5 Is required to install and build/compile Zimbra Collaboration Suite. Zimbra will build 1.6 for ZCS 5.0, but it must be compiled with JDK 1.5. You can download the latest version of JDK free from Sun here: http://java.sun.com/javase/downloads/index_jdk5.jsp

Once you have downloaded and extracted JDK, move the java installation to the correct location and make a symlink:

mv /path/to/extraction/(name) /usr/local/
ln -s /usr/local/(name)/  /usr/local/java

We use symlinks so that upgrades don't break it.

Now, add Java to your path by running:

export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin

Configuring and Installing Apache Ant

Apache Ant is needed to build/compile Zimbra Collaboration Suite. You can download the latest version of Ant free from Apache here: http://ant.apache.org/bindownload.cgi

once you have downloaded and extracted Ant, move the Ant installation to the correct location and make a symlink:

mv /path/to/extraction/(name) /usr/local/
ln -s /usr/local/(name)/  /usr/local/ant

We use symlinks so that upgrades don't break it.

Now, add Ant to your path by running:

export ANT_HOME=/usr/local/ant
export PATH=${PATH}:${ANT_HOME}/bin

Configuring Postfix

Create a user account "postfix" with a user id and group id that are not used by any other user account. Preferably, this is an account that no-one can log into. The account does not need an executable login shell, and needs no existing home directory. Password and group file entries look like this:


Create a group "postdrop" with a group id that is not used by any other user account. Not even by the postfix user account. The group file entry should look like:


Setting up Perl

By default, the CPAN mirror that Zimbra will use to build is depot.zimbra.com. This is an internal server which is not accessible to the general public. If unchanged, Perl will fail to build during the build process, and must be corrected before continuing.

To change this, find your closest CPAN mirror here, and edit the /home/public/p4/zcs/FRANKLIN/ThirdParty/Perl/MyConfig.pm.template file:

  'urllist' => [q[http://cpan.schatt.com/],],

General Dependency Information

A number of build utilities and libraries are required to build the 3rd Party software. Among them are:





libtool dynamic loader library (libltdl) development headers and libraries



pcre development headers and libraries (Not necessary for MACOSX systems, as this will get built)

rpmbuilder (for RPM based systems)

dpkg (For deb based systems)

jdk 1.5+


Back to: http://wiki.zimbra.com/index.php?title=Building_Zimbra_using_Perforce#Building_Zimbra_Collaboration_Suite:_.22FRANKLIN.22

Jump to: navigation, search