From b547349d505c57fd679b6e48c472d8ab65469c96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 12 Jul 2017 21:40:57 +0200 Subject: [PATCH] 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) : Define, as a workaround. --- guix/scripts/substitute.scm | 7 +++++++ 1 file changed, 7 insertions(+) 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