Overview of the source tree
eurephia is built up in a modular way and code reuse is an important element. The source tree is divided into several smaller parts where each part or module is located.
The project is written strictly in C, but the administration utility makes use of XSLT as a template engine to display reports.
- This is where all source code used by all modules should be expected to reside
- Everything connected to the database API is found here. The generic database modules will also be located in the root of this directory. Each database driver must reside in a separate directory
- The SQLite3 database driver (edb-sqlite.so) is located here
- Everything connected to the eurephiadm, the console based administration utility.
- eurephiadm is built up by a set of commands. Each command is found in separate files here.
- The OpenVPN plug-in (eurephia-auth.so) is located in this directory
- The generic parts for the firewall integration of the plug-in
- The iptables "driver" (efw-iptables.so) for the firewall integration
- Utilities which is not installed during make install. The eurephia_init program resides here together with saltdecode. eurephia_init is used to configure a new eurephia database, while saltdecode is used for debugging and will decode the password salt hashing information.
- eurephia_init.c eurephia_saltdecode.c
Building eurephia and installing
Run the ./configure script to prepare the build. This script requires CMake (at least version 2.6) to be installed. The configure script will require some parameters, depending on which features being prepared in the build. For a complete overview of all parameters, see ./configure --help
Then run make to do the build.
To install eurephia, Run make install.
How to contribute
Contributions to the source code will be very much appreciated. Patches should be based on the master branch in the git tree. Patches should be uploaded to the project web site on sourceforge.net
Contributed patches should be prepared by using the git format-patch command.
Generic requirements for building eurephia
The following header files and libraries is required to build eurephia:
- eurephia-auth - OpenVPN authentication plug-in
- eurephia administration utility (eurephiadm and eurephia_init)