~ruther/guix-local

56b1f4b78070e3012b8c46dae1d2008c8d3e1c0a — Ludovic Courtès 13 years ago c3eb878
build, package: Add `--fallback' option.

* guix/scripts/build.scm (%options, show-help): Add `--fallback'.
  (guix-build): Call `set-build-options' with #:fallback?.
* guix/scripts/package.scm (%options, show-help): Add `--fallback'.
  (guix-package): Call `set-build-options' with #:fallback?.
* doc/guix.texi (Invoking guix package, Invoking guix build): Document
  `--fallback'.
3 files changed, 22 insertions(+), 0 deletions(-)

M doc/guix.texi
M guix/scripts/build.scm
M guix/scripts/package.scm
M doc/guix.texi => doc/guix.texi +8 -0
@@ 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.


M guix/scripts/build.scm => guix/scripts/build.scm +7 -0
@@ 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))

M guix/scripts/package.scm => guix/scripts/package.scm +7 -0
@@ 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