aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/guile.scm3
-rw-r--r--gnu/packages/patches/guile-repl-server-test.patch48
3 files changed, 51 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index ff8586eba3..17bfda2a77 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -587,6 +587,7 @@ dist_patch_DATA = \
%D%/packages/patches/guile-linux-syscalls.patch \
%D%/packages/patches/guile-present-coding.patch \
%D%/packages/patches/guile-relocatable.patch \
+ %D%/packages/patches/guile-repl-server-test.patch \
%D%/packages/patches/guile-rsvg-pkgconfig.patch \
%D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \
%D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 3f45b29038..4572544ec3 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -217,7 +217,8 @@ without requiring the source code to be rewritten.")
".tar.xz"))
(sha256
(base32
- "12yqkr974y91ylgw6jnmci2v90i90s7h9vxa4zk0sai8vjnz4i1p"))))))
+ "12yqkr974y91ylgw6jnmci2v90i90s7h9vxa4zk0sai8vjnz4i1p"))
+ (patches (search-patches "guile-repl-server-test.patch"))))))
(define-public guile-next
(package (inherit guile-2.0)
diff --git a/gnu/packages/patches/guile-repl-server-test.patch b/gnu/packages/patches/guile-repl-server-test.patch
new file mode 100644
index 0000000000..81e724ecc4
--- /dev/null
+++ b/gnu/packages/patches/guile-repl-server-test.patch
@@ -0,0 +1,48 @@
+commit 8d6209ea56241bb1890c142539927c9ef3fb5a13
+Author: Ludovic Courtès <ludo@gnu.org>
+Date: Fri Nov 4 22:44:32 2016 +0100
+
+ tests: Throw 'unresolved when the REPL server is too slow.
+
+commit 2fbde7f02adb8c6585e9baf6e293ee49cd23d4c4
+Author: Ludovic Courtès <ludo@gnu.org>
+Date: Fri Nov 4 22:45:51 2016 +0100
+
+ tests: Avoid race condition in REPL server test.
+
+index ca389ba..4b5ec0c 100644
+--- a/test-suite/tests/00-repl-server.test
++++ b/test-suite/tests/00-repl-server.test
+@@ -61,10 +61,11 @@ socket connected to that server."
+ (lambda ()
+ (connect client-socket sockaddr))
+ (lambda args
+- (when (and (memv (system-error-errno args)
+- (list ENOENT ECONNREFUSED))
+- (< tries 3))
+- (sleep 1)
++ (when (memv (system-error-errno args)
++ (list ENOENT ECONNREFUSED))
++ (when (> tries 30)
++ (throw 'unresolved))
++ (usleep 100)
+ (loop (+ tries 1))))))
+
+ (proc client-socket))
+@@ -104,8 +105,14 @@ reached."
+ "scheme@(repl-server)> $1 = 42\n"
+ (with-repl-server socket
+ (read-until-prompt socket %last-line-before-prompt)
+- (display "(+ 40 2)\n(quit)\n" socket)
+- (read-string socket)))
++
++ ;; Wait until 'repl-reader' in boot-9 has written the prompt.
++ ;; Otherwise, if we write too quickly, 'repl-reader' checks for
++ ;; 'char-ready?' and doesn't print the prompt.
++ (match (select (list socket) '() (list socket) 3)
++ (((_) () ())
++ (display "(+ 40 2)\n(quit)\n" socket)
++ (read-string socket)))))
+
+ (pass-if "HTTP inter-protocol attack" ;CVE-2016-8606
+ (with-repl-server socket