XFree86/OS2 を最初から再構築する際の注意 Holger Veit Last modified December 12th, 1999 The X Japanese Documentation Project Last modified December 21th, 1999 ____________________________________________________________ Table of Contents 1. 前書き 2. 必要なツール 3. コンパイルとインストール 4. 日本語訳について ______________________________________________________________________ 1. 前書き X11 と XFree86 は初めは Unix ベースのシステム上で開発されました。Unix システムには通常、各種作業を行うための豊富なツールとユーティリティが用 意されています。このようなツールは OS/2 ではインストールされないのです が、移植版が利用可能です。これらのツールは同じ名前の Unix 用ユーティリ ティと同じ機能を持っていることもありますが、微妙に機能が異なることもあ ります。このガイドでは、OS/2 上で最初からシステムを再構築しようと考え ている方のためのヒントを提供しています。 エンドユーザ向け情報である「README.OS2」も読んで、最低限ここに書かれて いる環境変数の設定を行ってください。 現時点では、利用可能な最新バージョンは XFree86-3.3.6 です。これは制限 無しの完全なバージョンであり、ソースコードも全て付いています。3.3.6 は 単なるバグ修正リリースではなく、新しいハードウェアもサポートしていま す。この中には OS/2 自身でさえサポートしていないものがあるかもしれませ ん。詳しくはリリースノートを参照してください。 (あるハードウェアのサポート追加等で)XFree86 開発チームに参加したいと思 われたなら、BOD@XFree86.org にリクエストを送ってください。しかし、その 前にこのようなステップについてよく考えてください。というのも、作業がた くさんあるからです。XFree86-3.3.6 のソースコードをシステムのコンパイル 方法のテスト例として使ってください。開発者になるためには、これを管理す る能力が基本的に必要です。 2. 必要なツール 筆者は必要な外部ツールの数を減らそうとしてきましたが、振り返ってみると あまりうまく行っていないようです。筆者は少なくとも、ネィティブの CMD.EXE シェルだけで全て行えるようにしようとしました。しかし、必要なソ フトウェアはまだたくさんあります。このソフトウェアのほとんどは hobbes.nmsu.edu または ftp.leo.org から anonymous ftp で入手することが できます。以下の買物リストを見れば、必要なものが分かるでしょう: o gcc EMX/gcc emx 0.9C patch4 以降 o gzip GNU zip/unzip o tar GNU tar o patch Larry Wall さん作の patch ユーティリティ (注意: OS/2の同名 のコマンドとは互換性はありません) o install BSD/GNU install o rm,mv,cp GNU ファイルユーティリティ o tee,.. GNU シェルユーティリティ o groff GNU nroff/troff o sed GNU sed ストリームエディタ o grep GNU grep o gawk GNU awk o make GNU make 3.71/3.72 (Xprog.zip に入っているものを使ってくだ さい!) o flex GNU flex o bison GNU bison o find GNU find (注意: OS/2 の同名のコマンドとは互換性はありま せん) o unix2dos 改行コード LF を CRLF に変換する変換ツール類(unixtoos2 と いった名前である場合もあります) バージョン番号を書いていない場合は、できるだけ新しいものを使ってくださ い。特に重要なのは EMX/gcc と GNU make だけです。2番目の gcc の実装も まだどこかのアーカイブから入手できるかもしれませんが、これは互換ではあ りません。 これに加えて、XFree86 のソースが必要です。これは一般の XFree86 のリポ ジトリから入手することができます。/pub/XFree86/3.3.6/source といった名 前であることが多いので、そのディレクトリを見てください。 3. コンパイルとインストール システム全体をコンパイルするためには、HPFS(または NFS, JFS, ext2fs) の 空き領域が約 300MB 必要です。このサイズには Postscript 形式や troff 形 式のドキュメントの分は含まれていません。筆者はこれらをインストールした ことがありません。また、テスト用のサブツリーをインストールしたこともあ りません。 1. 上記のユーティリティを全てインストールします。関連ドキュメントを参 照してください。全てのユーティリティ(特に EMX)が正しく動作すること を確かめてください。 2. 筆者と同じあるいは同様の構造を使うのは良い考えです。筆者はコンパイ ル用のパーティションに \x11 というディレクトリを作成し、全てのもの をこのツリーの下に置きました。筆者の場合には、初期状態のツリーで 使ったディスク容量がディスク全体の半分未満だったので、このツリーの 名前を \x11old に変え、新しいバージョンを同じディスクにコピー し、diff を取ることができました。完成したツリーは最終的にルートディ レクトリ xc の下に配置されるので、このディレクトリは \x11\xc になり ます。 3. ファイルを展開するには通常、\x11 ディレクトリで gzip -dc file.tar.gz | tar xvf - コマンドを実行します。最後に "gzip: stdout Broken pipe" といううっとう しいですが、致命的ではないメッセージが出力されます。これは無視してくだ さい。 4. その後、パッチをいくつか当てる必要があるようです。パッチは X コンソ ーシアムが出したものと、XFree86 プロジェクトが出したものがありま す。パッチを当てる前には、 chmod -R a+rw \x11\xc を実行して、ツリー中のファイルを書き込み可能にしてください。 5. パッチには added-XXX というファイルが付属しているはずです。このファ イルは新しく生成されるファイルを列挙したものです。 patch プログラム は新しいディレクトリをうまく作成できないので、先にディレクトリを作 成しておく必要があります。存在する added-XXX それぞれについて、\x11 で xc\config\util\added added-XXX 行してください。利用できる added-XXX がない場合、このファイルは以下の 手順で作成することができます: grep "\*\*\* xc/" patchfile >added-file テキストエディタで added-file を編集し、先頭の *** と末尾のタイムスタ ンプを削除します(TAB を検索し、行末まで削除します)。この操作により、 ファイルパスのリスト(1 行に 1 ファイル)が得られますが、これが added ユ ーティリティの入力となります。 6. 次に、パッチを正しい順序で当てます。パッチを当てるには通常、 \x11 ディレクトリで patch -p -E &1 | tee patchlog というコマンドを実行します。ただし、正しい patch コマンドを使ってくだ さい。OS/2 には名前が同じで機能が異なるユーティリティが存在します。よ く勧められる -s オプションは使わないでください。このオプションは patch のメッセージ出力を止めるので、patch のログに残される問題点を見られませ ん。リジェクトされ、適用されなかったパッチを見つけるには find \x11 -name *.rej -print find \x11 -name *# -print を実行します(注意: 違う機能を持つ別のコマンドが OS/2 にあります)。通常 はこのような問題は起こらないはずなので、問題が起こった場合は何かミスを しています。最後に、次のコマンドを実行してオリジナルのファイルを消しま す。 find \x11 -name *.orig -print -exec rm {} ; 7. xc\config\cf ディレクトリに移動し、 \x11bsol;xcbsol;programsbsol;Xserverbsol;hwbsol;xfree86bsol;etcbsol;bindistbsol;OS2bsol;host.def.os2 ファイルを xc/config/cf/host.def にコピーし、これを必要な条件に合わ せて編集します(たぶん、全ての X サーバをコンパイルすることはないで しょう)。いくつかの変更は必須であり、以下の値に設定しなければなりま せん: o PC98 サーバを無効にします(まだ無効にされていない場合)。PC98 (日本独 自のマシン用の XFree86)はまだ動作しません。移植する人が日本から現わ れるのを待ってます! o JoystickSupport や WacomSupport 等の外部入力関係を全て無効にしま す。 o #define BuildDynamicLoading NO これは動作しません。 o 特殊なサーバである XVirtualFramebufferServer, XnestServer, XprtServer を無効にします。 8. xc\util\compress ディレクトリに移動し、そこで make compress.exe を 実行します。これにより生成されたプログラムをパスが通っている場所に インストールします。筆者は OS/2 関連の ftp サーバにある移植が中途半 端な compress プログラムで何度もつまづきました。この compress プロ グラムは標準入力/標準出力の読み書きに問題があります。ちゃんとしたも のを使わないと、圧縮したフォントが全て壊れてしまうので、インストー ル途中の段階(フォントの圧縮)でmkfontdir が core を吐くことになるで しょう。 9. 環境変数 X11ROOT を現在とは別のどこかに設定します。さもないと、イ ンストール処理で先にインストールしていた XFree86/OS2 が上書きされて しまいます。この環境変数が設定されていない場合、本ドキュメントの前 書きまで戻ってください。何か忘れものをしています。 10. xc/programs/Xserver/hw/xfree86/etc/bindist/OS2/host.def.os2 ファイ ルを xc/config/cf/host.def にコピーします。このファイル は、xfree86.cf, imake.tmpl, os2.cf ファイルを直接編集せずに imake 編集に固有の変更を加えるために用います。 11. xc/config/util/buildos2.cmd ファイルを xc ディレクトリにコピーしま す。2 回目以降の試みであれば、保存されているトップレベルの Makefile.os2 を Makefile にコピーして戻す必要があるかもしれません。 12. この buildos2.cmd コマンドを xc ディレクトリで実行します。このコマ ンドは、このディレクトリにログファイル buildxc.log を作ります。注 意: 配布物を Unix tar 形式のアーカイブから取り出した場合には、この コマンドは即座に失敗するでしょう。残念なことに、OS/2 の REXX インタ プリタには、Unix 流の改行コードを使っているスクリプトで問題を起こし ます。ですから、ツリー全体を調べ、unix2dos や unixtoos2 に代表され るプログラムを使って *.cmd ファイルを "OS/2 ASCII" 形式にしてくださ い。 13. コーヒーを飲みます。コロンビア産ならもっといいでしょう! 選んだ設定 とハードウェアの馬力によって、コンパイルには 2 時間から 20 時間かか ります。 14. コンパイルが終了したら、ログファイルでエラーを調べ、問題があれば修 正します。筆者は何とか問題なくシステム全体をコンパイルすることがで きたので、動作する設定は少なくとも 1 つはあると言えます。 15. 最後に、xc ディレクトリで次のコマンドを実行します: xmake install xmake install.man 16. インストールの際にはちょっとした問題がいくつかあります: a. xdm ディレクトリと linkkit ディレクトリはコンパイルとインストー ルに失敗するでしょう。これは問題ではありませんし、残りのシステム にも影響を与えません。 b. \XFree86\bin にインストールされる imake.exe には普通、不具合があ ります。最初に作成し、ソースツリーがあるドライブのルートディレク トリにインストールされる imake.exe は大丈夫です。したがって、単 にこの \imake.exe を手動で \XFree86\bin にコピーしてください。い つかこの問題は修正されるかもしれません。 c. XF86Setup はまだ移植されていないので、XFree86/OS2 で利用可能な Tcl/Tk の移植版を使っても動作しません。XF86Setup をネイティブの インストール用ツールで置き換えるという考えが筆者にはあったのです が、まだそのための時間が取れません。よかったら、XF86Setup を ちょっといじってみてください。 というわけで、ご覧の通り、作業はとっても簡単でした :-) $XFree86: xc/programs/Xserver/hw/xfree86/doc/Japanese/OS2.Notes,v 1.1.2.3 1999/12/28 12:13:45 hohndel Exp $ $XConsortium: OS2note.sgml /main/1 1996/02/24 10:08:59 kaleb $ 4. 日本語訳について 日本語訳は X Japanese Documentation Project の藤原輝嘉 が行いました。問 題点の指摘やご意見は藤原まで御連絡ください。原文の著作権は XFree86 プ ロジェクト社にあり、日本語訳に伴う権利は X Japanese Documentation Project にあります。