From 181e0dddd68dc58190bd4831ea5d1ecbd420d83a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 20 Jul 2020 16:11:24 +0200 Subject: 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 record instead of 'profile-derivation'. --- guix/scripts/pack.scm | 12 ++++++++++++ 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")) -- cgit 1.4.1