summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-libs/cyrus-sasl/Manifest28
-rw-r--r--dev-libs/cyrus-sasl/cyrus-sasl-2.1.23-r4.ebuild254
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-0001_versioned_symbols.patch30
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-0002_testsuite.patch26
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-0006_library_mutexes.patch25
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-0008_one_time_sasl_set_alloc.patch67
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-0010_maintainer_mode.patch13
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-0011_saslauthd_ac_prog_libtool.patch12
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-0012_xopen_crypt_prototype.patch15
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-0014_avoid_pic_overwrite.patch27
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-0016_pid_file_lock_creation_mask.patch24
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-0026_drop_krb5support_dependency.patch38
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.17-pgsql-include.patch15
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.19-checkpw.c.patch172
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.21-keytab.patch39
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-as-needed.patch11
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-crypt.patch71
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-db4.patch15
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-gcc44.patch24
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-qa.patch22
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23+db-5.0.patch23
-rw-r--r--dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23-authd-fix.patch28
-rw-r--r--dev-libs/cyrus-sasl/files/java.README.gentoo39
-rw-r--r--dev-libs/cyrus-sasl/files/pwcheck.rc621
-rw-r--r--dev-libs/cyrus-sasl/files/saslauthd-2.1.21.conf25
-rw-r--r--dev-libs/cyrus-sasl/files/saslauthd.pam-include8
-rw-r--r--dev-libs/cyrus-sasl/files/saslauthd2.rc621
27 files changed, 1093 insertions, 0 deletions
diff --git a/dev-libs/cyrus-sasl/Manifest b/dev-libs/cyrus-sasl/Manifest
new file mode 100644
index 00000000..962ab7f7
--- /dev/null
+++ b/dev-libs/cyrus-sasl/Manifest
@@ -0,0 +1,28 @@
+AUX cyrus-sasl-0001_versioned_symbols.patch 914 RMD160 dc3a5ed8dccc445aeec2567899667b63ee8ed6d9 SHA1 7e37dc17c2faa8ab85f9df5613f43ddbd2371f79 SHA256 d64669070f4d19d884eaeb7d2b3b66987a714c2dda462bbbc4bcf452b705c3e0
+AUX cyrus-sasl-0002_testsuite.patch 1055 RMD160 6567c8af51b9e0f14b2bc6c1f187a464dcdea3bb SHA1 5c2719c1644e482a384e73b6fb8c1794d7d733b7 SHA256 d7fff57482c2a9b148296ec680327d0cbd5254ed0a0bc99f46e2dc73758a6abc
+AUX cyrus-sasl-0006_library_mutexes.patch 805 RMD160 7f040e7120085f9289992029f3194cce88a6dd3b SHA1 975763dac218e41fdad130b46bb2f9d11a4a0053 SHA256 c1b955a6e9873284d27a1df62cc8952d5dbca0ea729ba326aa6f8b4ed1a96c6e
+AUX cyrus-sasl-0008_one_time_sasl_set_alloc.patch 2067 RMD160 e36206ff84f29ec1dacce8af6e937a9d88727003 SHA1 24fd4281fab75dfda85f8e5a74006c74b9a647da SHA256 2489dbd2548fb19c75c511c3b1e86077b4dc9c9218c9d0513fdb37ff06c75dad
+AUX cyrus-sasl-0010_maintainer_mode.patch 340 RMD160 a496dd77ebd6529244ac225ac7204da17c9b3cf3 SHA1 635778d9ef67062f50636a005c2d02430be12c45 SHA256 dfe0cbaacbe8b6b50d14c9fcd62f0bb5e69ab942bbbfd9fbc5db96c724fadd47
+AUX cyrus-sasl-0011_saslauthd_ac_prog_libtool.patch 281 RMD160 d512f4ab2fe2ff4bfb2fdb625a66452849e03ec3 SHA1 67a5e849894bb0384cb014c8d26e5e95589020f3 SHA256 84458e986e1d83c4ed2c2797f367ae8a36cfe73dfc3b68a3b98e64588d9e1da2
+AUX cyrus-sasl-0012_xopen_crypt_prototype.patch 720 RMD160 64c6048959643fa35f5603567e584f202b28f87a SHA1 6e06a49e00f4e818f2a04a5a3e8e71a3677affff SHA256 1a6d1aa451c18a9ee61a1dc64a1e18a99935b3467f64a2f92e9bb70680039223
+AUX cyrus-sasl-0014_avoid_pic_overwrite.patch 1074 RMD160 612297d6e9a057413efe196aa72979af78ee7b97 SHA1 753ce0e08230efc659cdcfd0e9c55cd54be06402 SHA256 b78a3456c964116e8d121e5607b6ea3dd54d7a2696a10a18d41ff08b299ad982
+AUX cyrus-sasl-0016_pid_file_lock_creation_mask.patch 924 RMD160 df6b85598ec6ba33299c00d5a091409549549d9e SHA1 8debd6ce8d2b0362f7cc6092af9a0695fd7057bd SHA256 4d802c2027e3a537be50305b0648ccdcdef6c1515b07a3d5d7bef3fb8dfbf531
+AUX cyrus-sasl-0026_drop_krb5support_dependency.patch 1625 RMD160 ab33cbc5737fb50634c2e1ac20e1f33d820093d8 SHA1 d7df4985fd3e15c60178664e2479a4bff9283bb9 SHA256 e0bc73fb5a8858334ff49a2fbada79369867a7d5e90e6f9655c71d30a020656f
+AUX cyrus-sasl-2.1.17-pgsql-include.patch 588 RMD160 3291e3f65adafea6403bb7a83c0853c6dedab943 SHA1 11488c57e29ca99041a42f82fc492354829b822c SHA256 577b2431bb49ce8fcd9f5f864532e69e84fc6032c56fa564f9e95e25cfdfbc7e
+AUX cyrus-sasl-2.1.19-checkpw.c.patch 4657 RMD160 111af2b3295c073aae6fceda63df582d4292dd8d SHA1 f7f7d6ff73263db1d568b9ce557d4ffbf835a15a SHA256 5bdb8b3525429696a391d95c89faa553c3137c442f71479bc1aa430ee5255495
+AUX cyrus-sasl-2.1.21-keytab.patch 1460 RMD160 5ef293218caf06ce1dbf0d889031b99196ad6e25 SHA1 8bf838d5932b940f04595400b6015d05d843c770 SHA256 51f0098f1293981cbea57c7c8fdb0ba7622e9b26404fe1a92bdfcdbad1526269
+AUX cyrus-sasl-2.1.22-as-needed.patch 463 RMD160 190cfa32c54ad9417adaca7c6d0d75d771fee450 SHA1 438a7a8a3394bfefdb5280617e4f67deb7af1002 SHA256 bc26996cbafb59f4daf1d7acc077bae9a60e4746109a9ec4a580eaba5cb9ca78
+AUX cyrus-sasl-2.1.22-crypt.patch 2892 RMD160 ea119e119c19c89f009238c97c654d0de394b30e SHA1 353e7a1bba16d5a83bdea2577ae0d80e5d507702 SHA256 cad92b50aabbf2bcfdbd8169949a85a75c96e12ad43fcd4aaf89d6d7482210bf
+AUX cyrus-sasl-2.1.22-db4.patch 684 RMD160 8d9989f99b946314473ee3befbdcf66a410847cb SHA1 39a1fc5b652f0a35a144947933db0b7e3461785e SHA256 2d2459cd54edcd0f0fc85af6bd95a9c057599af5862f257dd2d01b5796bc02f0
+AUX cyrus-sasl-2.1.22-gcc44.patch 540 RMD160 42889604f03e88d88204e5ab27fe82f7b06786d2 SHA1 9a6df4fef0e388b70d4da5675f994c94262aa992 SHA256 d803266d96bb3b9f46bc2ce4ec280509d769bbf9c1a226e20c13803db398a113
+AUX cyrus-sasl-2.1.22-qa.patch 525 RMD160 9c8c5c1be5711b96f822e7192db8456a7b8eb1ae SHA1 17f07fb21a3ca01f8cf9c3ee7aa18632cf0dbb29 SHA256 56dbdc290871f3a42e507fe0be90431de15a832da7cf99bf3c21fb5aef05c8ac
+AUX cyrus-sasl-2.1.23+db-5.0.patch 1009 RMD160 35ecdbbc216f24982436fd0ff7d5c0701243424e SHA1 6d28d951106c7ece4133bb4785f68bbf968da686 SHA256 6570d4ff7668a7df47b457ebf38c232bcd9b7034db37d23effa5a18b735dc38e
+AUX cyrus-sasl-2.1.23-authd-fix.patch 829 RMD160 93161e6f36a3718bf92186a2d16967fa79ed4ad3 SHA1 7355bfc5ee53c69385ddd8da9710a17d4257bba3 SHA256 8732176e4a493b6b1548dc4799bf6866b9c324f5ecaafc9d9beffe0ac423d43d
+AUX java.README.gentoo 934 RMD160 53369bc85186e7be3e86a98d19a0a19ca4535c2b SHA1 8ddb577ffe968d4ff3cda27402ce21988c55519a SHA256 aeb733ab6371c1fe50e413e8469dcd11f0750b5afff489408c45f118857fc3fe
+AUX pwcheck.rc6 538 RMD160 acd0c14abc01390b6bf0944c2b35691e00f4c27f SHA1 ef9ebcf058536a0429211d8ed0d35aacb84a35cf SHA256 9e0d9ab2f0d0f7bccbcc194f6cbfe8ed67e94958465a18f3985f3819f5ed04e1
+AUX saslauthd-2.1.21.conf 926 RMD160 fab448738564cb27562a08363a9de84b1141bcc0 SHA1 3220aa01bc5aa3ed4163f3120790f581682fe2e3 SHA256 31e1676f845540dafa9c09799b110234a6362bcd056feaa1ae096e277c9d216e
+AUX saslauthd.pam-include 160 RMD160 643057c1c0e6fc859114b152dab1bf0e89c13c70 SHA1 4202ff7752fd39614211dfc099faace5509c632f SHA256 97166de49d227cf5ff305168ea75ca584feda9ab87d1eb1437638861986e70ba
+AUX saslauthd2.rc6 525 RMD160 b21261a0c3670d66314269775ec8ff06e9437d88 SHA1 1dfb2736a8a12181a1948870b1063577f6863b2d SHA256 329fb67382e307ab6d37aa789667b04a91ba3f69e9c1023b0902adafed065ee9
+DIST cyrus-sasl-2.1.23-ntlm_impl-spnego.patch.gz 7462 RMD160 5931936a5271241a85fe6c7bc0ae3ebba9bd4534 SHA1 0e4e843823301ac16dec18d089010b7b33d548af SHA256 9514a7436b11184cfd7e8a9ccd3590ce9f89cf2dc272ffbbdeeab16f9ae4fe6f
+DIST cyrus-sasl-2.1.23.tar.gz 1613642 RMD160 b2cd9734fa8b4bad82663517f019f9b92d9d3519 SHA1 5df33a6788d6cd8329b109eff777c6cfae1a21bd SHA256 20efcc4040cbab6e89a636a07dcf5720ee07b5c62359a4e7bf2500ef6020b136
+EBUILD cyrus-sasl-2.1.23-r4.ebuild 8926 RMD160 854034f8fe53d56cad9dcfbf39381a1673067eaf SHA1 11837413ea26815969f9bf1acaab0fc4f892f510 SHA256 0bbc7cf2033690592cdb92d1595793fd179c240061f76e2a36b8f2f79259d0c7
diff --git a/dev-libs/cyrus-sasl/cyrus-sasl-2.1.23-r4.ebuild b/dev-libs/cyrus-sasl/cyrus-sasl-2.1.23-r4.ebuild
new file mode 100644
index 00000000..ee56e88e
--- /dev/null
+++ b/dev-libs/cyrus-sasl/cyrus-sasl-2.1.23-r4.ebuild
@@ -0,0 +1,254 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/cyrus-sasl/cyrus-sasl-2.1.23-r4.ebuild,v 1.8 2011/07/24 17:53:44 armin76 Exp $
+
+EAPI=2
+
+inherit eutils flag-o-matic multilib autotools pam java-pkg-opt-2 db-use
+
+ntlm_patch="${P}-ntlm_impl-spnego.patch.gz"
+SASLAUTHD_CONF_VER="2.1.21"
+
+DESCRIPTION="The Cyrus SASL (Simple Authentication and Security Layer)."
+HOMEPAGE="http://asg.web.cmu.edu/sasl/"
+SRC_URI="ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/${P}.tar.gz
+ ntlm_unsupported_patch? ( mirror://gentoo/${ntlm_patch} )"
+
+LICENSE="as-is"
+SLOT="2"
+KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd"
+IUSE="authdaemond berkdb crypt gdbm kerberos openldap mysql ntlm_unsupported_patch pam postgres sample srp ssl static urandom"
+
+DEPEND="authdaemond? ( || ( >=net-mail/courier-imap-3.0.7 >=mail-mta/courier-0.46 ) )
+ berkdb? ( >=sys-libs/db-3.2 )
+ gdbm? ( >=sys-libs/gdbm-1.8.0 )
+ kerberos? ( virtual/krb5 )
+ openldap? ( >=net-nds/openldap-2.0.25 )
+ mysql? ( virtual/mysql )
+ ntlm_unsupported_patch? ( >=net-fs/samba-3.0.9 )
+ pam? ( virtual/pam )
+ postgres? ( dev-db/postgresql-base )
+ ssl? ( >=dev-libs/openssl-0.9.6d )
+ java? ( >=virtual/jdk-1.4 )"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ if use gdbm && use berkdb ; then
+ echo
+ elog "You have both 'gdbm' and 'berkdb' USE flags enabled."
+ elog "gdbm will be selected."
+ echo
+ fi
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ # Fix default port name for rimap auth mechanism.
+ sed -e '/define DEFAULT_REMOTE_SERVICE/s:imap:imap2:' \
+ -i saslauthd/auth_rimap.c || die "sed failed"
+
+ # UNSUPPORTED ntlm patch #81342
+ use ntlm_unsupported_patch && epatch "${DISTDIR}/${ntlm_patch}"
+ epatch "${FILESDIR}"/${PN}-2.1.17-pgsql-include.patch
+ use crypt && epatch "${FILESDIR}"/${PN}-2.1.19-checkpw.c.patch #45181
+ epatch "${FILESDIR}"/${PN}-2.1.22-as-needed.patch
+ epatch "${FILESDIR}/${PN}-2.1.21-keytab.patch"
+ epatch "${FILESDIR}"/${PN}-2.1.22-crypt.patch #152544
+ epatch "${FILESDIR}"/${PN}-2.1.22-qa.patch
+ epatch "${FILESDIR}/${PN}-2.1.22-gcc44.patch" #248738
+ epatch "${FILESDIR}"/${P}-authd-fix.patch
+ epatch "${FILESDIR}"/${P}+db-5.0.patch
+ epatch "${FILESDIR}/${PN}-0001_versioned_symbols.patch"
+ epatch "${FILESDIR}/${PN}-0002_testsuite.patch"
+ epatch "${FILESDIR}/${PN}-0006_library_mutexes.patch"
+ epatch "${FILESDIR}/${PN}-0008_one_time_sasl_set_alloc.patch"
+ epatch "${FILESDIR}/${PN}-0010_maintainer_mode.patch"
+ epatch "${FILESDIR}/${PN}-0011_saslauthd_ac_prog_libtool.patch"
+ epatch "${FILESDIR}/${PN}-0012_xopen_crypt_prototype.patch"
+ epatch "${FILESDIR}/${PN}-0014_avoid_pic_overwrite.patch"
+ epatch "${FILESDIR}/${PN}-0016_pid_file_lock_creation_mask.patch"
+ epatch "${FILESDIR}/${PN}-0026_drop_krb5support_dependency.patch"
+
+ sed -i -e '/for dbname in/s:db-4.* db:'$(db_libname)':' \
+ "${S}"/cmulocal/berkdb.m4
+
+ # Upstream doesn't even honor their own configure options... grumble
+ sed -i '/^sasldir =/s:=.*:= $(plugindir):' \
+ "${S}"/plugins/Makefile.{am,in} || die "sed failed"
+
+ # make sure to use common plugin ldflags
+ sed -i '/_la_LDFLAGS = /s:=:= $(AM_LDFLAGS) :' plugins/Makefile.am || die
+
+ # Recreate configure.
+ rm -f "${S}/config/libtool.m4" || die "rm libtool.m4 failed"
+ AT_M4DIR="${S}/cmulocal ${S}/config" eautoreconf
+}
+
+src_configure() {
+ # Fix QA issues.
+ append-flags -fno-strict-aliasing
+ append-cppflags -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE -DLDAP_DEPRECATED
+
+ # Java support.
+ use java && export JAVAC="${JAVAC} ${JAVACFLAGS}"
+
+ local myconf
+
+ # Add authdaemond support (bug #56523).
+ if use authdaemond ; then
+ myconf="${myconf} --with-authdaemond=/var/lib/courier/authdaemon/socket"
+ fi
+
+ # Fix for bug #59634.
+ if ! use ssl ; then
+ myconf="${myconf} --without-des"
+ fi
+
+ if use mysql || use postgres ; then
+ myconf="${myconf} --enable-sql"
+ else
+ myconf="${myconf} --disable-sql"
+ fi
+
+ # Default to GDBM if both 'gdbm' and 'berkdb' are present.
+ if use gdbm ; then
+ einfo "Building with GNU DB as database backend for your SASLdb"
+ myconf="${myconf} --with-dblib=gdbm"
+ elif use berkdb ; then
+ einfo "Building with BerkeleyDB as database backend for your SASLdb"
+ myconf="${myconf} --with-dblib=berkeley --with-bdb-incdir=$(db_includedir)"
+ else
+ einfo "Building without SASLdb support"
+ myconf="${myconf} --with-dblib=none"
+ fi
+
+ # Use /dev/urandom instead of /dev/random (bug #46038).
+ use urandom && myconf="${myconf} --with-devrandom=/dev/urandom"
+
+ econf \
+ --enable-login \
+ --enable-ntlm \
+ --enable-auth-sasldb \
+ --disable-krb4 \
+ --disable-otp \
+ --without-sqlite \
+ --with-saslauthd=/var/lib/sasl2 \
+ --with-pwcheck=/var/lib/sasl2 \
+ --with-configdir=/etc/sasl2 \
+ --with-plugindir=/usr/$(get_libdir)/sasl2 \
+ --with-dbpath=/etc/sasl2/sasldb2 \
+ $(use_with ssl openssl) \
+ $(use_with pam) \
+ $(use_with openldap ldap) \
+ $(use_enable openldap ldapdb) \
+ $(use_enable sample) \
+ $(use_enable kerberos gssapi) \
+ $(use_enable java) \
+ $(use_with java javahome ${JAVA_HOME}) \
+ $(use_with mysql) \
+ $(use_with postgres pgsql) \
+ $(use_enable srp) \
+ $(use_enable static) \
+ ${myconf}
+}
+
+src_compile() {
+ use static \
+ && { emake -C lib db_none.o || die "emake db_none.o failed" ; }
+
+ # We force -j1 for bug #110066.
+ emake -j1 || die "emake failed"
+
+ # Default location for java classes breaks OpenOffice (bug #60769).
+ # Thanks to axxo@gentoo.org for the solution.
+ cd "${S}"
+ if use java ; then
+ jar -cvf ${PN}.jar -C java $(find java -name "*.class")
+ fi
+
+ # Add testsaslauthd (bug #58768).
+ cd "${S}/saslauthd"
+ emake testsaslauthd || die "emake testsaslauthd failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+ keepdir /var/lib/sasl2 /etc/sasl2
+
+ # Install everything necessary so users can build sample
+ # client/server (bug #64733).
+ if use sample ; then
+ insinto /usr/share/${PN}-2/examples
+ doins aclocal.m4 config.h config.status configure.in
+ dosym /usr/include/sasl /usr/share/${PN}-2/examples/include
+ exeinto /usr/share/${PN}-2/examples
+ doexe libtool
+ insinto /usr/share/${PN}-2/examples/sample
+ doins sample/*.{c,h} sample/*Makefile*
+ insinto /usr/share/${PN}-2/examples/sample/.deps
+ doins sample/.deps/*
+ dodir /usr/share/${PN}-2/examples/lib
+ dosym /usr/$(get_libdir)/libsasl2.la /usr/share/${PN}-2/examples/lib/libsasl2.la
+ dodir /usr/share/${PN}-2/examples/lib/.libs
+ dosym /usr/$(get_libdir)/libsasl2.so /usr/share/${PN}-2/examples/lib/.libs/libsasl2.so
+ fi
+
+ # Default location for java classes breaks OpenOffice (bug #60769).
+ if use java ; then
+ java-pkg_dojar ${PN}.jar
+ java-pkg_regso "${D}/usr/$(get_libdir)/libjavasasl.so"
+ # hackish, don't wanna dig through makefile
+ rm -Rf "${D}/usr/$(get_libdir)/java"
+ docinto "java"
+ dodoc "${S}/java/README" "${FILESDIR}/java.README.gentoo" "${S}"/java/doc/*
+ dodir "/usr/share/doc/${PF}/java/Test"
+ insinto "/usr/share/doc/${PF}/java/Test"
+ doins "${S}"/java/Test/*.java || die "Failed to copy java files to /usr/share/doc/${PF}/java/Test"
+ fi
+
+ docinto ""
+ dodoc AUTHORS ChangeLog NEWS README doc/TODO doc/*.txt
+ newdoc pwcheck/README README.pwcheck
+ dohtml doc/*.html
+
+ docinto "saslauthd"
+ dodoc saslauthd/{AUTHORS,ChangeLog,LDAP_SASLAUTHD,NEWS,README}
+
+ newpamd "${FILESDIR}/saslauthd.pam-include" saslauthd || die "Failed to install saslauthd to /etc/pam.d"
+
+ newinitd "${FILESDIR}/pwcheck.rc6" pwcheck || die "Failed to install pwcheck to /etc/init.d"
+
+ newinitd "${FILESDIR}/saslauthd2.rc6" saslauthd || die "Failed to install saslauthd to /etc/init.d"
+ newconfd "${FILESDIR}/saslauthd-${SASLAUTHD_CONF_VER}.conf" saslauthd || die "Failed to install saslauthd to /etc/conf.d"
+
+ exeinto /usr/sbin
+ newexe "${S}/saslauthd/testsaslauthd" testsaslauthd || die "Failed to install testsaslauthd"
+}
+
+pkg_postinst () {
+ # Generate an empty sasldb2 with correct permissions.
+ if ( use berkdb || use gdbm ) && [[ ! -f "${ROOT}/etc/sasl2/sasldb2" ]] ; then
+ einfo "Generating an empty sasldb2 with correct permissions ..."
+ echo "p" | "${ROOT}/usr/sbin/saslpasswd2" -f "${ROOT}/etc/sasl2/sasldb2" -p login \
+ || die "Failed to generate sasldb2"
+ "${ROOT}/usr/sbin/saslpasswd2" -f "${ROOT}/etc/sasl2/sasldb2" -d login \
+ || die "Failed to delete temp user"
+ chown root:mail "${ROOT}/etc/sasl2/sasldb2" \
+ || die "Failed to chown ${ROOT}/etc/sasl2/sasldb2"
+ chmod 0640 "${ROOT}/etc/sasl2/sasldb2" \
+ || die "Failed to chmod ${ROOT}/etc/sasl2/sasldb2"
+ fi
+
+ if use sample ; then
+ elog "You have chosen to install sources for the example client and server."
+ elog "To build these, please type:"
+ elog "\tcd /usr/share/${PN}-2/examples/sample && make"
+ fi
+
+ if use authdaemond ; then
+ elog "You need to add a user running a service using Courier's"
+ elog "authdaemon to the 'mail' group. For example, do:"
+ elog " gpasswd -a postfix mail"
+ elog "to add the 'postfix' user to the 'mail' group."
+ fi
+}
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0001_versioned_symbols.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0001_versioned_symbols.patch
new file mode 100644
index 00000000..312afc8f
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0001_versioned_symbols.patch
@@ -0,0 +1,30 @@
+Author: Fabian Fagerholm <fabbe@debian.org>
+
+ Use versioned symbols for libsasl2.
+
+diff --git a/lib/Makefile.am b/lib/Makefile.am
+index e09fe6e..e74c507 100644
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -61,8 +61,8 @@ LIB_DOOR= @LIB_DOOR@
+ lib_LTLIBRARIES = libsasl2.la
+
+ libsasl2_la_SOURCES = $(common_sources) $(common_headers)
+-libsasl2_la_LDFLAGS = -version-info $(sasl_version)
+-libsasl2_la_DEPENDENCIES = $(LTLIBOBJS)
++libsasl2_la_LDFLAGS = -version-info $(sasl_version) -Wl,--version-script=$(top_srcdir)/Versions
++libsasl2_la_DEPENDENCIES = $(LTLIBOBJS) $(top_srcdir)/Versions
+ libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) $(LIB_CRYPT)
+
+ if MACOSX
+new file mode 100644
+index 0000000..ff7190d
+--- /dev/null
++++ b/Versions
+@@ -0,0 +1,6 @@
++SASL2 {
++ global:
++ sasl_*; prop_*; auxprop_plugin_info; _sasl_MD5*;
++};
++
++HIDDEN { local: __*; _rest*; _save*; *; };
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0002_testsuite.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0002_testsuite.patch
new file mode 100644
index 00000000..c5509279
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0002_testsuite.patch
@@ -0,0 +1,26 @@
+Author: Fabian Fagerholm <fabbe@debian.org>
+Description: Rename the testsuite program to sasltestsuite and use /etc/sasldb2
+instead of ./sasldb as default path for the sasldb database file.
+--- trunk.orig/utils/testsuite.c
++++ trunk/utils/testsuite.c
+@@ -464,9 +464,9 @@
+ *len = (unsigned) strlen("sasldb");
+ return SASL_OK;
+ } else if (!strcmp(option, "sasldb_path")) {
+- *result = "./sasldb";
++ *result = "/etc/sasldb2";
+ if (len)
+- *len = (unsigned) strlen("./sasldb");
++ *len = (unsigned) strlen("/etc/sasldb2");
+ return SASL_OK;
+ } else if (!strcmp(option, "canon_user_plugin")) {
+ *result = cu_plugin;
+@@ -2925,7 +2925,7 @@
+ void usage(void)
+ {
+ printf("Usage:\n" \
+- " testsuite [-g name] [-s seed] [-r tests] -a -M\n" \
++ " sasltestsuite [-g name] [-s seed] [-r tests] -a -M\n" \
+ " g -- gssapi service name to use (default: host)\n" \
+ " r -- # of random tests to do (default: 25)\n" \
+ " a -- do all corruption tests (and ignores random ones unless -r specified)\n" \
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0006_library_mutexes.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0006_library_mutexes.patch
new file mode 100644
index 00000000..539bc067
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0006_library_mutexes.patch
@@ -0,0 +1,25 @@
+Author: Fabian Fagerholm <fabbe@debian.org>
+Description: Exact description unknown; make sure mutex-related code works.
+--- trunk.orig/lib/common.c
++++ trunk/lib/common.c
+@@ -771,7 +771,7 @@
+ result = sasl_canonuser_add_plugin("INTERNAL", internal_canonuser_init);
+ if(result != SASL_OK) return result;
+
+- if (!free_mutex)
++ if (!free_mutex || free_mutex == 0x1)
+ free_mutex = sasl_MUTEX_ALLOC();
+ if (!free_mutex) return SASL_FAIL;
+
+@@ -790,6 +790,11 @@
+
+ /* serialize disposes. this is necessary because we can't
+ dispose of conn->mutex if someone else is locked on it */
++
++ if (!free_mutex || free_mutex == 0x1)
++ free_mutex = sasl_MUTEX_ALLOC();
++ if (!free_mutex) return SASL_FAIL;
++
+ result = sasl_MUTEX_LOCK(free_mutex);
+ if (result!=SASL_OK) return;
+
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0008_one_time_sasl_set_alloc.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0008_one_time_sasl_set_alloc.patch
new file mode 100644
index 00000000..e252bab5
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0008_one_time_sasl_set_alloc.patch
@@ -0,0 +1,67 @@
+Author: Fabian Fagerholm <fabbe@debian.org>
+Description: Make sasl_set_alloc a one-time function.
+This patch will divert all allocations to whomever called
+sasl_set_alloc first, hopefully that will be the application. If
+not, we sure *hope* the library doing stupid things has sane
+sasl_set_alloc semantics...
+It will also deny any futher tries to sasl_set_alloc after one
+of the _init functions are called.
+This patch was introduced and works fine in SASL 1.5, and no
+applications started behaving in insane ways, so chances are it
+will also work with SASL 2.1
+Reference: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=139568
+Reference: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=274087
+Reference: https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=2525
+--- trunk.orig/lib/client.c
++++ trunk/lib/client.c
+@@ -202,6 +202,9 @@
+ { NULL, NULL }
+ };
+
++ /* lock allocation type */
++ _sasl_allocation_locked++;
++
+ if(_sasl_client_active) {
+ /* We're already active, just increase our refcount */
+ /* xxx do something with the callback structure? */
+--- trunk.orig/lib/common.c
++++ trunk/lib/common.c
+@@ -107,6 +107,7 @@
+ (sasl_realloc_t *) &realloc,
+ (sasl_free_t *) &free
+ };
++int _sasl_allocation_locked = 0;
+
+ #define SASL_ENCODEV_EXTRA 4096
+
+@@ -637,6 +638,8 @@
+ sasl_realloc_t *r,
+ sasl_free_t *f)
+ {
++ if (_sasl_allocation_locked++) return;
++
+ _sasl_allocation_utils.malloc=m;
+ _sasl_allocation_utils.calloc=c;
+ _sasl_allocation_utils.realloc=r;
+--- trunk.orig/lib/saslint.h
++++ trunk/lib/saslint.h
+@@ -300,6 +300,7 @@
+
+ extern sasl_allocation_utils_t _sasl_allocation_utils;
+ extern sasl_mutex_utils_t _sasl_mutex_utils;
++extern int _sasl_allocation_locked;
+
+ /*
+ * checkpw.c
+--- trunk.orig/lib/server.c
++++ trunk/lib/server.c
+@@ -698,6 +698,9 @@
+ { NULL, NULL }
+ };
+
++ /* lock allocation type */
++ _sasl_allocation_locked++;
++
+ /* we require the appname (if present) to be short enough to be a path */
+ if (appname != NULL && strlen(appname) >= PATH_MAX)
+ return SASL_BADPARAM;
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0010_maintainer_mode.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0010_maintainer_mode.patch
new file mode 100644
index 00000000..14d44564
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0010_maintainer_mode.patch
@@ -0,0 +1,13 @@
+Author: Fabian Fagerholm <fabbe@debian.org>
+Description: Enable maintainer mode to avoid auto* problems.
+--- trunk.orig/configure.in
++++ trunk/configure.in
+@@ -62,6 +62,8 @@
+ AM_INIT_AUTOMAKE(cyrus-sasl, 2.1.23)
+ CMU_INIT_AUTOMAKE
+
++AM_MAINTAINER_MODE
++
+ # and include our config dir scripts
+ ACLOCAL="$ACLOCAL -I \$(top_srcdir)/config"
+
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0011_saslauthd_ac_prog_libtool.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0011_saslauthd_ac_prog_libtool.patch
new file mode 100644
index 00000000..e9b92a40
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0011_saslauthd_ac_prog_libtool.patch
@@ -0,0 +1,12 @@
+Author: Fabian Fagerholm <fabbe@debian.org>
+Description: Enable libtool use.
+--- trunk.orig/saslauthd/configure.in
++++ trunk/saslauthd/configure.in
+@@ -25,6 +25,7 @@
+ AC_PROG_MAKE_SET
+ AC_PROG_LN_S
+ AC_PROG_INSTALL
++AC_PROG_LIBTOOL
+
+ dnl Checks for build foo
+ CMU_C___ATTRIBUTE__
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0012_xopen_crypt_prototype.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0012_xopen_crypt_prototype.patch
new file mode 100644
index 00000000..d9daad7d
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0012_xopen_crypt_prototype.patch
@@ -0,0 +1,15 @@
+Author: Dann Frazier <dannf@debian.org>
+Description: When _XOPEN_SOURCE is defined, the subsequent #include <unistd.h>
+will define a correct function prototype for the crypt function. This avoids
+segfaults on architectures where the size of a pointer is greater than the size
+of an integer (ia64 and amd64 are examples). This may be detected by looking
+for build log lines such as the following:
+auth_shadow.c:183: warning: implicit declaration of function ‘crypt’
+auth_shadow.c:183: warning: cast to pointer from integer of different size
+--- trunk.orig/saslauthd/auth_shadow.c
++++ trunk/saslauthd/auth_shadow.c
+@@ -1,3 +1,4 @@
++#define _XOPEN_SOURCE
+ #define PWBUFSZ 256 /***SWB***/
+
+ /* MODULE: auth_shadow */
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0014_avoid_pic_overwrite.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0014_avoid_pic_overwrite.patch
new file mode 100644
index 00000000..ffc69b77
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0014_avoid_pic_overwrite.patch
@@ -0,0 +1,27 @@
+Author: Fabian Fagerholm <fabbe@debian.org>
+Description: This patch makes sure the non-PIC version of libsasldb.a, which
+is created out of non-PIC objects, is not going to overwrite the PIC version,
+which is created out of PIC objects. The PIC version is placed in .libs, and
+the non-PIC version in the current directory. This ensures that both non-PIC
+and PIC versions are available in the correct locations.
+--- trunk.orig/lib/Makefile.am
++++ trunk/lib/Makefile.am
+@@ -76,7 +76,7 @@
+
+ libsasl2.a: libsasl2.la $(SASL_STATIC_OBJS)
+ @echo adding static plugins and dependencies
+- $(AR) cru .libs/$@ $(SASL_STATIC_OBJS)
++ $(AR) cru $@ $(SASL_STATIC_OBJS)
+ @for i in ./libsasl2.la ../sasldb/libsasldb.la ../plugins/lib*.la; do \
+ if test ! -f $$i; then continue; fi; . $$i; \
+ for j in $$dependency_libs foo; do \
+--- trunk.orig/sasldb/Makefile.am
++++ trunk/sasldb/Makefile.am
+@@ -63,6 +63,6 @@
+ EXTRA_libsasldb_a_SOURCES =
+
+ libsasldb.a: libsasldb.la $(SASL_DB_BACKEND_STATIC)
+- $(AR) cru .libs/$@ $(SASL_DB_BACKEND_STATIC)
++ $(AR) cru $@ $(SASL_DB_BACKEND_STATIC)
+
+
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0016_pid_file_lock_creation_mask.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0016_pid_file_lock_creation_mask.patch
new file mode 100644
index 00000000..a80ca063
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0016_pid_file_lock_creation_mask.patch
@@ -0,0 +1,24 @@
+Author: Sam Hocevar <sam@zoy.org>
+Description: pid_file_lock is created with a mask of 644 instead of 0644. This
+patch fixes this octal/decimal confusion as well as the (harmless) one in the
+previous umask() call.
+--- trunk.orig/saslauthd/saslauthd-main.c
++++ trunk/saslauthd/saslauthd-main.c
+@@ -276,7 +276,7 @@
+ exit(1);
+ }
+
+- umask(077);
++ umask(0077);
+
+ pid_file_size = strlen(run_path) + sizeof(PID_FILE_LOCK) + 1;
+ if ((pid_file_lock = malloc(pid_file_size)) == NULL) {
+@@ -287,7 +287,7 @@
+ strlcpy(pid_file_lock, run_path, pid_file_size);
+ strlcat(pid_file_lock, PID_FILE_LOCK, pid_file_size);
+
+- if ((pid_file_lock_fd = open(pid_file_lock, O_CREAT|O_TRUNC|O_RDWR, 644)) < 0) {
++ if ((pid_file_lock_fd = open(pid_file_lock, O_CREAT|O_TRUNC|O_RDWR, 0644)) < 0) {
+ rc = errno;
+ logger(L_ERR, L_FUNC, "could not open pid lock file: %s", pid_file_lock);
+ logger(L_ERR, L_FUNC, "open: %s", strerror(rc));
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-0026_drop_krb5support_dependency.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-0026_drop_krb5support_dependency.patch
new file mode 100644
index 00000000..4df6a5ab
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-0026_drop_krb5support_dependency.patch
@@ -0,0 +1,38 @@
+Author: Roberto C. Sanchez <roberto@connexer.com>
+Description: Drop gratuitous dependency on krb5support
+--- trunk.orig/aclocal.m4
++++ trunk/aclocal.m4
+@@ -2924,9 +2924,6 @@
+ fi
+
+ if test "$gss_impl" = "auto" -o "$gss_impl" = "mit"; then
+- # check for libkrb5support first
+- AC_CHECK_LIB(krb5support,krb5int_getspecific,K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a,,${LIB_SOCKET})
+-
+ gss_failed=0
+ AC_CHECK_LIB(gssapi_krb5,gss_unwrap,gss_impl="mit",gss_failed=1,
+ ${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${K5SUP} ${LIB_SOCKET})
+--- trunk.orig/cmulocal/sasl2.m4
++++ trunk/cmulocal/sasl2.m4
+@@ -110,9 +110,6 @@
+ fi
+
+ if test "$gss_impl" = "auto" -o "$gss_impl" = "mit"; then
+- # check for libkrb5support first
+- AC_CHECK_LIB(krb5support,krb5int_getspecific,K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a,,${LIB_SOCKET})
+-
+ gss_failed=0
+ AC_CHECK_LIB(gssapi_krb5,gss_unwrap,gss_impl="mit",gss_failed=1,
+ ${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${K5SUP} ${LIB_SOCKET})
+--- trunk.orig/saslauthd/aclocal.m4
++++ trunk/saslauthd/aclocal.m4
+@@ -1333,9 +1333,6 @@
+ fi
+
+ if test "$gss_impl" = "auto" -o "$gss_impl" = "mit"; then
+- # check for libkrb5support first
+- AC_CHECK_LIB(krb5support,krb5int_getspecific,K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a,,${LIB_SOCKET})
+-
+ gss_failed=0
+ AC_CHECK_LIB(gssapi_krb5,gss_unwrap,gss_impl="mit",gss_failed=1,
+ ${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${K5SUP} ${LIB_SOCKET})
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.17-pgsql-include.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.17-pgsql-include.patch
new file mode 100644
index 00000000..0ee7236d
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.17-pgsql-include.patch
@@ -0,0 +1,15 @@
+Fix include path for newer PostgreSQL versions
+
+--- configure.in
++++ configure.in
+@@ -674,7 +674,9 @@
+ LIB_PGSQL_DIR=$LIB_PGSQL
+ LIB_PGSQL="$LIB_PGSQL -lpq"
+
+- if test -d ${with_pgsql}/include/pgsql; then
++ if test -d ${with_pgsql}/include/postgresql/pgsql; then
++ CPPFLAGS="${CPPFLAGS} -I${with_pgsql}/include/postgresql/pgsql"
++ elif test -d ${with_pgsql}/include/pgsql; then
+ CPPFLAGS="${CPPFLAGS} -I${with_pgsql}/include/pgsql"
+ elif test -d ${with_pgsql}/pgsql/include; then
+ CPPFLAGS="${CPPFLAGS} -I${with_pgsql}/pgsql/include"
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.19-checkpw.c.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.19-checkpw.c.patch
new file mode 100644
index 00000000..1779baba
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.19-checkpw.c.patch
@@ -0,0 +1,172 @@
+Support for crypted passwords
+
+http://bugs.gentoo.org/45181
+
+--- cyrus-sasl-2.1.19/lib/Makefile.in
++++ cyrus-sasl-2.1.19/lib/Makefile.in
+@@ -120,7 +120,7 @@
+ JAVA_TRUE = @JAVA_TRUE@
+ LDFLAGS = @LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
++LIBS = -lcrypt @LIBS@
+ LIBTOOL = @LIBTOOL@
+ LIB_CRYPT = @LIB_CRYPT@
+ LIB_DES = @LIB_DES@
+--- cyrus-sasl-2.1.19/lib/checkpw.c
++++ cyrus-sasl-2.1.19/lib/checkpw.c
+@@ -94,6 +94,23 @@
+ # endif
+ #endif
+
++/******************************
++ * crypt(3) patch start *
++ ******************************/
++char *crypt(const char *key, const char *salt);
++
++/* cleartext password formats */
++#define PASSWORD_FORMAT_CLEARTEXT 1
++#define PASSWORD_FORMAT_CRYPT 2
++#define PASSWORD_FORMAT_CRYPTTRAD 3
++#define PASSWORD_SALT_BUF_LEN 22
++
++/* weeds out crypt(3) password's salt */
++int _sasl_get_salt (char *dest, char *src, int format);
++
++/******************************
++ * crypt(3) patch stop *
++ ******************************/
+
+ /* we store the following secret to check plaintext passwords:
+ *
+@@ -143,7 +160,51 @@
+ "*cmusaslsecretPLAIN",
+ NULL };
+ struct propval auxprop_values[3];
+-
++
++ /******************************
++ * crypt(3) patch start *
++ * for password format check *
++ ******************************/
++ sasl_getopt_t *getopt;
++ void *context;
++ const char *p = NULL;
++ /**
++ * MD5: 12 char salt
++ * BLOWFISH: 16 char salt
++ */
++ char salt[PASSWORD_SALT_BUF_LEN];
++ int password_format;
++
++ /* get password format from auxprop configuration */
++ if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context) == SASL_OK) {
++ getopt(context, NULL, "password_format", &p, NULL);
++ }
++
++ /* set password format */
++ if (p) {
++ /*
++ memset(pass_format_str, '\0', PASSWORD_FORMAT_STR_LEN);
++ strncpy(pass_format_str, p, (PASSWORD_FORMAT_STR_LEN - 1));
++ */
++ /* modern, modular crypt(3) */
++ if (strncmp(p, "crypt", 11) == 0)
++ password_format = PASSWORD_FORMAT_CRYPT;
++ /* traditional crypt(3) */
++ else if (strncmp(p, "crypt_trad", 11) == 0)
++ password_format = PASSWORD_FORMAT_CRYPTTRAD;
++ /* cleartext password */
++ else
++ password_format = PASSWORD_FORMAT_CLEARTEXT;
++ } else {
++ /* cleartext password */
++ password_format = PASSWORD_FORMAT_CLEARTEXT;
++ }
++
++ /******************************
++ * crypt(3) patch stop *
++ * for password format check *
++ ******************************/
++
+ if (!conn || !userstr)
+ return SASL_BADPARAM;
+
+@@ -180,14 +241,31 @@
+ goto done;
+ }
+
+- /* At the point this has been called, the username has been canonified
+- * and we've done the auxprop lookup. This should be easy. */
+- if(auxprop_values[0].name
+- && auxprop_values[0].values
+- && auxprop_values[0].values[0]
+- && !strcmp(auxprop_values[0].values[0], passwd)) {
+- /* We have a plaintext version and it matched! */
+- return SASL_OK;
++
++ /******************************
++ * crypt(3) patch start *
++ ******************************/
++
++ /* get salt */
++ _sasl_get_salt(salt, (char *) auxprop_values[0].values[0], password_format);
++
++ /* crypt(3)-ed password? */
++ if (password_format != PASSWORD_FORMAT_CLEARTEXT) {
++ /* compare password */
++ if (auxprop_values[0].name && auxprop_values[0].values && auxprop_values[0].values[0] && strcmp(crypt(passwd, salt), auxprop_values[0].values[0]) == 0)
++ return SASL_OK;
++ else
++ ret = SASL_BADAUTH;
++ }
++ else if (password_format == PASSWORD_FORMAT_CLEARTEXT) {
++ /* compare passwords */
++ if (auxprop_values[0].name && auxprop_values[0].values && auxprop_values[0].values[0] && strcmp(auxprop_values[0].values[0], passwd) == 0)
++ return SASL_OK;
++ else
++ ret = SASL_BADAUTH;
++ /******************************
++ * crypt(3) patch stop *
++ ******************************/
+ } else if(auxprop_values[1].name
+ && auxprop_values[1].values
+ && auxprop_values[1].values[0]) {
+@@ -975,3 +1053,37 @@
+ #endif
+ { NULL, NULL }
+ };
++
++/* weeds out crypt(3) password's salt */
++int _sasl_get_salt (char *dest, char *src, int format) {
++ int num; /* how many characters is salt long? */
++ switch (format) {
++ case PASSWORD_FORMAT_CRYPT:
++ /* md5 crypt */
++ if (src[1] == '1')
++ num = 12;
++ /* blowfish crypt */
++ else if (src[1] == '2')
++ num = (src[1] == '2' && src[2] == 'a') ? 17 : 16;
++ /* traditional crypt */
++ else
++ num = 2;
++ break;
++
++ case PASSWORD_FORMAT_CRYPTTRAD:
++ num = 2;
++ break;
++
++ default:
++ return 1;
++ }
++
++ /* destroy destination */
++ memset(dest, '\0', (num + 1));
++
++ /* copy salt to destination */
++ strncpy(dest, src, num);
++
++ return 1;
++}
++
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.21-keytab.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.21-keytab.patch
new file mode 100644
index 00000000..2bbacaa6
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.21-keytab.patch
@@ -0,0 +1,39 @@
+diff -u -r cyrus-sasl-2.1.21-orig/cmulocal/sasl2.m4 cyrus-sasl-2.1.21/cmulocal/sasl2.m4
+--- cyrus-sasl-2.1.21-orig/cmulocal/sasl2.m4 2006-08-01 08:29:59.000000000 +0200
++++ cyrus-sasl-2.1.21/cmulocal/sasl2.m4 2006-08-01 08:31:32.000000000 +0200
+@@ -257,7 +257,21 @@
+
+ cmu_save_LIBS="$LIBS"
+ LIBS="$LIBS $GSSAPIBASE_LIBS"
+- AC_CHECK_FUNCS(gsskrb5_register_acceptor_identity)
++ dnl AC_CHECK_FUNCS(gsskrb5_register_acceptor_identity)
++ AC_CHECK_HEADER(gssapi/gssapi_krb5.h, AC_DEFINE(HAVE_GSSAPI_GSSAPI_KRB5_H,,[Define if you have the gssapi/gssapi_krb5.h header file]))
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
++#ifdef HAVE_GSSAPI_H
++#include <gssapi.h>
++#else
++#include <gssapi/gssapi.h>
++#endif
++#ifdef HAVE_GSSAPI_GSSAPI_KRB5_H
++#include <gssapi/gssapi_krb5.h>
++#endif
++]],[[gsskrb5_register_acceptor_identity("");]])
++],[AC_DEFINE(HAVE_GSSKRB5_REGISTER_ACCEPTOR_IDENTITY,,
++ [Define if your GSSAPI implimentation defines GSSKRB5_REGISTER_ACCEPTOR_IDENTITY])
++])
+ LIBS="$cmu_save_LIBS"
+ else
+ AC_MSG_RESULT([disabled])
+diff -u -r cyrus-sasl-2.1.21-orig/plugins/gssapi.c cyrus-sasl-2.1.21/plugins/gssapi.c
+--- cyrus-sasl-2.1.21-orig/plugins/gssapi.c 2004-07-21 16:39:06.000000000 +0200
++++ cyrus-sasl-2.1.21/plugins/gssapi.c 2006-08-01 08:30:26.000000000 +0200
+@@ -50,6 +50,9 @@
+ #else
+ #include <gssapi/gssapi.h>
+ #endif
++#ifdef HAVE_GSSAPI_GSSAPI_KRB5_H
++#include <gssapi/gssapi_krb5.h>
++#endif
+
+ #ifdef WIN32
+ # include <winsock2.h>
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-as-needed.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-as-needed.patch
new file mode 100644
index 00000000..1294cb50
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-as-needed.patch
@@ -0,0 +1,11 @@
+--- saslauthd/configure.in.orig 2006-05-23 15:53:17.000000000 -0700
++++ saslauthd/configure.in 2006-05-23 15:53:33.000000000 -0700
+@@ -77,7 +77,7 @@
+ AC_DEFINE(AUTH_SASLDB,[],[Include SASLdb Support])
+ SASL_DB_PATH_CHECK()
+ SASL_DB_CHECK()
+- SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.al"
++ SASL_DB_LIB="../sasldb/.libs/libsasldb.a $SASL_DB_LIB"
+ fi
+
+ AC_ARG_ENABLE(httpform, [ --enable-httpform enable HTTP form authentication [[no]] ],
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-crypt.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-crypt.patch
new file mode 100644
index 00000000..fd356327
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-crypt.patch
@@ -0,0 +1,71 @@
+http://bugs.gentoo.org/152544
+
+--- cyrus-sasl-2.1.22/lib/Makefile.am
++++ cyrus-sasl-2.1.22/lib/Makefile.am
+@@ -45,6 +45,7 @@ sasl_version = 2:22:0
+
+ INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/plugins -I$(top_builddir)/include -I$(top_srcdir)/sasldb
+
++AM_CFLAGS = -fPIC
+ EXTRA_DIST = windlopen.c staticopen.h NTMakefile
+ EXTRA_LIBRARIES = libsasl2.a
+ noinst_LIBRARIES = @SASL_STATIC_LIBS@
+--- cyrus-sasl-2.1.22/plugins/Makefile.am
++++ cyrus-sasl-2.1.22/plugins/Makefile.am
+@@ -63,6 +63,7 @@ srp_version = 2:22:0
+
+ INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/lib -I$(top_srcdir)/sasldb -I$(top_builddir)/include
+ AM_LDFLAGS = -module -export-dynamic -rpath $(plugindir)
++AM_CFLAGS = -fPIC
+
+ COMPAT_OBJS = @LTGETADDRINFOOBJS@ @LTGETNAMEINFOOBJS@ @LTSNPRINTFOBJS@
+
+--- cyrus-sasl-2.1.22/sasldb/Makefile.am
++++ cyrus-sasl-2.1.22/sasldb/Makefile.am
+@@ -48,6 +48,7 @@ INCLUDES=-I$(top_srcdir)/include -I$(top
+
+ extra_common_sources = db_none.c db_ndbm.c db_gdbm.c db_berkeley.c
+
++AM_CFLAGS = -fPIC
+ EXTRA_DIST = NTMakefile
+
+ noinst_LTLIBRARIES = libsasldb.la
+--- cyrus-sasl-2.1.22/utils/Makefile.am
++++ cyrus-sasl-2.1.22/utils/Makefile.am
+@@ -42,7 +42,7 @@
+ #
+ ################################################################
+
+-all_sasl_libs = ../lib/libsasl2.la $(SASL_DB_LIB) $(LIB_SOCKET)
++all_sasl_libs = ../lib/libsasl2.la $(SASL_DB_LIB) $(LIB_SOCKET) $(LIB_CRYPT)
+ all_sasl_static_libs = ../lib/.libs/libsasl2.a $(SASL_DB_LIB) $(LIB_SOCKET) $(GSSAPIBASE_LIBS) $(GSSAPI_LIBS) $(SASL_KRB_LIB) $(LIB_DES) $(PLAIN_LIBS) $(SRP_LIBS) $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE)
+
+ sbin_PROGRAMS = @SASL_DB_UTILS@ @SMTPTEST_PROGRAM@ pluginviewer
+--- cyrus-sasl-2.1.22/sample/Makefile.am
++++ cyrus-sasl-2.1.22/sample/Makefile.am
+@@ -54,10 +54,10 @@ sample_server_SOURCES = sample-server.c
+ server_SOURCES = server.c common.c common.h
+ client_SOURCES = client.c common.c common.h
+
+-server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
+-client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
++server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
++client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
+
+-sample_client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
+-sample_server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET)
++sample_client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
++sample_server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT)
+
+ EXTRA_DIST = NTMakefile
+--- cyrus-sasl-2.1.22/lib/Makefile.am
++++ cyrus-sasl-2.1.22/lib/Makefile.am
+@@ -63,7 +63,7 @@ lib_LTLIBRARIES = libsasl2.la
+ libsasl2_la_SOURCES = $(common_sources) $(common_headers)
+ libsasl2_la_LDFLAGS = -version-info $(sasl_version)
+ libsasl2_la_DEPENDENCIES = $(LTLIBOBJS)
+-libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR)
++libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) $(LIB_CRYPT)
+
+ if MACOSX
+ framedir = /Library/Frameworks/SASL2.framework
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-db4.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-db4.patch
new file mode 100644
index 00000000..dbe3f096
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-db4.patch
@@ -0,0 +1,15 @@
+support new db versions
+
+http://bugs.gentoo.org/192753
+
+--- cyrus-sasl-2.1.22/cmulocal/berkdb.m4
++++ cyrus-sasl-2.1.22/cmulocal/berkdb.m4
+@@ -213,7 +213,7 @@
+ fi
+
+ saved_LIBS=$LIBS
+- for dbname in db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
++ for dbname in db-4.8 db-4.7 db-4.6 db-4.5 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
+ do
+ LIBS="$saved_LIBS -l$dbname"
+ AC_TRY_LINK([#include <db.h>],
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-gcc44.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-gcc44.patch
new file mode 100644
index 00000000..e2621278
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-gcc44.patch
@@ -0,0 +1,24 @@
+fix warnings with gcc-4.4
+
+http://bugs.gentoo.org/248738
+
+--- cyrus-sasl-2.1.22/plugins/digestmd5.c
++++ cyrus-sasl-2.1.22/plugins/digestmd5.c
+@@ -2715,7 +2715,7 @@ static sasl_server_plug_t digestmd5_serv
+ "DIGEST-MD5", /* mech_name */
+ #ifdef WITH_RC4
+ 128, /* max_ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+ 112,
+ #else
+ 1,
+@@ -4034,7 +4034,7 @@ static sasl_client_plug_t digestmd5_clie
+ "DIGEST-MD5",
+ #ifdef WITH_RC4 /* mech_name */
+ 128, /* max ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+ 112,
+ #else
+ 1,
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-qa.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-qa.patch
new file mode 100644
index 00000000..4f7b04f1
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.22-qa.patch
@@ -0,0 +1,22 @@
+fix missing prototype warnings
+
+--- cyrus-sasl-2.1.22/lib/auxprop.c
++++ cyrus-sasl-2.1.22/lib/auxprop.c
+@@ -43,6 +43,7 @@
+ */
+
+ #include <config.h>
++#include <stdio.h>
+ #include <sasl.h>
+ #include <prop.h>
+ #include <ctype.h>
+--- cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c
++++ cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c
+@@ -24,6 +24,7 @@ OF OR IN CONNECTION WITH THE USE OR PERF
+ ******************************************************************/
+
+ #include <shadow.h>
++#include <string.h>
+
+ extern char *crypt();
+
diff --git a/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23+db-5.0.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23+db-5.0.patch
new file mode 100644
index 00000000..10be0202
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23+db-5.0.patch
@@ -0,0 +1,23 @@
+--- sasldb/db_berkeley.c.orig 2010-10-04 21:11:15.044010468 -0400
++++ sasldb/db_berkeley.c 2010-10-04 21:12:18.921998718 -0400
+@@ -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);
+
+--- utils/dbconverter-2.c.orig 2010-10-04 21:23:39.778000256 -0400
++++ utils/dbconverter-2.c 2010-10-04 21:24:50.384999893 -0400
+@@ -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/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23-authd-fix.patch b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23-authd-fix.patch
new file mode 100644
index 00000000..f5f372d1
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/cyrus-sasl-2.1.23-authd-fix.patch
@@ -0,0 +1,28 @@
+fix warnings:
+
+auth_sasldb.c: In function ‘auth_sasldb’:
+auth_sasldb.c:144: warning: implicit declaration of function ‘gethostname’
+
+auth_sasldb.c:153: warning: passing argument 8 of ‘_sasldb_getdata’ from incompatible pointer type
+../sasldb/sasldb.h:60: note: expected ‘size_t *’ but argument is of type ‘int *’
+
+--- saslauthd/auth_sasldb.c
++++ saslauthd/auth_sasldb.c
+@@ -41,6 +41,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <pwd.h>
++#include <unistd.h>
+ /* END PUBLIC DEPENDENCIES */
+
+ #define RETURN(x) return strdup(x)
+@@ -131,7 +132,8 @@
+ /* VARIABLES */
+ char pw[1024]; /* pointer to passwd file entry */
+ sasl_utils_t utils;
+- int ret, outsize;
++ int ret;
++ size_t outsize;
+ const char *use_realm;
+ char realm_buf[MAXHOSTNAMELEN];
+ /* END VARIABLES */
diff --git a/dev-libs/cyrus-sasl/files/java.README.gentoo b/dev-libs/cyrus-sasl/files/java.README.gentoo
new file mode 100644
index 00000000..fb73204e
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/java.README.gentoo
@@ -0,0 +1,39 @@
+4-Nov-2000
+
+Note: this file has been modified to adapt to Gentoo specific.
+
+class files are installed in
+
+`java-config -p cyrus-sasl-2`
+
+to compile programs using it, do:
+
+javac -classpath $JAVA_HOME/lib/tools.jar:`java-config -p cyrus-sasl-2` <file>.java
+
+(make sure to substitute your JDK for $JAVA_HOME/lib/tools.jar)
+
+to run, do
+
+java -classpath <same path as above> <YourProgram>
+
+----------------------------
+This is a java version of the SASL libraries. It supports all the
+mechanisms in the C version and conforms to the internet draft in the
+doc/ directory. JNI is used.
+
+Sample applications exist in the Test/ directory.
+
+They generally can be run with something like:
+
+java -debug -classpath
+../:$JAVA_HOME/lib/tools.jar:`java-config -p cyrus-sasl-2`:. jimtest -p 2143 -m
+KERBEROS_V4 cyrus-dev
+
+and
+
+java -debug -classpath
+../:$JAVA_HOME/lib/tools.jar:`java-config -p cyrus-sasl-2`:. testserver
+
+
+Any feedback is welcome.
+
diff --git a/dev-libs/cyrus-sasl/files/pwcheck.rc6 b/dev-libs/cyrus-sasl/files/pwcheck.rc6
new file mode 100644
index 00000000..a24b80d3
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/pwcheck.rc6
@@ -0,0 +1,21 @@
+#!/sbin/runscript
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/cyrus-sasl/files/pwcheck.rc6,v 1.5 2007/04/07 13:03:55 chtekk Exp $
+
+depend() {
+ need localmount
+ use logger
+}
+
+start() {
+ ebegin "Starting sasl pwcheck daemon"
+ start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/pwcheck
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping sasl pwcheck daemon"
+ start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/pwcheck
+ eend $?
+}
diff --git a/dev-libs/cyrus-sasl/files/saslauthd-2.1.21.conf b/dev-libs/cyrus-sasl/files/saslauthd-2.1.21.conf
new file mode 100644
index 00000000..3f2653c5
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/saslauthd-2.1.21.conf
@@ -0,0 +1,25 @@
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/cyrus-sasl/files/saslauthd-2.1.21.conf,v 1.2 2007/04/07 13:03:55 chtekk Exp $
+
+# Config file for /etc/init.d/saslauthd
+
+# Initial (empty) options.
+SASLAUTHD_OPTS=""
+
+# Specify the authentications mechanism.
+# **NOTE** For a list see: saslauthd -v
+# Since 2.1.19, add "-r" to options for old behavior,
+# ie. reassemble user and realm to user@realm form.
+#SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -a pam -r"
+SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -a pam"
+
+# Specify the hostname for remote IMAP server.
+# **NOTE** Only needed if rimap auth mechanism is used.
+#SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -O localhost"
+
+# Specify the number of worker processes to create.
+#SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -n 5"
+
+# Enable credential cache, set cache size and timeout.
+# **NOTE** Size is measured in kilobytes.
+# Timeout is measured in seconds.
+#SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -c -s 128 -t 30"
diff --git a/dev-libs/cyrus-sasl/files/saslauthd.pam-include b/dev-libs/cyrus-sasl/files/saslauthd.pam-include
new file mode 100644
index 00000000..d50a8494
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/saslauthd.pam-include
@@ -0,0 +1,8 @@
+#%PAM-1.0
+
+auth required pam_nologin.so
+auth include system-auth
+
+account include system-auth
+
+session include system-auth
diff --git a/dev-libs/cyrus-sasl/files/saslauthd2.rc6 b/dev-libs/cyrus-sasl/files/saslauthd2.rc6
new file mode 100644
index 00000000..a5e9a440
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/saslauthd2.rc6
@@ -0,0 +1,21 @@
+#!/sbin/runscript
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/cyrus-sasl/files/saslauthd2.rc6,v 1.7 2007/04/07 13:03:55 chtekk Exp $
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting saslauthd"
+ start-stop-daemon --start --quiet --exec /usr/sbin/saslauthd \
+ -- ${SASLAUTHD_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping saslauthd"
+ start-stop-daemon --stop --quiet --pidfile /var/lib/sasl2/saslauthd.pid
+ eend $?
+}