Building telepathy with Jhbuild
Dependencies can be checked on TelepathySetup.
3 simple steps:
- get and install jhbuild
- create a .jhbuildrc
- jhbuild telepathy
Jhbuild
You need to get jhbuild from GNOME's SVN:
svn co http://svn.gnome.org/svn/jhbuild/trunk jhbuild
Then install it:
- If you are using Debian or Ubuntu, use checkinstall (available in apt)
- If you are not using Debian or Ubuntu, just do a make install
See Jhbuild for more info on Jhbuild.
Create a .jhbuildrc
This is the file read by jhbuild when no config file is specified, in my case I use a .jhbuildrc for GNOME and another one for Telepathy so I have two files on my home dir: .jhbuildrc and a .jhbuildrc-telepathy.
My .jhbuildrc-telepathy file is like this:
# .jhbuildrc
# Telepathy jhbuildrc
# Based on GNOME's jhbuildrc by Wouter Bolsterlee <uws+gnome@xs4all.nl>
# Adapted by Diego Escalante Urrelo <diegoe@gnome.org>
# - moduleset and modules ------------------------------------------------ {{{1
moduleset = 'telepathy'
modules = [ 'telepathy-full' ]
# build some modules from other branches
#other_branches = {
# 'module': 'branch',
#}
#for module, branch in other_branches.items():
# if branch == 'HEAD': branch = ''
# branches[module] = branch
# - directories ---------------------------------------------------------- {{{1
checkoutroot = '/home/diego/gnome/ereseva/'
prefix = os.path.join(checkoutroot, 'build')
# python import path
os.environ['PYTHONPATH'] = ':'.join((
os.path.join(prefix, 'lib/python2.5/site-packages'),
))
# - autogen/configure flags ---------------------------------------------- {{{1
autogenargs='--disable-static --disable-gtk-doc'
# - compilation flags ---------------------------------------------------- {{{1
os.environ['CFLAGS'] = '-g'
# - installation options ------------------------------------------------- {{{1
os.environ['GST_PLUGIN_PATH'] = os.path.join(prefix, 'lib/gstreamer-0.10/')
os.environ['INSTALL'] = '/usr/bin/install-check'
os.environ['PKG_CONFIG_PATH'] = os.path.join(prefix, '/lib/pkgconfig/')
os.environ['DBUS_SYSTEM_BUS_ADDRESS'] = 'unix:path=/var/run/dbus/system_bus_socket'
Build it
You will need this .modules file:
<?xml version="1.0"?><!--*- mode: nxml -*-->
<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?>
<!-- telepathy jhbuild moduleset,
originally made by Diego Escalante Urrelo <diegoe@gnome.org>
updated 20070820 by Diego Escalante Urrelo <diegoe@gnome.org>
20071009 add Mission Control and Empathy by Alban Crequy <alban.crequy@apinc.org>
updated 20071202 by Diego Escalante Urrelo <diegoe@gnome.org> -->
<moduleset>
<repository type="svn" name="gnome"
href="http://svn.gnome.org/svn/"/>
<repository type="darcs" name="collabora"
href="http://projects.collabora.co.uk/darcs/"/>
<repository type="svn" name="mission-control.sf.net"
href="http://mission-control.svn.sourceforge.net/svnroot/mission-control/"/>
<autotools id="telepathy-glib">
<branch repo="collabora" module="telepathy/telepathy-glib-0.6"/>
<!-- <branch repo="collabora" module="telepathy/telepathy-glib"/> -->
</autotools>
<autotools id="libtelepathy">
<branch repo="collabora" module="telepathy/libtelepathy"/>
<dependencies>
<dep package="telepathy-glib"/>
</dependencies>
</autotools>
<autotools id="telepathy-gabble">
<branch repo="collabora" module="telepathy/telepathy-gabble-0.6"/>
<!-- <branch repo="collabora" module="telepathy/telepathy-gabble"/> -->
<dependencies>
<dep package="telepathy-glib"/>
</dependencies>
</autotools>
<autotools id="gst-plugins-farsight">
<branch repo="collabora" module="farsight/gst-plugins-farsight"/>
</autotools>
<autotools id="farsight">
<branch repo="collabora" module="farsight/farsight"/>
<dependencies>
<dep package="gst-plugins-farsight"/>
</dependencies>
</autotools>
<autotools id="stream-engine">
<branch repo="collabora" module="telepathy/stream-engine"/>
<dependencies>
<dep package="telepathy-glib"/>
</dependencies>
</autotools>
<!-- misc stuff -->
<distutils id="telepathy-python">
<branch repo="collabora" module="telepathy/telepathy-python"/>
<dependencies>
<dep package="telepathy-glib"/>
</dependencies>
</distutils>
<autotools id="telepathy-salut">
<branch repo="collabora" module="telepathy/telepathy-salut"/>
<dependencies>
<dep package="telepathy-glib"/>
</dependencies>
</autotools>
<autotools id="telepathy-idle">
<branch repo="collabora" module="telepathy/telepathy-idle"/>
<dependencies>
<dep package="telepathy-glib"/>
</dependencies>
</autotools>
<!-- empathy -->
<autotools id="mission-control">
<branch repo="mission-control.sf.net"
module="trunk" checkoutdir="mission-control" />
<dependencies>
<dep package="libtelepathy"/>
</dependencies>
</autotools>
<autotools id="telepathy-mission-control">
<branch repo="mission-control.sf.net"
module="trunk" checkoutdir="telepathy-mission-control" />
<dependencies>
<dep package="libtelepathy"/>
<dep package="mission-control"/>
</dependencies>
</autotools>
<autotools id="empathy">
<branch repo="gnome" module="empathy/trunk"/>
<dependencies>
<dep package="telepathy-glib"/>
<dep package="telepathy-gabble"/>
<dep package="telepathy-mission-control"/>
</dependencies>
</autotools>
<!-- metamodules -->
<metamodule id="meta-telepathy-libs">
<dependencies>
<dep package="libtelepathy"/>
<dep package="telepathy-glib"/>
</dependencies>
</metamodule>
<metamodule id="meta-telepathy-protocols">
<dependencies>
<dep package="telepathy-gabble"/>
<dep package="telepathy-salut"/>
<dep package="telepathy-idle"/>
</dependencies>
</metamodule>
<metamodule id="meta-telepathy-voip">
<dependencies>
<dep package="meta-telepathy-libs"/>
<dep package="gst-plugins-farsight"/>
<dep package="farsight"/>
<dep package="stream-engine"/>
<dep package="telepathy-gabble"/>
<dep package="empathy"/>
</dependencies>
</metamodule>
<metamodule id="meta-telepathy-extras">
<dependencies>
<dep package="telepathy-python"/>
<dep package="telepathy-sharp"/>
</dependencies>
</metamodule>
<metamodule id="meta-telepathy-full">
<dependencies>
<dep package="meta-telepathy-libs"/>
<dep package="meta-telepathy-protocols"/>
<dep package="meta-telepathy-voip"/>
<dep package="meta-telepathy-extras"/>
</dependencies>
</metamodule>
</moduleset>
<!-- tapioca, useless for anything but ereseva (that is not quite useful)
<repository type="svn" name="tapioca"
href="https://tapioca-voip.svn.sourceforge.net/svnroot/"/>
<autotools id="telepathy-sharp">
<branch repo="tapioca" module="tapioca-voip/trunk/telepathy-sharp"/>
<dependencies>
<dep package="telepathy-glib"/>
</dependencies>
</autotools>
<autotools id="tapioca-glib">
<branch repo="tapioca" module="tapioca-voip/trunk/tapioca-glib"/>
<dependencies>
<dep package="telepathy-glib"/>
</dependencies>
</autotools>
<autotools id="tapioca-sharp">
<branch repo="tapioca" module="tapioca-voip/trunk/tapioca-sharp"/>
<dependencies>
<dep package="tapioca-glib"/>
<dep package="telepathy-sharp"/>
</dependencies>
</autotools>
<autotools id="tapioca-python">
<branch repo="tapioca" module="tapioca-voip/trunk/tapioca-python"/>
<dependencies>
<dep package="tapioca-glib"/>
</dependencies>
</autotools>
<autotools id="ereseva">
<branch repo="tapioca" module="tapioca-voip/trunk/ereseva"/>
<dependencies>
<dep package="tapioca-python"/>
</dependencies>
</autotools>
<metamodule id="meta-tapioca-libs">
<dependencies>
<dep package="meta-telepathy-libs"/>
<dep package="tapioca-glib"/>
<dep package="tapioca-python"/>
</dependencies>
</metamodule>
-->Then just run something like this:
jhbuild -f path-to-jhbuildrc-file -m file:///home/diego/gnome/jhbuild/modulesets/telepathy.modules build module
Note that you have various options inmodule:
- meta-telepathy-full: all the stack
- meta-telepathy-voip-jabber: everything needed to have voip on jabber
- meta-telepathy-extras: the bindings, right now only the python one
- meta-telepathy-protocols: the connection managers for Jabber, IRC and Link-local
Check Jhbuild's --help-commands for some hints on commands.
Last but important step
You need to tell DBus that you have new available services for your applications, do that by linking the .service files to your .local dir:
- ln -s /full/path/to/your/install/prefix/share/dbus-1/services/org.freedesktop.Telepathy.* ~/.local/share/dbus-1/services/
If you get warnings about non-existant directories just do:
- mkdir -p ~/.local/share/dbus-1/services/
And rerun the ln -s. In case DBus is still not catching up with your new files, try:
- pkill -HUP dbus-daemon
(don't worry about the not permitted warnings)
Finally to go into your jhbuild installation do:
jhbuild -f path-to-jhbuildrc-file -m file:///home/diego/gnome/jhbuild/modulesets/telepathy.modules shell
- dbus-launch empathy (for example)
dbus-launch will enable your command to launch dbus stuff.

