[Devel] Zimbra FreeBSD Build and Packages

techsupport at altservice.com techsupport at altservice.com
Mon May 30 05:42:14 CEST 2016

Hi Ray,
 From my understanding of the Zimbra branches, the current stable version 
is 8.7 (Judas Priest). You can switch to this branch by running git 
checkout judaspriest-foss. This is the version I've been working with.

As for the OpenJDK versions, I would like to know the same.

The portability of the build scripts has been where I have been focusing 
my attention. There was a patch file that existed of Zimbra 8.0.8 (way 
behind on the minor version, but still in the same major version) that I 
have been using as a sort of rosetta stone to tinker my way through the 
build process (I'm not a real developer, I just pretend to be one on the 
weekends). If you are interested in looking at it, I have a copy of it 
at https://git.gnetsolutions.net/snippets/7

Making the build scripts more portable would be the best place to start, 
in my opinion.

A definable Zimbra home directory is also a good idea to make Zimbra 
more at home on FreeBSD. I do not have the necessary experience to 
comment on OpenBSD, NetBSD, or Dragon Fly BSD.

The question regarding MACOSX interests me as well. The more Zimbra can 
rely on packages provided by the OS, the easier the porting process will 

Another thing I wanted to cover was porting junixsocket to FreeBSD. This 
appears to be a Linux / Mac OSX specific application. Once I had a 
buildZCS.sh script capable of beginning the build process, junixsocket 
failed to build properly.

You sound like your on the right track Ray. Do you have the 
get_plat_tag.sh or buildZCS.sh scripts available online to observe?

Best regards,

On 2016-05-29 11:32, Ray wrote:
> Hello Mailinglist, Dusko, Alexander, Daniel, AJCody,
> This weekend I downloaded ZCS from git.zimbra.com. After checking out
> the various shell scripts and makefiles my honest opinion is that
> first we should modify the build and make files so it is more platform
> agnostic and makes it easier to port to other Operating Systems. I
> allready started to tinker around a bit but I would like to have some
> fundamental questions answered first.
> Regarding other BSDs, someone correct me if I am wrong, NetBSD uses
> pkgsrc, which came basically from ports, but diverged a lot on their
> quest to be ultra-portable. OpenBSD has their own port-system, which
> may also have been a fork from the FreeBSD ports system. DragonFly BSD
> uses dports, which basically are FreeBSD ports and they also use pkg
> as the binary packaging system. Dragonfly should be really easy to
> port to once it is working on FreeBSD. For Open and Net BSD I think
> their has to be some help from people in their respective camps.
> I think the right way to do it is clean up the build system and help
> make it be more portable. Then getting it to build correctly for the
> active branches and get a FreeBSD Port / pkgs going. Once this works
> ports to other Operating Systems should be much easier.
> Now to my questions:
> * I got the ZCS git repository, but I can not find either the 8.7 or
> the 9.0 branch, what are their branch names?
> * What would be ideal to concentrate on, 8.6, 8.7 or 9.0? How long
> until 9.0 would be stable? Are there big differences in the
> build-system between those 3 versions? I have seen that with 9.0 will
> change to maven, will this change a lot in the build system? Or are
> the changes relatively easy from 8.6 through 9.0? Will those changes
> effect the shell scripts and make files?
> * Is it possible to use OpenJDK7 (or 6, 8)?
> * Is it OK to make all shellscripts portable and getting rid of all
> the linux assumptions (use /bin/sh instead of /bin/bash,
> correct/detect locations for perl etc.)
> * Is it OK/Possible to make ZIMBRA_HOME defi nable? (In FreeBSD a
> location like /usr/local/zimbra is what is expected from a port to
> install into) . Would it be sufficient to change all the build
> shell-scripts and makefiles, or are there more elaborate changes
> involed?
> * Why does MACOSX build less packages then Linux in the thirdparty
> makefile? Are those libraries/applications used directly from the OSX
> system installation? Is it because those form part of the base system?
> What is the policy on apps/libraries being used from the OS or built
> them?
> * When doing some cleanups in the thirdpart install scripts I saw that
> the makefile defines MAKE=make. On GNU make, this variable is already
> set on startup to the name of the specific make application which was
> used. On FreeBSD GNU make is called gmake. Using gmake instead of make
> in the shellscript is rather easy, and if one does not do MAKE=make,
> all calls to $(MAKE) in the Makefile automatically use gmake when on
> FreeBSD. Is there some reason this variable gets re-defined to make?
> * The directory /ZimbraBuild/rpmconf/Build etc. contains build
> definitions for RedHat, Debian, Ubuntu, etc. but RPM refers to the
> redhat package manager, I guess this is something which just did not
> got changed, or do you create the .deb packages from the .rpm's? Is it
> correct to make changes needed for (Free)BSD in those directories? I
> started to modify the /ZimbraBuild/rpmconf/Build/get_plat_tag.sh to
> recognize FreeBSD and return the correct version. Should I just keep
> modifiying those scripts?
> * How would you propose to work and / or incorporate the changes we do
> on the repository, how can all the interested people help out at the
> same time? is git.zimbra.com just a git-repository or is it a github
> project? Do you have distributed work-flows defined?
> I guess that's enough questions for now :-)
> Best regards
> Ray

More information about the Devel mailing list