|
Bugzilla – Full Text Bug Listing |
| Summary: | X sets LC_ALL=POSIX | ||
|---|---|---|---|
| Product: | [openSUSE] SUSE LINUX 10.0 | Reporter: | Jan Engelhardt <jengelh> |
| Component: | X.Org | Assignee: | Stefan Dirsch <sndirsch> |
| Status: | VERIFIED WORKSFORME | QA Contact: | Stefan Dirsch <sndirsch> |
| Severity: | Normal | ||
| Priority: | P2 - High | ||
| Version: | RC 1 | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Found By: | Beta-Customer | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
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. |
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.)