Compiling the GNU Gatekeeper

I would suggest you use our patched version 2.10.9 of PTLib and the latest H323Plus to compile GnuGk. Only on operating systems where 2.10.9 doesn't work properly (eg. BSD), you should use the PTLib 2.11.0 from SVN (not 2.11.1 or newer!).

On most Unix distributions you should install the 'openssl-devel' package to have OpenSSL libraries and headers available. For Windows, install Win32 OpenSSL (1.0.2, not the 'Light' version) and add the lib and include path to your Visual Studio settings.

To include ssh support for the status port, you need libssh, at least version 0.5.0. Make sure you use the latest version to get all security fixes.


Configure and compile PTLib and H323Plus first.

GnuGk can be configured with "./configure" on Unix. Please type "./configure --help" for details.

Type "make debug", "make opt" or "make optnoshared" to compile (use the same command you used with PTLib and h323Plus). Then copy the resulting executable to a bin/ directory.

  • GCC 3.x to 6.3.x works fine for compiling GnuGk (GCC 2.95.x is too old)
  • Intel's C++ Compiler 16.x works
  • clang++ 3.0 to 4.0 also works, but clang will produce a number of (harmless) warnings

There is an example how to compile GnuGk from CVS on Ubuntu.


On Windows just build the included Visual Studio project file. Visual Studio 2015, 2013, 2010, 2008, 2005 and .NET should all work. Using the Express versions is enough to compile GnuGk. I'm using Visual Studio 2008 Express. Visual C++ 6.0 and 5.0 are no longer supported. Make sure you have compiled PTLib and H323Plus prior to compiling GnuGk.

When you build the project, the auto-config (./configure) feature will automatically detect the database libraries installed on your system and configure the appropriate drivers.

"Known Good" Library Combinations

The GNU Gatekeeper depends on the H323Plus library along with the underlying PTLib and some other libraries. Some combinations produce strange results, so here are a few notes about known issues and known good combinations.

4.5H323Plus 1.26.8PTLib 2.10.9 (patched)OpenSSL 1.0.2
4.4H323Plus 1.26.8PTLib 2.10.9 (patched) 
4.3H323Plus 1.26.7PTLib 2.10.9 (patched) 
4.2H323Plus 1.26.7PTLib 2.10.9 (patched) 
4.1H323Plus 1.26.7PTLib 2.10.9 (patched) 
4.0H323Plus from CVSPTLib 2.10.9 
4.0H323Plus 1.26.7PTLib 2.10.9libssh 0.6.3
3.9H323Plus 1.26.5PTLib 2.10.9libssh 0.6.3
3.8H323Plus 1.26.5PTLib 2.10.9libssh 0.6.3
3.7H323Plus 1.26.5PTLib 2.10.9libssh 0.6.3
3.6H323Plus 1.26.5PTLib 2.10.9libssh 0.6.3
3.5H323Plus 1.26.0PTLib 2.10.9libssh 0.5.5
3.4H323Plus 1.25.3 from CVSPTLib 2.10.9libssh 0.5.5
3.3H323Plus 1.25.0PTLib 2.10.9libssh 0.5.4
3.3H323Plus 1.25.1 from CVSPTLib 2.10.9libssh 0.5.4
3.2H323Plus 1.25.0PTLib 2.10.9libssh 0.5.2
3.2H323Plus 1.25.1 from CVSPTLib 2.10.9libssh 0.5.2
3.1H323Plus 1.24.1 from CVSPTLib 2.10.7libssh 0.5.2
3.0H323Plus 1.24.0PTLib 2.10.1 (with PDNS patch)libssh 0.5.2
3.0H323Plus 1.24.0PTLib 2.11.1 SVNon BSD
2.3.5H323Plus 1.23.0PTLib 2.10.1libssh 0.5.1
2.3.4H323Plus 1.22.0PTLib 2.8.4 
2.3.3H323Plus CVS as of 2010-10-27PTLib 2.8.2 
2.3.2H323Plus CVS as of 2010-05-25PTLib 2.8.1 
2.3.1H323Plus CVS as of 2009-11-16PTLib SVN as of 2009-11-16 
2.3.1H323Plus note on MD5 tokens


Please submit more notes.

OSGnuGk VersionH323Plus / PTLibNote
All5.x, 6.xPTLib 2.10.xPTLib needs a few small patches for the latest GCC versions, also use --enable-ipv6 --disable-odbc
All3.x, 4.xPTLib 2.10.xuse --enable-ipv6 --disable-odbc
Windows, BSD, MacOS X3.x, 4.xPTLib 2.10.xIPv6 support for Windows and BSD is buggy in PTLib 2.10.x, use PTLib 2.11.0 from 2012-02-20, don't use PTLib 2.11.1 or higher
AllAllPTLib 2.11.0PTLib must be compiled with --disable-deprecated and --disable-trace-instance (this is still not a recommended library to use with GnuGk!)
AllAllAlldo not configure PWLib with --enable-openh323; GnuGk needs some features not used by OpenH323

Last updated: 11. Jun 2017
Page maintained by Jan Willamowius