summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-06-26 17:49:21 +0200
committerMarius Bakke <marius@gnu.org>2022-06-26 22:58:34 +0200
commita2d231ad15a5da9d5a3d52951992a4cfa67d1d86 (patch)
tree8c392207dc3195dd170cd91e9e186fa88b3a8d43
parente4496bf373c81d73e4709d2c16048460dbf58866 (diff)
downloadguix-a2d231ad15a5da9d5a3d52951992a4cfa67d1d86.tar.gz
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.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/gnutls-guile-eintr-eagain.patch56
-rw-r--r--gnu/packages/tls.scm7
3 files changed, 3 insertions, 61 deletions
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 <https://issues.guix.gnu.org/47867>.
-
-This fix was merged upstream
-in <https://gitlab.com/gnutls/gnutls/-/merge_requests/1417> and will
-be in GnuTLS 3.7.3.  Upstream commit:
-
-commit 110e2172dbef1fbdf7399dab1e80780847b61c0c
-Author: Ludovic Courtès <ludo@gnu.org>
-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)