I managed to build GnuPG 2.0.4. Unfortunately, the one feature, which was the reason why I wanted to build it in the first place, isn't working properly. And that is to use gpg-agent in daemon mode.
The problem seems to boil down to this. When running as a daemon, gpg-agent spawns a new thread when it receives a request for a passphrase from gpg2. The thread, in turn, calls assuan_pipe_connect(), which is supposed to fork a subprocess that launches pinentry. Even though fork() does return a convincingly PID-like number, alas, the child is never born (or perhaps dies before executing any code). When running as pipe server (as in the case when gpg-agent is launched directly by gpg2), the same assuan_pipe_connect() function is used to launch pinentry. The differences are that it is not called from a thread, and that, most importantly, it works as it should. The child process is born, does its job, and dies happily with the knowledge of job well done. I found out that the issue of pth threads and forking was raised in the past (6 years ago): http://cygwin.com/ml/cygwin/2001-05/msg01131.html I was wondering if there's been further developments on this ever since. Any input will be appreciated. -- Eric -- 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/