From: Paul Eggert Date: Wed, 3 Aug 2016 08:33:21 +0000 (-0400) Subject: Require GnuTLS 2.12.2 or later X-Git-Tag: emacs-26.0.90~1810 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=64edd14ca9cf6d1b957316a9a547e482c9ba811b;p=emacs.git Require GnuTLS 2.12.2 or later * configure.ac, etc/NEWS: Require GnuTLS 2.12.2 or later, instead of merely 2.6.6 or later (Bug#23982#20). * src/gnutls.c (init_gnutls_functions, emacs_gnutls_handshake) [WINDOWSNT]: Don’t bother with gnutls_check_version or gnutls_transport_set_lowat, as they are no longer needed now that we require gnutls 2.12.2 or later. --- diff --git a/configure.ac b/configure.ac index cca555c27b4..e8aeae266f0 100644 --- a/configure.ac +++ b/configure.ac @@ -2748,7 +2748,7 @@ AC_SUBST(LIBSELINUX_LIBS) HAVE_GNUTLS=no if test "${with_gnutls}" = "yes" ; then - EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6], + EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.12.2], [HAVE_GNUTLS=yes], [HAVE_GNUTLS=no]) if test "${HAVE_GNUTLS}" = "yes"; then AC_DEFINE(HAVE_GNUTLS, 1, [Define if using GnuTLS.]) diff --git a/etc/NEWS b/etc/NEWS index 6462effd9f4..fadf4c2af04 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -28,6 +28,9 @@ otherwise leave it unmarked. ** By default libgnutls is now required when building Emacs. Use 'configure --with-gnutls=no' to build even when GnuTLS is missing. +** GnuTLS version 2.12.2 or later is now required, instead of merely +version 2.6.6 or later. + ** The new option 'configure --enable-gcc-warnings=warn-only' causes GCC to issue warnings without stopping the build. This behavior is now the default in developer builds. As before, use diff --git a/src/gnutls.c b/src/gnutls.c index 7f05ac4bc47..681e2989071 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -110,8 +110,6 @@ DEF_DLL_FN (ssize_t, gnutls_record_send, (gnutls_session_t, const void *, size_t)); DEF_DLL_FN (const char *, gnutls_strerror, (int)); DEF_DLL_FN (void, gnutls_transport_set_errno, (gnutls_session_t, int)); -DEF_DLL_FN (const char *, gnutls_check_version, (const char *)); -DEF_DLL_FN (void, gnutls_transport_set_lowat, (gnutls_session_t, int)); DEF_DLL_FN (void, gnutls_transport_set_ptr2, (gnutls_session_t, gnutls_transport_ptr_t, gnutls_transport_ptr_t)); @@ -225,11 +223,6 @@ init_gnutls_functions (void) LOAD_DLL_FN (library, gnutls_record_send); LOAD_DLL_FN (library, gnutls_strerror); LOAD_DLL_FN (library, gnutls_transport_set_errno); - LOAD_DLL_FN (library, gnutls_check_version); - /* We don't need to call gnutls_transport_set_lowat in GnuTLS 2.11.1 - and later, and the function was removed entirely in 3.0.0. */ - if (!fn_gnutls_check_version ("2.11.1")) - LOAD_DLL_FN (library, gnutls_transport_set_lowat); LOAD_DLL_FN (library, gnutls_transport_set_ptr2); LOAD_DLL_FN (library, gnutls_transport_set_pull_function); LOAD_DLL_FN (library, gnutls_transport_set_push_function); @@ -290,7 +283,6 @@ init_gnutls_functions (void) # define gnutls_certificate_set_x509_trust_file fn_gnutls_certificate_set_x509_trust_file # define gnutls_certificate_type_get fn_gnutls_certificate_type_get # define gnutls_certificate_verify_peers2 fn_gnutls_certificate_verify_peers2 -# define gnutls_check_version fn_gnutls_check_version # define gnutls_cipher_get fn_gnutls_cipher_get # define gnutls_cipher_get_name fn_gnutls_cipher_get_name # define gnutls_credentials_set fn_gnutls_credentials_set @@ -321,7 +313,6 @@ init_gnutls_functions (void) # define gnutls_sign_get_name fn_gnutls_sign_get_name # define gnutls_strerror fn_gnutls_strerror # define gnutls_transport_set_errno fn_gnutls_transport_set_errno -# define gnutls_transport_set_lowat fn_gnutls_transport_set_lowat # define gnutls_transport_set_ptr2 fn_gnutls_transport_set_ptr2 # define gnutls_transport_set_pull_function fn_gnutls_transport_set_pull_function # define gnutls_transport_set_push_function fn_gnutls_transport_set_push_function @@ -439,20 +430,6 @@ emacs_gnutls_handshake (struct Lisp_Process *proc) (gnutls_transport_ptr_t) proc); gnutls_transport_set_push_function (state, &emacs_gnutls_push); gnutls_transport_set_pull_function (state, &emacs_gnutls_pull); - - /* For non blocking sockets or other custom made pull/push - functions the gnutls_transport_set_lowat must be called, with - a zero low water mark value. (GnuTLS 2.10.4 documentation) - - (Note: this is probably not strictly necessary as the lowat - value is only used when no custom pull/push functions are - set.) */ - /* According to GnuTLS NEWS file, lowat level has been set to - zero by default in version 2.11.1, and the function - gnutls_transport_set_lowat was removed from the library in - version 2.99.0. */ - if (!gnutls_check_version ("2.11.1")) - gnutls_transport_set_lowat (state, 0); #else /* This is how GnuTLS takes sockets: as file descriptors passed in. For an Emacs process socket, infd and outfd are the