Zimbra on FreeBSD: Difference between revisions

Line 78: Line 78:
New versions require the same steps as the old versions unless stated otherwise (e.g.: just substitute '601' with '602').
New versions require the same steps as the old versions unless stated otherwise (e.g.: just substitute '601' with '602').


'''1) GNR-602''':
'''1) GNR-601''':
 
[http://zimbra.imladris.sk/download/patches/GNR-601.FreeBSD.patch patch GNR-601 -> GNR-601 FreeBSD]
 
[http://zimbra.imladris.sk/download/zimbra-packages/GNR-601/zcs-6.0.1_GA_1817.FreeBSD_amd64.tar.gz GNR-601 FreeBSD_7_amd64 packages]
 
'''2) GNR-602''':


[http://zimbra.imladris.sk/download/patches/GNR-602.FreeBSD.patch patch GNR-602 -> GNR-602 FreeBSD]
[http://zimbra.imladris.sk/download/patches/GNR-602.FreeBSD.patch patch GNR-602 -> GNR-602 FreeBSD]


[http://zimbra.imladris.sk/download/zimbra-packages/GNR-602/zcs-6.0.2_GA_1913.FreeBSD_amd64.tar.gz GNR-602 FreeBSD_amd64 packages]
[http://zimbra.imladris.sk/download/zimbra-packages/GNR-602/zcs-6.0.2_GA_1913.FreeBSD_amd64.tar.gz GNR-602 FreeBSD_7_amd64 packages]
 
'''3) GNR-603''':
 
[http://zimbra.imladris.sk/download/patches/GNR-603.FreeBSD.patch patch GNR-603 -> GNR-603 FreeBSD]
 
[http://zimbra.imladris.sk/download/zimbra-packages/GNR-603/zcs-6.0.3_GA_1916.FreeBSD_amd64.tar.gz GNR-603 FreeBSD_7_amd64 packages]




--[[User:Solko|Solko]] 16:29, 21 November 2009 (UTC)
--[[User:Solko|Solko]] 14:02, 3 December 2009 (UTC)
[[Category: Build]] [[Category: Installation]]
[[Category: Build]] [[Category: Installation]]

Revision as of 14:02, 3 December 2009

General information

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

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 YPL.

By fetching Zimbra from zimbra.imladris.sk, you agree to Zimbra's licensing terms. I am not good at legal stuff, screw it.

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

Zimbra does not support FreeBSD out of the box and there are no plans for the future support (or so we all heard). I tried to integrate FreeBSD into source tree as much as possible so the same version should compile fine on other supported systems.

GNR-601 *was* the latest 6.0 series release at the time of writing this document. Current version and changelist can be found on Pmweb.

This document summarizes everything related to GNR-601 on FreeBSD-7, however patched GNR-601 will build on FreeBSD-6 and FreeBSD-8 as well.

Patch notes

This is a complete rework of GNR-601 source tree and it sometimes makes things better than the original. Some notable changes:

1) openssl, bdb, libtool, popt, expat, pcre, libxml2, tcmalloc are used from base system.

Rest is too Zimbra specific and would be of no other use on the system.

2) most perl modules are used from base system. Those left unchanged are:

Getopt::Easy - not in /usr/ports and it's not really used at all besides one tiny script (no idea why not using Getopt::Long like usual),

DBD::mysql - mysql specific includes/libs not part of base,

Net-LDAPapi - ldap/cyrus-sasl specific includes/libs not part of base,

Mail-SpamAssassin - requires different datadir.

3) FreeBSD specific includes in ZimbraBuild/defs/FreeBSD* and ZimbraBuild/defs/ThirdParty/*

4) package generation is handled by pkg_create so we install real FreeBSD specific packages.

5) complete rework of PRE-INSTALL/POST-INSTALL/DEINSTALL scripts in ZimbraBuild/rpmconf/Spec/Scripts/FreeBSD.

6) every su - zimbra -c call has been replaced by sudo -u zimbra -i -- -c call because su+bash is hitting a race condition on FreeBSD-7.2 (and other systems.. like Linux) which causes some scripts to hang up indefinitely.

7) libexec/zmfixperms now fixes all needed permissions. It is called in every POST-INSTALL script.

Building GNR-601 on FreeBSD-7.2_amd64

Building_GNR_on_FreeBSD_7.2_amd64

Installing GNR-601 on FreeBSD-7.2_amd64 without building

Installing_GNR_on_FreeBSD_7.2_amd64

Building GNR-601 on FreeBSD-7.2_i386

Building_GNR_on_FreeBSD_7.2_i386

Installing GNR-601 on FreeBSD-7.2_i386 without building

Installing_GNR_on_FreeBSD_7.2_i386

Suggested tweaks

1) cpu spikes every minute or two:

su - zimbra
zmlocalconfig -e zmmtaconfig_interval=6000
zmprov mcf zimbraLogRawLifetime 7d
zmprov mcf zimbraLogSummaryLifetime 30d
/opt/zimbra/libexec/zmlogprocess
sed -I "" -e s'|.* \* \* \* \* /opt/zimbra/libexec/zmstatuslog|\*/60 \* \* \* \* /opt/zimbra/libexec/zmstatuslog|' /var/cron/tabs/zimbra

TO DO

1) create a Zimbra FreeBSD specific start-up script in /usr/local/etc/rc.d.

I failed miserably at the attempt so please someone supply somehow..

Troubleshooting

This is the part where opensource community unites to solve all the problems!

New versions

I will try to keep this project real. If you don't see the new version here, please write me a request. New versions require the same steps as the old versions unless stated otherwise (e.g.: just substitute '601' with '602').

1) GNR-601:

patch GNR-601 -> GNR-601 FreeBSD

GNR-601 FreeBSD_7_amd64 packages

2) GNR-602:

patch GNR-602 -> GNR-602 FreeBSD

GNR-602 FreeBSD_7_amd64 packages

3) GNR-603:

patch GNR-603 -> GNR-603 FreeBSD

GNR-603 FreeBSD_7_amd64 packages


--Solko 14:02, 3 December 2009 (UTC)

Jump to: navigation, search