2016-04-25 07:11:16 +00:00

312 lines
11 KiB
Plaintext

# 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.11
pkgrel=2
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
freeradius-305-default-config.patch
fix-scopeid.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
PACKAGE=yes 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="9428ba0d25293a2b5acd3b85f3dd46d0 freeradius-server-3.0.11.tar.gz
fc6693f3df5a0694610110287a28568a freeradius.confd
e27f11a11fa167b5185d3e11de79d3bc freeradius.initd
d86558365a1deea4914ed139797805b0 musl-fix-headers.patch
f8a7b00835f2108acc06af212cede16e freeradius-305-default-config.patch
5171fca6629baeb274a9b17e02683163 fix-scopeid.patch"
sha256sums="b97b72915315f2dcd34001af2c1737947f91ad9104a40408b92b030356e25d59 freeradius-server-3.0.11.tar.gz
2d5b3e1af1299373182f2c8021bdf45c29db5d82b0a077b965a16ded32cb6292 freeradius.confd
a5208f13420c28446b85dfc48cb9193a4651c994d15cc2c9b0bc43734c66e8f0 freeradius.initd
872aaebf86a663f819460d98924a9dc1f3e428facac6930dc98d1e442df1633f musl-fix-headers.patch
02cad546ffaf3f9be531cb45b96c7fb31f83c717e40ece4ff28a73c86f921f33 freeradius-305-default-config.patch
aad4796f06a5891b3d48d6ded926ffeb7b9fa84cc1c4a1f1be76bced02694023 fix-scopeid.patch"
sha512sums="451ba4052db68f9855aff96e12df282b31a98973361001f393dac23cb030274d9d9fb9ae85f7feef077e69d7d57152e427fb861892c8fd700b3e17e3389fea64 freeradius-server-3.0.11.tar.gz
e248159c0a44f722e405c51c8015d9ad672e42ad0d38ca28f8a051ff911aa4d3e630b9bd4543e9d610940bc4ae50c022594e219ce341b36abe85c572acad418b freeradius.confd
ba3c424d4eabb147c7aa3e31575a87ddb26b6a792d2a8714e73d8763e07854326a03a83991a7420246ca06bf0b93d0a6f23ec198f5e48647f9d25b40067e852a freeradius.initd
c49e5eec7497fccde5fd09dba1ea9b846e57bc88015bd81640aa531fb5c9b449f37136f42c85fe1d7940c5963aed664b85da28442b388c9fb8cc27873df03b2d musl-fix-headers.patch
b69b899da6f80dbdb7422847536e37461315ba587a07fedc1eee28b96be7d16993b758ccd34e3a271ce2937d72c6ddff878aec61a3a4c0750deaaa959d10ed5e freeradius-305-default-config.patch
41d478c0e40ff82fc36232964037c1ab8ffca9fdbb7dca02ed49319906e751c133b5d7bc7773c645cec6d9d39d1de69cba25e8d59afa8d6662563dd17f35f234 fix-scopeid.patch"