diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-07-20 16:11:24 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-07-20 23:25:09 +0200 |
commit | 181e0dddd68dc58190bd4831ea5d1ecbd420d83a (patch) | |
tree | ee825f687ebdb17cfb1484bedc8e138e99420361 | |
parent | e8088f0b06c2193f2cce04a48aa1350229442a9f (diff) | |
download | guix-181e0dddd68dc58190bd4831ea5d1ecbd420d83a.tar guix-181e0dddd68dc58190bd4831ea5d1ecbd420d83a.tar.gz |
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'.
-rw-r--r-- | guix/scripts/pack.scm | 12 | ||||
-rw-r--r-- | tests/pack.scm | 8 |
2 files changed, 16 insertions, 4 deletions
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 5bd405ade4..51afaeb379 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -181,6 +181,15 @@ added to the pack." (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 @@ added to the pack." "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")) diff --git a/tests/pack.scm b/tests/pack.scm index 0c1406e687..cb7e110d18 100644 --- a/tests/pack.scm +++ b/tests/pack.scm @@ -57,10 +57,10 @@ (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")) |