Bugzilla – Bug 116316
X sets LC_ALL=POSIX
Last modified: 2005-09-11 21:14:48 UTC
After updating to RC1, I found that X sets LC_ALL=POSIX. So xterms start in "iso-8859-1" mode by default. That's not what it was before and it not what I want either. (Beta2 is what I had before.)
When I log into a vc (e.g. tty1) `locale` gives the proper values. I start X using `startx -- -dpi 96`. Since environment is inherited to xterms, it must be somewhere along the X startup files, functions, etc.
Please add the output of "locale" before and after starting X. Which terminal and windowmanager are you using?
If I start a totally bare X on console: X :1 vt8 & DISPLAY=:1 xterm & Calling `locale` in that yellowish xterm outputs the proper locales. Starting an icewm within this yellow xterm and starting an xterm from this icewm also has proper locales. So I guess it must be Xstartup or so. Since at some point, something sets the environment, I looked through the env of some processes. This is `ps xaf` of the normal (:0) X server started using startx: 4616 tty1 S 0:00 /bin/sh /usr/X11R6/bin/startx -- -dpi 96 4643 tty1 S 0:00 \_ xinit /home/jengelh/.xinitrc -- /usr/X11R6/bin/X 4644 tty7 RLs+ 3:00 \_ /usr/X11R6/bin/X :0 -dpi 96 -auth /home/jenge 4659 tty1 S 0:00 \_ /usr/X11R6/bin/icewm-session 4666 ? SNs 0:00 \_ icewmbg 4667 ? Ss 0:01 \_ icewm 4680 ? Ss 0:00 | \_ xterm -ls -fg gray -bg #001020 -geome 4682 pts/1 Ss 0:00 | | \_ -bash 4846 pts/1 S 0:00 | | \_ /bin/bash --login 4901 ? Ss 0:00 | \_ /bin/sh /usr/bin/firefox 4913 ? Sl 5:46 | | \_ /opt/MozillaFirefox/lib/firefox-b 5218 ? Ss 0:00 | \_ xterm -ls -fg gray -bg #001020 -geome 5219 pts/2 Ss 0:00 | \_ /bin/bash --login 5575 pts/2 R+ 0:00 | \_ ps xaf 4668 ? Ss 0:00 \_ icewmtray 12:59 shanghai:/etc/init.d # cat /proc/4616/environ | perl -pe 's/\x00/\n/gs'|grep LC_ALL LC_ALL=POSIX 13:00 shanghai:/etc/init.d # So it's right in startx or the files it sources.
> So it's right in startx or the files it sources. Probably. It might be your ~/.xinitrc. Please rename it and retest. So the global one (/usr/X11R6/lib/X11/xinit/xinitrc) is used instead.
If I put this in ~/.xinitrc: echo LC_ALL is $LC_ALL exit 1 then startx will print me "LC_ALL is POSIX". So it's not my xinitrc.
I'll try to reproduce.
I can't. I made a fresh installation with a fresh user. In console login the locale is set to "de_DE.UTF8". After using startx (windowmanager: twm) the locale in xterm is still set to "de_DE.UTF-8".
Guess what. My personal scripts (not .xinitrc but something more toplevel) sourced /etc/rc.status for getting the colorful $rc_done -- which actually set LC_ALL=POSIX throughout all procs, including startx. Comments about rc.status having that POSIX thingie?
/etc/rc.status is sourced by init scripts. This is probably the reason to set LC_ALL to POSIX.