aboutsummaryrefslogtreecommitdiffstats
path: root/main/freeradius/APKBUILD
blob: f5cee1245faa492890d7e814e7a6effdb3ba5c0e (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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=freeradius
pkgver=2.2.0
pkgrel=2
pkgdesc="RADIUS (Remote Authentication Dial-In User Service) server"
url="http://freeradius.org/"
arch="all"
license="GPL"
depends="freeradius-lib freeradius-radclient"
makedepends="openssl-dev pth-dev mysql-dev postgresql-dev gdbm-dev readline-dev
	bash libtool autoconf automake perl-dev python-dev openldap-dev
	unixodbc-dev linux-pam-dev"
pkggroups="radiusd"
pkgusers="radiusd"
install="freeradius.pre-install"
subpackages="$pkgname-doc $pkgname-dev $pkgname-ldap $pkgname-lib 
	$pkgname-mssql $pkgname-mysql $pkgname-oracle $pkgname-perl 
	$pkgname-postgresql $pkgname-python $pkgname-radclient
	$pkgname-unixodbc $pkgname-pam"
source="ftp://ftp.freeradius.org/pub/freeradius/$pkgname-server-$pkgver.tar.gz
	freeradius.confd
	freeradius.initd
	"

_builddir="$srcdir"/$pkgname-server-$pkgver

prepare() {
	cd "$_builddir"
#	for i in ../*.patch; do
#		msg "Applying $i"
#		patch -p1 -i $i || return 1
#	done
	
	# we dont have libnsl
	sed -i 's/nsl, //g' configure.in || return 1
	
	# Fix compilation with heimdal >= 1.3.1
	sed -i 's/ -DKRB5_DEPRECATED//' src/modules/rlm_krb5/Makefile.in || return 1

	# Fix default config
	sed -i 's%run_dir = .*%run_dir = \$\{localstatedir\}/run/radius%' \
		raddb/radiusd.conf.in || return 1

	rm -f libtool.m4
	libtoolize --force -c || return 1
	aclocal && ./autogen.sh || return 1
}

build() {
	cd "$_builddir"
	./configure --prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
                --localstatedir=/var \
		--libdir=/usr/lib/freeradius \
		--disable-static \
		--enable-shared \
		--disable-ltdl-install \
		--with-system-libtool \
		--with-system-libltdl \
		--with-udpfromto \
		|| return 1

	# * workaround parallel build issue
	# * add -lssl to fix:
	#   radiusd: symbol 'SSL_set_ex_data': can't resolve symbol in lib
	#   '/usr/lib/freeradius/libfreeradius-eap-2.1.10.so'.
	make LDFLAGS="$LDFLAGS -lssl" LIBTOOL="$PWD/libtool" -j1 || return 1
}

package() {
	cd "$_builddir"
	install -d -m0750 -o root -g radiusd "$pkgdir"/etc/raddb
	install -d -m0770 -o root -g radiusd "$pkgdir"/var/run/radius
	install -d -m0750 -o root -g radiusd "$pkgdir"/var/log/radius
	install -d -m0750 -o root -g radiusd "$pkgdir"/var/log/radius/radacct

	make -j1 R="$pkgdir" LIBTOOL="$PWD/libtool" install
	sed -i -e 's:^#user *= *nobody:user = radiusd:;s:^#group *= *nobody:group = radiusd:' \
		"$pkgdir"/etc/raddb/radiusd.conf
	chown -R root:radiusd "$pkgdir"/etc/raddb/*
	rm -f "$pkgdir/usr/sbin/rc.radiusd"
	install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/radiusd
	install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/radiusd
	install -m644 -D scripts/logrotate.freeradius "$pkgdir"/etc/logrotate.d/$pkgname
	find $pkgdir -iname *.la -delete
}

ldap() {
	depends="freeradius freeradius-lib"
	mkdir -p $subpkgdir/etc/raddb
	mv $pkgdir/etc/raddb/ldap.attrmap $subpkgdir/etc/raddb
	mkdir -p $subpkgdir/etc/raddb/modules
	mv $pkgdir/etc/raddb/modules/ldap $subpkgdir/etc/raddb/modules
	mkdir -p $subpkgdir/usr/lib/freeradius
	mv $pkgdir/usr/lib/freeradius/rlm_ldap* $subpkgdir/usr/lib/freeradius
}

lib() {
	replaces="freeradius"
	mkdir -p $subpkgdir/usr/lib/freeradius $subpkgdir/etc/raddb \
	 $subpkgdir/usr/share
	mv $pkgdir/usr/lib/freeradius/libfreeradius-radius-${pkgver}.so \
	 $subpkgdir/usr/lib/freeradius
	mv $pkgdir/etc/raddb/dictionary $subpkgdir/etc/raddb/dictionary
	mv $pkgdir/usr/share/freeradius $subpkgdir/usr/share/freeradius
}

mysql() {
	depends="freeradius freeradius-lib"
	mkdir -p $subpkgdir/etc/raddb/sql
	mv $pkgdir/etc/raddb/sql/mysql $subpkgdir/etc/raddb/sql
	mv $pkgdir/etc/raddb/sql/ndb $subpkgdir/etc/raddb/sql
	mkdir -p $subpkgdir/usr/lib/freeradius
	mv $pkgdir/usr/lib/freeradius/rlm_sql_mysql* $subpkgdir/usr/lib/freeradius
}

mssql() {
	depends="freeradius freeradius-lib"
	arch="noarch"
	mkdir -p $subpkgdir/etc/raddb/sql
	mv $pkgdir/etc/raddb/sql/mssql $subpkgdir/etc/raddb/sql
}

oracle() {
	depends="freeradius freeradius-lib"
	arch="noarch"
	mkdir -p $subpkgdir/etc/raddb/sql
	mv $pkgdir/etc/raddb/sql/oracle $subpkgdir/etc/raddb/sql
}

perl() {
	depends="freeradius freeradius-lib perl"
	mkdir -p $subpkgdir/usr/lib/freeradius
	mv $pkgdir/usr/lib/freeradius/rlm_perl* $subpkgdir/usr/lib/freeradius
	mkdir -p $subpkgdir/usr/bin
	mv $pkgdir/usr/sbin/checkrad $subpkgdir/usr/bin/checkrad
	mkdir -p $subpkgdir/etc/raddb/modules
	mv $pkgdir/etc/raddb/modules/perl $subpkgdir/etc/raddb/modules/perl
}

postgresql() {
	depends="freeradius freeradius-lib"
	mkdir -p $subpkgdir/etc/raddb/sql
	mv $pkgdir/etc/raddb/sql/postgresql $subpkgdir/etc/raddb/sql
	mkdir -p $subpkgdir/usr/lib/freeradius
	mv $pkgdir/usr/lib/freeradius/rlm_sql_postgresql* $subpkgdir/usr/lib/freeradius
}

python() {
	depends="freeradius freeradius-lib python"
	mkdir -p $subpkgdir/usr/lib/freeradius
	mv $pkgdir/usr/lib/freeradius/rlm_python* $subpkgdir/usr/lib/freeradius
}

radclient() {
	depends="freeradius-lib"
	mkdir -p $subpkgdir/usr/bin
	mv $pkgdir/usr/bin/radclient $subpkgdir/usr/bin/radclient
}

unixodbc() {
	depends="freeradius freeradius-lib"
	mkdir -p $subpkgdir/usr/lib/freeradius
	mv $pkgdir/usr/lib/freeradius/rlm_sql_unixodbc* $subpkgdir/usr/lib/freeradius
}

pam() {
	depends="freeradius freeradius-lib"
	mkdir -p $subpkgdir/usr/lib/freeradius
	mv $pkgdir/usr/lib/freeradius/rlm_pam* $subpkgdir/usr/lib/freeradius
}
md5sums="2e45d3c0d22ab14c560c7c3029893a8a  freeradius-server-2.2.0.tar.gz
fc6693f3df5a0694610110287a28568a  freeradius.confd
c46f34d7ddf695dfe53e5fb7f60afa59  freeradius.initd"