[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