mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-26 14:28:15 -05:00
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.
This commit is contained in:
parent
e4496bf373
commit
a2d231ad15
3 changed files with 3 additions and 61 deletions
|
@ -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 \
|
||||
|
|
|
@ -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);
|
|
@ -210,7 +210,7 @@ (define-public p11-kit-next
|
|||
(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 @@ (define-public gnutls
|
|||
(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)
|
||||
|
|
Loading…
Reference in a new issue