Subject: Re: bug#33272: guix refresh/download backtrace error when missing nss-certs

From: Leo Famulari <[email-masked]>
Date: Mon, 5 Nov 2018 15:26:50 -0500

On Mon, Nov 05, 2018 at 12:16:08PM +0100, swedebugia wrote:
> I suggest we change it to fail nicely. I am willing to create a patch. Would
> somebody be willing to mentor me?
> 
> As a start:
> 
> How do I check if nss-certs is installed?
> 
> This is the first thing we should do when handling https-URIs
> 
> (define tls-wrap is a quite complicated procedure, maybe an extra (if at the
> body (of the let) will do?
> 
> something like
> 
> (if package-available? nss-certs
> 
>     true; continue
> 
>     false-> error nicely

IMO a better solution is to catch the error and print an informative
message. Already, the error message at the end is coming from Guix, but
we should hide the backtrace and add a hint towards a solution.

I think handling the TLS error gracefully is orthogonal to whether or
not nss-certs is installed.

There are other X.509 certificate collections available on the systems
that Guix supports, and even some Guix packages use their own
collections. Also, programs that need to look up certificates tend to
find them via environment variables, so if one wanted to use nss-certs,
it's not enough just to install it.

https://www.gnu.org/software/guix/manual/en/html_node/X_002e509-Certificates.html