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"))