summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-10-03 18:02:30 +0200
committerLudovic Courtès <ludo@gnu.org>2015-10-03 20:17:09 +0200
commitf2d7bbb537dd3e3fa3b0215549640d2d9c0aeaec (patch)
tree7690676f938c31938dcfcb521fa74fdb53822f07
parentfbb909ac7e947ebc8aea2c2efca7df3a78dfc3c4 (diff)
downloadguix-f2d7bbb537dd3e3fa3b0215549640d2d9c0aeaec.tar.gz
gnu: glibc: Look for locale data in versioned sub-directories.
* gnu/packages/base.scm (glibc)[native-search-paths]: Add
  'lib/locale/VERSION' for 'GUIX_LOCPATH'.
  (glibc-locales, glibc-utf8-locales): Write to a VERSION
  sub-directory.
* guix/profiles.scm (ca-certificate-bundle): Adjust LOCPATH value
  accordingly.
-rw-r--r--gnu/packages/base.scm11
-rw-r--r--guix/profiles.scm4
2 files changed, 10 insertions, 5 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 5fa8beb26a..80b0332de7 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -620,7 +620,8 @@ store.")
     ;; distros.
     (list (search-path-specification
            (variable "GUIX_LOCPATH")
-           (files '("lib/locale")))))
+           (files (list (string-append "lib/locale/" version)
+                        "lib/locale")))))
 
    (synopsis "The GNU C Library")
    (description
@@ -663,7 +664,8 @@ the 'share/locale' sub-directory of this package.")
                    ;; Use $(libdir)/locale as is the case by default.
                    (list (string-append "libc_cv_localedir="
                                         (assoc-ref %outputs "out")
-                                        "/lib/locale")))))))))
+                                        "/lib/locale/"
+                                        ,(package-version glibc))))))))))
 
 (define-public glibc-utf8-locales
   (package
@@ -672,7 +674,7 @@ the 'share/locale' sub-directory of this package.")
     (source #f)
     (build-system trivial-build-system)
     (arguments
-     '(#:modules ((guix build utils))
+     `(#:modules ((guix build utils))
        #:builder (begin
                    (use-modules (srfi srfi-1)
                                 (guix build utils))
@@ -680,7 +682,8 @@ the 'share/locale' sub-directory of this package.")
                    (let* ((libc      (assoc-ref %build-inputs "glibc"))
                           (gzip      (assoc-ref %build-inputs "gzip"))
                           (out       (assoc-ref %outputs "out"))
-                          (localedir (string-append out "/lib/locale")))
+                          (localedir (string-append out "/lib/locale/"
+                                                    ,version)))
                      ;; 'localedef' needs 'gzip'.
                      (setenv "PATH" (string-append libc "/bin:" gzip "/bin"))
 
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 0b417a64de..c56ebb145b 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -573,7 +573,9 @@ MANIFEST.  Single-file bundles are required by programs such as Git and Lynx."
 
         ;; Some file names in the NSS certificates are UTF-8 encoded so
         ;; install a UTF-8 locale.
-        (setenv "LOCPATH" (string-append #+glibc-utf8-locales "/lib/locale"))
+        (setenv "LOCPATH"
+                (string-append #+glibc-utf8-locales "/lib/locale/"
+                               #+(package-version glibc-utf8-locales)))
         (setlocale LC_ALL "en_US.UTF-8")
 
         (match (append-map ca-files '#$(manifest-inputs manifest))