From f2d7bbb537dd3e3fa3b0215549640d2d9c0aeaec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 3 Oct 2015 18:02:30 +0200 Subject: [PATCH] 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. --- gnu/packages/base.scm | 11 +++++++---- guix/profiles.scm | 4 +++- 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))