GNU SASL FOR WINDOWS -- Instructions for the Windows port of GNU SASL
Copyright (C) 2010 Simon Josefsson
See the end for copying conditions.

GNU SASL for Windows

This directory contains files that will build ZIP files with Windows binaries of GNU SASL. The following ZIP files are built:

gsasl-1.5.2-x86.zip: Windows x86 32-bit binaries. No external dependencies.

gsasl-1.5.2-x64.zip: Windows x86 64-bit binaries. No external dependencies.

gsasl-1.5.2-x86-kfw322.zip: Windows x86 32-bit binaries. Requires MIT Kerberos for Windows 3.2.2. Supports GSS-API and GS2.

License

The core GNU SASL library is available under the LGPLv2+ license. The command line tool gsasl is available under the GPLv3+ license. This documentation and the build scripts (e.g., Makefile) are licensed under the GPLv3+.

Donate

If you find this work useful to you, please contribute back! Contributions will help me develop and make future releases of GNU SASL.

If you need customized support, please contact me directly, since I’m available as a consultant.

Testing

Download the ZIP file and unpack it, and run the gsasl tool.

For Kerberos testing, configure KfW and then invoke gsasl. The following two screenshots demonstrates this:

gsasl-kfw1.png

gsasl-kfw2.png

For more information see the GNU SASL manual on Kerberos on Windows.

Build Environment

I’m using Debian x86 testing with the MinGW cross-compiler. You will need Wine to run the self tests for "make check".

Building GNU SASL for Windows

$ mkdir mingw-w64
$ wget -q http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64/experimental/buildsystem/makebuildroot-test.mk
$ $EDITOR makebuildroot-test.mk
       change TARGET_ARCH, GCC_FORTRAN, GCC_OBJC, GCC_BRANCH
$ make -f makebuildroot-test.mk

Put mingw-w64/build/root/bin/ in your PATH.

The next step is to build GNU SASL itself.

$ wget http://josefsson.org/gsasl4win/Makefile
$ make

This will produce a ZIP file with the binaries.

Using the GnuTLS DLL from your Cygwin or MinGW program

Link with the libgsasl.dll.a file.

$ cat > foo.c
#include <gsasl.h>
int main (void)
{
  printf ("foo %s\n", gsasl_check_version (NULL));
}
^D
$ gcc -o foo foo.c -Isomewhere/include somewhere/libgsasl.dll.a

Then run the program.

$ ./foo
foo 1.5.2
$

Using the GNU SASL DLL from your Visual Studio program

The first step is create an import library. Start a MSVS Command Prompt, and go to the GnuTLS installation directory.

C:\gsasl-1.5.2>lib /def:libgsasl-7.def
...

This will create a libgsasl-7.lib that can be used as a import library for Visual Studio projects.

Build a sample program to test it as follows:

C:\gsasl-1.5.2>cl foo.c -Iinclude -Dssize_t=long libgsasl-7.lib
...
C:\gsasl-1.5.2>foo
foo 1.5.2
C:\gsasl-1.5.2>

These steps are not fully polished yet, but appear to work.

Known problems

None so far!

Support

Ask on help-gsasl@gnu.org for general problems. If you wish to contact me directly, try simon@josefsson.org.