Subject: Re: bug#37662: substitution failure of nss-certs

From: Ludovic Courtès <[email-masked]>
Date: Thu, 17 Oct 2019 11:13:26 +0200

Hi,

Ben Sturmfels <[email-masked]> skribis:

> On 16/10/19 06:50, Arun Isaac wrote:
>> 
>> Josh Holland <[email-masked]> writes:
>> 
>>> Ludovic Courtès <[email-masked]> writes:
>>>> I suppose the error here is because you’re daemon is missing its UTF-8
>>>> locales.
>>>>
>>>> This could be because you upgraded the daemon but did not upgrade the
>>>> ‘glibc-utf8-locales’ or ‘glibc-locales’ you installed as root, no?
>>>
>>> It's possible - I rarely do anything with the root profile, and wasn't
>>> even aware that I had to keep it up to date.  Should I have to `guix
>>> pull` and `guix upgrade` it regularly, as well as my user profile?
>> 
>> I install glibc-locales as a system-wide package in my operating-system
>> configuration. Perhaps that's what Ludo meant to say.
>
> Hi Ludo, is it best to install glibc-locales or glibc-utf8-locales in
> the operating system configuration as Arun suggests?

It’s best to install none of these.  :-)

On Guix System, the mechanism is more fine-grained: the admin declares
precisely the locales they want in the ‘locale’ and ‘locale-definitions’
fields, and only those get installed.  See
<https://guix.gnu.org/manual/devel/en/html_node/Locales.html>.

> I hit the same issue doing a reconfigure on Guix System after not having
> these locales either in user, root or system profiles (though I'm unsure
> whether root and system are the same thing).

This is probably due to the switch to glibc 2.29: your system now
provides locales for glibc 2.29 only, but if you have binaries linked
against 2.28, they need 2.28 locale data.

To do that, add ‘glibc-2.28’ to the ‘locale-libcs’ field:
<https://guix.gnu.org/manual/devel/en/html_node/Locales.html#Locale-Data-Compatibility-Considerations>.

(Normally ‘guix pull --news’ mentioned it when you upgraded.)

Perhaps on we should just add the current and previous glibc to
‘locale-libcs’ by default.

HTH!

Ludo’.