[Momonga-devel.ja:02024] Re: xinitrc and glibc


zaki です。

>  > xinitc をビルドできるように調整しました。
>  > 先に glibc を build & install してから xinitrc を作ってください。
> 
> glibcに加えた
> 
>  * Sat Aug 16 2003 YAMAZAKI Makoto <uomaster@xxxxxxxxx>
>  - (2.3.2-3m)
>  - add glibc-2.2.3-localedef-disable-normalize.patch for xinitrc
> 
> という変更の影響と思いますが、~/.xinit.d/langの中身が
> 
>  ja_JP.eucjp
> 
> になっていると、
> gnome-panelからGNOME系アプリケーションを起動した場合に
> パネルごと落ちたりします。

はい。
ja_JP.eucjp になっている事自体が問題なので、もしそうなっていたら
ja_JP.EUC-JP に 直してください。もしくは、wdm や sdr で ja_JP.EUC-JP を
選んで保存してください。

詳しく説明すると、2.3.2-3m より前のglibc に含まれる localedef では
codeset の部分(EUC-JP や、 UTF-8)を normalize(正規化?) してから
/usr/lib/local/ の下にディレクトリを作っていました。
xinitrc はこのディレクトリ名を元に /etc/X11/xinit/lang.d/ に
言語の選択のためのファイルを作るので、作成されるファイルの LANG も
normalize されてしまっていました。
念のため、/etc/X11/xinit/lang.d/ に ja_JP.eucjp, *euckr, *.utf8 等
のファイルが残っていないかチェックしておいてください。

参考までに、行われていた normalize のルールは
isalnum() == true な文字のみを抜き出して、tolower() する
というものです。 なので、 EUC-JP => eucjp になっていました。