= Building on RHEL7 or Centos7

There are only a few requirements to building on RHEL, or CentoS

== Hard dependencies

----
yum -y install libtalloc-devel
----

== Getting the source

include:/building/Getting-the-Source

== Building from source

----
# Use ./configure --enable-developer if you're debugging issues, or using unstable code.
./configure
make
sudo make install
----

== Building Packages

=== With Oracle support

include:RPMs-with-Oracle-support

== Upgrading GCC (>= v4.0.x and master branch only)

> GCC upgrade only required for versions >= v4.0.x you can skip this step for v3.0.x and below.

RHE7 ships with GCC 4.8.5 but we require GCC >= 4.9.0 for FreeRADIUS >= v4.0.x.

Fortunately, the ``devtoolset-3`` series of packages provides a later version of GCC.

Follow the instructions here to enable the [devtoolset-3 repository](https://www.softwarecollections.org/en/scls/rhscl/devtoolset-3/).

To install:

----
yum -y install devtoolset-3-gcc devtoolset-3-gcc-c++
----

and then to get to a shell with the correct environment:

----
scl enable devtoolset-3 bash
----

Or can set ``CC=/opt/rh/devtoolset-3/root/usr/bin/gcc`` in your environment, which works just as well.

If you're building on older versions of RedHat then you'll need to compile GCC from source.


=== libkqueue

> libkqueue required for >= v4.0.x, you can skip this step for v3.0.x and below.

Unfortunately neither RHEL nor Centos 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.

Building the libkqueue RPM will require these packages:

----
yum -y install cmake3
----

include:libkqueue-rpm
