# Contributor: Natanael Copa # Maintainer: Leonardo Arena pkgname=freeradius pkgver=2.2.2 pkgrel=2 pkgdesc="RADIUS (Remote Authentication Dial-In User Service) server" url="http://freeradius.org/" arch="all" license="GPL" depends="freeradius-radclient freeradius-lib" makedepends="openssl-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="radius" pkgusers="radius" 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 $pkgname-webif $pkgname-webif-doc" source="ftp://ftp.freeradius.org/pub/freeradius/$pkgname-server-$pkgver.tar.gz freeradius.confd freeradius.initd 0001-Fix-errors.patch " _builddir="$srcdir"/$pkgname-server-$pkgver 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 # 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 \ --build=$CBUILD \ --host=$CHOST \ --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 radius "$pkgdir"/etc/raddb install -d -m0750 -o radius -g radius "$pkgdir"/var/run/radius install -d -m0750 -o radius -g radius "$pkgdir"/var/log/radius install -d -m0750 -o radius -g radius "$pkgdir"/var/log/radius/radacct make -j1 R="$pkgdir" LIBTOOL="$PWD/libtool" install #sed -i -e 's:^#user *= *radius:user = radiusd:;s:^#group *= *radius:group = radiusd:' \ # "$pkgdir"/etc/raddb/radiusd.conf || exit 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 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" 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" depends="" 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" 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" arch="noarch" mkdir -p $subpkgdir/etc/raddb/sql mv $pkgdir/etc/raddb/sql/mssql $subpkgdir/etc/raddb/sql } oracle() { depends="freeradius" arch="noarch" mkdir -p $subpkgdir/etc/raddb/sql mv $pkgdir/etc/raddb/sql/oracle $subpkgdir/etc/raddb/sql } perl() { depends="freeradius 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" 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 python" mkdir -p $subpkgdir/usr/lib/freeradius mv $pkgdir/usr/lib/freeradius/rlm_python* $subpkgdir/usr/lib/freeradius } radclient() { depends="" mkdir -p $subpkgdir/usr/bin mv $pkgdir/usr/bin/radclient $subpkgdir/usr/bin/radclient } unixodbc() { depends="freeradius" mkdir -p $subpkgdir/usr/lib/freeradius mv $pkgdir/usr/lib/freeradius/rlm_sql_unixodbc* $subpkgdir/usr/lib/freeradius } pam() { depends="freeradius" mkdir -p $subpkgdir/usr/lib/freeradius mv $pkgdir/usr/lib/freeradius/rlm_pam* $subpkgdir/usr/lib/freeradius } webif() { depends="php" pkgdesc="Dialupadmin interface for FreeRADIUS" arch="noarch" mkdir -p $subpkgdir/usr/share/webapps/dialupadmin mkdir -p $subpkgdir/usr/share/doc/freeradius/dialupadmin mkdir -p $subpkgdir/etc/raddb/dialupadmin for dir in bin htdocs html lib sql; do mv $_builddir/dialup_admin/$dir \ $subpkgdir/usr/share/webapps/dialupadmin || exit 1 done mkdir -p $subpkgdir-doc/usr/share/doc/freeradius/dialupadmin mv $_builddir/dialup_admin/doc/* \ $subpkgdir-doc/usr/share/doc/freeradius/dialupadmin || exit 1 mv $_builddir/dialup_admin/README \ $subpkgdir-doc/usr/share/doc/freeradius/dialupadmin || exit 1 mv $_builddir/dialup_admin/conf/* $subpkgdir/etc/raddb/dialupadmin || exit 1 for file in $(ls $subpkgdir/usr/share/webapps/dialupadmin/bin) do sed -i "s|/usr/local/dialup_admin/conf|/etc/raddb/dialupadmin|g" \ $subpkgdir/usr/share/webapps/dialupadmin/bin/$file sed -i "s|/data/local/dialupadmin/conf|/etc/raddb/dialupadmin|g" \ $subpkgdir/usr/share/webapps/dialupadmin/bin/$file done } md5sums="863fa5eb2656621a73ec44f0bb18e8f6 freeradius-server-2.2.2.tar.gz fc6693f3df5a0694610110287a28568a freeradius.confd 5d83f40bd5c3a5d4e4a5f43c29e7f0da freeradius.initd e4178d862dab58644a57c5a625c35c85 0001-Fix-errors.patch" sha256sums="96317c27ada5f8284fbabf018ed86baf8bddb463892d4627d6b3d03bbc1fa182 freeradius-server-2.2.2.tar.gz 2d5b3e1af1299373182f2c8021bdf45c29db5d82b0a077b965a16ded32cb6292 freeradius.confd 78b1de6399f99c16f761700024bcf171557a64060ef4801b04b65886fb2d365d freeradius.initd 64d35574ff5419a09ffea930562e464658d2dd26a27adfa9af9f7fe5daf69b9a 0001-Fix-errors.patch" sha512sums="07d7909e29427f9dd04208c62ac8e7862024756a15282856ae073af5288aa82e16b57b9382d233a7e9c094f2a099a8103d8dcfbb7ef0c0fedd354fee7b7cd3c5 freeradius-server-2.2.2.tar.gz e248159c0a44f722e405c51c8015d9ad672e42ad0d38ca28f8a051ff911aa4d3e630b9bd4543e9d610940bc4ae50c022594e219ce341b36abe85c572acad418b freeradius.confd 34c98c4ccded62aaa4a7539a9139288f7c39dbd8b6ca816c92cf6b0ae7546f81aa6c529dea943af5d8958cac2aad3d368a90f455ceaef725fce9fe5ef0cee84d freeradius.initd aa033b4b401c825197d7b09f464135a30557baa2328a2dde2a1f7cd912d9a48fdbade4564ab1230d3c393c63d97afd9672d633846fbdac5c7887904f69bd04ec 0001-Fix-errors.patch"