[Telepathy] mission control not implementing prefixes properly

Alban Crequy muadda at gmail.com
Mon Oct 29 13:03:26 PDT 2007


On 10/29/07, Xavier Claessens <xclaesse at gmail.com> wrote:
>
> Le lundi 29 octobre 2007 à 09:46 +0200, Alberto Mardegan a écrit :
> > ext Rainer Dorsch wrote:
> > > Hello,
> > >
> > > I compiled mission-control outside my standard file system using
> > >
> > > ./configure --prefix=/opt/gtalk
> > > make
> > > make install
> > >
> > > The overall goal was to get empathy running outside the standard file system.
> > >
> > > Mission control apparently does not implement the prefix specified properly,
> > > empathy segfaults because of that:
> >
> > MC is expecting to find the data file in the standard file system
> > directories.
> > However, you can override this by passing the --with-profiles-dir and
> > --with-managers-dir options to the configure script, or override them at
> > run-time, with the MC_PROFILE_DIR and MC_MANAGER_DIR environment variables.
>
> I think it should work by setting XDG_DATA_DIRS=/opt/share too.

Yes, XDG_DATA_DIRS works.

If you have installed stable packaged versions of Telepathy, you may
want to test modified versions without breaking your system. It is
possible to use both versions at the same time by using a separate
D-Bus session.

First I install all in a prefix:
export PREFIX=$HOME/prefix

I configure my testing session of D-Bus:
cp /etc/dbus-1/session.conf /etc/dbus-1/session-jabber.conf
and patch the session-jabber.conf file:
-  <standard_session_servicedirs />
+  <servicedir>/home/user/prefix/share/dbus-1/services</servicedir>

I will start the testing session of D-Bus, but before that, I have to
set the environment variables I want for Connection Managers and
Mission Control because they will be started automatically by the
D-Bus daemon by automatic activation.

I use the following variables:
export XDG_DATA_DIRS=$PREFIX/share/:/usr/share/
export LD_LIBRARY_PATH=$PREFIX/lib64:$PREFIX/lib/
export PYTHONPATH=$PREFIX/lib64/python2.5/site-packages/:$PREFIX/lib/python2.5/site-packages/:/usr/lib64/python2.5/site-packages/:/usr/lib/python2.5/site-packages/

Then I start the D-Bus testing session:
dbus-daemon --config-file=/etc/dbus-1/session-jabber.conf
--print-address | tee /tmp/dbus-telepathy-${USER}.log

D-Bus will start the right version of Mission Control because I
specified the directory  in session-jabber.conf. And MC will inherit
the environment variable $XDG_DATA_DIRS, so it will find its files
correctly.

XDG_DATA_DIRS is explained here:
http://telepathy.freedesktop.org/wiki/FileFormats#head-a6fed3e23831ef021b6fcd8e92a6db8af1562e44
http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html

If I want to start Empathy or another Telepathy client in the testing
session, I have to specify it in the $DBUS_SESSION_BUS_ADDRESS
environment variable:
export DBUS_SESSION_BUS_ADDRESS=$(head -n 1 /tmp/dbus-telepathy-${USER}.log)

When choosing the Connection Manager in Empathy, Mission Control will
check the files listed in
$XDG_DATA_DIRS/share/mission-control/profiles/. You may see several
versions of Gabble if your $XDG_DATA_DIRS variable contains several
directories :-)

-- 
Alban Crequy


More information about the Telepathy mailing list