~ruther/guix-local

1af0860e8be81c01ad405c1226d6bc4516e62863 — Ludovic Courtès 9 years ago 580deec
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'.
1 files changed, 11 insertions(+), 0 deletions(-)

M guix/profiles.scm
M guix/profiles.scm => guix/profiles.scm +11 -0
@@ 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.