diff options
| author | fukachan <fukachan> | 2001-04-23 15:25:45 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2001-04-23 15:25:45 +0000 |
| commit | 51a25a8685c8693b9df6d06fdb358b0d304c47b5 (patch) | |
| tree | 73932a907da4050d042a546a29dc23d6521e810c | |
| parent | 6c6349ddbbc72352ebdc7527a469a1a22a548edd (diff) | |
| download | fml8-51a25a8685c8693b9df6d06fdb358b0d304c47b5.tar.gz fml8-51a25a8685c8693b9df6d06fdb358b0d304c47b5.tar.bz2 fml8-51a25a8685c8693b9df6d06fdb358b0d304c47b5.zip | |
logs idea, announce
| -rw-r--r-- | fml/doc/ja/00_ANNOUNCE.txt | 113 | ||||
| -rw-r--r-- | fml/doc/ja/00_IDEA.txt | 269 |
2 files changed, 382 insertions, 0 deletions
diff --git a/fml/doc/ja/00_ANNOUNCE.txt b/fml/doc/ja/00_ANNOUNCE.txt new file mode 100644 index 00000000..a5db51d5 --- /dev/null +++ b/fml/doc/ja/00_ANNOUNCE.txt @@ -0,0 +1,113 @@ +これはあくまでも予備的なアナウンスです。リリースアナウンスではありません。 +#ソフトウエアデザイン4月号とシンクロしようとしてちょっとしませんでしたが;) + +--------->8--------->8--------->8--------->8--------->8--------->8--------->8 + + 次世代 fml プロジェクト + http://www.fml.org/devel/fmlsrc/index.ja.html + + Copyright (C) 2001 Ken'ichi Fukamachi + 改変しない限り再配布は自由です + + + +fml 5.0 への道(はるかなる道)について現在次のように構想しています。 +基本的な考え方は fml 4.0 の”機能”を再構想/再実装することです。 + +まず最初にしたいことは 4.0 の機能についての再検討です。例えば + + 5.0 へ引き継ぐものは何か? + 5.0 でもっとうまく、よりカスタマイズしやすいものに実装できないか? + もう要らないものは何か? + +についての意見を募集したいと思っています。ですが、漠然と議論してもしょ +うがないので、議論の叩き台としてある程度動くものを作りました。 + + ftp://ftp.fml.org/pub/fml-devel/ + +にあります。まだまだ 5.0 の α 版ではなく、プロトタイプですらないので、 +リリースなどではありません。これは、あくまでもアイデアを表現するための +ものですが、配送プログラムとしては十分動きます。fml-devel MLをはじめ +として、いくつか運用テストに入っているものがあります。 +#注: 実運用には fml-devel を使わずに 4.0 stable を使って下さい。 +# fml-devel は開発用 fml-current ですらありません。 + +現状動いている機能は + + fml 1.2 相当の最低限の機能 + + postfix スタイルの設定ファイル + + IPv6 + + チケットシステム(最小限の機能、CGI 含む) + + 抽象化 IO 層 + メンバーファイルをファイル、/etc/group, NIS, MySQL + から取り出す。 + # 3 行くらい変更すれば PostgreSQL も動くはず + +程度です。ざっくりとしたイメージは sendmail と postfix のような違いか +と個人的には思っています。 + + +○ fml 4.0 と 5.0 の関係 + +http://www.fml.org/devel/fmlsrc/fml/doc/purpose.ja.html + +4.0 と 5.0 はアイデアは継承していても、起源は別です。 +図解すれば次のようなものといえます。 + + -----------------------------> 5.0 (本プロジェクトの目標) + ↑↓交流 +1.2 〜 4.0 ------------------------------> 4.0-current + | | + 4.0.1 4.0.2 .... (リリース / 4.0-stable バージョン) + +今後 4.0 シリーズに投入する新機能は、原則として 5.0 ライン上で作ったも +のを逆輸入する形になるでしょう。 + + +○ fml5で既に動く機能 + +http://www.fml.org/devel/fmlsrc/fml/doc/built_already.ja.html + + +これらのものは /usr/local/libexec/fml以下にインストールされます。実際には +/usr/local/libexec/fml/loaderへのリンクです。起動される時の名前で振舞いを変 +えています。 + +注意: fml5ではすべてのプログラムは /usr/local/libexec/fml/loaderを経由して +起動されます。バージョン依存性を処理するために、つねにこの loaderを通して +起動していくことになっています。 ++------------------+--------------------------------------------------------+ +|fml.pl |配送処理をする。subjectを書き換える。スプールに記事とし | +|distribute |て溜める。IPv6をしゃべる。チケット番号をふる。et. al. | ++------------------+--------------------------------------------------------+ +|command |プログラム自体は動きますが、機能するコマンドはまだない | +|fml.pl --ctladdr |です。 | ++------------------+--------------------------------------------------------+ +|makefml |登録と削除関係、および最低限のMLの作成だけは動きます( | +| |add subscribe | +| |bye unsubscribe resign remove | +| |そして newml)。使い方は fml 4.0と一緒です。 | +| |% makefml add elenaアドレス | +| |% makefml bye elenaアドレス | +| |% makefml newml elena | ++------------------+--------------------------------------------------------+ +|makefml.cgi |makefmlの CGIインターフェイス。うごくけど、まだプロトタ | +| |イプ。動く機能は makefmlと同等のものです。それは最終的 | +| |に makefmlと同じ関数を呼び出しているからです。 | ++------------------+--------------------------------------------------------+ +|fmlconf |変数一覧を表示します | ++------------------+--------------------------------------------------------+ +|fmldoc |モジュールのマニュアルを表示する | +| |perldocへの wrapperです。 | ++------------------+--------------------------------------------------------+ +|fmlticket |現在のチケットシステムのサマリを表示する | +| |チケットの close | ++------------------+--------------------------------------------------------+ +|fmlticket.cgi |fmlticketの CGI版 | +| |チケットを closeする。あるチケットに該当する記事群を表 | +| |示する。 | ++------------------+--------------------------------------------------------+ +|mead |ま〜だだよ | ++------------------+--------------------------------------------------------+ +|fmlserv |ま〜だだよ | ++------------------+--------------------------------------------------------+ diff --git a/fml/doc/ja/00_IDEA.txt b/fml/doc/ja/00_IDEA.txt new file mode 100644 index 00000000..9fc59259 --- /dev/null +++ b/fml/doc/ja/00_IDEA.txt @@ -0,0 +1,269 @@ + + *** this is the original idea. + *** We save this for the future not to forget the original idea. + + + + fml5 project + +○ 基本理念 + + (仮称) fml5 == Fml Modular Listmanager based on perl 5 + (recursive definition) + + sendmail -> postfix 的な置き換えプログラム + 例えば + /etc/aliaes や .forward はそのまま使いつづけられる + しかし sendmail.cf は解釈しないといったイメージ + + /var/spool/ml + /var/spool/ml/ML名 + + という構造は残したいとおもうが、 + それ以外の互換性を保証するかはかなり不明 + + Q: ? ~ユーザ名/fml/ML名 + suEXEC みたいなものかい? + + ユーザが死にそうにいるサーバ上では uniqueness をチェッ + クするのがとても大変そう? + + +○ fml.pl は wrapper で + + /usr/local/libexec/fml/$VERSION/ ... + + LDAP とか SQL をしゃべれてほしいですな > Netscape + + +○ メインプログラムディレクトリ階層の例 + ( 現在の /usr/local/local/fml にあたるもの ) + ports, packages, RPM, .deb フレンドリィに(?) + + /usr/local/libexec/fml/ + + /usr/local/libexec/fml/distribute (配送プログラム) + /usr/local/libexec/fml/command (コマンド処理プログラム) + /usr/local/libexec/fml/mead (エラー解析) + /usr/local/libexec/fml/confirmd + + 注: --ctladdr はつかわない。できるだけ DO NOT PARSE + でないと機械的な処理がしにくいため + # 例えば CGI では include-ctl ファイルの編集の際 + s/distribute/command/g + するだけの方が楽などといった具合(?) + + /usr/local/libexec/fml/emul/ + + /usr/local/libexec/fml/emul/fml.pl + --ctladdr なしは /usr/local/libexec/fml/distribute を + --ctladdr つきは /usr/local/libexec/fml/command を実行する + + /usr/local/libexec/fml/emul/XXX + 例: emul/listserv + + + /usr/local/lib/fml/ + ドキュメントや perl module などをおく ? + + /usr/local/lib/fml/doc/text/ + /usr/local/lib/fml/doc/html/ + /usr/local/lib/fml/doc/sgml/ + /usr/local/lib/fml/doc/pod/ + /usr/local/lib/fml/doc/man/ + /usr/local/lib/fml/doc/jman/ + + /usr/local/lib/fml/lib/base/Proc.pm + /usr/local/lib/fml/lib/CPAN/Mail/ + /usr/local/lib/fml/lib/Jcode/Jcode.pm + /usr/local/lib/fml/lib/gnu/ + /usr/local/lib/fml/lib/3rdparty/ + + /usr/local/lib/fml/messages/ + /usr/local/lib/fml/makefml/ + + /usr/local/lib/fml/examples/ + /usr/local/lib/fml/examples/www/ + /usr/local/lib/fml/examples/databases/ + + /usr/local/lib/fml/contrib/ + + +○ 基本設定の例 + + ( makefml が使うため, virtual domain/host を考慮する ) + + /etc/fml/$domain/fml.cf + /etc/fml/$domain/cgi.cf + + こうすれば + # makefml newml elena@fml.org + # makefml newml elena@nuinui.net + といった操作でバーチャルドメインの場合に簡単にできないか? + + elena ML + /var/spool/ml/elena/設定ファイル (仮称: config.cf ) + # もっと良い名前募集中 + + + :include:/var/spool/ml/elena は + + "| /usr/local/libexec/fml/distribute /var/spool/ml/elena" + + :include:/var/spool/ml/elena-ctl は + + "| /usr/local/libexec/fml/command /var/spool/ml/elena" + + を呼び出す。 + + Q: 実は実体は1つで、$0 で処理が分かれるようにしていてもよい + + +○ 再利用可能性 + + たとえば confirmation module の例 + + subscribe エンジン ---> confirmation module + モデレータ ---> confirmation module + confirmd ---> confirmation module + + /usr/local/lib/fml/lib/base/Confirm.pm + + +○ 設定ファイル + + 問題点 + perl でかくと parser がかけない(perl が柔軟過ぎるから) + 1/0 はいやん、yes/no のほうがまし + 配列が表現できない + 型チェックをしたいのだが… + + + config.cf の例 # 段落区切り ( postfix とおなじ形式で ) + + # これは自動設定されるはず + # myhomedir = /var/spool/ml/elena + + myfqdn = ahodori.fml.org + mydomain = fml.org + + mail_list = elena@$mydomain + control_address = elena-ctl@$mydomain + + # メンバーリスト関係 + members_maps = $myhomedir/members + admin_members_maps = $myhomedir/members-admin + + # definition of recipients: fml uses recipient lists in this order + # [a-z]+: のうち file: だけは省略しても良い + # これで配列の表現ができる + recipients_maps = $myhomedir/recipients + file:$myhomedir/actives + mysql:$sysconfdir/mysql.cf + + + # makefml add の際にはどの maps をアップデートするか? + # たとえばファイルに追加であって、mysql へではない + # XXX この名前づけルールは良くないと思う > postfix + # XXX もっとよい名前を + recipient_database = $myhomedir/recipients + + + # かならず use_* と *_type がこんび(か?) + use_verps = yes + verps_type = qmail + + + # 配送モード ( REJECT_POST_HANDLER をやめよう ) + # distribute_mode = forward + distribute_mode = forward_if_moderator_allow + + # $PERMIT_POST_FROM + allow_post_from = reject_system_accounts + members_only + reject + + # $PERMIT_COMMAND_FORM (?) + allow_command_from = reject_system_accounts + members_only + ignore + + # + distribute_restrictions = reject_system_accounts + members_only + reject + + command_restrictions = reject_system_accounts + members_only + reject + + + # 逆にモデレータ は use_moderator (にすると変な例?) + use_moderator = yes + moderator_type = otp + moderator_maps = $myhomedir/moderators + + # LDAP + LDAP::HOST = + LDAP::PORT = + + + +○ フック? + + 別案1 + + # hooks + hooks = $myhomedir/hooks.ph + + 別案2 + + =head1 configurations + + postfix スタイル(なんですよ、これは) + + =head1 hooks + =cut + + # 現在の LOCAL_CONFIG で別れ目になる行 + # HOOK + + +○ 多国語化 + + 「developpers はメッセージの他国語化は前提にしてくれればいいだ + けで、べつに英語の見本を書かなくてもいいですよ〜ん」 + + この時代、日本人が運用していてもその ML のメンバーが外国人のば + あいはあります。だからサポートしたいです。 + + また、IETF では来年あたりに、エラーメッセージなどの多国語化問 + 題とかあるので、MLM (MTA もどき)であっても、多国語かは必要とお + もいます。#なにをもってえらーめっせーじかによりますけど… + + +○ 設定ファイルのロード順 + + + 現在の cf ですら設定してる項目が多すぎる + 「実はこんな項目もconfig.phで設定されちゃっているのね」はだめ + + あどれす + POST_RESTRICTION + COMMAND_RESTRICTION + REGISTRATION_TYPE auto_confirmation (とかか?) + + 以外はデフォルトのままにしたいなぁ。 + ぼく、差分だけが一画面くらいあるだけなのが希望ですぅ。 + + ということは + + use FML::LoadConfig; + my $rcf = new FML::LoadConfig; + $rcf->load( /usr/local/fml/lib/$VERSION/etc/default_config.cf ); + $rcf->load( /etc/fml/$DOMAIN/default_config.cf ); + $rcf->load( /var/spool/ml/elena/config.cf ); + + とかいうローディングをしないといけないような気がする + + * メニューで明示的に変更すると、それだけは新たに付け加わる > config.cf |
