<!--
   $FML: cvstree.sgml,v 1.8 2002/07/06 14:55:16 fukachan Exp $
-->

<appendix id="cvs.dirhier">
	<title>
	cvs repository の構造
	</title>


<!-- ===================================================== -->
<sect1 id="cvs.dirhier.summary">
	<title>
	ソースツリーの構造の概要
	</title>

<para>
&fmldevel; の基本方針として、使えるもの(例えば CPAN )は片っ端から使い
ます。そうしないと、自分で保守するべき項目が増えるだけだからです。
</para>

<para>
また、保守する人とライセンスをはっきり区別するためにベンダーごとにディ
レクトリを分けています。例えば CPAN で保守されているものは CPAN/ ディ
レクトリ以下に入れています。ライセンスなどによっては、将来さらに区分を
分ける必要が出てくるかも知れません。
</para>

<para>
CPAN/ や 3rdparty/ 以下のモジュールを変更したい場合は fml/ 以下で、な
んらかのラップをするか、パッチをオリジナルに反映してもらって CPAN/以下
をアップデートをすることが望ましいやり方です。CPAN/lib/ に直接変更を加
えることもあります。CPAN/dist/ はオリジナルを保存する場所なので、変更
してはいけません。
</para>

<para>
なお site_local/ はそのサイト独自の module を置くディレクトリと定義さ
れています。つまり fml プロジェクトとは無関係です。
</para>

</sect1>


<!-- ===================================================== -->
<sect1>
	<title>
	CVS のディレクトリ構造
	</title>

   <sect2>
	 <title> / 以下のディレクトリ構造 </title>

	<table>
	 <title> / 以下のディレクトリ構造 </title>
	 <tgroup cols=2>

	  <thead>
		<row>
		<entry>	ベンダー名
		</entry>
		<entry>	そのディレクトリにおくモジュールの説明
		</entry>
		</row>
	   </thead>

	  <tbody>
		<row>
		<entry>
			Documentation/
		</entry>
		<entry>
			ドキュメントとして公開する場所。

			ベンダー境界を越えて混ざりうるので
			このディレクトリが創設されました。
		</entry>
		</row>

		<row>
		<entry>	fml/
		</entry>
		<entry>	&fmldevel; プロジェクト直轄
		</entry>
		</row>

		<row>
		<entry>	cpan/
		</entry>
		<entry>	CPAN で保守されているもの

			この下のモジュールについては CPAN の説明の通り。
			単に標準モジュールでないため、ないしは
			&fmldevel; のバージョン管理や保守のために、ここに収容。

			なお
			cpan/dist/
			に輸入したモジュールの元パッケージ全体をおき、
			cpan/lib/
			にライブラリを正しいクラス階層にあうように置きます。
		</entry>
		</row>

		<row>
		<entry>	img/
		</entry>
		<entry>
		Internet Message Group
		(IM は解散したが、保守を引き継いだ偉い人がいるので OK。
		IMG じゃないけど IMG という名前のまま使うことにする)
		</entry>
		</row>

		<row>
		<entry> 	3rdparty/
		</entry>
		<entry>	サードパーティ用(予約)

			予約されているだけで、
			&fmldevel; プロジェクトとしては使いません。
		</entry>
		</row>


		<row>
		<entry> 	site_local/
		</entry>
		<entry>
			デフォルトでは CVS ツリー内にはありません。
			そのサイト独自に保守したいモジュールをおくための
			ディレクトリ。
			名前を予約されているだけで、
			&fmldevel; プロジェクトとしては使いません。
		</entry>
		</row>

	   </tbody>
	 </tgroup>
	</table>
   </sect2>

   <sect2>
	<title> fml/ 以下 </title>

	<table>
	 <title> cvs tree の fml/ 以下のディレクトリの説明 </title>

	 <tgroup cols=2>

	   <thead>
		<row>
		<entry> ディレクトリ	</entry>
		<entry> 説明		</entry>
		</row>
	   </thead>

	   <tbody>
		<row>
		<entry>	fml/bin/	</entry>
		<entry> /usr/local/bin/ にインストールするプログラム </entry>
		</row>

		<row>
		<entry>	fml/doc/	</entry>
		<entry> Documentation/ のソース	</entry>
		</row>

		<row>
		<entry>	fml/etc/	</entry>
		<entry> 設定ファイルやテンプレート群 </entry>
		</row>


		<row>
		<entry>	fml/lib/ 		</entry>
		<entry>	perl モジュール群	</entry>
		</row>


		<row>
		<entry> 	fml/libexec/ 	</entry>
		<entry>
			実行されるプログラムの実体。
			すぐにモジュールを
			呼び出すので、正確には wrapper です。
			重要なのは loader だけです。
		</entry>
		</row>

		<row>
		<entry>	fml/share/ 		</entry>
		<entry>	メッセージのテンプレートなど	</entry>
		</row>

		<row>
		<entry>	fml/utils/	</entry>
		<entry> ユーティリティですが、
			これは開発者が fml のソース内で使うだけのものです。 
			インストール対象にはなりえません。
		</entry>
		</row>
	   </tbody>

	 </tgroup>
	</table>
   </sect2>

</sect1>

</appendix>
