diff options
author | MartiMcFly | 2018-05-31 00:36:30 +0200 |
---|---|---|
committer | MartiMcFly | 2018-05-31 00:36:30 +0200 |
commit | 5f61ebe70fba2d64894ec3dc5a747a99ad86ac7d (patch) | |
tree | 2bcfa9e77f548c821251c34d7097d444322267a3 | |
download | aur-5f61ebe70fba2d64894ec3dc5a747a99ad86ac7d.tar.gz |
init
-rw-r--r-- | .SRCINFO | 78 | ||||
-rw-r--r-- | PKGBUILD | 384 | ||||
-rw-r--r-- | install | 104 |
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 +} |