diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-12-13 14:36:38 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-12-13 18:44:40 +0100 |
commit | 5e741ff0212cc09e086f566493508166f4e2e1b8 (patch) | |
tree | 96bdda25a2e91aa311c3b2ef63e9cbebf96fea29 /gnu/packages/ipfs.scm | |
parent | 1fc90e89f01f6fc372ef9d58826a23d861df24a7 (diff) | |
download | guix-5e741ff0212cc09e086f566493508166f4e2e1b8.tar guix-5e741ff0212cc09e086f566493508166f4e2e1b8.tar.gz |
gnu: go-ipfs: Work around tar bomb.
* gnu/packages/ipfs.scm (go-ipfs)[source](method): Switch to
URL-FETCH/TARBOMB.
(file-name): New field.
[arguments]: Add 'make-files-writable' phase.
Diffstat (limited to 'gnu/packages/ipfs.scm')
-rw-r--r-- | gnu/packages/ipfs.scm | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm index 82ef0ea028..a67919691f 100644 --- a/gnu/packages/ipfs.scm +++ b/gnu/packages/ipfs.scm @@ -218,17 +218,27 @@ written in Go.") (version "0.4.18") (source (origin - (method url-fetch) + (method url-fetch/tarbomb) (uri (string-append "https://dist.ipfs.io/go-ipfs/v" version "/go-ipfs-source.tar.gz")) (sha256 (base32 - "19hfgbyn5sr1bw0cwm3gsjz0w3b3vh3mmkax1906raah30lavj1x")))) + "19hfgbyn5sr1bw0cwm3gsjz0w3b3vh3mmkax1906raah30lavj1x")) + (file-name (string-append name "-" version "-source")))) (build-system go-build-system) (arguments '(#:unpack-path "github.com/ipfs/go-ipfs" - #:import-path "github.com/ipfs/go-ipfs/cmd/ipfs")) + #:import-path "github.com/ipfs/go-ipfs/cmd/ipfs" + #:phases (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-files-writable + (lambda* (#:key outputs #:allow-other-keys) + ;; Make sure .gz files are writable so that the + ;; 'reset-gzip-timestamps' phase can do its work. + (let ((out (assoc-ref outputs "out"))) + (for-each make-file-writable + (find-files out "\\.gz$")) + #t)))))) (home-page "https://ipfs.io") (synopsis "Go implementation of IPFS, a peer-to-peer hypermedia protocol") (description "IPFS is a global, versioned, peer-to-peer filesystem. It |