diff --git a/guix/download.scm b/guix/download.scm index 5044534bf5..7aa6c03665 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 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2013, 2014, 2015 Andreas Enge ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2016 Alex Griffin @@ -509,6 +509,8 @@ own. This helper makes it easier to deal with \"tar bombs\"." #:system system #:guile guile))) ;; Take the tar bomb, and simply unpack it as a directory. + ;; Use ungrafted tar/gzip so that the resulting tarball doesn't depend on + ;; whether grafts are enabled. (gexp->derivation (or name file-name) #~(begin (mkdir #$output) @@ -516,6 +518,7 @@ own. This helper makes it easier to deal with \"tar bombs\"." (chdir #$output) (zero? (system* (string-append #$tar "/bin/tar") "xf" #$drv))) + #:graft? #f #:local-build? #t))) (define* (url-fetch/zipbomb url hash-algo hash @@ -539,12 +542,15 @@ own. This helper makes it easier to deal with \"zip bombs\"." #:system system #:guile guile))) ;; Take the zip bomb, and simply unpack it as a directory. + ;; Use ungrafted unzip so that the resulting tarball doesn't depend on + ;; whether grafts are enabled. (gexp->derivation (or name file-name) #~(begin (mkdir #$output) (chdir #$output) (zero? (system* (string-append #$unzip "/bin/unzip") #$drv))) + #:graft? #f #:local-build? #t))) (define* (download-to-store store url #:optional (name (basename url))