Subject: Re: bug#36076: Manual should clarify that glibc-utf8-locales is needed by default on foreign distros

From: Ludovic Courtès <[email-masked]>
Date: Thu, 06 Jun 2019 17:38:16 +0200

Hi Giovanni,

Giovanni Biscuolo <[email-masked]> skribis:

> You are right, I overlooked that: I removed glibc-utf8-locales from my
> user profile, I just have glibc-locales now:
>
> ~$ ls -lah /var/guix/profiles/per-user/giovanni/guix-profile/lib/locale/2.28/ | grep en_US
> dr-xr-xr-x   3 root root 4.0K Jan  1  1970 en_US
> dr-xr-xr-x   3 root root 4.0K Jan  1  1970 en_US.UTF-8

D’oh!

> In fact make-glibc-locales in base.scm "just" installs all locales in
> "not normalized codeset" with:
>
> [...]
>              (replace 'build
>                (lambda _
>                  (invoke "make" "localedata/install-locales"
>                          "-j" (number->string (parallel-job-count)))))

We should fix it, notably because libc automatically falls back to the
normalized codeset (that is, if you choose “en_US.uTF--8”, it eventually
tries to read data for “en_US.utf8”.)  I wonder why the
‘install-locales’ rule doesn’t to it.

The “normalized codeset” is described in the libc manual (info "(libc)
Using gettextized software") and (info "(libc) Locale Names").

Anyway, I’ve posted patches to refactor things a bit and to create those
symlinks in ‘glibc-locales’:

  https://issues.guix.gnu.org/issue/36116

Let me know what you think.

Thanks!

Ludo’.