<!--
   $FML: chapter.sgml,v 1.3 2004/10/06 09:07:33 fukachan Exp $
-->


<chapter id="changes">
	<title>
	fml4 と fml8 の違い
	</title>


<para>
本章では、fml4 と fml8 の違いについて解説します。
</para>

<para>
fml4 vs fml8 は sendmail vs postfix にあたるというのが直観的な捉え方で
す。
</para>


<sect1 id="changes.license">
	<title>
	fml4 と fml8 の違い: ライセンス
	</title>

<para>
大雑把に言えば、fml8 のソースコードは GPL か BSD 準拠、もしくは 
Artistic のいづれかになっているはずです。
</para>

<para>
fml4 は、ほとんどのコード(.plのもの)が独自に書かれています。このライセ
ンスは GNU Public License です。jcode.pl が例外で、詳しくは jcode.pl
の先頭部分のライセンスを参照して下さい。
また、perl module (.pm) も使われており、それはソースツリーの module/
の下に入っています。この下のライセンスも各モジュールに従います。
</para>

<para>
fml8 では、ソースツリーがプロジェクトもしくはライセンスごとに分かれて
いますので、各分類ごとのライセンスにしたがうことになります。fml8 用に
書かれたコードは fml/ 以下にあり、Artistic License となっています。
cpan gnu はその名の通りです。img は BSD ライセンス準拠です。詳しくは、
それぞれのライセンスを読んで下さい。
</para>

<para>
ディレクトリごとに分かれているため、
特定のライセンスのコードを排除することも(原理的には)容易です。
</para>

<para>
fml8 は、インストール時に、これらすべてをインストールしてしまいますの
で、インストールした先ではライセンスがいり乱れていますので注意して下さ
い。もしライセンスをクリアにしたいなら必要な代替品を用意してインストー
ル手順を変える必要があります。
</para>

</sect1>


<sect1 id="changes.command.mail">
	<title>
	fml4 と fml8 の違い: コマンドメールやエラーメッセージ
	</title>

<para>
コマンドメールやエラーメールといったメールでの返事の際には、
元メールの Accept-Language などを参考に言語の自動選択が行なわれます。
詳しくは
<link linkend="language.preference">
<xref linkend="language.preference">
</link>
を参照して下さい。
</para>

<para>
ファイルやメッセージを送り返す際の基本形式は MIME/Multipart です。
また、現在、tar.gz や zip 形式などは未サポートです。
</para>

</sect1>


<sect1 id="changes.cui">
	<title>
	fml4 と fml8 の違い: コマンドラインでの操作 (makefml)
	</title>

<para>
makefml とシンタックスの異なる fml というコマンドがあります。
<screen>
makefml コマンド ＭＬ名 オプション
fml     ＭＬ名 コマンド オプション
</screen>
違いはＭＬ名とコマンドの順番だけで、実行される内容は全く一緒です。
</para>

<para>
fml4 のコマンドは、可能な限り、処理の様子を表示し、最後に処理の変更点
を表示するようになっています。逆に、fml8 のコマンドは、できるだけ静か
に動きます。
<footnote>
<para>
逆に、makefml/fml を他のスクリプトから呼び出す場合には、コンピュータ処
理向きの出力をさせるようにすることが出来ます。これは、けっこう出力され
るものが多く五月蝿いです。
</para>
</footnote>
これは、そのほうが UNIX 風だということと、必ずしも操作対象がファイルと
は限らないため差分が表示できるわけではないなどといったことがあるためで
す。
</para>

<para>
makefml から実行される各コマンドの相違点は以下の通りです。

  <table>
    <title>
    fml4 と fml8 の違い: CUI (makefml もしくは fml コマンド)
    </title>

    <tgroup cols=3>

      <thead>
        <row>
          <entry> 内容	</entry>
          <entry> fml4	</entry>
          <entry> fml8	</entry>
        </row>
      </thead>

      <tbody>
	<!-- テーブル本体スタート -->
	&table.changes.cui;
	<!-- テーブル本体エンド -->
      </tbody>

    </tgroup>
  </table>
</para>

</sect1>


<sect1 id="changes.gui">
	<title>
	fml4 と fml8 の違い: GUI (CGI)
	</title>

<para>
&fml4; の場合、インストール後に、あらためて GUI が使う .cgi スクリプト
の生成や apache のセットアップをする必要があります。
</para>

<para>
&fml8; では、newml 実行時に、GUI のスクリプトは用意されます。
しかしながら、apache の設定変更などは別途必要です。
</para>

<para>
インターフェイスの相違は、かなりあります。
&fml4; は割と伝統的なベタベタな作りです。
一方、&fml8; ではテーブルベースのものになっています。
</para>

<para>
将来の課題としては、GUI のスキンを選べるようにするなども考えなくてはい
けないでしょう。一応、今、実行ファイル名ごとに異なる複数のスキンがある
のですが、動的に切替えたり出来ません。
</para>

</sect1>


<sect1 id="changes.filename">
	<title>
	ファイル名のルール
	</title>

<para>
ファイル名の命名ルールについての詳細は
<link linkend="filename">
<xref linkend="filename">
</link>
を参照して下さい。
いずれにせよ、
&fml4; から &fml8; に変換するツールが頑張って、よろしくファイル名の変
更などはしてくれるはずなので、手作業で変換することはないとおもいます。
しかしながら、読む時に困るでしょうから、ここで差分を書いておきます。 
</para>

<para>
受信者とメンバーリストを別々に管理するという方針は変わりませんが、
ファイル名は異なります。
</para>

<para>
ファイル名は基本的に「ベースとなるファイル名-役割」です。
役割がデフォルトの「単なるユーザ」であれば省略可です。
</para>

<para>
actives は recipients となり、ファイルの意味が明瞭になりました。
一方、members はそのままです。
</para>

<para>
members-admin は、そのままです。
仮想的に recipients-admin ファイルもありますが、いまは使われてはいません。
</para>

<para>
etc/passwd は etc/passwd-admin になり、フォーマットも若干変わりました。
</para>

</sect1>


</chapter>
