# Contributor: Vladyslav Frolov # Contributor: Ɓukasz Jendrysik # Contributor: Natanael Copa # Maintainer: Leonardo Arena 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"