diff --git a/community/courier-mta/PKGBUILD b/community/courier-mta/PKGBUILD new file mode 100644 index 000000000..8aa5334c2 --- /dev/null +++ b/community/courier-mta/PKGBUILD @@ -0,0 +1,150 @@ +# $Id: PKGBUILD 75460 2010-04-01 16:56:22Z giovanni $ +# Maintainer: Sven-Hendrik Haase +# Contributor: tobias +# Contributor: Tobias Kieslich + +# ----------- NOTE TO ALL USERS ------------ +# Go read http://www.courier-mta.org/install.html b4 running or building courier + +# ALARM: Kevin Mihelich +# - fix LDFLAGS setting for us + +plugrel=1 + +pkgname=courier-mta +pkgver=0.67.0 +pkgrel=2 +pkgdesc="IMAP(s)/POP3(s) and SMTP Server with ML-manager, webmail and webconfig" +arch=(i686 x86_64) +license=('GPL2') +backup=('etc/courier/imapd.cnf' 'etc/courier/pop3d.cnf' \ + 'etc/courier/imapd' 'etc/courier/imapd-ssl' \ + 'etc/courier/pop3d' 'etc/courier/pop3d-ssl' \ + 'etc/courier/courierd' 'etc/courier/sqwebmaild' \ + 'etc/courier/esmtpd' 'etc/courier/esmtpd-ssl' \ + 'etc/courier/esmtpd.cnf' 'etc/courier/esmtpd-msa' \ + 'etc/courier/webadmin/password' 'etc/courier/esmtpauthclient' \ + 'etc/conf.d/courier-mta') +url="http://courier-mta.org" +depends=('courier-authlib>=0.63.0' 'gamin' 'gcc-libs' 'gdbm' 'pcre' 'mime-types' 'ca-certificates') +optdepends=('libldap') +makedepends=('apache' 'pam' 'expect' 'gnupg' 'libldap' 'gamin') +provides=('smtp-server' 'smtp-forwarder' 'imap-server' 'pop3-server' 'courier-imap' 'courier-maildrop') +conflicts=('courier-imap' 'smtp-forwarder' 'smtp-server' 'imap-server' 'courier-maildrop' 'ucspi-tcp') +options=('!libtool') +install=courier-mta.install +source=(http://downloads.sourceforge.net/project/courier/courier/${pkgver}/courier-${pkgver}.tar.bz2 + courier.rc.d + courier-mta.rc.d + courier-mta.conf.d + esmtpd.rc.d + esmtpd-ssl.rc.d + esmtpd-msa.rc.d + imapd.rc.d + imapd-ssl.rc.d + pop3d.rc.d + pop3d-ssl.rc.d + webmaild.rc.d) +md5sums=('c2e26499f9f48577aa7a0735f5e96997' + '9055ba622efd37603186ce1f37277224' + '5cbeb5c323706058e545f74ad7752ebe' + 'f3ff70b40c7a1f7a017e8c4cc4d92f4f' + 'caabce8c7b66296b602316aa5af5d4c5' + '1c8b1b66ebafa4ff09ffc0106a9dc82c' + 'dae6c7d5ff0cce0fba5729fedf2a9051' + 'd0cc5eab5d3e0ec33dadd0392421f63e' + '5873a96aa149edda281730010fb4db34' + 'faa09e06a5dc41ee89ab1f8fa6886b63' + '520501daa66c0a94f2e9844ce4919a09' + '33a93f400c3e87bcd207295b7d7333ca') + +# MIGRATION NOTE: +# In 2012, support for courier-mta.conf.d and courier-mta.rc.d will be removed. +# Remove those files and this note and also courier-mta.install + +build() { + cd ${srcdir}/courier-${pkgver} + + # fix a tiny bug + sed -i -e \ + 's|--with-authchangepwdir=/var/tmp/dev/null|--with-authchangepwdir=$libexecdir/authlib|' \ + configure && chmod 755 configure + + LDFLAGS+="-L /usr/lib/courier-authlib -lcourierauth" + echo $LDFLAGS + # courier is more about configuring than compiling :-), lets start the mess + ./configure --prefix=/usr \ + --sysconfdir=/etc/courier \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ + --localstatedir=/var/spool/courier \ + --disable-root-check \ + --enable-unicode \ + --enable-workarounds-for-imap-client-bugs \ + --enable-mimetypes=/etc/mime.types \ + --with-piddir=/var/run/courier \ + --with-locking-method=lockf \ + --with-trashquota \ + --with-db=gdbm \ + --with-trashquota \ + --with-random=/dev/urandom --without-ispell \ + --with-mailuser=courier --with-mailgroup=courier \ + --with-certdb=/etc/ssl/certs/ + make +} + +package() { + cd ${srcdir}/courier-${pkgver} + + #chown mail.mail ${pkgdir}/var/spool/courier + make DESTDIR=${pkgdir} install + # docs say we can get rid of those after make + find ${pkgdir} -name '*\.a' -exec -rm -f {} \; + # install the perftest-script for testings + install -Dm755 courier/perftest1 ${pkgdir}/usr/lib/courier/perftest1 + ############################################################################### + # this is what usually "make install-configure" does + # *.dist files get rid of "dist" + for distfile in ${pkgdir}/etc/courier/*.dist; do + mv ${distfile} ${pkgdir}/etc/courier/$(basename ${distfile} .dist) + done + # install pam files according to the layout used in Archlinux + for pamfile in ${pkgdir}/etc/courier/*.authpam; do + sed -i 's|/lib/security/pam_pwdb\.so|pam_unix.so|' ${pamfile} + #echo "password required pam_unix.so" >> $pamfile + install -Dm 644 ${pamfile} \ + ${pkgdir}/etc/pam.d/$(basename ${pamfile} .authpam | sed "s/d$//") + rm -f ${pamfile} + done + + ############################################################################### + # Arch Linux specific tweaks to make things easier for the user + # create passwordfile for webadmin -> standard archwebadmin + sed -i 's|/etc/courier/webadmin/password|$(DESTDIR)/etc/courier/webadmin/password|g' Makefile + yes "archwebadmin" | make DESTDIR=${pkgdir} install-webadmin-password + # arch specific scripts + install -Dm 644 ${srcdir}/${pkgname}.conf.d ${pkgdir}/etc/conf.d/courier-mta + install -Dm 755 ${srcdir}/${pkgname}.rc.d ${pkgdir}/etc/rc.d/courier-mta + install -D -m 755 ${srcdir}/courier.rc.d ${pkgdir}/etc/rc.d/courier + install -D -m 755 ${srcdir}/imapd.rc.d ${pkgdir}/etc/rc.d/imapd + install -D -m 755 ${srcdir}/imapd-ssl.rc.d ${pkgdir}/etc/rc.d/imapd-ssl + install -D -m 755 ${srcdir}/pop3d.rc.d ${pkgdir}/etc/rc.d/pop3d + install -D -m 755 ${srcdir}/pop3d-ssl.rc.d ${pkgdir}/etc/rc.d/pop3d-ssl + install -D -m 755 ${srcdir}/esmtpd.rc.d ${pkgdir}/etc/rc.d/esmtpd + install -D -m 755 ${srcdir}/esmtpd-ssl.rc.d ${pkgdir}/etc/rc.d/esmtpd-ssl + install -D -m 755 ${srcdir}/esmtpd-msa.rc.d ${pkgdir}/etc/rc.d/esmtpd-msa + install -D -m 755 ${srcdir}/webmaild.rc.d ${pkgdir}/etc/rc.d/webmaild + #install -Dm 655 ${srcdir}/courier-webmail-cleancache.cron.hourly \ + # ${pkgdir}/etc/cron.hourly/courier-webmail-cleancache + # bug http://bugs.archlinux.org/task/5154 + find ${pkgdir}/usr/lib -name '*\.a' -exec rm -f {} \; + # fixing some permissions + chown -R courier:courier ${pkgdir}/usr/lib/courier/modules + rm -r ${pkgdir}/var/run + #chown -R courier:courier ${pkgdir}/var/run/courier + chown root:root ${pkgdir}/usr/{.,bin,lib,sbin,share} + # make a link to /usr/sbin/sendmail + install -dm 755 ${pkgdir}/usr/sbin + cd ${pkgdir}/usr/sbin + ln -s ../bin/sendmail ./sendmail +} diff --git a/community/courier-mta/courier-mta.conf.d b/community/courier-mta/courier-mta.conf.d new file mode 100644 index 000000000..5856a5cda --- /dev/null +++ b/community/courier-mta/courier-mta.conf.d @@ -0,0 +1,18 @@ +# +# Parameters to be passed to courier-imap +# +# +# Select the service you want started with courier-imap +# +# Available options : +# esmtpd imapd pop3d esmtpd-ssl imapd-ssl pop3d-ssl webmaild +# +CI_DAEMONS="courier esmtpd imapd pop3d" + +# If you want authdaemond to be automatically started and +# stopped by courier-imap, set this to "true" +AUTO_AUTHDAEMON="false" + +# Courier will start this many seconds after autodaemond if +# AUTO_AUTHDAEMON is set to "true" +AUTO_AUTHDAEMON_LAG=2 diff --git a/community/courier-mta/courier-mta.install b/community/courier-mta/courier-mta.install new file mode 100644 index 000000000..b0d827e43 --- /dev/null +++ b/community/courier-mta/courier-mta.install @@ -0,0 +1,61 @@ +# arg 1: the new package version +post_install() { + cat << EOM + --> if you are using LDAP services to provide lookup in sqwebmail or aliases + --> then you have to install: + libldap +EOM + # create the *.dat files + makealiases + makesmtpaccess +} + +pre_upgrade() { + pre_remove $1 +} + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + post_install $1 + echo "Please migrate to the new daemon format:" + echo "/etc/rc.d/courier-imap has been split into separate daemons:" + echo " imapd, imapd-ssl, pop3d, pop3d-ssl" + echo "This elimates the need for /etc/conf.d/courier-imap" + echo "Update your /etc/rc.conf and manually add the desired daemons. Make sure" + echo "you first start authdaemond before any other of these daemons." + echo "Example prior to this change:" + echo " DAEMONS=( ... courier-mta ...)" + echo "Example after this change:" + echo " DAEMONS=( ... authdaemond courier esmtpd esmtpd-ssl imapd imapd-ssl" + echo " pop3d pop3d-ssl webmaild ... )" + echo "This allows better control over the daemons and will generate" + echo "correct entries in /run/daemons" + echo "An old configuration will keep working but please do migrate in time" + echo "as support for this will be removed some time in 2012." +} + + +pre_remove() { + # manual backup, since courier is always processing the whole directory + # - so it would process "system" AND "system.pacsave" -> bad + [ ! -d /etc/courier/_backup ] && mkdir /etc/courier/_backup + cp /etc/courier/aliases/system /etc/courier/_backup/aliases.system + cp /etc/courier/smtpaccess/default /etc/courier/_backup/smtpaccess.default + cat << EOM + --> the /etc/courier/aliases/system and the /etc/courier/smtpaccess/default + --> files have been backed up to /etc/courier/_backup since the *.pacsave + --> files cannot stay in place. Read about couriers alias handling from the + --> documentation! +EOM +} + +# arg 1: the old package version +post_remove() { + /bin/true +} + +op=$1 +shift + +$op $* diff --git a/community/courier-mta/courier-mta.rc.d b/community/courier-mta/courier-mta.rc.d new file mode 100644 index 000000000..416946a5a --- /dev/null +++ b/community/courier-mta/courier-mta.rc.d @@ -0,0 +1,60 @@ +#!/bin/bash + +# source application-specific settings +[ -f /etc/conf.d/courier-mta ] && . /etc/conf.d/courier-mta +[ -z $AUTO_AUTHDAEMON_LAG ] && AUTO_AUTHDAEMON_LAG=2 +[ -z $AUTO_AUTHDAEMON ] && AUTO_AUTHDAEMON="false" + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + + [ -d /var/run/courier ] || mkdir -p /var/run/courier + chown courier:courier /var/run/courier + + if [ "$AUTO_AUTHDAEMON" == "true" ]; then + /etc/rc.d/authdaemond start + sleep ${AUTO_AUTHDAEMON_LAG} + fi + if ck_daemon authdaemond; then + echo "ERROR: authdaemond is not running" + stat_fail + exit 1 + fi + for daemon in $CI_DAEMONS; do + stat_busy "Starting Courier ${daemon}" + /usr/sbin/${daemon} start + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon $daemon + stat_done + fi + done + ;; + stop) + for daemon in $CI_DAEMONS; do + stat_busy "Stopping Courier ${daemon}" + /usr/sbin/${daemon} stop > /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon $daemon + stat_done + fi + done + if [ "$AUTO_AUTHDAEMON" == "true" ]; then + /etc/rc.d/authdaemond stop + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/community/courier-mta/courier-webmail-cleancache.cron.hourly b/community/courier-mta/courier-webmail-cleancache.cron.hourly new file mode 100644 index 000000000..6c541321e --- /dev/null +++ b/community/courier-mta/courier-webmail-cleancache.cron.hourly @@ -0,0 +1,6 @@ +#!/bin/sh + +# Cleans the cache of the sqwebmail server +if [ -x /usr/share/sqwebmail/cleancache.pl ]; then + su -c "/usr/share/sqwebmail/cleancache.pl" bin +fi diff --git a/community/courier-mta/courier.rc.d b/community/courier-mta/courier.rc.d new file mode 100644 index 000000000..7c581a24a --- /dev/null +++ b/community/courier-mta/courier.rc.d @@ -0,0 +1,45 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + + [ -d /var/run/courier ] || mkdir -p /var/run/courier + chown courier:courier /var/run/courier + + if ck_daemon authdaemond; then + echo "ERROR: authdaemond is not running" + stat_fail + exit 1 + fi + + stat_busy "Starting Courier daemon" + /usr/sbin/courier start + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon courier + stat_done + fi + ;; + stop) + stat_busy "Stopping Courier daemon" + /usr/sbin/courier stop > /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon courier + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/community/courier-mta/esmtpd-msa.rc.d b/community/courier-mta/esmtpd-msa.rc.d new file mode 100644 index 000000000..31458aca8 --- /dev/null +++ b/community/courier-mta/esmtpd-msa.rc.d @@ -0,0 +1,45 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + + [ -d /var/run/courier ] || mkdir -p /var/run/courier + chown courier:courier /var/run/courier + + if ck_daemon authdaemond; then + echo "ERROR: authdaemond is not running" + stat_fail + exit 1 + fi + + stat_busy "Starting Courier esmtpd-msa" + /usr/sbin/esmtpd-msa start + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon esmtpd-msa + stat_done + fi + ;; + stop) + stat_busy "Stopping Courier esmtpd-msa" + /usr/sbin/esmtpd-msa stop > /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon esmtpd-msa + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/community/courier-mta/esmtpd-ssl.rc.d b/community/courier-mta/esmtpd-ssl.rc.d new file mode 100644 index 000000000..2a13be03f --- /dev/null +++ b/community/courier-mta/esmtpd-ssl.rc.d @@ -0,0 +1,45 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + + [ -d /var/run/courier ] || mkdir -p /var/run/courier + chown courier:courier /var/run/courier + + if ck_daemon authdaemond; then + echo "ERROR: authdaemond is not running" + stat_fail + exit 1 + fi + + stat_busy "Starting Courier esmtpd-ssl" + /usr/sbin/esmtpd-ssl start + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon esmtpd-ssl + stat_done + fi + ;; + stop) + stat_busy "Stopping Courier esmtpd-ssl" + /usr/sbin/esmtpd-ssl stop > /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon esmtpd-ssl + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/community/courier-mta/esmtpd.rc.d b/community/courier-mta/esmtpd.rc.d new file mode 100644 index 000000000..dbaa9d680 --- /dev/null +++ b/community/courier-mta/esmtpd.rc.d @@ -0,0 +1,45 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + + [ -d /var/run/courier ] || mkdir -p /var/run/courier + chown courier:courier /var/run/courier + + if ck_daemon authdaemond; then + echo "ERROR: authdaemond is not running" + stat_fail + exit 1 + fi + + stat_busy "Starting Courier esmtpd" + /usr/sbin/esmtpd start + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon esmtpd + stat_done + fi + ;; + stop) + stat_busy "Stopping Courier esmtpd" + /usr/sbin/esmtpd stop > /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon esmtpd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/community/courier-mta/imapd-ssl.rc.d b/community/courier-mta/imapd-ssl.rc.d new file mode 100644 index 000000000..3dc74cfdf --- /dev/null +++ b/community/courier-mta/imapd-ssl.rc.d @@ -0,0 +1,45 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + + [ -d /var/run/courier ] || mkdir -p /var/run/courier + chown courier:courier /var/run/courier + + if ck_daemon authdaemond; then + echo "ERROR: authdaemond is not running" + stat_fail + exit 1 + fi + + stat_busy "Starting Courier imapd-ssl" + /usr/sbin/imapd-ssl start + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon imapd-ssl + stat_done + fi + ;; + stop) + stat_busy "Stopping Courier imapd-ssl" + /usr/sbin/imapd-ssl stop > /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon imapd-ssl + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/community/courier-mta/imapd.rc.d b/community/courier-mta/imapd.rc.d new file mode 100644 index 000000000..8bce59f6c --- /dev/null +++ b/community/courier-mta/imapd.rc.d @@ -0,0 +1,45 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + + [ -d /var/run/courier ] || mkdir -p /var/run/courier + chown courier:courier /var/run/courier + + if ck_daemon authdaemond; then + echo "ERROR: authdaemond is not running" + stat_fail + exit 1 + fi + + stat_busy "Starting Courier imapd" + /usr/sbin/imapd start + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon imapd + stat_done + fi + ;; + stop) + stat_busy "Stopping Courier imapd" + /usr/sbin/imapd stop > /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon imapd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/community/courier-mta/pop3d-ssl.rc.d b/community/courier-mta/pop3d-ssl.rc.d new file mode 100644 index 000000000..6e7ae4e12 --- /dev/null +++ b/community/courier-mta/pop3d-ssl.rc.d @@ -0,0 +1,45 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + + [ -d /var/run/courier ] || mkdir -p /var/run/courier + chown courier:courier /var/run/courier + + if ck_daemon authdaemond; then + echo "ERROR: authdaemond is not running" + stat_fail + exit 1 + fi + + stat_busy "Starting Courier pop3d-ssl" + /usr/sbin/pop3d-ssl start + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon pop3d-ssl + stat_done + fi + ;; + stop) + stat_busy "Stopping Courier pop3d-ssl" + /usr/sbin/pop3d-ssl stop > /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon pop3d-ssl + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/community/courier-mta/pop3d.rc.d b/community/courier-mta/pop3d.rc.d new file mode 100644 index 000000000..25f8379ba --- /dev/null +++ b/community/courier-mta/pop3d.rc.d @@ -0,0 +1,45 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + + [ -d /var/run/courier ] || mkdir -p /var/run/courier + chown courier:courier /var/run/courier + + if ck_daemon authdaemond; then + echo "ERROR: authdaemond is not running" + stat_fail + exit 1 + fi + + stat_busy "Starting Courier pop3d" + /usr/sbin/pop3d start + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon pop3d + stat_done + fi + ;; + stop) + stat_busy "Stopping Courier pop3d" + /usr/sbin/pop3d stop > /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon pop3d + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/community/courier-mta/webmaild.rc.d b/community/courier-mta/webmaild.rc.d new file mode 100644 index 000000000..835cc2bf0 --- /dev/null +++ b/community/courier-mta/webmaild.rc.d @@ -0,0 +1,45 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + + [ -d /var/run/courier ] || mkdir -p /var/run/courier + chown courier:courier /var/run/courier + + if ck_daemon authdaemond; then + echo "ERROR: authdaemond is not running" + stat_fail + exit 1 + fi + + stat_busy "Starting Courier webmaild" + /usr/sbin/webmaild start + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon webmaild + stat_done + fi + ;; + stop) + stat_busy "Stopping Courier webmaild" + /usr/sbin/webmaild stop > /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon webmaild + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0