• E
    build: avoid -lgcrypt with newer gnutls · 6094b1ff
    Eric Blake 提交于
    https://bugzilla.redhat.com/show_bug.cgi?id=951637
    
    Newer gnutls uses nettle, rather than gcrypt, which is a lot nicer
    regarding initialization.  Yet we were unconditionally initializing
    gcrypt even when gnutls wouldn't be using it, and having two crypto
    libraries linked into libvirt.so is pointless, but mostly harmless
    (it doesn't crash, but does interfere with certification efforts).
    
    There are three distinct version ranges to worry about when
    determining which crypto lib gnutls uses, per these gnutls mails:
    2.12: http://lists.gnu.org/archive/html/gnutls-devel/2011-03/msg00034.html
    3.0: http://lists.gnu.org/archive/html/gnutls-devel/2011-07/msg00035.html
    
    If pkg-config can prove version numbers and/or list the crypto
    library used for static linking, we have our proof; if not, it
    is safer (even if pointless) to continue to use gcrypt ourselves.
    
    * configure.ac (WITH_GNUTLS): Probe whether to add -lgcrypt, and
    define a witness WITH_GNUTLS_GCRYPT.
    * src/libvirt.c (virTLSMutexInit, virTLSMutexDestroy)
    (virTLSMutexLock, virTLSMutexUnlock, virTLSThreadImpl)
    (virGlobalInit): Honor the witness.
    * libvirt.spec.in (BuildRequires): Make gcrypt usage conditional,
    no longer needed in Fedora 19.
    Signed-off-by: NEric Blake <eblake@redhat.com>
    6094b1ff
configure.ac 87.4 KB