download: Use Disarchive as a last resort.
authorTimothy Sample <samplet@ngyro.com>
Sat, 20 Mar 2021 03:03:25 +0000 (23:03 -0400)
committerTimothy Sample <samplet@ngyro.com>
Thu, 29 Apr 2021 15:24:48 +0000 (11:24 -0400)
commitfbc2a52a32ddc664db8ebab420c2e17b1432c744
tree11aa4c9a85a66edd1e8f30bb29c3c3978c037100
parentdf0b7233450d0ad70eb7b7a7294a2d2f37118603
download: Use Disarchive as a last resort.

This is a fixed version of 66b14dccdd0d83c875ce3a8d50ceab8b6f0a3ce2,
which was reverted in e74250c3c535b75dd2225a26df51febb7ed94654.

* guix/download.scm (%disarchive-mirrors): New variable.
(%disarchive-mirror-file): New variable.
(built-in-download): Add 'disarchive-mirrors' keyword argument and
pass its value along to the 'builtin:download' derivation.
(url-fetch): Pass '%disarchive-mirror-file' to 'built-in-download'.
* guix/scripts/perform-download.scm (perform-download): Read
Disarchive mirrors from the environment and pass them to
'url-fetch'.
* guix/build/download.scm (disarchive-fetch/any): New procedure.
(url-fetch): Add 'disarchive-mirrors' keyword argument, use it to
make a list of URIs, and use the new procedure to fetch the file if
all other methods fail.
* build-aux/build-self.scm (build-program)[select?]: Exclude '(guix
build download)'.
* guix/self.scm (compiled-guix)[*core-modules*]: Add 'guile-json' to
the list of extensions.
build-aux/build-self.scm
guix/build/download.scm
guix/download.scm
guix/scripts/perform-download.scm
guix/self.scm