summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi8
-rw-r--r--guix/scripts/build.scm7
-rw-r--r--guix/scripts/package.scm7
3 files changed, 22 insertions, 0 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 4206076a9b..68d45d2a5f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -595,6 +595,10 @@ Use @var{profile} instead of the user's default profile.
@itemx -n
Show what would be done without actually doing it.
+@item --fallback
+When substituting a pre-built binary fails, fall back to building
+packages locally.
+
@item --no-substitutes
@itemx --max-silent-time=@var{seconds}
Same as for @command{guix build} (@pxref{Invoking guix build}).
@@ -1219,6 +1223,10 @@ the end of the build log. This is useful when debugging build issues.
@itemx -n
Do not build the derivations.
+@item --fallback
+When substituting a pre-built binary fails, fall back to building
+packages locally.
+
@item --no-substitutes
Build instead of resorting to pre-built substitutes.
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 995d96362b..26cd28215e 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -82,6 +82,8 @@ Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"))
(display (_ "
-n, --dry-run do not build the derivations"))
(display (_ "
+ --fallback fall back to building when the substituter fails"))
+ (display (_ "
--no-substitutes build instead of resorting to pre-built substitutes"))
(display (_ "
--max-silent-time=SECONDS
@@ -140,6 +142,10 @@ Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"))
(option '(#\n "dry-run") #f #f
(lambda (opt name arg result)
(alist-cons 'dry-run? #t result)))
+ (option '("fallback") #f #f
+ (lambda (opt name arg result)
+ (alist-cons 'fallback? #t
+ (alist-delete 'fallback? result))))
(option '("no-substitutes") #f #f
(lambda (opt name arg result)
(alist-cons 'substitutes? #f
@@ -267,6 +273,7 @@ Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"))
(set-build-options (%store)
#:keep-failed? (assoc-ref opts 'keep-failed?)
#:build-cores (or (assoc-ref opts 'cores) 0)
+ #:fallback? (assoc-ref opts 'fallback?)
#:use-substitutes? (assoc-ref opts 'substitutes?)
#:max-silent-time (assoc-ref opts 'max-silent-time)
#:verbosity (assoc-ref opts 'verbosity))
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index cd93cc3758..69b7efd154 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -438,6 +438,8 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
(display (_ "
-n, --dry-run show what would be done without actually doing it"))
(display (_ "
+ --fallback fall back to building when the substituter fails"))
+ (display (_ "
--no-substitutes build instead of resorting to pre-built substitutes"))
(display (_ "
--max-silent-time=SECONDS
@@ -499,6 +501,10 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
(option '(#\n "dry-run") #f #f
(lambda (opt name arg result)
(alist-cons 'dry-run? #t result)))
+ (option '("fallback") #f #f
+ (lambda (opt name arg result)
+ (alist-cons 'fallback? #t
+ (alist-delete 'fallback? result))))
(option '("no-substitutes") #f #f
(lambda (opt name arg result)
(alist-cons 'substitutes? #f
@@ -909,6 +915,7 @@ more information.~%"))
(with-error-handling
(parameterize ((%store (open-connection)))
(set-build-options (%store)
+ #:fallback? (assoc-ref opts 'fallback?)
#:use-substitutes?
(assoc-ref opts 'substitutes?)
#:max-silent-time