Compile your own SVN version of Ekiga on Ubuntu

From Ekiga

Jump to: navigation, search

This how-to is for Ubuntu 7.10 Gutsy and Ubuntu 8.04 Hardy .

image:Emblem-important.png Important: OPAL don't need a recent FFMPEG any more, thus Ekiga SVN will install without messing your Ubuntu distribution as it did previously. Only the stable version of Ekiga and its dependencies (PTLIB and OPAL) will be removed from your distribution. (2008-05-23)

Contents

Check if you have the necessary repositories

SET the repositories we need to gracefully resolve build and runtime dependencies

<user>@<computer>:~$ gksudo gedit /etc/apt/sources.list

You can add this line at the end of the file (this is the official repository):

deb http://archive.ubuntu.com/ubuntu gutsy main universe multiverse

In case you want to compile for Ubuntu Hardy use this repository:

deb http://archive.ubuntu.com/ubuntu hardy main universe multiverse

Update your local package database:

<user>@<computer>:~$ sudo apt-get update

Remove your stable version of Ekiga

Remove libpt, opal and ekiga packages. This will remove the meta-package ubuntu-desktop as well.

sudo aptitude remove ~n^ekiga ~n^libpt[-] ~n^libopal[-]

PTLIB

Create a directory for your build (if you're using Ubuntu Hardy replace the following command by "mkdir build-hardy" and replace all the gutsy by hardy in the rest of this tutorial):

<user>@<computer>:~$ mkdir build-gutsy
<user>@<computer>:~$ cd build-gutsy/
<user>@<computer>:~/build-gutsy$ 

Build time dependencies for PTLIB:

<user>@<computer>:~/build-gutsy$ sudo aptitude install libdc1394-dev bison flex libssl-dev libldap2-dev libexpat1-dev g++ autotools-dev libasound2-dev libavc1394-dev libraw1394-dev libdv-dev libsasl2-dev linux-libc-dev

Install Subversion:

<user>@<computer>:~/build-gutsy$ sudo aptitude install subversion

Download source for PTLIB:

<user>@<computer>:~/build-gutsy$ svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/ptlib/trunk ptlib
<user>@<computer>:~/build-gutsy$ cd ptlib/
<user>@<computer>:~/build-gutsy/ptlib/$ ./configure --enable-plugins --enable-v4l2=yes --enable-sunaudio=no --enable-oss=yes --prefix=/usr --disable-sdl

Sometimes I've problem with AVC and DC plugins (either broken in PTLib, or broken in the distro), in this case add this to the configure above:

 --disable-avc --disable-dc
<user>@<computer>:~/build-gutsy/ptlib/$ make
<user>@<computer>:~/build-gutsy/ptlib/$ sudo make install

OPAL

<user>@<computer>:~/build-gutsy/pwlib/$ cd ..
<user>@<computer>:~/build-gutsy/$ svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/opal/trunk opal

Build time dependencies:

<user>@<computer>:~/build-gutsy/$ sudo aptitude install libspeex-dev libx264-dev libtheora-dev libavcodec-dev libavformat-dev
<user>@<computer>:~/build-gutsy/$ cd opal/
<user>@<computer>:~/build-gutsy/opal$ ./configure --prefix=/usr --enable-localspeex
[snip]
================ Codec Plugin configuration ===================
          Installing into prefix  :  /usr

                           H.261  :  enabled
                           H.263  :  enabled
                           H.263+ :  enabled
                           H.264  :  enabled
                          THEORA  :  enabled
                    MPEG4 Part 2  :  enabled

                         OS Type  :  linux-gnu
                    Machine Type  :  x86_64

 If all settings are OK, type make and make install 
========================================================
<user>@<computer>:~/build-gutsy/opal$ make
<user>@<computer>:~/build-gutsy/opal$ sudo make install

Ekiga

<user>@<computer>:~/build-gutsy/opal$ cd ..
<user>@<computer>:~/build-gutsy$ svn co http://svn.gnome.org/svn/ekiga/trunk ekiga
<user>@<computer>:~/build-gutsy$ cd ekiga/

Build time dependencies for Ekiga:

<user>@<computer>:~/build-gutsy/ekiga$ sudo aptitude install gnome-common libsasl2-dev gettext libgnome2-dev libldap2-dev libgconf2-dev autoconf libgnomeui-dev libxv-dev intltool  automake1.8 scrollkeeper libxml-parser-perl evolution-data-server-dev libavahi-common-dev libavahi-client-dev libavahi-glib-dev gnome-doc-utils libsigc++-2.0-dev libdbus-glib-1-dev libebook1.2-dev
<user>@<computer>:~/build-gutsy/ekiga$ ./autogen.sh --prefix=/usr --sysconfdir=/etc/
================ Final configuration ===================
          Installing into prefix  :  /usr

                 OPAL Version is  :  3.1.0
               OPAL Directory is  :  /usr
                PTLIB Version is  :  2.1.0
              PTLIB Directory is  :  /usr
                 ptlib-config is  :  /usr/bin/ptlib-config


                   GNOME support  :  enabled
                   GConf support  :  enabled
   Evolution-Data-Server support  :  enabled
                  Esound support  :  enabled
                    LDAP support  :  enabled

                  XVideo support  :  enabled

                    DBUS support  :  enabled
             mDNS/DNS-SD support  :  enabled

                         OS Type  :  linux-gnu
                    Machine Type  :  x86_64

 If all settings are OK, type make and make install 
========================================================
Now type `make' to compile ekiga
<user>@<computer>:~/build-gutsy/ekiga$ make
<user>@<computer>:~/build-gutsy/ekiga$ sudo make install

Ekiga run-time

In order to get Ekiga working, you need to install some run-time dependencies:

<user>@<computer>:~/build-gutsy/ekiga$ sudo aptitude install libart-2.0-2 libatk1.0-0 libavahi-client3 libavahi-common3 libavahi-glib1 libbonobo2-0 libbonoboui2-0 libc6 libcairo2 libdbus-1-3 libdbus-glib-1-2 libebook1.2-9 libedataserver1.2-9 libesd-alsa0 libfontconfig1 libfreetype6 libgcc1 libgconf2-4 libglib2.0-0 libgnome-keyring0 libgnome2-0 libgnomecanvas2-0 libgnomeui-0 libgnomevfs2-0 libgtk2.0-0 libice6 liborbit2 libpango1.0-0 libpng12-0 libpopt0 libsigc++-2.0-0c2a libsm6 libstdc++6 libx11-6 libxcursor1 libxext6 libxfixes3 libxi6 libxinerama1 libxml2 libxrandr2 libxrender1 libxv1 zlib1g evolution-data-server hal network-manager

Try it:

<user>@<computer>:$ ekiga

Gconf error?

If you have a stable version of ekiga in your system, your freshly installed version of Ekiga SVN might complain about gconf. Use this command to fix it:

<user>@<computer>:$ killall -9 gconfd-2

How to search the Ekiga White Pages ?

As now, the SVN version do not have the settings filled for the Ekiga White Pages, you must enter the necessary datas yourself in Tools -> Find Contacts -> AddressBook -> Add an LDAP AddressBook:

Ekiga White Pages
ldap.ekiga.net
389
dc=ekiga,dc=net
Subtree
telephoneNumber

How-to upgrade to a newer SVN checkout ?

Remove the binaries

Go into each folder where you previously build and use this command sudo make uninstall to uninstall the binaries and make clean to clean your build directory:

<user>@<computer>:~$ cd ~/build-gutsy/ptlib
<user>@<computer>:~/build-gutsy/ptlib$ sudo make uninstall
<user>@<computer>:~/build-gutsy/ptlib$ make clean
<user>@<computer>:~/build-gutsy/ptlib$ cd ~/build-gutsy/opal
<user>@<computer>:~/build-gutsy/opal$ sudo make uninstall
<user>@<computer>:~/build-gutsy/opal$ make clean
<user>@<computer>:~/build-gutsy/opal$ cd ~/build-gutsy/ekiga
<user>@<computer>:~/build-gutsy/ekiga$ sudo make uninstall
<user>@<computer>:~/build-gutsy/ekiga$ make clean

Upgrade your SVN copies

Go into each folder (PTLIB, OPAL and Ekiga) and use this command svn update:

<user>@<computer>:~$ cd ~/build-gutsy/ptlib
<user>@<computer>:~/build-gutsy/ptlib$ svn update
(...)
Updated to revision 19500.
<user>@<computer>:~/build-gutsy/ptlib$ cd ~/build-gutsy/opal
<user>@<computer>:~/build-gutsy/opal$ svn update
(...)
Updated to revision 19500.
<user>@<computer>:~/build-gutsy/opal$ cd ~/build-gutsy/ekiga
<user>@<computer>:~/build-gutsy/ekiga$ svn update
(..)
Updated to revision 5964.

Upgrade your system

<user>@<computer>:~$ sudo apt-get update
<user>@<computer>:~$ sudo apt-get dist-upgrade

Build the binaries

PTLIB

<user>@<computer>:~$ cd ~/build-gutsy/ptlib/
<user>@<computer>:~/build-gutsy/ptlib$ ./configure --enable-plugins --enable-v4l2=yes --enable-sunaudio=no --enable-oss=yes --prefix=/usr --disable-sdl
<user>@<computer>:~/build-gutsy/ptlib$ make
<user>@<computer>:~/build-gutsy/ptlib$ sudo make install

OPAL

<user>@<computer>:~/build-gutsy/ptlib$ cd ../opal/
<user>@<computer>:~/build-gutsy/opal$ ./configure --prefix=/usr --enable-localspeex
<user>@<computer>:~/build-gutsy/opal$ make
<user>@<computer>:~/build-gutsy/opal$ sudo make install

Ekiga

<user>@<computer>:~/build-gutsy/opal$ cd ../ekiga/
<user>@<computer>:~/build-gutsy/ekiga$ ./autogen.sh --prefix=/usr --sysconfdir=/etc/
<user>@<computer>:~/build-gutsy/ekiga$ make
<user>@<computer>:~/build-gutsy/ekiga$ sudo make install

Give it a try

<user>@<computer>:~/build-gutsy/ekiga$ ekiga

Sometimes, I've a crash at startup. You can try this:

<user>@<computer>:$ killall -9 gconfd-2

Enjoy.

Automated installation using a bash script

WARNING: This is experimental software, use it at your own risks! It will remove your stable Ekiga. This script is for Hardy 8.04. (but if you change the 9th line to Gutsy, it should work for this distro too)

#!/bin/bash
#This is a script to install Ekiga from the svn repository
# Version 0.5: Fixed the removal of ekiga related packages (the pattern was too large removing more packages than necessary, thanks to sankalpo)
# Version 0.4: Removed FFMPEG installation, OPAL's configure can now deal with it
# Version 0.3: Default to Ubuntu Hardy 8.04 LTS
# Version 0.2: with debug symbols
echo "Starting the Ekiga SVN installation script"
echo " "
echo "deb http://archive.ubuntu.com/ubuntu hardy main universe multiverse" | sudo tee -a /etc/apt/sources.list
echo " "
echo "Removing stable Ekiga, if any"
echo " "
sudo aptitude remove ~n^ekiga ~n^libpt[-] ~n^libopal[-]
echo "Updating your /etc/apt/sources.list..."
sudo aptitude update
echo "Installing build tools..."
echo " "
sudo aptitude install build-essential subversion 
echo "Installing PTLIB"
echo "Requesting for download and install PTLIB build dependencies..."
echo " "
sudo aptitude install libdc1394-dev bison flex libssl-dev libldap2-dev libexpat1-dev g++ autotools-dev libasound2-dev libavc1394-dev libraw1394-dev libdv-dev libsasl2-dev linux-libc-dev
echo "Creating the build directory in your home directory..."
echo " "
mkdir /home/$(whoami)/build-ekiga-svn
cd /home/$(whoami)/build-ekiga-svn
echo "Downloading the SVN checkout for PTLIB..."
echo " "
svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/ptlib/trunk ptlib
echo "Building PTLIB..."
echo " "
cd ptlib/
./configure --enable-plugins --enable-v4l2=yes --enable-sunaudio=no --enable-oss=yes --prefix=/usr --disable-sdl
make DEBUG=1 debug
sudo make DEBUG=1 install
cd ..
echo "Installing OPAL"
echo "Requesting for download and install OPAL build dependencies..."
echo " "
sudo aptitude install libspeex-dev libx264-dev libtheora-dev libavcodec-dev libavformat-dev
echo "Downloading the SVN checkout for OPAL..."
echo " "
svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/opal/trunk opal
cd opal/
echo "Building OPAL..."
echo " "
./configure --prefix=/usr --enable-localspeex
make DEBUG=1 debug
sudo make DEBUG=1 install
cd ..
echo "Requesting for download and install Ekiga build dependencies..."
echo " "
sudo aptitude install gnome-common libsasl2-dev gettext libgnome2-dev libldap2-dev libgconf2-dev autoconf libgnomeui-dev libxv-dev intltool  automake1.8 scrollkeeper libxml-parser-perl evolution-data-server-dev libavahi-common-dev libavahi-client-dev libavahi-glib-dev gnome-doc-utils libsigc++-2.0-dev libdbus-glib-1-dev libebook1.2-dev
echo "Downloading the SVN checkout for Ekiga..."
echo " "
svn co http://svn.gnome.org/svn/ekiga/trunk ekiga
cd ekiga/
echo "Building Ekiga..."
echo " "
./autogen.sh --prefix=/usr --sysconfdir=/etc/
make DEBUG=1
sudo make install
echo "Requesting for download and install Ekiga runtime dependencies..."
echo " "
sudo aptitude install libart-2.0-2 libatk1.0-0 libavahi-client3 libavahi-common3 libavahi-glib1 libbonobo2-0 libbonoboui2-0 libc6 libcairo2 libdbus-1-3 libdbus-glib-1-2 libebook1.2-9 libedataserver1.2-9 libesd-alsa0 libfontconfig1 libfreetype6 libgcc1 libgconf2-4 libglib2.0-0 libgnome-keyring0 libgnome2-0 libgnomecanvas2-0 libgnomeui-0 libgnomevfs2-0 libgtk2.0-0 libice6 liborbit2 libpango1.0-0 libpng12-0 libpopt0 libsigc++-2.0-0c2a libsm6 libstdc++6 libx11-6 libxcursor1 libxext6 libxfixes3 libxi6 libxinerama1 libxml2 libxrandr2 libxrender1 libxv1 zlib1g evolution-data-server hal network-manager
echo "Requesting for download and install GNUdebugger and debug packages for some of Ekiga's major dependencies..."
echo " "
sudo aptitude install libglib2.0-0-dbg libgtk2.0-0-dbg libgnomevfs2-0-dbg gdb
echo "Restart GConf deamon..."
echo " "
killall -9 gconfd-2
echo "Thank you for installing Ekiga SVN."
echo "Enjoy Ekiga. Run it with 'ekiga'"

As you are using a SVN version of Ekiga now, please read this page to know more on how to report failure/crash to us: Debugging Ekiga

Quick instructions to run Ekiga for debugging purpose

You can try this:

$ gdb ekiga 2>&1 | tee gdb-ekiga.txt

Then, inside gdb:

(gdb) run -d 4 > d4-ekiga.txt 2>&1

Inside the directory you are running Ekiga SVN 2 files will be created: gdb-ekiga.txt which contains backtraces in case of a crash and d4-ekiga.txt which contains protocol related information in case of failure trying to call etc.

If Ekiga crash, do this to get the backtrace inside gdb-ekiga.txt:

(gdb) thread apply all bt
(gdb) quit

If Ekiga freeze, do a CTRL-C and this to get the backtrace inside gdb-ekiga.txt:

(gdb) thread apply all bt
(gdb) quit

Automated upgrade of Ekiga SVN using a bash script

#!/bin/bash
#This is a script to upgrade Ekiga from the svn repository
# Version 0.3: Removed FFMPEG upgrade
# Version 0.2: with debug symbols
echo "Starting the Ekiga SVN upgrade script"
echo " "
cd /home/$(whoami)/build-ekiga-svn/ptlib
sudo make uninstall
make clean
cd ../opal
sudo make uninstall
make clean
cd ../ekiga
sudo make uninstall
make clean
cd ../ptlib
svn update
cd ../opal
svn update
cd ../ekiga
svn update
cd ../ptlib/
./configure --enable-plugins --enable-v4l2=yes --enable-sunaudio=no --enable-oss=yes --prefix=/usr --disable-sdl
make DEBUG=1 debug
sudo make DEBUG=1 install
cd ../opal/
./configure --prefix=/usr --enable-localspeex
make DEBUG=1 debug
sudo make DEBUG=1 install
cd ../ekiga/
./autogen.sh --prefix=/usr --sysconfdir=/etc/
make DEBUG=1
sudo make install
killall -9 gconfd-2
echo "Thank you for upgrading Ekiga SVN."
echo "Enjoy Ekiga. Run it with 'ekiga'"

Automated removal of Ekiga SVN using a bash script

#!/bin/bash
#This is a script to remove Ekiga svn
# Version 0.2: Removed FFMPEG removal, added debug packs removal
echo "Starting the Ekiga SVN removal script"
echo " "
cd /home/$(whoami)/build-ekiga-svn/ptlib
sudo make uninstall
make clean
cd ../opal
sudo make uninstall
make clean
cd ../ekiga
sudo make uninstall
make clean
sudo aptitude remove libglib2.0-0-dbg libgtk2.0-0-dbg libgnomevfs2-0-dbg gdb
echo "Ekiga has been removed."

How to debug Ekiga? How to report a crash?

Please, read this page: Debugging Ekiga

Personal tools