X-Spam-Check-By: sourceware.org Message-ID: <44D7A4B5.4090208@x-ray.at> Date: Mon, 07 Aug 2006 22:38:13 +0200 From: Reini Urban User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-AT; rv:1.8.0.6) Gecko/20060729 SeaMonkey/1.0.4 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: GnuPG bug: --refresh-keys References: <44D21D4C DOT 7050200 AT ukf DOT net> <44D29487 DOT 6000806 AT ukf DOT net> <44D2CDF7 DOT 1090900 AT scytek DOT de> In-Reply-To: <44D2CDF7.1090900@scytek.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com 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 : 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/