<!-- -*- mode:text coding:euc-jp -*-
   $FML: chapter.sgml,v 1.5 2008/08/16 00:26:19 fukachan Exp $
-->


<chapter id="changes">
	<title>
	&fml4; と &fml8; の相違
	</title>


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


<sect1 id="changes.overview">
	<title>
	&fml4; と &fml8; の違い: イメージ
	</title>

<para>
&fml4; vs &fml8; は sendmail vs postfix に相当する。
</para>

<para>
作者の視点から見れば、これがもっとも短い説明と考えます。
</para>

</sect1>


<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>

<para>
もしライセンスをクリアにしたい場合は、必要な代替モジュールを用意し、
インストーラの設定を変えて出荷してください。
</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 です。
</para>

<para>
&fml4; の設計された時代は Unix が普通でしたが、その後のインターネット
の発展は、さまざまな OS や環境を登場させてきました。
インターネットの転送能力も桁違いに高速・大容量化しました。
4〜5 倍くらい効率が悪いとは思いますが、
標準化されている MIME/Multipart 以外を使うと
「読めない」ユーザが続出するでしょう。
</para>

<para>
ユーザからのクレーム対応のほうが負担といえます。よって
&fml4; にあった tar.gz や zip 形式などを実装する予定はありません。
</para>

</sect1>


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

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

<para>
動作時の表示の仕方も異なります。&fml8; のほうが Unix 的です。
</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 のスクリプトも自動的に生成されます。
これは下準備をするだけです。
実際に WWW インターフェイスを使う際には
apache の設定変更が別途必要で、これは &fml4; と一緒です。
知らない間にインターネットから勝手に GUI でいろいろできるようになって
いたら、びっくりするでしょうから、これは良いですよね？
</para>

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

<para>
将来の課題としては、GUI の見栄え(スキン)を選べるようにするなども考えな
くてはいけないでしょう。一応、今、実行ファイル名ごとに異なる複数のスキ
ンがあるのですが、動的に切替えることが現状出来ません(出来てないことは
ないのですが、現状、そのスキン設定を保存してないので、次回アクセスする
と元に戻っちゃいます;-)。
いや、部分的に出来るかな？いずれにせよ、ここは中途半端です。
</para>

</sect1>


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

<para>
ファイル名の命名ルールについては
<link linkend="filename">
<xref linkend="filename">
</link>
を参照して下さい。
</para>

<para>
&fml4; から &fml8; に移行する際には、
自動変換ツールが頑張って、よろしくファイル名の変更をする手はずになって
います。
手作業で変換することは、まずないとおもいますが、
以下に &fml4; と &fml8; のファイル名ルールの差分を述べます。
</para>

<para>
ＭＬのディレクトリを見る時に役に立つでしょう。
</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>
