# Contributor: Natanael Copa # Maintainer: Leonardo Arena pkgname=freeradius pkgver=2.2.5 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 sqlite-dev" pkggroups="radius" pkgusers="radius" install="freeradius.pre-install" subpackages="$pkgname-doc $pkgname-dev $pkgname-dbg $pkgname-ldap $pkgname-lib $pkgname-mssql $pkgname-mysql $pkgname-oracle $pkgname-perl $pkgname-postgresql $pkgname-python $pkgname-radclient $pkgname-sqlite $pkgname-unixodbc $pkgname-pam $pkgname-webif $pkgname-webif-doc" source="ftp://ftp.freeradius.org/pub/freeradius/$pkgname-server-$pkgver.tar.gz freeradius-fix-openssl-version-check.patch 0001-Use-threadsafe-wrapper-for-getpwnam-getgrnam.patch freeradius.confd freeradius.initd " _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 # disable directive that pulls in freeradius-mysql package sed -i 's%$INCLUDE ${confdir}/sql/mysql/ippool-dhcp.conf%#$INCLUDE ${confdir}/sql/mysql/ippool-dhcp.conf%' \ raddb/modules/dhcp_sqlippool || 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 \ --with-experimental-modules \ --with-rlm_sql_sqlite \ --without-rlm_sql_oracle \ --without-rlm_sql_iodbc \ --without-rlm_sql_firebird \ --without-rlm_sql_db2 \ --without-rlm_ruby \ --without-rlm_rediswho \ --without-rlm_redis \ --without-rlm_krb5 \ || 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" || 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 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 || return 1 mkdir -p $subpkgdir/etc/raddb/modules mv $pkgdir/etc/raddb/modules/ldap $subpkgdir/etc/raddb/modules \ || return 1 mkdir -p $subpkgdir/usr/lib/freeradius mv $pkgdir/usr/lib/freeradius/rlm_ldap* $subpkgdir/usr/lib/freeradius \ || return 1 } lib() { replaces="freeradius" depends="" mkdir -p $subpkgdir/usr/lib/freeradius $subpkgdir/etc/raddb \ $subpkgdir/usr/share || return 1 mv $pkgdir/usr/lib/freeradius/libfreeradius-*.so \ $subpkgdir/usr/lib/freeradius || return 1 mv $pkgdir/etc/raddb/dictionary $subpkgdir/etc/raddb/dictionary \ || return 1 mv $pkgdir/usr/share/freeradius $subpkgdir/usr/share/freeradius \ || return 1 } mysql() { depends="freeradius" mkdir -p $subpkgdir/etc/raddb/sql mv $pkgdir/etc/raddb/sql/mysql $subpkgdir/etc/raddb/sql || return 1 mv $pkgdir/etc/raddb/sql/ndb $subpkgdir/etc/raddb/sql || return 1 mkdir -p $subpkgdir/usr/lib/freeradius mv $pkgdir/usr/lib/freeradius/rlm_sql_mysql* \ $subpkgdir/usr/lib/freeradius || return 1 } mssql() { depends="freeradius" arch="noarch" mkdir -p $subpkgdir/etc/raddb/sql mv $pkgdir/etc/raddb/sql/mssql $subpkgdir/etc/raddb/sql || return 1 } oracle() { depends="freeradius" arch="noarch" mkdir -p $subpkgdir/etc/raddb/sql mv $pkgdir/etc/raddb/sql/oracle $subpkgdir/etc/raddb/sql || return 1 } perl() { depends="freeradius perl" mkdir -p $subpkgdir/usr/lib/freeradius mv $pkgdir/usr/lib/freeradius/rlm_perl* $subpkgdir/usr/lib/freeradius \ || return 1 mkdir -p $subpkgdir/usr/bin mv $pkgdir/usr/sbin/checkrad $subpkgdir/usr/bin/checkrad || return 1 mkdir -p $subpkgdir/etc/raddb/modules mv $pkgdir/etc/raddb/modules/perl $subpkgdir/etc/raddb/modules/perl \ || return 1 } postgresql() { depends="freeradius" mkdir -p $subpkgdir/etc/raddb/sql mv $pkgdir/etc/raddb/sql/postgresql $subpkgdir/etc/raddb/sql || return 1 mkdir -p $subpkgdir/usr/lib/freeradius mv $pkgdir/usr/lib/freeradius/rlm_sql_postgresql* \ $subpkgdir/usr/lib/freeradius || return 1 } python() { depends="freeradius python" mkdir -p $subpkgdir/usr/lib/freeradius mv $pkgdir/usr/lib/freeradius/rlm_python* \ $subpkgdir/usr/lib/freeradius || return 1 } radclient() { depends="" mkdir -p $subpkgdir/usr/bin mv $pkgdir/usr/bin/radclient $subpkgdir/usr/bin/radclient || return 1 } sqlite() { depends="freeradius" mkdir -p $subpkgdir/usr/lib/freeradius mv $pkgdir/usr/lib/freeradius/rlm_sql_sqlite* \ $subpkgdir/usr/lib/freeradius || return 1 } unixodbc() { depends="freeradius" mkdir -p $subpkgdir/usr/lib/freeradius mv $pkgdir/usr/lib/freeradius/rlm_sql_unixodbc* \ $subpkgdir/usr/lib/freeradius || return 1 } pam() { depends="freeradius" mkdir -p $subpkgdir/usr/lib/freeradius mv $pkgdir/usr/lib/freeradius/rlm_pam* $subpkgdir/usr/lib/freeradius \ || return 1 } 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 || return 1 done mkdir -p $subpkgdir-doc/usr/share/doc/freeradius/dialupadmin mv $_builddir/dialup_admin/doc/* \ $subpkgdir-doc/usr/share/doc/freeradius/dialupadmin || return 1 mv $_builddir/dialup_admin/README \ $subpkgdir-doc/usr/share/doc/freeradius/dialupadmin || return 1 mv $_builddir/dialup_admin/conf/* $subpkgdir/etc/raddb/dialupadmin \ || return 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="da77eb23b4c5e2f9fc55119025a91b61 freeradius-server-2.2.5.tar.gz fde9be89b76ed262db1198dfbeb237c6 freeradius-fix-openssl-version-check.patch f28735060b63d88875783817bcd95586 0001-Use-threadsafe-wrapper-for-getpwnam-getgrnam.patch fc6693f3df5a0694610110287a28568a freeradius.confd b3eefdfc466d80c241cd1bb11face405 freeradius.initd" sha256sums="8c4c2a0b600a8d85d2235589a5e80d4fefd1f52317e9daf8193731566fa9d012 freeradius-server-2.2.5.tar.gz c0f15867924ae73511cd009cb3c53cbd7eda298ff708a54f02d1900da5ebfc06 freeradius-fix-openssl-version-check.patch 115ae559fc5c8a638c5ebb510cb58478df66ceeb61a6768584e592e4a1fbc9d4 0001-Use-threadsafe-wrapper-for-getpwnam-getgrnam.patch 2d5b3e1af1299373182f2c8021bdf45c29db5d82b0a077b965a16ded32cb6292 freeradius.confd 719bbe4a44df60e76f68d327f7ee70d4dfd6a95e51f9cb01f850cd4ed153f9de freeradius.initd" sha512sums="511599b4f4f5906441d0cda61946341f2226b9aae69b6f68b03a19898b6385499a8221933c191232d50f736cab93f0f6f271e4defe4552e7738cb21e2415f053 freeradius-server-2.2.5.tar.gz 77ec50125b38e05ee784b4cf724a31074844ea9c935c0d28aa51bd71e3e8a5399ba5194958f65f8c7f6c501b67ea6560da3869917f661178afbe602062a6fdc6 freeradius-fix-openssl-version-check.patch 4fb99b6a0f22cb844382139d448e24cc1b698452e30c1b0f06674a6fbd21463bcece2f2f4121618f9c7c57c8eb882eee35511b4dcea6e2a0904e27e5f2a6a679 0001-Use-threadsafe-wrapper-for-getpwnam-getgrnam.patch e248159c0a44f722e405c51c8015d9ad672e42ad0d38ca28f8a051ff911aa4d3e630b9bd4543e9d610940bc4ae50c022594e219ce341b36abe85c572acad418b freeradius.confd 57f12f06ef9112817204dec4ab2591bcd4baf3c8a033afadb2376e115911f76045c70b7a2c80b294a83dac4e05b1ff22335a3bcc9af1c0760682622ab2cdbd31 freeradius.initd"