not logged in | [Login]

Hard dependencies

yum -y install libtalloc-devel

libkqueue

Unfortunately neither Suse nor OpenSuse provide an RPM for libkqueue. The instructions below will produce a libkqueue RPM, which can then be installed for building from source, or distributed with the FreeRADIUS RPMs when building packages.

Latest version of libkqueue can be found here.

# Replace v2.1.0 with latest version
VERSION=2.1.0
wget https://github.com/mheily/libkqueue/archive/v${VERSION}.tar.gz
tar -xvzf v${VERSION}.tar.gz
cd ./libkqueue-${VERSION}
sed -ie "s/Version:.*/Version:    ${VERSION}/" ./libkqueue.spec
sed -ie "s/%{_mandir}\/man2\/kevent.2.*//" ./libkqueue.spec
sed -ie "s/^%{make_install}.*/%{make_install} \&\& rm -rf %{_libdir}\/*.a \&\& rm -rf %{_libdir}\/*.la/" ./libkqueue.spec
autoreconf -i
cd ..
tar -czf ./libkqueue-${VERSION}.tar.gz ./libkqueue-${VERSION}

# Only required if you don't already have a build environment setup
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
cp ./libkqueue-${VERSION}.tar.gz ~/rpmbuild/SOURCES/libkqueue-${VERSION}.tar.gz
rpmbuild -ba ./libkqueue-${VERSION}/libkqueue.spec

Getting the source

Do one of the following:

  • From the git repository (version 3.0.x)
git clone https://github.com/FreeRADIUS/freeradius-server.git
cd freeradius-server
git checkout v3.0.x
  • From the git repository (version 3.0.17 - latest released version)
git clone https://github.com/FreeRADIUS/freeradius-server.git
cd freeradius-server
git checkout release_3_0_17
  • From a zip file (version 3.0.x - most recent stable version, though unreleased)
wget https://github.com/FreeRADIUS/freeradius-server/archive/v3.0.x.zip
unzip v3.0.x.zip
cd freeradius-server-3.0.x/
  • From a zip file
wget https://github.com/FreeRADIUS/freeradius-server/archive/release_3_0_17.zip
unzip v3.0.17.zip
cd freeradius-server-3.0.17/

Building SUSE packages

On SUSE Linux it should be a simple matter of taking the latest FreeRADIUS release tarball and dropping it in /usr/src/packages/SOURCES along with the other files from thesuse/ directory inside the tarball with the exception of freeradius.spec which goes in /usr/src/packages/SPECS

Then simply run:

rpmbuild -ba /usr/src/packages/SPECS/freeradius.spec

rpmbuild will tell you if you are missing any build dependencies. If so, simply install them with yast2 -i packagename-devel then rerun rpmbuild

With Oracle support

If you wish to use Oracle you will need to recompile FreeRADIUS on a machine that has Oracle development libraries installed. FreeRADIUS is known to work both with a full Oracle installation as well as with the Oracle Instant Client SDK. Once built the resulting RPM package can be deployed with just the Oracle Instant Client (No need for the SDK on production machines)

Most rpm packages available do not included oraclesql.conf due to the fact that they also don't contain the Oracle driver module (due to copyright restrictions).

If you have the Oracle header files in a sane location it should be a simple matter of taking the latest FreeRADIUS release tarball and dropping it in /usr/src/packages/SOURCES along with the other files from the suse/ or redhat/ directory inside the tarball with the exception of freeradius.spec which goes in /usr/src/packages/SPECS

Then edit /usr/src/packages/SPECS/freeradius.spec and change:

%define _oracle_support 0

to:

%define _oracle_support 1