[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: locales gone
From: |
Ludovic Courtès |
Subject: |
Re: locales gone |
Date: |
Mon, 17 Oct 2016 11:00:25 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) |
Danny Milosavljevic <address@hidden> skribis:
> And if I strace postgres service I get
>
> [pid 6184]
> open("/gnu/store/m9vxvhdj691bq1f85lpflvnhcvrdilih-glibc-2.23/lib/locale/locale-archive",
> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> [pid 6184]
> open("/gnu/store/m9vxvhdj691bq1f85lpflvnhcvrdilih-glibc-2.23/share/locale/locale.alias",
> O_RDONLY|O_CLOEXEC) = 3
> [pid 6184] fstat(3, {st_mode=S_IFREG|0444, st_size=2997, ...}) = 0
> [pid 6184] read(3, "# Locale name alias data base.\n#"..., 4096) = 2997
> [pid 6184] read(3, "", 4096) = 0
> [pid 6184] close(3) = 0
> [pid 6184]
> open("/gnu/store/m9vxvhdj691bq1f85lpflvnhcvrdilih-glibc-2.23/lib/locale/en_US.UTF-8/LC_COLLATE",
> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> [pid 6184]
> open("/gnu/store/m9vxvhdj691bq1f85lpflvnhcvrdilih-glibc-2.23/lib/locale/en_US.utf8/LC_COLLATE",
> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> [pid 6184]
> open("/gnu/store/m9vxvhdj691bq1f85lpflvnhcvrdilih-glibc-2.23/lib/locale/en_US/LC_COLLATE",
> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> [pid 6184]
> open("/gnu/store/m9vxvhdj691bq1f85lpflvnhcvrdilih-glibc-2.23/lib/locale/en.UTF-8/LC_COLLATE",
> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> [pid 6184]
> open("/gnu/store/m9vxvhdj691bq1f85lpflvnhcvrdilih-glibc-2.23/lib/locale/en.utf8/LC_COLLATE",
> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> [pid 6184]
> open("/gnu/store/m9vxvhdj691bq1f85lpflvnhcvrdilih-glibc-2.23/lib/locale/en/LC_COLLATE",
> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
>
> And indeed those don't exist.
Ooh, I see. To work around an issue in our glibc 2.23 package (that I
forgot to fix in 2.24), whereby glibc does not look for locale data in
/run/current-system/locale, commit
ab3a64507a792e4da0527b423fbc28f8768e736a sets GUIX_LOCPATH in
/etc/environment.
However, that doesn’t help with daemons, because those do not honor that
file.
I suppose the untested patch below would work around it. Could you try
and report back? (Will require a reboot or testing with ‘guix system
vm’.)
Thanks,
Ludo’.
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index 3273184..4dbf7e3 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -81,6 +81,11 @@
(false-if-exception (close-fdes fd))
(loop (+ 1 fd))))
+ ;; Our glibc package currently looks for locale data in
+ ;; PREFIX/lib/locale instead of /run/current-system/locale.
+ ;; Work around it.
+ (setenv "GUIX_LOCPATH" "/run/current-system/locale")
+
;; Start shepherd.
(execl (string-append #$shepherd "/bin/shepherd")
"shepherd" "--config" #$shepherd-conf)))))
- Re: locales gone, Danny Milosavljevic, 2016/10/08
- Re: locales gone, Ludovic Courtès, 2016/10/10
- Re: locales gone, Danny Milosavljevic, 2016/10/12
- Re: locales gone, Ludovic Courtès, 2016/10/13
- Re: locales gone, Danny Milosavljevic, 2016/10/13
- Re: locales gone, Ludovic Courtès, 2016/10/14
- Re: locales gone, Danny Milosavljevic, 2016/10/15
- Re: locales gone, Danny Milosavljevic, 2016/10/15
- Re: locales gone, Danny Milosavljevic, 2016/10/15
- Re: locales gone,
Ludovic Courtès <=
- Re: locales gone, Leo Famulari, 2016/10/17
- Re: locales gone, Ludovic Courtès, 2016/10/18