Advise shared with me from others I talked to or who have responded to my questions about porting.
Please use the forums for general discussions and help on porting issues. Zimbra has disabled the 'issues' section (and other bits) on GitHub, the only 'communication' that takes place on GitHub is a commentary on pull requests (code reviews, etc.). You could also use the Zeta Alliance mailing lists as well - http://www.zetalliance.org/contact .
General Issues with porting for non-official platforms that aren't supported commercially by Zimbra.
1. Posting issues would not be something the Zimbra team would be very active in at this time. They have limited their official platform support based on their QA/Testing resources.
2. Third-party packages :: This is probably the most difficult part since Zimbra currently relies on special builds of certain packages. While they are moving away from Zimbra specific builds, it is an involved process and not likely to be completed soon. To port the current work, one would need to update the "packages" repository (https://github.com/Zimbra/packages) to build for the desired platform.
In the past, it has been said, that this is the only content that needs to be ported to any particular new platform. However, this might not be the case. For example, there are some additional dependencies, like junixsocket (https://github.com/kohlschutter/junixsocket), which would need platform support as well.
3. Zimbra native :: The Zimbra native package would require changes to support the appropriate platform. This package has not been updated in a long time.
Someone had shared, "I have a personal copy of this which I have building on Mac OSX (mostly untested). The changes I had to make were around includes (location of malloc has changed) and a couple of other minor things."
4. Packaging scripts :: Right now, the packaging scripts for the installer make certain assumptions about artifacts produced (for example .so extensions on shared libraries). They would need to be updated.
See older BSD porting thread for others that were interested in doing a BSD port and past discussions on it before all the recent changes announced at the NYC COMMIT conference: http://lists.zetalliance.org/pipermail/ ... d.html#170
-Ajcody
P.S. There's also some older attempts at BSD porting and references that might or might not be helpful at this time.
http://www.jupiterbroadcasting.com/show/bsdnow/
[I shared with them last year about Zeta Alliance and trying to see interests on a Zimbra BDS port]
https://wiki.zimbra.com/wiki/Zimbra_on_FreeBSD
[done by -Solko]
[downloads{patches} are no longer available unfortunately]
[Has old zimbra forum links as well on BSD ports]
https://forums.freebsd.org/threads/2342/
[looks like -Solko {as solko-fbsd} was on this thread as well]
https://project.altservice.com/issues/804
https://project.altservice.com/issues/377
https://wiki.freebsd.org/WantedPorts
[Possible threads to review for contacts to help with new port]
https://www.freebsdnews.com/2008/03/24/ ... -petition/
http://freebsd.1045724.x6.nabble.com/Zi ... 82068.html
https://forums.pcbsd.org/thread-4630.html
https://forums.pcbsd.org/thread-12646.h ... ght=zimbra
https://forums.pcbsd.org/thread-11520.h ... ght=zimbra
- Zimbra Collaboration 8.6 Patch 9 now available (includes fix for CVE-2017-8802). Read the announcement.
- Zimbra Collaboration 8.8.7 + Zimbra Connector for Outlook 8.8.7 are available.. Read the announcement.
- Are you a Zimbra Developer? You can find some interesting stuff in our Official GitHub: https://github.com/Zimbra and check the Community Projects too: https://github.com/Zimbra-Community/
General Advise/Guidance on Porting to BSD
- tonster
- Zimbra Employee
- Posts: 309
- Joined: Fri Feb 21, 2014 10:14 am
- Location: Ypsilanti, MI
- ZCS/ZD Version: Release 8.7.0_GA_1659.RHEL6_64_2016
Re: General Advise/Guidance on Porting to BSD
I've created a couple of patches that will allow a freebsd build to continue beyond the initial run of build.pl. I'm attaching them below.
The following will be needed for zm-build/build.pl:
https://www.dropbox.com/s/c13cg21thpe1v ... patch?dl=0
The following will be needed for zm-build/rpmconf/Build/get_plat_tag.sh:
https://www.dropbox.com/s/3tcsg6eyde89d ... patch?dl=0
Once applied, you should get further and (after installing various pre-req's) see something similar to:
[root@freebsd-build ~/installer-build/zm-build]# perl ./build.pl --build-no=1713 --build-ts=`date +'%Y%m%d%H%M%S'` --build-release=JUDASPRIEST --build-release-no=8.7.6 --build-release-candidate=GA --build-type=FOSS --build-thirdparty-server=files.zimbra.com
=========================================================================================================
BUILD_NO : cmdline : 1713
BUILD_TS : cmdline : 20170329214055
BUILD_ARTIFACTS_BASE_DIR : default : /root/installer-build/BUILDS
BUILD_SOURCES_BASE_DIR : default : /root/installer-build
BUILD_RELEASE : cmdline : JUDASPRIEST
BUILD_RELEASE_NO : cmdline : 8.7.6
BUILD_RELEASE_CANDIDATE : cmdline : GA
BUILD_TYPE : cmdline : FOSS
BUILD_THIRDPARTY_SERVER : cmdline : files.zimbra.com
BUILD_PROD_FLAG : default : 1
BUILD_DEBUG_FLAG : default : 0
BUILD_DEV_TOOL_BASE_DIR : default : /root/.zm-dev-tools
INTERACTIVE : default : 1
STOP_AFTER_CHECKOUT : default : 0
BUILD_OS : detected : FreeBSD_64
BUILD_ARCH : detected : amd64
BUILD_RELEASE_NO_SHORT : detected : 876
BUILD_DIR : detected : /root/installer-build/BUILDS/FreeBSD_64/JUDASPRIEST-876/20170329214055_FOSS
=========================================================================================================
ENV_BUILD_INCLUDE : (undef)
ENV_CACHE_CLEAR_FLAG : (undef)
ENV_FORCE_REBUILD : (undef)
ENV_GIT_UPDATE_INCLUDE : (undef)
ENV_PACKAGE_INCLUDE : (undef)
ENV_RESUME_FLAG : (undef)
ENV_SKIP_CLEAN_FLAG : (undef)
=========================================================================================================
USING javac : /usr/local/bin/javac (JAVA_HOME=/usr/local)
USING java : /usr/local/bin/java
USING maven : /usr/local/bin/mvn
USING ant : /usr/local/bin/ant
USING cc : /usr/bin/cc
USING c++ : /usr/bin/c++
USING ruby : /usr/local/bin/ruby
=========================================================================================================
Press enter to proceed
I did also have to create a couple symlinks, since various options are located in areas we don't expect on other OS':
ln -s /usr/local/bin/perl /usr/bin
ln -s /usr/local/bin/ruby21 /usr/local/bin/ruby
The following will be needed for zm-build/build.pl:
https://www.dropbox.com/s/c13cg21thpe1v ... patch?dl=0
The following will be needed for zm-build/rpmconf/Build/get_plat_tag.sh:
https://www.dropbox.com/s/3tcsg6eyde89d ... patch?dl=0
Once applied, you should get further and (after installing various pre-req's) see something similar to:
[root@freebsd-build ~/installer-build/zm-build]# perl ./build.pl --build-no=1713 --build-ts=`date +'%Y%m%d%H%M%S'` --build-release=JUDASPRIEST --build-release-no=8.7.6 --build-release-candidate=GA --build-type=FOSS --build-thirdparty-server=files.zimbra.com
=========================================================================================================
BUILD_NO : cmdline : 1713
BUILD_TS : cmdline : 20170329214055
BUILD_ARTIFACTS_BASE_DIR : default : /root/installer-build/BUILDS
BUILD_SOURCES_BASE_DIR : default : /root/installer-build
BUILD_RELEASE : cmdline : JUDASPRIEST
BUILD_RELEASE_NO : cmdline : 8.7.6
BUILD_RELEASE_CANDIDATE : cmdline : GA
BUILD_TYPE : cmdline : FOSS
BUILD_THIRDPARTY_SERVER : cmdline : files.zimbra.com
BUILD_PROD_FLAG : default : 1
BUILD_DEBUG_FLAG : default : 0
BUILD_DEV_TOOL_BASE_DIR : default : /root/.zm-dev-tools
INTERACTIVE : default : 1
STOP_AFTER_CHECKOUT : default : 0
BUILD_OS : detected : FreeBSD_64
BUILD_ARCH : detected : amd64
BUILD_RELEASE_NO_SHORT : detected : 876
BUILD_DIR : detected : /root/installer-build/BUILDS/FreeBSD_64/JUDASPRIEST-876/20170329214055_FOSS
=========================================================================================================
ENV_BUILD_INCLUDE : (undef)
ENV_CACHE_CLEAR_FLAG : (undef)
ENV_FORCE_REBUILD : (undef)
ENV_GIT_UPDATE_INCLUDE : (undef)
ENV_PACKAGE_INCLUDE : (undef)
ENV_RESUME_FLAG : (undef)
ENV_SKIP_CLEAN_FLAG : (undef)
=========================================================================================================
USING javac : /usr/local/bin/javac (JAVA_HOME=/usr/local)
USING java : /usr/local/bin/java
USING maven : /usr/local/bin/mvn
USING ant : /usr/local/bin/ant
USING cc : /usr/bin/cc
USING c++ : /usr/bin/c++
USING ruby : /usr/local/bin/ruby
=========================================================================================================
Press enter to proceed
I did also have to create a couple symlinks, since various options are located in areas we don't expect on other OS':
ln -s /usr/local/bin/perl /usr/bin
ln -s /usr/local/bin/ruby21 /usr/local/bin/ruby
Who is online
Users browsing this forum: No registered users and 1 guest