diff options
Diffstat (limited to 'testing/dovecot')
-rw-r--r-- | testing/dovecot/PKGBUILD | 70 | ||||
-rw-r--r-- | testing/dovecot/dovecot.install | 58 | ||||
-rwxr-xr-x | testing/dovecot/dovecot.sh | 69 |
3 files changed, 197 insertions, 0 deletions
diff --git a/testing/dovecot/PKGBUILD b/testing/dovecot/PKGBUILD new file mode 100644 index 000000000..b91386d37 --- /dev/null +++ b/testing/dovecot/PKGBUILD @@ -0,0 +1,70 @@ +# $Id: PKGBUILD 150441 2012-02-17 19:35:29Z andyrtr $ +# Maintainer: Andreas Radke <andyrtr@archlinux.org> +# Contributor: Paul Mattal <paul@mattal.com> +# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com> +# Contributor: GARETTE Emmanuel <gnunux at laposte dot net> + +pkgname=dovecot +pkgver=2.1.0 +pkgrel=1 +pkgdesc="An IMAP and POP3 server written with security primarily in mind" +arch=('i686' 'x86_64') +url="http://dovecot.org/" +license=("LGPL") +depends=('krb5' 'openssl' 'sqlite3>=3.7.5' 'libmysqlclient>=5.5.10' + 'postgresql-libs>=9.0.3' 'bzip2' 'expat' 'curl') +makedepends=('pam>=1.1.1' 'libcap>=2.19' 'libldap>=2.4.22') +optdepends=('libldap: ldap plugin') +provides=('imap-server' 'pop3-server') +options=('!libtool') +backup=(etc/dovecot/dovecot.conf + etc/dovecot/conf.d/{10-auth,10-director,10-logging,10-mail,10-master,10-ssl}.conf + etc/dovecot/conf.d/{15-lda,20-imap,20-lmtp,20-pop3}.conf + etc/dovecot/conf.d/{90-acl,90-plugin,90-quota}.conf + etc/dovecot/conf.d/auth-{checkpassword,deny,ldap,master,passwdfile,sql,static,system,vpopmail}.conf.ext + etc/ssl/dovecot-openssl.cnf) +install=$pkgname.install +source=(http://dovecot.org/releases/2.1/${pkgname}-${pkgver}.tar.gz{,.sig} dovecot.sh) +md5sums=('32a52cc45bf099bbb537b46052d23014' + 'e2d7783ebe0f10aee259c86c69bd0a46' + '587159e84e2da6f83d70b3c706ba87cc') + +build() { + cd ${srcdir}/$pkgname-$pkgver + + # configure with openssl, mysql, and postgresql support + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ + --libexecdir=/usr/lib --with-moduledir=/usr/lib/dovecot/modules \ + --disable-static \ + --with-nss \ + --with-pam \ + --with-mysql \ + --with-pgsql \ + --with-sqlite \ + --with-ssl=openssl --with-ssldir=/etc/dovecot/ssl \ + --with-gssapi \ + --with-ldap=plugin \ + --with-zlib --with-bzlib \ + --with-libcap \ + --with-solr \ + --with-docs + make +} + +package() { + cd ${srcdir}/$pkgname-$pkgver + make DESTDIR=${pkgdir} install + + # install the launch script + install -D -m755 ${srcdir}/$pkgname.sh ${pkgdir}/etc/rc.d/$pkgname + + # install example conf files and ssl.conf + install -d -m755 ${pkgdir}/etc/dovecot/conf.d + install -m 644 ${pkgdir}/usr/share/doc/dovecot/example-config/conf.d/*.conf ${pkgdir}/etc/dovecot/conf.d + install -m 644 ${pkgdir}/usr/share/doc/dovecot/example-config/conf.d/*.conf.ext ${pkgdir}/etc/dovecot/conf.d + install -m 644 ${pkgdir}/usr/share/doc/dovecot/example-config/dovecot.conf ${pkgdir}/etc/dovecot/ + install -d -m755 ${pkgdir}/etc/ssl + install -m 644 ${srcdir}/$pkgname-$pkgver/doc/dovecot-openssl.cnf ${pkgdir}/etc/ssl/ + + rm ${pkgdir}/etc/dovecot/README +} diff --git a/testing/dovecot/dovecot.install b/testing/dovecot/dovecot.install new file mode 100644 index 000000000..873b82e2f --- /dev/null +++ b/testing/dovecot/dovecot.install @@ -0,0 +1,58 @@ +# arg 1: the new package version +post_install() { + + # Make sure the group and user "dovecot"+"dovenull exists on this system and have the correct values + + # dovecot + if grep -q "^dovecot:" /etc/group &> /dev/null ; then + groupmod -g 76 -n dovecot dovecot &> /dev/null + else + groupadd -g 76 dovecot &> /dev/null + fi + + if grep -q "^dovecot:" /etc/passwd 2> /dev/null ; then + usermod -s /sbin/nologin -c "Dovecot user" -d /var/empty -u 76 -g dovecot dovecot &> /dev/null + else + useradd -s /sbin/nologin -c "Dovecot user" -d /var/empty -u 76 -g dovecot -r dovecot &> /dev/null + fi + + # dovenull + if grep -q "^dovenull:" /etc/group &> /dev/null ; then + groupmod -g 74 -n dovenull dovenull &> /dev/null + else + groupadd -g 74 dovenull &> /dev/null + fi + + if grep -q "^dovenull:" /etc/passwd 2> /dev/null ; then + usermod -s /sbin/nologin -c "Dovecot user for completely untrustworthy processes" -d /var/empty -u 74 -g dovenull dovenull &> /dev/null + else + useradd -s /sbin/nologin -c "Dovecot user for completely untrustworthy processes" -d /var/empty -u 74 -g dovenull -r dovenull &> /dev/null + fi +} + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + if [ "`vercmp $2 2.0.0`" -lt 0 ]; then + # important upgrade notice + echo "> IMPORTANT DOVECOT 2.0 UPGRADE NOTICE" + echo "> ------------------------------------" + echo "> see http://wiki2.dovecot.org/Upgrading/2.0" + echo "> make sure, you convert the dovecot.conf file" + fi + if [ "`vercmp $2 2.0.13-2`" -lt 0 ]; then + # to remove no more existant usersdirs simply remove the dovecot users and let them recreate later + userdel dovecot &> /dev/null + userdel dovenull &> /dev/null + fi + post_install $1 +} + +# arg 1: the old package version +pre_remove() { + userdel dovecot &> /dev/null + userdel dovenull &> /dev/null + groupdel dovecot &> /dev/null || /bin/true + groupdel dovenull &> /dev/null || /bin/true + rm -rf /var/run/dovecot/ &> /dev/null || /bin/true +} diff --git a/testing/dovecot/dovecot.sh b/testing/dovecot/dovecot.sh new file mode 100755 index 000000000..e8966bd55 --- /dev/null +++ b/testing/dovecot/dovecot.sh @@ -0,0 +1,69 @@ +#!/bin/bash + +daemon_name=dovecot + +. /etc/rc.conf +. /etc/rc.d/functions +#. /etc/conf.d/$daemon_name.conf + +get_pid() { + pidof -o %PPID $daemon_name +} + +case "$1" in + start) + stat_busy "Starting $daemon_name daemon" + + PID=$(get_pid) + if [[ -z $PID ]]; then + [[ -f /var/run/$daemon_name.pid ]] && + rm -f /var/run/$daemon_name.pid + # RUN + $daemon_name + # + if [[ $? -gt 0 ]]; then + stat_fail + exit 1 + else + echo $(get_pid) > /var/run/$daemon_name.pid + add_daemon $daemon_name + stat_done + fi + else + stat_fail + exit 1 + fi + ;; + + stop) + stat_busy "Stopping $daemon_name daemon" + PID=$(get_pid) + # KILL + [[ -n $PID ]] && kill $PID &> /dev/null + # + if [[ $? -gt 0 ]]; then + stat_fail + exit 1 + else + rm -f /var/run/$daemon_name.pid &> /dev/null + rm_daemon $daemon_name + stat_done + fi + ;; + + restart) + $0 stop + sleep 3 + $0 start + ;; + + status) + stat_busy "Checking $daemon_name status"; + ck_status $daemon_name + ;; + + *) + echo "usage: $0 {start|stop|restart|status}" +esac + +exit 0 |