aboutsummaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-12-16 18:01:08 +0100
committerLudovic Courtès <ludo@gnu.org>2016-12-16 18:01:08 +0100
commit1af0860e8be81c01ad405c1226d6bc4516e62863 (patch)
treeecdb8e5debee806888eed9c26ee24d1c30e9dd2d /guix
parent580deec5b44d623e994e59ef07e9e0c5496762fd (diff)
downloadgnu-guix-1af0860e8be81c01ad405c1226d6bc4516e62863.tar
gnu-guix-1af0860e8be81c01ad405c1226d6bc4516e62863.tar.gz
profiles: Build profiles in a UTF-8 locale.
Fixes <http://bugs.gnu.org/25213>. Reported by Christopher Baines <mail@cbaines.net>. * guix/profiles.scm (profile-derivation)[glibc-utf8-locales]: New variable. [builder]: Use it to set 'LOCPATH'.
Diffstat (limited to 'guix')
-rw-r--r--guix/profiles.scm11
1 files changed, 11 insertions, 0 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 0b317ef51e..82d8b33c09 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -939,6 +939,10 @@ the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc."
extras)
(manifest-inputs manifest)))
+ (define glibc-utf8-locales ;lazy reference
+ (module-ref (resolve-interface '(gnu packages base))
+ 'glibc-utf8-locales))
+
(define builder
(with-imported-modules '((guix build profiles)
(guix build union)
@@ -953,6 +957,13 @@ the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc."
(setvbuf (current-output-port) _IOLBF)
(setvbuf (current-error-port) _IOLBF)
+ ;; Some file names (e.g., in 'nss-certs') are UTF-8 encoded so
+ ;; install a UTF-8 locale.
+ (setenv "LOCPATH"
+ (string-append #+glibc-utf8-locales "/lib/locale/"
+ #+(package-version glibc-utf8-locales)))
+ (setlocale LC_ALL "en_US.utf8")
+
(define search-paths
;; Search paths of MANIFEST's packages, converted back to their
;; record form.