summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/base.scm20
1 files changed, 15 insertions, 5 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 80b0332de7..c6abf56ebf 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -689,12 +689,22 @@ the 'share/locale' sub-directory of this package.")
 
                      (mkdir-p localedir)
                      (every (lambda (locale)
-                              (zero? (system* "localedef" "--no-archive"
-                                              "--prefix" localedir "-i" locale
-                                              "-f" "UTF-8"
+                              (define file
+                                ;; Use the "normalized codeset" by
+                                ;; default--e.g., "en_US.utf8".
+                                (string-append localedir "/" locale ".utf8"))
+
+                              (and (zero? (system* "localedef" "--no-archive"
+                                                   "--prefix" localedir
+                                                   "-i" locale
+                                                   "-f" "UTF-8" file))
+                                   (begin
+                                     ;; For backward compatibility with Guix
+                                     ;; <= 0.8.3, add "xx_YY.UTF-8".
+                                     (symlink (string-append locale ".utf8")
                                               (string-append localedir "/"
-                                                             locale
-                                                             ".UTF-8"))))
+                                                             locale ".UTF-8"))
+                                     #t)))
 
                             ;; These are the locales commonly used for
                             ;; tests---e.g., in Guile's i18n tests.