[gnutls-dev] autoconf version handling

Simon Josefsson simon at josefsson.org
Sun Apr 22 09:28:20 CEST 2007

Timo Schulz <twoaday at gmx.net> writes:

> Simon Josefsson wrote:
>> A better solution is to test for features and not version numbers.
>> Did you add some new externally visible API in 0.6, that the updated
>> GnuTLS code would need?  Then check for that, using something like:
> I need to check this, but to make sure that the right opencdk version
> is used, I will add a check for a function which is new in 0.6.0.

Building GnuTLS CVS doesn't detect that the system OpenCDK is out of

checking whether to disable OpenPGP Certificate authentication support... no
checking for libopencdk... yes
checking how to link with libopencdk... -lopencdk
checking whether to use the included opencdk... no

It then fails when building the code that uses OpenCDK:

make[3]: Entering directory `/home/jas/src/gnutls/libextra/openpgp'
/bin/sh ../../libtool --tag=CC   --mode=compile gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..  -I../../lgl -I../../lgl -I../../crypto -I../../lib -I../../includes -I../../includes -I../../libextra/opencdk -I../../lib/minitasn1    -D_REENTRANT -D_THREAD_SAFE -g -Wall -Wcast-align -W -Wpointer-arith -Wchar-subscripts -Wformat-security -Wno-format-y2k -Wmissing-braces -Winline -Wstrict-prototypes -Wno-unused-parameter -Wno-pointer-sign -pipe -I/usr/local/include  -I/usr/local/include -MT pgp.lo -MD -MP -MF .deps/pgp.Tpo -c -o pgp.lo pgp.c
 gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. -I../../lgl -I../../lgl -I../../crypto -I../../lib -I../../includes -I../../includes -I../../libextra/opencdk -I../../lib/minitasn1 -D_REENTRANT -D_THREAD_SAFE -g -Wall -Wcast-align -W -Wpointer-arith -Wchar-subscripts -Wformat-security -Wno-format-y2k -Wmissing-braces -Winline -Wstrict-prototypes -Wno-unused-parameter -Wno-pointer-sign -pipe -I/usr/local/include -I/usr/local/include -MT pgp.lo -MD -MP -MF .deps/pgp.Tpo -c pgp.c  -fPIC -DPIC -o .libs/pgp.o
pgp.c: In function 'gnutls_openpgp_key_import':
pgp.c:99: error: too many arguments to function 'cdk_stream_tmp_from_mem'
pgp.c:99: warning: assignment makes integer from pointer without a cast
pgp.c: In function 'gnutls_openpgp_key_export':
pgp.c:165: warning: implicit declaration of function 'cdk_armor_encode_buffer'
make[3]: *** [pgp.lo] Error 1
make[3]: Leaving directory `/home/jas/src/gnutls/libextra/openpgp'

I installed this patch:

Index: configure.in
RCS file: /cvs/gnutls/gnutls/configure.in,v
retrieving revision 2.495
retrieving revision 2.496
diff -u -p -r2.495 -r2.496
--- configure.in	16 Apr 2007 14:34:23 -0000	2.495
+++ configure.in	22 Apr 2007 07:21:55 -0000	2.496
@@ -396,8 +396,7 @@ if test x$ac_enable_openpgp = xyes; then
  if test x$ac_enable_included_opencdk = xno;then 
   AC_LIB_HAVE_LINKFLAGS(opencdk,, [
-#include <stddef.h> /* opencdk <= 0.5.13 uses size_t without this include */
-#include <opencdk.h>], [cdk_check_version (OPENCDK_VERSION);])
+#include <opencdk.h>], [cdk_armor_encode_buffer (NULL, 0, NULL, 0, NULL, 0);])
   if test "$ac_cv_libopencdk" != yes; then

We should update the included OpenCDK version in GnuTLS with 0.6.0
too..  And test how well older GnuTLS releases deals with OpenCDK


More information about the Gnutls-devel mailing list