Commit e952e29d authored by Marco Mariani's avatar Marco Mariani

first attempt at an instance.cfg profile

parent 48ac33e9
......@@ -57,6 +57,8 @@
# sudo chmod 755 /etc/authbind/byport/{80,110,143,443,\!993,\!995}
#
offline = false
extends =
/home/marco/src/slapos/stack/slapos.cfg
/home/marco/src/slapos/component/git/buildout.cfg
......@@ -77,6 +79,7 @@ extends =
/home/marco/src/slapos/component/sqlite3/buildout.cfg
/home/marco/src/slapos/component/pax/buildout.cfg
/home/marco/src/slapos/component/p7zip/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/git/buildout.cfg
parts =
......@@ -88,8 +91,6 @@ parts =
jdk-sources-policy
jdk-sources-policy2
junit
junixsocket
junixsocket-sources
ant
autoconf
automake
......@@ -113,6 +114,8 @@ parts =
zimbra-sources-search-replace
environment
sh-environment
junixsocket
junixsocket-sources
zimbra-build
......@@ -257,8 +260,9 @@ strip-top-level-dir = True
# checkout the zimbra and thirt party sources.
recipe = slapos.recipe.build:gitclone
#repository = https://marco.mariani@bitbucket.org/marco.mariani/zimbra-5682.git
repository = /home/marco/src/zimbra-5682
branch = buildout
#repository = /home/marco/src/zimbra-5682
repository = http://git.erp5.org/repos/zimbra.git
branch = authbind
develop = True
git-executable = ${git:location}/bin/git
......@@ -622,73 +626,3 @@ inotifyx = 0.2.0
netifaces = 0.8
# ----------------------- automatically picked -----------------------
Jinja2 = 2.7
MarkupSafe = 0.18
Werkzeug = 0.8.3
buildout-versions = 1.7
collective.recipe.environment = 0.2.0
cp.recipe.cmd = 0.4
hexagonit.recipe.cmmi = 2.0
meld3 = 0.6.10
plone.recipe.command = 1.1
slapos.recipe.cmmi = 0.1.1
# Required by:
# slapos.core==0.35.1
Flask = 0.9
# Required by:
# slapos.cookbook==0.77.2.dev
# slapos.core==0.35.1
# xml-marshaller==0.9.7
lxml = 3.2.1
# Required by:
# slapos.cookbook==0.77.2.dev
netaddr = 0.7.10
# Required by:
# slapos.core==0.35.1
pyflakes = 0.7.2
# Required by:
# slapos.cookbook==0.77.2.dev
pytz = 2013b
# Required by:
# slapos.cookbook==0.77.2.dev
# slapos.core==0.35.1
# zc.buildout==1.6.0-dev-SlapOS-010
# zc.recipe.egg==1.3.2
setuptools = 0.6c12dev-r88997
# Required by:
# slapos.cookbook==0.77.2.dev
slapos.core = 0.35.1
# Required by:
# slapos.core==0.35.1
supervisor = 3.0b1
# Required by:
# slapos.core==0.35.1
unittest2 = 0.5.1
# Required by:
# slapos.cookbook==0.77.2.dev
xml-marshaller = 0.9.7
# Required by:
# zope.testing==4.1.2
zope.exceptions = 4.0.6
# Required by:
# slapos.core==0.35.1
zope.interface = 4.0.5
# Required by:
# cp.recipe.cmd==0.4
zope.testing = 4.1.2
[buildout]
# XXX-Marco - Extra dependencies
# ------------------------------
# for libmemcached / opendkim:
# sudo apt-get install libcloog-ppl0
# for heimdal:
# sudo apt-get install libncurses5-dev
# for libjunixsocket:
# sudo apt-get install gcc-multilib
#
# Changes in the Zimbra sources:
# mysql will be compiled with the embedded yaSSL library instead of openssl
#
# XXX TODO: grep -R 'opt\\/zimbra' .
# grep -R '/usr/bin/procmail' .
# netcat, sysstat, syslog?
# rar, full 7z, not only 7za
# source environment.sh before .bashrc ?
# zmlocalconfig postfix_alias_maps -- hash:/etc/aliases
#
#
# /etc/security/limits.conf:
# -------------------
# * hard nofile 32768
# * soft nofile 32768
# -------------------
#
#
# -------------------
# /etc/rsyslog.conf:
# # uncomment the following
#
# # provides UDP syslog reception
# $ModLoad imudp
# $UDPServerRun 514
#
# # provides TCP syslog reception
# $ModLoad imtcp
# $InputTCPServerRun 514
# -------------------
#
#
# IP=192.168.3.97
# iptables -t nat -A PREROUTING -p tcp -d $IP --dport 80 -j DNAT --to-destination $IP:10080
# iptables -t nat -A PREROUTING -p tcp -d $IP --dport 443 -j DNAT --to-destination $IP:10443
# iptables -t nat -A PREROUTING -p tcp -d $IP --dport 143 -j DNAT --to-destination $IP:10143
# iptables -t nat -A PREROUTING -p tcp -d $IP --dport 993 -j DNAT --to-destination $IP:10993
# iptables -t nat -A PREROUTING -p tcp -d $IP --dport 110 -j DNAT --to-destination $IP:10110
# iptables -t nat -A PREROUTING -p tcp -d $IP --dport 995 -j DNAT --to-destination $IP:10995
#
#
#
# sudo apt-get install authbind=2.1.1
# sudo touch /etc/authbind/byport/{80,110,143,443,\!993,\!995}
# sudo chown `id -u`.`id -u` /etc/authbind/byport/{80,110,143,443,\!993,\!995}
# sudo chmod 755 /etc/authbind/byport/{80,110,143,443,\!993,\!995}
#
offline = false
extends =
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/stack/slapos.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/git/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/autoconf/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/automake/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/libtool/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/pkgconfig/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/bison/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/flex/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/unzip/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/cmake/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/ncurses/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/bzip2/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/pcre/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/perl/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/perl-libwww-perl/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/perl-URI/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/sqlite3/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/pax/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/p7zip/buildout.cfg
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/zimbra:/component/git/buildout.cfg
parts =
slapos.core-repository
check-ulimit
slapos-cookbook
directories
jdk
jdk-sources
jdk-sources-policy
jdk-sources-policy2
junit
ant
autoconf
automake
libtool
pkgconfig
bison
flex
unzip
cmake
ncurses
bzip2
sqlite3
pax-download
pax
p7zip
pcre
perl
perl-libwww-perl
perl-URI
zimbra-sources
zimbra-sources-search-replace
environment
sh-environment
junixsocket
junixsocket-sources
zimbra-build
develop =
${:parts-directory}/slapos.core-repository
[slapos.core-repository]
recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/slapos.core.git
branch = slapos-override-env
git-executable = ${git:location}/bin/git
[check-ulimit]
# /etc/security/limits.conf should contain something like:
# * hard nofile 32768
# * soft nofile 32768
recipe = plone.recipe.command
stop-on-error = true
update-command = ${:command}
command = ulimit -n 32768
[perl]
# We need to build Perl with -fPIC,
# in order to compile the Perl backend for openldap.
# Using zimbra's provided perl would probably be a better option.
configure-command =
sh Configure -des \
-Dprefix=${buildout:parts-directory}/${:_buildout_section_name_} \
-Dsiteprefix=${:siteprefix} \
-Accflags='-fPIC' \
-Dcflags=-I${gdbm:location}/include \
-Dldflags="-L${gdbm:location}/lib -Wl,-rpath=${gdbm:location}/lib" \
-Ui_db \
-Dnoextensions=ODBM_File \
-Dusethreads
[jdk-download]
# hack to download java and policy files, bypassing javascript requirement
recipe = plone.recipe.command
location = ${buildout:parts-directory}/${:_buildout_section_name_}
web-dirname = 7u15-b03
filename = jdk-7u15-linux-x64.tar.gz
policy-filename = UnlimitedJCEPolicyJDK7.zip
stop-on-error = True
update = true
command =
mkdir -p ${:location}
wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" \
"http://download.oracle.com/otn-pub/java/jdk/${:web-dirname}/${:filename}" \
-O ${:location}/${:filename}
wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" \
http://download.oracle.com/otn-pub/java/jce/7/${:policy-filename} \
-O ${:location}/${:policy-filename}
[jdk]
# Uncompress the downloaded JDK
recipe = hexagonit.recipe.download
url = ${jdk-download:location}/${jdk-download:filename}
md5sum = 118a16aab9ff2c3f7c7788658cc77734
strip-top-level-dir = True
[jdk-sources]
# copy the jdk tarball inside the build tree
recipe = plone.recipe.command
zimbra-target = ${zimbra-sources:location}/ThirdPartyBuilds/x86_64/java
zimbra-filename = jdk1.7.0_15.tgz
update-command = ${:command}
command =
mkdir -p ${:zimbra-target}
cp ${jdk-download:location}/${jdk-download:filename} ${:zimbra-target}/${:zimbra-filename}
# alternate spelling (the jdk is referenced with two different names)
ln -s ${:zimbra-target}/${:zimbra-filename} ${:zimbra-target}/jdk-1.7.0_15.tgz
#------------------------
# The policy files are looked for under two different paths.
[jdk-sources-policy]
# copy the java policy inside the build tree
recipe = hexagonit.recipe.download
url = ${jdk-download:location}/${jdk-download:policy-filename}
destination = ${jdk-sources:zimbra-target}/jce
strip-top-level-dir = True
[jdk-sources-policy2]
# copy the java policy inside the build tree
recipe = hexagonit.recipe.download
url = ${jdk-download:location}/${jdk-download:policy-filename}
destination = ${jdk-sources:zimbra-target}/jce/UnlimitedJCEPolicy7/
strip-top-level-dir = True
#------------------------
[junit]
recipe = hexagonit.recipe.download
filename = junit-4.8.2.jar
url = http://zimbra.imladris.sk/download/jars/${:filename}
md5sum = 8a498c3d820db50cc7255d8c46c1ebd1
download-only = True
destination = ${zimbra-sources:location}/ZimbraCommon/jars
[junixsocket]
# build the native junixsocket library. the .jar parts are already inside the jars/ folder
recipe = hexagonit.recipe.cmmi
url = http://junixsocket.googlecode.com/files/junixsocket-1.3-src.tar.bz2
md5sum = fe249aba3bf568d71a5174506cf4ae80
configure-command = /bin/true
make-binary = ${ant:location}/bin/ant
make-targets =
environment-dependency = ${environment:recipe}
junit-path = ${junit:destination}/${junit:filename}
pre-make-hook = ${:_profile_base_location_}/junixsocket-hooks.py:fix_build_xml
post-make-hook = ${:_profile_base_location_}/junixsocket-hooks.py:install_library
[junixsocket-sources]
# copy the junixsocket library inside the build tree
recipe = plone.recipe.command
zimbra-target = ${zimbra-sources:location}/ThirdPartyBuilds/x86_64/java
update-command = ${:command}
command =
mkdir -p ${:zimbra-target}/junixsocket
cd ${:zimbra-target}/junixsocket
tar --extract --bzip2 --file ${junixsocket:location}/junixsocket-1.3-bin.tar.bz2 --wildcards '*.so' --strip-components=2
[ant]
recipe = hexagonit.recipe.download
# latest releases
# url = http://mirrors.linsrv.net/apache//ant/binaries/${:filename}
url = http://archive.apache.org/dist/ant/binaries/${:filename}
filename = apache-ant-1.9.0-bin.tar.gz
md5sum = 8360ecbf5375769241abf7145954b62b
strip-top-level-dir = True
[zimbra-sources]
# checkout the zimbra and thirt party sources.
recipe = slapos.recipe.build:gitclone
#repository = https://marco.mariani@bitbucket.org/marco.mariani/zimbra-5682.git
#repository = /home/marco/src/zimbra-5682
repository = http://git.erp5.org/repos/zimbra.git
branch = authbind
develop = True
git-executable = ${git:location}/bin/git
[zimbra-sources-search-replace]
recipe = plone.recipe.command
ZIMBRA_HOME = ${environment:ZIMBRA_HOME}
PERL_BINARY = ${perl:location}/bin/perl
stop-on-error = True
update-command = ${:command}
command =
cd ${zimbra-sources:location}
find . -name LocalConfig.java -exec sed -i 's#= FS + "opt" + FS + "zimbra"#= "${:ZIMBRA_HOME}"#g' {} \;
# sixteen backslashes, yeah.
ZIMBRA_HOME_WITH_BACKSLASHES=`echo $ZIMBRA_HOME | sed "s#/#\\\\\\\\\\\\\\\\/#g"`
# for most cases:
SUB1='s#/opt/zimbra#${:ZIMBRA_HOME}#g'
# perl scripts shebang:
SUB2='1{s|^#!/usr/bin/perl|#!${:PERL_BINARY}|}'
# zmamavisdctl and friends:
SUB3="s#\\\\/opt\\\\/zimbra#$ZIMBRA_HOME_WITH_BACKSLASHES#g"
GROUP_NAME=`id -gn`
USER_NAME=`id -un`
# replace all remaining occurrences of /opt/zimbra
find . -name '.git' -prune -o -type f -exec sed -i "$SUB1;$SUB2;$SUB3" {} \;
# replace occurrences of zimbra users in config files
# do not match the beginning of lines because escaping $ is easy to get wrong
sed -i "s|daemon_user *= *'zimbra';|daemon_user = '$USER_NAME';|" ZimbraServer/conf/amavisd.conf.in
sed -i "s|daemon_group *= *'zimbra';|daemon_group = '$GROUP_NAME';|" ZimbraServer/conf/amavisd.conf.in
sed -i "s|UserID *zimbra:zimbra|UserID $USER_NAME:$GROUP_NAME|" ZimbraServer/conf/opendkim.conf.in
sed -i "s|User zimbra|User $USER_NAME|" ZimbraServer/conf/clamd.conf.in
sed -i "s|Trust zimbra|Trust $USER_NAME|" ZimbraServer/conf/dspam.conf.in
sed -i "s|DatabaseOwner zimbra|DatabaseOwner $USER_NAME|" ZimbraServer/conf/freshclam.conf.in
[zimbra-build]
# run the main build script for zimbra itself and thirt parties as well.
recipe = plone.recipe.command
command = ${zimbra-sources:location}/ZimbraBuild/buildZCS.sh -t -p --tpoverride
update-command = ${:command}
stop-on-error = True
[environment-base]
# provides existing envvars to the [environment] section
recipe = collective.recipe.environment
[environment]
# environment needed for building the applications.
recipe = collective.recipe.environment
ZIMBRA_HOME = ${directories:zimbra-home}
JAVA_HOME = ${jdk:location}
ANT_HOME = ${ant:location}
PATH = ${perl:location}/bin:/bin:${:JAVA_HOME}/bin:${:ANT_HOME}/bin:${autoconf:location}/bin:${automake:location}/bin:${libtool:location}/bin:${pkgconfig:location}/bin:${bison:location}/bin:${flex:location}/bin:${unzip:location}/bin:${cmake:location}/bin:${ncurses:location}/bin:${m4:location}/bin:${bzip2:location}/bin:${pcre:location}/bin:${sqlite3:location}/bin:${pax:location}/bin:${p7zip:location}/bin:/usr/local/bin:/usr/bin
LD_LIBRARY_PATH = ${:ZIMBRA_HOME}/bdb/lib:${:ZIMBRA_HOME}/mysql/lib
BZIP2_PREFIX = ${bzip2:location}
PCRE_PREFIX = ${pcre:location}
NCURSES_PREFIX = ${ncurses:location}
MAKEARGS=-j2
ZIMBRA_USER=${environment-base:USER}
[sh-environment]
# environment needed for running/debugging the applications, exported to a shell script to be sourced.
recipe = collective.recipe.template
output = ${buildout:directory}/environment.sh
input = inline:
export ZIMBRA_HOME="${environment:ZIMBRA_HOME}"
export JAVA_HOME="${environment:JAVA_HOME}"
export ANT_HOME="${environment:ANT_HOME}"
export PATH="${environment:PATH}:${environment:ZIMBRA_HOME}/bin"
export LD_LIBRARY_PATH="${environment:LD_LIBRARY_PATH}"
export BZIP2_PREFIX="${environment:BZIP2_PREFIX}"
export PCRE_PREFIX="${environment:PCRE_PREFIX}"
export NCURSES_PREFIX="${environment:NCURSES_PREFIX}"
export MAKEARGS="${environment:MAKEARGS}"
export ZIMBRA_USER="${environment:ZIMBRA_USER}"
[directories]
recipe = slapos.cookbook:mkdirectory
zimbra-home = ${buildout:directory}/zimbra-home
[zimbra-deploy-store]
# extract binaries and scripts from the .deb packages
recipe = cp.recipe.cmd
# required to source .bashrc
shell = /bin/bash
PACKAGE_LIST = zimbra-core zimbra-store
ZIMBRA_HOME = ${environment:ZIMBRA_HOME}
# attention: reference to the gitcloned part. we don't want it to be updated
#PACKAGES = ${zimbra-sources:location}/ZimbraBuild/amd64
PACKAGES = /home/marco/zbuild/amd64
update_cmd = ${:install_cmd}
install_cmd =
rm -rf ${:ZIMBRA_HOME}
mkdir ${:ZIMBRA_HOME}
cd ${:ZIMBRA_HOME}
for pkg_name in ${:PACKAGE_LIST}; do
echo "Unpacking $pkg_name..."
ar x ${:PACKAGES}/$pkg_name*.deb
tar xvf data.tar.gz --strip=5 >/dev/null
rm data.tar.gz
rm control.tar.gz
done
ln -sf bdb-* bdb
ln -sf curl-* curl
ln -sf cyrus-sasl-* cyrus-sasl
ln -sf heimdal-* heimdal
ln -sf jdk* java
ln -sf mysql-* mysql
ln -sf openldap-* openldap
ln -sf openssl-* openssl
ln -sf rsync-* rsync
ln -sf tcmalloc-* tcmalloc
ln -sf jetty-distribution-* jetty
ln -sf jetty-distribution-* mailboxd
mkdir -p zimlets-deployed
mkdir -p log # only provided with zimbra-store
mkdir -p data/tmp
chmod 1777 data/tmp
mkdir backup ssl .ssh zmstat
echo . ${:ZIMBRA_HOME}/.bashrc
echo cd ${:ZIMBRA_HOME}\; ZIMBRA_INSTALLED_PKGS=\"${:PACKAGE_LIST}\" ./libexec/zmsetup.pl
[zimbra-deploy-ldap]
# extract binaries and scripts from the .deb packages
recipe = cp.recipe.cmd
# required to source .bashrc
shell = /bin/bash
PACKAGE_LIST = zimbra-core zimbra-ldap
ZIMBRA_HOME = ${environment:ZIMBRA_HOME}
# attention: reference to the gitcloned part. we don't want it to be updated
#PACKAGES = ${zimbra-sources:location}/ZimbraBuild/amd64
PACKAGES = /home/marco/zbuild/amd64
update_cmd = ${:install_cmd}
install_cmd =
rm -rf ${:ZIMBRA_HOME}
mkdir ${:ZIMBRA_HOME}
cd ${:ZIMBRA_HOME}
for pkg_name in ${:PACKAGE_LIST}; do
echo "Unpacking $pkg_name..."
ar x ${:PACKAGES}/$pkg_name*.deb
tar xvf data.tar.gz --strip=5 >/dev/null
rm data.tar.gz
rm control.tar.gz
done
ln -sf bdb-* bdb
ln -sf curl-* curl
ln -sf cyrus-sasl-* cyrus-sasl
ln -sf heimdal-* heimdal
ln -sf jdk* java
ln -sf libtool* libtool
ln -sf mysql-* mysql
ln -sf openldap-* openldap
ln -sf openssl-* openssl
ln -sf rsync-* rsync
ln -sf tcmalloc-* tcmalloc
mkdir -p zimlets-deployed
mkdir -p log # only provided with zimbra-store
mkdir -p data/tmp
chmod 1777 data/tmp
mkdir backup ssl .ssh zmstat
mkdir -p data/ldap/config
mkdir -p data/ldap/mdb/db
sudo setcap 'cap_net_bind_service=+ep' ${:ZIMBRA_HOME}/openldap/sbin/slapd
# clear credential cache to spot commands in zmsetup.pl that would require sudo
sudo -k
echo . ${:ZIMBRA_HOME}/.bashrc
echo cd ${:ZIMBRA_HOME}\; ZIMBRA_INSTALLED_PKGS=\"${:PACKAGE_LIST}\" ./libexec/zmsetup.pl
[zimbra-deploy-mta]
# extract binaries and scripts from the .deb packages
recipe = cp.recipe.cmd
# required to source .bashrc
shell = /bin/bash
PACKAGE_LIST = zimbra-core zimbra-mta
ZIMBRA_HOME = ${environment:ZIMBRA_HOME}
# attention: reference to the gitcloned part. we don't want it to be updated
#PACKAGES = ${zimbra-sources:location}/ZimbraBuild/amd64
PACKAGES = /home/marco/zbuild/amd64
update_cmd = ${:install_cmd}
install_cmd =
rm -rf ${:ZIMBRA_HOME}
mkdir ${:ZIMBRA_HOME}
cd ${:ZIMBRA_HOME}
for pkg_name in ${:PACKAGE_LIST}; do
echo "Unpacking $pkg_name..."
ar x ${:PACKAGES}/$pkg_name*.deb
tar xvf data.tar.gz --strip=5 >/dev/null
rm data.tar.gz
rm control.tar.gz
done
ln -sf altermime-* altermime
ln -sf amavisd-* amavisd
ln -sf bdb-* bdb
ln -sf cbpolicyd-* cbpolicyd
ln -sf clamav-* clamav
ln -sf curl-* curl
ln -sf cyrus-sasl-* cyrus-sasl
ln -sf dspam* dspam
ln -sf heimdal-* heimdal
ln -sf libmemcached* libmemcached
ln -sf mysql-* mysql
ln -sf opendkim* opendkim
ln -sf openldap-* openldap
ln -sf openssl-* openssl
ln -sf postfix* postfix
ln -sf rsync-* rsync
ln -sf tcmalloc-* tcmalloc
ln -sf jdk* java
ln -sf zeromq* zeromq
mkdir -p data/amavisd/db
mkdir -p data/amavisd/tmp
mkdir -p data/amavisd/var
mkdir -p data/amavisd/quarantine
mkdir -p data/clamav/db
mkdir -p data/postfix/spool/pid
mkdir -p conf/sa
mkdir -p zimlets-deployed
mkdir -p log # only provided with zimbra-store
mkdir -p data/tmp
chmod 1777 data/tmp
touch ${:ZIMBRA_HOME}/postfix/conf/main.cf
cd ${:ZIMBRA_HOME}/mta
ln -sf mysql-* mysql
# allow executables to bind low ports
sudo setcap 'cap_net_bind_service=+ep' ${:ZIMBRA_HOME}/postfix/libexec/master
# allow executables to call chroot - appearently not needed
## sudo setcap 'cap_sys_chroot+ep' ${:ZIMBRA_HOME}/postfix/libexec/qmgr
## sudo setcap 'cap_sys_chroot+ep' ${:ZIMBRA_HOME}/postfix/libexec/pickup
## sudo setcap 'cap_sys_chroot+ep' ${:ZIMBRA_HOME}/postfix/libexec/showq
# clear credential cache to spot commands in zmsetup.pl that would require sudo
sudo -k
# disable TLS for opendkim -> ldap connection
sed -i 's#LDAPUseTLS.*#LDAPUseTLS 0#g' ${:ZIMBRA_HOME}/conf/opendkim.conf.in
echo . ${:ZIMBRA_HOME}/.bashrc
echo cd ${:ZIMBRA_HOME}\; ZIMBRA_INSTALLED_PKGS=\"${:PACKAGE_LIST}\" ./libexec/zmsetup.pl
# TODO
# ln -s /home/marco/zbuild/zimbra-home/postfix/conf/aliases /etc/aliases
# see also
# http://www.zimbra.com/docs/ne/6.0.6/multi_server_install/multi-server_install.5.06.html
[zimbra-deploy-all]
# extract binaries and scripts from the .deb packages
recipe = cp.recipe.cmd
# required to source .bashrc
shell = /bin/bash
PACKAGE_LIST = zimbra-core zimbra-ldap zimbra-mta zimbra-store
ZIMBRA_HOME = ${environment:ZIMBRA_HOME}
# attention: reference to the gitcloned part. we don't want it to be updated
#PACKAGES = ${zimbra-sources:location}/ZimbraBuild/amd64
PACKAGES = /home/marco/zbuild/amd64
update_cmd = ${:install_cmd}
install_cmd =
rm -rf ${:ZIMBRA_HOME}
mkdir ${:ZIMBRA_HOME}
cd ${:ZIMBRA_HOME}
for pkg_name in ${:PACKAGE_LIST}; do
echo "Unpacking $pkg_name..."
ar x ${:PACKAGES}/$pkg_name*.deb
tar xvf data.tar.gz --strip=5 >/dev/null
rm data.tar.gz
rm control.tar.gz
done
ln -sf altermime-* altermime
ln -sf amavisd-* amavisd
ln -sf bdb-* bdb
ln -sf cbpolicyd-* cbpolicyd
ln -sf clamav-* clamav
ln -sf curl-* curl
ln -sf cyrus-sasl-* cyrus-sasl
ln -sf dspam* dspam
ln -sf heimdal-* heimdal
ln -sf jdk* java
ln -sf libtool* libtool
ln -sf libmemcached* libmemcached
ln -sf mysql* mysql
ln -sf opendkim* opendkim
ln -sf openldap-* openldap
ln -sf openssl-* openssl
ln -sf postfix* postfix
ln -sf rsync-* rsync
ln -sf tcmalloc-* tcmalloc
ln -sf jetty-distribution-* jetty
ln -sf jetty-distribution-* mailboxd
ln -sf zeromq* zeromq
mkdir -p data/ldap/config
mkdir -p data/ldap/mdb/db
mkdir -p data/amavisd/db
mkdir -p data/amavisd/tmp
mkdir -p data/amavisd/var
mkdir -p data/amavisd/quarantine
mkdir -p data/clamav/db
mkdir -p data/postfix/spool/pid
mkdir -p conf/sa
mkdir -p zimlets-deployed
mkdir -p log # only provided with zimbra-store
mkdir -p data/tmp
chmod 1777 data/tmp
touch ${:ZIMBRA_HOME}/postfix/conf/main.cf
mkdir backup ssl .ssh zmstat
cd ${:ZIMBRA_HOME}/mta
ln -sf mysql-* mysql
# allow executables to bind low ports
sudo setcap 'cap_net_bind_service=+ep' ${:ZIMBRA_HOME}/openldap/sbin/slapd
sudo setcap 'cap_net_bind_service=+ep' ${:ZIMBRA_HOME}/postfix/libexec/master
# allow executables to call chroot - appearently not needed
## sudo setcap 'cap_sys_chroot+ep' ${:ZIMBRA_HOME}/postfix/libexec/qmgr
## sudo setcap 'cap_sys_chroot+ep' ${:ZIMBRA_HOME}/postfix/libexec/pickup
## sudo setcap 'cap_sys_chroot+ep' ${:ZIMBRA_HOME}/postfix/libexec/showq
# clear credential cache to spot commands in zmsetup.pl that would require sudo
sudo -k
# disable TLS for opendkim -> ldap connection
sed -i 's#LDAPUseTLS.*#LDAPUseTLS 0#g' ${:ZIMBRA_HOME}/conf/opendkim.conf.in
echo . ${:ZIMBRA_HOME}/.bashrc
echo cd ${:ZIMBRA_HOME}\; ZIMBRA_INSTALLED_PKGS=\"${:PACKAGE_LIST}\" ./libexec/zmsetup.pl
[versions]
slapos.cookbook =
inotifyx = 0.2.0
netifaces = 0.8
# ----------------------- automatically picked -----------------------
......@@ -23,4 +23,3 @@ def install_library(options, sections):
built_package = os.path.join(compile_directory, 'junixsocket-1.3', 'dist', filename)
dst = os.path.join(options['location'], filename)
shutil.copyfile(built_package, dst)
......@@ -11,7 +11,7 @@ parts =
[instance]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/buildout.cfg
url = ${:_profile_base_location_}/instance.cfg
filename = ${buildout:directory}/instance.cfg
#md5sum = b501b73cdf50ddfb89b6bf3a096f05ea
......@@ -20,5 +20,5 @@ filename = ${buildout:directory}/instance.cfg
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/junixsocket-hooks.py
filename = ${buildout:directory}/junixsocket-hooks.py
#md5sum = ed0ec6b0d558823a278d3617f09a4e12
md5sum = 3a6f9e8d9b6fcc5934dfd200c09ca3f1
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment