From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: locales gone Date: Mon, 17 Oct 2016 11:00:25 +0200 Message-ID: <87r37fe4eu.fsf@gnu.org> References: <20160925233222.33804eb3@scratchpost.org> <87vaxe5197.fsf@gnu.org> <20161008160006.04ada83c@scratchpost.org> <87oa2rgbi9.fsf@gnu.org> <20161012223733.6e95ca41@scratchpost.org> <87mvi880dk.fsf@gnu.org> <20161013223124.0a8d5712@scratchpost.org> <87insvci2p.fsf@gnu.org> <20161015102108.2fc03c6f@scratchpost.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40726) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bw3ma-0005lx-Lu for guix-devel@gnu.org; Mon, 17 Oct 2016 05:00:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bw3mW-0006lf-Ee for guix-devel@gnu.org; Mon, 17 Oct 2016 05:00:32 -0400 In-Reply-To: <20161015102108.2fc03c6f@scratchpost.org> (Danny Milosavljevic's message of "Sat, 15 Oct 2016 10:21:08 +0200") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Danny Milosavljevic Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Danny Milosavljevic 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) =3D -1 ENOENT (No such file= or directory) > [pid 6184] open("/gnu/store/m9vxvhdj691bq1f85lpflvnhcvrdilih-glibc-2.23/= share/locale/locale.alias", O_RDONLY|O_CLOEXEC) =3D 3 > [pid 6184] fstat(3, {st_mode=3DS_IFREG|0444, st_size=3D2997, ...}) =3D 0 > [pid 6184] read(3, "# Locale name alias data base.\n#"..., 4096) =3D 2997 > [pid 6184] read(3, "", 4096) =3D 0 > [pid 6184] close(3) =3D 0 > [pid 6184] open("/gnu/store/m9vxvhdj691bq1f85lpflvnhcvrdilih-glibc-2.23/= lib/locale/en_US.UTF-8/LC_COLLATE", O_RDONLY|O_CLOEXEC) =3D -1 ENOENT (No s= uch file or directory) > [pid 6184] open("/gnu/store/m9vxvhdj691bq1f85lpflvnhcvrdilih-glibc-2.23/= lib/locale/en_US.utf8/LC_COLLATE", O_RDONLY|O_CLOEXEC) =3D -1 ENOENT (No su= ch file or directory) > [pid 6184] open("/gnu/store/m9vxvhdj691bq1f85lpflvnhcvrdilih-glibc-2.23/= lib/locale/en_US/LC_COLLATE", O_RDONLY|O_CLOEXEC) =3D -1 ENOENT (No such fi= le or directory) > [pid 6184] open("/gnu/store/m9vxvhdj691bq1f85lpflvnhcvrdilih-glibc-2.23/= lib/locale/en.UTF-8/LC_COLLATE", O_RDONLY|O_CLOEXEC) =3D -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) =3D -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) =3D -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=E2=80=99t 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 =E2=80=98guix syst= em vm=E2=80=99.) Thanks, Ludo=E2=80=99. --=-=-= Content-Type: text/x-patch Content-Disposition: inline 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))))) --=-=-=--