Subject: Re: bug#26948: gnutls errors on multiple guix commands

From: Maxim Cournoyer <[email-masked]>
Date: Sun, 28 May 2017 14:00:59 -0700

Hi Ludovic,

[email-masked] (Ludovic Courtès) writes:

> Hi Maxim,
>
> Maxim Cournoyer <[email-masked]> skribis:
>
>> It seems that the problem is caused by the file:
>> "/etc/ssl/certs/AC_Ra\303\255z_Certic\303\241mara_S.A.:2.15.7.126.82.147.123.224.21.227.87.240.105.140.203.236.12.p".
>
> Indeed.
>
>> The strange thing is that it shouldn't even get into the `files'
>> variable since we are scanning for files ending with a ".pem" suffix.
>>
>> ls /etc/ssl/certs/AC*2.15.7.126*
>> /etc/ssl/certs/AC_Raz_Certicmara_S.A.:2.15.7.126.82.147.123.224.21.227.87.240.105.140.203.236.12.pem
>>
>>
>> It looks like I have a locale problem? In my operating-system
>> definition, I'm using (locale "en_US.UTF-8") and the locale-definitions
>> field is not set (which means it's using %DEFAULT-LOCALE-DEFINITIONS). I
>> also have the following installed in my user profile:
>>
>> guix package -I locale
>> glibc-locales   2.25    out     /gnu/store/2d97vjjx23w3bhwp4sbylwcx6l5fy8g2-glibc-locales-2.25
>>
>>
>> Finally,
>>
>> set | grep LOC
>> GUIX_LOCPATH=/run/current-system/locale
>> XTERM_LOCALE=en_US.UTF-8
>
> Does the 'guix' command say 'failed to install locale'?  It probably
> does, which explains why it fails to decode the file name.

No, it doesn't!

> Strangely that file name has question marks instead of the non-ASCII
> characters on my GuixSD system:
>
> $ ls -l /etc/ssl/certs/*Certi*mara*
> lrwxrwxrwx 8 root root 162 Jan  1  1970 '/etc/ssl/certs/AC_Ra?z_Certic?mara_S.A.:2.15.7.126.82.147.123.224.21.227.87.240.105.140.203.236.12.pem' -> '/gnu/store/3ql0vilc0zv6ra42ghi04787vrg6bb71-nss-certs-3.30.2/etc/ssl/certs/AC_Ra?z_Certic?mara_S.A.:2.15.7.126.82.147.123.224.21.227.87.240.105.140.203.236.12.pem'

Hmm. That is strange. It seems like you also have a locale problem, but
that it is handled in a way that doesn't break nss-certs?

> but the initial problem seems to be in nss-certs itself.
>
> What does this report for you:
>
>   guix package -p /run/current-system/profile -I nss-cert

It gives me:

--8<---------------cut here---------------start------------->8---
$ guix package -p /run/current-system/profile -I nss-cert
nss-certs	3.30.2	out
/gnu/store/3ql0vilc0zv6ra42ghi04787vrg6bb71-nss-certs-3.30.2
--8<---------------cut here---------------end--------------->8---

>> I would have liked to exercise the
>> `make-credendials-with-ca-trust-files' function to debug but there's a
>> `make-certificate-credentials' function called which I coudln't source
>> (where does it come from? Doing C-c . u in Geiser didn't help making it
>> visible, as did grepping the Guix sources for its definition)
>
> These procedures come from (gnutls).  They're written in C.
>

Thanks for the information. I'll see if I can debug it further.

Maxim