mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-23 02:59:17 -05:00
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.
This commit is contained in:
parent
7c78beb33c
commit
48b444304e
2 changed files with 18 additions and 16 deletions
|
@ -46,19 +46,22 @@ (define-module (guix scripts pack)
|
|||
|
||||
;; 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 @@ (define tar-supports-sort?
|
|||
(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 @@ (define tar-supports-sort?
|
|||
(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 @@ (define build
|
|||
|
||||
(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"
|
||||
|
|
|
@ -42,7 +42,8 @@ (define-syntax-rule (test-assertm name exp)
|
|||
(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)
|
||||
|
||||
|
|
Loading…
Reference in a new issue