What a great run-down. Thank you so much for investigating so
thoroughly.
Unfortunately I followed your fix and gnome-rdp is still not saving
passwords. I logged out and even rebooted. Gconf has all three keys
set. The gnome-keyring-daemon is running. I even tried manually ran
all three commands to make sure there were no errors.
#:~$ gnome-keyring-daemon --start --components=pkcs11
GNOME_KEYRING_CONTROL=/tmp/keyring-7EmB31
SSH_AUTH_SOCK=/tmp/keyring-7EmB31/ssh
#:~$ gnome-keyring-daemon --start --components=secret
GNOME_KEYRING_CONTROL=/tmp/keyring-7EmB31
SSH_AUTH_SOCK=/tmp/keyring-7EmB31/ssh
#:~$ gnome-keyring-daemon --start --components=ssh
GNOME_KEYRING_CONTROL=/tmp/keyring-7EmB31
SSH_AUTH_SOCK=/tmp/keyring-7EmB31/ssh
and the control, pkcs11 and ssh sockets are in /tmp.
I thought for sure that would work.
Sean
On Sun, 25 Apr 2010, Alexander Kurtz wrote:
Hi guys,
I ran into the same problem. Since this is going to be be a long mail, I
try to give you the most important things first:
Fixing the problem
==================
You need to rebuild your gconf database. Run this as root:
gconf-schemas --register-all
Now start gconf-editor and check /apps/gnome-keyring/daemon-components -
it should look like this:
pkcs11 [True]
secrets [True]
ssh [True]
It should work now. You'll probably have to logout and login again and
you may have to run this:
killall gconfd-2
What should happen when upgrading g-k-d
=======================================
Looking at the source code one finds this comment in daemon/gkd-main.c:
The gnome-keyring startup is not as simple as I wish it could be.
It's often started in the primidoral stages of a session, where
there's no DBus, and no proper X display. This is the strange world
of PAM.
When started with the --login option, we do as little initialization
as possible. We expect a login password on the stdin, and unlock
or create the login keyring.
Then later we expect gnome-keyring-dameon to be run again with the
--start option. This second gnome-keyring-daemon will hook the
original daemon up with environment variables necessary to initialize
itself and bring it into the session. This second daemon usually
exits.
Without either of these options, we follow a more boring and
predictable startup.
So the g-k-d startup is done in two parts: one is done by PAM and one is
done by normal gnome autostart mechanisms. These are the files
responsible for the second part:
$ ls /usr/share/gnome/autostart/gnome-keyring-*
/usr/share/gnome/autostart/gnome-keyring-pkcs11.desktop
/usr/share/gnome/autostart/gnome-keyring-secrets.desktop
/usr/share/gnome/autostart/gnome-keyring-ssh.desktop
Now if you look at these files, they all have a line like this one:
AutostartCondition=GNOME /apps/gnome-keyring/daemon-components/pkcs11
So these .desktop files are depending on a these gconf keys to be set:
/apps/gnome-keyring/daemon-components/pkcs11
/apps/gnome-keyring/daemon-components/secrets
/apps/gnome-keyring/daemon-components/ssh
This isn't a problem since all these keys are defined
in /usr/share/gconf/schemas/gnome-keyring.schemas and the postinst of
g-k-d contains this
# Automatically added by dh_gconf
if [ "$1" = "configure" ]; then
gconf-schemas --register gnome-keyring.schemas
fi
# End automatically added section
So normally everything should work nicely.
What actually happens (sometimes)
=================================
g-k-d 2.28's version of /usr/share/gconf/schemas/gnome-keyring.schemas
only defines these gconf keys:
/apps/gnome-keyring/daemon-components/pkcs11
/apps/gnome-keyring/daemon-components/ssh
So if for some reason the gconf database isn't correctly updated after
upgrading to 2.30 you'll be
missing /apps/gnome-keyring/daemon-components/secrets and
therefore /usr/share/gnome/autostart/gnome-keyring-secrets.desktop won't
run leaving you with a broken g-k-d.
Why is the gconf database sometimes not updated correctly?
==========================================================
I don't know. But I do know that this happend on 2 out of 3 squeeze
boxes I have and _both are amd64_. The last i386 box I have, upgraded
smoothly. So I have tried this test procedure on all machines:
* downgrade gnome-keyring and libgnome-keyring0 to 2.28
(using snapshots.d.o)
* run gconf-schemas --register-all
* run apt-get upgrade
It seems to be reproducible. Don't ask me why but on amd64
gconf-schemas --register gnome-keyring.schemas
doesn't seem to be enough while
gconf-schemas --register-all
seems to work. i386 always works fine, at least for me.
Best regards
Alexander Kurtz
--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org