summaryrefslogtreecommitdiff
path: root/staging/cyrus-sasl
diff options
context:
space:
mode:
Diffstat (limited to 'staging/cyrus-sasl')
-rw-r--r--staging/cyrus-sasl/PKGBUILD53
-rw-r--r--staging/cyrus-sasl/cyrus-sasl-2.1.23+db-5.0.patch24
-rw-r--r--staging/cyrus-sasl/cyrus-sasl-2.1.23-gcc4.patch21
-rw-r--r--staging/cyrus-sasl/saslauthd50
-rw-r--r--staging/cyrus-sasl/saslauthd.conf.d1
5 files changed, 149 insertions, 0 deletions
diff --git a/staging/cyrus-sasl/PKGBUILD b/staging/cyrus-sasl/PKGBUILD
new file mode 100644
index 000000000..6d42f9f75
--- /dev/null
+++ b/staging/cyrus-sasl/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 122168 2011-05-02 15:13:37Z stephane $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=cyrus-sasl
+pkgver=2.1.23
+pkgrel=5
+pkgdesc="SASL authentication daemon"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://asg.web.cmu.edu/cyrus/download/"
+depends=('pam>=1.0.1-2' 'krb5' 'libldap' 'cyrus-sasl-plugins' 'db>=5.0')
+replaces=(cyrus-sasl-mysql cyrus-sasl-pgsql)
+conflicts=(cyrus-sasl-mysql cyrus-sasl-pgsql)
+backup=(etc/conf.d/saslauthd)
+source=(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/${pkgname}-${pkgver}.tar.gz
+ saslauthd
+ saslauthd.conf.d
+ cyrus-sasl-2.1.23-gcc4.patch
+ cyrus-sasl-2.1.23+db-5.0.patch)
+md5sums=('2eb0e48106f0e9cd8001e654f267ecbc'
+ '697dfb51206c398bc976ce9f4cffe72d'
+ '96d8a2f6189501f8044838e04d5cae7f'
+ '3a71688df7d5724cd55a8de17d74f34e'
+ '35c189c8e93ad37e3ae3c49386fdeb2c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Fix building with db v5.x
+ patch -Np1 -i ../cyrus-sasl-2.1.23+db-5.0.patch
+
+ # Fix error: #elif with no expression
+ patch -Np1 -i ../cyrus-sasl-2.1.23-gcc4.patch
+
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --with-ldap=/usr --with-saslauthd=/var/run/saslauthd \
+ --disable-krb4 --with-gss_impl=mit --disable-otp
+ cd saslauthd
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/saslauthd"
+ make DESTDIR="${pkgdir}" install
+ make testsaslauthd
+ install -m755 testsaslauthd "${pkgdir}/usr/sbin"
+
+ install -dm766 "${pkgdir}/var/run/saslauthd"
+ install -Dm755 "${srcdir}/saslauthd" "${pkgdir}/etc/rc.d/saslauthd"
+ install -Dm644 "${srcdir}/saslauthd.conf.d" "${pkgdir}/etc/conf.d/saslauthd"
+
+ install -Dm644 ../COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl/COPYING"
+}
diff --git a/staging/cyrus-sasl/cyrus-sasl-2.1.23+db-5.0.patch b/staging/cyrus-sasl/cyrus-sasl-2.1.23+db-5.0.patch
new file mode 100644
index 000000000..62df3e67e
--- /dev/null
+++ b/staging/cyrus-sasl/cyrus-sasl-2.1.23+db-5.0.patch
@@ -0,0 +1,24 @@
+diff -Naur cyrus-sasl-2.1.23.ori/sasldb/db_berkeley.c cyrus-sasl-2.1.23/sasldb/db_berkeley.c
+--- cyrus-sasl-2.1.23.ori/sasldb/db_berkeley.c 2009-04-28 08:09:18.000000000 -0700
++++ cyrus-sasl-2.1.23/sasldb/db_berkeley.c 2011-05-02 07:16:42.748675977 -0700
+@@ -100,7 +100,7 @@
+ ret = db_create(mbdb, NULL, 0);
+ if (ret == 0 && *mbdb != NULL)
+ {
+-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
++#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR >= 5
+ ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, flags, 0660);
+ #else
+ ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, flags, 0660);
+diff -Naur cyrus-sasl-2.1.23.ori/utils/dbconverter-2.c cyrus-sasl-2.1.23/utils/dbconverter-2.c
+--- cyrus-sasl-2.1.23.ori/utils/dbconverter-2.c 2003-02-13 11:56:17.000000000 -0800
++++ cyrus-sasl-2.1.23/utils/dbconverter-2.c 2011-05-02 07:16:42.748675977 -0700
+@@ -214,7 +214,7 @@
+ ret = db_create(mbdb, NULL, 0);
+ if (ret == 0 && *mbdb != NULL)
+ {
+-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
++#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR >= 5
+ ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, DB_CREATE, 0664);
+ #else
+ ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, DB_CREATE, 0664);
diff --git a/staging/cyrus-sasl/cyrus-sasl-2.1.23-gcc4.patch b/staging/cyrus-sasl/cyrus-sasl-2.1.23-gcc4.patch
new file mode 100644
index 000000000..0d8627b1f
--- /dev/null
+++ b/staging/cyrus-sasl/cyrus-sasl-2.1.23-gcc4.patch
@@ -0,0 +1,21 @@
+diff -Naur cyrus-sasl-2.1.23.ori/plugins/digestmd5.c cyrus-sasl-2.1.23/plugins/digestmd5.c
+--- cyrus-sasl-2.1.23.ori/plugins/digestmd5.c 2009-04-28 08:09:17.000000000 -0700
++++ cyrus-sasl-2.1.23/plugins/digestmd5.c 2011-05-02 07:56:55.375403814 -0700
+@@ -2715,7 +2715,7 @@
+ "DIGEST-MD5", /* mech_name */
+ #ifdef WITH_RC4
+ 128, /* max_ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+ 112,
+ #else
+ 1,
+@@ -4034,7 +4034,7 @@
+ "DIGEST-MD5",
+ #ifdef WITH_RC4 /* mech_name */
+ 128, /* max ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+ 112,
+ #else
+ 1,
diff --git a/staging/cyrus-sasl/saslauthd b/staging/cyrus-sasl/saslauthd
new file mode 100644
index 000000000..c470c801c
--- /dev/null
+++ b/staging/cyrus-sasl/saslauthd
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/saslauthd ] && . /etc/conf.d/saslauthd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+DAEMON_NAME="saslauthd"
+SASLAUTHD_BIN=/usr/sbin/saslauthd
+SASLAUTHD_PID=`pidof -o %PPID $SASLAUTHD_BIN`
+
+case "$1" in
+ start)
+ stat_busy "Starting $DAEMON_NAME"
+ [ -z "$SASLAUTHD_PID" ] && $SASLAUTHD_BIN $SASLAUTHD_OPTS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo `pidof -o %PPID $SASLAUTHD_BIN` > /var/run/$DAEMON_NAME.pid
+ fi
+ add_daemon $DAEMON_NAME
+ stat_done
+ ;;
+
+ stop)
+ stat_busy "Stopping $DAEMON_NAME"
+ [ ! -z "$SASLAUTHD_PID" ] && kill $SASLAUTHD_PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm /var/run/$DAEMON_NAME.pid &> /dev/null
+ fi
+ rm_daemon $DAEMON_NAME
+ stat_done
+ ;;
+
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+# vim: ts=2 sw=2 et ft=sh
diff --git a/staging/cyrus-sasl/saslauthd.conf.d b/staging/cyrus-sasl/saslauthd.conf.d
new file mode 100644
index 000000000..b42b5d0b0
--- /dev/null
+++ b/staging/cyrus-sasl/saslauthd.conf.d
@@ -0,0 +1 @@
+SASLAUTHD_OPTS="-m /var/run/saslauthd -a pam"