Subject: [bug#67686] bug#67044: C.utf8 locale cannot be built

From: Ludovic Courtès <[email-masked]>
Date: Sat, 09 Dec 2023 15:46:58 +0100

Hi Tomas,

Tomas Volf <[email-masked]> skribis:

>> (glibc-2.35)[arguments]: Delete ‘install-utf8-c-locale’ phase.
>
> I do think 2.35 should install the locale as well.  That would require to change
>
>     (invoke (string-append bin "/localedef")
>             "--no-archive" "--prefix" locale
>             "-i" "C" "-f" "UTF-8"
>             (string-append locale "/C.UTF-8")))))
>
> into
>
>     (invoke (string-append bin "/localedef")
>             "-c" "--no-archive" "--prefix" locale
>             "-i" "C" "-f" "UTF-8"
>             (string-append locale "/C.UTF-8")))))
>
> however I think that is fine.  I am using locale built like that and it works
> well.  What is more, from the discussion under the other issue[0], that is
> exactly what is done during normal glibc build:
>
>> It turns out we ignore errors during the glibc build (--quiet -c).
>
> After that the drop of 'install-utf8-c-locale can be moved into some other
> version < 2.35.

I’m a bit wary of using ‘-c’ (aka. ‘--force’) unconditionally as this
could hide real problems.

But more importantly, I think it won’t matter whether glibc 2.35 ships
C.UTF-8 since it’s no longer going to be used, except for building old
locale data via ‘locale-libcs’.

> 2.
>
> I still believe it makes sense to add the -c also into the locale builder,
> because my understanding is that this change will not allow using (locale
> "C.utf8") in the operating-system definition (since that would still try to
> build it, and fail).
>
> If you are not opposed to the idea, I can send a patch if you would prefer not
> to do it yourself.

No you’re right, we could add ‘-c’ to the code in (gnu system locale),
though perhaps it would be safer to do so only in the 2.35 + C.UTF-8
case.

(We can do that independently of this patch.)

> 3.
>
>> I suspect libc builds an additional ‘localedef’ for the build machine but I’m
>> not sure where it is, hmm…
>
> I looked around a bit, and I am not sure that is true.

In the meantime I found that this is wrong indeed:

  https://issues.guix.gnu.org/67686#11

Thanks for your feedback!

Ludo’.