Building Zimbra v5.x on SolarisMuch of the work detailed on this page is based on previous work done by Dom Ijichi. I am very grateful to him for sharing his work in porting Zimbra 4.x to Solaris. Dom can be found as 'dijichi2' on the Zimbra ForumsZimbra can be thought of as a whole collection of software, rather than a single software package. The Zimbra folks have written quite a bit of code themselves, most of it in Java running under Tomcat, but also some in Perl. Everything else is free open-source software (FOSS) "glued together" to form a complete mailserver environment. It's the "glued together" part that's tricky. Although it might be possible to use existing installed copies of some of the FOSS, it's not worth the hassle - Zimbra expects config files to live in a certain place so that it can modify them itself in order to make the FOSS behave in the right way. In addition, some libraries have been compiled into the various FOSS packages so that they can all interoperate with each other in the way that Zimbra expects. In short, build it all 'their' way and your life will be much easier. Unfortunately, 'their' way is very Linux-centric - to the point where paths and command arguments are embedded in Makefiles and often don't work on non-Linux platforms. Porting to something like Solaris, then, takes quite a bit of work, and must be redone EACH TIME they come out with a new release of software that contains any updated FOSS. The build process can be roughly broken into three stages
Preparing the build environmentDo the following two steps as root
Download the Zimbra source codeDo these steps as user 'zimbra' unless otherwise stated
Do the Zimbra ThirdParty BuildNote: The build process wipes out /opt/zimbra. If you have an old version in there that you want to keep, rename it to keep it around. edit src/ZimbraBuild/rpmconf/Build/get_plat_tag.sh and change "Solaris 10...X86" to just "Solaris 10" and "SOLARISX86" to "SOLARIS10" cd <src>/ThirdParty There is a Makefile here that's supposed to build all Third Party packages. Of course, it doesn't work on Solaris – too many changes needed to each package. But perhaps it could be made to work. The problem isn't with the top-level Makefile, but rather with each individual package needing special care and attention instead of just a straight 'make'. However, we'll see if we can get it to work by getting each package figured out: Edit: We now have a patch file that can patch everything under ThirdParty and allow you to do a 'make' at the top level. Download the patch zimbra-solaris-3rdparty.patch. From the directory above the ThirdParty directory, apply the patch with: gpatch -p0 < zimbra-solaris-3rdparty.patch
At this point, we've done every package listed in ThirdParty/Makefile, which means that a 'make' at the ThirdParty level should also succeed. However, several packages aren't included in that makefile for some reason. We'll start building those by hand
Not done yet because they aren't in the 3rd-Party Makefile: amavisd, jetty, mrtg, slf4j, tcmalloc |