You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Daniel Shahaf <d....@daniel.shahaf.name> on 2018/09/28 22:48:09 UTC

gpg-agent password prompt hangs since r1794166+r1795087

When I run:
.
    % ./subversion/svn/svn mkdir -qmm https://dist.apache.org/repos/dist/test
.
it hangs with no output, until I «pkill pinentry» from another terminal,
at which point I get the built-in password prompt.

I bisected this to the gpg-agent changes in r1794166+r1795087 [1]: in r1794165
I get a password prompt immediately, whereas in r1794166 + 'svn merge -c r1795087'
I get the hang.

My system has gpg-agent version 2.1.18-8~deb9u2 (OS package, Debian stretch).

Haven't looked beyond this.

Cheers,

Daniel 

[1] 
> ------------------------------------------------------------------------
> r1794166 | jamessan | 2017-05-06 17:36:16 +0000 (Sat, 06 May 2017) | 13 lines
> Changed paths:
>    M /subversion/trunk/subversion/libsvn_subr/gpg_agent.c
> 
> Find gpg-agent socket using gpgconf, if possible.
> 
> This allows detection of socket with Gnupg >= 2.1.13, which changed the default
> socket path to (/var)/run/user/UID/gnupg
> 
> * subversion/libsvn_subr/gpg_agent.c
>   (find_gpgconf_agent_socket): new function to find gpg-agent socket using
>    gpgconf
>   (find_running_gpg_agent): use find_gpgconf_agent_socket to detect socket when
>    possible.
> 
> Patch by: Lukas Jirkovsky <l.jirkovsky{_AT_}gmail.com>
> 
> ------------------------------------------------------------------------
> r1795087 | jamessan | 2017-05-14 05:33:51 +0000 (Sun, 14 May 2017) | 15 lines
> Changed paths:
>    M /subversion/trunk/subversion/libsvn_subr/gpg_agent.c
> 
> Search for gpg-agent sockets in (/var)/run.
> 
> This reverts executing gpgconf to find the socket, as implemented in r1794166.
> Instead, follow mostly the same procedure for socket lookup as GPG.  GPG's
> hashing of non-default $GNUPGHOME to use as a portion of the path under
> (/var)/run is not (yet) done, since it relies on implementing z-base-32
> encoding.
> 
> * subversion/libsvn_subr/gpg_agent.c
>   (find_gpgconf_agent_socket): Removed function which ran gpgconf ...
>   (find_gpg_agent_socket): ... and added one that performs the various checks
>    to determine where the user's gpg-agent socket resides.
>   (find_running_gpg_agent): Replace the socket lookup with a call to
>    find_gpg_agent_socket.
> 
> ------------------------------------------------------------------------