&fml8; の概要
なお、&fml4; と &fml8; の相違点についての詳細は、
を参照して下さい。
&fml8; で出来ること
&fml4; の再実装にあたっての山場は越えたと思います。
メニュー関連項目以外は RC (Release Candidate) の気分です。
設定ファイル形式が新しくなりました。
今度は
Postfix 風の設定ファイル
です。
シェル上でのコマンド(makefml なしいは fml)による操作
は &fml4; と同様です:
MLの作成/削除、
メンバーの登録/削除/変更(chaddr)、
リモート管理者の登録/削除、
ログを見る、
メンバーリストを見る、
他が実行できます。
CUI の使い方の相違点については
『』
を参照して下さい。
なお、CUI による設定変更は、まだ予備的な段階ですが、動きます。
GUI (CGI) による操作:
MLの作成/削除、
メンバーの登録/削除/変更(chaddr)、
リモート管理者の登録/削除、
ログを見る、
メンバーリストを見る。
設定ファイルの編集機能が実装途中です。
配送、
ヘッダの書き換え、
フィルタ( 4.0 の Envelope Filter と Content Filter に相当するもの )。
コマンドメール(一般ユーザ)
メンバーの登録/削除/変更(chaddr)、
サマリを見る、
過去の記事を取り寄せる。
コマンドメール(リモート管理者):
メンバーの登録/削除/変更(chaddr)、
リモート管理者の登録/削除、
ログを見る。
エラーメールの自動解析
、エラーになるアドレスの自動削除。
SPAM メールの隔離 (2008/08/17 以降)
IPv6 による配送。
スレッド追跡システム(CUI と CGI を含む):
一度、作ったのですが、最初のバージョンは削除され、
2004/03 に総書き直しされました。
記事の HTML 化(デフォルトで HTML 版も作る):
デフォルトで作っています。別途、
fmlhtmlify および makefml に HTML 化コマンドもあります。
MTA が起動するメインのプログラム:
distribute command error
管理を支援するユーティリティ:
fmladdr
fmlailas
fmlconf
fmldoc
makefml
fml
&fml4; エミュレーション:
&fml4; の fml.pl と &fml8; の fml.pl を入れ換えるだけで
&fml8; に移行できるようにしました。
注意: ただし、代表的な機能だけで、
全機能に対する互換性があるわけではありません。
2004 夏以降: 配送キュー管理システムにより再送処理。
事実上 &fml8; は MTA です。
抽象化 IO 層
メンバーリストなどの取り扱いにおいて、
ファイル、/etc/group、 NIS、MySQL、PostgreSQL、LDAP などを
同列にあつかいます(設定ファイルに追加設定は必要)。
インストール作業の概略
インスール方法は
GNU autoconf を使うデファクトスタンダード(configure そして make)
なものとなっています。
&fml4; にあまり似ていません。
ですが、OS 附属のパッケージシステムとの親和性は高くなりました。
&fml8; のインストールにおける主な注意点(&fml4;との相違点)は、
「root での作業」、
「configure の使用」、
「/usr/local/etc/fml/ 以下にあるファイルの編集」
です。
&fml8; の
/usr/local/etc/fml/
以下のファイル群は
&fml4; の
/usr/local/fml/.fml 以下のファイル群
および
/usr/local/etc/fml/site_default_config.ph
などに相当していますが、必ずしも一対一対応しているわけではありません。
さて、いつものように
Unix 上で elena ML(elena@fml.org)を作成するケースを例にとりましょう。
インストールのおおまかな流れは次のようになります。
ソースをダウンロードして、展開して下さい。
ユーザ root でインストールをします。
ユーザ root になったら、
まずはユーザ fml とグループ fml を作成します。
その後、
configure
その後
make install を実行して下さい。
% su root
# groupadd fml
# useradd -m -g fml fml
# ./configure
# make install
デフォルトでは /usr/local ディレクトリ以下に
4.4 BSD 風のサブディレクトリが作られます。
ディレクトリパスは
configure のオプション
で変更可能です。
デフォルトでは、
メインの MTA から呼ばれるプログラムを /usr/local/libexec/fml/ 以下へ、
makefml や fmldoc など
fml で始まるユーティリティプログラムを /usr/local/bin 以下に、
インストールします。
実のところ、
これらは
/usr/local/libexec/fml の下の実体を呼び出す単なる wrapper です。
ユーザ fml で elena MLを作る。
% su fml
% makefml newml elena
もしくは fml コマンド(後述)を使って
% su fml
% fml elena newml
でも同じ意味です(注意: fml コマンドは &fml8; にしかありません)。
MTA から &fml8; の配送プログラムなどを起動するために、
MTA の設定をしてください。
ML の動作テストをしてください。
ML のカスタマイズをしてください。
&fml4; と異なり、
ユーザ root でインストール作業をすることに注意して下さい。
MLを作る
makefml コマンドを使ってMLを作成します。
デフォルト・ドメイン(例: fml.org)の場合、
makefml の使い方は &fml4; の時と同様です。
elena@fml.org MLを作るには
% su fml
% makefml newml elena
とします。
詳しくは
を参照してください。
一方、
バーチャルドメイン(nuinui.net)
の場合は、MLのアドレスをすべて指定して下さい。
たとえば elena@nuinui.net を作る場合は、次のように実行します。
初回
% su root
% makefml newdomain nuinui.net /some/where/nuinui.net
% su fml
% makefml newml elena@nuinui.net
二回目以降
% su fml
% makefml newml elena@nuinui.net
最近では、一人で複数のドメインを持つことはありふれていますので、
全MLをバーチャルドメインとして作成するほうが、
統一感のある運用方式になると思われます。
実際 fml.org 自身もそのような運用方式です。
バーチャルドメイン(nuinui.net)のMLを作る場合、最初の一回目には、
「そのドメインを使う」ための宣言(おまじない?)が必要です。
くわしくは
を参照して下さい。
MLのメンバーを登録する
デフォルトのドメイン(例: fml.org)の場合は、
% su fml
% makefml subscribe elena rudo@nuinui.net
でOKです(elena だけでOK、つまり @fml.org なしでもOK)。
一方、バーチャルドメイン(nuinui.net)の場合は、
MLのアドレスをすべて指定してください。
% su fml
% makefml subscribe elena@nuinui.net fukachan@sapporo.iij.ad.jp
MLのメンバーから削除する
デフォルトのドメイン(例: fml.org)の場合は、
% su fml
% makefml unsubscribe elena rudo@nuinui.net
でかまいません。
一方、バーチャルドメイン(nuinui.net)の場合は、
アドレスをドメインまで含めてすべて指定してください。
% su fml
% makefml unsubscribe elena@nuinui.net fukachan@sapporo.iij.ad.jp
ML設定のカスタマイズ
makefml config は実装途中で、まだイマイチです。ごめんなさい。
いまは、まだ config.cf ファイルを手動で編集して下さい。
そのホスト共通の設定
/usr/local/etc/fml/site_default_config.cf
は、このホストで動く &fml8; すべてに影響を与えます。
これは &fml4; の site_init.ph に相当するものです。
&fml4; では次のように設定ファイルを読み込んでいきます。
InitConfig {
SetDefaults { ... };
LoadConfig {
include default_config.ph;
include site_init.ph;
include config.ph;
include site_force.ph;
include sitedef.ph;
}
}
&fml8; では
/usr/local/etc/fml/$fml_version/default_config.cf
/usr/local/etc/fml/site_default_config.cf
/usr/local/etc/fml/domains/$DOMAIN/default_config.cf
/var/spool/ml/elena/config.cf
のようになっています。
site_force.ph に対応するファイルがありませんが、
困ってもいないので、
作る予定はありません。
site_default_config.cf のフォーマットは、config.cf (後述)と同様で、
指定できる変数も config.cf と同じです。
全変数のリスト
も参照して下さい。
elena MLの設定
elena MLの設定のカスタマイズは
/var/spool/ml/elena/config.cf
を編集することで行ないます。
config.cf のフォーマットは Postfix の設定ファイル
とかなり似ています
(&fml4; の config.ph よりは &fml4; の cf にやや近いですが、
フォーマットが違うことに変わりはない)。
&fml8; で HOOK (perl script)を書く場合は、
(perl script ファイルのように)
/var/spool/ml/elena/config.cf
ファイルの =cut 行以下に書いて下さい。
=cut 行より上には設定( 変数 = 値 )を書いて下さい。
適宜、必要な項目だけを追加して下さい。
指定しない場合はデフォルト値が使われます。
デフォルト値はインストールしたバージョンに依存しており、
/usr/local/etc/fml/defaults/バージョン番号/default_config.cf
というファイル中で定義されています。
これは perl のライブラリが /usr/local/lib/perl/5.00503/ のように
バージョン番号付のディレクトリに置かれるのと少し似ています。
また、ライブラリなどのインストール先も fml のバージョンごとに
別のディレクトリになっていることに注意して下さい。
この仕組み
のおかげでアップグレードしても瞬時にダウングレードできます。
これは &fml8; の特徴です。
§.overview.fml.recipes;