summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Hadaway <raker@gentoo.org>2003-01-29 23:13:09 +0000
committerNick Hadaway <raker@gentoo.org>2003-01-29 23:13:09 +0000
commit626dba611ebd5c2d76c3fac3f8a9f0344ff922f5 (patch)
tree94dde264a80ccb5b4a71494a47e6c9f5efb0cc01 /dev-libs/cyrus-sasl
parentbeta4 is out (bugfix for beta3, hence removing beta3). (diff)
downloadgentoo-2-626dba611ebd5c2d76c3fac3f8a9f0344ff922f5.tar.gz
gentoo-2-626dba611ebd5c2d76c3fac3f8a9f0344ff922f5.tar.bz2
gentoo-2-626dba611ebd5c2d76c3fac3f8a9f0344ff922f5.zip
This rev adds a fix for digestmd5 segfaults noted in conjunction with
sendmail.
Diffstat (limited to 'dev-libs/cyrus-sasl')
-rw-r--r--dev-libs/cyrus-sasl/ChangeLog9
-rw-r--r--dev-libs/cyrus-sasl/cyrus-sasl-2.1.10-r2.ebuild120
-rw-r--r--dev-libs/cyrus-sasl/files/digest-cyrus-sasl-2.1.10-r21
-rw-r--r--dev-libs/cyrus-sasl/files/digestmd5.patch92
4 files changed, 221 insertions, 1 deletions
diff --git a/dev-libs/cyrus-sasl/ChangeLog b/dev-libs/cyrus-sasl/ChangeLog
index a035af7be2b6..9523f2106bac 100644
--- a/dev-libs/cyrus-sasl/ChangeLog
+++ b/dev-libs/cyrus-sasl/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for dev-libs/cyrus-sasl
# Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/cyrus-sasl/ChangeLog,v 1.31 2003/01/23 20:34:42 raker Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/cyrus-sasl/ChangeLog,v 1.32 2003/01/29 23:13:09 raker Exp $
+
+*cyrus-sasl-2.1.10-r2 (29 Jan 2003)
+
+ 29 Jan 2003; Nick Hadaway <raker@gentoo.org> cyrus-sasl-2.1.10-r2.ebuild,
+ files/digest-cyrus-sasl-2.1.10-r2, files/digestmd5.patch :
+ Legwork done by jfelice@cronosys.com on bug #13116. This adds a patch
+ which should address a sendmail/sasl segfault.
*cyrus-2.1.10-r1 (23 Jan 2003)
diff --git a/dev-libs/cyrus-sasl/cyrus-sasl-2.1.10-r2.ebuild b/dev-libs/cyrus-sasl/cyrus-sasl-2.1.10-r2.ebuild
new file mode 100644
index 000000000000..ddc09483a09c
--- /dev/null
+++ b/dev-libs/cyrus-sasl/cyrus-sasl-2.1.10-r2.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2002 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/cyrus-sasl/cyrus-sasl-2.1.10-r2.ebuild,v 1.1 2003/01/29 23:13:09 raker Exp $
+
+S=${WORKDIR}/${P}
+
+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"
+
+LICENSE="as-is"
+SLOT="2"
+KEYWORDS="x86 ~ppc -sparc "
+
+IUSE="gdbm berkdb ldap mysql kerberos"
+
+inherit eutils
+
+RDEPEND=">=sys-libs/db-3.2
+ >=sys-libs/pam-0.75
+ >=dev-libs/openssl-0.9.6d
+ gdbm? ( >=sys-libs/gdbm-1.8.0 )
+ berkdb? ( >=sys-libs/db-3.2.9 )
+ ldap? ( >=net-nds/openldap-2.0.25 )
+ mysql? ( >=dev-db/mysql-3.23.51 )
+ kerberos? ( virtual/krb5 )"
+
+DEPEND="${RDEPEND}
+ sys-devel/libtool
+ sys-devel/autoconf
+ sys-devel/automake"
+
+src_unpack() {
+ unpack ${A} ; cd ${S}
+
+ # Fix depends for heimdal needed in saslv2 too
+ epatch ${FILESDIR}/${PN}2-heimdal-deps.patch
+
+ # Fix for gssapi seg faulting problem?
+ epatch ${FILESDIR}/gssapi-sefault.patch
+
+ # Fix for digestmd5 segfault with sendmail/smart host.
+ epatch ${FILESDIR}/digestmd5.patch
+}
+
+src_compile() {
+
+ local myconf
+
+ libtoolize --copy --force
+ aclocal -I config -I cmulocal || die
+ autoheader || die
+ automake -a --foreign || die
+ autoconf || die
+ autoconf saslauthd/configure.in > saslauthd/configure || die
+ chmod +x saslauthd/configure || die
+
+ use ldap && myconf="${myconf} --with-ldap" \
+ || myconf="${myconf} --without-ldap"
+
+ use mysql && myconf="${myconf} --with-mysql" \
+ || myconf="${myconf} --without-mysql"
+
+ if use berkdb; then
+ myconf="${myconf} --with-dblib=berkeley"
+ elif use gdbm; then
+ myconf="${myconf} --with-dblib=gdbm --with-gdbm=/usr"
+ else
+ myconf="${myconf} --with-dblib=berkeley"
+ fi
+
+ use static && myconf="${myconf} --enable-static --with-staticsasl" \
+ || myconf="${myconf} --disable-static --without-staticsasl"
+
+ use kerberos && myconf="${myconf} --enable-gssapi=/usr" \
+ || myconf="${myconf} --disable-gssapi"
+
+ econf \
+ --with-saslauthd=/var/lib/sasl2 \
+ --with-pwcheck=/var/lib/sasl2 \
+ --with-configdir=/etc/sasl2 \
+ --with-openssl \
+ --with-plugindir=/usr/lib/sasl2 \
+ --with-dbpath=/etc/sasl2/sasldb2 \
+ --with-des \
+ --with-rc4 \
+ --disable-krb4 \
+ --with-gnu-ld \
+ --enable-shared \
+ --disable-sample \
+ --enable-login \
+ ${myconf} || die "bad ./configure"
+
+ make MAKE=emake || die "compile problem"
+}
+
+src_install () {
+
+ einstall || die "install problem"
+
+ dodoc AUTHORS ChangeLog COPYING NEWS README doc/*.txt
+ docinto examples ; dodoc sample/{*.[ch],Makefile}
+ newdoc pwcheck/README README.pwcheck
+ dohtml doc/*
+
+ dodir /var/lib/sasl2
+ dodir /etc/sasl2
+ # generate an empty sasldb2 with correct permissions
+ LD_OLD=${LD_LIBRARY_PATH}
+ export LD_LIBRARY_PATH=${S}/lib/.libs
+ echo "gentoo" | ${D}usr/sbin/saslpasswd2 -f ${D}etc/sasl2/sasldb2 -p cyrus
+ ${D}usr/sbin/saslpasswd2 -f ${D}etc/sasl2/sasldb2 -d cyrus
+ export LD_LIBRARY_PATH=${LD_OLD}
+ chown root.mail ${D}etc/sasl2/sasldb2
+ chmod 0640 ${D}etc/sasl2/sasldb2
+
+ insinto /etc/conf.d ; newins ${FILESDIR}/saslauthd.confd saslauthd
+ exeinto /etc/init.d ; newexe ${FILESDIR}/saslauthd2.rc6 saslauthd
+ exeinto /etc/init.d ; newexe ${FILESDIR}/pwcheck.rc6 pwcheck
+}
diff --git a/dev-libs/cyrus-sasl/files/digest-cyrus-sasl-2.1.10-r2 b/dev-libs/cyrus-sasl/files/digest-cyrus-sasl-2.1.10-r2
new file mode 100644
index 000000000000..bc95eab8e136
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/digest-cyrus-sasl-2.1.10-r2
@@ -0,0 +1 @@
+MD5 3ac2a696c091a76ce6c7db27e5d859d4 cyrus-sasl-2.1.10.tar.gz 1325286
diff --git a/dev-libs/cyrus-sasl/files/digestmd5.patch b/dev-libs/cyrus-sasl/files/digestmd5.patch
new file mode 100644
index 000000000000..89e482a0e46c
--- /dev/null
+++ b/dev-libs/cyrus-sasl/files/digestmd5.patch
@@ -0,0 +1,92 @@
+Index: digestmd5.c
+===================================================================
+RCS file: /afs/andrew.cmu.edu/system/cvs/src/sasl/plugins/digestmd5.c,v
+retrieving revision 1.145
+diff -u -r1.145 cyrus-sasl-2.1.10/plugins/digestmd5.c
+--- cyrus-sasl-2.1.10/plugins/digestmd5.c 5 Dec 2002 22:50:42 -0000 1.145
++++ cyrus-sasl-2.1.10-modified/plugins/digestmd5.c 29 Jan 2003 18:12:49 -0000
+@@ -3548,7 +3548,7 @@
+
+ static int ask_user_info(client_context_t *ctext,
+ sasl_client_params_t *params,
+- char **realms,
++ char **realms, int nrealm,
+ sasl_interact_t **prompt_need,
+ sasl_out_params_t *oparams)
+ {
+@@ -3559,7 +3559,7 @@
+ int user_result = SASL_OK;
+ int auth_result = SASL_OK;
+ int pass_result = SASL_OK;
+- int realm_result = SASL_OK;
++ int realm_result = SASL_FAIL;
+
+ /* try to get the authid */
+ if (oparams->authid == NULL) {
+@@ -3589,21 +3589,29 @@
+ }
+
+ /* try to get the realm */
+- if (realms && text->realm == NULL) {
+- realm_result = _plug_get_realm(params->utils, (const char **) realms,
+- (const char **) &realm,
+- prompt_need);
+-
++ if (text->realm == NULL) {
++ if (realms) {
++ if(nrealm == 1) {
++ /* only one choice */
++ realm = realms[0];
++ realm_result = SASL_OK;
++ } else {
++ /* ask the user */
++ realm_result = _plug_get_realm(params->utils,
++ (const char **) realms,
++ (const char **) &realm,
++ prompt_need);
++ }
++ }
++
++ /* fake the realm if we must */
+ if ((realm_result != SASL_OK) && (realm_result != SASL_INTERACT)) {
+- /* Fake the realm, if we can. */
+ if (params->serverFQDN) {
+- _plug_strdup(params->utils, params->serverFQDN,
+- (char **) &text->realm, NULL);
++ realm = params->serverFQDN;
+ } else {
+ return realm_result;
+ }
+- }
+- /* if realm_result == SASL_OK, text->realm has been filled in */
++ }
+ }
+
+ /* free prompts we got */
+@@ -3665,6 +3673,7 @@
+ if (result != SASL_OK) return result;
+ }
+
++ /* Get an allocated version of the realm into the structure */
+ if (realm && text->realm == NULL) {
+ _plug_strdup(params->utils, realm, (char **) &text->realm, NULL);
+ }
+@@ -3711,7 +3720,7 @@
+ params->utils->log(params->utils->conn, SASL_LOG_DEBUG,
+ "DIGEST-MD5 client step 1");
+
+- result = ask_user_info(ctext, params, NULL, prompt_need, oparams);
++ result = ask_user_info(ctext, params, NULL, 0, prompt_need, oparams);
+ if (result != SASL_OK) return result;
+
+ /* check if we have cached info for this user on this server */
+@@ -3797,7 +3806,8 @@
+ }
+ }
+
+- result = ask_user_info(ctext, params, realms, prompt_need, oparams);
++ result = ask_user_info(ctext, params, realms, nrealm,
++ prompt_need, oparams);
+ if (result != SASL_OK) goto FreeAllocatedMem;
+
+ /*