substitution failure of nss-certs

  • Done
  • quality assurance status badge
Details
6 participants
  • Arun Isaac
  • Ben Sturmfels
  • Bengt Richter
  • Josh Holland
  • Ludovic Courtès
  • Tobias Geerinckx-Rice
Owner
unassigned
Submitted by
Josh Holland
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 an email to 37662@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 37662
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch