Compiling Ekiga
From Ekiga
Steps: Download sources → Compile → Execute and Debug
You need to compile, in order, ptlib, opal, and ekiga.
This page contains generic instructions. There are a few pages for particular architectures, but which might be slightly outdated:
- Compile your own SVN version of Ekiga on Ubuntu (step-by-step)
- Compile your own stable Ekiga version 3 on Kubuntu 8.04
- Compile Ekiga/OPAL/PTLIB from SVN on FreeBSD
Windows compilation is different, see Building Ekiga for Windows.
Contents |
Dependencies
As an example, the dependencies for debian distribution are found at (look at the 6th line, starting with Build-Depends): ptlib, opal, ekiga (note that some dependencies, such as debhelper, dpatch and quilt, are debian specific).
Not included specially, the usual tools, like a working C/C++ compiling environment and so...
PTLib
(incomplete list)
- flex: compile-time dep.
- bison: compile-time dep.
- OpenLDAP: compile-time and run-time dep. It needs the headers (-devel packages)
- libexpat1-dev: compile-time dep, needed for presence indication.
- libasound2-dev: optional compile-time dep, if you wish to have ALSA support
Opal
- PTLib: ;-)
- for some codecs, see below their dependencies.
Ekiga
(incomplete list, what you need from the stuff below depends on your compiling options, too!)
- GLib: GIMP library (headers!)
- GTK+: GIMP toolkit 2.6 or higher (headers!)
- libgnome: GNOME library (headers!) - only if gtk+ <= 2.13
- GNOME UI lib: GNOME UI library (headers!) - only if gtk+ <= 2.13
- gnome-common: gnome-common module to support GNU autotools with some scripts
- GConf: GNOME config database (headers!)
- libsdl: SDL library (headers!), for full screen support
- libebook: evolution library (headers!), for Evolution mail client integration
- dbus-glib: GLib DBUS bindings (headers!), for basic control of EKiga using DBUS
- autotools (only if you have downloaded from git repository): GNU, aka automake, autoconf
- libboost
- libsasl2: SASL
- libxv: XVideo
- libnotify
Compiling instructions
Note: make sure you do not have ptlib, opal and ekiga installed on your computer before compiling them, see #Uninstall Ekiga for more information.
The compilation is mostly plug'n'play, using the common triple of configure && make && make install (make install as root, if necessary). As usually, you need to install all headers of libraries you want to use a certain feature (e.g. OpenLDAP or ALSA), because otherwise ptlib/opal/ekiga will spit out a message ("checking for ...: no") and silently disable support for that feature.
I assume that common options, like --prefix are known and used.
PTLib
Note that v4l is disabled by default; if you need it, add --enable-v4l to ./configure. (Also, you need to build ptlib from its directory, as shown below.)
Example for optimized build:
./configure --prefix=/usr make make install
Example for debug build:
./configure --prefix=/usr --enable-debug make debug make DEBUG=1 install
Opal
Opal compilation needs very much RAM to build the optimized version (seems this only happens with GNU C compiler, in a VMWare test here it needed 769MB RAM plus 200MB swap (of 1G) to compile). make debug can be used to not optimize it, though this will make a very big and slow library.
If you have installed only the debug library of ptlib, only the debug version of opal can be build. The same aplies to the release version. In case both versions of the ptlib library are installed, both versions of the opal library can be built and installed.
Example for optimized build:
./configure --prefix=/usr make make install
Example for debug build:
./configure --prefix=/usr --enable-debug make make install
Ekiga
If you have downloaded Ekiga from git repository, then you don't have a configure script. You should use ./autogen.sh instead of ./configure below (giving the same parameters), and you need complete GNU autotools-support, intltool and gnome-doc-utils.
The following options (among others) are recognized:
-
--disable-gdudisables the generation of the documentation files (readable with GNOME yelp). Saves hassle with gnome-doc-utils. -
--disable-gnomedisables entirely GNOME support- it still depends on gnome-doc-utils, use
--disable-gdufor that - it still needs GLib and GTK+ of course...
- it's experimental and was introduced to make the WIN32-port possible
- it saves it config AND addressbooks into a FILE (usually ~/.config/ekiga.conf or whatever was reported by GLib)
- for the moment, expect some weirdness with the UI and some config keys
- it still depends on gnome-doc-utils, use
-
--disable-avahidisables the generation of zeroconf Avahi code ("Contacts near me") -
--disable-dbusdisables generation of Ekiga's DBUS interface (yes, Ekiga can be remote-controlled a bit)
Like for opal, ekiga has to be told whether to use the debug or optimized versions of the ptlib and opal library. Thus if you have compiled the debug versions of the libraries, you will have to use debug build of ekiga.
Example for optimized build:
./configure --prefix=/usr make make install
Example for debug build:
./configure --prefix=/usr --enable-opal-debug make make install
Additional dependencies of specific video codecs
If you want to use also the non-free codecs in Ekiga, this section presents how to build them.
FFMPEG (SVN)
FFMPEG (SVN) is required for the following video codecs:
In order to install the latest version of FFMPEG, check out the SVN repository
svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
afterwards:
./configure --enable-shared make sudo make install
x264 (GIT)
x264 (GIT) is required for the following video codecs:
- H.264 via RFC 3984
In order to install the latest version of x264 check out the GIT repository
git clone git://git.videolan.org/x264.git
afterwards:
./configure --enable-shared make sudo make install
H.264, MPEG4 Part 2 and H.263+ / H.263-1998 using debian prebuild binaries (maybe working for UBUNTU, too)
- Don't install self build ffmpeg stuff or move it out of the way (to home or /usr/local/src, make uninstall to be sure)
- Add a debian 'unofficial' multimedia repository mirror (for Your country or near to) to /etc/apt/sources.list:
deb http://www.debian-multimedia.org testing main #deb http://debian.netcologne.de/debian-multimedia.org unstable main #deb http://debian.netcologne.de/debian-multimedia.org experimental main
- Do 'aptitude update'
- Install the following packages with aptitude (check apt-cache policy <packagename> for interferences):
libavcodeccvs51 library to encode decode multimedia streams - runtime libavcodeccvs51-dev libavformatcvs51 ffmpeg file format library libavformatcvs51-dev libavutilcvs49 avutil shared libraries libavutilcvs49-dev or ffmpeg + the above -dev packages only (full auto dependencies handling for runtime libs is done by aptitude)
- Install latest Ekiga, Opal, PTlib SVN head snapshots (source links above) configured as usual.
- Look in the installation and check if codecs are there:
ls -l <opal-configure-prefix>/lib/opal*/codecs/video -rwxr-xr-x 1 root root 449803 2007-08-09 22:14 h261-vic_video_pwplugin.so -rwxr-xr-x 1 root root 278056 2007-08-09 22:14 h263-1998_video_pwplugin.so -rwxr-xr-x 1 root root 133089 2007-06-17 16:27 h263-ffmpeg_video_pwplugin.so -rwxr-xr-x 1 root root 190334 2007-08-09 22:14 h264_video_pwplugin_helper -rwxr-xr-x 1 root root 303613 2007-08-09 22:14 h264_video_pwplugin.so -rwxr-xr-x 1 root root 190008 2007-08-09 22:14 theora_video_pwplugin.so
Uninstall Ekiga
If you want do compile and install (new versions of) ekiga, you should make sure before that you do not have them already installed.
Check if you have previously installed Pwlib, Opal, and Ekiga
Some versions of Linux (like Ubuntu) install Ekiga automatically with Gnome Desktop as it is part of it. If you or your distro have installed Ekiga before, you most likely already have a version of Pwlib & Opal installed. You must check to see what versions you have before downloading other versions. Unless you remove older versions before you start, there is a chance you'll create multiples versions of these libraries on your system, which will stop you from compiling Ekiga.
You can check your version of Ekiga from Ekiga's Help → About menu, or open a Terminal and at the prompt, type:
$ ekiga --version
This will show you the version of Ekiga if any properly installed on your system.
You may want to have a closer look to be sure there is no pwlib (pwlib has been renamed to ptlib) and opal in your system as those libraries can be used by other programs than Ekiga:
Type:
$ whereis pwlib $ whereis ptlib $ whereis opal $ whereis ekiga
Alternatively, you can use find to get a list of a program's locations, searching in /usr is usualy a good start:
$ find /usr -name '*pwlib*' $ find /usr -name '*libpt*' $ find /usr -name '*opal*' $ find /usr -name '*ekiga*'
This will show you if Pwlib, Opal, & Ekiga has been installed.
Uninstall previously installed pwlib, opal, and Ekiga
First, you should try your package manager which is distro dependant: Debian and Ubuntu use synaptic and apt,... and search for "pwlib" "libpt" "opal" "ekiga" in it. Then uninstall all libpt/pwlib/opal/ekiga packages (pwlib sometimes comes with plugins in separate packages and pwlib may be renamed "libpt", uninstall them all).
FIXME: list of package managers per distro
If Ekiga was installed from sources, it is recommended you uninstall them by:
$ cd to appropriate directory (where you compiled Ekiga, then Opal and finaly pwlib)
and as root for each source:
# make uninstall
$ sudo make uninstall

