substitution failure of nss-certs

DoneSubmitted by Josh Holland.
Details
6 participants
  • Arun Isaac
  • Ben Sturmfels
  • Bengt Richter
  • Josh Holland
  • Ludovic Courtès
  • Tobias Geerinckx-Rice
Owner
unassigned
Severity
normal
Merged with
J
J
Josh Holland wrote on 8 Oct 2019 16:18
(name . bug-guix)(address . bug-guix@gnu.org)
87a7abwcav.fsf@inv.alid.pw
After the core-updates merge today, I did the following, and it gave an
error message (I tried a couple of times, with the same result):

$ guix pull && guix package -m ~/guix-packages.scm -u .
# ... snip ...
nss-certs-3.45 148KiB 937KiB/s 00:00 [# ] 10.8%Backtrace:

gzip: stdout: Broken pipe
3 (apply-smob/1 #<catch-closure 2146640>)
In ice-9/boot-9.scm:
705:2 2 (call-with-prompt _ _ #<procedure default-prompt-handle?>)
In ice-9/eval.scm:
619:8 1 (_ #(#(#<directory (guile-user) 21c9140>)))
In guix/ui.scm:
1734:12 0 (run-guix-command _ . _)

guix/ui.scm:1734:12: In procedure run-guix-command:
Throw to key `encoding-error' with args `("scm_to_stringn" "cannot convert wide string to output locale" 84 #f #f)'.
nss-certs-3.45 148KiB 1.3MiB/s 00:00 [##################] 100.0%substitution of /gnu/store/532l4zja85y9c69i0l0bwnsxx98gpzdw-nss-certs-3.45 failed
killing process 645584
guix package: error: some substitutes for the outputs of derivation `/gnu/store/gvckkl62hkn74wcyw9x1wd0bkjf7c6y5-nss-certs-3.45.drv' failed (usually happens due to networking issues); try `--fallback' to build derivation from source

I then did the same, but added the suggested `--fallback` option onto
the end:

$ guix package -m ~/guix-packages.scm -u . --fallback
# snip massive list of "the following derivations will be built"
nss-certs-3.45 148KiB 36.0MiB/s 00:00 [# ] 10.8%Backtrace:

gzip: stdout: Broken pipe
3 (apply-smob/1 #<catch-closure 1212640>)
In ice-9/boot-9.scm:
705:2 2 (call-with-prompt _ _ #<procedure default-prompt-handle?>)
In ice-9/eval.scm:
619:8 1 (_ #(#(#<directory (guile-user) 1295140>)))
nss-certs-3.45 148KiB 12.5MiB/s 00:00 [##################] 100.0%In guix/ui.scm:
1734:12 0 (run-guix-command _ . _)

guix/ui.scm:1734:12: In procedure run-guix-command:
Throw to key `encoding-error' with args `("scm_to_stringn" "cannot convert wide string to output locale" 84 #f #f)'.
substitution of /gnu/store/532l4zja85y9c69i0l0bwnsxx98gpzdw-nss-certs-3.45 failed

The command did then complete successfully, I assume building nss-certs
locally instead, though I can't see any further references to it in the
output.

I'm currently trying the same thing on my other computer.

--
Josh Holland
T
T
Tobias Geerinckx-Rice wrote on 10 Oct 2019 16:03
(no subject)
(name . GNU bug tracker automated control server)(address . control@debbugs.gnu.org)
87zhi88zpj.fsf@nckx
merge 37662 37688
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEfo+u0AlEeO9y5k0W2Imw8BjFSTwFAl2fOjgACgkQ2Imw8BjF
STwCrA/+JBdL1SUsGXobftcZ3QLCgzNVzYCf8GP4KMg089990lKpaDMuzrJ/UxAW
ISn6vkDmzZ1cuAjhcpMf2pvspLcbgE7xB/crzaR9NYq6+2hjHmBSQkxOkS1ZLd2o
F24DKCkdefRevVlM73Ry5u/WO5qn5uOuN/GNHVc6Lvi1+6j2WVmFId6ob0Hg+dpk
vNH9z9a+XEXGbQRLoJPKhplpQVGu1Qw8WXUVhXbZlYPbGvkwEKvMN8Izi8eaqSWS
2OMFiGQz/rYettgjzX2GbWMgftZRYJO6kjVOZugASy+E4duNxO6B5VwkXHw7bN9i
/ORK6GzaoyEkoFpfRh6ohoqqI9To3p2GVrI78odSF0yG1r8nRdY29s4OVJImKGfD
e1e+9hUGS7SPlz9WgbIZzyRmAqzgel0mmAg5HwW4rncRbjb0z+oM4ymBPP3IsVPS
uaZPb5CJ/PCx7EQTE61X4oFReaRMELs2O2Q0C8rrNZYVkSFDy0PXhZ3niXFq+c6K
pKY+yXkPmpQ0YocKOCLqiJi0j14jaIWfDJKU3MhuPpi93paaUYzNJCdn1JHGcJ7v
vh6gKavvM2TFMf3GpSaye1R/votg2kw4QWOFpy/y2DkqUwZHZUb0uYbtfCeqs8UZ
05ryNNeTFo4YPQbJW+3GPZ42YSHa8SNsV2muQ1hPai4eoae9Ca8=
=tMuf
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 10 Oct 2019 16:31
Re: bug#37662: substitution failure of nss-certs
(name . Josh Holland)(address . josh@inv.alid.pw)(address . 37662@debbugs.gnu.org)
877e5cy8np.fsf@gnu.org
Hi Josh,

Josh Holland <josh@inv.alid.pw> skribis:

Toggle quote (20 lines)
> After the core-updates merge today, I did the following, and it gave an
> error message (I tried a couple of times, with the same result):
>
> $ guix pull && guix package -m ~/guix-packages.scm -u .
> # ... snip ...
> downloading from https://ci.guix.gnu.org/nar/gzip/532l4zja85y9c69i0l0bwnsxx98gpzdw-nss-certs-3.45...
> nss-certs-3.45 148KiB 937KiB/s 00:00 [# ] 10.8%Backtrace:
>
> gzip: stdout: Broken pipe
> 3 (apply-smob/1 #<catch-closure 2146640>)
> In ice-9/boot-9.scm:
> 705:2 2 (call-with-prompt _ _ #<procedure default-prompt-handle?>)
> In ice-9/eval.scm:
> 619:8 1 (_ #(#(#<directory (guile-user) 21c9140>)))
> In guix/ui.scm:
> 1734:12 0 (run-guix-command _ . _)
>
> guix/ui.scm:1734:12: In procedure run-guix-command:
> Throw to key `encoding-error' with args `("scm_to_stringn" "cannot convert wide string to output locale" 84 #f #f)'.

This package contains non-ASCII UTF-8-encoded file names.

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?

HTH,
Ludo’.
J
J
Josh Holland wrote on 15 Oct 2019 20:20
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 37662@debbugs.gnu.org)
877e55an15.fsf@inv.alid.pw
Hi Ludo',

Ludovic Courtès <ludo@gnu.org> writes:
Toggle quote (6 lines)
> 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?

--
Josh Holland
A
A
Arun Isaac wrote on 15 Oct 2019 21:50
(address . 37662@debbugs.gnu.org)
cu7eezdn5zp.fsf@systemreboot.net
Josh Holland <josh@inv.alid.pw> writes:

Toggle quote (11 lines)
> Ludovic Courtès <ludo@gnu.org> 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.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAl2mIusACgkQLiXui2GA
K7MvAwf+PN6O6hcuGZ88k6cxc7cXbbDYOJsztkgWHZLozFbLgsDLzKsBto0qPp1A
2FwQlIrmfhTAHxD5Z2f9R/Cgv031p8cxcd23G0248ApOWhOEBtKF78KhlqgqEoir
TGNAtbsexbYSmdsGbC/V9wjdhxhcCX+jFcaEGepAVTIDIZceop6gpPWtPWHtxjfw
D9FDDqu9ul6yQQv5JVAEy6uFVIaoNnp26gSGnXmLSWRzKSRwN5sScbwecb/KdpDu
oEP3Mbk4iqV+RpbKhkgCzRBuhDF229k1DBsy1CiW030phRve5ygehqtSMbtx5tpo
TwKpyLACeZ+GhZsLpV6cFA8nBZiyFw==
=iFzM
-----END PGP SIGNATURE-----

J
J
Josh Holland wrote on 16 Oct 2019 19:21
(name . Arun Isaac)(address . arunisaac@systemreboot.net)
87a7a0vc5m.fsf@inv.alid.pw
Hi Arun,

Arun Isaac <arunisaac@systemreboot.net> writes:
Toggle quote (3 lines)
> I install glibc-locales as a system-wide package in my operating-system
> configuration. Perhaps that's what Ludo meant to say.

I probably should have mentioned in my initial report that this is Guix
running on top of a foreign distro (Arch).


--
Josh Holland
L
L
Ludovic Courtès wrote on 16 Oct 2019 22:34
(name . Josh Holland)(address . josh@inv.alid.pw)(address . 37662@debbugs.gnu.org)
87pniwig4f.fsf@gnu.org
Hi Josh,

Josh Holland <josh@inv.alid.pw> skribis:

Toggle quote (10 lines)
> Ludovic Courtès <ludo@gnu.org> 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.

In practice you rarely need to update it, but sometimes it’s nice to do.

Toggle quote (3 lines)
> Should I have to `guix pull` and `guix upgrade` it regularly, as well
> as my user profile?

‘guix pull’ alone updates the daemon and provides it with
‘glibc-utf8-locales’, which may or may not be enough for your purposes.

Could you run:

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

where PID is the PID of ‘guix-daemon’ as shown by ‘systemctl status’?

TIA,
Ludo’.
J
J
Josh Holland wrote on 17 Oct 2019 00:25
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 37662@debbugs.gnu.org)
878spkuy30.fsf@inv.alid.pw
Hi Ludovic,

Ludovic Courtès <ludo@gnu.org> writes:
Toggle quote (4 lines)
>
> cat /proc/PID/environ | xargs -0 echo
>

LANG=en_GB.UTF-8 PATH=/usr/local/sbin:/usr/local/bin:/usr/bin INVOCATION_ID=15155558aca749efa1593610e892c3a0 JOURNAL_STREAM=9:19872 GUIX_LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale GUIX=/gnu/store/f2zvgl9zz13r6rp89y0jjfj9f4jk5h9s-guix-command GUIX_STATE_DIRECTORY=/var/guix GUIX_CONFIGURATION_DIRECTORY=/etc/guix NIX_STORE_DIR=/gnu/store

--
Josh Holland
B
B
Bengt Richter wrote on 17 Oct 2019 02:31
(name . Josh Holland)(address . josh@inv.alid.pw)
20191017003140.GB3782@PhantoNv4ArchGx.localdomain
On +2019-10-16 23:25:55 +0100, Josh Holland wrote:
Toggle quote (14 lines)
>
> Hi Ludovic,
>
> Ludovic Courtès <ludo@gnu.org> writes:
> >
> > cat /proc/PID/environ | xargs -0 echo
> >
>
> LANG=en_GB.UTF-8 PATH=/usr/local/sbin:/usr/local/bin:/usr/bin INVOCATION_ID=15155558aca749efa1593610e892c3a0 JOURNAL_STREAM=9:19872 GUIX_LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale GUIX=/gnu/store/f2zvgl9zz13r6rp89y0jjfj9f4jk5h9s-guix-command GUIX_STATE_DIRECTORY=/var/guix GUIX_CONFIGURATION_DIRECTORY=/etc/guix NIX_STORE_DIR=/gnu/store
>
> --
> Josh Holland
>

Hi Ludo, Josh,

If you want something that looks like env output, this works for me:
(also easier reading)

cat /proc/PID/environ | sed -E 's:\x00:\n:g'

You knew that, I know, but some onlookers might not :)
BTW, if this is considered ill-mannered besserwisser kibitzing,
or OT-noise-injection, please advise, et je serais sage ;-)
--
Regards,
Bengt Richter
B
B
Ben Sturmfels wrote on 17 Oct 2019 07:07
(address . 37662@debbugs.gnu.org)
611eb65b-6b21-3a03-2dc7-c3bebb7a6328@stumbles.id.au
On 16/10/19 06:50, Arun Isaac wrote:
Toggle quote (17 lines)
>
> Josh Holland <josh@inv.alid.pw> writes:
>
>> Ludovic Courtès <ludo@gnu.org> 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?

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).

I had been ignoring the recent hints "Consider installing the
`glibc-utf8-locales' or `glibc-locales'..." because it wasn't clear why
this was useful to do.

Should these locales just be installed by default on Guix System? Or
maybe this is one of those issues that I hit because I hadn't upgraded
within a certain window of changes.

(For other non Guix experts like myself, I fixed my system by `guix
pull` as root, followed by `guix package --install glibc-utf8-locales
glibc-locales`, restarted guix daemon with `herd stop guix-daemon`,
checked to see if it was really stopped with `ps aux | grep
guix-daemon`, it wasn't so used `kill [the-process-id]`, started with
`herd start guix-daemon` and then the reconfigure worked.)

Cheers,
Ben
Attachment: signature.asc
L
L
Ludovic Courtès wrote on 17 Oct 2019 11:08
(name . Josh Holland)(address . josh@inv.alid.pw)(address . 37662@debbugs.gnu.org)
87o8yfrb6v.fsf@gnu.org
Hi Josh,

Josh Holland <josh@inv.alid.pw> skribis:

Toggle quote (9 lines)
> Ludovic Courtès <ludo@gnu.org> writes:
>>
>> cat /proc/PID/environ | xargs -0 echo
>>
>
> LANG=en_GB.UTF-8 PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
> INVOCATION_ID=15155558aca749efa1593610e892c3a0 JOURNAL_STREAM=9:19872
> GUIX_LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale

[…]

Does
/var/guix/profiles/per-user/root/guix-profile/lib/locale/*/en_GB.UTF-8
exists?

If you installed ‘glibc-utf8-locales’ in root’s profile, it certainly
doesn’t:

Toggle snippet (5 lines)
$ ls $(guix build glibc-utf8-locales)/lib/locale/2.29
de_DE.utf8 el_GR.utf8 en_US.utf8 fr_FR.utf8 tr_TR.utf8
de_DE.UTF-8 el_GR.UTF-8 en_US.UTF-8 fr_FR.UTF-8 tr_TR.UTF-8

So I think you have to install the ‘glibc-locales’ package in root’s
profile:

guix install glibc-locales

Let me know if it helps!

Ludo’.
L
L
Ludovic Courtès wrote on 17 Oct 2019 11:13
(name . Ben Sturmfels)(address . ben@stumbles.id.au)
87eezbrayx.fsf@gnu.org
Hi,

Ben Sturmfels <ben@stumbles.id.au> skribis:

Toggle quote (21 lines)
> On 16/10/19 06:50, Arun Isaac wrote:
>>
>> Josh Holland <josh@inv.alid.pw> writes:
>>
>>> Ludovic Courtès <ludo@gnu.org> 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

Toggle quote (4 lines)
> 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:

(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’.
J
J
Josh Holland wrote on 17 Oct 2019 12:28
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 37662@debbugs.gnu.org)
877e53vf6d.fsf@inv.alid.pw
Hi Ludo,

Ludovic Courtès <ludo@gnu.org> writes:
Toggle quote (4 lines)
> Does
> /var/guix/profiles/per-user/root/guix-profile/lib/locale/*/en_GB.UTF-8
> exists?

Seems so (see below).

Toggle quote (2 lines)
> guix install glibc-locales

This was already installed too:

--8<------------
[root@spica ~]# guix install glibc-locales
guile: warning: failed to install locale
hint: Consider installing the `glibc-utf8-locales' or `glibc-locales' package and defining
`GUIX_LOCPATH', along these lines:

guix package -i glibc-utf8-locales
export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"

See the "Application Setup" section in the manual, for more info.

The following package will be upgraded:
glibc-locales 2.29 -> 2.29 /gnu/store/03nvilh2x4z07dxv7h13gh986vvgpnsf-glibc-locales-2.29

nothing to be done
[root@spica ~]# ls /var/guix/profiles/per-user/root/guix-profile/lib/locale/*/en_GB.UTF-8
LC_ADDRESS LC_CTYPE LC_MEASUREMENT LC_MONETARY LC_NUMERIC LC_TELEPHONE
LC_COLLATE LC_IDENTIFICATION LC_MESSAGES LC_NAME LC_PAPER LC_TIME
--8<------------

--
Josh Holland
L
L
Ludovic Courtès wrote on 17 Oct 2019 14:05
(name . Josh Holland)(address . josh@inv.alid.pw)(address . 37662@debbugs.gnu.org)
87mudzpog5.fsf@gnu.org
Hi,

Josh Holland <josh@inv.alid.pw> skribis:

Toggle quote (4 lines)
> [root@spica ~]# guix install glibc-locales
> guile: warning: failed to install locale
> hint: Consider installing the `glibc-utf8-locales' or `glibc-locales' package and defining

Note that this tells you that this ‘guix’ command is probably linked
against 2.28; this is fixed by making sure you’re running the latest
‘guix’ produced by ‘guix pull’, for instance with:

~root/.config/guix/current/bin/guix install glibc-locales

(IOW, it’s not the same problem as substitution problem we were
initially discussing.)

Ludo’.
L
L
Ludovic Courtès wrote on 21 Oct 2019 14:34
control message for bug #37662
(address . control@debbugs.gnu.org)
877e4y2s6v.fsf@gnu.org
tags 37662 fixed
close 37662
quit
?
Your comment

This issue is archived.

To comment on this conversation send email to 37662@debbugs.gnu.org