Zimbra on FreeBSD
Article Information |
---|
This article applies to the following ZCS versions. |
README FIRST (please, do)
Please, do not start random threads in zimbra/installation forums AND if so, please, post a link in the dedicated sticky thread AND/OR send me an email, contact me on Skype (have a look at my forum profile for more info). Most problems can be resolved within minutes and I am subscribed only to the main thread. Keep in mind that zimbra on FreeBSD is still officially unsupported and that means you won't get (the same as Linux users would) help from zimbra team.
Most people (like myself) got tons of other activities (like family/work) so they don't have time to read excessive amount of data.
If you spot a mistake, please, let me know - I am neither psychic or omnipotent.
If anyone wonders, this is not a joke.
Please, always check 8.x (IRONMAIDEN) FreeBSD thread for the latest news!
Please, always check 7.x (HELIX) FreeBSD thread for the latest news!
Please, always check 6.x (GNR) FreeBSD thread for the latest news!
General information
By building Zimbra, you agree to Zimbra's licensing terms.
By fetching Zimbra, related FreeBSD patches and/or packages from zimbra.imladris.sk, you agree to Zimbra's, SUN's, VMware's (and any other possible) licensing terms.
Zimbra does not support FreeBSD out of the box and there are no plans for the future support (or so we all heard).
Current version and changelist can be found on Product Management Portal.
Patch notes for IRONMAIDEN-8.0.3 (and higher)
It just works. Build and install process automated.
Patch notes for GNR-6.0.15 (and higher) and HELIX-7.1.4 (and higher)
1) ThirdParty is used from zimbra source:
- net-snmp upgraded to 5.7.1 to support FreeBSD-9
- google-perftools upgraded to 1.8.3 to support FreeBSD-9
- all Perl modules bundled
- every package has its own FreeBSD patches merged in (courtesy of /usr/ports). this was a forced change to cope with many compatibility issues which, frankly, almost made my head explode
- popt, expat, pcre used from base system (zimbra default)
2) FreeBSD_i386 support has been removed.
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) libexec/zmfixperms now fixes all needed permissions. It is called in every POST-INSTALL script.
7) really *great* pain has been undertaken to patch every little bit of zimbra universe to honor MAKE:=gmake.
no need to copy gmake to /usr/bin/make now! rejoice only if you build often.
8) server/services status and graphs in ZimbraAdmin web interface work!
9) the reign of diablo-jdk6 has ended! long live openjdk6! add this to your /etc/fstab just to be sure:
fdesc /dev/fd fdescfs rw 0 0 proc /proc procfs rw 0 0
and make it happen:
mount -a
Patch notes for GNR-6.0.14 (and lower) and HELIX-7.1.1 (and lower)
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 (117+ at the moment) 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) libexec/zmfixperms now fixes all needed permissions. It is called in every POST-INSTALL script.
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
Persuade Zimbra to include official support.
Troubleshooting
This is the part where opensource community unites to solve all the problems!
Common mistakes
1) /opt/zimbra symlinked elsewhere.
we all do hate /opt/zimbra directory as it spoils our nice FreeBSD tree. but, please, resist the temptation to symlink it elsewhere as that will render zimbra unusable and the installation will fail. if you need to move the it somewhere else, please, use nullfs:
zimbra# grep nullfs /etc/fstab /usr/home/zimbra.solko /opt/zimbra nullfs rw 0 0
mount_nullfs /usr/home/zimbra.solko /opt/zimbra
alternatively, switch to ZFS as you all should!
!!! Downloads !!!
If you don't see the new version here, please write me a request. Email is the best way.
IRONMAIDEN-808:
IRONMAIDEN-808 FreeBSD-9_amd64 patch
IRONMAIDEN-808 FreeBSD-9_amd64 packages
CVE-2014-0160 OpenSSL Heartbeat bug:
Patched OpenSSL versions for 8.0.0-8.0.7
IRONMAIDEN-804: (CVE-2014-0160 OpenSSL Heartbeat bug - FIXED - OpenSSL 1.0.1g 7 Apr 2014)
IRONMAIDEN-804 FreeBSD-9.1_amd64 patch
IRONMAIDEN-804 FreeBSD-9.1_amd64 packages
Downloads (legacy)
IRONMAIDEN-803: (CVE-2014-0160 OpenSSL Heartbeat bug - DO NOT DOWNLOAD or get patched OpenSSL version)
IRONMAIDEN-803 FreeBSD-9.1_amd64 patch, r5647
IRONMAIDEN-803 FreeBSD-9.1_amd64 packages, r5647
VMware Player compatible FreeBSD-9.1_amd64 image with zimbra packages, r5647, cd /install && ./install.sh
build guide IRONMAIDEN-803 FreeBSD-9.1_amd64
install guide IRONMAIDEN-803 FreeBSD-9.1_amd64
HELIX-720:
HELIX-720 ready-to-build source
HELIX-720 FreeBSD-9_amd64 packages
HELIX-720 FreeBSD-9_amd64 run dependencies (all packages) or build yourself (place this to /usr/ports/mail/)
HELIX-720 FreeBSD-9_amd64 build dependencies (all packages including zimbra-rundeps) or build yourself (place this to /usr/ports/mail/)
HELIX-714:
install guide HELIX-714 FreeBSD
patch HELIX-714 -> HELIX-714 FreeBSD
HELIX-714 ready-to-build source
HELIX-714 FreeBSD-9_amd64 packages
HELIX-714 FreeBSD-9_amd64 run dependencies (all packages) or build yourself (place this to /usr/ports/mail/)
HELIX-714 FreeBSD-9_amd64 build dependencies (all packages including zimbra-rundeps) or build yourself (place this to /usr/ports/mail/)
HELIX-714 FreeBSD-8_amd64 packages
HELIX-714 FreeBSD-8_amd64 run dependencies (all packages) or build yourself (place this to /usr/ports/mail/)
HELIX-714 FreeBSD-8_amd64 build dependencies (all packages including zimbra-rundeps) or build yourself (place this to /usr/ports/mail/)
HELIX-711:
install guide HELIX-711 FreeBSD
patch HELIX-711 -> HELIX-711 FreeBSD
HELIX-711 FreeBSD-8.2_amd64 packages
HELIX-711 FreeBSD-8.2_amd64 run dependencies (all packages) or build yourself (place this to /usr/ports/mail/)
HELIX-711 FreeBSD-8.2_amd64 build dependencies (all packages including zimbra-rundeps) or build yourself (place this to /usr/ports/mail/)
GNR-6015:
install guide GNR-6015 FreeBSD
patch GNR-6015 -> GNR-6015 FreeBSD
GNR-6015 ready-to-build source
GNR-6015 FreeBSD-9_amd64 packages
GNR-6015 FreeBSD-9_amd64 run dependencies (all packages) or build yourself (place this to /usr/ports/mail/)
GNR-6015 FreeBSD-9_amd64 build dependencies (all packages including zimbra-rundeps) or build yourself (place this to /usr/ports/mail/)
GNR-6015 FreeBSD-8_amd64 packages
GNR-6015 FreeBSD-8_amd64 run dependencies (all packages) or build yourself (place this to /usr/ports/mail/)
GNR-6015 FreeBSD-8_amd64 build dependencies (all packages including zimbra-rundeps) or build yourself (place this to /usr/ports/mail/)
GNR-6013:
install guide GNR-6013 FreeBSD
patch GNR-6013 -> GNR-6013 FreeBSD
GNR-6013 FreeBSD-8.2_amd64 packages
GNR-6013 FreeBSD-8.2_amd64 run dependencies (all packages) or build yourself (place this to /usr/ports/mail/)
GNR-6013 FreeBSD-8.2_amd64 build dependencies (all packages including zimbra-rundeps) or build yourself (place this to /usr/ports/mail/)
GNR-6012:
patch GNR-6012 -> GNR-6012 FreeBSD
GNR-609:
patch GNR-609 -> GNR-609 FreeBSD
GNR-609 FreeBSD-8.2_amd64 packages
GNR-609 FreeBSD-8.2_amd64 run dependencies (all packages) or build yourself (place this to /usr/ports/mail/)
GNR-609 FreeBSD-8.2_amd64 build dependencies (all packages including zimbra-rundeps) or build yourself (place this to /usr/ports/mail/)
GNR-608:
patch GNR-608 -> GNR-608 FreeBSD
GNR-608 FreeBSD-8.1_amd64 packages
GNR-608 FreeBSD-8.1_amd64 run dependencies (all packages) or build yourself (place this to /usr/ports/mail/)
GNR-608 FreeBSD-8.1_amd64 build dependencies (all packages including zimbra-rundeps) or build yourself (place this to /usr/ports/mail/)
GNR-607:
patch GNR-607 -> GNR-607 FreeBSD
GNR-607 run dependencies - build yourself (place this to /usr/ports/mail/)
GNR-607 build dependencies - build yourself (place this to /usr/ports/mail/)
GNR-606:
patch GNR-606 -> GNR-606 FreeBSD
GNR-606 FreeBSD-8_amd64 packages (clamav 0.96 included)
GNR-606 FreeBSD-8_amd64 run dependencies (all packages) or build yourself (place this to /usr/ports/mail/)
GNR-606 FreeBSD-8_amd64 build dependencies (all packages including zimbra-rundeps) or build yourself (place this to /usr/ports/mail/)
GNR-606 FreeBSD-8_i386 packages (clamav 0.96 included)
GNR-606 FreeBSD-8_i386 run dependencies (all packages) or build yourself (place this to /usr/ports/mail/)
GNR-606 FreeBSD-8_i386 build dependencies (all packages including zimbra-rundeps) or build yourself (place this to /usr/ports/mail/)
GNR-605:
patch GNR-605 -> GNR-605 FreeBSD
GNR-605 FreeBSD-8_amd64 packages
GNR-605 FreeBSD-8_amd64 run dependencies (all packages) or build yourself (place this to /usr/ports/mail/)
GNR-605 FreeBSD-8_amd64 build dependencies (all packages including zimbra-rundeps) or build yourself (place this to /usr/ports/mail/)
GNR-604:
patch GNR-604 -> GNR-604 FreeBSD
GNR-604 FreeBSD-8_amd64 packages
GNR-603:
patch GNR-603 -> GNR-603 FreeBSD
GNR-603 FreeBSD-7_amd64 packages
GNR-603 FreeBSD-8_amd64 packages
GNR-602:
patch GNR-602 -> GNR-602 FreeBSD
GNR-602 FreeBSD-7_amd64 packages
GNR-601:
build/install guide GNR-601 FreeBSD i386
build/install guide GNR-601 FreeBSD amd64
patch GNR-601 -> GNR-601 FreeBSD
GNR-601 FreeBSD-7_i386 packages
GNR-601 FreeBSD-7_amd64 packages
Known issues
None.
--Solko 16:59, 12 June 2011 (PDT)