Makefile for Scalix-Installation on Debian and Ubuntu

From Scalix Wiki
Jump to: navigation, search

IMPORTANT NOTE

The installation described and performed by the makefile is out of date on the Scalix 11 side. This still uses packages from the Community Preview, which are no longer current. Please download Scalix 11 Beta software instead from http://www.scalix.com/downloads and follow the manual install instructions. The Makefile is community-maintained and needs to be updated before it can again be used to install Scalix 11. (Florian)

What is this?

This is a Makefile to install Scalix 10 CE Raw on a clean Base-Installation of Ubuntu. I testet it on different Systems, but it's 'very alpha'. So it's better to make a Backup (It's always nice to have a Backup, isn't it? ;).

For Scalix 11 preview there's another Makefile. But as the Download-Location and Packagenames changed in 11 beta, neither this Makefile nor the Makefile.11pre will work on that Version. I will fix this as soon as possible. If you already did, please let me know.

Prepare

Activate univers and universe-security in /etc/apt/sources.list and run apt-get update. Without this, you can run into Dependency-Problems with the Package krb5-user

Packages

To use this Makefile, we need the Packages make, sed and wget. Sed and wget should be included in the Base-Installation.

apt-get install make wget sed

You can download this Makefile from http://linux.in-no-sense.de. Chmod to 0400, because it contains the Cleartext-Password for the Admin-Users

[ -d /opt/scalix_install ] || ( mkdir /opt/scalix_install && cd /opt/scalix_install/ && \
wget http://linux.in-no-sense.de/download/scalix/Makefile && \
chown root:root Makefile && chmod 0400 Makefile)

Java

Get the Java JDK 5.0 Update 6 from http://java.sun.com and save the jdk-1_5_0_06-linux-i586.bin in /opt/scalix_install/pkg

Be sure to make jdk-1_5xxx executable.

chmod +x jdk-1_5_0_06-linux-i586.bin

Info: The Makefile deletes existing alternatives of java and javc!

Edit the Makefile

You have to set some Variables to fit it to your needs.

The Admin-Password

ADMIN_PASSWD := verysecret

Domain- and Hostname of your Host. Check it by typing hostname -f

DOMAINNAME := localdomain
HOSTNAME := scalix

Mailnode and Standard-Maildomain

MAILNODE := testfirma
MAILDOMAIN := testfirma.org

Optional Settings

See Wiki for Details

CN_RULE := 'S, G'
AUTHID_RULE := 'gs'

Java and Tomcat-Versions

JAVAPKG_DIR := pkg/jdk-1_5_0_06-linux-i586.bin
JAVAPKG_DOTDIR := jdk1.5.0_06
TOMCAT_VER := jakarta-tomcat-5.0.28

Installation

To install, type

make with_java

If you allready have java installed (I just need this for reinstalling Scalix), type

make without_java

To remove the installation

make very_clean

this does not remove Java

Testing

Try http://localhost:8080/sac and login with User: sxadmin and your Password

Try http://localhost:8080/webmail and do the same

Bugs

Sometimes the files res.properties or swa.properties are empty after running the Makefile.

Appendix

Makefile

## Makefile for Scalix Community Edition Raw 10 on Ubuntu - v0.3
##
## (c) 2006 - Ralf Nickel, ralf.nickel@itrn.de - http://www.itrn.de
## based on http://www.scalix.com/wiki/index.php?title=Scalix_CE_Raw/Installation
## 
## only tested on a Base-Installation on Ubuntu Dapper Drake beta, Hoary and Breezy

## Changes
## 07/27/06 - checking existing Directories in 'prepare'
##          - Changed libapache2-mod-jk2 to libapache2-mod-jk in 'dubidu_depends' - Djdicbob
##          - /opt/scalix_install replaced everywhere by $(INST_PREFIX)
##          - forcing creation of Symlinks - Reinier
##          - forcing removal of Files and Symlinks - Reinier

## Directory of this Makefile
INST_PREFIX := /opt/scalix_install
# Where is the Scalix-Installation
SCALIX_PREFIX := /opt/scalix

JAVAPKG_DIR := pkg/jdk-1_5_0_06-linux-i586.bin
JAVAPKG_DOTDIR := jdk1.5.0_06

# Tomcat-Package
TOMCAT_VER := jakarta-tomcat-5.0.28
TOMCAT_PKG := pkg/$(TOMCAT_VER).tar.gz
TOMCAT_INSTDIR := /opt
TOMCAT_LINK := /opt/scalix-tomcat
TOMCAT_PORT := 8080

# Admins
ADMIN_USER := sxadmin
# LDAP-Admin
QUERYADMIN_USER := sxqueryadmin
# I simply use same Password for both Admins. 
ADMIN_PASSWD := geheim

# Domain- and Hostname for this Host
# check with 'hostname -f'
DOMAINNAME := localdomain
HOSTNAME := scalix

# CE Raw - just one Mailnode
MAILNODE := testfirma
# Default Maildomain
MAILDOMAIN := testfirma.org

# see http://www.scalix.com/wiki for details
CN_RULE := 'S, G'
AUTHID_RULE := 'gs'

all:
	@echo -e "Download Java JDK1.5 from \nhttp://java.sun.com\nsave it to $(INST_PREFIX)/pkg and run \n# make with_java or \n# make without_java"

with_java: dubidu_depends java_sdk prepare scalix-tomcat scalix_inst scalix_setup add_sxgroups \
	add_tweaks start_allom tomscal_conf conf_swa.properties conf_ubermanager \
	conf_res.properties restart_tomcat config_apache2
     
without_java: dubidu_depends prepare scalix-tomcat scalix_inst scalix_setup add_sxgroups \
	add_tweaks start_allom tomscal_conf conf_swa.properties conf_ubermanager \
	conf_res.properties restart_tomcat config_apache2

very_clean:
	/etc/init.d/scalix stop
	/etc/init.d/scalix-tomcat stop
	apt-get --yes remove --purge scalix-res* scalix-sac* scalix-server* scalix-swa*
	rm -drf /etc/opt/scalix
	rm -drf /var/opt/scalix
	rm -drf $(TOMCAT_LINK)
	rm -drf $(TOMCAT_INSTDIR)/$(TOMCAT_VER)
	rm -drf $(SCALIX_PREFIX)
	rm -f /etc/init.d/scalix-tomcat
	rm -f /etc/apache2/conf.d/scalix-web-client.conf
	update-rc.d scalix-tomcat remove

## Packages for Ubuntu

dubidu_depends:
	apt-get install apache2 libapache2-mod-jk gawk krb5-config krb5-doc krb5-user libkadm55 libkrb53 libglib2.0-0 \
	libstdc++2.10-glibc2.2 libxml2 sgml-base xml-core libsasl2-modules libsasl2-gssapi-mit sendmail elinks

## Get Packages
prepare:
	cd $(INST_PREFIX)/pkg && \
	wget http://www.scalix.com/ceraw/download/pub/libical/libical_0.24.RC4.20050413_i386.deb \
	http://www.scalix.com/ceraw/download/pub/server/scalix-res_10.0.1.21_all.deb \
	http://www.scalix.com/ceraw/download/pub/server/scalix-sac_10.0.1.21_all.deb \
	http://www.scalix.com/ceraw/download/pub/server/scalix-server_10.0.1.4_i386.deb \
	http://www.scalix.com/ceraw/download/pub/server/scalix-swa_10.0.1.6_all.deb \
	http://apache.sunsite.ualberta.ca/tomcat/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.tar.gz
## Get Tomcat Startscript
	[ -d $(INST_PREFIX)/init.d ] || ( mkdir $(INST_PREFIX)/init.d && \
	cd $(INST_PREFIX)/init.d/ && \
	wget http://linux.in-no-sense.de/download/scalix/scalix-tomcat )
## Get Tweaks
	[ -d $(INST_PREFIX)/tweaks ] || ( mkdir $(INST_PREFIX)/tweaks && \
	cd $(INST_PREFIX)/tweaks/ && \
	wget http://linux.in-no-sense.de/download/scalix/general.cfg )

## install JDK in /usr/local/lib/java and set alternatives
# !! existing alternatives will be deleted !!!
java_sdk:
	cd /usr/local/lib && $(INST_PREFIX)/$(JAVAPKG_DIR) && ln -sf $(JAVAPKG_DOTDIR) java
	update-alternatives --remove-all java
	update-alternatives --remove-all javac
	update-alternatives --install /usr/bin/java java /usr/local/lib/java/bin/java 120
	update-alternatives --install /usr/bin/javac javac /usr/local/lib/java/bin/javac 120

## install Tomcat in /opt and symlink to $(TOMCAT_LINK)
## you have to set your RAM-Settings
scalix-tomcat:
	cd /opt && tar xpzf $(INST_PREFIX)/$(TOMCAT_PKG) && ln -sf $(TOMCAT_VER) scalix-tomcat
	rm -f $(TOMCAT_LINK)/common/endorsed/xml-apis.jar
	cp $(TOMCAT_LINK)/bin/setclasspath.sh $(TOMCAT_LINK)/bin/setclasspath.bak
	@echo -e "PATH=$(PATH):$(SCALIX_PREFIX)/bin \nJAVA_HOME=/usr/local/lib/java \nJAVA_OPTS='-server -Xms128m -Xmx128m' \nexport JAVA_HOME JAVA_OPTS\n" > $(TOMCAT_LINK)/bin/setclasspath.sh
	cat $(TOMCAT_LINK)/bin/setclasspath.bak >> $(TOMCAT_LINK)/bin/setclasspath.sh
	cp init.d/scalix-tomcat /etc/init.d/
	chown root:root /etc/init.d/scalix-tomcat
	chmod 755 /etc/init.d/scalix-tomcat
	update-rc.d scalix-tomcat defaults 22

## Install Scalix
scalix_inst:
	dpkg -i pkg/*.deb
	$(SCALIX_PREFIX)/bin/ommakeom
	$(SCALIX_PREFIX)/bin/ompatchom

scalix_setup:
## Chapter 5.2 to 5.11 of Wiki
#5.2
	$(SCALIX_PREFIX)/bin/sxconfig --set -t general.usrl_cn_rule=$(CN_RULE)
	$(SCALIX_PREFIX)/bin/sxconfig --set -t general.usrl_authid_rule=$(AUTHID_RULE)
	$(SCALIX_PREFIX)/bin/sxconfig --set -t orniasys.name_part_1='"C" <G.S>' -t orniasys.domain_part_1='$(MAILDOMAIN)'
#5.3
	$(SCALIX_PREFIX)/bin/omaddmn -m $(MAILNODE)
#5.5
	$(SCALIX_PREFIX)/bin/omrc -n
#5.6
	$(SCALIX_PREFIX)/bin/omaddu -n "$(ADMIN_USER)/$(MAILNODE)" --class limited -c admin -p $(ADMIN_PASSWD) $(ADMIN_USER)
#5.7
	$(SCALIX_PREFIX)/bin/omlimit -u "$(ADMIN_USER)/$(MAILNODE)" -o -i 0 -m 0
#5.8
	$(SCALIX_PREFIX)/bin/omaddu -n "$(QUERYADMIN_USER)/$(MAILNODE)" --class limited -c admin -p $(ADMIN_PASSWD) $(QUERYADMIN_USER)@$(HOSTNAME).$(DOMAINNAME)

#5.9
add_sxgroups:
	$(SCALIX_PREFIX)/bin/omaddpdl -l ScalixUserAdmins/$(MAILNODE)
	$(SCALIX_PREFIX)/bin/omaddpdl -l ScalixGroupAdmins/$(MAILNODE)
	$(SCALIX_PREFIX)/bin/omaddpdl -l ScalixUserAttributesAdmins/$(MAILNODE)
	$(SCALIX_PREFIX)/bin/omaddpdl -l ScalixAdmins/$(MAILNODE)

#5.10
add_tweaks:
	cat tweaks/general.cfg >> /var/opt/scalix/sys/general.cfg

#5.11
start_allom:
	$(SCALIX_PREFIX)/bin/omon -s all

tomscal_conf:
	cp $(SCALIX_PREFIX)/web/scalix-res.xml    $(TOMCAT_LINK)/conf/Catalina/localhost
	cp $(SCALIX_PREFIX)/web/scalix-admin.xml  $(TOMCAT_LINK)/conf/Catalina/localhost
	cp $(SCALIX_PREFIX)/web/scalix-caa.xml    $(TOMCAT_LINK)/conf/Catalina/localhost
	cp $(SCALIX_PREFIX)/web/scalix-swa.xml    $(TOMCAT_LINK)/conf/Catalina/localhost
	cp $(SCALIX_PREFIX)/web/scalix-webcal.xml $(TOMCAT_LINK)/conf/Catalina/localhost

## configure Scalix
## Set Domain and Host
conf_swa.properties:
	cat /etc/opt/scalix/webmail/swa.properties \
	    | sed -e 's/%LOCALHOST%/$(HOSTNAME).$(DOMAINNAME)/g' \
	    | sed -e 's/%LOCALDOMAIN%/$(DOMAINNAME)/g' \
	    > /etc/opt/scalix/webmail/swa.properties

conf_ubermanager:
	cat /etc/opt/scalix/caa/scalix.res/config/ubermanager.properties \
	    | sed -e 's/__SECURED_MODE__/false/g' \
	    | sed -e 's/__FQHN_FOR_KDC_HOST__//g' \
	    | sed -e 's="ubermanager/__FQHN_HOST__@__KERBEROS_REALM__"==g' \
	    | sed -e 's/__KERBEROS_REALM__//g' \
	    | sed -e 's/__FQHN_QUERY_SERVER_NAME__/$(HOSTNAME).$(DOMAINNAME)/g' \
	    | sed -e 's/__UBERMGR_USE_EXTERNAL_AUTH__/false/g' \
	    | sed -e 's/__UBERMGR_ALLOW_EXTERNAL_AUTH__/false/g' \
	    | sed -e 's/__UBERMGR_MAXLIST_SIZE__/100/g' \
	    | sed -e 's/__UBERMGR_MAIL_DOMAINS_LIST__/$(MAILDOMAIN)/g' \
	    | sed -e 's/__UBERMGR_EXTERNAL_DOMAIN_AUTH_LIST__//g' \
	    | sed -e 's/__CONFIGURED__/true/g' \
	    > /etc/opt/scalix/caa/scalix.res/config/ubermanager.properties
	    echo $(ADMIN_PASSWD) > /etc/opt/scalix/caa/scalix.res/config/psdata
	    chmod 400 /etc/opt/scalix/caa/scalix.res/config/psdata
	    chown root:root /etc/opt/scalix/caa/scalix.res/config/psdata

conf_res.properties:
	cat /etc/opt/scalix/res/config/res.properties \
	    | sed -e 's/__SECURED_MODE__/false/g' \
	    | sed -e 's/__FQHN_FOR_UBERMANAGER__/$(HOSTNAME).$(DOMAINNAME)/g' \
	    | sed -e 's/__TOMCAT_PORT__/$(TOMCAT_PORT)/g' \
	    | sed -e 's/__KERBEROS_REALM__//g' \
	    | sed -e 's/__FQHN_FOR_KDC_HOST__//g' \
	    | sed -e 's/__CONFIGURED__/true/g' \
	    > /etc/opt/scalix/res/config/res.properties

restart_tomcat:
	/etc/init.d/scalix-tomcat restart

## Configure Apache2
config_apache2:
	ln -sf $(SCALIX_PREFIX)/global/httpd/scalix-web-client.conf /etc/apache2/conf.d
	/etc/init.d/apache2 restart