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. > > ------------------------------------------------------------------------