date:2002, dec. 28 (compilation started dec. 27) I noticed this by using a perlscript, that warns:"perl: warning: Setting locale failed". I tried several locale settings, but the error remained. After reading perllocale, I looked for the tips about system locations of the locale and found out the following: /usr/lib/locale contains only 26 directories, all 2 letters except one with 4 and underscore a backup contains 158 directories, all 4 with underscore and several with @euro attached, where locale worked perfectly. FYI emerge info: ---schnipp--- Portage 2.0.46-r4 (default-x86-1.4, gcc-3.2.1, glibc-2.3.1-r2) ================================================================= System uname: 2.4.19-crypto-r7 i586 AMD-K6(tm) 3D processor USE="x86 oss 3dnow apm arts gif gnome libg++ mikmod mmx ncurses nls pdflib png qtmt spell truetype xmms xv berkdb slang readline svga tcltk java X sdl gpm tcpd libwww perl python esd imlib oggvorbis gtk qt motif opengl -cups avi mpeg quicktime ggi encode pam ssl crypt mysql postgres innodb gdbm acl samba zlib jpeg xml xml2 dvd aalib gd snmp -kde -sse" ARCH="x86" COMPILER="gcc3" CHOST="i586-pc-linux-gnu" CFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer" ACCEPT_KEYWORDS="x86" CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config /usr/kde/2/share/config /usr/kde/3/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" MAKEOPTS="-j2" JDK_HOME="/opt/blackdown-jdk-1.3.1" JAVA_HOME="/opt/blackdown-jdk-1.3.1" AUTOCLEAN="yes" SYNC="rsync://rsync.gentoo.org/gentoo-portage" GENTOO_MIRRORS="http://www.ibiblio.org/pub/Linux/distributions/gentoo" ---schnapp--- I wonder about the x86 setting in the USE variable, see my current make.conf: ---schnipp--- USE="-cups avi mpeg quicktime ggi encode pam ssl crypt mysql postgres innodb gdbm acl samba zlib jpeg xml xml2 dvd aalib gd snmp -kde -sse" CHOST="i586-pc-linux-gnu" CFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="${CFLAGS}" PORTAGE_TMPDIR=/mnt/hdc3/portage/tmp DISTDIR=/mnt/hdc3/portage/distfiles PKGDIR=/mnt/hdc3/portage/packages ---schnapp--- I was using the ACCEPT_KEYWORDS="~x86" before, but aborted emerge -u system, when I noticed that an unstable gcc would be installed, remarked the ACCEPT_KEYWORDS and emerge -u system again. emerge info was created without ACCEPT_KEYWORDS in my make.conf as you can see above. What can I do to get locale have all its directories needed in /usr/lib/locale? I could not find a corresponding package when searching for locale or nls. greetings and a happy new year, Sascha
In between I added "nls" to my USE-Variable in the hope, this will fix my broken locale and reinstalled glibc. But I had no succes. I'd relly appreciate help with my problem, because it is not only me annoying but my email partners, too. thanx in advance, Sascha
I don't do nls. Can someone take this?
and what is the output of your # cd /usr/share/locale ; ls | wc -l ?? It should be 71...
sascha, well?
Hi, sorry for the delay, I am still there :) ok, `cd /usr/share/local/; ls | wc -l` gives 75 on two other gentoo systems it gives 73, there the locale works fine. ...To be honest, the system with my locale problem from 20021228 has died because of a harddisk failure. I could save a lot from the partitions but not the whole thing, so I stepped back to the backup 20021216 which is the one, I have made before and because of my "emerge -u system" which lead to my locale problems. If you are willing to do forensics on what is left, it is ok. I would even do a "emerge -u system" for you to test if the locale breaks again - which would last a couple of days because the computer is 300Mhz slow. So, suggest what's best. greetings, Sascha
according to roman, remerge glibc...
I did `emerge -u system` at 20021227 and for some packages failures at 20021228 again. I then have done `emerge glibc`at 2003017` twice successfully, but I think I can remember setting NLS off and on with no difference, the problem resists. /usr/lib/locale still just contained 26 directories instead of more than 100 would have re-emerging gettext made any difference?
ok.. WE HAVE SOME PROBLEMS IN NAMING OF DIRS!!! in /usr/lib/locale is only one file locale-archive this file is created by glibc... then there is directory /usr/share/locale where are about 75 directories mainly two-letters (languages) and file locale.alias to this directories are apps going to place their .mo files (when USE="nls" configured) ... but main structure is created by glibc... then directory /usr/share/i18n/locales where is about 185 FILES mainly in format like cs_CZ or de_DE@euro this files are created by glibc... you can easily check the important dirs by localedef --help please confirm all this and if not , do emerge -e glibc
and also what variables you use for setting of locale ?? there are mainly two used: LANG LC_ALL and it must be setuped by ISO..!!! LANG=de_DE LC_ALL=de_DE please unset all other variables in your shell (LANGUAGE, LC_XX etc) and try... please remember, that setting up locale for root account is not wice, please use it only as the user
Hi, no we come closer to the suspected error. there is no /usr/share/i18n directory Does this lead to the locale errors? I think so. But how does `emerge -u system` containing an update of glibc ([ebuild U ] sys-libs/glibc-2.3.1-r2 [2.2.5-r6]) refusing creating this directory? Was it the missing NLS at the use variable? And why does rebuilding glibc with NLS set behaves the same? Unfortunately I can only look up at the tar archives of the system for files which I could save after the harddisk failure, so I can't execute the commands you advise. Ok, here is how I come to my locale settings: After the very first install I changed /etc/rc.config to this: 13: KEYMAP="de-latin1" 22: CONSOLEFONT="default8x16" 28: CONSOLETRANSLATION="8859-1_to_uni" 35: CLOCK="local" 53: PROTOCOLS="1 2" which worked fine. I was fiddling with setting locale when they were lost with no succes. root's and user's locale are all "de_DEiso88591" and so they were when doing the `emerge -u system` ...this was bad? greetings, Sascha
Roman, comments?
again As I said before... All "system" locale files are created by glibc 1. unset ALL laocale settings for root account I mean when set command is done, in list has not to be any variable like LANG, LANGUAGE, and all LC_xxx variables. 2. emerge glibc 3. try command locale -a, which has to list all locales defined by glibc 4. make sure you have in /usr/share/i18n/ the dirs locales and charmaps 5. read localistion howto 6. read man locale 7. setup the locales 8. Bad locale setting for account root can destroy emerge process !!! 9. better to unset all locale definition for root account
closing