Comment 7 for bug 564831

Revision history for this message
Forest (foresto) wrote :

Okay, I removed xubuntu_gnome-keyring-daemon-compat.patch, rebuilt the package, and gave it a try. That brought back the .xsession-errors message that was reported in bug 357346:

Failed to run gnome-keyring-daemon: Failed to start child process « gnome-keyring-daemon » (No such file or directory)

Looking a bit closer at the source code and Gtk docs, I saw that gnome_keyring_daemon_startup() was being called without an absolute path to the executable and without the G_SPAWN_SEARCH_PATH flag. That explains the error message above. I made a patch to take care of it, which I will attach here as 10_spawn-gnome-keyring-daemon-with-path.patch.

Testing my newly patched build, I saw that gnome-keyring-daemon was being launched, but without the --start option and without its printed environment variables getting exported. Another look at the source revealed that gnome_keyring_daemon_startup() was only attempting to capture and export the GNOME_KEYRING_PID variable, and not even looking for it intelligently. I made another patch, this one called 11_export-gnome-keyring-daemon-variables.patch.

With both my new patches applied, gnome-keyring-daemon finally seems to work as it should on xubuntu. It functions as both a secret store and an ssh agent. It works with GDM auto-login and with manual login. It can be found by ssh (using environment variables) and by programs like empathy and seahorse (using libgnome-keyring0 and dbus).

I think my patches might be applicable upstream. I'll have to take a look at the current xfce source code to see if these problems still exist there. In the mean time, anyone want to review and/or test my patches?