[gnutls-dev] Integrating Guile bindings?

Simon Josefsson simon at josefsson.org
Wed Apr 25 15:54:48 CEST 2007


ludovic.courtes at laas.fr (Ludovic Courtès) writes:

> Simon Josefsson <simon at josefsson.org> writes:
>
>> Oh, I thought guile-gnutls would be larger.  I actually built
>> guile-gnutls now, and it seemed rather painless.  I had problems since
>> you use the AM_PATH_LIBGNUTLS macro, but that is my fault since I
>> haven't installed and documented a better alternative.
>
> What's wrong with `AM_PATH_LIBGNUTLS'?

I have GnuTLS installed in /usr/lib (from Debian) and newer libraries in
/usr/local/lib.  Configuring guile-gnutls results in:

checking for libgnutls - version >= 1.4.0...
*** 'libgnutls-config --version' returned 1.7.9, but LIBGNUTLS (1.4.4)
*** was found! If libgnutls-config was correct, then it is best
*** to remove the old version of LIBGNUTLS. You may also be able to fix the error
*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing
*** /etc/ld.so.conf. Make sure you have run ldconfig if that is
*** required on your system.
*** If libgnutls-config was wrong, set the environment variable LIBGNUTLS_CONFIG
*** to point to the correct copy of libgnutls-config, and remove the file config.cache
*** before re-running configure
checking for libgnutls-extra-config... /usr/local/bin/libgnutls-extra-config
checking for libgnutls - version >= 1.4.0...
*** 'libgnutls-extra-config --version' returned 1.7.9, but LIBGNUTLS_EXTRA (1.4.4)
*** was found! If libgnutls-extra-config was correct, then it is best
*** to remove the old version of LIBGNUTLS_EXTRA. You may also be able to fix the error
*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing
*** /etc/ld.so.conf. Make sure you have run ldconfig if that is
*** required on your system.
*** If libgnutls-extra-config was wrong, set the environment variable LIBGNUTLS_EXTRA_CONFIG
*** to point to the correct copy of libgnutls-extra-config, and remove the file config.cache
*** before re-running configure

What's happening is that it uses libgnutls-config from /usr/local/bin
that for --libs says:

-L/usr/local/lib -lgnutls -L/usr/local/lib -lgcrypt -L/usr/local/lib -lgpg-error

Linking an application with those parameters won't make it use
libgnutls.so from /usr/local/lib, a -Wl,-rpath or similar is required
too.

This results in 'make check' failing.

Modifying LD_LIBRARY_PATH is ugly.  It is a bad recommendation.

I believe configure should simply work automatically in this not at all
uncommon situation.

The concept of a *-config program is flawed IMO.  The autoconf approach
is to test for features, and that is what we should do.  In GNU SASL and
some other projects that use GnuTLS, I use Bruno's have-lib macros.
They handle the -R problem in a more portable way, and is generally both
safer and better.  I should integrate those into libgnutls.m4 and better
document that.

>> I think we can wait a week or two to wait to see if there will be any
>> reactions from others.  If there aren't any good reasons then, let's add
>> it.  I suppose the manuals should be merged.
>
> Not sure the manuals should be merged, especially since Guile bindings
> are optional and part of the guile-gnutls manual is generated using
> Guile.  It'd be at least simpler to keep them separated, with
> cross-references between them.

Several optional things are described in the manual now...  It is a pain
to maintain separate manuals though, when generating and uploading them
to <http://www.gnu.org/software/gnutls/documentation.html>.  Also, I
would think that having the guile interface be documented in the
standard GnuTLS manual also leads to wider adoption and spread of the
guile bindings.

But I don't think strongly about it.

Possibly the guile-gnutls manual could be written as a standalone
manual, although the main gnutls manual could @include it.

> When/if a decision is made to integrate it, I can provide the necessary
> Autoconf/Automake snippets.  We may also want to make it "Copyright FSF"
> and make the manual available under the GFDL with no invariant sections,
> etc. (currently it's under a simple permissive copyleft licence, similar
> to that of the GNU web pages).

Oh, yes, right, one requirement to add anything to the core GnuTLS
package is that the copyright is transferred to the FSF and that
generally it follows the GNU project's standards (which, among other
things, imply that the manual is GFDL).  You should read:

http://www.gnu.org/prep/standards/
http://www.gnu.org/prep/maintain/

/Simon




More information about the Gnutls-devel mailing list