[libvirt] [PATCH] Fix detection of GnuTLS 1.x.y

Matthias Bolte matthias.bolte at googlemail.com
Wed Aug 3 14:22:42 UTC 2011


Detection based on gnutls_session doesn't work because GnuTLS 2.x.y
comes with a compat.h that defines gnutls_session to gnutls_session_t.

Instead detect this based on LIBGNUTLS_VERSION_MAJOR.
---
 configure.ac |   22 +++++++++++++++-------
 1 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/configure.ac b/configure.ac
index c8d291b..6a20366 100644
--- a/configure.ac
+++ b/configure.ac
@@ -834,17 +834,25 @@ fi
 AC_SUBST([GNUTLS_CFLAGS])
 AC_SUBST([GNUTLS_LIBS])
 
-dnl Old versions of GnuTLS uses types like 'gnutls_session' instead
-dnl of 'gnutls_session_t'.  Try to detect this type if defined so
-dnl that we can offer backwards compatibility.
+dnl Detect GnuTLS 1.x.y and enable backwards compatibility macros if found.
 old_cflags="$CFLAGS"
 old_libs="$LIBS"
 CFLAGS="$CFLAGS $GNUTLS_CFLAGS"
 LIBS="$LIBS $GNUTLS_LIBS"
-AC_CHECK_TYPE([gnutls_session],
-	AC_DEFINE([GNUTLS_1_0_COMPAT],[],
-		[enable GnuTLS 1.0 compatibility macros]),,
-	[#include <gnutls/gnutls.h>])
+AC_MSG_CHECKING([whether GnuTLS 1.0 compatibility macros are required])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <gnutls/gnutls.h>]],
+  [[
+    #if LIBGNUTLS_VERSION_MAJOR < 2
+    # error gnutls 1.x.y detected
+    #endif
+  ]])],
+  [have_gnutlsv1=no],
+  [have_gnutlsv1=yes])
+if test "x$have_gnutlsv1" = xyes; then
+  AC_DEFINE_UNQUOTED([GNUTLS_1_0_COMPAT], 1,
+                     [enable GnuTLS 1.0 compatibility macros])
+fi
+AC_MSG_RESULT([$have_gnutlsv1])
 CFLAGS="$old_cflags"
 LIBS="$old_libs"
 
-- 
1.7.4.1




More information about the libvir-list mailing list