aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-07-12 21:40:57 +0200
committerLudovic Courtès <ludo@gnu.org>2017-07-12 21:56:17 +0200
commitb547349d505c57fd679b6e48c472d8ab65469c96 (patch)
treee2c9a69015ae45adbf0d197845915177fb663c64
parenta6c1fe824002d022ff3ba7c8b93987965db29641 (diff)
downloadguix-b547349d505c57fd679b6e48c472d8ab65469c96.tar
guix-b547349d505c57fd679b6e48c472d8ab65469c96.tar.gz
substitute: Work around Guile 2.2 'time-monotonic' bug.
Prior to this change, half of the cached narinfos would expire immediately since they contained the number of nanoseconds instead of the number of seconds as their date. * guix/scripts/substitute.scm (time-monotonic) <guile-2.2>: Define, as a workaround.
-rwxr-xr-xguix/scripts/substitute.scm7
1 files changed, 7 insertions, 0 deletions
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index 71f30030b6..9348599193 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -96,6 +96,13 @@
;;;
;;; Code:
+(cond-expand
+ (guile-2.2
+ ;; Guile 2.2.2 has a bug whereby 'time-monotonic' objects have seconds and
+ ;; nanoseconds swapped (fixed in Guile commit 886ac3e). Work around it.
+ (define time-monotonic time-tai))
+ (else #t))
+
(define %narinfo-cache-directory
;; A local cache of narinfos, to avoid going to the network. Most of the
;; time, 'guix substitute' is called by guix-daemon as root and stores its