pack: 'self-contained-tarball' runs derivation in a UTF-8local.

* guix/scripts/pack.scm (self-contained-tarball)
[set-utf8-locale]: New variable.
[build]: Use it.
* tests/pack.scm ("self-contained-tarball"): Use a <profile> record
instead of 'profile-derivation'.
This commit is contained in:
Ludovic Courtès 2020-07-20 16:11:24 +02:00
parent e8088f0b06
commit 181e0dddd6
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 16 additions and 4 deletions

View file

@ -181,6 +181,15 @@ (define database
(file-append (store-database (list profile))
"/db/db.sqlite")))
(define set-utf8-locale
;; Arrange to not depend on 'glibc-utf8-locales' when using '--bootstrap'.
(and (or (not (profile? profile))
(profile-locales? profile))
#~(begin
(setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales "/lib/locale"))
(setlocale LC_ALL "en_US.utf8"))))
(define build
(with-imported-modules (source-module-closure
`((guix build utils)
@ -226,6 +235,9 @@ (define tar-supports-sort?
"cf" "/dev/null" "--files-from=/dev/null"
"--sort=name")))
;; Make sure non-ASCII file names are properly handled.
#+set-utf8-locale
;; Add 'tar' to the search path.
(setenv "PATH" #+(file-append archiver "/bin"))

View file

@ -57,10 +57,10 @@ (define %tar-bootstrap %bootstrap-coreutils&co)
(unless (network-reachable?) (test-skip 1))
(test-assertm "self-contained-tarball" %store
(mlet* %store-monad
((profile (profile-derivation (packages->manifest
(list %bootstrap-guile))
#:hooks '()
#:locales? #f))
((profile -> (profile
(content (packages->manifest (list %bootstrap-guile)))
(hooks '())
(locales? #f)))
(tarball (self-contained-tarball "pack" profile
#:symlinks '(("/bin/Guile"
-> "bin/guile"))