After I upgraded my Linux box from glibc 2.2-5 to 2.2-9 locale got broken. I'm using russian locale ru_RU.KOI8-R. To check the locale I use 'locale mon' command. After upgrade it's output changed from russian back to english. Utitlities like 'date' use english timenames instead of russians and so on. With glibc 2.2-5 all was fine. I tried to recompile the locale with localedef -c -i ruRU -f KOI8-R ru_RU.KOI8-R but it don't help.
Cannot reproduce this. $ rpm -q glibc glibc-2.2-9 $ LANG=ru_RU.KIO8-R locale mon IYO`o;DOO`Uo;<`b;0_`OUo;<o;,nYo;,nUo;0OOaab;AOYboQ`o;UboQ`o;=oQ`o;OUQ`o $ LANG=en_US locale mon January;February;March;April;May;June;July;August;September;October;November;December $ LANG=cs_CZ locale mon leden;znor;bxezen;duben;kvlten;herven;hervenec;srpen;zaxm;xmjen;listopad;prosinec Can you please look if you have /usr/lib/locale/ru_RU.koi8r/ directory populated, perhaps strace that locale (ie. LC_ALL=ru_RU.KIO8-R strace -o log locale mon) to see what's going on?
Created attachment 7364 [details] output of strace command
I got this: # LANG=cs_CZ locale mon January;February;March;April;May;June;July;August;September;October;November;December # LC_ALL= LANG=ru_RU.KOI8-R strace -o log locale mon January;February;March;April;May;June;July;August;September;October;November;December # LC_ALL=ru_RU.KOI8-R LANG=ru_RU.KOI8-R strace -o log locale mon <line of russian names which NN refuse to paste> Seems that it works when LC_ALL is set. But I don't want to set LC_ALL cause this will ignore all others LC_ categories. Log file that strace produced is attached to this message. I've restored original glibc: # rpm -V glibc .......T /usr/lib/locale/ru_RU.koi8r/LC_ADDRESS .......T /usr/lib/locale/ru_RU.koi8r/LC_COLLATE .......T /usr/lib/locale/ru_RU.koi8r/LC_CTYPE .......T /usr/lib/locale/ru_RU.koi8r/LC_IDENTIFICATION .......T /usr/lib/locale/ru_RU.koi8r/LC_MEASUREMENT .......T /usr/lib/locale/ru_RU.koi8r/LC_MESSAGES/SYS_LC_MESSAGES .......T /usr/lib/locale/ru_RU.koi8r/LC_MONETARY .......T /usr/lib/locale/ru_RU.koi8r/LC_NAME .......T /usr/lib/locale/ru_RU.koi8r/LC_NUMERIC .......T /usr/lib/locale/ru_RU.koi8r/LC_PAPER .......T /usr/lib/locale/ru_RU.koi8r/LC_TELEPHONE .......T /usr/lib/locale/ru_RU.koi8r/LC_TIME .......T /usr/share/locale/locale.alias
Are you sure you don't have LC_TIME set in the environment? $ LC_ALL= LC_TIME= LANG=es_ES locale mon enero;febrero;marzo;abril;mayo;junio;julio;agosto;septiembre;octubre;noviembre;diciembre $ LC_ALL= LC_TIME=C LANG=es_ES locale mon January;February;March;April;May;June;July;August;September;October;November;December
Yes, I forget about LC_TIME. ;-) Sorry for false alarm.