This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GnuPG bug: --refresh-keys


Volker Quetschke schrieb:
Max Bowsher wrote:
Max Bowsher wrote:
When running 'gpg --refresh-keys', the second updated key results in:

gpg: renaming `/home/max/.gnupg/pubring.gpg' to
`/home/max/.gnupg/pubring.gpg~' failed: Permission denied
gpg: error writing keyring `/home/max/.gnupg/pubring.gpg': file rename error
gpg: key XXXXXXXX: "...." 28 new signatures
gpg: error reading `[stream]': file rename error


Given that: * this happens for the *second* updated key

 * having another process running at the same time, rapidly moving away
any new pubring.gpg~ files avoids the error

* it is presumably Cygwin-specific

it seems extremely likely that gnupg has a file descriptor leak, such
that when the second key is processed, gnupg still has an open file
descriptor on the file pubring.gpg~ when it attempts to overwrite it by
renaming another file onto that name. Windows then objects.
Replying to my own mail...

GPG for some reason tries to cache opened fds for re-use. I suggest
disabling this caching for Cygwin. The appropriate code to tweak is in
util/iobuf.c:fd_cache_close(). I changed the condition of the first if
statement there to always be true, and the problem I reported goes away.

Please integrate this into the Cygwin packages.

Thanks for tracking this down Max. It's also time for a new package with the newer upstream version.

Did you get gpg-agent working? My private gnupg-1.9.20-1 fails. Others reported that also.

$ eval `gpg-agent --daemon`

$ gpg-agent
gpg-agent: gpg-agent running and available

and on signing gpg -s <file>:
can't connect to `/tmp/gpg-H2cOWD/S.gpg-agent': Connection refused
gpg: can't connect to `/tmp/gpg-H2cOWD/S.gpg-agent': connect failed


I've got libassuan-0.6.10-1 and libksba-0.9.16-1 at my setup repository, which might help you.
The pth libs are missing:


src/gnupg-1.9.20/tools/Makefile.am
@@ -60,7 +60,7 @@
gpg_connect_agent_SOURCES = gpg-connect-agent.c no-libgcrypt.c
gpg_connect_agent_LDADD = ../jnlib/libjnlib.a \
../common/libcommon.a ../gl/libgnu.a \
- $(LIBASSUAN_LIBS) $(GPG_ERROR_LIBS) $(LIBINTL)
+ $(LIBASSUAN_LIBS) $(GPG_ERROR_LIBS) $(LIBINTL) $(PTH_LIBS)


 gpgkey2ssh_SOURCES = gpgkey2ssh.c
 gpgkey2ssh_CFLAGS = $(LIBGCRYPT_CFLAGS) $(GPG_ERROR_CFLAGS)
--
Reini Urban
http://phpwiki.org/  http://murbreak.at/
http://helsinki.at/  http://spacemovie.mur.at/

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]