summaryrefslogtreecommitdiff
blob: 8635c3e353026b7ea77ed990312245679e7ab8b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/cyrus-sasl/cyrus-sasl-2.1.15.ebuild,v 1.7 2004/06/03 17:00:39 agriffis Exp $

IUSE="gdbm berkdb ldap mysql kerberos static ssl java pam" # otp krb4

inherit eutils flag-o-matic

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 ~hppa ~amd64 ~alpha"

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? ( >=app-crypt/mit-krb5-1.2.6 )
	java? ( virtual/jdk )"
DEPEND="${RDEPEND}
	sys-devel/libtool
	sys-devel/autoconf
	sys-devel/automake"

src_unpack() {
	unpack ${A}; cd ${S}

	# Updated the cyrus-sasl-2.1.14-db4.patch
	epatch ${FILESDIR}/2.1.14-db4.patch
}

src_compile() {

	# compaq-sdk checks for -D_REENTRANT.
	# use -pthread to take care of all the cpp stuff.
	# -taviso #24998 (17 Aug 03)
	use alpha && append-flags -pthread -D_REENTRANT

	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

	local myconf
	myconf="--with-gnu-ld --enable-login --enable-ntlm"

	use static && myconf="${myconf} --enable-static"

	use ssl && myconf="${myconf} --with-openssl" \
		|| myconf="${myconf} --without-openssl"

	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 kerberos && myconf="${myconf} --enable-gssapi" \
		|| myconf="${myconf} --disable-gssapi"

	# Kerberos 4 support doesn't compile.. and i'm not sure why
	# If you want to test/fix for me, emerge kth-krb
	# and have at it. :) -raker 02/07/2003
	#
	#if use krb4; then
	#	myconf="${myconf} --enable-krb4=/usr/athena"
	#else
		myconf="${myconf} --disable-krb4"
	#fi

	use java && myconf="${myconf} --enable-java --with-javabase=${JAVA_HOME}"

	use pam || myconf="${myconf} --without-pam"

	# opie is not in portage yet so no otp support
	myconf="${myconf} --disable-otp"
	# use otp && myconf="${myconf} --with-opie=/usr"

	econf \
		--with-saslauthd=/var/lib/sasl2 \
		--with-pwcheck=/var/lib/sasl2 \
		--with-configdir=/etc/sasl2 \
		--with-plugindir=/usr/lib/sasl2 \
		--with-dbpath=/etc/sasl2/sasldb2 \
		${myconf} || die "econf failed"

	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.conf saslauthd
	exeinto /etc/init.d ; newexe ${FILESDIR}/saslauthd2.rc6 saslauthd
	exeinto /etc/init.d ; newexe ${FILESDIR}/pwcheck.rc6 pwcheck
}