summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-04-23 15:25:45 +0000
committerfukachan <fukachan>2001-04-23 15:25:45 +0000
commit51a25a8685c8693b9df6d06fdb358b0d304c47b5 (patch)
tree73932a907da4050d042a546a29dc23d6521e810c
parent6c6349ddbbc72352ebdc7527a469a1a22a548edd (diff)
downloadfml8-51a25a8685c8693b9df6d06fdb358b0d304c47b5.tar.gz
fml8-51a25a8685c8693b9df6d06fdb358b0d304c47b5.tar.bz2
fml8-51a25a8685c8693b9df6d06fdb358b0d304c47b5.zip
logs idea, announce
-rw-r--r--fml/doc/ja/00_ANNOUNCE.txt113
-rw-r--r--fml/doc/ja/00_IDEA.txt269
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