summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartiMcFly2018-05-31 00:36:30 +0200
committerMartiMcFly2018-05-31 00:36:30 +0200
commit5f61ebe70fba2d64894ec3dc5a747a99ad86ac7d (patch)
tree2bcfa9e77f548c821251c34d7097d444322267a3
downloadaur-5f61ebe70fba2d64894ec3dc5a747a99ad86ac7d.tar.gz
init
-rw-r--r--.SRCINFO78
-rw-r--r--PKGBUILD384
-rw-r--r--install104
3 files changed, 566 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..4f5305f35690
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,78 @@
+pkgbase = kopano-core
+ pkgdesc = Open Source Groupware Solution
+ pkgver = 8.6.1
+ pkgrel = 7
+ url = https://www.kopano.com/
+ install = install
+ arch = armv7h
+ arch = armv6h
+ arch = x86_64
+ arch = i686
+ license = AGPL3
+ makedepends = gcc
+ makedepends = gcc-libs
+ makedepends = e2fsprogs
+ makedepends = automake
+ makedepends = xmlto
+ makedepends = docbook-xsl
+ makedepends = git
+ depends = lzo
+ depends = kbproto
+ depends = gperftools
+ depends = openldap
+ depends = php
+ depends = mariadb
+ depends = curl
+ depends = libxml2
+ depends = openldap
+ depends = krb5
+ depends = bison
+ depends = python2
+ depends = python
+ depends = swig
+ depends = bash-completion
+ depends = icu
+ depends = jsoncpp
+ depends = gcc-libs
+ depends = icu
+ depends = libical
+ depends = libvmime
+ depends = boost
+ depends = boost-libs
+ depends = gsoap
+ depends = openssl
+ depends = python2-minimock
+ depends = python2-dnspython
+ depends = python2-nose
+ depends = python2-pyopenssl
+ depends = python2-tlslite
+ depends = python2-soappy
+ depends = python2-flask
+ depends = python2-sleekxmpp
+ depends = ejabberd
+ depends = python2-xapian
+ depends = python2-dateutil
+ depends = xapian-core
+ depends = php-xapian>=1.2.21
+ depends = catdoc
+ depends = poppler
+ depends = w3m
+ depends = libxslt
+ depends = unzip
+ depends = php-fpm
+ depends = nginx
+ depends = postfix
+ depends = cyrus-sasl
+ optdepends = zarafa-webapp
+ optdepends = sabre-zarafa
+ optdepends = z-push
+ optdepends = apache
+ replaces = zarafa-server-arm
+ replaces = zarafa-server
+ source = git+https://stash.kopano.io/scm/kc/kopanocore.git#tag=kopanocore-8.6.1
+ source = kopano-pietma::git+https://git.pietma.com/pietma/com-pietma-zarafa.git#branch=kopano
+ md5sums = SKIP
+ md5sums = SKIP
+
+pkgname = kopano-core
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..f9bc7a4f40b2
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,384 @@
+# Maintainer: MartiMcFly <martimcfly [at] autorisation.de>
+# Contributor: MartiMcFly <martimcfly [at] autorisation.de>
+
+pkgname=('kopano-core')
+
+replaces=('zarafa-server-arm'
+ 'zarafa-server')
+
+pkgver=8.6.1
+pkgrel=7
+pkgdesc="Open Source Groupware Solution"
+
+arch=('armv7h'
+ 'armv6h'
+ 'x86_64'
+ 'i686')
+
+url="https://www.kopano.com/"
+license=('AGPL3')
+
+makedepends=(
+ 'gcc'
+ 'gcc-libs'
+ 'e2fsprogs'
+ 'automake'
+ 'xmlto'
+ 'docbook-xsl'
+ 'git'
+ )
+depends=(
+ # TEST
+ 'lzo'
+ 'kbproto'
+
+ # common
+ 'gperftools'
+ # 'tidy' => broken
+ 'openldap'
+ 'php'
+ 'mariadb'
+ 'curl'
+ 'libxml2'
+ 'openldap'
+ 'krb5'
+ 'bison'
+ 'python2'
+ 'python'
+ 'swig'
+ 'bash-completion'
+ 'icu'
+ 'jsoncpp'
+
+ # common: version dependend in the past
+ 'gcc-libs'
+ 'icu'
+ 'libical'
+ 'libvmime'
+ 'boost'
+ 'boost-libs'
+ 'gsoap'
+ 'openssl'
+
+ # presence
+ 'python2-minimock'
+ 'python2-dnspython'
+ 'python2-nose'
+ 'python2-pyopenssl'
+ 'python2-tlslite'
+ 'python2-soappy'
+
+ # presence-xmpp
+ 'python2-flask'
+ 'python2-sleekxmpp'
+ 'ejabberd'
+
+ # search
+ 'python2-xapian'
+ 'python2-dateutil'
+ 'xapian-core'
+ 'php-xapian>=1.2.21'
+ 'catdoc'
+ 'poppler'
+ 'w3m'
+ 'libxslt'
+
+ # pietma setup
+ 'unzip'
+
+ # imap-, smtp-, ical-, carddav-proxy
+ 'php-fpm'
+ 'nginx'
+
+ # mta + athentification
+ 'postfix'
+ 'cyrus-sasl'
+ )
+install="install"
+optdepends=('zarafa-webapp'
+ 'sabre-zarafa'
+ 'z-push'
+ 'apache')
+
+source=(
+ "git+https://stash.kopano.io/scm/kc/kopanocore.git#tag=kopanocore-${pkgver}"
+ "kopano-pietma::git+https://git.pietma.com/pietma/com-pietma-zarafa.git#branch=kopano"
+ )
+md5sums=(
+ 'SKIP'
+ 'SKIP'
+ )
+
+# DEBUG
+# OPTIONS=(!strip docs libtool staticlibs emptydirs zipman purge !optipng !upx debug)
+
+prepare() {
+ cd kopanocore
+
+ # Python is not recognized. Package is called python2 in Archlinux
+ sed -i -r 's|PKG_CHECK_MODULES\(\[PYTHON\], \[python\], \[\], \[:\]\)|PKG_CHECK_MODULES\(\[PYTHON\], \[python2\], \[\], \[:\]\)|' configure.ac
+
+ ./bootstrap.sh
+}
+
+build() {
+ cd kopanocore
+
+# CPPFLAGS="-I/usr/include/python2.7" ./configure \
+# DEBUG
+# CXXFLAGS="-O0 -ggdb3" \
+ CPPFLAGS="-I/usr/include/python2.7" ./configure \
+ --prefix=/ \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --exec-prefix=/usr \
+ --sbindir=/usr/bin \
+ --datarootdir=/usr/share \
+ --includedir=/usr/include \
+ --enable-release \
+ --enable-epoll \
+ --enable-python \
+ --disable-debug \
+ --disable-static \
+ --with-userscript-prefix=/etc/kopano/userscripts \
+ --with-quotatemplate-prefix=/etc/kopano/quotamails \
+ --with-searchscripts-prefix=/etc/kopano/searchscripts \
+ --with-php=7 \
+ PYTHON=/usr/bin/python2
+
+ make
+}
+
+function cfg_set() {
+ # 1: field / 2: value / 3: file
+ # Replaces optional comments and spaces
+ # "# name = value" => "name = newvalue"
+ #
+ sed -i "s|^#*\s*\($1\)\s*\=.*|\1 = $2|" $3
+}
+
+package() {
+ cd kopanocore
+
+ # => multithreaded build breaks everything
+ export MAKEFLAGS="-j1"
+ make install DESTDIR="$(realpath ${pkgdir})"
+
+
+ # => move bash-completion to arch location
+ mkdir -p ${pkgdir}/usr/share/bash-completion/completions
+ mv ${pkgdir}/etc/bash_completion.d/kopano-bash-completion.sh ${pkgdir}/usr/share/bash-completion/completions/kopano
+
+ # => move /lib/* to /usr/lib/ arch location. /lib is a symlink to /usr/lib anyways.
+ mv ${pkgdir}/lib/* ${pkgdir}/usr/lib/
+
+ # => remove not appliable content
+ rm -Rf ${pkgdir}/lib
+ rm -Rf ${pkgdir}/etc/init.d
+ rm -Rf ${pkgdir}/etc/sysconfig
+ rm -Rf ${pkgdir}/etc/cron.daily
+ rm -Rf ${pkgdir}/etc/logrotate.d
+ rm -Rf ${pkgdir}/etc/bash_completion.d
+ rm -Rf ${pkgdir}/etc/kopano/license
+
+ # PREPARE LICENSE
+ mkdir -p ${pkgdir}/usr/share/licenses/${pkgname}
+ cp -R {RELNOTES.txt,CONTRIBUTING.md,AGPL-3,LICENSE.txt} ${pkgdir}/usr/share/licenses/${pkgname}
+
+
+ # PREPARE SETTINGS
+#?? rm ${pkgdir}/etc/kopano/*.cfg
+
+ # General
+ cfg_path="/usr/share/doc/kopano/example-config"
+ run_as_user="kopano"
+ run_as_group="kopano"
+ running_path="/var/lib/kopano"
+ server_socket="/var/run/kopano/server.sock"
+ server_socket_prio="/var/run/kopano/prio.sock"
+ search_socket="/var/run/kopano/search.sock"
+ ssl_protocols="TLSv1 TLSv1\.1 TLSv1\.2"
+ ssl_ciphers="AES256\+EECDH:AES256\+EDH:\!aNULL"
+ ssl_privatekey="/etc/ssl/private/kopano.key"
+ ssl_certificate="/etc/ssl/private/kopano.crt"
+
+
+ # server.cfg
+ cfg="${pkgdir}${cfg_path}/server.cfg"
+ cfg_set "attachment_compression" "0" ${cfg}
+ cfg_set "disabled_features" "" ${cfg}
+ cfg_set "hide_everyone" "yes" ${cfg}
+ cfg_set "search_enabled" "yes" "${cfg}"
+ cfg_set "search_socket" "file://${search_socket}" "${cfg}"
+ cfg_set "mysql_socket" "/run/mysqld/mysqld.sock" ${cfg}
+ cfg_set "mysql_user" "kopano" ${cfg}
+ cfg_set "mysql_password" "kopano" ${cfg}
+ #=> service
+ cfg_set "run_as_user" "${run_as_user}" ${cfg}
+ cfg_set "run_as_group" "${run_as_group}" ${cfg}
+ cfg_set "running_path" "${running_path}" ${cfg}
+ cfg_set "log_method" "syslog" ${cfg}
+ cfg_set "log_file" "-" ${cfg}
+ cfg_set "log_level" "3" ${cfg}
+ #=> server-connection (socket only)
+ cfg_set "server_pipe_name" "${server_socket}" ${cfg}
+ cfg_set "server_pipe_priority" "${server_socket_prio}" ${cfg}
+ cfg_set "server_listen" "" ${cfg}
+ cfg_set "server_listen_tls" "" ${cfg}
+ cfg_set "server_ssl_prefer_server_ciphers" "yes" ${cfg}
+ cfg_set "server_ssl_protocols" "${ssl_protocols}" ${cfg}
+ cfg_set "server_ssl_ciphers" "${ssl_ciphers}" ${cfg}
+ cfg_set "server_ssl_key_file" "${ssl_privatekey}" ${cfg}
+ cfg_set "server_ssl_key_pass" "" ${cfg}
+ cfg_set "server_ssl_ca_file" "${ssl_certificate}" ${cfg}
+ cfg_set "server_ssl_ca_path" "/etc/ssl/certs" ${cfg}
+
+ # archiver.cfg
+ cfg="${pkgdir}${cfg_path}/archiver.cfg"
+ #=> service
+ cfg_set "log_method" "syslog" ${cfg}
+ cfg_set "log_file" "-" ${cfg}
+ cfg_set "log_level" "3" ${cfg}
+ #=> server-connection
+ cfg_set "server_socket" "file://${server_socket}" ${cfg}
+
+ # backup.cfg
+ cfg="${pkgdir}${cfg_path}/backup.cfg"
+ #=> service
+ cfg_set "log_method" "syslog" ${cfg}
+ cfg_set "log_file" "-" ${cfg}
+ cfg_set "log_level" "3" ${cfg}
+ #=> server-connection
+ cfg_set "server_socket" "file://${server_socket}" ${cfg}
+
+ # dagent.cfg
+ cfg="${pkgdir}${cfg_path}/dagent.cfg"
+ #=> service
+ cfg_set "run_as_user" "${run_as_user}" ${cfg}
+ cfg_set "run_as_group" "${run_as_group}" ${cfg}
+ cfg_set "running_path" "${running_path}" ${cfg}
+ cfg_set "log_method" "syslog" ${cfg}
+ cfg_set "log_file" "-" ${cfg}
+ cfg_set "log_level" "3" ${cfg}
+ #=> server-connection
+ cfg_set "server_bind" "127.0.0.1" ${cfg}
+ cfg_set "server_socket" "file://${server_socket}" ${cfg}
+
+ # gateway.cfg
+ cfg="${pkgdir}${cfg_path}/gateway.cfg"
+ cfg_set "imap_generate_utf8" "no" "${cfg}"
+ cfg_set "imap_public_folders" "yes" "${cfg}"
+ cfg_set "process_model" "fork" ${cfg}
+ #=> service (avoid requests to be upgraded to admin privileges)
+ cfg_set "run_as_user" "nobody" ${cfg}
+ cfg_set "run_as_group" "nobody" ${cfg}
+ cfg_set "running_path" "${running_path}" ${cfg}
+ cfg_set "log_method" "syslog" ${cfg}
+ cfg_set "log_file" "-" ${cfg}
+ cfg_set "log_level" "3" ${cfg}
+ #=> server-connection
+ cfg_set "server_bind" "127.0.0.1" ${cfg}
+ cfg_set "server_socket" "file://${server_socket}" ${cfg}
+ cfg_set "ssl_prefer_server_ciphers" "yes" ${cfg}
+ cfg_set "ssl_protocols" "${ssl_protocols}" ${cfg}
+ cfg_set "ssl_ciphers" "${ssl_ciphers}" ${cfg}
+ cfg_set "ssl_private_key_file" "${ssl_privatekey}" ${cfg}
+ cfg_set "ssl_certificate_file" "${ssl_certificate}" ${cfg}
+
+ # ical.cfg
+ cfg="${pkgdir}${cfg_path}/ical.cfg"
+ cfg_set "process_model" "fork" ${cfg}
+ #=> service (avoid requests to be upgraded to kopano-admin)
+ cfg_set "run_as_user" "nobody" ${cfg}
+ cfg_set "run_as_group" "nobody" ${cfg}
+ cfg_set "running_path" "${running_path}" ${cfg}
+ cfg_set "log_method" "syslog" ${cfg}
+ cfg_set "log_file" "-" ${cfg}
+ cfg_set "log_level" "3" ${cfg}
+ #=> server-connection
+ cfg_set "server_bind" "127.0.0.1" ${cfg}
+ cfg_set "server_socket" "file://${server_socket}" ${cfg}
+ cfg_set "ssl_prefer_server_ciphers" "yes" ${cfg}
+ cfg_set "ssl_protocols" "${ssl_protocols}" ${cfg}
+ cfg_set "ssl_ciphers" "${ssl_ciphers}" ${cfg}
+ cfg_set "ssl_private_key_file" "${ssl_privatekey}" ${cfg}
+ cfg_set "ssl_certificate_file" "${ssl_certificate}" ${cfg}
+
+ # monitor.cfg
+ cfg="${pkgdir}${cfg_path}/monitor.cfg"
+ #=> service
+ cfg_set "run_as_user" "${run_as_user}" ${cfg}
+ cfg_set "run_as_group" "${run_as_group}" ${cfg}
+ cfg_set "running_path" "${running_path}" ${cfg}
+ cfg_set "log_method" "syslog" ${cfg}
+ cfg_set "log_file" "-" ${cfg}
+ cfg_set "log_level" "3" ${cfg}
+ #=> server-connection
+ cfg_set "server_socket" "file://${server_socket}" ${cfg}
+
+ # presence.cfg
+ cfg="${pkgdir}${cfg_path}/presence.cfg"
+ cfg_set "plugins" "xmpp" "${cfg}"
+ cfg_set "server_bind" "127.0.0.1" ${cfg}
+ #=> service
+ cfg_set "run_as_user" "${run_as_user}" ${cfg}
+ cfg_set "run_as_group" "${run_as_group}" ${cfg}
+ cfg_set "running_path" "${running_path}" ${cfg}
+ cfg_set "log_method" "syslog" ${cfg}
+ cfg_set "log_file" "-" ${cfg}
+ cfg_set "log_level" "3" ${cfg}
+
+ # unix.cfg
+
+ # search.cfg
+ cfg="${pkgdir}${cfg_path}/search.cfg"
+ cfg_set "index_attachements" "yes" "${cfg}"
+ cfg_set "server_bind_name" "file://${search_socket}" "${cfg}"
+ cfg_set "ssl_private_key_file" "${ssl_privatekey}" ${cfg}
+ cfg_set "ssl_certificate_file" "${ssl_certificate}" ${cfg}
+ #=> service
+ cfg_set "run_as_user" "${run_as_user}" ${cfg}
+ cfg_set "run_as_group" "${run_as_group}" ${cfg}
+ cfg_set "running_path" "${running_path}" ${cfg}
+ cfg_set "log_method" "syslog" ${cfg}
+ cfg_set "log_file" "-" ${cfg}
+ cfg_set "log_level" "3" ${cfg}
+ #=> server-connection
+ cfg_set "server_socket" "file://${server_socket}" ${cfg}
+
+ # spooler.cfg
+ cfg="${pkgdir}${cfg_path}/spooler.cfg"
+ cfg_set "allow_send_to_everyone" "no" "${cfg}"
+ #=> service
+ cfg_set "run_as_user" "${run_as_user}" ${cfg}
+ cfg_set "run_as_group" "${run_as_group}" ${cfg}
+ cfg_set "running_path" "${running_path}" ${cfg}
+ cfg_set "log_method" "syslog" ${cfg}
+ cfg_set "log_file" "-" ${cfg}
+ cfg_set "log_level" "3" ${cfg}
+ #=> server-connection
+ cfg_set "server_socket" "file://${server_socket}" ${cfg}
+
+
+ # PIETMA
+ ###
+ cd ${srcdir}/kopano-pietma
+ mkdir -p ${pkgdir}/usr/share/doc/kopano
+ cp -LRf doc/* ${pkgdir}/usr/share/doc/kopano
+ cp -LRf usr/* ${pkgdir}/usr
+
+
+ # ADDITIONS
+ ###
+# cd ${srcdir}/kopano-tools
+# mkdir -p ${pkgdir}/usr/share/doc/kopano/kopano-tools
+# cp -LR * ${pkgdir}/usr/share/doc/kopano/kopano-tools/
+
+# cd ${srcdir}/python-kopano
+# mkdir -p ${pkgdir}/usr/share/doc/kopano/python-kopano
+# cp -LR * ${pkgdir}/usr/share/doc/kopano/python-kopano/
+
+# cd ${srcdir}/kopano-inspector
+# mkdir -p ${pkgdir}/usr/share/doc/kopano/kopano-inspector
+# cp -LR * ${pkgdir}/usr/share/doc/kopano/kopano-inspector/
+}
diff --git a/install b/install
new file mode 100644
index 000000000000..00bc4b8441e7
--- /dev/null
+++ b/install
@@ -0,0 +1,104 @@
+#!/bin/bash
+
+function kopano_cfg_set() {
+ # 1: field / 2: value / 3: file
+ # Replaces optional comments and spaces
+ # "# name = value" => "name = newvalue"
+ #
+ sed -i "s|^#*\s*\($1\)\s*\=.*|\1 = $2|" $3
+}
+
+# care about existing files
+function installdir() {
+ local owner="$1"
+ local moddir="$2"
+ local modfile="$3"
+ local directory="$4"
+
+ mkdir -p "$directory"
+ find $directory -exec chown "$owner" {} \;
+ find $directory -type f -exec chmod "$modfile" {} \;
+ find $directory -type d -exec chmod "$moddir" {} \;
+}
+
+function installbasics() {
+ # create tempdirs and users from /usr/lib/*.d
+ systemd-sysusers
+ systemd-tmpfiles --create
+
+ installdir kopano:kopano 0700 0600 /var/log/kopano
+ installdir kopano:kopano 0700 0600 /var/lib/kopano
+ installdir kopano:kopano 0700 0600 /var/lib/kopano/search
+ installdir kopano:kopano 0700 0600 /var/lib/kopano/presence
+
+ # due to a bug/exception it's impossible to execute phps mapi modul without browsable dir
+ installdir kopano:kopano 0755 0600 /etc/kopano
+
+ # fix missing python symlink for presence
+ if [[ ! -e "/usr/bin/python" ]];
+ then
+ ln -s /usr/bin/python2 /usr/bin/python
+ fi
+}
+
+post_install() {
+ installbasics
+
+ # CONFIG
+ # => defaults
+ for cfg in /usr/share/doc/kopano/example-config/*.cfg; do
+ install --backup=simple --suffix .pacsave -o kopano -g kopano -m 0600 ${cfg} /etc/kopano
+ done
+
+ echo
+ echo "Please install kopano:"
+ echo
+ echo " $ /usr/share/doc/kopano/pietma/install.sh"
+ echo
+ echo "Read More"
+ echo
+ echo " https://pietma.com/run-and-access-kopano/"
+ echo
+
+ return 0
+}
+
+post_upgrade() {
+ local newPackageVersion="$1"
+ local oldPackageVersion="$2"
+
+ case "$oldPackageVersion" in
+ 7.2.1*)
+ installbasics
+
+ # CONFIG
+ # => defaults
+ for cfg in /usr/share/doc/kopano/example-config/*.cfg; do
+ install --backup=simple -o kopano -g kopano -m 0600 ${cfg} /etc/kopano
+ done
+
+ echo "Please check /etc/kopano for new configuration values!"
+ ;;
+ *)
+ ;;
+ esac
+
+ # don't run gateway and ical as kopano user - kopano would grand access to all stores
+ for cfg in /etc/kopano/{gateway,ical}.cfg; do
+ kopano_cfg_set "run_as_user" "nobody" "${cfg}"
+ kopano_cfg_set "run_as_group" "nobody" "${cfg}"
+ done
+
+ echo
+ echo "Please restart kopano gateway and ical services"
+ echo
+ echo " $ systemctl restart kopano-gateway"
+ echo " $ systemctl restart kopano-ical"
+ echo
+
+ return 0
+}
+
+pre_remove() {
+ return 0
+}