From a2d231ad15a5da9d5a3d52951992a4cfa67d1d86 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 26 Jun 2022 17:49:21 +0200 Subject: gnu: GnuTLS: Update to 3.7.6. * gnu/packages/tls.scm (gnutls): Update to 3.7.6. [source](patches): Remove obsolete patch. * gnu/packages/patches/gnutls-guile-eintr-eagain.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. --- gnu/local.mk | 1 - .../patches/gnutls-guile-eintr-eagain.patch | 56 ---------------------- gnu/packages/tls.scm | 7 ++- 3 files changed, 3 insertions(+), 61 deletions(-) delete mode 100644 gnu/packages/patches/gnutls-guile-eintr-eagain.patch diff --git a/gnu/local.mk b/gnu/local.mk index 993ce19874..e557e5be08 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1200,7 +1200,6 @@ dist_patch_DATA = \ %D%/packages/patches/gnupg-1-build-with-gcc10.patch \ %D%/packages/patches/gnutls-skip-trust-store-test.patch \ %D%/packages/patches/gnutls-cross.patch \ - %D%/packages/patches/gnutls-guile-eintr-eagain.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-cc.patch \ %D%/packages/patches/gobject-introspection-girepository.patch \ diff --git a/gnu/packages/patches/gnutls-guile-eintr-eagain.patch b/gnu/packages/patches/gnutls-guile-eintr-eagain.patch deleted file mode 100644 index e04c945158..0000000000 --- a/gnu/packages/patches/gnutls-guile-eintr-eagain.patch +++ /dev/null @@ -1,56 +0,0 @@ -Fixes . - -This fix was merged upstream -in and will -be in GnuTLS 3.7.3. Upstream commit: - -commit 110e2172dbef1fbdf7399dab1e80780847b61c0c -Author: Ludovic Courtès -Date: Sat Apr 24 22:02:14 2021 +0200 - - guile: Writes to record ports handle EAGAIN/EINTR transparently. - -diff --git a/guile/src/core.c b/guile/src/core.c -index a13670fc7b..0926dc8a97 100644 ---- a/guile/src/core.c -+++ b/guile/src/core.c -@@ -985,7 +985,10 @@ write_to_session_record_port (SCM port, const void *data, size_t size) - c_result = gnutls_record_send (c_session, (char *) data + c_sent, - size - c_sent); - if (EXPECT_FALSE (c_result < 0)) -- scm_gnutls_error (c_result, FUNC_NAME); -+ { -+ if (c_result != GNUTLS_E_AGAIN && c_result != GNUTLS_E_INTERRUPTED) -+ scm_gnutls_error (c_result, FUNC_NAME); -+ } - else - c_sent += c_result; - } -@@ -1069,7 +1072,8 @@ read_from_session_record_port (SCM port, SCM dst, size_t start, size_t count) - #undef FUNC_NAME - - /* Return the file descriptor that backs PORT. This function is called upon a -- blocking read--i.e., 'read_from_session_record_port' returned -1. */ -+ blocking read--i.e., 'read_from_session_record_port' or -+ 'write_to_session_record_port' returned -1. */ - static int - session_record_port_fd (SCM port) - { -@@ -1097,7 +1101,16 @@ write_to_session_record_port (SCM port, SCM src, size_t start, size_t count) - c_session = scm_to_gnutls_session (session, 1, FUNC_NAME); - data = (char *) SCM_BYTEVECTOR_CONTENTS (src) + start; - -- result = gnutls_record_send (c_session, data, count); -+ do -+ result = gnutls_record_send (c_session, data, count); -+ while (result == GNUTLS_E_INTERRUPTED -+ || (result == GNUTLS_E_AGAIN -+ && !SCM_GNUTLS_SESSION_TRANSPORT_IS_FD (c_session))); -+ -+ if (result == GNUTLS_E_AGAIN -+ && SCM_GNUTLS_SESSION_TRANSPORT_IS_FD (c_session)) -+ /* Tell Guile that reading would block. */ -+ return (size_t) -1; - - if (EXPECT_FALSE (result < 0)) - scm_gnutls_error (result, FUNC_NAME); diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 773389d926..be3f8d109d 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -210,7 +210,7 @@ living in the same process.") (define-public gnutls (package (name "gnutls") - (version "3.7.2") + (version "3.7.6") (source (origin (method url-fetch) ;; Note: Releases are no longer on ftp.gnu.org since the @@ -219,11 +219,10 @@ living in the same process.") (version-major+minor version) "/gnutls-" version ".tar.xz")) (patches (search-patches "gnutls-skip-trust-store-test.patch" - "gnutls-cross.patch" - "gnutls-guile-eintr-eagain.patch")) + "gnutls-cross.patch")) (sha256 (base32 - "0li7mwjnm64mbxhacz0rpf6i9qd83f53fvbrx96alpqqk9d6qvk4")))) + "1zv2097v9f6f4c66q7yn3c6gggjk9jz38095ma7v3gs5lccmf1kp")))) (build-system gnu-build-system) (arguments (list #:tests? (not (or (%current-target-system) -- cgit v1.2.3