GNOME Bugzilla – Bug 610715
the autostart desktop should list xfce too
Last modified: 2010-09-11 20:09:58 UTC
The bug has been described on https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/525434 "The /etc/xdg/autostart/gnome-keyring desktop files need to be appended XFCE; in OnlyShowIn= for xubuntu to work properly with keyring. ... gnome-keyring 2.29.90git20100218-0ubuntu1"
*** Bug 610714 has been marked as a duplicate of this bug. ***
It would be better if the line OnlyShowIn=Gnome would be removed completely.
Hasn't this been recently obsoleted by the change introduced as a fix for bug 611002?
not really I guess, or do you mean that the desktop autostart is deprecated since it's not useful and should not be shiped in new versions?
Right, only the "secret" service gets autostarted from dbus, other services like ssh need to be started via desktop files.
Actually, no, not for xfce. Unfortunately, starting gnome-keyring-daemon using .desktop files does not capture and export the environment variables that are printed to its standard output. Those variables must be exported to the session environment in order for certain programs (like ssh) to find and use the services that gnome-keyring-daemon offers. There are two ways to get the environment variables set: 1. If the session manager implements a certain dbus interface that allows environment variables to be exported to the session, gnome-keyring-daemon can set its variables using that interface. The gnome session manager implements this interface, so although starting gnome-keyring-daemon via .desktop files loses the variables that get printed to standard output, they get set anyway via dbus. xfce4-session does not implement the interface. 2. If gnome-keyring-daemon --start is run by something that captures the printed output, that output can be exported to the session environment. As far as I know, .desktop files have no way of doing this. That's probably why the .desktop files in question used OnlyShowIn=Gnome to begin with. The author probably knew that only Gnome's session manager had the feature that would make up for the lost environment variables. http://live.gnome.org/GnomeKeyring/RunningDaemon http://live.gnome.org/GnomeKeyring/Ssh To make things work properly under xfce, gnome-keyring-daemon should not be started via desktop files. Instead, it should be started by xfce4-session or a session startup script, and its printed output should be exported to the session environment. It turns out that xfce4-session already tries to do this, but the code needs updating to accommodate recent changes to gnome-keyring-daemon. Relevant bug reports: https://bugs.launchpad.net/ubuntu/+source/xfce4-session/+bug/564831 http://bugzilla.xfce.org/show_bug.cgi?id=5137 http://bugzilla.xfce.org/show_bug.cgi?id=5912
Yes, Forest, I can confirm that your research is correct. Previously gnome-session-manager was hard coded to run gnome-keyring-daemon. But once the org.gnome.SessionManager.Setenv() is implemented in the session manager, we switched to using autostart desktop files. Only the password storage parts of gnome-keyring can work without the relevant environment variables being exported into the user's session. And that's started by DBus on demand. I believe there's not much more that can be done here on gnome-keyring's side. So I'll close this bug. But if anyone has a patch or any other insight, please reopen.