Hey Ludo,
Thanks for getting back to me, responses are inline below.
FYI, I'm planning to format the host (Guix is inside VirtualBox) and
may not be able to assist for a period.
I literally just installed Guix into Virtual Box with the defaults,
selecting Australia / Melbourne where the option presented itself.
The only other change was enabling sshd, but regardless the issue
presents itself.
That should be enough to replicate, otherwise I'll be able to assist
further when I have my system back up.
Cheers,
Adam
I'm using en_AU
$ env | grep GUIX
GUIX_LOCPATH=/run/current-system/locale
GUIX_GTK3_PATH=/run/current-system/profile/lib/gtk-3.0
$ env | grep LC_
$
Here's my system configuration, it should be straight out of the installer.
adam@Hetzer ~$ cat /etc/config.scm
;; This is an operating system configuration generated
;; by the graphical installer.
(use-modules (gnu))
(use-service-modules desktop networking ssh xorg)
(operating-system
(locale "en_AU.utf8")
(timezone "Australia/Melbourne")
(keyboard-layout (keyboard-layout "au"))
(host-name "Hetzer")
(users (cons* (user-account
(name "adam")
(comment "Adam Griffiths")
(group "users")
(home-directory "/home/adam")
(supplementary-groups
'("wheel" "netdev" "audio" "video")))
%base-user-accounts))
(packages
(append
(list (specification->package "nss-certs"))
%base-packages))
(services
(append
(list (service gnome-desktop-service-type)
(service openssh-service-type)
(set-xorg-configuration
(xorg-configuration
(keyboard-layout keyboard-layout))))
%desktop-services))
(bootloader
(bootloader-configuration
(bootloader grub-bootloader)
(target "/dev/sda")
(keyboard-layout keyboard-layout)))
(swap-devices (list "/dev/sda2"))
(file-systems
(cons* (file-system
(mount-point "/")
(device
(uuid "908e25d3-f03b-4808-8f1c-8f922e16408c"
'ext4))
(type "ext4"))
%base-file-systems)))
Toggle quote (44 lines)
>
> (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:
>
> --8<---------------cut here---------------start------------->8---
> $ sudo herd status guix-daemon
> Status of guix-daemon:
> It is started.
> Running value is 29814.
> It is enabled.
> Provides (guix-daemon).
> Requires (user-processes).
> Conflicts with ().
> Will be respawned.
> $ sudo cat /proc/29814/environ |tr '\0' '\n'
> GUIX_LOCPATH=/gnu/store/z7a6sbvqzb5zapwpznmjkq2rsxil6i67-glibc-utf8-locales-2.31/lib/locale
> LC_ALL=en_US.utf8
> --8<---------------cut here---------------end--------------->8---
$ sudo herd status guix-daemon
Password:
Status of guix-daemon:
It is started.
Running value is 229.
It is enabled.
Provides (guix-daemon).
Requires (user-processes).
Conflicts with ().
Will be respawned.
$ sudo cat /proc/229/environ | tr '\0' '\n'
GUIX_LOCPATH=/gnu/store/n79cf8bvy3k96gjk1rf18d36w40lkwlr-glibc-utf8-locales-2.29/lib/locale
LC_ALL=en_US.utf8
Shouldn't this be en_AU.utf8? Or at least en_GB.utf8?
There is an en_AU locale available:
$ ls /run/current-system/locale/2.29/en_AU.utf8/LC_MESSAGES/
SYS_LC_MESSAGES
I notice there's also 2 en_US locales:
$ /run/current-system/locale/2.29/en_US.
en_US.utf8/ en_US.UTF-8/
The locales all _appear_ to be there
$ ls /run/current-system/locale/2.29/en_*/
/run/current-system/locale/2.29/en_AU.utf8/:
LC_ADDRESS LC_CTYPE LC_MEASUREMENT LC_MONETARY LC_NUMERIC
LC_TELEPHONE
LC_COLLATE LC_IDENTIFICATION LC_MESSAGES/ LC_NAME LC_PAPER LC_TIME
/run/current-system/locale/2.29/en_CA.utf8/:
LC_ADDRESS LC_CTYPE LC_MEASUREMENT LC_MONETARY LC_NUMERIC
LC_TELEPHONE
LC_COLLATE LC_IDENTIFICATION LC_MESSAGES/ LC_NAME LC_PAPER LC_TIME
/run/current-system/locale/2.29/en_GB.utf8/:
LC_ADDRESS LC_CTYPE LC_MEASUREMENT LC_MONETARY LC_NUMERIC
LC_TELEPHONE
LC_COLLATE LC_IDENTIFICATION LC_MESSAGES/ LC_NAME LC_PAPER LC_TIME
/run/current-system/locale/2.29/en_US.utf8/:
LC_ADDRESS LC_CTYPE LC_MEASUREMENT LC_MONETARY LC_NUMERIC
LC_TELEPHONE
LC_COLLATE LC_IDENTIFICATION LC_MESSAGES/ LC_NAME LC_PAPER LC_TIME
/run/current-system/locale/2.29/en_US.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
But the contents of the LC_MESSAGES directories differ.
$ ls /run/current-system/locale/2.29/en_*/**
/run/current-system/locale/2.29/en_AU.utf8/LC_ADDRESS
/run/current-system/locale/2.29/en_AU.utf8/LC_COLLATE
/run/current-system/locale/2.29/en_AU.utf8/LC_CTYPE
/run/current-system/locale/2.29/en_AU.utf8/LC_IDENTIFICATION
/run/current-system/locale/2.29/en_AU.utf8/LC_MEASUREMENT
/run/current-system/locale/2.29/en_AU.utf8/LC_MONETARY
/run/current-system/locale/2.29/en_AU.utf8/LC_NAME
/run/current-system/locale/2.29/en_AU.utf8/LC_NUMERIC
/run/current-system/locale/2.29/en_AU.utf8/LC_PAPER
/run/current-system/locale/2.29/en_AU.utf8/LC_TELEPHONE
/run/current-system/locale/2.29/en_AU.utf8/LC_TIME
/run/current-system/locale/2.29/en_CA.utf8/LC_ADDRESS
/run/current-system/locale/2.29/en_CA.utf8/LC_COLLATE
/run/current-system/locale/2.29/en_CA.utf8/LC_CTYPE
/run/current-system/locale/2.29/en_CA.utf8/LC_IDENTIFICATION
/run/current-system/locale/2.29/en_CA.utf8/LC_MEASUREMENT
/run/current-system/locale/2.29/en_CA.utf8/LC_MONETARY
/run/current-system/locale/2.29/en_CA.utf8/LC_NAME
/run/current-system/locale/2.29/en_CA.utf8/LC_NUMERIC
/run/current-system/locale/2.29/en_CA.utf8/LC_PAPER
/run/current-system/locale/2.29/en_CA.utf8/LC_TELEPHONE
/run/current-system/locale/2.29/en_CA.utf8/LC_TIME
/run/current-system/locale/2.29/en_GB.utf8/LC_ADDRESS
/run/current-system/locale/2.29/en_GB.utf8/LC_COLLATE
/run/current-system/locale/2.29/en_GB.utf8/LC_CTYPE
/run/current-system/locale/2.29/en_GB.utf8/LC_IDENTIFICATION
/run/current-system/locale/2.29/en_GB.utf8/LC_MEASUREMENT
/run/current-system/locale/2.29/en_GB.utf8/LC_MONETARY
/run/current-system/locale/2.29/en_GB.utf8/LC_NAME
/run/current-system/locale/2.29/en_GB.utf8/LC_NUMERIC
/run/current-system/locale/2.29/en_GB.utf8/LC_PAPER
/run/current-system/locale/2.29/en_GB.utf8/LC_TELEPHONE
/run/current-system/locale/2.29/en_GB.utf8/LC_TIME
/run/current-system/locale/2.29/en_US.utf8/LC_ADDRESS
/run/current-system/locale/2.29/en_US.UTF-8/LC_ADDRESS
/run/current-system/locale/2.29/en_US.utf8/LC_COLLATE
/run/current-system/locale/2.29/en_US.UTF-8/LC_COLLATE
/run/current-system/locale/2.29/en_US.utf8/LC_CTYPE
/run/current-system/locale/2.29/en_US.UTF-8/LC_CTYPE
/run/current-system/locale/2.29/en_US.utf8/LC_IDENTIFICATION
/run/current-system/locale/2.29/en_US.UTF-8/LC_IDENTIFICATION
/run/current-system/locale/2.29/en_US.utf8/LC_MEASUREMENT
/run/current-system/locale/2.29/en_US.UTF-8/LC_MEASUREMENT
/run/current-system/locale/2.29/en_US.utf8/LC_MONETARY
/run/current-system/locale/2.29/en_US.UTF-8/LC_MONETARY
/run/current-system/locale/2.29/en_US.utf8/LC_NAME
/run/current-system/locale/2.29/en_US.UTF-8/LC_NAME
/run/current-system/locale/2.29/en_US.utf8/LC_NUMERIC
/run/current-system/locale/2.29/en_US.UTF-8/LC_NUMERIC
/run/current-system/locale/2.29/en_US.utf8/LC_PAPER
/run/current-system/locale/2.29/en_US.UTF-8/LC_PAPER
/run/current-system/locale/2.29/en_US.utf8/LC_TELEPHONE
/run/current-system/locale/2.29/en_US.UTF-8/LC_TELEPHONE
/run/current-system/locale/2.29/en_US.utf8/LC_TIME
/run/current-system/locale/2.29/en_US.UTF-8/LC_TIME
/run/current-system/locale/2.29/en_AU.utf8/LC_MESSAGES:
SYS_LC_MESSAGES
/run/current-system/locale/2.29/en_CA.utf8/LC_MESSAGES:
SYS_LC_MESSAGES
/run/current-system/locale/2.29/en_GB.utf8/LC_MESSAGES:
SYS_LC_MESSAGES
/run/current-system/locale/2.29/en_US.utf8/LC_MESSAGES:
SYS_LC_MESSAGES
/run/current-system/locale/2.29/en_US.UTF-8/LC_MESSAGES:
SYS_LC_MESSAGES
Is this correct?
At first glance (with no knowledge of how the locales work) I would
assume that en_AU and en_CA overlay onto en_GB.
But even en_GB is effectively empty, which would contradict that assumption.