Subject: bug#25328: gpg: "Operation cancelled" with pinentry 1.0.0 on GNOME

From: Chris Marusich <[email-masked]>
Date: Fri, 20 Jan 2017 00:14:07 -0800

Hi,

Previously, I wrote:

> In GNOME, this issue DOES occur regardless of which "pinentry" program
> I specify in my ~/.gnupg/gpg-agent.conf file (the same issue occurs
> with pinentry, pinentry-curses, pinentry-gtk-2, and pinentry-tty).

I don't think this is actually true.  I believe I made an error when
testing the different pinentry programs.  I believe I forgot to restart
the gpg-agent, which would explain why simply changing the contents of
the gpg-agent.conf file did not seem to fix the issue.

I did another test just now.  I tried changing the contents of the
gpg-agent.conf file, and I made sure to kill the gpg-agent process after
each change, so that gpg-agent would reload the file for sure.  When I
did this, I found that only pinentry-gtk-2 exhibits this issue (note
that pinentry is a symlink to pinentry-gtk-2).  In particular,
pinentry-curses, pinentry-tty, and pinentry-gnome3 all worked for me.

Is anyone able to reproduce the issue using pinentry-gtk-2?  The
following steps should reproduce the issue:

* Log into a GNOME session on (a recently updated) GuixSD.

* In $HOME/.gnupg/gpg-agent.conf, set pinentry-program to
  pinentry-gtk-2, for example:

    pinentry-program /home/marusich/.guix-profile/bin/pinentry-gtk-2

* If the gpg-agent process is running, kill it to make sure it loads the
  new gpg-agent.conf.

* Try to sign a message, e.g.:

    echo hello > /tmp/message
    gpg --sign /tmp/message

You should get the error very frequently.

[email-masked] (Ludovic Courtès) writes:

> For the record, I’ve never experienced this problem (that’s outside of
> GNOME) with:

For me, this problem doesn't happen outside of GNOME.

> $ guix package -I '(gnupg|pinentry)'
> pinentry	1.0.0	out	/gnu/store/57dg2i4backl38bw4ipcsdg1b7df9j64-pinentry-1.0.0
> gnupg	2.1.16	out	/gnu/store/fz44xcp1iksikjvcc472bgsr9hs8ygkq-gnupg-2.1.16

I'm using these versions:

  $ guix package -I '(gnupg|pinentry)'
  gnupg	2.1.17	out	/gnu/store/mcsi9rp06q0xxds4mwdgh1p16bifjxvk-gnupg-2.1.17
  pinentry-gnome3	1.0.0	out	/gnu/store/4kq8isyz7k8y64l7mjy90y4rjv7mh9x8-pinentry-gnome3-1.0.0

The problem also occurred when using the "pinentry" package (instead of
the "pinentry-gnome3" package):

  /gnu/store/b72r4rgr9irqy5zvb8i9hmrgrbb88ndf-pinentry-1.0.0

> ISTR that GNOME has a hack to force its own Pinentry tool.  Could it be
> what’s at fault?

Where can I find more info about this hack?  I did some Internet
searches, but I couldn't find anything specific.

This bug is no longer blocking me, since I can use pinentry-gnome3, but
I'm still concerned about the fact that pinentry-gtk-2 fails very
frequently, even though it didn't on the previous version.

-- 
Chris