diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-04-08 15:47:00 -0400 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-04-08 15:47:00 -0400 |
commit | 533a893cc6b03f100566760d6e0c8e0500ed7082 (patch) | |
tree | 0ecbf89895a400c43d16bb1f6539f1a88aeaa4cf /guix/download.scm | |
parent | 6a2546f92d07df04e5d700924edd027ed1e2ef11 (diff) | |
parent | c762df54786fd6f005f3b5307323f1d2df3cbf0b (diff) |
Merge branch 'master' into staging
Conflicts:
.guix-authorizations
gnu/ci.scm
gnu/packages/base.scm
gnu/packages/databases.scm
gnu/packages/gnome.scm
gnu/packages/gtk.scm
gnu/packages/imagemagick.scm
gnu/packages/password-utils.scm
gnu/packages/python-xyz.scm
gnu/packages/web-browsers.scm
Diffstat (limited to 'guix/download.scm')
-rw-r--r-- | guix/download.scm | 57 |
1 files changed, 28 insertions, 29 deletions
diff --git a/guix/download.scm b/guix/download.scm index 494825860e..30f69c0325 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> @@ -27,7 +27,7 @@ #:use-module (guix derivations) #:use-module (guix packages) #:use-module (guix store) - #:use-module ((guix build download) #:prefix build:) + #:autoload (guix build download) (url-fetch) #:use-module (guix monads) #:use-module (guix gexp) #:use-module (guix utils) @@ -35,7 +35,7 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:export (%mirrors - url-fetch + (url-fetch* . url-fetch) url-fetch/executable url-fetch/tarbomb url-fetch/zipbomb @@ -449,11 +449,11 @@ download by itself using its own dependencies." ;; for that built-in is widespread. #:local-build? #t))) -(define* (url-fetch url hash-algo hash - #:optional name - #:key (system (%current-system)) - (guile (default-guile)) - executable?) +(define* (url-fetch* url hash-algo hash + #:optional name + #:key (system (%current-system)) + (guile (default-guile)) + executable?) "Return a fixed-output derivation that fetches data from URL (a string, or a list of strings denoting alternate URLs), which is expected to have hash HASH of type HASH-ALGO (a symbol). By default, the file name is the base name of @@ -499,10 +499,10 @@ name in the store." #:key (system (%current-system)) (guile (default-guile))) "Like 'url-fetch', but make the downloaded file executable." - (url-fetch url hash-algo hash name - #:system system - #:guile guile - #:executable? #t)) + (url-fetch* url hash-algo hash name + #:system system + #:guile guile + #:executable? #t)) (define* (url-fetch/tarbomb url hash-algo hash #:optional name @@ -521,11 +521,11 @@ own. This helper makes it easier to deal with \"tar bombs\"." (define tar (module-ref (resolve-interface '(gnu packages base)) 'tar)) - (mlet %store-monad ((drv (url-fetch url hash-algo hash - (string-append "tarbomb-" - (or name file-name)) - #:system system - #:guile guile)) + (mlet %store-monad ((drv (url-fetch* url hash-algo hash + (string-append "tarbomb-" + (or name file-name)) + #:system system + #:guile guile)) (guile (package->derivation guile system))) ;; Take the tar bomb, and simply unpack it as a directory. ;; Use ungrafted tar/gzip so that the resulting tarball doesn't depend on @@ -535,9 +535,9 @@ own. This helper makes it easier to deal with \"tar bombs\"." #~(begin (use-modules (guix build utils)) (mkdir #$output) - (setenv "PATH" (string-append #$gzip "/bin")) + (setenv "PATH" (string-append #+gzip "/bin")) (chdir #$output) - (invoke (string-append #$tar "/bin/tar") + (invoke (string-append #+tar "/bin/tar") "xf" #$drv))) #:system system #:guile-for-build guile @@ -559,11 +559,11 @@ own. This helper makes it easier to deal with \"zip bombs\"." (define unzip (module-ref (resolve-interface '(gnu packages compression)) 'unzip)) - (mlet %store-monad ((drv (url-fetch url hash-algo hash - (string-append "zipbomb-" - (or name file-name)) - #:system system - #:guile guile)) + (mlet %store-monad ((drv (url-fetch* url hash-algo hash + (string-append "zipbomb-" + (or name file-name)) + #:system system + #:guile guile)) (guile (package->derivation guile system))) ;; Take the zip bomb, and simply unpack it as a directory. ;; Use ungrafted unzip so that the resulting tarball doesn't depend on @@ -574,7 +574,7 @@ own. This helper makes it easier to deal with \"zip bombs\"." (use-modules (guix build utils)) (mkdir #$output) (chdir #$output) - (invoke (string-append #$unzip "/bin/unzip") + (invoke (string-append #+unzip "/bin/unzip") #$drv))) #:system system #:guile-for-build guile @@ -598,10 +598,9 @@ whether or not to validate HTTPS server certificates." (lambda (temp port) (let ((result (parameterize ((current-output-port log)) - (build:url-fetch url temp - #:mirrors %mirrors - #:verify-certificate? - verify-certificate?)))) + (url-fetch url temp + #:mirrors %mirrors + #:verify-certificate? verify-certificate?)))) (close port) (and result (add-to-store store name recursive? "sha256" temp))))))) |