[Devel] Zimbra FreeBSD Build and Packages
rs+zetalliance.org at trust64.com
Sun May 29 20:32:28 CEST 2016
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 :-)
More information about the Devel