[Pkg-gnutls-maint] Bug#405239: libgnutls13: gnutls13 has an unnecessary dependency on libgpg-error

Andreas Metzler ametzler at downhill.at.eu.org
Sat Apr 14 12:17:59 UTC 2007


tags 405239 - patch
thanks

On 2007-01-02 Nathanael Nerode <neroden at gcc.gnu.org> wrote:
> Package: libgnutls13
> Version: 1.4.4-3
> Severity: normal
> Tags: patch

> gnutls appears to have an unnecessary dependency on libgpg-error;
> gnutls does not appear to use anything from libgpg-error directly.
[...]
> I believe this (untested) patch should do the trick; the dependency
> is dragged in by the ill-behaved libgcrypt-config.  (It may in fact
> be dragged in by something else too, but this is a start.)

[...]
> --- m4/libgcrypt.m4	2004-07-28 06:28:48.000000000 -0400
> +++ m4/libgcrypt.m4.new	2007-01-01 21:01:00.000000000 -0500
> @@ -96,7 +96,7 @@
>    fi
>    if test $ok = yes; then
>      LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
> -    LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
> +    LIBGCRYPT_LIBS="-lgcrypt"
>      ifelse([$2], , :, [$2])
>    else
>      LIBGCRYPT_CFLAGS=""

Hello,

the patch does not work (at least for 1.6.x), gcrypt has been changed

(SID)ametzler at argenau:~$ libgcrypt-config --libs
 -lgcrypt

which should have the same effect as the patch. However gnutls is
still linked (unnecesarily ) against gpg-error.

I am not sure but I think libtool (1.5.22 Debian 1.5.22-4) or the
automake Makefiles are to blame. gnutls builds a temporary shared
object (noinst_LTLIBRARIES = liblgnu.la) which is linked against
libgcrypt (liblgnu_la_LDFLAGS += $(LTLIBGCRYPT)) and lateron the
library is linked against this shared object (libgnutls_la_LIBADD =
../lgl/liblgnu.la [...]) and suddenly libgpg-eror is pulled in.

The respective object is this one:
gnutls13-1.6.1/lgl/liblgnu.la, it is built by this command-line:

/bin/bash ../libtool --tag=CC   --mode=link cc  -g -Wall -O2 -D_REENTRANT -D_THREAD_SAFE -Wno-pointer-sign -pipe   -lgcrypt    -o liblgnu.la  dummy.lo asnprintf.lo gc-libgcrypt.lo gc-pbkdf2-sha1.lo md2.lo printf-args.lo printf-parse.lo read-file.lo vasnprintf.lo

and later on this one links the actual library:
SID)ametzler at argenau:/tmp/GNUTLS/gnutls13-1.6.1/lib$ /bin/bash ../libtool --tag=CC   --mode=link cc  -g -Wall -O2 -D_REENTRANT -D_THREAD_SAFE -Wno-pointer-sign -pipe    -no-undefined -version-info 15:2:2 -Wl,--version-script=./libgnutls.vers -L/usr/lib -ltasn1    -o libgnutls.la -rpath /usr/lib  gnutls_record.lo [...]  auth_dhe_psk.lo ../lgl/liblgnu.la x509/libgnutls_x509.la -L/usr/lib -lz -lgcrypt

Removing "-lgcrypt" from the first commandline stops libtool from filling
dependency_libs in liblgnu.la and the second commandline does not
cause libtool to link the final libgnutls against libgcrypt's
dependency libs.

cu andreas

-- 
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'




More information about the Pkg-gnutls-maint mailing list