Subject: Re: bug#28168: rofi - Failed to set locale and relink messages

From: Fredrik Salomonsson <[email-masked]>
Date: Wed, 23 Aug 2017 14:31:47 -0700

Hi

>>
> >> > Failed to set locale.
> >> >
> >> > then it exits.
> >> >
> >> > I've set:
> >> > GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
> >> > LANG=en_US.UTF-8
> >> >
> >> > Using glibc-locales
> >>
> >> Does setting LC_ALL instead of LANG help?  The LC_* variables take
> >> precedence over LANG.
> >
> > setting LC_ALL didn't work. Same error.
> >
> > Did a strace on it just to see what's going on.
> > Here's the last part just before it exits
> >
> >> open("/run/current-system/locale/2.25/en_US.UTF-8/LC_IDENTIFICATION",
> >> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> >> open("/run/current-system/locale/2.25/en_US.utf8/LC_IDENTIFICATION",
> >> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> >> open("/run/current-system/locale/2.25/en_US/LC_IDENTIFICATION",
> >> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> >> open("/run/current-system/locale/2.25/en.UTF-8/LC_IDENTIFICATION",
> >> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> >> open("/run/current-system/locale/2.25/en.utf8/LC_IDENTIFICATION",
> >> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> >> open("/run/current-system/locale/2.25/en/LC_IDENTIFICATION",
> >> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> >> write(2, "Failed to set locale.\n", 22) = 22
> >> exit_group(1)                           = ?
> >> +++ exited with 1 +++
> >>
> >
> > It's looking for locale specific things in /run/current-system. Which
> Arch
> > doesn't have. Is that a GuixSD specific thing?  Don't have GuixSD
> installed
> > at the moment so cannot check myself.
>

Yes, that’s a GuixSD-specific thing, but if you set GUIX_LOCPATH, then
> $GUIX_LOCPATH should take precedence.  The strace output you sent
> suggests that GUIX_LOCPATH was unset, wasn’t it?
>

Yeah I think it was unset, looked in my .zshrc and I had just added

GUIX_LOCPATH=$HOME/.guix-profile/lib/locale

forgot to add export. However it still complained when I set it properly.

> >
> > > > Failed to set locale.
> > > >
> > > > then it exits.
> > > >
> > > > I've set:
> > > > GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
> > > > LANG=en_US.UTF-8
> > > >
> > > > Using glibc-locales
> > >
> > > Does setting LC_ALL instead of LANG help?  The LC_* variables take
> > > precedence over LANG.
> >
> > setting LC_ALL didn't work. Same error.
>
> How recent is the guix you have? Did you run guix pull and
> guix package -u .* recently?
>

I installed the one listed in arch AUR, which is 0.13.0 then did a guix
pull a week ago or so.

Did one this morning and that fixed it! Rofi now starts without any issues.

Question though, do I need to add the regex when updating the packages?
It seems it updated all my packages by just doing guix package -u.

Anyway thanks for helping out, sorry to bother you with a non-issue. You
can mark this bug as PEBCAK

2017-08-23 14:16 GMT-07:00 Ludovic Courtès <[email-masked]>:

> Hi Fredrik,
>
> Fredrik Salomonsson <[email-masked]> skribis:
>
> >>
> >> > Failed to set locale.
> >> >
> >> > then it exits.
> >> >
> >> > I've set:
> >> > GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
> >> > LANG=en_US.UTF-8
> >> >
> >> > Using glibc-locales
> >>
> >> Does setting LC_ALL instead of LANG help?  The LC_* variables take
> >> precedence over LANG.
> >
> > setting LC_ALL didn't work. Same error.
> >
> > Did a strace on it just to see what's going on.
> > Here's the last part just before it exits
> >
> >> open("/run/current-system/locale/2.25/en_US.UTF-8/LC_IDENTIFICATION",
> >> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> >> open("/run/current-system/locale/2.25/en_US.utf8/LC_IDENTIFICATION",
> >> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> >> open("/run/current-system/locale/2.25/en_US/LC_IDENTIFICATION",
> >> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> >> open("/run/current-system/locale/2.25/en.UTF-8/LC_IDENTIFICATION",
> >> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> >> open("/run/current-system/locale/2.25/en.utf8/LC_IDENTIFICATION",
> >> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> >> open("/run/current-system/locale/2.25/en/LC_IDENTIFICATION",
> >> O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
> >> write(2, "Failed to set locale.\n", 22) = 22
> >> exit_group(1)                           = ?
> >> +++ exited with 1 +++
> >>
> >
> > It's looking for locale specific things in /run/current-system. Which
> Arch
> > doesn't have. Is that a GuixSD specific thing?  Don't have GuixSD
> installed
> > at the moment so cannot check myself.
>
> Yes, that’s a GuixSD-specific thing, but if you set GUIX_LOCPATH, then
> $GUIX_LOCPATH should take precedence.  The strace output you sent
> suggests that GUIX_LOCPATH was unset, wasn’t it?
>
> For example, I get:
>
> --8<---------------cut here---------------start------------->8---
> $ GUIX_LOCPATH=/foo strace -e open true --help
>
> [...]
>
> open("/foo/2.25/en_US.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1
> ENOENT (No such file or directory)
> open("/run/current-system/locale/2.25/en_US.utf8/LC_IDENTIFICATION",
> O_RDONLY|O_CLOEXEC) = 3
> open("/gnu/store/ybpgv1v7606xw7mafda66w10hiynpi
> w2-glibc-2.25/lib/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (No
> such file or directory)
> open("/gnu/store/ybpgv1v7606xw7mafda66w10hiynpi
> w2-glibc-2.25/lib/gconv/gconv-modules", O_RDONLY|O_CLOEXEC) = 3
> open("/foo/2.25/en_US.utf8/LC_MEASUREMENT", O_RDONLY|O_CLOEXEC) = -1
> ENOENT (No such file or directory)
>
> [...]
>
> --8<---------------cut here---------------end--------------->8---
>
> HTH,
> Ludo’.
>

-- 
s/Fred[re]+i[ck]+/Fredrik/g