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 libidn11-dev
 
(note that libidn and libsctp can be avoided by defining DISABLE_SCTP and DIAMID_IDNA_REJECT)
 
Additionnaly, these ones may be useful:
 mercurial 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 mercurial cmake make gcc g++ bison flex libsctp-dev libgnutls-dev libgcrypt-dev libidn11-dev ssl-cert debhelper fakeroot \
   libpq-dev libmysqlclient-dev libxml2-dev swig python-dev
   
# On latest Ubuntu you will need libgnutls28-dev instead of libgnutls-dev

# Retrieve the latest version of the source package
cd 
hg clone http://www.freediameter.net/hg/freeDiameter
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 mercurial cmake make gcc g++ bison flex libsctp-dev libgnutls-dev libgcrypt-dev libidn11-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
# hg clone http://www.freediameter.net/hg/freeDiameter

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.
