[sugar] gconf woes

Daniel Drake dsd at laptop.org
Sun Nov 23 12:14:28 EST 2008


Hi,

As we all know, latest joyride can't launch activities. Chris Ball
pointed out that disabling rainbow solves the issue.

The problem is that the sugar module imports try to read the XO
nickname, colours, etc, information which is now stored in gconf. But,
gconf is a per-user thing, everyone has their own store. Rainbow
launches activities as different users, so with the default behaviour
we cannot expect activities to be able to access sugar's
configuration.

Potential workaround: set ORBIT_SOCKETDIR=/tmp/orbit-olpc in rainbow,
and loosen permissions on /tmp/orbit-olpc/*
This works, but causes gconf to complain loudly that /tmp/orbit-olpc
is not owned by the current user (i.e. the one running the activity)

Tomeu raised the point that GConf2-dbus would solve this, as it
provides a per-session-bus settings repository, rather than a per-user
one. Rainbow already shares the session bus between olpc user and
activities. We actually shipped GConf2-dbus in 8.1, but dropped it for
8.2 because at the time, nobody could offer an explanation of why we
might need or want it.
Switching back to GConf2-dbus does raise some questions though:

 - It looks like a dead project. Not updated since 2.16.0. Do we want
to be burdened with it?
miraculously, it compiles and works fine after a BuildRequires tweak:
http://koji.fedoraproject.org/koji/taskinfo?taskID=946380
 - This still raises questions about our security model, IMO. Rainbow
prevents activities from messing with 'the rest of the system.' But if
we let activities access gconf, they can screw up any application that
stores information there (e.g. sugar).
 - and the above point raises the possibility of a per-activity gconf
store, with associated gconf daemon, but this adds about 2mb memory
usage per activity...

Daniel


More information about the Sugar mailing list