-- FreeBSD/pc98 日本語インストーラ作成ツール --

	FreeBSD/pc98 6.2-RELEASE 「日本語インストーラ/インストール FD」
	を作成するシェル手続き

				    修正日	平成19年(2007年)01月15日 (月)
				    作成	小金丸信幸
				    E-mail	kogane@koganemaru.co.jp

1. はじめに
	FreeBSD/pc98 のインストーラとしては、リリースと同時に配布される
	インストーラがありますが、英語表示となっています。本説明は
	FreeBSD/pc98 日本語表示インストーラを作成する手順を記述しています。


2. 用意するファイル
	1) FreeBSD/pc98 6.2-RELEASE のインストール用 CD-ROM かその中の src
	   をコピーしたもの。
	2) make.98release.tar.gz
	   従来別ファイルだった patches.tar.gz ファイルは
	   make.98release.tar.gz に含まれています。
	3) package ファイル
	   リリース用のドキュメントを作成するために次のパッケージが必要です。
	dsssl-docbook-modular-1.79,1
	jade-1.2.1_9
	links-0.98,1
	tidy-20000804_2

	dsssl-docbook-modular-1.79,1
	は次の依存 package が必要です。
	    xmlcatmgr-2.2
	その他、次の package も必要です。
	docbook-1.3
	次は依存 package です。
	    docbook-241_2
	    docbook-3.0_2
	    docbook-3.1_2
	    docbook-4.0_2
	    docbook-4.1_2
	    docbook-xml-4.2_1
	    iso8879-1986_2

	日本語のドキュメントを作成するには次の package もインストールして
	ください。
	ja-lynx-2.8.4.rel1
	次は依存 package です。
	    zip-2.3_2
	    unzip-5.52_1
	doc の作成のために最新の perl package が必要です。古い perl を入れ
	たままにしている場合は新しいものに置き換えてください。
	perl の package としては
	    perl-5.6.2_2
	    perl-5.8.8
	があります。

3. make.98release.tar.gz の内容

	添付している make.98release.tar.gz には次のファイルが含まれています。

	MAKE.Clean.sh	作業ファイルを削除します。
	MAKE.PC98.sh	MAKE.floppies.sh を呼び出すシェル手続き。
	MAKE.del.orig.sh *.orig ファイルを削除するシェル手続き。
			MAKE.make.patches.sh を行う前などに実行します。
	MAKE.doc.sh	リリースドキュメントを作成するシェル手続き。
	MAKE.dopatch.sh	patch を実行するシェル手続き。
	MAKE.floppies.sh kern.flp, mfsroot.flp を作成するシェル手続き。
	MAKE.get.src.sh	FreeBSDリリースの src ディレクトリからソースファイル
			取り出すシェル手続き。
	MAKE.objdir.sh	obj ディレクトリを作成するシェル手続き。
	README		本ファイル。
	RelMakeCheck.sh	release/Makefile の制御を展開するシェル手続き。
	SETVAR		環境変数の設定。
	VNmount.sh	md の mount を行います。
	VNumount.sh	md の umount を行います。
	bin/pastime	経過時間計測ツール (perl で作成)。
	patches.tar.gz	ソースにあてるパッチ。

	ソースを展開するディレクトリを /usr/src となるように設定してください。
	もし既に /usr/src が存在するなら一時的に名前を変更します。
	# mv /usr/src /usr/src.org

	現在のディレクトリを /usr/src となるように設定します。

	# ln -s `pwd` /usr/src

	/usr/obj/usr/src ディレクトリが存在する場合も問題となります。
	名前を変更しておいてください。詳細は後述。

	ソースを展開するディレクトリ下に作業用ディレクトリを作成し、
	上記のコマンドコピーします。例: mkdir /usr/src/makerel

	一般ユーザでは作成できません。root (スーパーユーザ)で実行してくだ
	さい。


      o 最短の場合
	SETVAR	3行を修正
	MAKE.get.src.sh
	MAKE.dopatch.sh
	MAKE.objdir.sh
	MAKE.del.orig.sh
	MAKE.make.patches.sh
	MAKE.floppies.sh

	を順番に実行するだけで作成できます。

	リリースの変更がある場合はソースファイルを変更した後、
	MAKE.make.patches.sh
	MAKE.floppies.sh
	を実行すれば新しいリリースが作成できます。

        安全のために PATH に . を含めていないならば、./MAKE.get.src.sh のよ
        うにシェル手続きの前に ./ をつけてください。


4. 必要なディスク容量

    リリース用バイナリを作成する場合:
	・ソースファイルが展開されるカレントディレクトリは 290M バイト,
	・/usr/obj は 13M バイト
	・出力ファイルが置かれるディレクトリ(/R) は 64M バイト
	合計、367M バイト以上必要です。

	/usr ファイルシステムの容量が少ない場合は他のファイルシステムにシン
	ボリックリンクを張るとよいでしょう。
	例: ln -s /otherdisk/obj /usr/obj

	出力ファイルが置かれる /R ディレクトリの容量が少ない場合も他のファ
	イルシステムにシンボリックリンクを張るとよいでしょう。
	例: ln -s /otherdisk/R /R


5. ファイルを適当なディレクトリに mount します。

	# mount_cd9660 /dev/acd0 /cdrom

	ディスクにコピーしてあれば、必要ありません。


6. MAKE.get.src.sh の実行

	添付している SETVAR の MD= の部分をリリースディレクトリにエディタで
	修正してください。6.2-RELEASE ディレクトリがない場合は SRC= の部分も
	修正します。

	SETVAR ファイルは他のシェル手続きで参照されます。

	4.X-RELEASE は出力ディレクトリの(RELEASEDIR=で)指定ができましたが、
	現在は /R 固定です。

	使用者が変更するのは MD=(又は SRC=)、ORIGMAKE= と MAKE_FIXIT= 部分
	のみです。ただし、/ (ルート) ファイルシステムに余裕がない場合 sort
	コマンドが /tmp を使用してファイルシステムフルのエラーになる場合が
	ります。/tmp に余裕がない場合は TMPDIR= を設定してください。

	----- SETVAR ファイルの1部分 -----
	# リリースファイルのマウントディレクトリ
	MD=/cdrom
	SRC=$MD/6.2-RELEASE/src

	# cvsup のソースからリリーズ用バイナリ/インストール FD を作成する場合
	# のソースを置くディレクトリ名
	#CVSDIR=/usr/src.releng52
	CVSDIR=

	# 出力ディレクトリの指定 (十分大きなファイルシステムを指定してください)
	#RELEASEDIR=/var/98release

	# fixit.flp を作成する場合は MAKE_FIXIT=YES とする
	MAKE_FIXIT=

	# orig ディレクトリを作成するかどうかのフラグ
	# patch を作成する場合は ORIGMAKE=ON としてください。
	ORIGMAKE=ON

	# sort が使用するテンポラリディレクトリ
	export TMPDIR=/var/tmp
	----- SETVAR ファイルの1部分 終り -----

	「FreeBSD(98) リリース作成ツール」のコマンド群は通常
	/usr/src/makerel 等の(/usr/src の一つ下の)ディレクトリを作成して、
	その位置で実行します。

	ソースを展開するディレクトリの一つ下のディレクトリ
	(/usr/src/makerel 等)で MAKE.get.src.sh を実行します。

	MAKE.get.src.sh は FreeBSDリリースの src ディレクトリからソースフ
	ァイル取り出すシェル手続きです。

	# MAKE.get.src.sh

	ソースを取り出したかどうかは done/get.xxx というファイルで識別され
	ます。ソースファイルを取り出すのが不足した場合は MAKE.get.src.sh
	の該当部分を修正した後 done/get.xxx を削除した後、もう一度
	MAKE.get.src.sh を実行すれば該当する部分のみ再び取り出すことができ
	ます。

7. パッチの実行

	FreeBSD 6.2-RELEASE から変更のある差分のパッチを当てます。

	# MAKE.dopatch.sh

	MAKE.dopatch.sh は patches.tar.gz ファイルを読み込みソースにパッチ
	を当てます。

	※だだし、新規に FreeBSD(98) のリリースを作成する場合は patch ファイ
	ルはありませんので、

	# MAKE.dopatch.sh -s

	でパッチはスキップします。


8. obj ディレクトリの作成

	MAKE.get.src.sh, MAKE.dopatch.sh が正常に終ったなら、
	MAKE.objdir.sh を実行します。

	# MAKE.objdir.sh

	を実行します。/usr/obj の下を消してしまった後などに、再び実行する場
	合もあります。

	カレントディレクトリが /usr/src ではない時、/usr/obj/usr/src が既に
	存在する場合、

	「/usr/obj/usr/src が存在します. /usr/obj/usr/src を消すか名前を変更
	してから実行してください.」

	とエラーとなりますので、
	cd /usr/obj/usr ; mv src src.old
	を行って再び MAKE.objdir.sh を実行してください。


9. /etc/make.conf の設定

	/etc/make.conf を設定してください。次は FreeBSD(98) を作成する際に
	使用しているフィルです。
	/etc/make.conf が正しく設定されていないと、インストーラのオブジェクト
	コードが大きくなり、フロッピーディスクイメージに入り切れなくなります。
	次の NO_CPU_CFLAGS, NO_CPU_COPTFLAGS フラグが重要です。

	---- ここから ----
	#
	# $Id: make.conf,v 1.2 2002/10/28 07:00:53 nyan Exp $
	#
	USA_RESIDENT=NO
	WITHOUT_X11=YES
	NO_CPU_CFLAGS=true
	NO_CPU_COPTFLAGS=true
	---- ここまで ----


10. patch ファイルの作成

	FreeBSD(98) のリリース用 patche ファイルを作成する場合に実行します。

	リリース用のプログラムを変更する場合はこの前にソースファイルの変更を
	行います。プログラムを追加する等の大きな変更の場合は同時に
	release/Makefile を修正しなければなりません。

	パッチを当てた後に *.orig ファイルが残っている場合があります。
	# MAKE.del.orig.sh で *.orig ファイルを削除してください。

	# MAKE.del.orig.sh -p
	*.orig ファイルがあれば表示されます。

	# MAKE.del.orig.sh 
	*.orig ファイルが削除されます。

	# MAKE.make.patches.sh

	を実行してください。

	patche ディレクトリとその下に patche ファイルが作成されます。


11. リリース用のブートフロッピーイメージファイルの作成

	リリース用のブートフロッピーイメージファイル (kern.flp, mfsroot.flp
	等) を作成するために、

	# MAKE.floppies.sh

	を実行します。

	/R/stage/floppies に boot-small.flp, boot.flp, kern-small1.flp,
	kern-small2.flp, kern1.flp, kern1.flp, mfsroot-small1.flp,
	mfsroot1.flp ブートフロッピーイメージファイルが出来上がります。
	SETVAR ファイルで MAKE_FIXIT=YES の場合は fixit-small.flp,
	fixit.flp も作成されます。

	MAKE.floppies.sh の代わりに MAKE.PC98.sh を使用すると、画面に表示
	されるメッセージが ERRPC98.mmdd.xx というファイルに出力されます。
	mmdd は月日、xx は 01 から順番にカウントアップされます。

	# MAKE.PC98.sh
	または
	# MAKE.PC98.sh &
	# tail -f ERRPC98.mmdd.xx

	エラーが生じた場合はメッセージの内容を参考にして、解決してください。
	再実行する場合は cd /usr/src/release ; make clean を行えばよいでし
	ょう。


12. 日本語リリースドキュメントの作成

	ドキュメントの作成時に /usr/doc を参照します。インストール時に doc
	をインストールするか、cvsup で cvs を取得してください。

	# MAKE.doc.sh

	を実行します。

	/R/stage/release.doc/ja_JP.eucJP/*/article.txt に日本語のドキュメ
	ント /R/stage/release.doc/en_US.ISO8859-1/*/article.txt に英文のド
	キュメントが作成されます。


13. 作業ファイルの削除

	# MAKE.Clean.sh

	使用法: MAKE.Clean.sh [-s] [-o] [-r] [-g] [-a]
		-s ソースファイルを削除
		-o /usr/obj 以下を削除
		-r release 出力ファイルを削除
		-g orig ソースファイルを削除
		-a 上記のファイル全て削除


14. その他のシェル手続き

	使用法: VNmount.sh [-r] boot_flp_file_image [/mnt] 
				boot_flp_file_image を /mnt にマウントする。
			-r リードオンリーでマウントする
		VNmount.sh -u [/mnt]
				VNmount.sh で [/mnt] にマウントしたファイル
				システムを umount する。
		VNumount.sh [/mnt]
				VNmount.sh で [/mnt] にマウントしたファイル
				システムを umount する。

	・VNmount.sh	md の mount を行います。

	/R/stage/mfsroot の下に作成される mfsroot.gz (gunzip で拡張してか
	ら VNmount.sh を実行してください)ファイルや kern.flp, mfsroot.flp
	の中を見る時に使用します。umount は下記の VNumount.sh を使用します。
	実行すると /mnt にマウントされます。指定すれば他のディレクトリにも
	マウントできます。/mnt が他のマウントに使われていないか確認した後
	実行してください。-r オプションをつけるとリードオンリーでマウント
	されますので、イメージファイルの内容や作成日付が変更されません。

	使用例:
	    # VNmount.sh mfsroot.flp /mnt
	    # df -i
	または
	    # VNmount.sh -r kern.flp
	    # ls -l /mnt

	・VNumount.sh	md の umount を行います。

	    # VNumount.sh
	または
	    # VNumount.sh /mnt

	マウントした時点の md デバイス名を保存するため /tmp/MDDEV という作
	業ファイルを使用します。


15. 改版履歴
    1)  FreeBSD(98) 2.2.2R の「boot.flp / リリース用バイナリ」を作成するシェ
	ル手続き
	作成日	平成9年(1997年)09月21日 (日)

    2)  FreeBSD(98) 2.2.5R の「リリース用バイナリ/boot.flp」を作成するシェル
	手続き
	作成日	平成9年(1997年)12月01日 (月)
	修正日	平成9年(1997年)12月02日 (火)

    3)  FreeBSD(98) 2.2.6R の「リリース用バイナリ/boot.flp」を作成するシェル
	手続き
	作成日	平成10年(1998年)03月31日 (火)
	修正日	平成10年(1998年)04月02日 (木)
	    「PAO 用 boot.pao.flp の作成」, 「その他のシェル手続き」を追加。

    4)  FreeBSD(98) 2.2.7R の「リリース用バイナリ/boot.flp」を作成するシェル
	手続き
	修正日	平成10年(1998年)07月26日 (日)

    5)  FreeBSD(98) 3.0R の「リリース用バイナリ/boot.flp」を作成するシェル手
	続き
	修正日	平成10年(1998年)10月27日 (火)

    6)  FreeBSD(98) 2.2.8R の「リリース用バイナリ/boot.flp」を作成するシェル
	手続き
        修正日	平成10年(1998年)12月03日 (木)

    7)  FreeBSD(98) 3.1R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
        修正日	平成11年(1999年)03月06日 (土)

    8)  FreeBSD(98) 3.2R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
        修正日	平成11年(1999年)05月20日 (木)

    9)  FreeBSD(98) 3.3R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
        修正日	平成11年(1999年)09月20日 (月)

    10) FreeBSD(98) 3.4R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
        修正日	平成11年(1999年)12月22日 (水)

    11) FreeBSD(98) 4.1.1R の「リリース用バイナリ/kern.flp, mfsroot.flp」を
        作成するシェル手続き
        修正日	平成12年(2000年)10月14日 (土)

    12) FreeBSD(98) 4.2R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
        修正日	平成12年(2000年)11月24日 (金)

    13) FreeBSD(98) 4.3R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
        修正日	平成13年(2001年)05月05日 (土)
	    FreeBSD 2.2.5R 以前の日本語化された sgmlfmt, sgmls を使用して
	    いましたが、これを packages を使用するように変更しました。

    14) FreeBSD(98) 4.4R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
        修正日	平成13年(2001年)08月14日 (火)

    15) FreeBSD(98) 4.5R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
        修正日	平成14年(2002年)02月05日 (火)

    16) FreeBSD(98) 4.6R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
        修正日	平成14年(2002年)06月13日 (木)

    17) MAKE.boot.flp の説明と shell 手続きを修正
	修正日	平成14年(2002年)07月09日 (火)

    18) 「インストール MO ファイルの作成」の説明追加
    	修正日	平成14年(2002年)07月16日 (火)

    19) FreeBSD(98) 4.6.2R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
        修正日	平成14年(2002年)08月16日 (金)

    20) FreeBSD(98) 4.7R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
        修正日	平成14年(2002年)09月12日 (木)

    21) FreeBSD(98) 4.8R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
	修正日	平成15年(2003年)04月01日 (火)
	    CVSDIR の説明追加。

    22) FreeBSD(98) 5.1R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
	修正日	平成15年(2003年)06月03日 (火)

    23) FreeBSD(98) 5.2R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
	修正日	平成15年(2003年)12月15日 (月)

    24) patches.tar.gz を make.98release.tar.gz に含めた。
	修正日	平成16年(2004年)01月16日 (金)

    25) FreeBSD(98) 5.2.1R の「リリース用バイナリ/kern.flp, mfsroot.flp」を作
        成するシェル手続き
	修正日	平成16年(2004年)02月09日 (月)

    26) FreeBSD(98) 5.3R の「リリース用バイナリ/インストール FD」を作成す
        るシェル手続き
	修正日	平成16年(2004年)09月14日 (火)

    27) FreeBSD(98) 5.4R の「リリース用バイナリ/インストール FD」を作成す
        るシェル手続き
	修正日	平成17年(2005年)04月13日 (水)

    28) FreeBSD(98) 6.0R の「リリース用バイナリ/インストール FD」を作成す
        るシェル手続き
	修正日	平成17年(2005年)12月28日 (水)

    29) FreeBSD/pc98 6.1-RELEASE 「日本語インストーラ/インストール FD」
        るシェル手続き
	修正日	平成18年(2006年)05月29日 (月)

    30) FreeBSD/pc98 6.2-RELEASE 「日本語インストーラ/インストール FD」
        るシェル手続き
	修正日	平成19年(2007年)01月15日 (月)

以上.