diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-04-22 23:14:42 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-04-22 23:50:49 +0200 |
commit | 479c0e3f60f54e3c3a02f71efeb49119e20d2a96 (patch) | |
tree | 15a320853bb17df7cf6caecccc062051e0d2745c /build-aux/test-env.in | |
parent | b8a251d76ec2255ce9a80022f4b439689366f73a (diff) | |
download | 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.
Diffstat (limited to 'build-aux/test-env.in')
-rw-r--r-- | build-aux/test-env.in | 14 |
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" \ |