mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
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.
This commit is contained in:
parent
a5c376034f
commit
ab3a64507a
3 changed files with 19 additions and 1 deletions
|
@ -535,6 +535,7 @@ (define-public glibc/linux
|
|||
;;
|
||||
;; `--localedir' is not honored, so work around it.
|
||||
;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
|
||||
;; FIXME: This hack no longer works on 2.23!
|
||||
(string-append "libc_cv_localedir=/run/current-system/locale/"
|
||||
,version)
|
||||
|
||||
|
|
|
@ -545,7 +545,12 @@ (define (operating-system-environment-variables os)
|
|||
|
||||
;; By default, applications that use D-Bus, such as Emacs, abort at startup
|
||||
;; when /etc/machine-id is missing. Make sure these warnings are non-fatal.
|
||||
("DBUS_FATAL_WARNINGS" . "0")))
|
||||
("DBUS_FATAL_WARNINGS" . "0")
|
||||
|
||||
;; XXX: Normally we wouldn't need to do this, but our glibc@2.23 package
|
||||
;; looks things up in 'PREFIX/lib/locale' instead of
|
||||
;; '/run/current-system/locale' as was intended.
|
||||
("GUIX_LOCPATH" . "/run/current-system/locale")))
|
||||
|
||||
(define %setuid-programs
|
||||
;; Default set of setuid-root programs.
|
||||
|
|
|
@ -178,6 +178,18 @@ (define marionette
|
|||
'(false-if-exception (getaddrinfo "does-not-exist"))
|
||||
marionette))
|
||||
|
||||
(test-equal "locale"
|
||||
"en_US.utf8"
|
||||
(marionette-eval '(begin
|
||||
;; XXX: This 'setenv' call wouldn't be needed
|
||||
;; but our glibc@2.23 currently ignores
|
||||
;; /run/current-system/locale.
|
||||
(setenv "GUIX_LOCPATH"
|
||||
"/run/current-system/locale")
|
||||
(let ((before (setlocale LC_ALL "en_US.utf8")))
|
||||
(setlocale LC_ALL before)))
|
||||
marionette))
|
||||
|
||||
(test-assert "screendump"
|
||||
(begin
|
||||
(marionette-control (string-append "screendump " #$output
|
||||
|
|
Loading…
Reference in a new issue