summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Huddleston <eradicator@gentoo.org>2005-09-24 03:24:00 +0000
committerJeremy Huddleston <eradicator@gentoo.org>2005-09-24 03:24:00 +0000
commit7b664a0801b848b72a9e9d29aaddfa4e7ca109a7 (patch)
tree71abb23c51494364168c043213ca67ec52e085fc /www-apps/open-xchange
parentwebdav USE flag for open-xchange. (diff)
downloadhistorical-7b664a0801b848b72a9e9d29aaddfa4e7ca109a7.tar.gz
historical-7b664a0801b848b72a9e9d29aaddfa4e7ca109a7.tar.bz2
historical-7b664a0801b848b72a9e9d29aaddfa4e7ca109a7.zip
Initial ebuild for open-xchange. See bug #62197. There have been many contributors and testers, so hats off to all involved.
Package-Manager: portage-2.0.52-r1
Diffstat (limited to 'www-apps/open-xchange')
-rw-r--r--www-apps/open-xchange/ChangeLog13
-rw-r--r--www-apps/open-xchange/Manifest18
-rw-r--r--www-apps/open-xchange/files/88_mod_jk.ox.conf46
-rw-r--r--www-apps/open-xchange/files/digest-open-xchange-0.8.1.22
-rw-r--r--www-apps/open-xchange/files/init.d.open-xchange84
-rw-r--r--www-apps/open-xchange/files/open-xchange-htaccess7
-rw-r--r--www-apps/open-xchange/files/slapd.ox.inc36
-rw-r--r--www-apps/open-xchange/metadata.xml13
-rw-r--r--www-apps/open-xchange/open-xchange-0.8.1.2.ebuild561
9 files changed, 780 insertions, 0 deletions
diff --git a/www-apps/open-xchange/ChangeLog b/www-apps/open-xchange/ChangeLog
new file mode 100644
index 000000000000..1ba9745dca75
--- /dev/null
+++ b/www-apps/open-xchange/ChangeLog
@@ -0,0 +1,13 @@
+# ChangeLog for www-apps/open-xchange
+# Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/www-apps/open-xchange/ChangeLog,v 1.1 2005/09/24 03:24:00 eradicator Exp $
+
+*open-xchange-0.8.1.2 (24 Sep 2005)
+
+ 24 Sep 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ +files/88_mod_jk.ox.conf, +files/init.d.open-xchange,
+ +files/open-xchange-htaccess, +files/slapd.ox.inc, +metadata.xml,
+ +open-xchange-0.8.1.2.ebuild:
+ Initial ebuild for open-xchange. See bug #62197. There have been many
+ contributors and testers, so hats off to all involved.
+
diff --git a/www-apps/open-xchange/Manifest b/www-apps/open-xchange/Manifest
new file mode 100644
index 000000000000..51e2d0128192
--- /dev/null
+++ b/www-apps/open-xchange/Manifest
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+MD5 15259d49dfe3a6551b6ae1d2a00ba818 open-xchange-0.8.1.2.ebuild 21630
+MD5 59d559390ca6a6d365a5d6c3012c0343 metadata.xml 387
+MD5 c32e04b03db1c77e3ab1d11cee7c27de ChangeLog 599
+MD5 ec8d72f6da3dbefde48787a53fa071bf files/digest-open-xchange-0.8.1.2 138
+MD5 5388f979621c5e4d333aef5cd37f0062 files/init.d.open-xchange 1877
+MD5 cfa72c4f5e62b779052acf1cd629234b files/88_mod_jk.ox.conf 1228
+MD5 7d1504e4241974d3583575b3827b0f5a files/open-xchange-htaccess 174
+MD5 7902c4ac362f9ab831de15468111b7a9 files/slapd.ox.inc 1226
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.2 (GNU/Linux)
+
+iD8DBQFDNMbhArHZZzCEUG0RAiXEAJ0V8QyreKPSH7fk5z9sEaZj0Ou4EACeMHA4
+y5rY3ekEniwXBbLFt63+/cc=
+=k4IB
+-----END PGP SIGNATURE-----
diff --git a/www-apps/open-xchange/files/88_mod_jk.ox.conf b/www-apps/open-xchange/files/88_mod_jk.ox.conf
new file mode 100644
index 000000000000..d6a092f171ea
--- /dev/null
+++ b/www-apps/open-xchange/files/88_mod_jk.ox.conf
@@ -0,0 +1,46 @@
+<IfDefine JK>
+jkMount /manager ajp13
+jkMount /manager/* ajp13
+
+jkMount /servlet ajp13
+jkMount /servlet/* ajp13
+
+jkMount /umin ajp13
+jkMount /umin/* ajp13
+
+jkMount /servlet/webdav.contacts ajp13
+jkMount /servlet/webdav.contacts/* ajp13
+
+jkMount /servlet/webdav.calendar ajp13
+jkMount /servlet/webdav.calendar/* ajp13
+
+jkMount /servlet/webdav.ical ajp13
+jkMount /servlet/webdav.ical/* ajp13
+
+jkMount /servlet/webdav.documents ajp13
+jkMount /servlet/webdav.documents/* ajp13
+
+jkMount /servlet/webdav.tasks ajp13
+jkMount /servlet/webdav.tasks/* ajp13
+
+jkMount /servlet/webdav.folders ajp13
+jkMount /servlet/webdav.folders/* ajp13
+
+jkMount /servlet/webdav.projects ajp13
+jkMount /servlet/webdav.projects/* ajp13
+
+jkMount /servlet/webdav.groupuser ajp13
+jkMount /servlet/webdav.groupuser/* ajp13
+
+jkMount /servlet/webdav.attachments ajp13
+jkMount /servlet/webdav.attachments/* ajp13
+
+jkMount /servlet/webdav.freebusy ajp13
+jkMount /servlet/webdav.freebusy/* ajp13
+
+jkMount /servlet/webdav.vcard ajp13
+jkMount /servlet/webdav.vcard/* ajp13
+
+jkMount /servlet/webdav.bookmarks ajp13
+jkMount /servlet/webdav.bookmarks/* ajp13
+</IfDefine>
diff --git a/www-apps/open-xchange/files/digest-open-xchange-0.8.1.2 b/www-apps/open-xchange/files/digest-open-xchange-0.8.1.2
new file mode 100644
index 000000000000..1bcc92b02f45
--- /dev/null
+++ b/www-apps/open-xchange/files/digest-open-xchange-0.8.1.2
@@ -0,0 +1,2 @@
+MD5 8ee51d4f56e32a3fdc0b5b381abafd91 open-xchange-0.8.1-2.tar.bz2 1619275
+MD5 0c390658072367c892ce5ff423a02def Crystal_OX_Theme.tgz 53788
diff --git a/www-apps/open-xchange/files/init.d.open-xchange b/www-apps/open-xchange/files/init.d.open-xchange
new file mode 100644
index 000000000000..8d3d9c475a94
--- /dev/null
+++ b/www-apps/open-xchange/files/init.d.open-xchange
@@ -0,0 +1,84 @@
+#!/sbin/runscript
+
+groupware="/etc/open-xchange/init.d/groupware"
+webmail="/etc/open-xchange/init.d/webmail"
+sessiond="/etc/open-xchange/init.d/sessiond"
+
+depend() {
+ need net slapd apache2 tomcat-5
+ use postgresql mysql cyrus courier-imapd courier-imapd-ssl postfix
+ after postgresql mysql
+}
+
+checkconfig() {
+ if [[ ! -x ${groupware} ]] ; then
+ eerror "${groupware} doesn't exist or nor executable"
+ return 1
+ fi
+ if [[ ! -x ${webmail} ]] ; then
+ eerror "${webmail} doesn't exist or nor executable"
+ return 1
+ fi
+ if [[ ! -x ${sessiond} ]] ; then
+ eerror "${sessiond} doesn't exist or nor executable"
+ return 1
+ fi
+}
+
+
+start() {
+ checkconfig || return 1
+
+ local retval
+
+ ebegin "Starting Open-Xchange sessiond"
+ start-stop-daemon --start --exec ${sessiond} -- start &> /dev/null
+ retval=$?
+ eend $retval
+ [[ ${retval} -eq 0 ]] || return 1
+
+ ebegin "Starting Open-Xchange groupware"
+ start-stop-daemon --start --exec ${groupware} -- start &> /dev/null
+ retval=$?
+ eend $retval
+ [[ ${retval} -eq 0 ]] || return 1
+
+ ebegin "Starting Open-Xchange webmail"
+ start-stop-daemon --start --exec ${webmail} -- start &> /dev/null
+ retval=$?
+ eend $retval
+ [[ ${retval} -eq 0 ]] || return 1
+}
+
+stop() {
+ local retval
+
+ ebegin "Stopping Open-Xchange sessiond"
+ start-stop-daemon --start --exec ${sessiond} -- stop &> /dev/null
+ retval=$?
+ eend $retval
+ [[ ${retval} -eq 0 ]] || return 1
+
+ ebegin "Stopping Open-Xchange groupware"
+ start-stop-daemon --start --exec ${groupware} -- stop &> /dev/null
+ retval=$?
+ eend $retval
+ [[ ${retval} -eq 0 ]] || return 1
+
+ ebegin "Stopping Open-Xchange webmail"
+ start-stop-daemon --start --exec ${webmail} -- stop &> /dev/null
+ retval=$?
+ eend $retval
+ [[ ${retval} -eq 0 ]] || return 1
+}
+
+opts="${opts} extendstatus"
+
+extendstatus() {
+ status="$sessiond status"
+ $status
+ status="$groupware status"
+ $status
+ stop="$webmail status"
+ $status
+}
diff --git a/www-apps/open-xchange/files/open-xchange-htaccess b/www-apps/open-xchange/files/open-xchange-htaccess
new file mode 100644
index 000000000000..83c7cf08e2d5
--- /dev/null
+++ b/www-apps/open-xchange/files/open-xchange-htaccess
@@ -0,0 +1,7 @@
+<IfModule mod_rewrite.c>
+ RewriteEngine on
+
+ RewriteRule ^$ /cgi-bin/login.pl
+ RewriteRule ^/$ /cgi-bin/login.pl
+ RewriteRule ^/open-xchange/(.*)$ $1 [L,QSA]
+</IfModule>
diff --git a/www-apps/open-xchange/files/slapd.ox.inc b/www-apps/open-xchange/files/slapd.ox.inc
new file mode 100644
index 000000000000..a3db13a811aa
--- /dev/null
+++ b/www-apps/open-xchange/files/slapd.ox.inc
@@ -0,0 +1,36 @@
+#access to attribute=userPassword
+# by dn="cn=admin,@basedn@" write
+# by anonymous auth
+# by self write
+# by * none
+
+#access to *
+# by dn="cn=admin,@basedn@" write
+# by self write
+# by * read
+
+access to dn.base="" by * read
+access to dn.base="cn=Subschema" by * read
+
+# protect the userPassword attribute
+access to attr=userPassword
+ by self =w
+ by anonymous auth
+
+# global address book
+access to dn.subtree="o=AddressBook,ou=OxObjects,@basedn@"
+ by group.exact="cn=AddressAdmins,o=AddressBook,ou=OxObjects,@basedn@" write
+ by users read
+
+# personal address book
+access to dn.regex="^ou=addr,(uid=([^,]+),ou=Users,ou=OxObjects,@basedn@)$" attrs=children
+ by dn.exact,expand="$1" write
+access to dn.regex="^uid=([^,]+),ou=addr,(uid=([^,]+),ou=Users,ou=OxObjects,@basedn@)$" attrs=entry
+ by dn.exact,expand="$2" write
+
+# default rule allowing users full access to their own entries
+access to attrs=cn,description,gecos,givenName,initials,l,labeledURI,mobile,o,OXAppointmentDays,OXTaskDays,OXTimeZone,postalCode,preferredLanguage,sn,st,street,title,userCountry
+ by self write
+ by users read
+
+index uid,mailEnabled,cn,sn,givenname,lnetMailAccess,alias,loginDestination eq,sub
diff --git a/www-apps/open-xchange/metadata.xml b/www-apps/open-xchange/metadata.xml
new file mode 100644
index 000000000000..c2d772176970
--- /dev/null
+++ b/www-apps/open-xchange/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <herd>base-system</herd>
+ <maintainer>
+ <email>eradicator@gentoo.org</email>
+ <name>Jeremy Huddleston</name>
+ </maintainer>
+ <longdescription>
+ evms is a volume management system written by IBM, it's open source
+ </longdescription>
+</pkgmetadata>
diff --git a/www-apps/open-xchange/open-xchange-0.8.1.2.ebuild b/www-apps/open-xchange/open-xchange-0.8.1.2.ebuild
new file mode 100644
index 000000000000..7cf73837f5c7
--- /dev/null
+++ b/www-apps/open-xchange/open-xchange-0.8.1.2.ebuild
@@ -0,0 +1,561 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-apps/open-xchange/open-xchange-0.8.1.2.ebuild,v 1.1 2005/09/24 03:24:00 eradicator Exp $
+
+inherit eutils webapp ssl-cert toolchain-funcs java-pkg versionator depend.apache
+
+MY_PV=$(replace_version_separator 3 '-')
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="A Collaboration and Integration Server Environment"
+HOMEPAGE="http://www.open-xchange.org/"
+SRC_URI="http://mirror.open-xchange.org/download/${MY_P}.tar.bz2
+ http://www.mikefetherston.ca/OX/Crystal_OX_Theme.tgz"
+LICENSE="GPL-2"
+KEYWORDS="~x86"
+RESTRICT="primaryuri"
+
+IUSE="ssl doc webdav mysql postgres"
+
+S="${WORKDIR}/${MY_P}"
+
+RDEPEND=">=virtual/jre-1.4
+ >=dev-java/java-config-1.2
+ >=www-servers/tomcat-5.0.27-r6
+ dev-perl/Net-SSLeay
+ dev-java/jdom
+ net-nds/openldap
+ app-text/ispell
+ dev-java/sun-javamail-bin
+ dev-perl/XML-NamespaceSupport
+ dev-perl/XML-SAX-Base
+ dev-perl/Authen-SASL
+ dev-perl/Convert-ASN1
+ dev-perl/perl-ldap
+ net-www/webapp-config
+ mysql? ( !postgres? ( dev-java/jdbc-mysql >=dev-db/mysql-4.1 ) )
+ !mysql? ( ~dev-java/jdbc3-postgresql-7.4.5 dev-db/postgresql )
+ postgres? ( ~dev-java/jdbc3-postgresql-7.4.5 dev-db/postgresql )
+ ssl? ( dev-libs/openssl dev-perl/IO-Socket-SSL )"
+
+# COMMENT: Why is the jdbc requirement set to 7.4.5 and now >=7.4.5?
+
+DEPEND="${RDEPEND}
+ >=virtual/jdk-1.4"
+
+RDEPEND="${RDEPEND}
+ www-apache/mod_jk
+ app-admin/sudo"
+
+use_postgres() {
+ use postgres || ! use mysql
+}
+
+pkg_setup() {
+ TOMCAT_DIR=`java-config -g CATALINA_HOME`
+ if has_version '>=www-servers/tomcat-5.0.28-r4' ; then
+ # it is now installed to the profile-directory choosen from /etc/conf.d/tomcat-5
+ local PROFILE="$(sed -n "s:^PROFILE=\(.*\):\1:p" /etc/conf.d/tomcat-5)"
+ local CATALINA_BASE="$(sed -n "s:^CATALINA_BASE=\(.*\)/$.*:\1:p" /etc/conf.d/tomcat-5)"
+ SERVLETDIR="${CATALINA_BASE}/${PROFILE}/webapps"
+ else
+ SERVLETDIR="${TOMCAT_DIR}/webapps"
+ fi
+
+ webapp_pkg_setup
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ # reported bug at open-xchang.org #656
+ sed -i "s|\${DESTDIR}|\$(DESTDIR)|g" Makefile.am
+
+ export WANT_AUTOMAKE=1.8
+ export WANT_AUTOCONF=2.5
+ libtoolize --force --copy || die
+ aclocal -I m4 || die
+ automake -a -f -c || die
+ autoheader || die
+ autoconf || die
+
+ # doing all preconfigure which can be done here
+ # correct ispell-handling of german dictionary
+ sed -i "s|-ddeutsch|-dgerman|g" conf/webmail/spellcheck.cfg
+
+ if use ssl; then
+ # change login.pm-script if ssl should be used
+ sed -i "s|connection_mode = 3;|connection_mode = 2;|g" src/misc/login/login.pm.in
+ fi
+
+ # change image- and link- to the open-xchange location
+ find groupware/ -regex '.*\.htm' |xargs sed -i "s|/cfintranet/|/open-xchange/cfintranet/|g"
+ find templates/ -regex '.*\.htm' |xargs sed -i "s|/cfintranet/|/open-xchange/cfintranet/|g"
+ find webmail/ -regex '.*\.htm' |xargs sed -i "s|/cfintranet/|/open-xchange/cfintranet/|g"
+
+ find templates/ -regex '.*\.lang' |xargs sed -i "s|/cfintranet/|/open-xchange/cfintranet/|g"
+
+ find system/www/ -regex '.*\.htm' |xargs sed -i "s|/cfintranet/|/open-xchange/cfintranet/|g"
+ find system/www/ -regex '.*\.js' |xargs sed -i "s|/cfintranet/|/open-xchange/cfintranet/|g"
+
+ sed -i "s|/cfintranet/|/open-xchange/cfintranet/|g" conf/groupware/system.properties.in
+ sed -i "s|/cfintranet/|/open-xchange/cfintranet/|g" conf/webmail/system.properties.in
+}
+
+src_compile() {
+ local myconf
+ local tempvar
+
+ if use_postgres ; then
+ tempvar="$(java-config --classpath=$(java-config -l | sed -n "s:^\[\(jdbc[^-]*-postgresql[^]]*\).*:\1:p" | head -n 1))"
+ if [[ -f "${tempvar}" && "${tempvar}" != "" ]]; then
+ myconf="${myconf} --with-jdbcjar=$(java-config --classpath=$(java-config -l | sed -n "s:^\[\(jdbc[^-]*-postgresql[^]]*\).*:\1:p" | head -n 1))"
+ else
+ myconf="${myconf} --with-jdbcjar=/usr/share/jdbc3-postgresql/lib/jdbc3-postgresql.jar"
+ fi
+ myconf="${myconf} --with-dbdriver=org.postgresql.Driver"
+ else
+ tempvar="$(java-config --classpath=$(java-config -l | sed -n "s:^\[\(jdbc[^-]*-mysql[^]]*\).*:\1:p" | head -n 1))"
+ if [[ -f "${tempvar}" && "${tempvar}" != "" ]]; then
+ myconf="${myconf} --with-jdbcjar=$(java-config --classpath=$(java-config -l | sed -n "s:^\[\(jdbc[^-]*-mysql[^]]*\).*:\1:p" | head -n 1))"
+ else
+ myconf="${myconf} --with-jdbcjar=/usr/share/jdbc-mysql/lib/mysql-connector-java-3.0.11-stable-bin.jar"
+ fi
+ myconf="${myconf} --with-dbdriver=com.mysql.jdbc.Driver"
+ fi
+
+ myconf="${myconf} $(use_enable doc) $(use_enable webdav) $(use_enable ssl)"
+
+ myconf="${myconf} --with-servletdir=${SERVLETDIR}"
+
+ if has_version '>=www-servers/tomcat-5.0.28-r4' ; then
+ myconf="${myconf} --with-jsdkjar=${TOMCAT_DIR}/common/lib/servlet-api.jar"
+ else
+ myconf="${myconf} --with-jsdkjar=/usr/share/servletapi-2.4/lib/servlet-api.jar"
+ fi
+
+ myconf="${myconf} --with-mailjar=/usr/share/sun-javamail-bin/lib/mail.jar"
+ myconf="${myconf} --with-activationjar=/usr/share/sun-jaf-bin/lib/activation.jar"
+ myconf="${myconf} --with-jdomjar=$(java-config --classpath=$(java-config -l | sed -n "s:^\[\(jdom[^]]*\).*:\1:p" | head -n 1))"
+ myconf="${myconf} --with-xercesjar=/usr/share/xerces-2/lib/xercesImpl.jar"
+ myconf="${myconf} --with-jni-dir=$(java-config -O)/include"
+ myconf="${myconf} --with-runuid=tomcat"
+ myconf="${myconf} --with-rungid=tomcat"
+ myconf="${myconf} --with-tomcatuser=tomcat"
+ myconf="${myconf} --with-htdocsdir=${MY_HTDOCSDIR}"
+ myconf="${myconf} --with-cgibindir=${MY_CGIBINDIR}"
+ myconf="${myconf} --sysconfdir=/etc/open-xchange"
+ myconf="${myconf} --datadir=/usr/share/open-xchange"
+ myconf="${myconf} --includedir=/usr/include/open-xchange"
+ myconf="${myconf} --libdir=/usr/$(get_libdir)/open-xchange"
+ myconf="${myconf} --localstatedir=/var/open-xchange"
+
+ econf ${myconf} || die "bad ./configure"
+
+ # replace the string "jikes" with "modern". We dont want to see all jikes warnings
+ sed -i "s|jikes|modern|g" build.xml
+
+ emake -j1 || die "make failed"
+
+ # use sudo instead of su for the startup script and
+ # correct var-log
+ for foo in groupware sessiond webmail ; do
+ sed -i "s:^\([\t ]*\)\(su \$USER.*$\):\1#\2:gI;s:^\([\t ]*\)#\(sudo -u \$USER.*\)$:\1\2:gI" system/etc/init.d/${foo}
+ sed -i "s|open-xchange/log|log/open-xchange|g" system/etc/init.d/${foo}
+ done
+
+ sed -i "s|open-xchange/log|log/open-xchange|g" conf/groupware/system.properties
+}
+
+src_install() {
+ webapp_src_preinst
+
+ dodoc AUTHORS ChangeLog INSTALL NEWS README
+
+ # Install this big thing
+ cd ${S}
+ make DESTDIR=${D} install || die "Failed on make install"
+
+ # copy the ldif.in file for better config-abilities in pkg_preinst
+ cp ${S}/system/setup/init_ldap.ldif.in ${D}/usr/share/open-xchange/init_ldap.ldif
+
+ # remove obsolete log-files they should be saved in /var/log/open-xchange
+ rm ${D}/var/open-xchange/log/groupware.log
+ rm ${D}/var/open-xchange/log/jserv.log
+ rm ${D}/var/open-xchange/log/sessiond.log
+ rm ${D}/var/open-xchange/log/webmail.log
+ rmdir ${D}/var/open-xchange/log/
+
+ # create log-dir
+ keepdir /var/log/open-xchange
+
+ # remove unessary war-files, they are needed for deploying application
+ rm ${D}/usr/lib/open-xchange/*.war
+
+ # remove empty include-dir
+ rmdir ${D}/usr/include/open-xchange/
+ rmdir ${D}/usr/include/
+
+ # remove unneeded init-script - not used by gentoo
+ rm ${D}/etc/open-xchange/init.d/openexchange
+
+ # Init script
+ newinitd "${FILESDIR}/init.d.open-xchange" open-xchange || die "newinitd failed"
+
+ if has_version '<www-servers/tomcat-5.0.28-r4' ; then
+ dosed 's:tomcat-5:tomcat5:' /etc/init.d/open-xchange
+ fi
+
+ insinto ${SERVLETDIR}
+ doins lib/*.war
+
+ # chown of war-files or tomcat gets problems with stopping itself
+ for x in umin.war servlet.war ; do
+ fowners tomcat:tomcat ${SERVLETDIR}${x}
+ done
+
+ # Change default icon theme
+ insinto ${MY_HTDOCSDIR}/cfintranet/images/top/EN/
+ insopts -m0644
+ doins ${WORKDIR}/*.png
+ insinto ${MY_HTDOCSDIR}/cfintranet/images/top/DE/
+ doins ${WORKDIR}/*.png
+
+ # now mark all items with meta-info for webapp-script
+ cd ${D}${MY_HTDOCSDIR}
+ for x in $(find . -type f -print) ; do
+ webapp_serverowned ${MY_HTDOCSDIR}/$x
+ done
+
+ # Put the schema in etc and symlink. This way it's protected.
+ dodir /etc/openldap/schema
+ mv ${D}/usr/share/open-xchange/openxchange.schema ${D}/etc/openldap/schema
+ dosym ../../../etc/openldap/schema/openxchange.schema /usr/share/open-xchange/openxchange.schema
+ dosym ../../openldap/ldap.conf /etc/open-xchange/groupware/ldap.conf
+ dosym ../../openldap/ldap.conf /etc/open-xchange/webmail/ldap.conf
+
+ for x in settings/intranet settings/webmail filespool drafts webmailupload dictionary ; do
+ keepdir /var/open-xchange/${x}
+ fowners tomcat:tomcat /var/open-xchange/${x}
+ done
+
+ # Copy mod_jk file
+ insinto ${APACHE2_MODULES_CONFDIR}
+ doins ${FILESDIR}/88_mod_jk.ox.conf
+
+ # copy ldap-aci-file
+ insinto /etc/openldap/
+ doins ${FILESDIR}/slapd.ox.inc
+
+ # .htacces file
+ insinto ${MY_HTDOCSDIR}
+ newins ${FILESDIR}/${PN}-htaccess .htaccess
+
+ # Install webapp
+ webapp_src_install
+}
+
+pkg_preinst(){
+ # create user mailadmin, needed for mailsupport
+ enewuser mailadmin -1 -1 /dev/null users
+ _UID=`getent passwd mailadmin | awk -F : '{print $3}'`
+
+ # get the default guid of the group 'users'
+ OX_STDGID=`getent group users | awk -F : '{print $3}'`
+
+ # replace the SuSE group id 500 of users with the gentoo group id of the group 'users' for the mailadmin in ldif + uid
+ sed -i "s|500|${OX_STDGID}|g" ${D}/usr/share/open-xchange/init_ldap.ldif
+ sed -i "s|501|${_UID}|g" ${D}/usr/share/open-xchange/init_ldap.ldif
+
+ # configuring admintools.conf
+
+ # replace the SuSE standard group id 500 with the gentoo group id of the group 'users'
+ sed -i "s|500|${OX_STDGID}|g" ${D}/etc/open-xchange/admintools.conf
+ OX_STDGID=`expr ${OX_STDGID} + 1`
+ sed -i "s|501|${OX_STDGID}|g" ${D}/etc/open-xchange/admintools.conf
+
+ if use ssl ; then
+ SSL_ORGANIZATION="${SSL_ORGANIZATION:-Open Xchange}"
+ insinto /etc/open-xchange/groupware/sslcerts/oxCERTS
+ docert groupware sessiond
+
+ # copying the CA-certificate
+ dodir /etc/open-xchange/groupware/sslcerts/oxCA
+ cp ${T}/*ca.crt ${D}/etc/open-xchange/groupware/sslcerts/oxCA/cacert.pem
+
+ # copying the groupware-key and -cert the way ox would like it to have
+ mv ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/groupware.key ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/groupwarekey.pem
+ mv ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/groupware.crt ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/groupwarecert.pem
+ mv ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/groupware.csr ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/groupwarereq.pem
+ mv ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/sessiond.key ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/sessiondkey.pem
+ mv ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/sessiond.crt ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/sessiondcert.pem
+ mv ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/sessiond.csr ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/sessiondreq.pem
+ rm ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/sessiond.pem
+ rm ${D}/etc/open-xchange/groupware/sslcerts/oxCERTS/groupware.pem
+ fi
+}
+
+pkg_postinst() {
+ webapp_pkg_postinst
+
+ chgrp -R apache /var/open-xchange/*
+ einfo " "
+ einfo " "
+ einfo " ==========================================================="
+ einfo " "
+ einfo " You have successfully installed Open-Xchange"
+ einfo " "
+ einfo " ==========================================================="
+ einfo " "
+ einfo " o FILE LOCATIONS"
+ einfo " 1. Configuration: /etc/open-xchange"
+ einfo " 2. HTML Files: /usr/share/open-xchange"
+ einfo " "
+ einfo " o STARTING and STOPPING the Open-Xchange"
+ einfo " /etc/init.d/openexchange start"
+ einfo " /etc/init.d/openexchange stop"
+ einfo " /etc/init.d/openexchange restart"
+ einfo " "
+ einfo "Execute the following command"
+ einfo "ebuild /var/db/pkg/${CATEGORY}/${PF}/${PF}.ebuild config"
+ einfo "to setup the initial open-xchange environment."
+ einfo " "
+
+ if has_version '=net-nds/openldap-2.1*' ; then
+ ewarn "You have got OpenLDAP-2.1.* installed."
+ ewarn "Please make sure you've got enabled aci support for this package."
+ ewarn "For more information: http://gentoo-wiki.com/HOWTO_Open-Xchange#OpenLDAP"
+ ewarn ""
+ ewarn "If you already have this done, ignore this warning"
+ fi
+}
+
+get_oxvar() {
+ local var=$1
+ more /etc/open-xchange/admintools.conf | sed -n "s:^\s*${var}=\"\(.*\)\":\1:p" | head -n 1
+}
+
+get_user_config() {
+ local default=$1
+ local desc=$2
+ local read_val;
+
+ echo -n "${desc}? [${default}] " 1>&2
+ read readval
+ if [[ -z ${readval} ]] ; then
+ echo ${default}
+ else
+ echo ${readval}
+ fi
+}
+
+pkg_config() {
+ pkg_setup
+
+ chown -R tomcat:tomcat ${ROOT}/etc/open-xchange
+
+ if use ssl ; then
+ chown -R tomcat:apache ${ROOT}/etc/open-xchange ${ROOT}/etc/open-xchange/groupware/sslcerts
+ find ${ROOT}/etc/open-xchange/groupware/sslcerts -name '*.pem' -exec chmod 440 {} \;
+ fi
+
+ # Simple defaults
+ local OX_DBHOST=${OX_DBHOST-"localhost"}
+ local OX_DBNAME=${OX_DBNAME-"open_xchange"}
+ local OX_DBUSER=${OX_DBUSER-"open_xchange"}
+ local OX_DBPASS=${OX_DBPASS-"secret"}
+ local OX_ORG=${OX_ORG-"My Organization"}
+ local OX_DOMAIN=${OX_DOMAIN-"example.org"}
+ local OX_LDAPSERVER=${OX_LDAPSERVER-"localhost"}
+ local OX_BASEDN=${OX_BASEDN-"dc=example,dc=org"}
+ local OX_ROOTDN=${OX_ROOTDN-"cn=Manager,${OX_BASEDN}"}
+ local OX_ROOTPW=${OX_ROOTPW-"secret"}
+
+ # Guess base on the installed config
+ if false && [[ -e "${ROOT}/etc/open-xchange/admintools.conf" ]] ; then
+ local temp_var
+ echo "Installation of OX detected"
+
+ temp_var=$(get_oxvar DEFAULT_SQL_HOST)
+ [[ -n ${temp_var} ]] && OX_DBHOST==${temp_var}
+
+ temp_var=$(get_oxvar DEFAULT_SQL_DB)
+ [[ -n ${temp_var} ]] && OX_DBNAME==${temp_var}
+
+ temp_var=$(get_oxvar DEFAULT_SQL_USER)
+ [[ -n ${temp_var} ]] && OX_DBUSER==${temp_var}
+
+ temp_var=$(get_oxvar DEFAULT_SQL_PASS)
+ [[ -n ${temp_var} ]] && OX_DBPASS==${temp_var}
+
+ temp_var=$(get_oxvar ORGA)
+ [[ -n ${temp_var} ]] && OX_ORG=${temp_var}
+
+ temp_var=$(get_oxvar BINDDN)
+ [[ -n ${temp_var} ]] && OX_ROOTDN=${temp_var}
+
+ temp_var=$(get_oxvar BINDPW)
+ [[ -n ${temp_var} ]] && OX_ROOTPW=${OX_ROOTPW_TEMP}
+
+ if [[ -e "${ROOT}/etc/open-xchange/groupware/ldap.conf" ]] ; then
+ # taken from admintools.conf self
+ temp_var=`grep -v '^#' ${ROOT}/etc/open-xchange/groupware/ldap.conf | grep -i BASE | head -n 1 | awk {'print $2'}`
+ [[ -n ${temp_var} ]] && OX_BASEDN=${temp_var}
+ fi
+ fi
+
+ # Now asking the user
+ einfo "If values are correct just press enter else enter the new value"
+
+ OX_DBHOST=$(get_user_config "${OX_DBHOST}" "Database Host")
+ OX_DBNAME=$(get_user_config "${OX_DBNAME}" "Database Name")
+ OX_DBUSER=$(get_user_config "${OX_DBUSER}" "Database User")
+ OX_DBPASS=$(get_user_config "${OX_DBPASS}" "Database User's Password")
+ OX_ORG=$(get_user_config "${OX_ORG}" "Organization")
+ OX_DOMAIN=$(get_user_config "${OX_DOMAIN}" "Domain")
+ OX_LDAPSERVER=$(get_user_config "${OX_LDAPSERVER}" "LDAP Server")
+ OX_BASEDN=$(get_user_config "${OX_BASEDN}" "LDAP Base DN")
+ OX_ROOTDN=$(get_user_config "${OX_ROOTDN}" "LDAP Root DN")
+ OX_ROOTPW=$(get_user_config "${OX_ROOTPW}" "LDAP Root Password")
+
+ einfo "Finished - now writing config"
+
+ # patching umin.war, somehow dirty
+ [[ -d "${T}/ox_war" ]] && rm -rf ${T}/ox_war
+ mkdir -p ${T}/ox_war
+ unzip ${ROOT}/${SERVLETDIR}/umin.war -d ${T}/ox_war
+
+ sed -i "s|LDAP_SERVER=.*|LDAP_SERVER=${OX_LDAPSERVER}|g" ${T}/ox_war/WEB-INF/classes/oxuserminconfig.properties
+ sed -i "s|LDAP_BASEDN=.*|LDAP_BASEDN=${OX_BASEDN}|g" ${T}/ox_war/WEB-INF/classes/oxuserminconfig.properties
+ sed -i "s|SQL_SERVER_GROUPWARE=.*|SQL_SERVER_GROUPWARE=${OX_DBHOST}|g" ${T}/ox_war/WEB-INF/classes/oxuserminconfig.properties
+ sed -i "s|SQL_SERVER_GROUPWARE_DATABASE_NAME=.*|SQL_SERVER_GROUPWARE_DATABASE_NAME=${OX_DBNAME}|g" ${T}/ox_war/WEB-INF/classes/oxuserminconfig.properties
+ sed -i "s|SQL_SERVER_GROUPWARE_DATABASE_USERNAME=.*|SQL_SERVER_GROUPWARE_DATABASE_USERNAME=${OX_DBUSER}|g" ${T}/ox_war/WEB-INF/classes/oxuserminconfig.properties
+ sed -i "s|SQL_SERVER_GROUPWARE_DATABASE_PASSWORD=.*|SQL_SERVER_GROUPWARE_DATABASE_PASSWORD=${OX_DBPASS}|g" ${T}/ox_war/WEB-INF/classes/oxuserminconfig.properties
+ sed -i "s|CSS_PATH=/cfintranet/css/stylesheet.css|CSS_PATH=/open-xchange/cfintranet/css/stylesheet.css|g" ${T}/ox_war/WEB-INF/classes/oxuserminconfig.properties
+
+ cd ${T}/ox_war
+ zip -r -9 umin.war *
+ cp umin.war ${ROOT}/${SERVLETDIR}
+ cd ${ROOT}
+ rm -rf ${T}/ox_war
+
+ ## now create configs with the right values
+ # starting with ldap
+ sed -i "s|@basedn@|${OX_BASEDN}|g" ${ROOT}/usr/share/open-xchange/init_ldap.ldif
+ sed -i "s|@domain@|${OX_DOMAIN}|g" ${ROOT}/usr/share/open-xchange/init_ldap.ldif
+ sed -i "s|@organization@|${OX_ORG}|g" ${ROOT}/usr/share/open-xchange/init_ldap.ldif
+
+ local OX_BASEDC="`echo ${OX_BASEDN} | sed -n 's:dc=\([-A-Za-z_]*\).*:\1:p'|head -n 1`"
+ sed -i "s|@basedc@|${OX_BASEDC}|g" ${ROOT}/usr/share/open-xchange/init_ldap.ldif
+
+ sed -i "s|ORGA=\".*\"|ORGA=\"${OX_ORG}\"|g" ${ROOT}/etc/open-xchange/admintools.conf
+ sed -i "s|BINDDN=\".*\"|BINDDN=\"${OX_ROOTDN}\"|g" ${ROOT}/etc/open-xchange/admintools.conf
+ sed -i "s|BINDPW=\".*\"|BINDPW=\"${OX_ROOTPW}\"|g" ${ROOT}/etc/open-xchange/admintools.conf
+ sed -i "s|DEFAULT_SQL_HOST=\".*\"|DEFAULT_SQL_HOST=\"${OX_DBHOST}\"|g" ${ROOT}/etc/open-xchange/admintools.conf
+ sed -i "s|DEFAULT_SQL_DB=\".*\"|DEFAULT_SQL_DB=\"${OX_DBNAME}\"|g" ${ROOT}/etc/open-xchange/admintools.conf
+ sed -i "s|DEFAULT_SQL_USER=\".*\"|DEFAULT_SQL_USER=\"${OX_DBUSER}\"|g" ${ROOT}/etc/open-xchange/admintools.conf
+ sed -i "s|DEFAULT_SQL_PASS=\".*\"|DEFAULT_SQL_PASS=\"${OX_DBPASS}\"|g" ${ROOT}/etc/open-xchange/admintools.conf
+
+ # setup correct acis
+ sed -i "s|@basedn@|${OX_BASEDN}|g" ${ROOT}/etc/openldap/slapd.ox.inc
+ chown ldap:ldap ${ROOT}/etc/openldap/slapd.ox.inc
+
+ # groupware : server.conf
+ for f in /etc/open-xchange/groupware/server.conf /etc/open-xchange/webmail/server.conf ; do
+ sed -i "s|NAS_CON_CLASS_NAME: jdbc:\(.*\)://.*|NAS_CON_CLASS_NAME: jdbc:\1://${OX_DBHOST}/${OX_DBNAME}|g" ${ROOT}/${f}
+ sed -i "s|NAS_CON_USER:.*|NAS_CON_USER: ${OX_DBUSER}|g" ${ROOT}/${f}
+ sed -i "s|NAS_CON_PASS:.*|NAS_CON_PASS: ${OX_DBPASS}|g" ${ROOT}/${f}
+ sed -i "s|NAS_CON_PASS:.*|NAS_CON_PASS: ${OX_DBPASS}|g" ${ROOT}/${f}
+ done
+
+ correctfilespool
+ echo
+ echo
+ einfo "======================"
+ einfo "Finished configuration"
+ einfo "======================"
+
+ echo
+ einfo "And set JAVA_OPTS in /etc/conf.d/tomcat5 (or tomcat-5):"
+ einfo "JAVA_OPTS=\"-Dopenexchange.propfile=${ROOT}/etc/open-xchange/groupware/system.properties\""
+
+ echo
+ einfo "And setup /etc/conf.d/apache2"
+ einfo "APACHE2_OPTS=\"-D JK\""
+
+ echo
+ einfo "And setup /etc/conf.d/postgresql"
+ einfo "PGOPTS=\"-i\""
+
+
+
+ # Tell the user how to propegate ldap and the db
+ ## at first automatially change config in init_ldap.ldif and configuration-files
+
+ ## create ox-dbuser
+ echo
+ einfo "HOWTO: Setup database (following commands)"
+ einfo "++++++++++++++++++++++++++++++++++++++++++"
+
+ if use_postgres ; then
+ einfo "echo \"CREATE USER ${OX_DBUSER} WITH PASSWORD '${OX_DBPASS}' CREATEDB NOCREATEUSER\" | psql -h localhost -U postgres template1 -f -"
+ einfo "echo \"CREATE DATABASE ${OX_DBNAME} WITH OWNER=${OX_DBUSER} ENCODING='UNICODE'\" | psql -h localhost -U postgres template1 -f -"
+ einfo "psql -U ${OX_DBUSER} ${OX_DBNAME} < ${ROOT}/usr/share/open-xchange/init_database.sql"
+ einfo "/usr/sbin/dbinit_ox"
+ else
+ # COMMENT: we should tell them how to setup mysql also...
+ einfo "MySQL instructions coming soon..."
+ # some pre information
+ # add user
+ # INSERT INTO user (Host, User, Password) VALUES ('localhost','${OX_DBUSER}',PASSWORD('${OX_DBPASS}'));
+ # FLUSH PRIVILIGES;
+ # add database
+ # CREATE DATABASE ${OX_DBNAME};
+ fi
+
+ ## initialise database with ox, after configurations have been changed
+ echo
+ echo
+ einfo "HOWTO: Setup OpenLDAP"
+ ewarn "Please make sure to STOP slapd to maintain database consistency (from slapadd(8c))!!!"
+ einfo "+++++++++++++++++++++++++++++++++"
+ einfo "/etc/init.d/slapd stop"
+ einfo ""
+ einfo "Add this to /etc/openldap/slapd.conf:"
+ einfo "include /etc/openldap/schema/cosine.schema"
+ einfo "include /etc/openldap/schema/inetorgperson.schema"
+ einfo "include /etc/openldap/schema/misc.schema"
+ einfo "include /etc/openldap/schema/nis.schema"
+ einfo "include /etc/openldap/schema/openldap.schema"
+ einfo "include /etc/openldap/schema/openxchange.schema"
+ einfo ""
+ einfo "If you want an initial set of access rights (enables your user, editing their password, ...)"
+ einfo "you should also add the following line:"
+ einfo "include /etc/openldap/slapd.ox.inc"
+ einfo ""
+ einfo "slapadd -l /usr/share/open-xchange/init_ldap.ldif"
+ einfo ""
+ einfo "/etc/init.d/slapd start"
+
+ echo
+ echo
+ einfo "HOWTO: Add a group"
+ einfo "++++++++++++++++++"
+ einfo "This is suggested for correct webdav-access"
+ einfo "/usr/sbin/addgroup_ox --group=NEWGROUPNAME"
+
+ echo
+ echo
+ einfo "HOWTO: Add a user"
+ einfo "+++++++++++++++++"
+ einfo "/usr/sbin/adduser_ox --username=MYUSERNAME --password=MYPASSWORD --name=FORENAME --sname=SURENAME --maildomain=${OX_DOMAIN} --ox_timezone=\"Europe/Berlin\""
+ einfo "Now you can add the user to a group."
+ einfo "/usr/sbin/addusertogroup_ox --user=MYUSERNAME --group=NEWGROUPNAME"
+ echo
+ einfo "If you encounter any problems with this commands probably your ldap or database configuration is not correct"
+ echo
+ echo
+ einfo "Web Access:"
+ einfo "To access open-xchange via the web, point your browser to: http://localhost/cgi-bin/login.pl"
+}