I have successfuly installed 8.0.4 in a 9.2 jail. Benefits of jail are that we do not mix production server with many dependent packages that may broke zimbra during upgrades/changes and we can leave primary server untouched. For local communication in a jail we need 127.0.0.2 as we cannot bind to the usual 127.0.0.1. This is the main obstacle in a FreeBSD jail.
Below are some notes to mention:
Edit /etc/resolv.conf, /etc/hosts and enable sshd.
It is better to manually install packages provided within zcs-8.0.4-FreeBSD-9_amd64.tgz by
pkg_add -f perl-5.14.2_2.tbz
perl -MCPAN -e shell
After installation change hardcoded loopback zimbraLocalBindAddress with
pkg_add -f bash-4.2.37.tbz
grep -l 127.0.0.1 postfix/conf/* conf/* bin/* libexec/* zimbramon/pylibs/* |\
xargs sed -i.old -e 's/127.0.0.1/127.0.0.2/g;s/::1/::2/g'
Into conf/amavisd.conf.in add
In principle this works in a small production environment with 20+ users. The only thing I cannot solve is missing symbol
$inet_socket_bind = '%%zimbraLocalBindAddress%%';
@inet_acl = qw( %%zimbraMtaMyNetworks%% );
This problem seems that it doesn't affecting us as we don't use gssapi.
mail postfix/dkimmilter/smtpd: unable to dlopen /opt/zimbra/cyrus-sasl-188.8.131.52z/lib/sasl2/libgssapiv2.so.3: /opt/zimbra/heimdal-1.5.2/lib/libroken.so.19: Undefined symbol "unvis"
Thanks for this "port". It would be even greater within ports as we may build it by our own without hassle.