aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-03-17 17:37:00 +0100
committerLudovic Courtès <ludo@gnu.org>2017-03-17 23:25:53 +0100
commit48b444304e206c35cf2c8e0d87a4711f1aac4fd4 (patch)
tree9dbf39beb8df6b5cb7a926ab13dbd3ff89102264
parent7c78beb33cbed12ac062060b0ea898583b9430b0 (diff)
downloadguix-48b444304e206c35cf2c8e0d87a4711f1aac4fd4.tar
guix-48b444304e206c35cf2c8e0d87a4711f1aac4fd4.tar.gz
pack: Move absolute file name to <compressor>.
* guix/scripts/pack.scm (<compressor>)[package]: Remove. [command]: Document as being a gexp with an absolute file name. (%compressors): Adjust accordingly. (self-contained-tarball): Simplify PATH expression. Move 'string-join' for the compressor command on the build side. (docker-image): Simplify PATH expression. * tests/pack.scm (%gzip-compressor): Adjust accordingly.
-rw-r--r--guix/scripts/pack.scm31
-rw-r--r--tests/pack.scm3
2 files changed, 18 insertions, 16 deletions
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 74d4ee6d4d..ce7613e4a0 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -46,19 +46,22 @@
;; Type of a compression tool.
(define-record-type <compressor>
- (compressor name package extension command)
+ (compressor name extension command)
compressor?
- (name compressor-name) ;string (e.g., "gzip")
- (package compressor-package) ;package
- (extension compressor-extension) ;string (e.g., "lz")
- (command compressor-command)) ;list (e.g., '("gzip" "-9n"))
+ (name compressor-name) ;string (e.g., "gzip")
+ (extension compressor-extension) ;string (e.g., "lz")
+ (command compressor-command)) ;gexp (e.g., #~("/gnu/store/…/gzip" "-9n"))
(define %compressors
;; Available compression tools.
- (list (compressor "gzip" gzip "gz" '("gzip" "-9n"))
- (compressor "lzip" lzip "lz" '("lzip" "-9"))
- (compressor "xz" xz "xz" '("xz" "-e"))
- (compressor "bzip2" bzip2 "bz2" '("bzip2" "-9"))))
+ (list (compressor "gzip" "gz"
+ #~(#+(file-append gzip "/bin/gzip") "-9n"))
+ (compressor "lzip" "lz"
+ #~(#+(file-append lzip "/bin/lzip") "-9"))
+ (compressor "xz" "xz"
+ #~(#+(file-append xz "/bin/xz") "-e"))
+ (compressor "bzip2" "bz2"
+ #~(#+(file-append bzip2 "/bin/bzip2") "-9"))))
(define (lookup-compressor name)
"Return the compressor object called NAME. Error out if it could not be
@@ -121,8 +124,7 @@ added to the pack."
(string-append #$(if localstatedir?
(file-append guix "/sbin:")
"")
- #$tar "/bin:"
- #$(compressor-package compressor) "/bin"))
+ #$tar "/bin"))
;; Note: there is not much to gain here with deduplication and
;; there is the overhead of the '.links' directory, so turn it
@@ -142,7 +144,8 @@ added to the pack."
(with-directory-excursion %root
(exit
(zero? (apply system* "tar"
- "-I" #$(string-join (compressor-command compressor))
+ "-I"
+ (string-join '#+(compressor-command compressor))
"--format=gnu"
;; Avoid non-determinism in the archive. Use
@@ -221,9 +224,7 @@ with COMPRESSOR. It can be passed to 'docker load'."
(use-modules (guix docker) (srfi srfi-19))
- (setenv "PATH"
- (string-append #$tar "/bin:"
- #$(compressor-package compressor) "/bin"))
+ (setenv "PATH" (string-append #$tar "/bin"))
(build-docker-image #$output #$profile
#:closure "profile"
diff --git a/tests/pack.scm b/tests/pack.scm
index de9ef8e6ab..eb643c3229 100644
--- a/tests/pack.scm
+++ b/tests/pack.scm
@@ -42,7 +42,8 @@
(define %gzip-compressor
;; Compressor that uses the bootstrap 'gzip'.
((@ (guix scripts pack) compressor) "gzip"
- %bootstrap-coreutils&co "gz" '("gzip" "-6n")))
+ "gz"
+ #~(#+(file-append %bootstrap-coreutils&co "/bin/gzip") "-6n")))
(define %tar-bootstrap %bootstrap-coreutils&co)