[gnutls-dev] Guile needs 1.8?

Simon Josefsson simon at josefsson.org
Tue Jun 26 15:41:17 CEST 2007


ludo at chbouib.org (Ludovic Courtès) writes:

>>> I'll add a more reliable test anyway.
>
> See attached patch: It basically uses Guile's `version' procedure to
> check whether we are using 1.8 or later.

I noticed now that this didn't work...  on my system, the command
'guile' is 1.8, but the guile-dev package is 1.6.  The test only checks
that the tool is recent enough, but doesn't test the header files (which
were the ones that failed).

jas at mocca:~/src/gnutls$ dpkg -l|grep guile
ii  guile-1.6                                1.6.8-6                         The GNU extension language and Scheme interp
ii  guile-1.6-dev                            1.6.8-6                         Development files for Guile 1.6
ii  guile-1.6-libs                           1.6.8-6                         Main Guile libraries
ii  guile-1.6-slib                           1.6.8-6                         Guile SLIB support
ii  guile-1.8                                1.8.1+1-4                       The GNU extension language and Scheme interp
ii  guile-1.8-libs                           1.8.1+1-4                       Main Guile libraries
ii  guile-g-wrap                             1.9.6-3.1                       scripting interface generator for C - Guile
ii  guile-library                            0.1.2-1                         Library of useful Guile modules
ii  libguile-ltdl-1                          1.6.8-6                         Guile's patched version of libtool's libltdl
jas at mocca:~/src/gnutls$

>> Perhaps a test for the feature that seems to break things here?
>> SCM_API, scm_t_bits, or whatever it might have been.
>
> No.  Those types and macros are actually defined in 1.6 as well.  It
> just turned out that for some reason their definitions were not visible.
>
> Anyway, such a feature test wouldn't help since 1.6 and 1.8 are
> significantly different API-wise.

So, I still think it is better to test for some particular feature in
the guile header files that is required by the guile bindings, which is
available in v1.8 but not in v1.6.  I installed the patch below, what do
you think?

/Simon

commit 6b1da319e3997386458242d50a6a14c71af81873
Author: Simon Josefsson <simon at josefsson.org>
Date:   Tue Jun 26 15:24:15 2007 +0200

    Check that the guile header files is recent enough and that it works.

diff --git a/NEWS b/NEWS
index 5761d8c..3c6c3a6 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,11 @@ See the end for copying conditions.
 
 * Version 1.7.15 (unreleased)
 
+** Test that the Guile header files are recent enough to work.
+Before we just tested that the command line tool 'guile' was recent
+enough, which may not be sufficient if you still have an old
+libguile.h header installed.
+
 ** Guile bindings are now installed under $prefix by default.
 Use --without-guile-site-dir to install it under $pkgdatadir/site/
 where $pkgdatadir is as returned by "guile-config info pkgdatadir".
diff --git a/configure.in b/configure.in
index f38838d..4ff951e 100644
--- a/configure.in
+++ b/configure.in
@@ -311,11 +311,13 @@ if test "x$opt_guile_bindings" = "xyes"; then
       GUILE_PROGS
       GUILE_FLAGS
 
-      AC_MSG_CHECKING([whether GNU Guile 1.8 or later is available])
-      GUILE_CHECK([is_guile_1_8],
-         [(exit (string>=? (version) (number->string 1.8)))])
+      AC_MSG_CHECKING([whether GNU Guile is recent enough])
+      AC_COMPILE_IFELSE(AC_LANG_PROGRAM([
+	#include <libguile.h>
+SCM_API scm_t_bits scm_tc16_gnutls_cipher_enum;]),
+	recent_guile=yes,recent_guile=no)
 
-      if test $is_guile_1_8 -eq 0; then
+      if test "$recent_guile" = yes; then
         AC_MSG_RESULT([yes])
 	case "x$with_guile_site_dir" in 
 	     xno)
@@ -337,7 +339,7 @@ if test "x$opt_guile_bindings" = "xyes"; then
 	esac
       else
         AC_MSG_RESULT([no])
-        AC_MSG_WARN([GNU Guile 1.8 or later is required.  Guile bindings not built.])
+        AC_MSG_WARN([A sufficiently recent GNU Guile not found.  Guile bindings not built.])
         opt_guile_bindings=no
       fi
    fi



More information about the Gnutls-dev mailing list