From: aki@noc.titech.ac.jp (飯島昭博/Iijima Akihiro) Newsgroups: fj.windows.x,fj.os.bsd.freebsd Subject: [FYI] How to make -DX_LOCALE XF86 3.1.2 on FreeBSD2.0.5R part1 Date: 23 Aug 1995 10:03:14 GMT Organization: Network Operation Center, Tokyo Institute of Technology, Japan. Lines: 114 Message-ID: References: NNTP-Posting-Host: nocs3.noc.titech.ac.jp In-reply-to: aki@noc.titech.ac.jp's message of 23 Aug 1995 09:34:53 GMT > 2) X11R6の locale環境を使う。実際は XFree86 3.1.2を > -DX_LOCALE で make Worldする。 つうわけで この前書いたものです。 Xの localeを使いたい人は参考にしてください。 --- ここから --- Emiclockで 日本語メニューバーを出すまでの道のり -- FreeBSD 2.0.5-R で XFree86 3.1.2を -DX_LOCALEで作ろう 飯島昭博 aki@noc.titech.ac.jp 1995/08/18 FreeBSD 2.0.5-R の上で XFree86 3.1.2 (X11R6 fix-12) を -DX_LOCALE で作りました。その手順をまとめてみました。 長くなってしまったので 2部構成にします。 第1部 XFree86 3.1.2 のソース全部を用意するまで XFree86 3.1.2 のソースの準備にはいくつかの方法があります。 1) XFree86 3.1.2ソースパッケージを手にいれる。 本家のftp.xfree86.orgには X312src.tgz という 30Mの巨大なファイルがあり ますが、国内のmirrorサイト ftp.iij.ad.jp には 現時点では存在しません。 (なを このファイルはデカイので一 FTPサイトの管理者以外は取りに行かない ほうがいいと思います。) というわけで 現時点では この方法は 不可。 2) XFree86 3.1.1ソースから 変形する。 (see ftp.iij.ad.jp/X/XFree86/XFree86/3.1.2/patches/README) 3.1.1-3.1.2.diff.gz Patch to convert XFree86 3.1.1 source to XFree86 3.1.2. だそうですから、手もとに XFree86 3.1.1 があれば この方法がいいでしょう。 ftp.iij.ad.jp/X/XFree86/XFree86/3.1.2/patches/ にあります。 -r--r--r-- 1 root 891601 Jul 24 23:44 3.1.1-3.1.2.diff.gz -r--r--r-- 1 root 365510 Jul 23 16:11 cfont312.tgz 3) X11R6 fix-12 から 変形する。 (see ftp.iij.ad.jp/X/XFree86/XFree86/3.1.2/patches/README) XFree86-3.1.2.diff.gz Patch to convert X11R6 PL12 source to XFree86 3.1.2 (cfont312.tgz is also required). だそうですから、X11R6ソースから作るにはこの方法ですね。 ftp.iij.ad.jp/X/XFree86/XFree86/3.1.2/patches/ にあります。 -r--r--r-- 1 root 1008874 Jul 25 00:01 XFree86-3.1.2.diff.gz あと 2) も 3) その後に これが必要です。忘れずに。 cfont312.tgz Cyrillic bdf font source. This is required when starting from XFree86 3.1.1 or X11R6 PL12. *** 私は 3) でしたので その部分をさらに解説。 1) X11R6 xc-?.tar.gz を手に入れる。 雑誌のおまけのCD-ROMなどから手に入れて下さい。/opt/R6-src/xc に展開。 # mkdir /opt/R6-src # tar xvzf xc-1.tar.gz xc-2.tar.gz xc-3.tar.gz 2) XCから出ている 公式パッチを fix-12まで当てる。 いろんなトコにありますが、 ftp.iij.ad.jp /pub/X/X11R6/fixes/ ftp.wg.omron.co.jp /pub/X/X11R6/fixes/ ftp.cs.titech.ac.jp /pub/X/X11R6/fixes/ 必ず patchファイルを読みましょう。たまに 「rm xc/Xlib/??.h などをせよ」 と書いてある物もありますので。ほとんどは patch -p < パッチファイル で当てるわけですが、FreeBSDの patchコマンドは -C でテストが出来るので、 まず patch -p -C < ファイル とやってチェックするといいかもしれません。 patch -p < fix-1 |& tee log.fix-1 (csh, zshの場合)で 出力を保存しな がら見ることができます。 順番に fix-12 まで当てましょう。 3) lndirを使って Xのソースツリーに再帰的にリンクを張る。 3.1.2-diffを当てると公式な fix-12ソースは形が変わってしまいます。 (fix-11から XFree86-3.1.1の時もそうだった) 今後 fix-13が出た時のために fix-12状態を保存することにしました。 実体が /opt/R6-src/xc にあって /opt/R6-make からリンクを張りたい場合は、 # mkdir /opt/R6-make # cd /opt/R6-make # lndir /opt/R6-src . 4) さらなるパッチ XFree86-3.1.2.diff.gz を当てる。 xc/config/cf/FreeBSD.cf などが入っています。 # patch -p -E < XFree86-3.1.2.diff |& tee log.xf312diff そうそう、fix-12では 3つのファイルを rmせよ と書いてありますが、 rm -f xc/lib/Xt/Shell.h rm -f xc/lib/Xt/StringDefs.h rm -f xc/lib/Xt/StringDefs.c rmしたら この 312diff で引っかかりました。patch -E なので 「もし patchして そのファイルが 0byteになったら そのファイル自体を 削除せよ」という意味なのですが 先に fix-12の後で rm してしまっていたの で patch君が 困ってしまうのです。 「XXX に 当てますか? (y/n)」と出るので XXXの部分が 上記のファイル名だっ たら n と答えましょう。 5) cfont312.tgz をあてる。 Cyrillic font って 何語用なんでしょうね? *** これでやっとソースが揃いました。 続く... -- 東京工業大学 Titanet 運用センター 飯島 昭博 (Akihiro Iijima) aki@noc.titech.ac.jp From: aki@noc.titech.ac.jp (飯島昭博/Iijima Akihiro) Newsgroups: fj.windows.x,fj.os.bsd.freebsd Subject: [FYI] How to make -DX_LOCALE XF86 3.1.2 on FreeBSD2.0.5-R part2 Date: 23 Aug 1995 10:05:11 GMT Organization: Network Operation Center, Tokyo Institute of Technology, Japan. Lines: 103 Message-ID: NNTP-Posting-Host: nocs3.noc.titech.ac.jp In-reply-to: aki@noc.titech.ac.jp's message of 23 Aug 1995 09:34:53 GMT 第2章 XFree86 3.1.2 を make まず どのような Xを作るのかを調整しないといけません。xc/config/cf/ の 下にmakeの時の設定ファイルがあります。OSやCPUで分類された設定ファイル がたくさんありますね。FreeBSDの場合、使われるのは FreeBSD.cf というファ イルです。 あと これとは別に site.def と host.def も参照されます。 Xのソースが NFSサーバに置いてあり、ソースをいろんなマシンで共有してい る環境では OS依存な設定は .cf ファイルに、 あるホストだけの設定は host.def に まわりのマシン全部で共通な設定は site.defに書く らしいんですが.... どうせ 一人で使うので わたしゃ FreeBSD.cf に書いてしまいました。 1) FreeBSD.cf を編集 まず localeをどうするかです。 -DX_LOCALEを付けると Xの用意した locale環境を使うようになります。 FreeBSDにも locale() は用意されてるし、 /usr/share/locale/ja_JP.EUC/LC_CTYPE もあるので ひょっとすると これをしなくても使えるのかもしれません。 # だとすると この文書は無駄だな... xc/config/cf/FreeBSD.cf の StanderdDefineに -DX_LOCALEを追加。 #define StandardDefines -DCSRG_BASED -DX_LOCALE あとは 変更しませんでした。このままだと xf86site.def に #define XF86Mach32Server YES こういうのが ずらっと書いてあるので Mach32や S3用の Xサーバまで作って しまいます。必要な物だけでいいなら どこかで NO にしましょう。 このファイルをいじるか、 host.def で #undedf してから #define ?? NO とするか 2) いよいよ make xc/ まで戻って make です。 # cd /opt/R6-make/xc # make World >& log.world さぁ 寝よう。 3) ログを見て確認 warningはあるけ ど まぁいいか。 なんか select()の warnが多いですね。 makeが終った時点での 容量は duコマンドで 126337 R6-make 単位 kbですので 126Mb かな。 4) インストール このままだと /usr/X11R6 に入って行きます。 (なにもしないと site.defの最初で #define ProjectRoot /usr/X11R6 で指定 される) 先に df で /usrの空きを確認してください。 ちなみにインストールされる容量は 47353 X11R6 ですので 50Mbは空いてないと。 make installは rootになって行います。 # su # make install; make install.man suで rootになれない人は /etc/group の wheel のところに wheel:*:0:root,aki 自分のログイン名を , で続けて書くといいです。 自分がどんなグループに属するかは id コマンドで見れます。 グループへの所属はログインした時に設定しますので、この変更も ログインしなおさないと有効になりません。 5) Xサーバ設定ファイル /usr/X11R6/lib/X11/XF86Config を用意。 XF86Configというファイルに Xサーバの設定を書きます。 この辺りの話は詳しい方におまかせします。rootさんで xf86configを実行す ると質問形式でこのファイルを作れます。(もちろん英語) 今回は XFree86 3.1のがあったので cp。 mouseのデバイス名を /dev/ttyd0 にし microsoftにした。 PS/2マウスは 知らない。 6) リブート /usr/X11R6/lib にある shard-libを ldconfigコマンドで認識させればいいん ですが、面倒なので reboot 。 7) startx 動いた。 *** では LOCALEの確認のために Emiclockを makeしてみましょう。 (むっかし昔の古場さんの記事より抜粋) (1) emiclock 1.0.2 のソースを展開する。 (2) cd EmiClock-1.0.2 (3) cp resources/R6/EUC/EmiClock.ad . 日本語resourceを用意。 (4) xmkmf; make depend; make (5) su で root になって、make install install.man (6) su から抜けて、setenv LANG ja_JP.eucJP とやる(csh 系のシェルの場合)。 (7) (必要なら rehash してから) emiclock と入力。 (8) Emi Clock が起動したら、時計の上までマウスポインタを移動して マウス左ボタンを押す。すると、日本語メニューが出てくる。:- -- 東京工業大学 Titanet 運用センター 飯島 昭博 (Akihiro Iijima) aki@noc.titech.ac.jp