summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-08-02 18:05:23 +0200
committerLudovic Courtès <ludo@gnu.org>2016-08-02 18:07:19 +0200
commitab3a64507a792e4da0527b423fbc28f8768e736a (patch)
tree6e754531160bc86c3a0d574fe5daa928748070be /gnu
parenta5c376034f0c465c00e88283dae6d59ac49612a9 (diff)
system: Define 'GUIX_LOCPATH' to work around 'glibc' package defect.
Our 'glibc' package currently ignores /run/current-system/locale, although the intent is to look for locales in that directory. * gnu/packages/base.scm (glibc/linux): Add comment about /run/current-system/locale being ignored. * gnu/system.scm (operating-system-environment-variables): Add 'GUIX_LOCPATH'. * gnu/tests/base.scm (run-basic-test): Add "locale" test.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/base.scm1
-rw-r--r--gnu/system.scm7
-rw-r--r--gnu/tests/base.scm12
3 files changed, 19 insertions, 1 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 5edf3eb4931..a4768371028 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -535,6 +535,7 @@ store.")
535 ;; 535 ;;
536 ;; `--localedir' is not honored, so work around it. 536 ;; `--localedir' is not honored, so work around it.
537 ;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>. 537 ;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
538 ;; FIXME: This hack no longer works on 2.23!
538 (string-append "libc_cv_localedir=/run/current-system/locale/" 539 (string-append "libc_cv_localedir=/run/current-system/locale/"
539 ,version) 540 ,version)
540 541
diff --git a/gnu/system.scm b/gnu/system.scm
index 04dd7a845c2..d6bf6c413c3 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -545,7 +545,12 @@ use 'plain-file' instead~%")
545 545
546 ;; By default, applications that use D-Bus, such as Emacs, abort at startup 546 ;; By default, applications that use D-Bus, such as Emacs, abort at startup
547 ;; when /etc/machine-id is missing. Make sure these warnings are non-fatal. 547 ;; when /etc/machine-id is missing. Make sure these warnings are non-fatal.
548 ("DBUS_FATAL_WARNINGS" . "0"))) 548 ("DBUS_FATAL_WARNINGS" . "0")
549
550 ;; XXX: Normally we wouldn't need to do this, but our glibc@2.23 package
551 ;; looks things up in 'PREFIX/lib/locale' instead of
552 ;; '/run/current-system/locale' as was intended.
553 ("GUIX_LOCPATH" . "/run/current-system/locale")))
549 554
550(define %setuid-programs 555(define %setuid-programs
551 ;; Default set of setuid-root programs. 556 ;; Default set of setuid-root programs.
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index a6278b25d4d..7170ab1e382 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -178,6 +178,18 @@ info --version")
178 '(false-if-exception (getaddrinfo "does-not-exist")) 178 '(false-if-exception (getaddrinfo "does-not-exist"))
179 marionette)) 179 marionette))
180 180
181 (test-equal "locale"
182 "en_US.utf8"
183 (marionette-eval '(begin
184 ;; XXX: This 'setenv' call wouldn't be needed
185 ;; but our glibc@2.23 currently ignores
186 ;; /run/current-system/locale.
187 (setenv "GUIX_LOCPATH"
188 "/run/current-system/locale")
189 (let ((before (setlocale LC_ALL "en_US.utf8")))
190 (setlocale LC_ALL before)))
191 marionette))
192
181 (test-assert "screendump" 193 (test-assert "screendump"
182 (begin 194 (begin
183 (marionette-control (string-append "screendump " #$output 195 (marionette-control (string-append "screendump " #$output