GnuPG master migrated to nPth

Werner Koch wk at
Wed Jan 25 17:04:48 CET 2012


I merged the npth branch of GnuPG into master.  Thus there is no more
need for GNU Pth.  The drawback is that you need to build and install
the replacement library nPth.  There are no tarballs yet, thus you need
to get that library from its GIT repo:

  git clone git://

you will also need the latest version of libassuan:

  git clone git://

Q: What is nPth?

A: nPth - The New GNU Portable Threads Library

   This is a library to provide the GNU Pth API and thus a
   non-preemptive threads implementation.

   In contrast to GNU Pth is is based on the system's standard threads
   implementation.  This allows the use of libraries which are not
   compatible to GNU Pth.  Experience with a Windows Pth emulation
   showed that this is a solid way to provide a co-routine based

Q: For what system is nPth available?

A: As of now nPth provides support for pthread based systems and
   Windows.  Support for other threading implementations is not planned,
   but can be done.  The only tested platforms are GNU/Linux systems; it
   has not yet been tested on *BSD systems.  The support for Windows is
   implemented but not well tested.  nPth is a small library and easy to
   port to other systems.

Q: Why did you drop GNU Pth?

A: Almost all systems these days have reliable native thread support
   thus we should make use of it.  We did it for Windows anyway (via our
   w32pth).  The use of GNU Pth is troublesome if you need to link to
   libraries which require pthread.  There are also some problems with
   GNU Pth on certain systems (iirc, HP/UX).  Further, GNU Pth is not
   anymore used by many projects.  Debian Sid lists only zhcon (Fast
   console CJK system using FrameBuffer) as another user of it.



Die Gedanken sind frei.  Ausnahmen regelt ein Bundesgesetz.

More information about the Gnupg-devel mailing list