summaryrefslogtreecommitdiffstats
path: root/main/freeradius/APKBUILD
blob: be7e30c0964cead138ad798da6a15c7108e21708 (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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
# Contributor: Vladyslav Frolov <frolvlad@gmail.com>
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=freeradius
_realname=freeradius
pkgver=3.0.10
pkgrel=3
pkgdesc="RADIUS (Remote Authentication Dial-In User Service) server"
url="http://freeradius.org/"
arch="all"
license="GPL"
depends=""
makedepends="openssl-dev mariadb-dev postgresql-dev gdbm-dev readline-dev
	bash libtool autoconf automake perl-dev python-dev openldap-dev krb5-dev
	unixodbc-dev linux-pam-dev sqlite-dev talloc-dev libpcap-dev
	linux-headers curl-dev hiredis-dev json-c-dev"
pkggroups="radius"
pkgusers="radius"
install="$pkgname.pre-install"
subpackages="$pkgname-dbg $pkgname-doc $pkgname-dev $pkgname-ldap $pkgname-lib
	$pkgname-mssql $pkgname-mysql $pkgname-sql $pkgname-perl
	$pkgname-postgresql $pkgname-python $pkgname-radclient $pkgname-sqlite
	$pkgname-unixodbc $pkgname-pam $pkgname-eap $pkgname-krb5
	$pkgname-rest $pkgname-redis"
provides="freeradius3=$pkgver-r$pkgrel"
source="ftp://ftp.freeradius.org/pub/freeradius/$_realname-server-$pkgver.tar.gz
	$pkgname.confd
	$pkgname.initd

	musl-fix-headers.patch
	disable-cert-generation.patch
	freeradius-305-default-config.patch
	fix-scopeid.patch
	freeradius-310-ignore-callbacks-for-pseudo-content-types.patch
	freeradius-3010-send-acct-pings-to-acct-port.patch
	"

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

radconfdir="/etc/raddb"
radmodsdir="$radconfdir/mods-available"
radlibdir="/usr/lib/freeradius"
radmodsconfdir="$radconfdir/mods-config"
ldpath="$radlibdir"

prepare() {
	cd "$_builddir"
        for i in $source; do
                case $i in
                *.patch)
                        msg "Applying $i"
                        patch -p1 -i "$srcdir"/$i || return 1
                        ;;
                esac
        done
	update_config_sub || return 1
	# remove certs generation
	# rm -rf raddb/certs || return 1
}

build() {
	cd "$_builddir"
	# freeradius requries json.h to be in a dir called 'json'. We fool
	# the configure script with a symlink pointing to proper location.
	ln -s /usr/include/json-c json

	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--localstatedir=/var \
		--datarootdir=/usr/share \
		--libdir="$radlibdir" \
		--with-logdir=/var/log/radius \
		--with-radacctdir=/var/log/radius/radacct \
		--with-system-libtool \
		--with-system-libltdl \
		--with-shared-libs \
		--with-udpfromto \
		--with-rlm_sql_sqlite \
		--with-rlm_sql_postgresql \
		--with-rlm_sql_mysql \
		--with-rlm_krb5 \
		--with-rlm_rest \
		--with-rlm_redis \
		--with-rlm_rediswho \
		--without-rlm_eap_tnc \
		--without-rlm_eap_ikev2 \
		--without-rlm_sql_iodbc \
		--without-rlm_sql_oracle \
		--without-rlm_yubikey \
		--without-rlm_ykclient \
		--with-jsonc-include-dir="$PWD" \
		|| return 1

	make -j1 LDFLAGS="$LDFLAGS -lssl" || return 1
}

package() {
	cd "$_builddir"
	install -d -m0750 -o root -g radius \
		"${pkgdir}"${radconfdir} || return 1
	install -d -m0750 -o radius -g radius \
		"$pkgdir"/var/run/radius || return 1
	install -d -m0750 -o radius -g radius \
		"$pkgdir"/var/log/radius || return 1
	install -d -m0750 -o radius -g radius \
		"$pkgdir"/var/log/radius/radacct || return 1

	make -j1 R="$pkgdir" install || return 1
	chown -R root:radius "$pkgdir"/etc/raddb/*
	rm -f "$pkgdir"/usr/sbin/rc.radiusd
	install -m755 -D "$srcdir"/$pkgname.initd \
		"$pkgdir"/etc/init.d/radiusd || return 1
	install -m644 -D "$srcdir"/$pkgname.confd \
		"$pkgdir"/etc/conf.d/radiusd || return 1
	#Install misses to create this
	mkdir -p "${pkgdir}"${radmodsconfdir}/sql/ippool-dhcp/postgresql
}

_mvdb() {
	for dir in ippool-dhcp ippool counter main cui; do
		mkdir -p "${subpkgdir}"${radmodsconfdir}/sql/$dir
		mv "${pkgdir}"${radmodsconfdir}/sql/$dir/$1 \
		 "${subpkgdir}"${radmodsconfdir}/sql/$dir || return 1
	done
	mkdir -p "${subpkgdir}"${radlibdir}
	mv "${pkgdir}"${radlibdir}/rlm_sql_${1}.so "${subpkgdir}"${radlibdir} \
		|| return 1
}

eap() {
	depends="freeradius=$pkgver-r$pkgrel"
	provides="freeradius3-eap=$pkgver-r$pkgrel"
	pkgdesc="EAP module for FreeRADIUS server"
	mkdir -p "${subpkgdir}"${radlibdir}
	mv "${pkgdir}"${radlibdir}/rlm_eap*.so "${subpkgdir}"${radlibdir} \
		|| return 1
	mkdir -p "${subpkgdir}"${radmodsdir}
	mv "${pkgdir}"${radmodsdir}/eap "${subpkgdir}"${radmodsdir} || return 1
	mkdir -p "${subpkgdir}"${radconfdir}
	mv "${pkgdir}"${radconfdir}/certs "${subpkgdir}"${radconfdir} || return 1
}

ldap() {
	depends="freeradius=$pkgver-r$pkgrel"
	provides="freeradius3-ldap=$pkgver-r$pkgrel"
	pkgdesc="LDAP module for FreeRADIUS server"
	mkdir -p "${subpkgdir}"${radlibdir}
	mv "${pkgdir}"${radlibdir}/rlm_ldap* "${subpkgdir}"${radlibdir} \
		|| return 1
}

krb5() {
	depends="freeradius=$pkgver-r$pkgrel"
	provides="freeradius3-krb5=$pkgver-r$pkgrel"
	pkgdesc="Kerberos module for FreeRADIUS server"
	mkdir -p "${subpkgdir}"${radlibdir}
	mv "${pkgdir}"${radlibdir}/rlm_krb5* "${subpkgdir}"${radlibdir} \
		|| return 1
}

lib() {
	depends=""
	pkgdesc="Freeradius shared libraries"
	mkdir -p "${subpkgdir}"${radlibdir} "${subpkgdir}"${radconfdir} \
	 "$subpkgdir"/usr/share/freeradius || return 1
	mv "${pkgdir}"${radlibdir}/libfreeradius-*.so \
	 "${subpkgdir}"${radlibdir} || return 1
	mv "${pkgdir}"/usr/share/freeradius/* \
	 "${subpkgdir}"/usr/share/freeradius || return 1
}

sql() {
	depends="freeradius=$pkgver-r$pkgrel"
	provides="freeradius3-sql=$pkgver-r$pkgrel"
	pkgdesc="SQL module for FreeRADIUS server"
	mkdir -p "${subpkgdir}"${radlibdir}
	for lib in sql sqlippool sql_null sqlcounter; do
		mv "${pkgdir}"${radlibdir}/rlm_${lib}.so \
			"${subpkgdir}"${radlibdir} || return 1
	done
	mkdir -p "${subpkgdir}"${radconfdir}/sites-available
	mv "${pkgdir}"${radconfdir}/sites-available/buffered-sql \
	 "${subpkgdir}"${radconfdir}/sites-available || return 1
	mkdir -p "${subpkgdir}"${radmodsdir}
	mv "${pkgdir}"${radmodsdir}/*sql* "${subpkgdir}"${radmodsdir} \
		|| return 1
}

mysql() {
	depends="freeradius-sql=$pkgver-r$pkgrel"
	provides="freeradius3-mysql=$pkgver-r$pkgrel"
	pkgdesc="MySQL module for FreeRADIUS server"
	_mvdb mysql || return 1
}

mssql() {
	depends="freeradius-sql=$pkgver-r$pkgrel"
	provides="freeradius3-mssql=$pkgver-r$pkgrel"
	pkgdesc="MSSQL module for FreeRADIUS server"
	arch="noarch"
	mkdir -p "${subpkgdir}"${radmodsconfdir}/sql/main
	mv "${pkgdir}"${radmodsconfdir}/sql/main/mssql \
	 "${subpkgdir}"${radmodsconfdir}/sql/main || return 1
}

perl() {
	depends="freeradius=$pkgver-r$pkgrel perl"
	provides="freeradius3-perl=$pkgver-r$pkgrel"
	pkgdesc="Perl module for FreeRADIUS server"
	mkdir -p "${subpkgdir}"${radlibdir}
	mv "${pkgdir}"${radlibdir}/rlm_perl* "${subpkgdir}"${radlibdir} \
		|| return 1
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/sbin/checkrad "$subpkgdir"/usr/bin/checkrad \
		|| return 1
	mkdir -p "${subpkgdir}"${radconfdir}/mods-available
	mv "${pkgdir}"${radconfdir}/mods-available/perl \
		"${subpkgdir}"${radconfdir}/mods-available/perl || return 1
}

postgresql() {
	depends="freeradius-sql=$pkgver-r$pkgrel"
	provides="freeradius3-postgresql=$pkgver-r$pkgrel"
	pkgdesc="PostgreSQL module for FreeRADIUS server"
	_mvdb postgresql || return 1
}

python() {
	depends="freeradius=$pkgver-r$pkgrel python"
	provides="freeradius3-python=$pkgver-r$pkgrel"
	pkgdesc="Python module for FreeRADIUS server"
	mkdir -p "${subpkgdir}"${radlibdir}
	mv "${pkgdir}"${radlibdir}/rlm_python* "${subpkgdir}"${radlibdir} \
		|| return 1
	for dir in $radmodsdir $radmodsconfdir; do
		mkdir -p "${subpkgdir}"$dir
		mv "${pkgdir}"$dir/python "${subpkgdir}"$dir || return 1
	done
}

radclient() {
	depends=""
	provides="freeradius3-radclient=$pkgver-r$pkgrel"
	pkgdesc="Client for FreeRADIUS server"
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/radclient "$subpkgdir"/usr/bin/radclient \
		|| return 1
}

sqlite() {
	depends="freeradius-sql=$pkgver-r$pkgrel"
	provides="freeradius3-sqlite=$pkgver-r$pkgrel"
	pkgdesc="SQLite module for FreeRADIUS server"
	_mvdb sqlite || return 1
}

unixodbc() {
	depends="freeradius=$pkgver-r$pkgrel"
	provides="freeradius3-unixodbc=$pkgver-r$pkgrel"
	pkgdesc="ODBC module for FreeRADIUS server"
	mkdir -p "${subpkgdir}"${radlibdir}
	mv "${pkgdir}"${radlibdir}/rlm_sql_unixodbc.so \
		"${subpkgdir}"${radlibdir} || return 1
}

pam() {
	depends="freeradius=$pkgver-r$pkgrel"
	provides="freeradius3-pam=$pkgver-r$pkgrel"
	pkgdesc="PAM module for FreeRADIUS server"
	mkdir -p "${subpkgdir}"${radlibdir}
	mv "${pkgdir}"${radlibdir}/rlm_pam* "${subpkgdir}"${radlibdir} \
		|| return 1
}

rest() {
	depends="freeradius=$pkgver-r$pkgrel"
	pkgdesc="REST module for FreeRADIUS server"
	mkdir -p "${subpkgdir}"${radlibdir}
	mv "${pkgdir}"${radlibdir}/rlm_rest* "${subpkgdir}"${radlibdir} \
		|| return 1
}

redis() {
	depends="freeradius=$pkgver-r$pkgrel"
	pkgdesc="Redis modules for FreeRADIUS server"
	mkdir -p "${subpkgdir}"${radlibdir}
	mv "${pkgdir}"${radlibdir}/rlm_redis* "${subpkgdir}"${radlibdir} \
		|| return 1
}

md5sums="b34a8b99beb2f225511f5a645dc8cc40  freeradius-server-3.0.10.tar.gz
fc6693f3df5a0694610110287a28568a  freeradius.confd
e27f11a11fa167b5185d3e11de79d3bc  freeradius.initd
d86558365a1deea4914ed139797805b0  musl-fix-headers.patch
ecd9ecfba4cf86a203de6faf8398c44a  disable-cert-generation.patch
f8a7b00835f2108acc06af212cede16e  freeradius-305-default-config.patch
5171fca6629baeb274a9b17e02683163  fix-scopeid.patch
33381b3a80d2e091a0f0250edb66223e  freeradius-310-ignore-callbacks-for-pseudo-content-types.patch
b27235a8dc9f8e8fe6d0ea700d29cffa  freeradius-3010-send-acct-pings-to-acct-port.patch"
sha256sums="e8825518bde1d9787f7f9ea1e9fec7ae5282af9c3362d2fa360f60c4db6f77ec  freeradius-server-3.0.10.tar.gz
2d5b3e1af1299373182f2c8021bdf45c29db5d82b0a077b965a16ded32cb6292  freeradius.confd
a5208f13420c28446b85dfc48cb9193a4651c994d15cc2c9b0bc43734c66e8f0  freeradius.initd
872aaebf86a663f819460d98924a9dc1f3e428facac6930dc98d1e442df1633f  musl-fix-headers.patch
008fa3a4da7b3c01df238bf492a8ccda4077289c02c553a60ad8f4439ec136a2  disable-cert-generation.patch
02cad546ffaf3f9be531cb45b96c7fb31f83c717e40ece4ff28a73c86f921f33  freeradius-305-default-config.patch
aad4796f06a5891b3d48d6ded926ffeb7b9fa84cc1c4a1f1be76bced02694023  fix-scopeid.patch
c9797672a1aa5b67206239d34aea9fb0d550af892fc848515b0f48647fa033aa  freeradius-310-ignore-callbacks-for-pseudo-content-types.patch
96e9628bd423fc89e0dd0c0211f83c3f5b940a9236ce12eb63e40dfcd7749f2e  freeradius-3010-send-acct-pings-to-acct-port.patch"
sha512sums="7546d54ca9ae1189f17fa97a8c6f6e15486d61dda8819b15f883ba48fbd6629f4728ba41490b51cb08eb1399090c16eca1b559c22ee19f3a770f1ce7ce23a8d5  freeradius-server-3.0.10.tar.gz
e248159c0a44f722e405c51c8015d9ad672e42ad0d38ca28f8a051ff911aa4d3e630b9bd4543e9d610940bc4ae50c022594e219ce341b36abe85c572acad418b  freeradius.confd
ba3c424d4eabb147c7aa3e31575a87ddb26b6a792d2a8714e73d8763e07854326a03a83991a7420246ca06bf0b93d0a6f23ec198f5e48647f9d25b40067e852a  freeradius.initd
c49e5eec7497fccde5fd09dba1ea9b846e57bc88015bd81640aa531fb5c9b449f37136f42c85fe1d7940c5963aed664b85da28442b388c9fb8cc27873df03b2d  musl-fix-headers.patch
09b78c6baa992f82ab81c43aad6792536a4708d460170f0a373e242a5fafe8db10662dc7fcef99a966b828ed91fa7fe38567c961c938de9a447f1ee03aebb142  disable-cert-generation.patch
b69b899da6f80dbdb7422847536e37461315ba587a07fedc1eee28b96be7d16993b758ccd34e3a271ce2937d72c6ddff878aec61a3a4c0750deaaa959d10ed5e  freeradius-305-default-config.patch
41d478c0e40ff82fc36232964037c1ab8ffca9fdbb7dca02ed49319906e751c133b5d7bc7773c645cec6d9d39d1de69cba25e8d59afa8d6662563dd17f35f234  fix-scopeid.patch
35533488015d5f4b829c2a6c962a437ca50c7d86bb0d650fc621770cddb3108e92e9fe5f88b3b9d7657fcc9b91e5b00162aa125ed9a4374229b930d62cc0d847  freeradius-310-ignore-callbacks-for-pseudo-content-types.patch
412c817db0fa64a7906f252e5dc6d356834a4791c5c0ae242f6aa9abedd237b928114b0c2bedc3fc6c24e2ee41891597e44f5dea35373bfc4b27bc4cfdff764e  freeradius-3010-send-acct-pings-to-acct-port.patch"