覚え書き
Mac OS X へのX Window Systemの導入 Part 2.
2005/05/08 Update
注:Mac OS X v10.3以降ではX11 for Mac OS Xが標準でバンドルされているので、特別な理由の無いかぎり純正のX11を使用したほうが良いだろう。
これに伴い、本ページはメンテナンスモードとする。
X11 for Mac OS Xについては別ページを参照のこと。
目次
Part 1.
● はじめに
● X Window Systemのインストール例(コマンドラインから)
● X Window Systemの起動
● キーマップの変更
● CVS リポジトリへのアクセス
● アンインストール
Part 2.
● 日本語の扱いについて
● libxpg4について
● 日本語の扱いについて
一般に、X(X Window System)環境で国際化機構を使用するには次の2つの方法がある。
(1) OSのlocale機構を使用する方法
(2) X自体のlocale機構(Xlocale)を使用する方法
Mac OS X v10.2まではDarwinレベルでlocale機構がサポートされていなかった。これはMac OS Xネイティブアプリケーション(Cocoa/Carbon)はCore Foundationの国際化機構を使用するため、Darwinレベル(Libc)での国際化機構は不要なためと思われる。
このため、代替手段としてXlocaleを使用することになるが、XFree86のXlocale関連の不具合のためバージョンによって日本語環境の構築方法が異なり、混乱を招くこととなった。
ここでは、参考までに過去のバージョンでの日本語環境の構築方法についてまとめておくことにする。
(1) XFree86 4.0.1まで
日本語を扱うには、Xlocaleを有効にしてXを再構築する必要があった。
(2) XFree86 4.0.2〜4.0.3
2000年12月にリリースされたXFree86 4.0.2からMac OS X(Darwin)用のXFree86も本家XFree86プロジェクトで正式にサポートされた。
XFree86 4.0.2/4.0.3では、Xlocale有効でmakeしてもUTF-8関連の不具合のため日本語を扱うことができなかった。
このため日本語を扱うにはXlocaleを正常に動作させるパッチ(井上俊博氏作)を当て、Xを再構築する必要があった。
(3) XFree86 4.1.0
2001年6月にリリースされたXFree86 4.1.0も4.0.2/4.0.3と同じ問題を抱えていた。
日本語を扱うにはこれまでどおり井上氏のパッチを当ててXを再構築する方法もあったが、このころ井上氏によってFreeBSDのlibxpg4がMac OS X(Darwin)に移植された。
libxpg4をインストールして環境変数を設定すればXを再構築することなく日本語を扱うことが可能になるため、OSのlocale機構の代わりにlibxpg4を使用した日本語化が主流となった。
(4) XFree86 4.2.0
2002年1月にリリースされたXFree86 4.2.0はデフォルトでXlocale有効となっているが、従来と同じ問題のためそのままでは日本語を扱うことができなかった。
これを解決するにはXlocaleを正常に動作させるパッチを当ててXを再構築するか、Xlocale無効でXを再構築してlibxpg4をインストールする必要があり、どちらにせよXの再構築が必要であった。また、Xlocaleとlibxpg4は同時に使用できないため、バイナリの互換性が問題となった。
(5) X11 for Mac OS X Public Beta
2003年1月、AppleからX11 for Mac OS X Public Beta(v0.1)が公開された。
X11 v0.1はXFree86 4.2.1ベースであり、日本語の扱いについてもXFree86 4.2.1と同様libxpg4を使用することができたが、1月下旬に加藤悦史氏によるXlocaleを正常に動作させるパッチが本家XFree86のCVSに正式に採用され、同じパッチを当てることでAppleのX11でもXlocaleが正常に動作するようになった。
(6) X11 v0.2およびXFree86 4.3.0
2003年2月上旬に公開されたX11 v0.2は、XFree86 4.2.1ベースであったが前述のパッチが取り込まれており、最初からXlocaleが正常に動作する状態でリリースされた。また、2月下旬にリリースされたXFree86 4.3.0も同様にXlocaleが正常に動作するようになったため、Xlocaleを使用した日本語化が一般的となった。
(7) Mac OS X v10.3(X11 v1.0)
2003年10月に販売が開始されたMac OS X v10.3では、Darwinレベル(Libc)でのlocale機構がサポートされた。
(FreeBSD 5.1からの移植)
しかしながら、Mac OS X v10.3付属のX11 v1.0(XFree86 4.3.0ベース)はXlocale有効でmakeされているため、これまで通りXlocaleを使用して日本語化を行っているユーザーが多いようである。
(8) XFree86 4.4.0
2004年2月にリリースされたXFree86 4.4.0では、Mac OS X v10.3用のバイナリはXlocale無効となっている。
また、_Xsetlocale()がsetlocale()のラッパー(加藤悦史氏によるパッチ)となっており、バイナリ互換も保たれている。
(9) Mac OS X v10.4(X11 v1.1)
2005年4月に販売が開始されたMac OS X v10.4付属のX11 v1.1はXFree86 4.4.0ベース(Xlocale無効)となっている。
◆ このように、Mac OS X上のX Window Systemで日本語を扱う方法はこれまで二転三転してきたが、ようやくDarwinレベルでlocale機構がサポートされ、XFree86/X11のデフォルトもXlocale無効となったため、今後はLibcのlocaleを使用する方法が一般的になるだろう。
Mac OS X v10.3+XFree86 4.4.0の環境で日本語を扱う場合、環境変数の指定は「~/.MacOSX/environment.plist」ファイルで指定しても良いが、XFree86では「.xinitrc」ファイルの指定が有効なので、以下の記述を「.xinitrc」ファイルに追加しても良い。
export LANG=ja_JP.eucJP
export XMODIFIERS="@im=kinput2"
kinput2 &
● libxpg4について
ここでは参考として、XFree86 4.2.1.1でのlibxpg4のインストール手順について説明する。
1. Xlocaleを無効にしてXを再構築する。
(1) XFree86のソースコードを入手する。
Part 1の手順(6)で「cvs -z3 checkout -r xf-4_2_1_1 xc」とタグを指定してソースコードの取得を行う。
(2) xc/config/cf/darwin.cf ファイルのStandardDefinesから -DX_LOCALE の指定を削除する。
(3) Xを再構築し、root権限でインストール。
% cd xc
% make World
% sudo make install
% sudo make install.man
2. libxpg4のダウンロードとインストール。
(1) libxpg4-darwin-20010605.tar.gz(直)をダウンロードし、作業ディレクトリに展開する。
% tar xvzf libxpg4-darwin-20010605.tar.gz
% cd libxpg4
(2) そのままではMac OS X 10.2.xではコンパイルでエラーとなるため、libxpg4/isctype.c中の__maskrune()の定義(以下の部分)をコメントアウトする。
(大城氏よりお教え頂いた)
#define _BSD_CT_RUNE_T_ int
static __inline int
__maskrune(_BSD_CT_RUNE_T_ _c, unsigned long _f)
{
return ((_c < 0 || _c >= _CACHED_RUNES) ? ____runetype(_c) :
_CurrentRuneLocale->runetype[_c]) & _f;
}
(3) makeし、root権限でインストールを行う。
% make
% sudo mkdir /usr/local/lib
% sudo make install
3. localedataの展開。
(1) localedata.tar.gz(直)をダウンロードし、 /usr/local/share に展開する。
% sudo mkdir /usr/local/share
% sudo tar xvzf localedata.tar.gz -C /usr/local/share
4. 環境変数の設定。
(1) 「.xinitrc」ファイルに以下の記述を追加。
/usr/share/locale/ja_JP.EUCにLC_COLLATEとLC_TIMEが無いため、これを参照するアプリケーションが文字化けする。
この問題を回避するために環境変数でLC_COLLATEとLC_TIMEを設定しておく。
export LANG=ja_JP.EUC
export DYLD_INSERT_LIBRARIES=/usr/local/lib/libxpg4.dylib
export DYLD_FORCE_FLAT_NAMESPACE=0
export LC_COLLATE=C
export LC_TIME=C
【お願い】
本サイトで紹介しているlibxpg4等のファイルは作者の井上俊博氏の許可を得て再配布しています。
井上氏はすでにこれらのファイルのメンテナンスを停止されています。
本件に関し、井上氏への問い合わせはご遠慮下さい。
← 戻る
←TOPページに戻る
「Macintoshは米国アップルコンピュータ社の商標です」
「その他、記載の商品名などは、一般に各社の登録商標または商標です」
Copyright (C) Toshimitsu Tanaka 2001-2005.