diff -ur --new-file dev-libs/cyrus-sasl.orig/cyrus-sasl-2.1.10-r2.ebuild dev-libs/cyrus-sasl/cyrus-sasl-2.1.10-r2.ebuild --- dev-libs/cyrus-sasl.orig/cyrus-sasl-2.1.10-r2.ebuild 1969-12-31 19:00:00.000000000 -0500 +++ dev-libs/cyrus-sasl/cyrus-sasl-2.1.10-r2.ebuild 2003-01-29 13:27:57.000000000 -0500 @@ -0,0 +1,120 @@ +# Copyright 1999-2002 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License, v2 or later +# $Header: /home/cvsroot/gentoo-x86/dev-libs/cyrus-sasl/cyrus-sasl-2.1.10-r1.ebuild,v 1.1 2003/01/23 20:34:42 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 -ur --new-file dev-libs/cyrus-sasl.orig/files/digest-cyrus-sasl-2.1.10-r2 dev-libs/cyrus-sasl/files/digest-cyrus-sasl-2.1.10-r2 --- dev-libs/cyrus-sasl.orig/files/digest-cyrus-sasl-2.1.10-r2 1969-12-31 19:00:00.000000000 -0500 +++ dev-libs/cyrus-sasl/files/digest-cyrus-sasl-2.1.10-r2 2003-01-29 13:26:40.000000000 -0500 @@ -0,0 +1 @@ +MD5 3ac2a696c091a76ce6c7db27e5d859d4 cyrus-sasl-2.1.10.tar.gz 1325286 diff -ur --new-file dev-libs/cyrus-sasl.orig/files/digestmd5.patch dev-libs/cyrus-sasl/files/digestmd5.patch --- dev-libs/cyrus-sasl.orig/files/digestmd5.patch 1969-12-31 19:00:00.000000000 -0500 +++ dev-libs/cyrus-sasl/files/digestmd5.patch 2003-01-29 13:26:29.000000000 -0500 @@ -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; + + /*