|
From: | GNU bug Tracking System |
Subject: | bug#43039: closed (Vanilla GUIX 1.1.0 reconfigure fails on nss-certs) |
Date: | Wed, 02 Sep 2020 15:22:02 +0000 |
Your message dated Wed, 02 Sep 2020 17:21:28 +0200 with message-id <87d034432f.fsf@gnu.org> and subject line Re: bug#43039: Vanilla GUIX 1.1.0 reconfigure fails on nss-certs has caused the debbugs.gnu.org bug report #43039, regarding Vanilla GUIX 1.1.0 reconfigure fails on nss-certs to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs@gnu.org.) -- 43039: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=43039 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems
--- Begin Message ---Subject: Vanilla GUIX 1.1.0 reconfigure fails on nss-certs Date: Tue, 25 Aug 2020 20:43:29 +1000 After installing GuixSD 1.1.0 into a VirtualBox VM and following the After System Installation steps (https://guix.gnu.org/manual/en/html_node/After-System-Installation.html#After-System-Installation), the update fails when trying to update nss-certs.
Possibly related to #37662
Error:
$ guix pull
Migrating profile generations to '/var/guix/profiles/per-user/adam'...
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
<snip>
$ sudo guix system reconfigure /etc/config.scm
<sudo warning snipped>
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.
guix system: warning: cannot determine provenance for current system
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
<snip>
downloading from https://ci.guix.gnu.org/nar/lzip/0llx3y194278l5ksr4xh9kc64mh8nn8d-nss-certs-3.52.1 ...
nss-certs-3.52.1 133KiB 186KiB/s 00:00 [######## ] 48.3%
Backtrace:
3 (apply-smob/1 #<catch-closure 7f10d4c80120>)
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) 7f10d490e140>)))
In guix/ui.scm:
1936:12 0 (run-guix-command _ . _)
guix/ui.scm:1936: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/0llx3y194278l5ksr4xh9kc64mh8nn8d-nss-certs-3.52.1 failed
killing process 5266
guix system: error: some substitutes for the outputs of derivation `/gnu/store/55mphxd7fz9km07s2zy1x26vcljh6yb5-nss-certs-3.52.1.drv' failed (usually happens due to networking issues); try `--fallback' to build derivation from source
The error is always when installing nss-certs, is entirely repeatable, and therefore not to do with a network connection.
I tried this about 4 months previous, and again today, and have been presented with exactly the same error.
The error always occurs at 48.3%.
A post on Reddit (https://www.reddit.com/r/GUIX/comments/hxrmzn/guix_system_error/) has the exact same error as this. The error even occurred at the same 48.3%!
I selected the Australian Locale (en_AU) during this installation. I am unsure why the locales error is present after installation. I ran the commands it suggested last time and the warning did not disappear, nor did the nss-certs error get resolved.
I can run --fallback, but to me this is ignoring an obvious issue with a vanilla system that should work out of the box.
Steps to reproduce:
* Create new VBox VM
* Install GuixSD Graphical
* Select Australia locale
* Select defaults
* boot into the system
* $ guix pull
* $ sudo guix system reconfigure /etc/config.scm
Original post
https://superuser.com/questions/1580209/vanilla-guix-1-1-0-reconfigure-fails-on-nss-certs
--- End Message ---
--- Begin Message ---Subject: Re: bug#43039: Vanilla GUIX 1.1.0 reconfigure fails on nss-certs Date: Wed, 02 Sep 2020 17:21:28 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) Hi Adam, Adam Griffiths <adam.lw.griffiths@gmail.com> skribis: >> > $ sudo guix system reconfigure /etc/config.scm >> > <sudo warning snipped> >> > 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. >> > >> > guix system: warning: cannot determine provenance for current system >> > substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% >> >> That, I don’t understand. I tried to reproduce it by downloading >> <https://ftp.gnu.org/gnu/guix/guix-system-vm-image-1.1.0.x86_64-linux.xz> >> (which is essentially the result of installing Guix System from 1.1.0). >> I ran ‘guix pull’ (which took a lot of time…) and then ‘guix system >> reconfigure’. ‘guix system reconfigure’ would only emit the one-liner: >> >> warning: failed to install locale >> >> and not the hint about GUIX_LOCPATH, and then it just went ahead. >> >> What locale does your system use? You can type “env | grep LC_” to see. >> > > I'm using en_AU [...] >> (The ‘guix’ command provided by ‘guix pull’ comes with >> ‘glibc-utf8-locales’ since commit >> ba48895899a117d6ace2209c3f54411a4a989133, but the locale you’re using >> could be missing from that.) >> >> > downloading from >> > https://ci.guix.gnu.org/nar/lzip/0llx3y194278l5ksr4xh9kc64mh8nn8d-nss-certs-3.52.1 >> > ... >> > nss-certs-3.52.1 133KiB 186KiB/s 00:00 >> > [######## ] 48.3% >> > Backtrace: >> > 3 (apply-smob/1 #<catch-closure 7f10d4c80120>) >> > 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) 7f10d490e140>))) >> > In guix/ui.scm: >> > 1936:12 0 (run-guix-command _ . _) >> > >> > guix/ui.scm:1936: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/0llx3y194278l5ksr4xh9kc64mh8nn8d-nss-certs-3.52.1 failed >> >> This is really puzzling: guix-daemon is always running in a valid UTF-8 >> locale, as can be seen like this: Not quite true; I understand what was going on, details below. The workaround for you in the meantime is to run: guix build nss-certs --no-substitutes before you run ‘sudo guix system reconfigure’. The client ‘guix system’ in this case was running in the “C” locale because “en_AU.utf8” is not among the locales in ‘glibc-utf8-locales’, which is what’s bundled with ‘guix’. Thus, ‘set-build-options’ in (guix store) would send “C” as the “locale” property. Then, ‘guix substitute’ would do (setlocale LC_ALL "C"), from this code: ;; Attempt to install the client's locale, mostly so that messages are ;; suitably translated. (match (or (find-daemon-option "untrusted-locale") (find-daemon-option "locale")) (#f #f) (locale (false-if-exception (setlocale LC_ALL locale)))) Consequently, it would run in a ASCII locale and would thus fail to decode non-ASCII file names that appear in nss-certs. Similar problems could occur anytime someone runs a client in a non-UTF-8 locale. One way to reproduce it for me is this (I use ‘time-machine’ to get a version of ‘nss-certs’ not already available on my disk): --8<---------------cut here---------------start------------->8--- $ LC_ALL=C guix time-machine --commit=8aeef3c7bdf278003892e608842200d3a35211c7 -- build nss-certs Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'... 0.1 MB will be downloaded: /gnu/store/igklwlj1j60kdgrhcn6m2p2iqp87qrrs-nss-certs-3.52 substituting /gnu/store/igklwlj1j60kdgrhcn6m2p2iqp87qrrs-nss-certs-3.52... downloading from https://ci.guix.gnu.org/nar/lzip/igklwlj1j60kdgrhcn6m2p2iqp87qrrs-nss-certs-3.52 ... nss-certs-3.52 133KiB 1.9MiB/s 00:00 [######## ] 48.3%Backtrace: In ice-9/boot-9.scm: 1736:10 4 (with-exception-handler _ _ #:unwind? _ # _) In unknown file: 3 (apply-smob/0 #<thunk 7fd27a60c200>) In ice-9/boot-9.scm: 718:2 2 (call-with-prompt _ _ #<procedure default-prompt-handle?>) In ice-9/eval.scm: 619:8 1 (_ #(#(#<directory (guile-user) 7fd27a230f00>))) In guix/ui.scm: 2046:12 0 (run-guix-command _ . _) guix/ui.scm:2046: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/igklwlj1j60kdgrhcn6m2p2iqp87qrrs-nss-certs-3.52 failed guix build: error: some substitutes for the outputs of derivation `/gnu/store/mzrh9ad4sqqg88ym9c1x1vv2lqjyxbrv-nss-certs-3.52.drv' failed (usually happens due to networking issues); try `--fallback' to build derivation from source --8<---------------cut here---------------end--------------->8--- This is fixed by commit 739f6309478d8ab8501bb653ceb2f634c8560f55, with two additional improvements: fe4e770fc1 ui: Attempt to fall back to "en_US.utf8" rather than "C". 739f630947 store: 'set-build-options' sends LC_MESSAGES, not LC_ALL. aba8def46d substitute: Set LC_MESSAGES to the client's locale, not LC_ALL. I’ll update the ‘guix’ package so that the changes to ‘guix substitute’ take effect. Thanks again for reporting the issue! Ludo’.
--- End Message ---
[Prev in Thread] | Current Thread | [Next in Thread] |