Message ID | 20211002102240.27815-9-ludo@gnu.org |
---|---|
State | Accepted |
Headers | show |
Series | Add 'guix shell' to subsume 'guix environment' | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
Ludovic Courtès schreef op za 02-10-2021 om 12:22 [+0200]: > * guix/cache.scm (maybe-remove-expired-cache-entries): Ignore ENOENT > when writing EXPIRY-FILE. > --- > guix/cache.scm | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/guix/cache.scm b/guix/cache.scm > index 0401a9d428..51009809bd 100644 > --- a/guix/cache.scm > +++ b/guix/cache.scm > @@ -101,7 +101,13 @@ CLEANUP-PERIOD denotes the minimum time between two cache cleanups." > #:now now > #:entry-expiration entry-expiration > #:delete-entry delete-entry) > - (call-with-output-file expiry-file > - (cute write (time-second now) <>)))) > + (catch 'system-error > + (lambda () > + (call-with-output-file expiry-file > + (cute write (time-second now) <>))) > + (lambda args > + ;; ENOENT means CACHE does not exist. > + (unless (= ENOENT (system-error-errno args)) And EROFS perhaps, such that "guix shell" works even if the root file system was remounted read-only for some reason and all the necessary derivations have already been built. Greetings, Maxime.
diff --git a/guix/cache.scm b/guix/cache.scm index 0401a9d428..51009809bd 100644 --- a/guix/cache.scm +++ b/guix/cache.scm @@ -101,7 +101,13 @@ CLEANUP-PERIOD denotes the minimum time between two cache cleanups." #:now now #:entry-expiration entry-expiration #:delete-entry delete-entry) - (call-with-output-file expiry-file - (cute write (time-second now) <>)))) + (catch 'system-error + (lambda () + (call-with-output-file expiry-file + (cute write (time-second now) <>))) + (lambda args + ;; ENOENT means CACHE does not exist. + (unless (= ENOENT (system-error-errno args)) + (apply throw args)))))) ;;; cache.scm ends here