# Contributor: Vladyslav Frolov # Contributor: Ɓukasz Jendrysik # Contributor: Natanael Copa # Maintainer: Leonardo Arena setvar pkgname = 'freeradius' setvar _realname = 'freeradius' setvar pkgver = '3.0.15' setvar pkgrel = '2' setvar pkgdesc = ""RADIUS (Remote Authentication Dial-In User Service) server"" setvar url = ""http://freeradius.org/"" setvar arch = ""all"" setvar license = ""GPL"" setvar depends = """" setvar makedepends = ""libressl-dev mariadb-dev postgresql-dev gdbm-dev readline-dev bash libtool autoconf automake perl-dev python2-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 net-snmp-tools"" setvar pkggroups = ""radius"" setvar pkgusers = ""radius"" setvar install = ""$pkgname.pre-install"" setvar 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 $pkgname-checkrad"" setvar provides = ""freeradius3=$pkgver-r$pkgrel"" setvar source = ""ftp://ftp.freeradius.org/pub/freeradius/$_realname-server-$pkgver.tar.gz $pkgname.confd $pkgname.initd musl-fix-headers.patch fix-scopeid.patch freeradius-313-default-config.patch "" setvar builddir = ""$srcdir"/$_realname-server-$pkgver" setvar radconfdir = ""/etc/raddb"" setvar radmodsdir = ""$radconfdir/mods-available"" setvar radlibdir = ""/usr/lib/freeradius"" setvar radmodsconfdir = ""$radconfdir/mods-config"" setvar ldpath = "$radlibdir" proc prepare { default_prepare update_config_sub # remove certs generation # rm -rf raddb/certs } proc 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" make -j1 LDFLAGS="$LDFLAGS -lssl" } proc package { cd $builddir install -d -m0750 -o root -g radius \ "${pkgdir}"${radconfdir} 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' PACKAGE=yes' make -j1 R="$pkgdir" 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 misses to create this mkdir -p "${pkgdir}"${radmodsconfdir}/sql/ippool-dhcp/postgresql } proc _mvdb { for dir in ippool-dhcp ippool counter main cui { mkdir -p "${subpkgdir}"${radmodsconfdir}/sql/$dir mv "${pkgdir}"${radmodsconfdir}/sql/$dir/$1 \ "${subpkgdir}"${radmodsconfdir}/sql/$dir } mkdir -p "${subpkgdir}"${radlibdir} mv "${pkgdir}"${radlibdir}/rlm_sql_${1}.so "${subpkgdir}"${radlibdir} } proc eap { setvar depends = ""freeradius=$pkgver-r$pkgrel"" setvar provides = ""freeradius3-eap=$pkgver-r$pkgrel"" setvar pkgdesc = ""EAP module for FreeRADIUS server"" mkdir -p "${subpkgdir}"${radlibdir} "$subpkgdir"/usr/bin mv "${pkgdir}"${radlibdir}/rlm_eap*.so "${subpkgdir}"${radlibdir} mv "$pkgdir"/usr/bin/radeapclient "$subpkgdir"/usr/bin mkdir -p "${subpkgdir}"${radmodsdir} "$subpkgdir"$radconfdir/mods-enabled mv "${pkgdir}"${radmodsdir}/eap "${subpkgdir}"${radmodsdir} mv "$pkgdir"$radconfdir/mods-enabled/eap \ "$subpkgdir"$radconfdir/mods-enabled/ mkdir -p "${subpkgdir}"${radconfdir} mv "${pkgdir}"${radconfdir}/certs "${subpkgdir}"${radconfdir} } proc ldap { setvar depends = ""freeradius=$pkgver-r$pkgrel"" setvar provides = ""freeradius3-ldap=$pkgver-r$pkgrel"" setvar pkgdesc = ""LDAP module for FreeRADIUS server"" mkdir -p "${subpkgdir}"${radlibdir} mv "${pkgdir}"${radlibdir}/rlm_ldap* "${subpkgdir}"${radlibdir} } proc krb5 { setvar depends = ""freeradius=$pkgver-r$pkgrel"" setvar provides = ""freeradius3-krb5=$pkgver-r$pkgrel"" setvar pkgdesc = ""Kerberos module for FreeRADIUS server"" mkdir -p "${subpkgdir}"${radlibdir} mv "${pkgdir}"${radlibdir}/rlm_krb5* "${subpkgdir}"${radlibdir} } proc lib { setvar depends = """" setvar pkgdesc = ""Freeradius shared libraries"" mkdir -p "${subpkgdir}"${radlibdir} "${subpkgdir}"${radconfdir} \ "$subpkgdir"/usr/share/freeradius mv "${pkgdir}"${radlibdir}/libfreeradius-*.so \ "${subpkgdir}"${radlibdir} mv "${pkgdir}"/usr/share/freeradius/* \ "${subpkgdir}"/usr/share/freeradius } proc sql { setvar depends = ""freeradius=$pkgver-r$pkgrel"" setvar provides = ""freeradius3-sql=$pkgver-r$pkgrel"" setvar pkgdesc = ""SQL module for FreeRADIUS server"" mkdir -p "${subpkgdir}"${radlibdir} for lib in sql sqlippool sql_null sqlcounter { mv "${pkgdir}"${radlibdir}/rlm_${lib}.so \ "${subpkgdir}"${radlibdir} } mkdir -p "${subpkgdir}"${radconfdir}/sites-available mv "${pkgdir}"${radconfdir}/sites-available/buffered-sql \ "${subpkgdir}"${radconfdir}/sites-available mkdir -p "${subpkgdir}"${radmodsdir} mv "${pkgdir}"${radmodsdir}/*sql* "${subpkgdir}"${radmodsdir} } proc mysql { setvar depends = ""freeradius-sql=$pkgver-r$pkgrel"" setvar provides = ""freeradius3-mysql=$pkgver-r$pkgrel"" setvar pkgdesc = ""MySQL module for FreeRADIUS server"" _mvdb mysql } proc mssql { setvar depends = ""freeradius-sql=$pkgver-r$pkgrel"" setvar provides = ""freeradius3-mssql=$pkgver-r$pkgrel"" setvar pkgdesc = ""MSSQL module for FreeRADIUS server"" mkdir -p "${subpkgdir}"${radmodsconfdir}/sql/main mv "${pkgdir}"${radmodsconfdir}/sql/main/mssql \ "${subpkgdir}"${radmodsconfdir}/sql/main } proc perl { setvar depends = ""freeradius=$pkgver-r$pkgrel perl"" setvar provides = ""freeradius3-perl=$pkgver-r$pkgrel"" setvar pkgdesc = ""Perl module for FreeRADIUS server"" mkdir -p "${subpkgdir}"${radlibdir} mv "${pkgdir}"${radlibdir}/rlm_perl* "${subpkgdir}"${radlibdir} mkdir -p "${subpkgdir}"${radconfdir}/mods-available mv "${pkgdir}"${radconfdir}/mods-available/perl \ "${subpkgdir}"${radconfdir}/mods-available/perl } proc checkrad { setvar depends = ""perl perl-net-telnet perl-snmp-session net-snmp-tools"" setvar pkgdesc = ""Check if a user is (still) logged in on a certain port"" mkdir -p "$subpkgdir"/usr/sbin mv "$pkgdir"/usr/sbin/checkrad "$subpkgdir"/usr/sbin/checkrad } proc postgresql { setvar depends = ""freeradius-sql=$pkgver-r$pkgrel"" setvar provides = ""freeradius3-postgresql=$pkgver-r$pkgrel"" setvar pkgdesc = ""PostgreSQL module for FreeRADIUS server"" _mvdb postgresql } proc python { setvar depends = ""freeradius=$pkgver-r$pkgrel python2"" setvar provides = ""freeradius3-python=$pkgver-r$pkgrel"" setvar pkgdesc = ""Python module for FreeRADIUS server"" mkdir -p "${subpkgdir}"${radlibdir} mv "${pkgdir}"${radlibdir}/rlm_python* "${subpkgdir}"${radlibdir} for dir in $radmodsdir $radmodsconfdir { mkdir -p "${subpkgdir}"$dir mv "${pkgdir}"$dir/python "${subpkgdir}"$dir } } proc radclient { setvar depends = """" setvar provides = ""freeradius3-radclient=$pkgver-r$pkgrel"" setvar pkgdesc = ""Client for FreeRADIUS server"" mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/radclient "$subpkgdir"/usr/bin/radclient } proc sqlite { setvar depends = ""freeradius-sql=$pkgver-r$pkgrel"" setvar provides = ""freeradius3-sqlite=$pkgver-r$pkgrel"" setvar pkgdesc = ""SQLite module for FreeRADIUS server"" _mvdb sqlite } proc unixodbc { setvar depends = ""freeradius=$pkgver-r$pkgrel"" setvar provides = ""freeradius3-unixodbc=$pkgver-r$pkgrel"" setvar pkgdesc = ""ODBC module for FreeRADIUS server"" mkdir -p "${subpkgdir}"${radlibdir} mv "${pkgdir}"${radlibdir}/rlm_sql_unixodbc.so \ "${subpkgdir}"${radlibdir} } proc pam { setvar depends = ""freeradius=$pkgver-r$pkgrel"" setvar provides = ""freeradius3-pam=$pkgver-r$pkgrel"" setvar pkgdesc = ""PAM module for FreeRADIUS server"" mkdir -p "${subpkgdir}"${radlibdir} mv "${pkgdir}"${radlibdir}/rlm_pam* "${subpkgdir}"${radlibdir} } proc rest { setvar depends = ""freeradius=$pkgver-r$pkgrel"" setvar pkgdesc = ""REST module for FreeRADIUS server"" mkdir -p "${subpkgdir}"${radlibdir} mv "${pkgdir}"${radlibdir}/rlm_rest* "${subpkgdir}"${radlibdir} } proc redis { setvar depends = ""freeradius=$pkgver-r$pkgrel"" setvar pkgdesc = ""Redis modules for FreeRADIUS server"" mkdir -p "${subpkgdir}"${radlibdir} mv "${pkgdir}"${radlibdir}/rlm_redis* "${subpkgdir}"${radlibdir} } setvar sha512sums = ""9b92045b445032bde9d421499fdc0f6a08d602c501730c31a8d3974b21cc5c12c78abb024ed62a176c7aa7fe260fe1d19386aaf558e0fecfcd3a0ba7aa47499c freeradius-server-3.0.15.tar.gz e248159c0a44f722e405c51c8015d9ad672e42ad0d38ca28f8a051ff911aa4d3e630b9bd4543e9d610940bc4ae50c022594e219ce341b36abe85c572acad418b freeradius.confd ba3c424d4eabb147c7aa3e31575a87ddb26b6a792d2a8714e73d8763e07854326a03a83991a7420246ca06bf0b93d0a6f23ec198f5e48647f9d25b40067e852a freeradius.initd c49e5eec7497fccde5fd09dba1ea9b846e57bc88015bd81640aa531fb5c9b449f37136f42c85fe1d7940c5963aed664b85da28442b388c9fb8cc27873df03b2d musl-fix-headers.patch 41d478c0e40ff82fc36232964037c1ab8ffca9fdbb7dca02ed49319906e751c133b5d7bc7773c645cec6d9d39d1de69cba25e8d59afa8d6662563dd17f35f234 fix-scopeid.patch 666e15a3c3e5b98ff8c3168de85b341606af5e2790af379ddec46464e9d7de14a715876a34ba1eb7fa47ddead23f7134128d591db32309db0e4acbdb6f21ef5e freeradius-313-default-config.patch""