summary refs log tree commit diff
path: root/gnu/packages/base.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-09-30 17:06:40 +0200
committerLudovic Courtès <ludo@gnu.org>2015-09-30 17:06:40 +0200
commit46bd6edd5af4b4fe1f1d066028a6a84ed17ce96b (patch)
tree4344e7879a0de0cbccc4dfdda883866f969822da /gnu/packages/base.scm
parentc24fff615b5217299246f40d45c230dab933d59b (diff)
downloadguix-46bd6edd5af4b4fe1f1d066028a6a84ed17ce96b.tar.gz
gnu: libc: Look for locale data under /run/current-system/locale/X.Y.
* gnu/packages/base.scm (glibc)[arguments]: Append VERSION to
  'libc_cv_localedir'.
* gnu/system/locale.scm (localedef-command): Write to the sub-directory
  called (package-version libc) in #$output.
  (locale-directory): Create said directory.
* doc/guix.texi (Locales): Mention the per-version sub-directory.
Diffstat (limited to 'gnu/packages/base.scm')
-rw-r--r--gnu/packages/base.scm10
1 files changed, 7 insertions, 3 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index a3e3e36608..a7d9459913 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -509,12 +509,16 @@ store.")
             ;; Set the default locale path.  In practice, $LOCPATH may be
             ;; defined to point whatever locales users want.  However, setuid
             ;; binaries don't honor $LOCPATH, so they'll instead look into
-            ;; $libc_cv_localedir; we choose /run/current-system/locale, with
-            ;; the idea that it is going to be populated by the sysadmin.
+            ;; $libc_cv_localedir; we choose /run/current-system/locale/X.Y,
+            ;; with the idea that it is going to be populated by the sysadmin.
+            ;; The "X.Y" sub-directory is because locale data formats are
+            ;; incompatible across libc versions; see
+            ;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
             ;;
             ;; `--localedir' is not honored, so work around it.
             ;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
-            (string-append "libc_cv_localedir=/run/current-system/locale")
+            (string-append "libc_cv_localedir=/run/current-system/locale/"
+                           ,version)
 
             (string-append "--with-headers="
                            (assoc-ref %build-inputs "linux-headers")