GnuPG bug: --refresh-keys
Reini Urban
rurban@x-ray.at
Mon Aug 7 20:37:00 GMT 2006
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/
More information about the Cygwin
mailing list