Subject: bug#36870: was: date bug -- really locale bug or ??

From: Bengt Richter <[email-masked]>
Date: Tue, 6 Aug 2019 02:38:02 +0000

Hi all, following up on myself, sorry I lost my copy of
my original, so this does not contain any quoting, but
this can stand on its own as a new problem statement.

Problem should go away if I can get locales working,
but despite trying what purportedly has worked for others,
no luck. I hope it will be obvious to someone from the below ;-)

$ # first some context:
$ uname -rv
5.1.15-arch1-1-ARCH #1 SMP PREEMPT Tue Jun 25 04:49:39 UTC 2019
$ guix -V
guile: warning: failed to install locale
guix (GNU Guix) a17fe3f01ac160a576135b03d23bc098ebf6fb31
Copyright (C) 2019 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

$ ### that warning -- "guile: warning: failed to install locale" might be a clue in that
$ ### it does _NOT_ happen in the direct bash console environment, but does in emacs's M-x shell ...
$ cat ~/bin/pidparents  ## something to show where I am, that I find useful
#!/usr/bin/bash
# ~/bin/parentage

pid=${1:-$$}	#this process if no pid specified as $1

while [ $(($pid)) -gt 0 ]; do    
      ps h -p $pid -o comm,tt,pid,stat,args
      pid=$(ps -q $pid -o ppid=)
done
$ pidparents ## from here in emacs's shell
pidparents      pts/0     9286 S+   /usr/bin/bash /home/bokr/bin/pidparents
bash            pts/0     6884 Ss   /bin/bash --noediting -i
.emacs-26.2-rea tty4      6393 Sl+  /gnu/store/9nrncjaxygfrr9q749pymcw3l9vywh0k-emacs-26.2/bin/emacs-26.2 /home/bokr/.mutt/temp/mutt-PhantoNv4ArchGx-1000-6327-
mutt            tty4      6327 S    mutt
bash            tty4     24159 S    bash
bash            tty4      3608 Ss   -bash
login           ?         3601 Ss   login -- bokr
systemd         ?            1 Ss   /sbin/init \EFI\PhantoNv4ArchGx\vmlinuz-linux
$ ### does something depend on ttyN vs pts/N ?? don't think so, but maybe some env gets lost in pts start?
$
$ 
$ ### here I call the guix date vs the archlinux date at /usr/bin/date -- note the difference
$ which -a date
/home/bokr/.guix-profile/bin/date
/usr/bin/date
$ 

$ strace -y date|& egrep 'America|^write'|sed -e 's:,:,\n    :g'
openat(AT_FDCWD,
     "/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/share/zoneinfo/America/Los_Angeles",
     O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
write(1<pipe:[319076]>,
     "Mon Aug  5 18:22:52 America 2019"...,
     33Mon Aug  5 18:22:52 America 2019
$ 
$ strace -y /usr/bin/date|& egrep 'America|^write'|sed -e 's:,:,\n    :g'
openat(AT_FDCWD,
     "/usr/share/zoneinfo/America/Los_Angeles",
     O_RDONLY|O_CLOEXEC) = 4</usr/share/zoneinfo/America/Los_Angeles>
fstat(4</usr/share/zoneinfo/America/Los_Angeles>,
     {st_mode=S_IFREG|0644,
     st_size=2836,
     ...}) = 0
fstat(4</usr/share/zoneinfo/America/Los_Angeles>,
     {st_mode=S_IFREG|0644,
     st_size=2836,
     ...}) = 0
read(4</usr/share/zoneinfo/America/Los_Angeles>,
     "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0"...,
     4096) = 2836
lseek(4</usr/share/zoneinfo/America/Los_Angeles>,
     -1802,
     SEEK_CUR) = 1034
read(4</usr/share/zoneinfo/America/Los_Angeles>,
     "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\5\0\0\0\0"...,
     4096) = 1802
close(4</usr/share/zoneinfo/America/Los_Angeles>) = 0
write(1<pipe:[320852]>,
     "Mon 05 Aug 2019 11:23:06 AM PDT\n",
     32Mon 05 Aug 2019 11:23:06 AM PDT
$
;;;;;;;;;;;;;;;;

I put

export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale/"
export LC_ALL=en_US.utf8

in both ~/.bash_profile and ~/.bashrc
and still no joy
 
I'm wondering whether I have to reboot, not just log out and back in,
to get locales into effect. Have been trying and searching, but something
is eluding me ;-/ [later, after rebooting -- nope, reboot didn't do it :( ]

Generation 37	Aug 02 2019 01:42:29
 + tzdata	2019b	out	/gnu/store/kmsqjsrwryfnz6p9pb4yysly71221blv-tzdata-2019b

Generation 38	Aug 04 2019 15:39:34
 + glibc-locales	2.28	out	/gnu/store/bb9alx1ap57pz0vmx7p1r8qk0lxxfg3x-glibc-locales-2.28

Generation 39	Aug 05 2019 08:08:19
 + localed	241	out	/gnu/store/98mpw3n6j34dsnq63hb14bpfv9bxq9f4-localed-241

(Hm, guess I ought to clean out some generations)

Any ideas appreciated. Am I the only one seeing this?
I first noticed because who -b gave me UTC time instead of local time.

Thanks.
Regards,
Bengt Richter