Subject: bug#33603: Invalid hash for NSS-Certs

From: Ludovic Courtès <[email-masked]>
Date: Tue, 15 Jan 2019 13:57:55 +0100

Maxim Cournoyer <[email-masked]> skribis:

> Hello!
>
> Ludovic Courtès <[email-masked]> writes:
>
>> Maxim Cournoyer <[email-masked]> skribis:
>
> [...]
>
>>> It's a rather old install (late 2016 -- but kept up-to-date, of course
>>> :-)) so there might be remnants from the past?  How could I verify in
>>> which locale the guix-daemon is running?
>>
>> You could check /proc/$(pidof guix-daemon)/environ for variables like
>> ‘LC_ALL’.  And of course, you can see if ‘guix substitute’ emits the
>> infamous “can’t install locale” message.  :-)
>>
>> Regardless, I think ‘guix substitute’ should ideally be
>> locale-insensitive, or it should error out rather than produce files
>> with the wrong names.
>
> The only environment variable(s?) defined for the guix-daemon process on
> that machine is:
>
> $ pidof guix-daemon
> 270
>
> sudo cat /proc/270/environ
> GUIX_LOCPATH=/gnu/store/94k5w17z54w25lgp90czdqfv9m4hwzhq-glibc-utf8-locales-2.28/lib/localeLC_ALL=en_US.utf8

This is perfect (see commit 7e4bc215098f334bc2a11737f2665dd4992fc2da,
which gave you this, fixing the issue we’re talking about on GuixSD.)

So I don’t think this machine has any problem.  Perhaps nss-certs was
installed before the fix above?

> I'm not familiar with this systemfs structure, but shouldn't there be a
> newline before the LC_ALL=en_US.utf8 variable assignment?

No, there are actually newlines, try:

  cat /proc/270/environ | xargs -0 echo

HTH,
Ludo’.