Re: GDM login to a JHBuild session


The GDM/KDM standard for using /usr/share/xsessions/*.desktop files is
documented in the GDM documentation here:

We can extend the .desktop file further if this makes it possible to
do useful things.  However, if we are going to ask all distros to
change the way they start dbus-launch to support DISABLE_DBUS_LAUNCH,
then perhaps we should rethink how we start D-Bus.  Perhaps starting
this at Xsession time isn't the right place?  Perhaps we should
always start dbus-launch in the /usr/share/xsession/*.desktop files
as needed?  Or perhaps it should be managed more directly by
gnome-session itself rather than needing the login program/process
to be aware of D-Bus?


I'm currently working on establishing a standard jhbuild configuration
for the online-desktop. One of the things I'd like to accomplish with
that is the ability to log directly into a jhbuild of GNOME from GDM.

My first attempt was to create an entry in /etc/X11/sessions like:

[Desktop Entry]
Comment=Custom Per-User Build

Where /usr/local/bin/jhbuild-session looked like:

if [ -x $HOME/bin/jhbuild ] ; then
   exec $HOME/bin/jhbuild/run dbus-launch gnome-session

# Report error

But this doesn't really work because the system Xsession script has
already launched D-BUS using the system built copy and system session
configuration. So the .services files in $prefix/share/dbus-1/services
won't be found. The relevant portions of the system Xsession script on
Fedora looks like:

       # GDM provies either a command line as the first argument or
       # provides 'failsafe', 'default' or 'custom'.  KDM will do the
       # same at some point
       if [ "$1" != "default" -a "$1" != "custom" ]; then
           exec -l $SHELL -c "$SSH_AGENT $DBUS_LAUNCH $1"

I assume that other distributions do something similar. So, the
question is: how should a session .desktop file disable the running of
DBUS_LAUNCH in the system session initialization?

My proposal would be to extend the session .desktop file (is this a
standard defined somewhere? It appears to be shared with kdm in some
fashion) to allow setting environment variables. So, we'd add a line:

 X-GNOME-Environment: DISABLE_DBUS_LAUNCH=true; [...]

Then we could push patches to distributes that would check that
environment variable before invoking the session inside D-BUS.

Any better ideas?

- Owen
desktop-devel-list mailing list
desktop-devel-list gnome org

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]