aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-04-22 23:14:42 +0200
committerLudovic Courtès <ludo@gnu.org>2018-04-22 23:50:49 +0200
commit479c0e3f60f54e3c3a02f71efeb49119e20d2a96 (patch)
tree15a320853bb17df7cf6caecccc062051e0d2745c
parentb8a251d76ec2255ce9a80022f4b439689366f73a (diff)
downloadgnu-guix-479c0e3f60f54e3c3a02f71efeb49119e20d2a96.tar
gnu-guix-479c0e3f60f54e3c3a02f71efeb49119e20d2a96.tar.gz
build: Fix possible race condition in 'test-env'.
Reported by Mark H Weaver <mhw@netris.org>. * build-aux/test-env.in: Add 'guile' invocation before 'guix download' invocation to make sure 'guix-daemon' is listening.
-rw-r--r--build-aux/test-env.in14
1 files changed, 13 insertions, 1 deletions
diff --git a/build-aux/test-env.in b/build-aux/test-env.in
index 4a422cf607..52082c650f 100644
--- a/build-aux/test-env.in
+++ b/build-aux/test-env.in
@@ -1,7 +1,7 @@
#!/bin/sh
# GNU Guix --- Functional package management for GNU
-# Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#
@@ -118,6 +118,18 @@ then
bootstrap_directory="@abs_top_builddir@/gnu/packages/bootstrap/@guix_system@"
if [ -d "$bootstrap_directory" ]
then
+ # Make sure 'guix-daemon' is listening before invoking 'guix
+ # download'.
+ "@abs_top_builddir@/pre-inst-env" "@GUILE@" -c \
+ '(use-modules (guix))
+(let loop ((i 10))
+ (catch #t
+ (lambda () (open-connection))
+ (lambda (key . args)
+ (if (zero? i)
+ (apply throw key args)
+ (begin (usleep 500000) (loop (- i 1)))))))'
+
for file in "$bootstrap_directory"/guile-*
do
"@abs_top_builddir@/pre-inst-env" \