  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 <patchfile 2>&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 の藤原輝嘉
  <fujiwara@linux.or.jp> <mailto:fujiwara@linux.or.jp> が行いました。問
  題点の指摘やご意見は藤原まで御連絡ください。原文の著作権は XFree86 プ
  ロジェクト社にあり、日本語訳に伴う権利は X Japanese Documentation
  Project にあります。
