summaryrefslogtreecommitdiff
blob: e47e8a67d6a9126ce4f02b887ea9ad97955afa6d (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
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-dialup/freeradius/freeradius-0.9.3.ebuild,v 1.8 2004/06/24 22:26:13 agriffis Exp $

IUSE="snmp mysql postgres ldap kerberos ssl pam"

MY_PN=${PN}-0.9.3
S=${WORKDIR}/${MY_PN}
DESCRIPTION="highly configurable free RADIUS server"
SRC_URI="ftp://ftp.freeradius.org/pub/radius/${MY_PN}.tar.gz"
HOMEPAGE="http://www.freeradius.org/"
KEYWORDS="x86"
LICENSE="GPL-2"
SLOT="0"

DEPEND="virtual/glibc
	sys-devel/libtool
	>=sys-libs/db-3.2
	sys-libs/gdbm
	snmp? ( virtual/snmp )
	mysql? ( dev-db/mysql )
	postgres? ( dev-db/postgresql )
	pam? ( sys-libs/pam )
	ssl? ( dev-libs/openssl )
	ldap? ( net-nds/openldap )
	kerberos? ( app-crypt/mit-krb5 )
	frxp? ( dev-lang/python
			dev-lang/perl )"

src_unpack() {
	unpack ${MY_PN}.tar.gz
	cd ${S}

	export WANT_AUTOCONF=2.1
	autoconf
}

src_compile() {
	local myconf=""

	if ! use snmp; then
		myconf="--without-snmp"
	fi
	if use frascend; then
		myconf="${myconf} --with-ascend-binary"
	fi
	if use frlargefiles; then
		myconf="${myconf} --with-large-files"
	fi
	if use frnothreds; then
		myconf="${myconf} --without-threads"
	fi
	if use frxp; then
		myconf="${myconf} --with-experimental-modules"
	fi

	# kill modules we don't use
	if ! use ssl; then
		einfo "removing rlm_eap_tls and rlm_x99_token (no use ssl)"
		rm -rf src/modules/rlm_eap/types/rlm_eap_tls src/modules/rlm_x99_token
	fi
	if ! use ldap; then
		einfo "removing rlm_ldap (no use ldap)"
		rm -rf src/modules/rlm_ldap
	fi
	if ! use kerberos; then
		einfo "removing rlm_krb5 (no use kerberos)"
		rm -rf src/modules/rlm_krb5
	fi
	if ! use pam; then
		einfo "removing rlm_pam (no use pam)"
		rm -rf src/modules/rlm_pam
	fi

	# experimental modules are
	# rlm_checkval rlm_cram rlm_dictionary rlm_example rlm_passwd rlm_perl
	# rlm_python rlm_smb rlm_sqlcounter

	./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
		--mandir=/usr/share/man --host=${CHOST} \
		--with-gnu-ld --with-system-libtool --disable-ltdl-install \
		${myconf} || die

	make || die
}

src_install() {
	dodir /etc/raddb

	make R=${D} install || die

	dodoc COPYRIGHT CREDITS INSTALL LICENSE README

	rm ${D}/usr/sbin/rc.radiusd

	dodir /etc/init.d
	cp ${FILESDIR}/0.9/radius.init ${D}/etc/init.d/radiusd

	dodir /etc/conf.d
	cp ${FILESDIR}/0.9/radius.conf ${D}/etc/conf.d/radiusd

	keepdir /var/run/radiusd
	keepdir /var/log/radius
	keepdir /var/log/radius/radacct
}

pkg_postinst() {
	einfo "You need to add an user and a group radiusd or"
	einfo "change the radiusd.conf file to use an existing"
	einfo "user for running radiusd."
	einfo "Make sure that all paths radiusd needs to write"
	einfo "to have the proper owner!"
}