[bug#34480,1/2] self: Bundle 'glibc-utf8-locales'.

Message ID 20190214222120.10914-1-ludo@gnu.org
State Accepted
Commit ba48895899a117d6ace2209c3f54411a4a989133
Headers show
Series Ensure Guix always has 'glibc-utf8-locales' | expand

Checks

Context Check Description
cbaines/applying patch success Successfully applied

Commit Message

Ludovic Courtès Feb. 14, 2019, 10:21 p.m. UTC
This minimizes the risk of locale-related warnings, at least for those
who use one of the bundled UTF-8 locales.

* guix/self.scm (guix-command)[glibc-utf8-locales]: New variable.
In program body, set GUIX_LOCPATH.
---
 guix/self.scm | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

Patch

diff --git a/guix/self.scm b/guix/self.scm
index a45470a0a6..bcf04a1b28 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -390,6 +390,10 @@  that provide Guile modules."
                        guile (guile-version (effective-version)))
   "Return the 'guix' command such that it adds MODULES and DEPENDENCIES in its
 load path."
+  (define glibc-utf8-locales
+    (module-ref (resolve-interface '(gnu packages base))
+                'glibc-utf8-locales))
+
   (define module-directory
     ;; To minimize the number of 'stat' calls needed to locate a module,
     ;; create the union of all the module directories.
@@ -410,6 +414,16 @@  load path."
                                            "/site-ccache")
                             %load-compiled-path))
 
+                    ;; To maximize the chances that locales are set up right
+                    ;; out-of-the-box, bundle "common" UTF-8 locales.
+                    (let ((locpath (getenv "GUIX_LOCPATH")))
+                      (setenv "GUIX_LOCPATH"
+                              (string-append (if locpath
+                                                 (string-append locpath ":")
+                                                 "")
+                                             #$(file-append glibc-utf8-locales
+                                                            "/lib/locale"))))
+
                     (let ((guix-main (module-ref (resolve-interface '(guix ui))
                                                  'guix-main)))
                       #$(if source