mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 13:28:12 -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.
|
;; `--localedir' is not honored, so work around it.
|
||||||
;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
|
;; 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/"
|
(string-append "libc_cv_localedir=/run/current-system/locale/"
|
||||||
,version)
|
,version)
|
||||||
|
|
||||||
|
|
|
@ -545,7 +545,12 @@ (define (operating-system-environment-variables os)
|
||||||
|
|
||||||
;; By default, applications that use D-Bus, such as Emacs, abort at startup
|
;; 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.
|
;; 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
|
(define %setuid-programs
|
||||||
;; Default set of setuid-root programs.
|
;; Default set of setuid-root programs.
|
||||||
|
|
|
@ -178,6 +178,18 @@ (define marionette
|
||||||
'(false-if-exception (getaddrinfo "does-not-exist"))
|
'(false-if-exception (getaddrinfo "does-not-exist"))
|
||||||
marionette))
|
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"
|
(test-assert "screendump"
|
||||||
(begin
|
(begin
|
||||||
(marionette-control (string-append "screendump " #$output
|
(marionette-control (string-append "screendump " #$output
|
||||||
|
|
Loading…
Reference in a new issue