Context Navigation

This system notes describe a process to build Kea on FreeBSD 10.3. I'll first describe the process for "normal" users who only need to install and use a release version of Kea; for developers who need to build (and possibly modify) a development version, I'll add specific process and notes at the end of this memo.

This page explains how to compile Kea from sources. FreeBSD provides packages for Kea. The package is called net/kea. For details, see Install Kea from packages on this wiki page: wiki:Install#InstallKeafrompackages.

0. Install necessary tools.

Kea depends on several external packages, so you need the standard package system. The handbook suggests to run first
$ pkg audit -F which checks for known vulnerabilities in installed packages and install the package system if it was not.

Boost is required too: you have the choice to install the boost-all package which is old,

$ pkg install boost-all

or to download the distribution of a recent version of boost and use its header files so it is enough to extract the archive.

You need a crypto backend, i.e., either Botan or OpenSSL. If you choose Botan we need to install it (currently the version 1.10 is available):

$ pkg install botan110

git is not strictly necessary (you can use a distrib in a gzipped tar file) but highly recommended:

$ pkg install git

And if you'd like to run unit tests:

$ pkg install googletest

2. Optional dependencies.

You can believe you need python3 even it is no longer used by Kea:

$ pkg install python3

For generating parsers flex is included but bison version 3 is required for Kea and is not available as a package or a port. So you have to compile and install by yourself if you really want to generate parser files (currently from src/lib/eval/parse.yy only).

For generating documentation you need docbook-xsl, libxslt (for xsltproc), elinks and doxygen (which brings many x11, graphic, latex and other packages with it):

The boot library configure arguments are not required (configure will detect they are needed and add them). With an old version of boost (including from the current package) you can get some errors from boost includes. In this case warnings should not be converted into errors:

With a recent (e.g., 1.61.0) version of boost the configure command becomes: