Leo Famulari <l...@famulari.name> skribis: > On Tue, Aug 02, 2016 at 07:32:23PM +0200, Ludovic Courtès wrote: >> As discussed on IRC, SNAFU! For reasons yet to be elucidated, the >> glibc@2.23 package no longer honors /run/current-system/locale. > > I believe that this commit in glibc@2.23 is the culprit: > > http://repo.or.cz/glibc.git/commit/90fe682d3067163aa773feecf497ef599429457a > > The variable 'libc_cv_localedir', which we set as > "/run/current-system/locale/" in the glibc/linux package definition, has > been renamed to 'libc_cv_complocaledir'.
Good catch! > diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm > index a476837..bb1879a 100644 > --- a/gnu/packages/base.scm > +++ b/gnu/packages/base.scm > @@ -535,8 +535,7 @@ store.") > ;; > ;; `--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/" > + (string-append > "libc_cv_complocaledir=/run/current-system/locale/" > ,version) > > (string-append "--with-headers=" > diff --git a/gnu/system.scm b/gnu/system.scm > index d6bf6c4..04dd7a8 100644 > --- a/gnu/system.scm > +++ b/gnu/system.scm > @@ -545,12 +545,7 @@ use 'plain-file' instead~%") > > ;; 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") > - > - ;; 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"))) > + ("DBUS_FATAL_WARNINGS" . "0"))) > > (define %setuid-programs > ;; Default set of setuid-root programs. > diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm > index 7170ab1..a6278b2 100644 > --- a/gnu/tests/base.scm > +++ b/gnu/tests/base.scm > @@ -178,18 +178,6 @@ info --version") > '(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)) Here we should keep the test, but remove ‘setenv’: (marionette-eval '(let ((before (setlocale LC_ALL "en_US.utf8"))) (setlocale LC_ALL before)) marionette) That will catch this regression in the future. Otherwise LGTM; could you push it to core-updates-next? Thank you for the fast investigation! Ludo’.