~ruther/guix-local

abd0cca2a9ccba4e57fd2cc318139658559979cf — Ludovic Courtès 2 years ago 3e9bea7
perform-download: Allow use of ‘download-nar’ for ‘--check’ builds.

Previously, the nar fallback would always fail on ‘--check’ build
because the output directory in that case is different from the store
file name.  This change fixes that.

* guix/build/git.scm (git-fetch-with-fallback): Add #:item parameter and
pass it to ‘download-nar’.
* guix/scripts/perform-download.scm (perform-git-download): Pass #:item
to ‘git-fetch-with-fallback’.

Change-Id: I30fc948718e99574005150bba5215a51ef153c49
2 files changed, 11 insertions(+), 6 deletions(-)

M guix/build/git.scm
M guix/scripts/perform-download.scm
M guix/build/git.scm => guix/build/git.scm +8 -6
@@ 92,19 92,21 @@ fetched, recursively.  Return #t on success, #f otherwise."


(define* (git-fetch-with-fallback url commit directory
                                  #:key (git-command "git")
                                  #:key (item directory)
                                  (git-command "git")
                                  hash hash-algorithm
                                  lfs? recursive?)
  "Like 'git-fetch', fetch COMMIT from URL into DIRECTORY, but fall back to
alternative methods when fetching from URL fails: attempt to download a nar,
and if that also fails, download from the Software Heritage archive.  When
HASH and HASH-ALGORITHM are provided, they are interpreted as the nar hash of
the directory of interested and are used as its content address at SWH."
alternative methods when fetching from URL fails: attempt to download a nar
for ITEM, and if that also fails, download from the Software Heritage archive.
When HASH and HASH-ALGORITHM are provided, they are interpreted as the nar
hash of the directory of interested and are used as its content address at
SWH."
  (or (git-fetch url commit directory
                 #:lfs? lfs?
                 #:recursive? recursive?
                 #:git-command git-command)
      (download-nar directory)
      (download-nar item directory)

      ;; As a last resort, attempt to download from Software Heritage.
      ;; Disable X.509 certificate verification to avoid depending

M guix/scripts/perform-download.scm => guix/scripts/perform-download.scm +3 -0
@@ 114,10 114,13 @@ Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or
      ;; on ambient authority, hence the PATH value below.
      (setenv "PATH" "/run/current-system/profile/bin:/bin:/usr/bin")

      ;; Note: When doing a '--check' build, DRV-OUTPUT and OUTPUT are
      ;; different, hence the #:item argument below.
      (git-fetch-with-fallback url commit output
                               #:hash hash
                               #:hash-algorithm algo
                               #:recursive? recursive?
                               #:item (derivation-output-path drv-output)
                               #:git-command %git))))

(define (assert-low-privileges)