I sent this to your @debian.org email, which is now bouncing, so let's try again. :)
I hope you don't mind the noise... a. On 2016-09-01 19:11:57, Antoine Beaupré wrote: > Control: tags -1 +patch +pending +unreproducible > > On 2013-09-16 17:37:15, Joey Hess wrote: > [...] >> File "/usr/lib/python2.7/dist-packages/monkeysign/gtkui.py", line 222, in >> __init__ >> self.mykey.append_text(key.uidslist[0].uid) >> AttributeError: OpenPGPkey instance has no attribute 'uidslist' >> >> I determined this crash was due to one of these two keys. >> These are old keys I have lying around, that I don't know what I used >> them for, and that do not have a uid. I bet the lack of uid is the problem. >> >> sec 1024D/16D0B8EF 2003-09-11 >> ssb 1024g/FBA4BC10 2003-09-11 >> >> sec 1024D/788A3F4C 1999-09-08 >> ssb 2048g/1950ED18 1999-09-08 > > Hi joeyh, > > It's very hard to reproduce your problem because, of course, I do not > have access to old private key material such as yours. > > But I have tried to fix this anyways. Please try the attached patch: > > From 006a29582bf891c45ba7885792eb76931185935d Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= <anar...@debian.org> > Date: Thu, 1 Sep 2016 19:09:45 -0400 > Subject: [PATCH] skip keys without uids (Closes: #723152) > > notice how we unconditionnally set uidslist now - not sure why we were doing > that before > --- > monkeysign/gpg.py | 2 +- > monkeysign/gtkui.py | 3 +++ > 2 files changed, 4 insertions(+), 1 deletion(-) > > diff --git a/monkeysign/gpg.py b/monkeysign/gpg.py > index f477e78..8864780 100644 > --- a/monkeysign/gpg.py > +++ b/monkeysign/gpg.py > @@ -737,7 +737,7 @@ def parse_gpg_list(self, text): > pass > else: > raise NotImplementedError(_("record type '%s' not > implemented") % rectype) > - if uidslist: self.uidslist = uidslist > + self.uidslist = uidslist > > > def __str__(self): > diff --git a/monkeysign/gtkui.py b/monkeysign/gtkui.py > index 394ba1e..fb285b2 100644 > --- a/monkeysign/gtkui.py > +++ b/monkeysign/gtkui.py > @@ -278,6 +278,9 @@ def create_secret_keys_display(self): > for key in Keyring().get_keys(None, True, False).values(): > if key.invalid or key.disabled or key.expired or > key.revoked: > continue > + # weird key without uids, skip (see BTS#723152) > + if not key.uidslist: > + continue > uid = key.uidslist[0].uid > self.uimanager.add_ui(self.uimanager.new_merge_id(), > '/menu/identity', key.fpr, key.fpr, gtk.UI_MANAGER_AUTO, True) > action = gtk.RadioAction(key.fpr, "%s (%s)" % (uid, > key.keyid()), str(key), None, i) > -- > 2.1.4 > > > Also available here: > > https://0xacab.org/monkeysphere/monkeysign/commit/006a29582bf891c45ba7885792eb76931185935d > > Thanks for the bug report! > > A. > -- > La nature n'a créé ni maîtres ni esclaves > Je ne veux ni donner ni recevoir de lois. > - Denis Diderot -- The reasonable man adapts himself to the world. The unreasonable man persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man. - George Bernard Shaw