<!--
   $FML: fml.sgml,v 1.3 2002/07/07 01:57:12 fukachan Exp $
-->

<chapter id="overview.fml">
	<title>
	&fmldevel; の概要
	</title>


<!-- ======================================================== -->
<sect1 id="overview.fml8">
	<title>
	&fmldevel; でできること
	</title>

<para>
&fml4; の再実装にあたっての山場はすでに越えたと思います。
でも、こまごまとしたものはいろいろと残っていますが…
</para>

<para>
    <itemizedlist>


    <listitem>
	<para>
	設定ファイル形式が新しくなりました。
	今度は postfix 風の設定ファイルです。
	</para>
    </listitem>


    <listitem>
	<para>
	makefml によるコマンド操作は &fml4; と同様です:
		ＭＬの作成/削除、
		メンバーの登録/削除/変更(chaddr)、
		リモート管理者の登録/削除、
		ログを見る、
		メンバーリストを見る、
		他。		
	</para>
    </listitem>

    <listitem>
	<para>
	CGI による操作:
		ＭＬの作成/削除、
		メンバーの登録/削除/変更(chaddr)、
		リモート管理者の登録/削除、
		ログを見る、
		メンバーリストを見る。
	</para>
    </listitem>


    <listitem>
	<para>
	配送、
	ヘッダの書き換え、
	フィルタ( 4.0 の Envelope Filter と Content Filter に相当するもの )。
	</para>
    </listitem>

    <listitem>
	<para>
	コマンドメール(一般ユーザ):
		メンバーの登録/削除/変更(chaddr)、
		リモート管理者の登録/削除、
		ログを見る、
	</para>
    </listitem>

    <listitem>
	<para>
	コマンドメール(リモート管理者):
		メンバーの登録/削除/変更(chaddr)、
		リモート管理者の登録/削除、
		ログを見る、
	</para>
    </listitem>


    <listitem>
	<para>
	エラーメールの自動解析
	</para>
    </listitem>


    <listitem>
	<para>
	IPv6 による配送
	</para>
    </listitem>


    <listitem>
	<para>
	スレッド追跡システム(CUI と CGI を含む):
	(fmlthread fmlthread.cgi)
	</para>
    </listitem>


    <listitem>
	<para>
	記事の HTML 化(デフォルトで HTML 版も作る):
	fmlhtmlify および makefml に HTML 化コマンドがあります。
	</para>
    </listitem>


    <listitem>
	<para>
	MTA が起動するメインのプログラム:
	fml.pl distribute command error
	</para>
    </listitem>


    <listitem>
	<para>
	管理を支援するユーティリティ:
	fmladdr
	fmlailas
	fmlconf
	fmldoc
	fmlhtmlify
	fmlsch
	makefml
	fml
	</para>
    </listitem>


    <listitem>
	<para>
	<link linkend="module.io.adapter">
	抽象化 IO 層
	</link>
	メンバーファイルをファイル、/etc/group, NIS, MySQL
	から取り出すことができます。
	</para>
    </listitem>
    </itemizedlist>
</para>

</sect1>


<!-- ======================================================== -->
<sect1 id="overview.fml8.install">
	<title>
	インストール作業の概略
	</title>


<important>

<para>
インスール方法は GNU autoconf を使うデファクトスタンダードなものとなっ
ています。&fml4; にあまり似ていません。ですが、OS 附属のパッケージシス
テムなどにはやさしくなっているといえるでしょう。
</para>

<para>
インストールにおける主な注意点/&fml4;との相違点は、
「root での作業」、
「configure の使用」、
そして /usr/local/etc/fml/ 以下のファイル、
特に 
/usr/local/etc/fml/main.cf 
および
/usr/local/etc/fml/site_default_config.ph
というグローバルな設定ファイルの編集などです。
</para>

</important>


<para>
さて、いつものように elena ＭＬ(elena@fml.org)の作成過程を例にとりましょ
う。インストールのおおまかな流れは次のようになります。
</para>


<orderedlist>
   <listitem>
	<para>
	<link linkend="download">
	ソースをダウンロードして、展開して下さい。
	</link>
	</para>
   </listitem>

   <listitem>
	<para>
	<link linkend="install.fml.unix">
	ユーザ root でインストールをします。
	ユーザ root になったら、
	まずはユーザ fml とグループ fml を作成します。
	その後、
	<link linkend="install.fml.unix.configure">
	configure
	</link>
	および make install を実行して下さい。
	</link>
<screen>
% su root
# groupadd fml
# useradd -m -g fml fml
# ./configure
# make install
</screen>
	</para>

	<para>
	(デフォルトでは)インストーラは /usr/local/bin
		<footnote>
		<para>
		デフォルトでは /usr/local ディレクトリ以下に
		適宜サブディレクトリが作られます。
		<link linkend="install.fml.unix.configure">
		configure のオプション
		</link>
		で変更が可能です。
		</para>
		</footnote>
	に makefml や fmldoc など fml で始まるユーティリティプログラム
	群をインストールします。実は、これらは
	/usr/local/libexec/fml の下の実体を呼び出す単なる wrapper です。
	</para>
   </listitem>


   <listitem>
	<para>
	<link linkend="guide.newml">
	ユーザ fml で elena ＭＬを作る。
	</link>
<screen>
% su fml
% makefml newml elena
</screen>
もしくは fml コマンド(後述)を使って
<screen>
% su fml
% fml elena newml
</screen>
でも OK になりました。
	</para>
   </listitem>


   <listitem>
	<para>
	MTA から fml を起動するために
	MTA の設定をしてください。
	</para>
   </listitem>


   <listitem>
	<para>
	ＭＬ の動作テストをしてください。
	</para>
   </listitem>


   <listitem>
	<para>
	<link linkend="guide.config.cf">
	ＭＬ のカスタマイズをする。
	</link>
	</para>
   </listitem>

</orderedlist>

<warning>
<para>
&fml4; と異なり root でインストールすることに注意して下さい。
</para>
</warning>

</sect1>


<!-- ============================================================= -->
<sect1 id="guide.newml">
	<title>
	ＭＬを作る
	</title>

<para>
makefml を使ってＭＬを作成します。
デフォルトのドメイン(例: fml.org)の場合、
makefml の使い方は &fml4; の時と同様です。
elena@fml.org ＭＬを作るには
<screen>
% su fml
% makefml newml elena
</screen>
とします。
詳しくは
<link linkend="setup.newml">
<xref linkend="setup.newml">
</link>
を参照してください。
</para>

<para>
一方、バーチャルドメイン(nuinui.net)の場合は、
ＭＬのアドレスを全部指定して下さい。
たとえば elena@nuinui.net を作る場合は、次のように実行します。
<screen>
% su fml
% makefml newml elena@nuinui.net
</screen>
</para>

</sect1>


<!-- ============================================================= -->
<sect1 id="guide.subscribe">

   <title> ＭＬのメンバーを登録する </title>

<para>
デフォルトのドメイン(例: fml.org)の場合は、
<screen>
% su fml
% makefml subscribe elena rudo@nuinui.net
</screen>
で構いません。
一方、バーチャルドメイン(nuinui.net)の場合は、
ＭＬのアドレスを全部指定して下さい。
<screen>
% su fml
% makefml subscribe elena@nuinui.net fukachan@sapporo.iij.ad.jp
</screen>
</para>

</sect1>


<!-- ============================================================= -->
<sect1 id="guide.unsubscribe">

   <title> ＭＬのメンバーから削除する </title>

<para>
デフォルトのドメイン(例: fml.org)の場合は、
<screen>
% su fml
% makefml unsubscribe elena rudo@nuinui.net
</screen>
で構いません。
一方、バーチャルドメイン(nuinui.net)の場合は、
アドレスを全部指定して下さい。
<screen>
% su fml
% makefml unsubscribe elena@nuinui.net fukachan@sapporo.iij.ad.jp
</screen>
</para>

</sect1>


<!-- ============================================================= -->
<sect1 id="guide.config.cf">
	<title>
	ＭＬの設定のカスタマイズ
	</title>

<warning>
<para>
まだ makefml config は使えません。ごめんなさい。
ファイルを手で編集して下さい。
</para>
</warning>


<sect2>
	<title>
	そのホスト共通の設定
	</title>

<para>
/usr/local/etc/fml/site_default_config.cf
はこのホストで動く fml すべてに影響を与えます。
<footnote>
<para>
これは &fml4; の site_init.ph に相当するものです。
</para>
</footnote>
</para>

<para>
site_default_config.cf のフォーマットは、config.cf (後述)と同様で、
指定できる変数も config.cf と同じです。
全変数のリストは default_config.ph (後述)を見て下さい。
</para>

</sect2>


<sect2>
	<title>
	elena ＭＬの設定
	</title>

<para>
elena ＭＬの設定のカスタマイズは 
/var/spool/ml/elena/config.cf
を編集して下さい。
フォーマットは postfix の設定ファイルと同様です(&fml4; の config.ph よ
りは cf にやや近いですが、フォーマットが違うことに変わりはない)。
</para>

<para>
適宜、必要な項目だけを追加して下さい。
指定しない場合はデフォルト値が使われます。
デフォルト値はインストールしたバージョンに依存しており、
<screen>
/usr/local/etc/fml/defaults/バージョン番号/default_config.cf
</screen>
というファイル中で定義されています。
これは perl のライブラリが /usr/local/lib/perl/5.00503/ のように
バージョン番号付のディレクトリに置かれるのと似ています。
</para>

<para>
また、ライブラリなどのインストール先も fml のバージョンごとに
別のディレクトリになっていることに注意して下さい。
<link linkend="bootloader">
この仕組み
</link>
のおかげでアップグレードしても元に戻すのが簡単です。
これは &fmldevel; の特徴です。
</para>

</sect2>

</sect1>


</chapter>
