[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/02: guix build: Add '--repair'.

From: Ludovic Courtès
Subject: 02/02: guix build: Add '--repair'.
Date: Sun, 15 Jan 2017 21:48:01 +0000 (UTC)

civodul pushed a commit to branch master
in repository guix.

commit 6da5bb7b1b7ddf4aa5a5efcb83250506bcd67036
Author: Ludovic Courtès <address@hidden>
Date:   Sun Jan 15 22:28:24 2017 +0100

    guix build: Add '--repair'.
    * guix/scripts/build.scm (show-help, %options): Add '--repair'.
    * doc/guix.texi (Invoking guix gc): Mention 'guix build --repair'.
    (Additional Build Options): Document it.
 doc/guix.texi          |   13 ++++++++++++-
 guix/scripts/build.scm |    8 ++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 55657ec..bf9dbaa 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -2274,11 +2274,14 @@ traverses @emph{all the files in the store}, this 
command can take a
 long time, especially on systems with a slow disk drive.
 @cindex repairing the store
address@hidden corruption, recovering from
 Using @option{--verify=repair} or @option{--verify=contents,repair}
 causes the daemon to try to repair corrupt store items by fetching
 substitutes for them (@pxref{Substitutes}).  Because repairing is not
 atomic, and thus potentially dangerous, it is available only to the
-system administrator.
+system administrator.  A lightweight alternative, when you know exactly
+which items in the store are corrupt, is @command{guix build --repair}
+(@pxref{Invoking guix build}).
 @item --optimize
 @cindex deduplication
@@ -4859,6 +4862,14 @@ When used in conjunction with @option{--keep-failed}, 
the differing
 output is kept in the store, under @file{/gnu/store/@dots{}-check}.
 This makes it easy to look for differences between the two results.
address@hidden --repair
address@hidden repairing store items
address@hidden corruption, recovering from
+Attempt to repair the specified store items, if they are corrupt, by
+re-downloading or rebuilding them.
+This operation is not atomic and thus restricted to @code{root}.
 @item --derivations
 @itemx -d
 Return the derivation paths, not the output paths, of the given
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 551275e..8326d64 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -486,6 +486,8 @@ Build the given PACKAGE-OR-DERIVATION and return their 
output paths.\n"))
   (display (_ "
       --check            rebuild items to check for non-determinism issues"))
   (display (_ "
+      --repair           repair the specified items"))
+  (display (_ "
   -r, --root=FILE        make FILE a symlink to the result, and register it
                          as a garbage collector root"))
   (display (_ "
@@ -535,6 +537,12 @@ must be one of 'package', 'all', or 'transitive'~%")
                           (alist-cons 'build-mode (build-mode check)
+         (option '("repair") #f #f
+                 (lambda (opt name arg result . rest)
+                   (apply values
+                          (alist-cons 'build-mode (build-mode repair)
+                                      result)
+                          rest)))
          (option '(#\s "system") #t #f
                  (lambda (opt name arg result)
                    (alist-cons 'system arg

reply via email to

[Prev in Thread] Current Thread [Next in Thread]