GNU Guile warning: failed to install locale

Great find! Can confirm that this works.

Without the environment variable
$ guix shell guile glibc-locales strace -- strace -e trace=openat guile --version |& grep -E "warning|locale"
openat(AT_FDCWD, "/run/current-system/locale/2.33/locale-archive", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/run/current-system/locale/2.33/en_US.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/current-system/locale/2.33/en_US.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/current-system/locale/2.33/en_US/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/current-system/locale/2.33/en.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/current-system/locale/2.33/en.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/run/current-system/locale/2.33/en/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
guile: warning: failed to install locale
With the environment variable
$ GUIX_LOCPATH=$HOME/.guix-profile/lib/locale guix shell guile glibc-locales strace -- strace -e trace=openat guile --version |& grep -E "warning|locale"
openat(AT_FDCWD, "/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ashraz/.guix-profile/lib/locale/2.33/en_US.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ashraz/.guix-profile/lib/locale/2.33/en_US.UTF-8/LC_MEASUREMENT", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ashraz/.guix-profile/lib/locale/2.33/en_US.UTF-8/LC_TELEPHONE", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ashraz/.guix-profile/lib/locale/2.33/en_US.UTF-8/LC_ADDRESS", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ashraz/.guix-profile/lib/locale/2.33/en_US.UTF-8/LC_NAME", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ashraz/.guix-profile/lib/locale/2.33/en_US.UTF-8/LC_PAPER", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ashraz/.guix-profile/lib/locale/2.33/en_US.UTF-8/LC_MESSAGES", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ashraz/.guix-profile/lib/locale/2.33/en_US.UTF-8/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ashraz/.guix-profile/lib/locale/2.33/en_US.UTF-8/LC_MONETARY", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ashraz/.guix-profile/lib/locale/2.33/en_US.UTF-8/LC_COLLATE", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ashraz/.guix-profile/lib/locale/2.33/en_US.UTF-8/LC_TIME", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ashraz/.guix-profile/lib/locale/2.33/en_US.UTF-8/LC_NUMERIC", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/ashraz/.guix-profile/lib/locale/2.33/en_US.UTF-8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = 3

# snip, rest not relevant. no warning though!

So @fyrfaras, you want to set the GUIX_LOCPATH as described within info "(guix) Application Setup" (e.g. use export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale in your .profile or your shell’s equivalent) :slight_smile:

2 Likes