See http://www.freediameter.net/trac/wiki/DebRepository for instructions on how to
install freeDiameter from existing package.

See INSTALL file for general instructions on building freeDiameter from sources.

The remaining of this file contains specific instructions for building the freeDiameter
package files for Debian and Ubuntu systems.




freeDiameter is shipped with the necessary files to generate the Debian package.
All related files are in the directory "contrib/debian" of the distribution.
As a first step, you have to link this directory from your top-level dir:
  ln -s contrib/debian

============================================

The following packages are required to compile freeDiameter from source:
 cmake make gcc g++ flex bison libsctp1 libsctp-dev libgnutls-dev libgcrypt-dev libidn2-dev

(note that libidn2 and libsctp can be avoided by defining DISABLE_SCTP and DIAMID_IDNA_REJECT)

Additionally, these ones may be useful:
 git gdb

Extensions additional dependencies:
 app_acct:
	libpq-dev

 app_sip:
 app_diameap:
 	libmysqlclient-dev

 dict_legacy_xml:
 	libxml2-dev

 dbg_interactive:
 	swig python-dev

============================================

If your debhelper environment is recent (> 7.3.9 for cmake support),
the following commands should generate the freeDiameter packages for you:

# Install the dependencies for building the source:
sudo apt-get -y install git cmake make gcc g++ bison flex libsctp-dev libgnutls-dev libgcrypt-dev libidn2-dev ssl-cert debhelper fakeroot \
   libpq-dev libmysqlclient-dev libxml2-dev swig python-dev libjsoncpp-dev

# On latest Ubuntu you will need libgnutls28-dev instead of libgnutls-dev and python2-dev instead of python-dev
# Also maybe: pkg-config libgcrypt20-dev 

# Retrieve the latest version of the source package
cd
git clone https://github.com/freeDiameter/freeDiameter.git
cd freeDiameter

# Prepare for Debian package
ln -s contrib/debian

# Build the packages
fakeroot dh binary

# Install the packages
cd ..
sudo dpkg -i *.deb


# The following lines may help you getting started.... (execute as root)
ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/ssl/certs/freeDiameter.pem
ln -s /etc/ssl/private/ssl-cert-snakeoil.key /etc/ssl/private/freeDiameter.key
zcat /usr/share/doc/freediameter-daemon/examples/freediameter.conf.sample.gz > /etc/freeDiameter/freeDiameter.conf
echo "Identity=\"localhost.localdomain\";" >> /etc/freeDiameter/freeDiameter.conf
freeDiameterd

===========================================

freeDiameter is tested regularly on all current Ubuntu distributions since Intrepid (compiled from source as described below)
Ubuntu Hardy support is known to be broken.

The Debian package has been generated with success on Debian (>=Squeeze) and Ubuntu (>=Karmic).


===========================================-
Step by step instructions without using the debhelper tools:

1) Install all packages dependencies
# sudo apt-get install git cmake make gcc g++ bison flex libsctp-dev libgnutls-dev libgcrypt-dev libidn2-dev

2) (OPTION) If you will compile modules that require postgresql, also install:
# sudo apt-get install libpq-dev
   and for mysql:
# sudo apt-get install libmysqlclient-dev

3) (OPTION) If you want a more user-friendly interface, install this:
# sudo apt-get install cmake-curses-gui

4) Retrieve the source files
# git clone https://github.com/freeDiameter/freeDiameter.git

5) Create a build directory, and enter it
# mkdir fDbuild
# cd fDbuild

6) Configure and generate the Makefiles
# cmake ../freeDiameter
# make edit_cache

7) Compile all files:
# make

8) (OPTION) See available targets:
# make help

9) (OPTION) Check the software has a correct basic behavior on your environment. -- only if you did not disable the tests in step 6
# make test

10) (OPTION) Install the software in configured locations:
# sudo make install


===========================================

Note: On Ubuntu Quantal Quetzal, you may have to force use of python 2.7
library for the dbg_interactive extension, as on some systems CMake selects the 3.2 library
by default.
