From 4cb54a094eed85d63611fe6f043ffbe52a686b17 Mon Sep 17 00:00:00 2001 From: Ken'ichi Fukamachi Date: Mon, 10 Sep 2018 19:53:18 +0900 Subject: brief descriptions on major changes after 7.99.1. old changes are separeted to fml/doc/ja/CHANGES-7.97.txt (in fml-devel (before 7.98) age) and fml/doc/ja/CHANGES-7.98.txt (in fml 7.98.xx age). --- CHANGES.txt | 10961 +--------------------------------------------------------- 1 file changed, 53 insertions(+), 10908 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index a5a967b9..b9528ca8 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,10935 +1,80 @@ - CHANGES - Last Modified: $Date$ + fml8 major changes + # see github on more details. - [最近のまとめ] - - FML_CURRENT_VERSION=7.98.18 - - 8.0 PRE_ALPHA - 7.98.18 minor updates continue ... - mark 7.98.18-2015-08-15 as the further reference point. - hack base to catch up perl 5.16 changes, cpan modules .. - 7.98.xx ... # See Appendix at the last of this file. - -2018/09/08 - - FML::Article::Summary - update comments on subject (mime header) handling. [b53efe7] - - - subject handling is changed to mime_header_decode() and - as_external_form() style. [f295ab8] - - - FML::Article::Thread - subject handling is changed to use Mail::Message::Subject based e.g. - mime_header_decode(). Mail::Message::Subject [5c85320] - - - Mail::Message::Date - fix document: removed as_str() in it (no such function). [488eec2] - - - Mail::Message::Encode - removed encode_mime_string(), decode_mime_string() and - decode_mime_utf8_to_euc(). They are moved to - Mail::Message::Encode::Obsolete temporarily. [90af0ee] - - - Mail::Message::Encode::Obsolete - obsolete Mail::Message::Encode functions are moved to here - temporarily. The functions are encode_mime_string(), - decode_mime_string() and decode_mime_utf8_to_euc(). [7ec22f9] - - - Mail::Message::Outline - subject handling is changed to - Mail::Message::Subject->mime_header_decode() and as_external_form() - style. [22d2072] - - - Mail::Message::Subject - private _regexp_compile() is elevated to public regexp_compile(). - [4a9246d] - - - Mail::Message::ToHTML - subject handling is changed to mime_header_decode() and - as_external_form() style. XXX bug this module is broken now. XXX it - seems text2html() handles the input as ISO-8859-1 always ? [1a97212] - - -2018/09/07 - - FML::Header - fix the document descriptions on rewrite_article_subject_tag(). - [da4a301] - - - FML::Process::Utils - article_thread_init() modified to use Mail::Message::Subject. [7ed5b19] - - - Mail::Message::DB - _decode_mime_string() switched to use mime_header_decode_as_octets() - of Mail::Message::Encode::Perl class. [f363713] - - - Mail::Message::Encode - remove base64() and qp(). [c60c819] - - - remove debug codes. [b6291a3] - - - Mail::Message::Encode::Perl - clarified each variable is Perl internal or external form. [3646434] - - - fixed the new() description: no, we do not use Jcode here. [be0765b] - - - define convert_from_internal_to_external_form() which convert the - given Perl internal form to the external printable one. [ace7de9] - - - define mime_header_decode_as_octets(). It returns printable form not - Perl internal one. [e80540b] - - - Mail::Message::Language::Japanese::Outline - just a template. removed not-used "use Jcode". [4a022ce] - - - Mail::Message::String - removed obsolete mime_encode() and mime_decode(). [e9e8056] - - - define as_external_form() which return the internal data as the - external form string. [5b2a5a9] - - - remove debug. [63ea732] - - - Mail::Message::Subject - remove debug codes. [c8801a4] - - - Mail::Message::Utils - return the phrase of from: address by using - mime_header_decode_as_octets(). [de3abe3] - - -2018/09/04 - - README.md - oops, it was wrong. toward 7.99.00 not 7.98.99 ;_; [25b49da] - - - toward 7.98.99, internal encoded message handling overhaul underway. - [01f470e] - - - FML::Header - rewrite_article_subject_tag() switched to use - Mail::Message::Encode::Perl. [3c7c5ca] - - - renamed: - s/rewrite_article_subject_tag_orig()/rewrite_article_subject_tag_obsolete()/ - to clarify it is obsolete. [2b9052a] - - - FML::Header::Subject - clarify FML::Header::Subjectrewrite_article_subject_tag_orig is - obsolete by renaming to rewrite_article_subject_tag_obsolete(). It - should be removed in the future. It will stay with the repository for - a while. [8bcfa5f] - - - Revert "FML::Header::Subject->rewrite_article_subject_tag is - obsolete." This reverts commit - e1a83b9afe47ce152788651d0a395ec3cdd39d43. [ff4866f] - - - FML::Header::Subject->rewrite_article_subject_tag is obsolete. - Temporarily, renamed to rewrite_article_subject_tag_obsolete() but it - should be removed in the future. [e1a83b9] - - - Mail::Message::Encode::Perl - add Mail::Message::Encode::Perl for Perl (character-oriented) based - encoding. [5601fb8] - - - Mail::Message::String - mime header decode/encode switched to use Mail::Message::Encode::Perl. - define new functions: mime_header_encode() and mime_header_decode(). - [e5d7fe1] - - - Mail::Message::Subject - fix documentation and debug codes to use mime_header_decode/encode(). - [5c2490d] - - - Mail::Message::Utils - switched to use Mail::Message::Encode::Perl in From address parsing. - [699772a] - - -2018/08/14 - - fml/doc/ja/tutorial/include/bookinfo.sgml - + perl 5.26.2 on NetBSD 7.0 [604501d] - - -2018/08/01 - - fml8 monthly release 20180801 - master repository is moved to github.com/fmlorg. - modified tools and documents to reflect scm changes (cvs to github). - - CHANGES.txt - fml8 monthly release 20180801: switch from cvs to git - github.com/fmlorg [9d5c7a5] - - - master repository switch from cvs to github.com/fmlorg. master - repository is moved from cvs.fml.org to github.com/fmlorg. modified - tools and documents to reflect scm changes (cvs to github). [c6316ad] - - - README.md - the least description on fml8 [8e2c2ba] - - - fml/bin/anoncvs - obsolete due to scm changes (cvs to git(github)) [4abd871] - - - fml/doc/ja/tutorial/devel/cvstree.sgml - obsolete due to scm changes (cvs to git(github)) [3ff34d8] - - - fml/doc/ja/tutorial/devel/repository.sgml - repository descriptions, newly created due to scm changes (cvs to - git(github). [291a147] - - - fml/doc/ja/tutorial/install/download.sgml - modified to catch up the scm changes (cvs to github). [fb27f88] - - - regress/simulation/Makefile - modified to use git reflecting scm changes (cvs to github). [64681a8] - - -2018/07/04 - - master repository is moved to github.com/fmlorg. - -2018/02/01 - - fml8 monthly release 20180201 - -2018/01/13 - - update CPAN modules - updated to Crypt-RandPasswd 0.06 - updated to Exporter-Lite 0.08 - updated to Time-modules 2013.0912 - updated to Unicode-Japanese 0.49 - updated to File-MMagic 1.30 - updated to PathTools 3.62 (File::Spec) - updated to MIME-Types 2.14 - -2018/01/01 - - fml8 monthly release 20180101 + FML_CURRENT_VERSION=7.99.1 - fml8 season (monthly for a while) rollout campaign starts. - - update CPAN modules - updated to MailTools-2.19. - -2017/12/31 - - updated to im-153. - -2017/08/18 - - apply patch to fix charset handling in Content-Type header - Thanks to . - -2017/08/01 - - fml.org servers are being currenty re-designed to implement github mirror. - - -2017/03/04 - - fml-7.98.18-2015-08-15 snapshot is created as the further reference point. - XXX used as a reference only. - -2013/04/14 - - fml/utils/bin/sgml_compile.sh - inherit FML_DSL environmental variable if exists, - enhanced to catch up www.fml.org framework changes. - -2012/12/30 - FML::Process::Calendar - catch up perl changes: defined(hashes and arrays) is - deprecated, instead use a simple test for size: - if (@an_array) { ... } - - FML::Process::ConfViewer - FML::Process::DocViewer - catch up perl changes: not length(@array), use "scalar @array" - to find out how many elements these have. - -2012/12/13 - - Mail::Delivery::SMTP - catch up IO::Handle changes in Perl 5.16 to avoid a lot of - warnings. see RT#66474 - https://rt.cpan.org/Public/Bug/Display.html?id=66474 - -2012/12/13 - - HTML::EntitiesLite added to make HTML::FromText work. - non-XS-ified HTML::Entities module derived from HTML::Parser - 3.69. HTML::FromText is modified to use it. - - HTML::EntitiesLite is enough for HTML::FromText since we can - use only encode_entities() not decode_entities, which depends - HTML::Parse XS engine. - -2012/04/21 - - Mail::Delivery::Net::INET6 - not duplicated loading of Socket related classes. - -2012/04/15 - - not use obsolete library. - timelocal.pl and ctime.pl, which is removed in Perl 5.16 - release. switched to use Time::Local and Time::localtime. - - import CPAN modules for HTML::FromText module: - import Email-Find 0.10. - import Exporter-Lite-0.02. - -2012/02/25 - update CPAN modules successively: - Unicode-Japanese to 0.47. - HTML-FromText to 2.05. - HTML-CalendarMonthSimple to 1.25. +7.99.1 subject MIME handling bug fixed. -2012/02/19 + Sep 8, 2018, we have merged the following branch + feature/utf8-mime-header-handling [2b9052aa..b9c2f6c2] into + the master. XXX Mail::Message::ToHTML is broken. XXX + Mail::Message::Outline may be broken. - update CPAN modules successively: - Jcode to 2.07. - File-MMagic to 1.27. - Socket6 to 0.23 (not used, holded in cpan/dist for reference). - HTML-Template is removed since it is not used. - Log-ErrLogger is removed since it is not used. - Text-CSV is removed since it is not used. - Rcs is removed since it is not used. - VCS-CSV is removed since it is not used. + Also, we note that this is the initial point to release + engineering process toward the release 8.0.0. -2012/02/18 + (XXX) + We plan to move non-core modules related on the mailing list + core to aux/ (newly created) or 3rdparty/fml.org/FEATURE/ (as + examples how to use at ./3rdparty/ directory). + - update Time-modules to 2011.0517 (sync w/ pkgsrc/time/p5-Time-modules). +7.98.18 minor updates continue ... + mark 7.98.18-2015-08-15 as the further reference point. + hack base to catch up perl 5.16 changes, cpan modules .. - bump up the FML_CURRENT_VERSION to 7.98.17 - to clarify the dependence among the version and modules. +7.98.17 update modules: cpan modules, IM et.al (to be planned). -2011/09/26 +7.98.16 FML::Install is enhanced. - FML::Config - include ErrorStatus module within it. - remove "use ErrorStatus". +7.98.15 IM updated to IM-150. + fix wrong ID incrementation in article to html conversion. - FML::Credential - include ErrorStatus module within it. - remove "use ErrorStatus". +7.98.14 www interface for anonymous users. + Anyone can submit a subscribe/unsubscribe request via + www interface. - ErrorStatus - modified to not use this top level package. remove this. - -2011/08/25 - - Mail::Message::Encode - bugfix quoted-printable pattern at decode_mime_utf8_to_euc(). - -2010/11/28 - - FML::Install - fix vendor expansion bug (bug fix previous commit). - - ***important changes*** - do not overwrite file in installation. changes for the further - enhancement, e.g. in other softowares. Actually, the current - fml installation does not chanes since the file::directory - names do not conflict. - -2010/11/09 - - bump up to the version 7.98.16. - - FML::Install - enhanced to try to install all files in all vendors, - which is useful for 3rd party. - -2010/03/06 - - FML::Process::Distribute - seems incorrect that increment_id() in calling HTML-ify - function since already the article ID is incremated at _ - deliver_article_prep(). changed to use $article->id(); by - fetching the current article ID. - -2010/03/01 - - bump up to the version 7.98.15. - -2010/02/28 - - import IM-150. - - -2010/02/28 - - fml-7.98.14-20100228 released as a mile stone before further development. - same as fml-7.98.14-20090809 excluding documentation. - - ドキュメンテーション以外は fml-7.98.14-20090809 と同じです。 - 安全のため、ライブラリのアップデートを始める前に作成した - スナップショット。 - -2009/12/26 - - fml/utils/bin/version_replace.pl - added: version replacement utility. - - tutorial/Makefile.template - replace version in include/bookinfo.sgml always - using fml/utils/bin/version_replace.pl utility. - - catch up the change in clean and export rules. - - ja/tutorial/include/chapters.ent - define bookinfo.cooked entity. - we use it as version-managed bookinfo.sgml. - - ja/tutorial/book.sgml - use version managed bookinfo entity. clean up a little. - - ja/tutorial/ - clean up a little ... - - -2009/08/09 - - fml-7.98.14-20090809.tar.gz built. - -2009/07/15 - - FML::Process::Distribute - move calling _htmlify() from _deliver_article_prep() to finish() - -2009/06/20 - - fml-7.98.14-20090620.tar.gz built. - -2009/06/10 - - Mail::Message::Date - bugfix case timezone +0000 - -2008/11/30 - - 開発環境を perl 5.10 ベースへ変更。 - - FML::Process::Switch - defined() before eq - -2008/09/29 - - FML::Process::CGI::Kernel - verify_request() logs client ip address if could. - -2008/09/28 - - documentation - usage of anonymous cgi. - -2008/09/15 - - FML::ML::Control - delete scripts in the reverse order of creation. - define {get,set}_force_mode(). - - FML::Command::Admin::{newcgi,rmcgi} - install/deinstall all CGI scripts for the specified domain. - -2008/09/14 - - FML::Process::Utils - define ml_name_list(), which returns the list of valid ml in the - specified domain. - fix documents and todo. - - FML::ML::Control - fix admin.cgi removing operation bug. - count up the number of valid ml, - remove admin.cgi only if ensured that no more valid ml exists. - -2008/09/13 - - variables - define $listinfo_template_base_dir - - template files - share/listinfo/euc-jp/index.html.ja - change default url for submission of subscribe/unsubscribe request. - mailto:... -> ::...::submit.cgi - - share/listinfo/euc-jp/index.html.en aded. - - FML::ML::Control - listinfo operations fixed::install and deinstall index.html.{ja,en}. - -2008/09/12 - - variables - define $ml_anonymous_cgi_base_url - - FML::Command::Admin::{newml,rmml} - clean up. - warn() -> ui_message() + logwarn(). - change variable names to be more proper. - fix comments. - - FML::Command::Admin::rmml - FML::ML::Control - delete cgi scripts and listinfo in runnign rmml. - -2008/09/11 - - FML::Error::Cache - document: fix typo - -2008/09/10 - - FML::CGI::Skin::Anonymous - (1) check if the banner image format generator works or not - (2) if not, use ascii generator. - - FML::String::Banner - new() needs $curproc as the argument. - as_png() checks if GD perl module is available. if not, return - undef. - - FML::ML::Control - clean up setup_cgi_interface() to be more modular. - -2008/09/09 - - WWW interface for anonymous users is added. - Anyone can request subscribe/unsubscribe via WWW interface. - After the request processed, the command flow is same as usual - command mails ( confirmation is sent back, ...). - - 一般ユーザが WWW インターフェイスでMLへの「入会」「退会」 - のリクエストを出すことが出来るようにしました。 - ・ subscribe と unsubscribe しか出来ません。 - ・ リクエストを出すと confirmation のフェイズに入ります。 - その後は、いつのもコマンドメールと同じ処理になるだけです。 - 本当に入口だけ。2つの違う通信路を使うことに意味があります。 - ・ パスワード登録とかはしません。どうせ次に使う時には忘れてる。 - 無駄にML側へ情報が集まってしまうと逆に危ないだけ。 - ・ ゆがんだ画像を読みといてもらって「魔法の文字列」を入れさせます。 - SPAM よけの軽いおまじないです。 - 気合いの入った OCR 野郎とかいたら無駄でしょうが、そこまでして - 突破したいような価値ある WWW じゃないし(confirmation かえる - だけなんだし)。 - ・ もっといけてる画像の作り方のアイデア(というかコード)募集中。 - - variables - define variables for anonymous cgi::$use_anonymous_cgi_function, - $anonymous_cgi_expire_limit, $anonymous_cgi_base_dir, - $ml_anonymous_cgi_base_dir, $html_tmp_dir, and $html_tmp_base_url. - - define $ml_anonymous_cgi_allowed_commands - - definition changed::$cgi_base_dir, $admin_cgi_base_dir and - $ml_admin_cgi_base_dir. - - renamed::$commands_for_ml_admin_cgi -> $ml_admin_cgi_allowed_commands - - etc/modules - add definition "anonymous::*::*::submit.cgi". - while space cosmetics. - - share/messages - add message templates for anonymous CGI. - - FML::Char::Ascii::Data - ascii presentation of letters. - - FML::String::Banner - FML::String::Banner::{Ascii,Image} - banner string generator - - FML::String::Random - generates a magic string and the identifier used for the - session ID. - - FML::Restriction::Base - define $alnum_regexp class. - define 'session_id' and 'magic_string' regexp. - - FML::CGI::User - define anonymous_cgi_menu(). - fix and update documents. - - FML::CGI::Anonymous::{DB.pm,Submit} - FML::CGI::Skin::Anonymous - anonymous cgi initial version - - FML::Command::User::{chaddr,subscribe,unsubscribe} - show menu for an anonymous user by calling - FML::CGI::User->anonymous_cgi_menu(); - - FML::ML::Control - in setting up cgi, install cgi script(s) for anonymous users, - too. - - FML::Process::Kernel - import $fml_owner and $fml_group into $config name space from - main.cf. - - FML::Process::Utils - fix how to search main_cf information. - - define set_allow_reply_message() and get_allow_reply_message(). - We can enable or disable reply_message*() functions dynamically. - - FML::Process::CGI::Kernel - generate anonymous session ID always (anyway). - - finish() calls message flush sub-system. - - cgi_execute_command() is enhanced to handle both *admin.cgi - and anonymous cgi case. - - some error messages are natural-languaged. - - use cgi_var_*() and specify -target if could. +7.98.13 "isolate" instead of "reject" spam or unknown messages + by default. - FML::Process::CGI::Utils - $commands_for_ml_admin_cgi -> $ml_admin_cgi_allowed_commands +7.98.12 delivery system error handling fixed. - ensure the return value for CGI action to be not "undef". +7.98.11 ignore in restrictions supported. - menu is enhanced to handle both *admin.cgi and anonymous cgi case. +7.98.10 delivery system overhaul sequal. -2008/08/31 +7.98.09 delivery system overhaul - WWW インターフェイスからの subscribe / unsubscribe 他のための準備... - 隔離メールの「TODO: ワンタイムパスワードつき URL の生成。」 - も同じフレームワーク上にある(はず)。 - -2008/08/24 - - 隔離されたメール(SPAM)を日付名ディレクトリへ奇麗に並べ替える。 - TODO: レポートメールの生成と送信。 - TODO: ワンタイムパスワードつき URL の生成。 - この URL はレポートメールに含まれるようにする。 - - FML::Process::{Flow,Kernel} - FML::Isolate - rearrange isolated mails to under - $isolated_queue_dir/YYYY/MM/DD dir. - - FML::Command::Admin::thread - allow sub-command "outline" load. +7.98.08 correct context switch. + address validation in smtp transaction. - FML::Article::Outline - fixed::typo: add_outline_to_header_field -> add_outline_to_header - - variables - add new entry on "isolatation" related variables. - define $isolated_queue_dir and $isolated_queue_expire_limit. - -2008/08/23 - - clean up documents (continued) - remove recipes and faq, tech category. - merge recipes to tutorial. - -2008/08/21 - - clean up cpan/ - IO::Stringy removed since it is not used. - -2008/08/20 - - tutorial(jp) overhaul-ed. - -2008/08/17 - - FML::Process::Command - [bug fix] - check isolated or ignored precisely and determine the final action. - -2008/08/15 - - documents being updated. - -2008/08/14 - - variables - bug fix create-on-post default configuration. - update and complete descriptions. - sort definitions. - remove "permit_createonpost_maintainer_maps", which is not defined. - remove duplication in descriptions. - -2008/08/13 - - FML::Process::CreateOnPost - bug fix::fix internal arguments passing bug to handle sender - information correctly. - save sender candidates in PCB. +7.98.07 confirmation + manual subscribe/chaddr/unsubscribe + manual subscribe/chaddr/unsubscribe -2008/08/07 - - anoncvs.fml.org changed to support anonymous cvs over ssh. - fml/bin/anoncvs changed. - documents updated. - -2008/08/03 - - bump up version to 7.98.13 - isolation or quarantine mode implemented and enabled by default. - "isolate" instead of "reject" spam or unknown messages - by default. - - 変なメール(まぁはっきり言えば、ほぼ全部 SPAM)は、今まで - *_restrictions のルールの最後が reject のため、敵に返事を - 送ろうとしてしまっていたが、デフォルトを isolate に変更。 +7.98.06 fundamentals of moderator mode implemented. - とりあえず受けとり、隔離キューに入れる動作にした。 - - 隔離キューのレポートなどは、まだ未実装。 - - variables - support directives (isolate_system_special_accounts - isolate_spammer_maps isolate) for $article_post_restrictions and - $command_mail_restrictions. - - Mail::Delivery::Queue - create isolated queue, too. +7.98.05 add reviveml command (to revive a removed ML). + add PostgreSQL support. + add LDAP support. - FML::Process::Command - fixed that isolate operation works. - -2008/07/20 - - FML::Process::Utils - define incoming_message_dup_content() and - incoming_message_isolate_content(). +7.98.04 minor fixes. clean up. + clean up method naming convension. - FML::Process::{Command,Distribute} - isolate the current incoming message if matched +7.98.03 Japanese/English document overhaul/revised. - FML::Restriction::Post - define isolate_system_special_accounts() and - isolate_system_accounts(). +7.98.02 queuing system revised. fetchfml added. + PGP/GPG authentication. + bug fix method naming convension (FNF). + MIME-Base64 removed from cvs tree. -2008/07/16 - - [isolate_XXX 命令シリーズ創設案] - - 2008/07/06 の各 restrictions (例: 投稿、コマンドメール)で - reject のかわりに isolate と ignore を使えるようにし ... - は、いいのですが、reject_system_special_accounts 命令は - どうすればよいのでしょう? - - isolate_system_special_accounts ってのを創設すれば良いですね? - - ほえ_restrictions にある reject なんとか命令をすべて isolate へ - 書き換えてしまえば、一番素直な拡張だと思える。 - - $*_restrictions =~ s/reject/isolate/g; - - -2008/07/06 - - 各 restrictions (例: 投稿、コマンドメール)で reject のかわりに - isolate と ignore を使えるようにし、デフォルトを reject から isolate - へ変更します。 - - isolate 命令は ignore + 一定期間保存(隔離)相当の機能です。 - 拒否の返事をせずに、メールを保存し、一定期間後に削除します。 - - 補足: 最初 hold 命令を、この意味で使おうとしましたが、それだと - Postfix の hold と意味が違ってしまうので、それは廃止。hold は - 予約語として、そのまま(実態がない命令なので書いても何も起こら - ないので注意)。 - - FML::Process::{Distribute,State} - FML::Restriction::Post - define "isolate" operation template. - - "isolate" differs "hold". - "isolate" sets apart spam candidates from normal incoming messages, - whereas "hold" moves the incoming message to "hold" queue, which does - not move until someone changes the state. - -2008/07/05 - - FML::Restriction::CreateOnPost - fixed: add missing use FML::Restriction::Post - -2008/07/04 - - FML::Process::State - define restriction_state_{set,get}_hold_reason() - - FML::Restriction::Post - define hold() and discard() - -2008/06/29 - - CREATE-ON-POST 機能では、動的にMLの作成、メンバーの追加が - 出来るわけですが、MLの作成が可能なユーザの制限を可能としました。 - - FML::Credential - implement is_ml_domain() method. - fix debug and pod descriptions. - - FML::Restriction::Post - implement permit_ml_domain() - - FML::Restriction::CreateOnPost - define permit_createonpost_newml_maps - - FML::Process::CreateOnPost - "who can do newml operations" code is rewritten to use of - createonpost_newml_restrictions. - - variables - define $createonpost_newml_restrictions. - define $createonpost_newml_maps. - remove $createonpost_maintainer_maps. - -2008/06/08 - - create-on-post enhanced. - define $createonpost_maintainer_maps - - FML::Process::CreateOnPost - clean up. fix comments. - restrict who can create a new ML. - - FML::Credential - define is_valid_map() method - - configurations - define $createonpost_maintainer_maps - - -2008/05/25 - - switched to configure 2.62 based - configure.in - configure - show datarootdir - - fmlsrc/config.sh.in - fmlsrc/fml/etc/{install.cf.in, main.cf.in} - datadir -> datarootdir - -2008/05/11 - - project restarts (crash and fsck;) ends, orz). - TEST: switched to a new source changes system. - -2006/12/03 - - overhaul continues ... (slowly ;_;) ... - ちょっとずつオーバホール継続中 - - FML::Command::Admin::reviveml - fix comments. - ensure initial value. - add assert. - show more error messages. - - FML::Command::Admin::mergeml newcopml newdomain rmcopml rmdomain - fix comments. - ensure initial value. - -2006/11/26 - - FML::Sys::Alias - fix comments. - remove a unused local variable. - set the upper limit of recursive call _expand(). - - FML::Sys::User - fix comments. - add the label to a loop. - define debug code by myself. - - FML::Process::Fake - fix comments. - fix help message. - change a local variable name to more proper one. - - FML::Credential - fix comments (FNF). - ensure initial value. - use more proper local variables. - - FML::Mailer - fix comments. - fix error logic. - - FML::Moderate - fix comments. - correct argument definitions. - -2006/11/19 - - FML::Error::{Analyze,Cache} - FML::Error::Analyze::{histgram,simple_count } - fix comments. - use more proper variable names. - - FML::Header::MessageID - fix comments. - ensure initial value. - -2006/11/13 - - FML::Error - fix comments - ensure variable initialization. - define $mname and use it in log messages. - - FML::Envelope - fix comments - use FML::Credential->is_same_assress() to compare addresses. - move variable definitions to the block using it more nearly. - -2006/11/12 - - FML::IPC::Queue - more debug messages. - enhance debug patterns. - -2006/10/22 - - FML::Body - more error logs. - move $curproc definition to near message logging. - - FML::PCB - use gloval_ prefix for package gloval variable: - current_context -> global_current_context - - FML::Command::{Auth,DataCheck,Filter,Syntax} - clean up. fix comments. - - FML::Command::DirUtils - fix comments. - move definitions to near the codes. - use more proper variable names. - - FML::Command::FileUtils - fix comments. - move definitions to near the codes. - use more proper variable names. - - FML::Command::HTMLify - fix comments. - use more proper variable names. - - FML::Command::Message - fix comments. - define the default message. - - FML::Command::QmailExt - fix comments. - permit case insensitive commands. - more error messages. - validate temorary message file more. - -2006/10/14 - - etc/command_line_options - FML::Demo::{Chart,Project} - FML::Process::Project - fmlproj::GanttProject XML format extension. - --xml options - dump GanttProject XML format by default. - - FML::Article::Summary - fix importation - -2006/10/10 - - FML::Confirm - fix comments. - rename private variables to more proper ones. - remove not used private variables. - -2006/10/08 - - ちょっと体調がよくなってきたので、 - レビュー、クリーニングを再開しました。 - - -2006/09/24 - - FML::Demo::Chart - fix initialization code. - _shrink_date() for column list. - sort main data before printing. - - FML::Demo::Project - FML::Demo::Language::Japanese - NL-ify (use FML::Demo::Language if needed) - enabled to expand YY::DD-YY::DD form to date list. - cosmetics. - status and misc support. - -2006/07/09 - - オーヴァホールはじめた… - -2006/06/10 - - TinyMTA - デバッグおよび、ちょっと(インチキだけど)MTAもどきを使いたい場 - 合に便利 - - -2006/06/25 - - へんな SPAM でコマンドが落ちたりするのが直ったはず。 - - FML::Command::DataCheck - FML::Process::Command - validate if find_first_plaintext_message() returns object. - -2006/05/22 - - Mail::Message::ToHTML - _update_montly_thread_index_master() rewrite same logic - using _update_id_montly_index_master() - -2006/05/17 - - fml4 to fml8 変換 97 % 終了 - - メッセージテンプレートをいくつか追加 - -2006/05/16 - - 登録可能なユーザ数の制限をかけられるようにしました。 - fml4 の $MAX_MEMBER_LIMIT にあたるものです。 - #って、そんな機能欲しいのは ISP くらいかも :-) - - variables - define $*_total_limit - - FML::User::Control - define get_user_total(), return the total number of addresses - in list. - - FML::Command::Admin::subscribe - check the number of users in {member,recipient}_maps exceeds - the limit. - -2006/05/14 - - FML::Envelope - envelop based loop check - -2006/05/13 - - variables - cksum -> checksum - - FML::Process::Kernel Utils - FML::Body - enable body based loop check - -2006/05/11 - - Mail::Message::Checksum - restructured. - define md5_str_ref() too, same as md5(). - implement md5_file() - -2006/05/09 - - variables - reject_spammer_maps directive available now. - define dummy $primary_spammer_map and $spammer_maps. - - add envelope loop checks - - FML::Restriction::Post - implement reject_spammer_maps() - - FML::Credential - define is_spammer() - - FML::Process::Error - restructure qmail-ext command emulation. - - currently libexec::error traps the request and switch the - context to command process. FML::Process::QMail no more used. - FML::Command::QmailExt provides qmail-ext emulation functions. - - etc/dot-qmail-admin - bug fix: add missing calling of libexec::error process. - -2006/05/04 - - いろいろな機能の expire を整備しました。 - - variables - define $welcome_file and $deny_file. - % format of strftime(3) is available for $log_file - - FML::Log - expand % format in $log_file by strftime(3). - ログファイルに log.%C%y%m%d などといった日付がつけられるように - なりました。 - - FML::Process::Debug - define incoming_message(), which returns undef as a dummy. - - FML::Process::Distribute - expire article under locked - - FML::Process::Kernel - change default message subject to "message from $ml_name ML - $myname system". - call $queue->expire() in incoming_message_cleanup_queue(). - - FML::Article - FML::Article::Summary - expire article summary (remove content, corresponding with expired - articles, in summary). - - FML::Moderate - expire too old submitted queue after $moderate_queue_expire_limit. - - FML::Command::Admin::subscribe - send back welcome file in subscription when running under - CGI/MTA process. - - FML::Command::User::confirm - move "send welcome message" code to - FML::Command::Admin::subscribe class. - - FML::Command::SendFile - bug fix::pass recipient information to reply_message_nl(). - - FML::Command::User::admin - fix typo::$use_admin_command_mail_fucntion - - Mail::Delivery::Queue - constuctor imports $expire_limit in the argument. - - delete() and remove() can accept queue id if specified. - - define expire() which removes too old queue files in the specified - queue. It expires all queue if $class unspecified. - - expire()::cleanup() is overhauled. queue removing is done by remove(). - - define {set,get}_expire_limit() access methods. - -2006/05/03 - - variables - define $use_article_summary_file_expire - define $use_article_expire and $article_expire_limit - define $moderate_queue_expire_limit - fix typo: $use_admin_command_mail_function - - FML::Article - implement expire(), which function expires too old articles. - modify log messages - - FML::Process::Distribute - try to expire articles once per day if enabled. - -2006/05/02 - - variables - define $confirm_command_expire_limit (= 14d by default). - - FML::Config - implement as_second($key), which returns the value as seconds - such as 86400 for '1d'. - - FML::Command::User::confirm - modified to use $confirm_command_expire_limit which value is - converted to the integer by as_second() method of FML::Config. - - FML::Restriction::Command - changed that permit_forward_to_moderator() returns - ("matched","ignore"). - -2006/04/30 - - FML::Merge::FML4::RULES.txt - 83 % checked. - - FML::Merge::FML4::config_ph - support for LOGFILE_NEWSYSLOG_LIMIT and XMLNAME - -2006/04/28 - - Mail::Delivery::Queue - fix open() mode::r -> < - -2006/04/22 - - 7.98.12 released. - - 配送システムの見直し(1) 2006/04/22 - 2006/04/20 - エラーリセットのタイミングを変更 - IPv6 対応部分のエラーを修正 - - FML::Process::Utils - FML::File::Rotate - FML::File::Rotate overhaul-ed. access method changed. - - variables - variable name changed due tu overhaul of FML::File::Rotate. - $log_rotate_size_limit - $log_rotate_archive_file_total - - FML::Process::QueueManager - Mail::Delivery::SMTP - message modified (unified among modules) - - FML::Process::Flow Kernel - runs operation on log files (currently log rotation). - -2006/04/21 - - Mail::Delivery::SMTP - fix error reset timing. - show more useful info in log message. - - FML::Process::QueueManager - log as status=deferred not status=fail when the delivery fails. - -2006/04/20 - - Mail::Delivery::SMTP - Mail::Delivery::Net::INET6 - try to connect(2) $mta by IPv6 if (1) we can use Socket6 and (2) mta - is not pure IPv4 syntax (Iv6 syntax or hostname). - - IPv6 module, which should be fully rewritten in the future, exports - parse_mta6() and is_pure_ipv4_syntax(). rewritten to use them. - -2006/04/18 - - FML::Header::MessageID - $Counter -> $global_counter, easily identified as a global - variable. - base address is ( $article_post_address || $maintainer ). - fix style. - - FML::Process::Kernel - logging system enabled by default - -2006/04/17 - - ダミーの rewrite_message_id メソッドを実装した。 - TODO: 将来、MLオリジナルの Message-Id: をつけられるようにする。 - - FML::Header - variables - define dummy rewrite_message_id() method and the rewrite rule. - this method does nothing by default (pass the original message - id as itself). - - FML::Process::Debug - define logdebug() - -2006/04/16 - - 変数名を分かりやすくするなど、クリーニング - - FML::Filter::TextPlain - Mail::Bounce::DSN Postfix19991231 Qmail SimpleMatch - Mail::Message - Mail::Message::ToHTML Outline - nuke ambiguous method and variable name. - num_paragraph() -> paragraph_total() (XXX see "Code Complete"). - each variable holding this return value is fixed to $total. - - FML::Command::User::get - clean up variable name style. - - Mail::Message::ToHTML - fix variable name syntax::_num_attachment -> _num_attachments - - Mail::Delivery::SMTP - fix variable name::num_rcpt -> rcpt_total - - FML::Article::Spool - fix variable names: - num_file -> num_files - num_dir -> num_dirs - -2006/04/11 - - 投稿時もしくはコマンドメールの処理で不正なリクエストを無視するディ - レクティブを書けるようにした。主に SPAM を無視するため。微修正。 - - variables - ${article_post,command_mail}_restrictions support - {ignore,ignore_invalid_request}. - - FML::Process::Distribute - apply filter system to avoid useless work if distribution is - allowed. - - temporarily disable logging system before calling - is_permit_post() at filter check. - - FML::Process::Kernel - define log_{enable,disable}() to enable::disable logging - system. - -2006/04/10 - - 投稿時もしくはコマンドメールの処理で不正なリクエストを無視するディ - レクティブを書けるようにした。主に SPAM を無視するため - - 例: 有効なコマンドでないなら無視。 - メール全体で一つも有効なメールがない場合は返事も返さない。 - command_mail_restrictions = reject_system_special_accounts - permit_anonymous_command - permit_user_command - ignore_invalid_request - reject - - FML::Restriction::Post - define ignore() and ignore_invalid_request() methods. - - FML::Restriction::Command - define ignore() and ignore_invalid_request() methods. - assert - - FML::Process::State - define restriction_state_set_ignore_reason() and - restriction_state_get_ignore_reason() methods. - - FML::Process::Command - enhance restriction checks for invalid contents to determine the - action against such content. - -2006/04/05 - - IO::Adapter - IO::Adapter::File - trylock() (lock( { wait => TIME }) implemented - - Mail::Delivery::Queue - fix usage of logging. - trylock() is available, too. - validate stat() object before using it. - mask some debug messages - - Mail::Delivery::SMTP - fix fallback algorithm::we need not do fallback for the queue already - on the queue. - - bug fix loop check counting. - bug fix queue_directry info handling. - - prepare several acess methods::_is_map_in_queue(), - _set_queue_directory(), _get_queue_directory(), set_not_done(), - get_not_done(). - - FML::Mailer - modifieid to sync w:::Mail::Delivery::Queue changes. - + use recipient_maps as an argument to Mail::Delivery system. - + pass queue object to Mail::Delivery system. - + check if delivery is DONE or not by get_not_done(). - - FML::Process::Kernel - queue_flush() takes no argument - - FML::Process::Distribute - modifieid to sync w:::Mail::Delivery::Queue changes. - + more fast lock - + pass log function pointers. - + pass queue object to Mail::Delivery system. - + check if delivery is DONE or not by get_not_done(). - - FML::Process::QueueManager - modifieid to sync w:::Mail::Delivery::Queue changes. - pass log function pointer to Mail::Delivery system. - -2006/04/04 - - Mail::Delivery::Queue - define set_sleep_count, get_sleep_count, set_retry_count and - get_retry_count. - rewritten by using them. - - FML::Process::QueueManager - queue validation logic modified. - -2006/04/03 - - Mail::Delivery::SMTP - check the number of effective MTA. - tune retry max limit (XXX a lot of todo around this). - fix retry handling (now we use cost penalty by rollback). - style::not use $_xxx in loop - - Mail::Delivery::Queue - ensure lock::unlock return value - bug fixed to lock new or lock queue file, not active queue. - - IO::Adapter - consider context switch - - FML::Mailer - enable fallback - -2006/04/02 - - Mail::Delivery::SMTP - overhaul. - o subroutine-ify. - o more error check and assertion. - o fix comments. et.al. - fix error handling (do not trap normal condition) - - Mail::Delivery::Queue - fix typo. - check lock status. - - FML::Log - clean up input buffer (nuke \s+$) - -2006/04/01 - - Mail::Delivery::Queue - overhaul - -2006/03/29 - - Mail::Message::ToHTML - change monthly_index.html's table output in - _update_id_montly_index_master(). - see also fml-devel 798. - -2006/03/26 - - Mail::Delivery::Base - define [sg]et_address_validate_function() - - FML::Mailer - FML::Process::Distribute - use $curproc->log() as log_info and $curproc->logdebug() as log_debug - in Mail::Delivery, by passing log_debug function pointer to - Mail::Delivery class. - - Mail::Delivery::Net::INET4 INET6 - fix arguments: - + connect{4,6}() accepts $mta. - + remove not used arguments. - -2006/03/25 - - Mail::Delivery::Base - fix comments. - fix usage of ->log*() - -2006/03/24 - - Mail::Delivery overhaul (1). - - Mail::Delivery - fix comments. - - Mail::Delivery::Net::INET6 - overhaul. - + more use of access methods. - + change method name to more proper one. - - Mail::Delivery::Net::INET4 - overhaul. - use $self->log*() instead of Mail::Delivery::Utils. - - Mail::Delivery::Queue SMTP - overhaul. - more access method based. - - FML::Mailer - FML::Process::Distribute QueueManager - rewritten to use access methods to sync w:::Mail::Delivery overhaul. - -2006/03/23 - - Mail::Delivery::SMTP - if EHLO fails, try HELO. - -2006/03/21 - - FML::Mailer - FML::Process::Distribute - Mail::Delivery::SMTP - validate format of recipient within smtp transaction. - - Mail::Delivery::ErrorStatus - define {set,get}_error() - - Mail::Delivery::Queue - fix type in queue_id generator - - Mail::Delivery::SMTP - bug fix starting position in fallback process. - -2006/03/20 - - FML::Merge::FML4::RULES.txt - 56.5 % verified. status and rules updated. - - FML::Merge::FML4::config_ph - fix conversion for address variables. - add conversion of REJECT_ADDR and SKIP_FIELDS. - fix HOST and PORT handling. - apply _fix_path() for *_FILE variables. - add conversion of INCOMING_MAIL_SIZE_LIMIT with ATOI suport. - - etc/compat/fml4/default_config.ph - - by default, define ___NULL___ for the following variables: - $PERMIT_POST_FROM - $REJECT_POST_HANDLER - $PERMIT_COMMAND_FROM - $REJECT_COMMAND_HANDLER - $REMOTE_ADMINISTRATION_REQUIRE_PASSWORD - $USE_DISTRIBUTE_FILTER - $FILTER_NOTIFY_REJECTION - $FILTER_ATTR_REJECT_COMMAND - $FILTER_ATTR_REJECT_2BYTES_COMMAND - $FILTER_ATTR_REJECT_INVALID_JAPANESE - $USE_ERRORS_TO - $APPEND_STARDATE - $AUTO_HTML_GEN - $USE_NEW_HTML_GEN - -2006/03/19 - - fml 4 から fml 8 への変換 - 56.5 % 確認 - - variables - define $article_header_list_software - define $mail_header_default_list_software - $default_umask -> $system_default_umask - - FML::Header - List-Software: and X-MLServer: is set as - ${mail_header_default_list_software} or - ${article_header_list_software} by definition. - - sort definition order: _get_header_type(), ... - - FML::Process::Distribute - $use_smtp_log enable/disable smtp transaction logging. - -2006/03/12 - - variables - define $maintainer_signature (not used now). - define $article_header_* and $mail_header_default_* variables. - rewritten to use $mail_header_default_* for outgoing_*. - - FML::Process::Kernel - pass {mode => default} parameters to FML::Header object by default. - - FML::Header - rewrite logic to generate list-* header field to sync w:::new variable - definitions::article_header_list* et.al. - - FML::Merge::FML4::Makefile - define printok::print_ok rules - - FML::Merge::FML4::config_ph - save default value for later use in evaluating default_config.ph. - overhaul algorithm to fix path. - changed to use _fix_path() if needed. - -2006/03/06 - - variables - define $use_admin_command_mail_fucntion ("no" by default). - -2006/03/05 - - refactoring: use of command context object based. - - FML::Command::User::admin - FML::Process::Command State - FML::Restriction::Command - FML::Context::Command - command context information switched to use of - FML::Context::Command object. - - FML::Command::Admin::* - FML::Command::User::* - FML::Command Error - FML::Article::Spool - FML::CGI::List ML User - FML::CGI::Skin::Base - FML::Command::Auth DirUtils FileUtils Message SendFile Syntax - FML::Context::Command - FML::Fault::Address - FML::ML::Control - FML::Process::Command Configure - FML::Process::CGI::Kernel - FML::User::Control - $command_args -> $command_context (OBJ), method style - changed to command_context object based. - - FML::Command::User::admin - duplicate FML::Context::Command object by object dup method - not by myself. - - FML::Context::Command - implement dup() method. - -2006/02/18 - - FML::User::Control - always update user infomation db. - update gecos and action date if operation runs under MTA, but - update only date in other cases. - - FML::User::DB - define add() and set() - - FML::User::Info - rename method::add(HASH_REF) -> set_header_info($address) - -2006/02/15 - - FML::Error - FML::Command::Admin::reviveml rmcl rmml - FML::Error::Analyze - FML::Error::Analyze::histgram simple_count - FML::ML::Control - FML::MTA::Control - FML::MTA::Control::Postfix Procmail Qmail Sendmail - FML::Process::Error Kernel Utils - Mail::Message::Utils - fix method name::remove -> delete - - Mail::Delivery::Queue - define delete() as an alias of remove() - -2006/02/05 - - FML::Header - implement raw level insert_message_id_cache() method to access - cache more directly. - rewritten to use it. - - FML::Process::Kernel - add a new message-id to the outgoing message fml8 generates and cache - it in our message-id database for further loop check. - - FML::Process::CreateOnPost - ignore *-ctl and *-admin addresses as a ML one. - implement reject_list_header_field derective. - - FML::Process::CreateOnPost - comments on _is_ml_address() logic: if you create xxx-ctl or - xxx-admin ML, it should be allowed. - - variables - $createonpost_sender_restrictions += reject_list_header_field - -2006/02/04 - - CREATE-ON-POST implemented. - CREATE-ON-POST は「動的にMLを生成」する仕組みです。 - - 存在しないMLに投稿すると fault がおき、fault handler が - MLの生成処理を行なう。アドレスの登録も fault で行なう。 - メカニズムとしては fml4 エミュレータの fallback 処理と同じ。 - - ml fault 存在しないMLなら、MLを作る - - address fault アドレスが登録されているか?を調べ - 未登録の場合には登録処理をする - (走り始めた配送プロセスが fault を処理)。 - - variables - define CREATE-ON-POST function. - - FML::Config - context switch safe - fix comments (FNF) - - FML::Header - return <> for error mail sender - - FML::PCB - context switch safe - - FML::ML::Control - FML::MTA::Control - implement createonpost function dispatcher - - FML::MTA::Control::Postfix - Postfix specific CREATE-ON-POST operations. - - FML::MTA::Control::Qmail - qmail_install_alias() install ~fml::.qmail-* files not qmail_setup() - method. - - FML::Process::Utils - define several methods around $0 handling, address fault handling and - context switching. - +set_process_title() - +get_process_title() - +set_address_fault() - +get_address_fault() - +is_address_fault() - +set_address_fault_list() - +get_address_fault_list() - +context_switch_get_context() - +context_switch_set_context() - - FML::Process::Distribute - FML::Fault::Address - address fault handling - - FML::Process::Configure - use $curproc->{ml_name,ml_domain}() method. - $command_args includes ml_domain info. - - FML::Process::Kernel - initialize context information when constructor runs. - - FML::Process::Switch - prefer $hints if specified for argv, ARGV and options. - support context switching in executing new (child) process. - - FML::Command::Admin::rmml - use $command_args->{ ml_name } and $command_args->{ ml_domain }; - - FML::Command::Admin::newml - use $command_args->{ ml_name } and $command_args->{ ml_domain }; - not udpate alias relates information if update-alias = no specified. - -2006/02/03 - - FML::Config - define {set,get}_context() method. - -2006/01/24 - - 各種テスト、オーヴァホール - -2006/01/19 - - いろいろとレシピ’sを書く、書く、書く… - - fml4 emulator tool added. - -2006/01/15 - - いろいろとレシピ’sを書く、書く、書く… - - FML::Process::Utils - implement policy_ignore_this_message(), policy_reject_this_message(). - -2006/01/13 - - FML::Process::Utils - is_config_cf_exist() evals the statements. - - implement is_fml8_managed_address() which checks the given address is - either of fml8 managed ml addresses. - -2006/01/12 - - ドキュメント: Reply-To: hacks をいろいろ書いておきました。 - - FML::Demo::Calendar - on the format of files in ~/.schedule/ directory. - -2006/01/09 - - FML::Header - add rewrite_subject_tag() equal to rewrite_article_subject_tag(). - rewrite_reply_to_enforce_article_post_address() - fix comments. - - variables - $article_header_rewrite_rules supports more 2 rules: - + rewrite_subject_tag - + rewrite_reply_to_enforce_article_post_address - -2006/01/08 - - FML::Merge::FML4::config_ph - add prototype to translate PERMIT*_FROM and REJECT_*_HANDER - combinations. - -2006/01/07 - - variables - +chaddr_command_operation_mode = automatic - +subscribe_command_operation_mode = automatic - +unsubscribe_command_operation_mode = automatic - - FML::Command::User::subscribe chaddr unsubscribe - FML::Command::Message - move location of reseting compare_level. - - rewritten to call FML::Command::Message->send_notification() not - direct reply_message() calls in Command::User:::class. - - send_notification() works differently according to the value of - $XXX_command_auth_type variable. - - FML::Command::User::confirm - Accoding to ${command}_command_operation_mode, it works differently. - - 1. XXX_command_operation_mode == automatic, fml8 do subscription - et.al. automatically. - - 2. XXX_command_operation_mode == manual, notify "the request is - confirmed" to $maintainer, who do actual subscription et.al. - - FML::User::Control - use reply_message() in chaddr operations to send back log. - -2006/01/04 - - fml 4 -> 8 変換ルール生成プログラムのバグを修正した。 - - FML::Merge::FML4::config_ph - change diff() return value to ($config, $diff), ARRAY of HASH_REF's. - add debug codes. - - FML::Merge::FML4::Rules - regen::converter fixed. - - fml4to8::configtest.pl - follow change of diff() return value. - croak() if eval() fails. - - gen_rules.pl - 2nd generation prototype::check diff between default_config.ph and - config.ph and translate rules bsaed on config.ph vlaues. - - fix copyright of module header template. - - modify private function names. - fix bug of output indent level. - croak() if unknown rule found. - - modify initialization logic. - add missing comments. - check the current key in appling if() conditions. - - modules - updated to File::MMagic 1.25 - -2006/01/02 - - FML::Merge::FML4::RULES.txt - new keyword system. - fix some rules. - - FML::Merge::FML4::Rules - regen - -2006/01/01 - - あけましておめでとうございます。今年の目標は official release なん - だけど… - # fml 4 直接エミュレータ以外は全部できてるつもりなんだけど - - remove not-used modules. - Class::NamedParms - Class::ParmList - AsciiDB::* - - FML::Merge::FML4::config_ph - pass $config to translation*() methods. - support MODERATOR_MEMBER_LIST, ADMIN_LOG_DEFAULT_LINE_LIMIT. - implement translate_not_yet_implemented(). - clean up. - modify comments. - -2005/12/31 - - fml 4 to 8 コンバータのルール解釈ルーチンは間違ってます。 - 修正中。冬休み中に直せるかな? - -2005/12/19 - - モデレータモードのバグとり - - FML::Process::Distribute Kernel - change is_permit_post() retruns action string not number to - support 3 permit/ignore/deny states. - - FML::Moderate - remove moderation queue if distribution succeded. - - FML::Restriction::Post - permit_forward_to_moderator() returns (matched, ignore) - - モデデータからのメールなら投稿を許す命令を追加。 - 考え用によっては一番単純なメールマガジンはこれを使えば良い(推奨はしない) - - FML::Credential - implement is_moderator_member() - - FML::Restriction::Post - implement permit_moderator_member_maps(). - -2005/12/18 - - モデレータモードの基本的な実装を行なう - - variables - fetchfml_queue_dir = $var_dir/mail/queue-fetchfml - define moderation definition::enable, queue_dir - - Mail::Delivery::Queue - enhanced dup_conent() to take two arguments. - - FML::Process::Switch - NewProcess() takes hints as args to overload configuration in - a new process. - - FML::Process::Utils - comment on incomplete dup_command_args - - FML::Restriction::{Command,Post} - implement permit_forward_to_moderator. - - FML::Command::User::confirm - pass _confirm_id information to called process. - support "moderate" command. - - FML::Process::Kernel - workaround::unlock() call lock object via IO::Adapter if saved - object undefined. - - bug fix loop check functions to check enabler variable definition. - - FML::Moderate - o fix comments. - o if (defined ) { .. open .. } - - FML::Confirm - implement id(), set(), get() - - FML::Command - add more debug codes - -2005/12/17 - - FML::Process::FetchFML Switch - not need to pass $args to FML::Process::Switch::NewProcess() which - fake $args by $curproc->dup_curproc_args(). - - FML::Process::Utils - implement dup_curproc_args() template - -2005/12/16 - - FML::Command::User::digest - fix duplicated definition. - -2005/12/10 - - FML::Credential - IO::Adapter::PCRE - pass hints to IO::Adapter to return matched address. - -2005/12/09 - - IO::Adapter - IO::Adapter::PCRE - pcre: support - -2005/12/01 - - FML::Process::Utils - define credential() method - - FML::Command::Admin::changepassword addrecipient digest - off on addmember - FML::Command::User::admin chaddr digest off on subscribe unsubscribe - FML::Command::Auth - FML::ML::HomePrefix - FML::Process::Command Distribute Kernel QueueManager - FML::Restriction::Command Post - FML::Filter Error - FML::Process::Digest Error Utils - use $curproc->credential(); - - FML::Credential - use $address_compare_function_domain_matching_level - - -2005/11/19 - - ドキュメンテーション - レシピ一覧を作るようにしてみました。 - 「FML バイブル」のレシピコレクションを参考にしてレシピを追加中 - ですが、未実装のものは未実装と書いてあります。 - - fml/utils/bin/listup_recipes.pl - generate list of recipes - -2005/10/29 - - variables - change naming of $article_thread_outline_rules. fix comments. - add $article_thread_outline_* - - ドキュメンテーション - 「FML バイブル」のレシピコレクションを参考にしてレシピを追加中 - -2005/09/17 - - FML::Filter::TextPlain - is_signature() and is_citation() switched to - Mail::Message::String based. - - FML::Article::Thread - eval use .. - - FML::Article::Outline - check method existence before calling. - rename method names. - -2005/09/13 - - FML::Article - FML::Article::Outline - FML::Process::Distribute - changed to FML::Article->add_outline($tdb_args) style. - -2005/09/11 - - スレッドまわりの改造中 - - variables - rename: $*_overview -> $*_outline - - Mail::Message::Thread - define DESTROY() - - Mail::Message - Mail::Message::Outline - Mail::Message::Language::Japanese::Outline - move thread outline generator codes to Mail::Message::Outline. - correct error messages (Mail::Message). - - FML::Process::Distribute - FML::Article::Outline - move thread outline generator to FML::Article::Outline - -2005/09/01 - - FML::Article::Thread - remove obsolete codes. - - private-ify::psw_*() -> _psw_*(). - - use article_summary cache as coudl as possible. To clean up - around the codes, some codes are separeted to _generate_summary(). - - fix comments and documents. - - strict check of $status code. - - implement get_overview($id, $thread_args). It returns string holding - article short summaries of a thread for this article $id. - - FML::Process::Distribute - article_thread_overview support. - - variables - preliminary definitions for article thread overview. - +article_thread_overview_greeting - +article_thread_overview_greeting_en - +article_thread_overview_greeting_ja - +article_thread_overview_rules - +use_article_thread_overview - -2005/08/31 - - Mail::Message - implement new method prepend(), append() and - whole_message_body_tail(). - fix charset() logic to handle plural header field lines. - - Mail::Message::DB - implement find_head_key(). - add() updates article_summary database, too. - - FML::Article - implement append() and prepend() methods. - - FML::Process::Utils - langinfo_get_charset() uses Content-Type::information as a hint - when Accept-Language::is not specified. - -2005/08/27 - - Mail::Message::DB - define open() and close() - - FML::Filter::TextPlain - use $msg->message_chain_as_array_ref() instead of $mp->{ next } form. - -2005/08/25 - - Mail::Message::Thread ToHTML - renamed::db->analyze() => db->add() - - Mail::Message::DB - renamed methonds: - o analyze -> add - o db_open -> _db_open - o db_close -> _db_close - -2005/08/23 - - IO::Adapter - add PostgreSQL support. - add LDAP support. - - IO::Adapter::MySQL - $sql_server -> $sql_servers. - enhanced to handle a list of dsn. - fix comments. - - IO::Adapter::DBI - change dsn to form "DBI:$driver:dbname=$database;host=$host". - always $dbh->commit(); - enhanced to handle a list of dsn and to retry sql servers if needed. - DBI->connect with { AutoCommit => 0 } option. - - FML/Command/Admin::reviveml - revive a removed ML. - - FML::CGI::ML - add & enable reviveml in cgi - - FML::Process::FetchFML - handle $fetchfml_pop_servers - - FML::MUA::POP3 - remove message when the message retrival succeeded. - - FML::Log - $log_syslog_host -> $log_syslog_servers - - variables - $log_syslog_host -> $log_syslog_servers - $sql_server -> $sql_servers - -2005/08/20 - - FML::Filter::MimeComponent - FML::Header::Subject - Mail::Message::Language::Japanese::Subject - Mail::Message::Subject - cut_off -> cutoff - - FML::Config - FML::Config::Menu - merge_to_file -> merge_into_file - - FML::Merge::FML4::config_ph - var_dump -> dump_variable - - FML::Error - deluser() -> remove_address() - -2005/08/19 - - Mail::Message::DB ToHTML Utils - convension::from_to_name -> from_address_to_name - - FML::Filter - convert_to_mail_address($list); -> address_resolve($list); - - FML::Command::Admin::log - $curproc->output_{set,get}_print_style(). - - FML::Header::Subject - bug fixed (forgotten import of module ;-) - - FML::Process::Kernel - FML::Process::CGI::Kernel - set_print_style() -> output_set_print_style() - - FML::Process::Utils - which_map -> map_to_term - which_map_nl -> map_to_term_nl - - convert_to_mail_address -> address_resolve - - set_print_style -> output_set_print_style - get_print_style -> output_get_print_style - - FML::User::Control - which_map -> map_to_term - which_map_nl -> map_to_term_nl - - set_print_style -> output_set_print_style - get_print_style -> output_get_print_style - - FML::Process::FetchFML - FML::MUA::POP3 - FNF::pick_up_queue -> pickup_queue - - FML::Article::Summary - FML::Header - FML::Command::DataCheck - FML::Filter::TextPlain - FML::Header::Subject - FML::Process::Error Kernel State - Mail::Bounce::DSN Exim Postfix19991231 Freeserve GOO Qmail - SimpleMatch Smtpfeed - Mail::Delivery::Queue - Mail::Bounce - Mail::Message::DB Address - XXX_clean_up() -> XXX_cleanup() - -2005/08/18 - - FML::ML::Control - check ::etc::passwd only in the case of default domain. - follow changes of ml_home_dir_removed_path() arguments. - - FML::Process::Utils - change ml_home_dir_removed_path() and - ml_home_dir_find_latest_removed_path() argument order: - e.g. ml_home_dir_removed_path($curproc, $ml_home_prefix, $ml_name); - - removed_path format is changed to $ml_name.YYYYMMDD.COUNT style. - - FML::Header::Subject - exclude explicit code e.g. euc-jp and use - Mail::Message::Charset instead. - - FML::MTA::Control::Postfix - fix typo - -2005/08/17 - - FNF: adjust method naming convension. - - FML::Article::Thread - FML::Command::Admin::thread - FML::Command::HTMLify - FML::Process::Distribute - $curproc->thread_db_args(); -> $curproc->article_thread_init(); - - Mail::Message::Encode - str_dump() -> dump_string() - - FML::CGI::Calendar Thread - FML::CGI::Skin::Base - FML::Command::Admin::log - FML::Command::SendFile - FML::Process::CGI::Kernel - langinfo_XXX() e.g. langinfo_get_charset()... - - FML::Command::Admin::addmoderator addadmin delmoderator deladmin - addrecipient digest off on subscribe unsubscribe - addmember - follow changes of FML::User::Control::userXXX() -> user_XXX() - - FML::User::Info - import_from_mail_header() -> add() with args changed (nuke $curproc). - - FML::User::Control - align methond name user_XXX::changed userXXX() -> user_XXX(). - follow FML::User::Info changes (import_from_mail_header() -> add()). - - FML::MTA::Control::Postfix Procmail Qmail Sendmail - template_files_dir_for_newml() -> newml_command_template_files_dir(); - - FML::Cache::Ring - import_data_from() -> add(). - - FML::ML::Control - template_files_dir_for_newml() -> newml_command_template_files_dir() - removed_ml_home_dir_path() -> ml_home_dir_removed_path() - - FML::Process::Fake - change {set,get}_emul_XXX() to internal use (_method) - - FML::Process::Kernel - follow changes of FML::Cache::Ring. - - use langinfo_XXX(). - - moved lang_to_charset() and remove_too_old_files_in_dir() from - FML::Process::Utils to here and change lang_to_charset() and - remove_too_old_files_in_dir() to module internal use. - - FML::Process::Utils - removed_ml_home_dir_path -> ml_home_dir_removed_path - find_latest_removed_ml_home_dir -> ml_home_dir_find_latest_removed_path - template_files_dir_for_newml -> newml_command_template_files_dir - - set_language_hint -> langinfo_set_language_hint - get_language_hint -> langinfo_get_language_hint - set_charset -> langinfo_set_charset - get_charset -> langinfo_get_charset - set_accept_language_list -> langinfo_set_accept_language_list - get_accept_language_list -> langinfo_get_accept_language_list - - thread_db_args -> article_thread_init - - changed to internal use. - language_of_html_file -> _language_of_html_file - - move lang_to_charset() and remove_too_old_files_in_dir() to - FML::Process::Kernel. - -2005/08/15 - - FML::Log - use sprintf instead of "${name}[${pid}]:" to avoid error in - perl 5.6.x. - -2005/08/10 - - FML::Process::CGI::Kernel - FML::Process::Calendar Addr Alias ConfViewer Command - Distribute Configure Digest DocViewer Error HTMLify - Kernel Emulate Utils Fake PGP FetchFML - config_files_XXX() -> config_cf_files_XXX() to clarify the meaning. - - FML::Process::Emulate - FNF: generate_config_cf_from_config_ph -> - config_cf_generate_from_config_ph - - FML::Error - FML::Error::Analyze - FML::Error::Analyze::histgram simple_count - module internal variables are changed. - o summary() -> get_summary() - o removal_address() -> get_address_to_be_removed() - - FML::Config::Menu - FML::Filter::External::clamscan - FML::Filter::MimeComponent - FML::Process::Flow Kernel - s/temp_file_path/tmp_file_path/g; - s/tmp_files_clean_up/tmp_file_cleanup/g; - - FML::Process::Flow Kernel - s/incoming_message_queue_clean_up/incoming_message_cleanup_queue/g; - - FML::Process::State - current_process_ml_name_init() -> current_process_init(). - - IO::Adapter::DBI - $sql_QUERY -> $sql_query_QEURY - - variables - $sql_QUERY -> $sql_query_QEURY - -2005/08/09 - - FML::Filter - FML::Filter::MimeComponent - FNF: rename read_filter_rule_from_file() -> read_filter_rule_file(). - - FML::MUA::POP3 - Mail::Delivery::Queue - FNF: content_dup2() -> dup_content() - - Mail::Message::ToHTML - fixed function name: - o htmlfy_rfc822_message() -> htmlify_rfc822_message(). - o html_begin() -> html_start() - -2005/08/08 - - FML::Process::Kernel - FNF: if (defined $queue) { $queue->open( ... );} - - FML::Header - fix comments. - fix $addr_for_post -> $article_post_address. - enforce use of "return $value" form. - -2005/08/06 - - Mail::Message::Utils - define get_time_from_header() method (moved from Mail::Message::DB). - - Mail::Message::ToHTML - switched to use Mail::Message::Utils::get_time_from_header. - - Mail::Message::DB - overhaul: - [sg]et_db_module_name() -> [sg]et_db_module_class(). - get_time_from_header() -> _get_time_from_header(). - mov get_time_from_header() to Mail::Message::Utils class. - clean up. remove not used variable. - fix db_close(). - fix comments. - - FML::Process::PGP - bug fix: -h -> -l - -2005/08/03 - 7.98.3 English document revised. - -2005/07/01 - - FML::Process::Kernel - garbage collection runs only when valid ml_home_dir found. - -2005/06/27 - 7.98.3 Japanese document revised. - - 日本語のドキュメントをオーバーホールしました。 - -2005/06/04 - - 7.98.2 bug fix method naming convension (FNF). - - FML::MUA::POP3 - bug fix::check queue_id value itself, too - - FML::Process::Kernel - define _get_debug_level(), moved from FML::Process::Utils and - made private. - - FML::Process::Fake - switched to use FML::Process::Switch::NewProcess(). - bug fix pcb handling. - - FML::Process::Kernel QueueManager Error - $curproc->OBJ_METHOD() form (FNF): - [sg]et_event_timeout() -> event_[gs]et_timeout(). - - FML::CGI::User - moved get_address_list(), called only at this module, from - FML::Process::Utils to here. Also, it is changed to the private - method; get_address_list() -> _get_address_list(). - - FML::Process::CGI::Utils - move get_ml_list definition, used only here, to this module. - also it is changed to private. - - FML::Process::Utils - remove get_ml_home_prefix_maps() definition, which is not used. - - move definitions to proper module::get_ml_list(), get_address_list() - and get_debug_level(). - - FML::Mailer - FML::Article::Sequence - FML::Command::SendFile - FML::Config::Menu - FML::Process::Addr Alias Calendar Command ConfViewer - Configure Digest Distribute DocViewer Error FetchFML - Flow HTMLify PGP State Kernel Emulate Fake Utils - FML::Process::CGI::Kernel - method naming fixed to $curproc->OBJ_METHOD() form (FNF). - get_article_id -> article_get_id - set_article_id -> article_set_id - config_files_append_to_list -> config_files_append - append_to_config_files_list -> config_files_append_to_list - get_config_files_list -> config_files_get_list - load_config_files -> config_files_load - set_config_files_list -> config_files_set_list - verify_sender_credential -> credential_verify_sender - get_current_process_ml_name -> current_process_get_ml_name - set_current_process_ml_name -> current_process_set_ml_name - fix_perl_include_path -> env_fix_perl_include_path - parse_exception -> exception_parse - parse_incoming_message -> incoming_message_parse - clean_up_incoming_queue -> incoming_message_queue_clean_up - get_cui_menu -> menu_get_cui_config_file_path - get_gui_menu -> menu_get_gui_config_file_path - resolve_ml_specific_variables -> ml_variables_resolve - outgoing_message_open_channel -> outgoing_message_cache_open - open_outgoing_message_channel -> outgoing_message_open_channel - inform_reply_messages -> reply_message_inform - prepare_file_to_return -> reply_message_prepare_template - clean_up_tmpfiles -> tmp_files_clean_up - reset_umask -> umask_reset - set_umask_as_public -> umask_set_as_public - -2005/06/03 - - 7.98.2 queuing system revised. - - キューイングシステムの微修正 - - POP/IMAP による MTA+ML エミュレーションをサポート (fetchfml)。 - - この実装を試すことで、現在のキューイングおよびキャッシュシステ - ムが妥当かあるかどうかが分かります。基本構造は、そのままですの - で、本質的には変わっていませんが、2、3の拡張が必要でした。 - - FML::PCB - fix dump_variables() for context based switching. - define {set,get}_current_context(). - - fetchfml - FML::Process::FetchFML added. - FML::MUA::POP3 added. - etc/command_line_options modules install.cf.in - add fetchfml definitions. - - variables - define fetchfml related variables. - $fetchfml_*_hook added. - - Mail::Delivery::Queue - fix args and comments of *_dir_path(). - implement local_{dir,file}_path(), content_dup2(), open() and close(). - queue_id = second + microsecond + pid + counter. - now other module can extend class for local use. - - FML::Process::Switch - alloc shared memory area in $args (shared_hash_get() uses). - implement NewProcess(). - - FML::Process::Kernel - incoming queue system revised. - o move some log to logdebug. - o not use queue file directly. instead use $queue->open() method. - o use incoming_message_set_current_queue() instead of - mail_queue_set_incoming_queue(). - o clean up incoming queue removal code. - - FML::Process::Utils - implement helper functions for incoming cache::queue system. - o incoming_message_set_current_queue() - o incoming_message_get_current_queue() - o incoming_message_stack_queue_for_removal() - o incoming_message_remove_queue() - - shared memory for IPC between parent and child $curproc processes. - o shared_hash_get() - - FML::Process::State - remove mail_queue_set_incoming_queue($queue), - mail_queue_get_incoming_queue(). - XXX alternative methods available in FML::Process::Utils. - - FML::Article - switched to use $curproc->incoming_message_get_cache_file_path(); - -2005/06/02 - - MIME-Base64 removed. - -2005/05/31 - - FML::Process::Kernel - "my $path = $obj->cache_file_path();" is wrong. old implementation - saves the FML::Cache::Ring file path for later use. But it is - ambiguous. When many processes (> modules) runs simultaneously, $path - may be overwritten by the next content. Instead, use $queue_file - since $queue_file (queue::incoming::ID) is unique. - - FML::Process::Kernel Utils - FML::Restriction::Post Command - fix naming convension (FNF). - set_incoming_message_cache_file_path -> - incoming_message_set_cache_file_path - get_incoming_message_cache_file_path -> - incoming_message_get_cache_file_path - -2005/05/30 - - Mail::Message::ToHTML - FML::Filter::TextPlain - use Mail::Message::Encode not MIME::Base64. - - Mail::Message::Encode - switch to use MIME::Base64::Perl not MIME::Base64 module. - define raw_decode_{base64,qp}(). - -2005/05/29 - - 投稿制限: PGP/GPG の電子署名を元にしたアクセス制御を可能にする - - variables - o define PGP related variables - pgp_config_dir gpg_config_dir path_gpgv path_gpgsplit - o define editors: vi, ng, mule, emacs, xemacs - - +path_gpgv - +path_gpgsplit - - remove $gpg_config_dir, $pgp_config_dir. - - define $article_post_{auth,encrypt}_{pgp,gpg}_config_dir and - ${admin_,}command_mail_auth_{pgp,gpg}_config_dir. - - add $fmlpgp_*_hook - - etc/command_line_options - etc/modules - etc/install.cf - define fmlpgp fmlpgp5 fmlpgpe fmlpgpk fmlpgps fmlpgpv fmlgpg - fmlgpgv. - - bin/ utilities added. - bin/* - etc/command_line_options modules - etc/install.cf.in - - add fmlgpg fmlgpgv fmlpgp fmlpgp5 fmlpgpe fmlpgpk fmlpgps - fmlpgpv. - - FML::Process::PGP - For convenience, create a conventional named dir (e.g. pgp-admin) and - symlink to the current style dir. - For example::pgp-admin@ -> pgp-admin-command-mail-auth - - FML::Restriction::Post - define check_pgp_signature, which permits article post when the - article has proper PGP::GPG signature. - - For example: - - article_post_restrictions = reject_system_special_accounts - check_pgp_signature - reject - - setup and reset environment more strictly. - etc/{pgp,gpg}-$role style naming ("_" -> "-"). - - FML::Command::User::admin - FML::Restriction::Command - ${admin,}command_mail_restrictions support "check_pgp_signature" rule. - Both restrictions uses same rule name but which needs different - keyring directories. So, we need to handle carefully the context of - two restrictions. - - FML::Process::State - definie command_context_set_try_admin_auth_request(), - command_context_reset_try_admin_auth_request() and - command_context_get_try_admin_auth_request() to handle context of - $*command_restrictions. - -2005/05/26-27 - - fml-devel を fml 7.98.1 とする。 - スレッドシステムを書き直したら 7.99.x の予定。 - - variables - o define $use_article_spool (as ${ues_spool:-yes}). - o log: define syslog related variables - o command: - $use_command_mail_reply_preamble = yes - $use_command_mail_reply_trailor = yes - - ErrorStatus - FML::Filter not use this module. - - FML::Article - use_spool -> use_article_spool - - FML::Log - preliminary syslog extension support. - - FML::Article::Summary - FNF. - $fh -> $rh - - FML::Command::Auth - log errors more. - - FML::Command::User::subscribe unsubscribe - $curproc->allow_reply_message() -> $curproc->is_allow_reply_message(). - - FML::Process::DocViewer - IO::Adapter::AtomicFile - Mail::Message::ToHTML - FML::Command::DirUtils - FML::Config::Convert - FML::Filter::MimeComponent - FML::Config::Tiny - FML::Header::MessageID Subject - FML::MTA::Control::Procmail - FML::Process::DocViewer - IO::Adapter::AtomicFile - Mail::Message::ToHTML - FNF: not use str.str - - FML::Filter::External::clamscan - fixed to work. - - FML::MTA::Control::Postfix - not use str.str. - white space clean up of alias file path. - _remove_postfix_style_virtual() -> remove_postfix_style_virtual(). - - FML::MTA::Control::Sendmail - fix the comment of virtual file. - not use str.str. - _remove_postfix_style_virtual() -> remove_postfix_style_virtual(). - - FML::Process::Configure - fix comments (FNF). - $curproc->allow_reply_message() -> $curproc->is_allow_reply_message(). - - FML::Process::Flow - remove _xxx() methods among modules::rename _XXX() to sysflow_XXX(). - - FML::Process::Utils - fix comments (FNF). - remove is_safe_syntax(), which is not used. - rename allow_reply_message() to is_allow_reply_message(). - - Mail::Delivery - fix typo::EMTP -> ESMTP. - - Mail::Bounce::Exim Freeserve GOO Qmail Smtpfeed - clean up. - FNF. - use self->address_clean_up($addr, $addr) to clean up address if could. - - FML::Demo::Calendar - fixed::_Calender -> _calender - - FML::IPC::Queue - set umask(077) in creating a tmp file. - - FML::MTA::Control - rename _remove_postfix_style_virtual() to - remove_postfix_style_virtual(), which is used among plural - modules. - not use str.str form. - - FML::Process::Command - $use_command_mail_reply_preamble toggles off::on to show the preamble - of command reply. $use_command_mail_reply_trailor toggles command - processing summary. - - FML::Process::Distribute - more strict error handling. - more comments. - - FML::Process::Fake - fix comments. - fix error handling. - - FML::Process::CGI::Kernel - remove the duplicated code. - use Mail::Message::Date instead of `date`. - fix comments. - - FML::Restriction::Command - croak() -> logerror(). - fix comments. - - Mail::Delivery::Queue - add randam factor into exponential back off. - back off is upper limited by 4000 sec. - - Mail::Delivery::Net::INET4 - set timeout for socket(2). - - Mail::Message::Encode - use Jcode always. - - Mail::Message::MH - sort the output for a,b,c style input. - - FML::Filter::External Header Size TextPlain - FML::Filter::ErrorStatus - FML::Filter - use FML::Filter::ErrorStatus instead of ErrorStatus. - - FML::Process::Kernel - fml-devel YYYYMMDD -> fml $version (7.9x.y-YYYYMMDD) - - modified to use incoming_message_header(), temp_file_path() et.al, to - avoid raw descrptions. - - bug fix config.cf search algorithm. - - defne sysflow_XXX() methods used in FML::Process::Flow. - - not use str.str form. - - clean up. - - Tie::JournaledDir - fix comments, error messages. - - Tie::JournaledFile - fix comments, error messages. - more defined() checks. - -2005/05/01 - - 現在のソースコードを fml 7.98.1 (cvs tag fml-7-98-1)と定義する。 - なお、スレッドのコードを修正後に fml 7.99.1 とする。 - -2005/01/19 - - FML::Merge::FML4::RULES.txt - FML::Merge::FML4::Rules - - update rules - - FML::Process::QueueManager - logwarn() -> logdebug() for "... try later." message. - -2005/01/01 - - FML::Header - handle X-Stardate::and Precedence: header field - - FML::Process::Error - override Reply-To::and Errors-To: header fields to rewrite the address - the error message sent to in forwarding. - - FML::Process::Kernel - enhanced general reply message system. - o add X-Stardate:, Precedence::and Errors-To: header fields. - o enhance Reply-To::field handling. - - FML::Merge::FML4::config_ph - system_timezone = +0900 - -2004/12/30 - - variables - define $outgoing_mail_header_x_ml_name - - FML::Header - rewrite_errors_to use $outgoing_mail_header_errors_to to rewrite - Errors-To: header field ($maintainer by default). - - FML::Merge - cosmetic changes: $VARIABLE format, "\n". - - FML::Merge::FML4::RULES.txt - FML::Merge::FML4::Rules - fix definitions - - FML::Merge::FML4::config_ph - enhanced to handle variables properly. - o Errors-To: - o time zone. - o handle old definitions e.g. subject tag, old variables in fml 2 age. - o "ignore" operation print out comments. - o fix content of *_dir and *_map variables. - -2004/12/29 - - FML::Process::Kernel - verify config.{cf,ph} existence - - FML::Merge::FML4::config_ph - handle use_fml8_value definitions. - translate outgoing_address. - - FML::Merge::FML4::RULES.txt and FML::Merge::FML4::Rules - convert OUTGOING_ADDRESS - care for a few old configurations - -2004/12/23 - - FML::CGI::Calendar - FML::Process::Calendar - FML::Demo::Calendar - Calendar::Lite is removed. - move Calendar::Lite to FML::Demo::Calendar since this module needs - FML::* class. - -2004/12/19 - - FML::Process::Emulate - emulate fml4's mead.pl and msend.pl - - FML::Process::Kernel - $debug_module_regexp_list restricts debug regions. - -2004/12/18 - - デバッグモードでログの出方が変わるようにしました。 - - variables - define $use_debug to control log messages. - - FML::Process::Kernel - logdebug() works if debug = yes defined. - -2004/12/15 - - Mail::Delivery::Queue - randomize queue list more in fair-queue mode. - implement clean_up() method - - FML::Process::QueueManager - log delay time in success of delivery. - - FML::Process::Utils - implement remove_too_old_files_in_dir() method. - - FML::Process::Kernel - remove too old files in tmp/ and incoming queue. - - FML::Merge::FML4::RULES.txt - fix/update rules - - FML::Merge::FML4::Rules - regen. - - FML::Merge::FML4::config_ph - support more special conversion rules - -2004/12/09 - - FML::Merge - enhance arguments of translate() call to pass $diff. - - FML::Merge::FML4::config_ph - FML::Merge::FML4::Rules based version. - implement fallback mechanism to support complicated cases. - - FML::Merge::FML4::RULES.txt - keywords changed - - FML::Process::Emulate Kernel - run fallback to generate config.cf when config.ph is newer - than config.cf. - - etc/compat/fml4 - use -i option to generate default_config.ph - - FML::Merge::FML4::RULES.txt - fix rules - - FML::Merge::FML4::Rules - rules fixed. - - FML::Merge::FML4::config_ph - enhance special handlings to support more rules - -2004/12/08 - - Mail::Message - implement message_chain_as_array_ref() method. - -2004/12/05 - - FML::Article Digest Error Filter Mailer Merge Parse - FML::Article::Sequence - FML::Command::Auth Filter HTMLify SendFile - FML::Command::User::admin - FML::Error::Analyze - FML::Error::Analyze::histgram - FML::Process::Command Configure Distribute Error Kernel - QueueManager State Utils - FML::Process::CGI::Kernel - FML::Restriction::Command Post - FML::User::Control - define logdebug() to disable log messages. - modified to use proper log$role(). - bug fix log messages if needed. - - -2004/11/25 - - fml4 の fml.pl を fml8 の fml.pl に入れ換え可能とした。 - /usr/sbin/sendmail (sendmail 互換コマンド)みたいな扱いですね。 - - fml.pl (fml8) が起動された時に config.cf が見つからないと、 - MLのホームディレクトリにある config.ph から config.cf を生成し、 - それを使うことで fml8 プロセスとして動作します。 - - 設定ファイルの自動変換が可能な範囲は限られていますが、fml4 の - メニューで設定可能な(単純な)ものなら自動変換して何とかなるよう - になっています。 - - variables - defind $compat_* - - FML::Install - define install_compat_dir() method to install - etc/compat/ dir for fml4 compatibility codes. - - FML::ML::Control - implement install_config_cf() method to install only config.cf. - - FML::Command::Admin::mergeml - clean up around set_target_system() - - FML::Process::Utils - o mkdir()::bug fix defined check for specified mode. - o implement default_config_cf_filepath() method. - - FML::Merge - speculate_default_config_ph_path() returns specified location of - default_config.ph if ::usr::local::fml::default_config.ph not found. - - FML::Process::Emulate Kernel - implement fallback function in resolve_ml_specific_variables(). - - when resolver fails, resolve_ml_specific_variables calls fallback if - specified. - - FML::Process::Emulate uses this fallback mechanism to generate a - config.cf from fml4's config.ph file at the first time. - -2004/11/24 - - FML::Command::Admin::mergeml - generate merge() method by separeting codes. - -2004/11/23 - - FML::Process::Kernel - fix white space cosmetics. - - FML::Process::Emulate - re-implement fml.pl as fml4 emulator which emulates fml8's - article_post or command_mail functions by following the arguments. - - TODO::when config.cf not exists, convert fml4 configurations to fml8 - ones on the fly. - -2004/11/21 - - メニュー形式で設定変更を可能にする - まだ CUI だけしかできていないし、とりあえず使えるけど準備段階 - - variables - define $fml_default_{cui,gui}_menu for configuration interfaces. - - installer - install menu - - FML::Config - dump_variables can return results as HASH_REF if get_diff_as_hash_ref - mode specified. - - implement merge_to_file() method to dump hash values into - configuration file. - - FML::Process::Kernel - import default_{cui,gui}_menu from main.cf name space. - - FML::Process::Utils - implement get_{cui,gui}_menu() methods. - - FML::Config::Menu - fix menu path from testbed one. - -2004/11/14 - - Mail::Message::ToHTML - add monthly thread index - - FML::Restriction::Post - define $article_post_article_thread_lifetime anyway (hmm, valid?) - - variables - article_post_article_thread_lifetime ? - スレッドの続きであれば短時間のあいだ、 - From: に関わらず投稿を許すオプションの”時間”を指定する。 - でも、この変数名でいいかなぁ? - -2004/11/03 - - ちょっとクリーニング中… - - etc/dot_htaccess - add dummy configuration for convenience: - AuthUserFile "/dev/null" by default. - - FML::Process::Distribute - rename private method::_distribute -> _deliver_article_prep - -2004/10/31 - - クリーニング中… - - Mail::Message::Thread - bug fix comment::fixed return value - - FML::Article::Thread - sort, clean up. - -2004/10/28 - - (まだ暫定版ですが)記事の投稿時に、スレッドの続きであれば短時間 - From: に関わらず投稿を許すオプションを追加しました。登録されて - いる以外のアドレスから、たとえば転送先からでも投稿を許すといっ - た場合には便利です。 - - デフォルトでは、もちろん使いません(明示的に設定が必要)。 - - FML::Restriction::Post - implement "check_article_thread" operation. - Itt allows post from someone who reffers articles within one weeks. - - FML::Article - update article message-id cache if article is saved successfully. - - FML::Header - bug fix and enhance reference extranction logic. - -2004/10/27 - - variables - add $article_message_id_cache_dir variable. - allow check_article_thread in $article_post_restrictions. - -2004/10/09 - - CGI skin selection - CGI の見栄えを選べるようにしました。 - いまのところ、menu.cgi は昔風の感じ、config.cgi は - fml8 デフォルトのテーブルベースのものです。 - - FML::Process::CGI::Kernel - show "back to top" menu in old fashion skin case. - - FML::CGI::Menu is removed. - - FML::CGI::Admin::Menu - FML::CGI::MLAdmin::Menu - FML::CGI::Admin::MenuOld - FML::CGI::Skin::Base OldFashion Wizard - implement plural GUI skins. - - create FML::CGI::Skin::* class. remove FML::CGI::Menu. - FML::CGI::Menu -> FML::CGI::Skin::Base and create sub classes - inheriting Base. - - etc/modules - Menu -> MenuOld for *::menu.cgi - -2004/10/06 - - ドキュメントのオーバホール - - libexec/loader.in - chop -> chomp - - FML::Process::Kernel - modify configuration error check: - o validate the value of $maintainer and $ml_address variables. - o disable checks for *.cgi processes. - -2004/10/03 - - newdomain および rmdomain コマンド - newdomain および rmdomain コマンドが作る/操作するファイルの - パーミッションを修正 - - FML::Process::Utils - implement chown() method for convenience. - -2004/09/29 - - インストーラの修正 - - etc/ - define new variable $group_writable_config_dir. make configure - controll $group_writable_config_dir and $primary_ml_home_prefix_map. - - FML::Install - set up $group_writable_config_dir. - -2004/09/06 - - fml 4 から 8 へ変換するコンバータの修正 - - FML::Merge - replace "::tmp::default_config.ph" with - speculate_default_config_ph_path() method. - - FML::Command::Admin::mergeml - launch warning on site_init.ph and site_force.ph if needed. - -2004/09/03-04 - - キューイングシステムの修正 - - FML::Process::Kernel - implement is_process_time_limit() method to warn that end of process - life time comes soon. - - Mail::Delivery::Queue - bug fix queue strategy info file hanling. - implement log(), {set,get}_log_function(). - log more and more. - log messages in removing queue - is_valid_queue() returns ok if the specified queue exists in active or - deferred queue. - - FML::Process::QueueManager - set log function for qmgr. - reset queue list fter rescheduling. - pull up $max_count to 100. - resolve lock confliction in queue manipulation. - fix message::remove too old queue ... - targets cleanup() operatites are non active queues. - - FML::Command::Admin::mailq - print only valid queue - show all entries not only within active queue. - -2004/08/30 - - 2004/08 の主要な変更点はキューイングシステムの拡張/修正です。 - 長いあいだ高負荷下で運用するとか file system full を定期的に起 - こすといった実験を繰り返しています。いまのところ大丈夫そうです。 - - 間違っていると致命的なところなので、おしえてください。 - - [TODO] - もう少し、たまったキューの処理の順番など賢くする必要があります。 - - deferいがいに明示的にdefer/activeを操作するためのholdキューと - 特定のキューを優先制御する仕組み - -2004/08/20 - - Mail::Delivery::Utils - eval q{} - -2004/08/15 - - キューイングシステムの拡張 - e.g. 遅延の場合 exponentail back off をおこなう - - FML::Process::QueueManager - Mail::Delivery::Queue SMTP - implement voluntary sleep::wakeup queue mode switching. - o implement queue management utilities. - o move queue from active to deferred if delivery failed. - o rename *_strategy to *_policy - o overhaul::clean up internal style. - - FML::Process::QueueManager - specify queue strategy to get proper queue list. - currently we use "fair-queue". - bug fix condition that empty queue or not - - Mail::Delivery::SMTP - log $recipient_limit info if limit != 1000 - - Mail::Delivery::Queue - implement basic queue management strategy. - - FML::Article - log more info in failing over. - - FML::Process::Distribute - warn "not queue flush due to MTA fatal error.". - -2004/08/14 - - キューイングシステムをいろいろと微修正 - - FML::Process::Kernel - clean up mail queue periodically. - ensure initial value to be defined. - - FML::Process::QueueManager - process 2 requests in one process (temporary solution). - XXX-TODO::enhance qmgr more cleverly. - - change arguemnts for new() and send(). - implement template of cleanup() method. - - change cleanup() logic: - get all queue id list and remove too old invalid queue. - - Mail::Delivery::Queue - clean up new(). - - list() can take an argument for $class if needed. - - implement is_valid_queue() and get_class_list() methods. - - implement list_all(), last_modified_time(). - remove get_class_list(). - - FML::Filter::External - FML::Process::{Distribute,State} - temporal failure when external filter process timeouts. - - if external filter process timeouts, notify it to $curproc layer, and - distribution process exit(75) for temporal failure. - - implement filter_state_{set,get}_tempfail_request(). - - FML::Command::Admin::mailq - show number of requests if requests > 0 - - IO::Adapter::File - back up sequence file before operation. - rollback file itself in emergency if could. - -2004/08/12 - - FML::Process::Kernel - define default subject used if unspecified - -2004/07/27 - - FML::Install - implement message_nl() and modified to use it. - - FML::Process::Kernel - log error message::exit(EX_TEMPFAIL) to retry later. - -2004/07/25 - - FML::Command::HTMLify - rewritten to use $curproc->thread_db_args() method for code sharing. - - FML::Process::Utils - thread_db_args() returns htmlifier parameters with subject tag hints. - - Mail::Message::ToHTML - handle subject tag separetely in string escaping. - - Mail::Message - implement get_print_mode() - - Mail::Delivery::SMTP - override print mode of Mail::Message object to "raw" in fallbacking. - -2004/07/23 - - OVERHAUL ... - - FML::Confirm - modified to clarify that db is opened. - ensure initialized value. - fix comments (FNF). - - FML::Error - fix comments (FNF). - clarify error messages. - - FML::Filter - fix comments (FNF). - clarify messages. - - FML::Header - fix comments (FNF). - ensure initial value. - defined check more. - - FML::Install - bug fix existence of destination file. - - FML::PCB - use "return ..." always. - - FML::Article::Sequence - fix comments (FNF). - use ::::o if could. - - FML::Article::Spool - $dir -> $entry - fix comments. - - FML::CGI::ML - fix comments. - fix error messages. - - FML::Command::DirUtils - fix typo of error messages. - - FML::Command::Admin::subscribe - fix comments (FNF). - ensure initial value. - - FML::Command::Admin::subscribe - fix comments (FNF). - ensure initial value. - - FML::Command::Admin::unsubscribe - fix comments (FNF). - ensure initial value. - - FML::File::Rotate - remove not used variables. - - FML::Filter::MimeComponent - fix comments. - fix error messages. - - FML::Filter::Size - ensure initial value. - - FML::Filter::TextPlain - fix comments. - use ::::o if could. - - FML::Header::MessageID - fix comments. - use "return ..." always. - - FML::Header::Subject - fix style (FNF). - use ::::o if could. - - FML::IPC::Message - check input data. - - FML::Process::Command - fix comments and error messages. - - FML::Process::Error - fix comments. - ensure initial value. - check $maintainer value. - - FML::Process::QueueManager - add qmgr::prefix to log messages. - - FML::Command::HTMLify - fix comments. - use ::::o if could. - - FML::Command::Admin::changepassword - fix error messages - - FML::Command::Admin::mergeml - fix error messages - - FML::Process::CGI::Param - fix error upcall - - FML::Restriction::Base - fix comments. - - FML::User::Control - fix error messages. - ensure initial value. - - FML::User::Info - fix typo - - Mail::Message::Date - fix comments. - modify variable name to clarify the role. - - Mail::Message::Encode - bug fix arguments. - - FML::Process::CGI::Kernel - fix typo. - show nl error message if could. - - FML::Process::Utils - fix comments, style and add loop label, ... (FNF). - ensure initial value. - - FML::IPC::Queue - change constructor argument (but not used yet). - fix error messages. - fix comments. - -2004/07/18 - - imported im-147. - -2004/07/11 - - オーバホールひきつづき実施中です。 - - Calendar::Lite - fix comments. - fix "a"."b" -> "ab" form. - - IO::Adapter - IO::Adapter::AtomicFile DBI File MySQL - fix comments. - explicitly use "return". - modify error messages. - ensure initialized value. - -2004/07/07 - - Mail::Message::Address - put back initializtion code to 1.3 one. - -2004/07/06 - - FML::Command::User::subscribe unsubscribe - always ignore arguments of {subscribe,unsubscribe} command - mail requests to ensure more correct confirmation. - -2004/07/01 - - FML::Process::Distribute - Mail::Message::ToHTML - reduce error messages - -2004/06/30 - - オーバーホール実施中 (2004/06/27 - ) - - FML::Command::Admin::digest digestoff digeston on spool - IO::Adapter - IO::Adapter::Array ErrorStatus NIS UnixGroup - Mail::Bounce - Mail::Bounce::DSN Exim FixBrokenAddress Freeserve GOO - Postfix19991231 Qmail SimpleMatch Smtpfeed - Mail::Bounce::Language::Japanese - Tie::JournaledDir JournaledFile - overhaul: - fix comments and messages. validate initial value. - -2004/06/29 - - FML::Process::Distribute - mark by stop_this_process() when submission denied. - - オーバーホール - FML::Command::Admin::chaddr off - FML::Command::User::admin digest unsubscribe - Mail::Message::Address - Mail::Delivery - Mail::Delivery::ESMTP ErrorStatus QueueUtils - Mail::Delivery::Net::INET4 INET6 - [overhaul] - o fix comments. - o fix messages/error messages. - o use //o if could. - o specify initial value. - -2004/06/27 - - FML::Filter::External::clamscan - fix typo - - FML::Cache::Journal - overhaul: - o fix comments. - o defined() check. - - FML::Cache::Ring - overhaul: - fix comments. - x.y -> sprintf(format, x, y) - fix return value. - change variable name to be more readable. - - FML::Command - overhaul: - fix comments. - use ::::o if could. - bug fix notice_cc_recipient handling. - reverse command_mode check code. - - FML::Command::Auth - fix comments. - quotemeta search key. - - FML::Command::Syntax - fix comments. - my (@var) = ... style. - - FML::Command::Admin::edit - fix comments. - warn() -> ui_message(). - - FML::Command::Admin::get - fix comments. - bug fix reset of $command_args values. - - FML::Command::Admin::list - fix comments. - change private method name. - modify sanity check a little. - - FML::Command::Admin::log - fix comments. - change default::tail -100 by default. - - FML::Command::User::chaddr - bug fix::implement verify_syntax(). - - FML::User::Control - tune IO::Adapter::close() timing. - - use TERM_NL(map) style not which_map_nl() where TERM_NL() can handle - charset dependent map name translation. - - FML::Process::Utils - re-implement which_map() - - FML::Process::Kernel - TERM_NL() macro support in message translation. - - Mail::Message - Mail::Delivery::Queue SMTP - FML::Process::Distribute - queue system debug::trace number of bytes written. - - Mail::Delivery::Queue - validate if message object supports write_count() method. - - IO::Adapter::AtomicFile - close() allows 0 byte file e.g. in the case so that all content is - removed. - - IO::Adapter::File - bug fix delete(): - o not apply quotemeta() for key. - o autoflush(1) - o check the number of matching, return error if no any matched line. - -2004/06/25 - - FML::Filter::External::{bogofilter spamc clamscan} - FML::Process::Distribute State - preliminary support of build-in virus/spam checker. - - FML::Command::Admin::dir - clean up. - handle CUI case (ok?) - - FML::Process::QMail - nuke old style FML::Log use. - -2004/06/23 - - Mail::Message::Subject - bug fix::delete_dup_reply_tag() runs always. (fml-devel: 711) - -2004/06/17 - - パッケージ化のための変更。ちょっと間違ってた _o_ - FML::Install - fix message of $default_config_dir installation when - install_root specified. - fix install path of $ml_spool_dir when install_root specified. - -2004/06/14 - - メールキューイングの仕組みを、もっと正確にしました。 - - たとえば、ファイルシステムが溢れた時も可能な限り、再送処理を - 行なうようになりました。 - - 処理のどの段階で file system full になったかによって - MTAからfmlを呼ぶ出す際のリトライ、fml自身による再送などが - 適宜、おこなわれます。 - - くわしくは、チュートリアルのトラブルシューティングあたりに - 書いておきます。参照して下さい。 - - - Mail::Message::ToHTML - bugfix @indexs use my $indexs = \@indexs; - - FML::Process::Kernel - defined($header) check before calling update_message_id_cache. - -2004/06/13 - - Mail::Message::ToHTML - set $main::opt_mimedecodequoted at - _print_li_filename(),_format_safe_header() - - Mail::Message::DB - null check $key at _db_set() - - Mail::Message::ToHTML - select index files using @indexs - -2004/06/09 - - FML::Header - FML::Process::Kernel - separate message-id duplication check and cache updating. - cache updating when process ends. - -2004/06/08 - - パッケージシステムのためにインストーラを拡張した - パッケージを作る際に、どこか仮想的なディレクトリに - 一度インストールする必要があるなら、 - - make install install_root=/some/where - - を使って下さい。/ のかわりに /some/where 以下へ - インストールされます。もちろんインストールされる各ファイルに埋 - め込まれているパスは /some/where 部分がない状態のものです。 - - 注意: 他のシステムでは - - make install prefix=/some/where - make install DESTDIR=/some/where (←きっとBSDな人でしょう) - - などが使われることもありますが、パッケージシステムを作る人にし - か関係がないこと、そして configure --prefix とまぎらわしいという - 理由により、prefix ではないキーワードを使っています。 - - install.pl.in - FML::Install - enhanced to enable "make install install_root=::prefix" for - package system. - - install_root is the prefix that is prepended to the pathnames - of installed files. - - [IMPORTANT] - - In a lot of systems, "make install prefix=::prefix" is used. - But it is confusing against usage of othre software e.g. - ".::configure --prefix=::prefix". So, we avoid this confusion - to use other keyword, which is same as Postfix. - -2004/06/02 - - Mail::Bounce::SimpleMatch - add yahoo.co.jp - change ybb.ne.jp end pattern - -2004/05/28 - - FML::Article - When we fail to create article file, we try to save the original - message at least. - -2004/05/25 - - メールキューとエラーリカバリの拡張 - - loader - define global variable $ERROR_EXIT_CODE for emergency handling. - run exit($ERROR_EXIT_CODE) if error. - - FML::Process::Kernel - implement exit_as_tempfail() - - firstly queue in. Secondarly parse it after writing of the queue is - verified. - - implement clean_up_incoming_queue(), which is run at the last of - process. - - FML::Process::QueueManager - modify log message format a little. - $q->valid() changed to $q->valid_active_queue(). - - FML::Process::Flow - call $process->clean_up_incoming_queue(); - - FML::Process::Distribute - exit(EX_TEMPFAIL) when we cannot update article sequence. - - if setrunnable() for the current article queue failed, - try to deliver it on the fly anyway. - - new FML::Filter $curproc; - bug fix my() usage. - change log message around queue id. - - FML::Process::State - fix comments (FNF). - - add methods: - filter_state_set_error() - filter_state_get_error() - mail_queue_set_incoming_queue() - mail_queue_get_incoming_queue() - - FML::Article::Sequence - more strict write error tracking - - FML::Article - more strict write error handling. - - - FML::Cache::Ring - import data from file directly. - Actually, link(2) $src to cache file. - - Mail::Delivery::Queue - check write error more strictly. - - define incoming queue. - implement new method::incoming_file_path(), incoming_dir_path(). - - not set transport (not touch transport info file) by default. - - more rigid write error tracking. - - rename valid() -> valid_active_queue() to clarify the role. - - Mail::Message - \*HANDLE -> *HANDLE{IO}. - imlement error*(). - write error track. - - IO::Adapter::File - more strict write error tracking. - sequence_increment verifies if the value is writtern. - - IO::Adapter::AtomicFile - check temporary file is non-zero. - - variables - define variables around article_spam_filter and article_virus_filter. - - FML::Filter - preliminary external spam::virus checker support. - new() takes $curproc as an argv. - use filter_state_set_error() to save determined action for later use. - - FML::Process::Command - new FML::Filter $curproc; - -2004/05/22 - - HOOKの名前を整理整頓する。 - - variables - error_analyzer_day_limit -> error_mail_analyzer_day_limit - error_analyzer_cache_dir -> error_mail_analyzer_cache_dir - error_analyzer_cache_type -> error_mail_analyzer_cache_type - error_analyzer_cache_mode -> error_mail_analyzer_cache_mode - error_analyzer_cache_size -> error_mail_analyzer_cache_size - error_analyzer_function_select_list -> error_mail_analyzer_function_select_list - error_analyzer_function -> error_mail_analyzer_function - error_analyzer_simple_count_limit -> error_mail_analyzer_simple_count_limit - - FML::Process::Command - add $command_mail_filter_{start,end}_hook hooks. - rename $command_*_hook -> $command_mail_*_hook. - - FML::Error - FML::Command::Admin::error - FML::Error::Analyze::histgram simple_count - FML::Error::Cache - rename variable::$error_* -> $error_mail_* - - FML::Process::Error - rename hooks::$error_*_hook -> $error_mail_analyzer_*_hook - - FML::Process::Distribute - add $article_post_XXX_hook but $distribute_XXX_hook is available too. - add $article_header_rewrite_{start,end}_hook - add $article_filter_{start,end}_hook - - FML::Process::Digest - rename hook::digest_*_hook -> article_digest_*_hook - - -2004/05/21 - - FML::Process::Distribute - shorten lock period in delivery - -2004/05/19 - - FML::Process::Switch - getopts case SENSITIVELY - - FML::Process::Distribute - not process _deliver_article() when error set by stop_this_process(). - - FML::Process::Kernel - -o overwrite options runs twice to ensure overwrite. - - variables - $use_article_delivery = yes - $article_delivery_transport = smtp - - Mail::Delivery::Queue - handle transport infomation. - fix comments. - -2004/05/18 - - 記事の配送システムもキューイングベースへ移行する - これで、すべての配送が一度メールキューに書くパターンになった。 - - FML::Article - bug fix::avoid duplicated initialization. - change $curproc->{ article }->{ KEY } style to method-based. - - FML::Process::Distribute - enable mail queue based delivery - - Mail::Delivery::Queue - support lock({ lock_before_runnable => yes }) extension. - - FML::Process::Distribute needs such option to own the current article - delivery by itself to distinct it from queue flush system on other - processes. - - FML::Process::State - implement set_article_id(), get_article_id(), - smtp_server_state_set_error() and smtp_server_state_get_error(). - -2004/05/17 - - 配送システム オーバーホール、つづき - - Mail::Delivery::Utils - implement {set,get}_map_status() - ensure numeric value - - Mail::Delivery::SMTP - implement fallback when it fails to send the mail to all MTA's. - failed message is inserted into mail queue for later delivery retry. - - Also, shorten retry count $max_loop_count since fallback is - implemented now. - - define {set,get}_last_command(), {set,get}_send_command_status(). - modified to use them. - - rename::socket_is_connected -> is_socket_connected - - FML::Process::Distribute - enable delivery fallback - - FML::Mailer - pass params $smpt_servers and $smtp_recipient_limit into - delivery system - -2004/05/16 - - 配送システム オーバーホール - - FML::User::Control - enhance print_userlist() for command mail. - - Mail::Delivery::SMTP Utils - rollback if DATA error occurs. - rename _get_*() -> get_*(), _set_*() -> set_*() since private methods - should not be shared over modules. - remove private method. - s/_rollback_map_position/rollback_map_position/g; - s/_reset_mapinfo/reset_mapinfo/g; - - Mail::Delivery::Utils - not export _smtplog - - Mail::Delivery::SMTP - clean up message, log. - fix retry logic. - define $MAP_ERR_OPEN. - log status of done or not (log only yet). - - FML::Command::Admin::list - remove is_cgi related codes. - -2004/05/02 - - variables - +html_archive_default_charset - +html_archive_charset_ja - +html_archive_charset_en - +path_bogofilter = @BOGOFILTER@ - +path_clamscan = @CLAMSCAN@ - - FML::Process::Utils - remove language_default(). - language_of_html_file() return $html_archive_default_charset. - - コマンドの追加(対称性、操作をしやすくするため) - admindel - moderatoradd - moderatordel - -2004/05/01 - - 非対称のユーザ制御コマンドを色々追加する。 - add2active - add2actives - add2member - add2members - add2recipient - add2recipients - addactive - addactives - addmember - addmembers - addrecipient - addrecipients - - FML::Header - modify List-* header message and condition a little. - -2004/04/30 - - コマンドのより厳しいエラーチェック - - FML::Command::Admin::{digest,off,on} - more restrict error checks. - - FML::Command::Admin::changepassword - more restrict error checks. - fix rewrite_prompt(). - - FML::Command::User::admin - call command specific rewrite_prompt() if could. - - FML::User::Control - return error messages more. - call croak() if critical error. - -2004/04/27 - - variables - define $etc_dir and fixed to use it. - newml command creates $etc_dir. - - IO::Adapter の検索 API を少し変更する - IO::Adapter 側で quotemeta() の心配をするとかしない。 - 渡された $regexp を信じるので、呼び出す側で考慮しないといけない。 - - IO::Adapter - use $regexp as itself, not quotemeta()-ify. - - FML::Process::Debug - move quotemeta($regexp) from IO::Adapter to here. - compare domains case insensitively. - - FML::ML::HomePrefix - bug fix search logic. - move quotemeta() from IO::Adapter to here. - - FML::Credential - implement is_same_domain(). - move quotemeta() from IO::Adapter to here. - - FML::Process::Utils - method-ify some module internal functions. - bug fix search logic of ml_home_prefix. - move quotemeta() from IO::Adapter to here. - - FML::User::DB - move quotemeta() from IO::Adapter to here. - - FML::Process::Kernel - fix comments. - use $str->charcode_convert_to_external_charset(), remove - hard-coded 'jis'. - - FML::Command::Auth - bug fix search logic. - move quotemeta() from IO::Adapter to here. - - FML::Header::Subject - remove _delete_subject_tag(). - method-ify delete_subject_tag(). - -2004/04/23 - - BUG FIX: パスワードファイルの初期化バグ修正 - - FML::Command::Auth - bug fix: we need to touch etc/passwd-admin file firstly. - -2004/04/22 - - コマンドメールの返事を、もっと静かに - - FML::Command::User::confirm - when unsubscribe command, stop the current process since - no more processing is required. - XXX ? hmm, wrong in some cases e.g. unsubscribe + guide. - XXX but ignore it ;-) - - FML::Process::Command - check $context if it is well defined. if ok, call command. - check value by command_context_get_normal_stop() to stop this - process. - - FML::Process::State - command_context_init() returns empty HASH_REF where it includes valid - command as the first valid argument. - - define command_context_set_normal_stop(), - command_context_get_normal_stop(). - - FML::Article::Sequence - bug fix::need open() before getline() - -2004/04/21 - - FML::Process::Utils - bug fix mkdir()::str to octal handling bug - -2004/04/20 - - FML::Command::Admin::error - -O algorithm= option - - [BUG FIX] makefml でエラーがでるのを直した。 - ごめんなさい、設定ファイルの TYPO が原因です。 - -2004/04/18 - - variable name clean up: - _list -> _select_list - - s/cgi_language_list/cgi_language_select_list/; - s/cgi_menu_address_map_list/cgi_menu_address_map_select_list/; - s/error_analyzer_function_list/error_analyzer_function_select_list/; - s/template_file_charset_list/template_file_charset_select_list/; - - FML::CGI::List - FML::Command::Admin::error - FML::Process::CGI::Kernel Utils - - FML::PCB Config - FML::Process::State - preparation of context switch (preliminary. not yet implemented) - - FML::Restriction::Base - remove regexp() method, which not used. - fix description. - -2004/04/17 - - log rotation が出来るようにした。 - - variables - define $log_ratate variables - - FML::File::Rotate - modified to current fml8 style. - - FML::Process::Utils - implement log_rorate() - - FML::Process::Kernel - run $curproc->log_rorate() lastly - - File::* クラスを一掃する。 - - FML::Process::Kernel - FML::Cache::Ring - File::CacheDir is removed - imported into FML::* once. File::CacheDir -> FML::Cache::Ring - - FML::IPC::Queue - use queue on memory by default. - -2004/04/15 - - Mail::Message - Content-Type case-insensitive in _data_type() - - File::CacheDir - IO::Adapter based sequence operation. - -2004/04/13 - - FML::Article::Sequence - bug fix variable initialization. - - FML::IPC::{Message,Queue} - implement basic handling code of queues on file system. - - FML::IPC::Queue - implement rollback() - -2004/04/11 - - IO::Adapter の拡張 - ロックおよび sequence 取り扱いの機能を IO::Adapter へ移した - - IO::Adapter - IO::Adapter::File - File::SimpleLock - import lock mechanism from File::SimpleLock class. Now IO::Adapter - provides lock() and unlock() metohds though file map only is - supported. - - FML::Article::Spool - FML::MTA::Control::Postfix Procmail Sendmail - FML::Process::Utils - implement copy() and append() methods $curproc provides to remove - File::Utils class. - - FML::Process::Kernel - IO::Adapter based lock system - - IO::Adapter - IO::Adapter::File - implement methods suitable for sequence file operation. - + sequence_increment() - + sequence_replace() - - FML::Article::Sequence - FML::Digest - switch File::Sequence to IO::Adapter based sequence operation - -2004/04/02 - - FML::Process::Utils - define fml_owner_address() - - FML::Process::Error Kernel - fix reply_message() system to handle smtp_sender properly. - moify libexec::error to forward mail which smtp sender is fml_owner(). - - Calendar::Lite - show events with , separator - -2004/03/31 - - 総書き直しをした新しいスレッドシステムへ切替える。 - - etc/modules - switch to FML::CGI::Thread (purge old thread module) - - FML::CGI::Thread - check existence of $ml_name value. - use Japanese title. - - FML::CGI::Menu - FML::Process::CGI::Kernel - move config.cgi specific methods run_*() from - FML::Process::CGI::Kernel to FML::CGI::Menu. - - FML::CGI::Menu - use cgi.config.$key as message translation - - FML::Article::Thread - FML::CGI::Thread - modify message output engine. - enable close operation. - - Mail::ThreadTrack is removed. - Mail::ThreadTrack is obsoleted. - - FML::Command::Admin::thread - FML::Process::Distribute Switch - FML::CGI::ThreadTrack - Mail::ThreadTrack is obsoleted. remove related codes. - -2004/03/29 - - FML::Command::Admin::thread - list sub command do not run print_one_line_summary(). - fix typo. - - FML::Article::Thread - FML::CGI::Thread - preliminary implementation of thread GUI. - -2004/03/28 - - スレッド操作の再構成 - - Mail::Message - implement methods to detect the end of thread: - has_closing_phrase() - set_closing_phrase_rules($rules) - get_closing_phrase_rules() - - implement one_line_summary($params) and summary($params) to return - summarized content. - - Mail::Message::String - implement is_citation(), is_signature(). - - Mail::Message::MH - check if the sequence is positive value. - - Mail::Message::Thread - implement get_thread_data(), get_thread_member_as_array_ref(). - - define new db::thread_status article_status - - implement new methods::set_thread_status(), get_thread_status(), - set_article_status() and get_article_status(). - - Mail::Message::DB - implement get_thread_data() which return thread data around the - specified key. - - define new db::thread_status article_status - - implement new methods::set_thread_status(), get_thread_status(), - set_article_status() and get_article_status(). - - bug fix handling of range expanded by Mail::Message::MH module. - - Mail::Message::{DB,Thread} - define {set,get}_article_summary() and article_summary db to handle - article summary easily. - - FML::Process::Distribute - move details of thread manipulation to FML::Article::Thread as could - as possible. - - FML::Header::Subject - Mail::Message::Subject - fix usage of Mail::Message::Language::Japanese::Subject. - - FML::Article::Thread - re-implemented for further plan to purge Mail::ThreadTrack. - - FML::Command::Admin::thread - re-implemented. currently FML::Article::Thread based one. - -2004/03/24 - - Mail::Message::DB IMPLEMENTATION TODO ToHTML - clean up campaign around thread function. - rename function name: - o thread_summary -> get_thread_summary - o tohtml_thread_summary -> get_tohtml_thread_summary - o msg_time -> get_time_from_header - -2004/03/23 - - etc/command_line_options - FML::Command::Admin::spool - FML::Process::Utils - try to allow -O key=value command line options. Internally each - function uses cui_command_specific_options() to get the command - specific options. - - etc/command_line_options - FML::Command::SendFile - FML::Command::Admin::get - FML::Process::Kernel Utils - allow CUI(fml,makefml) to send messages. - this function disabled by default. - fml and makefml can use --allow-send-message --send-to=ADDRESS - option for it. - - FML::Command::DirUtils - modified for "--allow-send-message --send-to=ADDRESS" option. - - -2004/03/20 - - FML::Merge - FML::Merge::FML4::List - FML::Merge::Config - switched to FML::Merge::Config based coding. - -2004/03/15-17 - - fml4 の設定を fml8 のものへ半自動変換するツールを実装した。 - implement basic fml4 to fml8 converter. - - 注意: 変換ルールは、まだまだ、チューニングが必要。 - - FML::Merge::* - implement preliminary config.cf translator. - - FML::Merge - tune key output order. - postpone some variables e.g. *_HOOK. - - FML::Merge::FML4::config_ph - bug fix article_subject_tag conversion rule - oops, fix missing escapes - - FML::Merge::FML4::Config - install some files to be used continuously e.g. seq, summary, - log, ... - - FML::Command::Admin::newml - implement {set,get}_force_mode(). - modified to use it. - - FML::Command::Admin::merge - disable_include_files() -> disable_old_include_files() - - * several bug fixes - - FML::Credential - run _reconfigure in constructor, too. - delay $config evaluation - - IO::Adapter::File - modify touch() to use FileHandle not IO::File - - FML::Process::Distribute - implement toggle of filter function by $use_article_filter - -2004/03/14 - - コマンドメールまわりを書き直す(その2) - - variables - fix $command_mail_restrictions by using new rules: - permit_anonymous_command, permit_user_command rules. - - FML::Process::Kernel - remove permit_command(). - - FML::Process::State - implement the following methods: - restriction_state_init() - restriction_state_set_deny_reason() - restriction_state_get_deny_reason() - restriction_state_reply_reason() - error_message_set_count() - error_message_get_count() - - change some code to "... if $debug". - - implement command_context_set_ml_name() and - command_context_get_ml_name(). - - This is preliminary codes for more extension so that we need - to care authentication differs among ML's when we enhance - command processor for listserv emulation. - - FML::Process::Distribute - use restriction_state_reply_reason() to shling code size. - clean up. - - FML::Process::Command - modify command analyze logic. currently, apply - $command_mail_restrictions for each command line, if ok, - execute the commmand via FML::Command. - - FML::Restriction::Post - modified to use restriction_state_*(). - move permit_anonymous_command_mail() to FML::Restriction::Command. - - FML::Restriction::Command - implement permit_user_command() and permit_anonymous_command() - methods. - - inherit methods from FML::Restriction::Post class if needed. - - implement permit_admin_member_maps and - check_admin_member_password in FML::Restriction::Command class. - - modify $admin_command_mail_restrictions to switch to use them. - - FML::Command::User::admin - fix comments (FNF). - renamed to _apply_{old,new}_admin_command_mail_restrictions(). - - implement permit_admin_member_maps and - check_admin_member_password in FML::Restriction::Command class. - - modify $admin_command_mail_restrictions to switch to use them. - -2004/03/13 - - makefml/fml extension - makefml --mode=user --allow-send-message $command $ml ... - fml --mode=user --allow-send-message $ml $command ... - - 他のスクリプトや独自のCGIから、subscribeやunsubscribeの - confirmを送りたい時のことを考えて、以下のオプションを追加した。 - - fml --mode=user --allow-send-message $ml subscribe ADDRESS - - これを実行すれば、コマンドメールのsubscribeと同じコードが動き、 - confirmメールを ADDRESS へ送るようになる。 - - fmlコマンドやmakefmlコマンドはadminモードのコマンドを実行する - インターフェイスだが、この拡張のポイントはユーザモードの - subscribe コマンドを実行可能にすることでコマンドメールのエミュ - レーションをしているところにある。 - - なお、デフォルトでは、余計なメールが出ないように、メールでのメッ - セージ配送(例: 登録しました〜)をCUIは無視している。そのため、 - --allow-send-message オプションで明示的に、メールをユーザへ - 送るという指示をする必要があることに注意。 - - command_line_options - fml --allow-send-message --mode=user - makefml --allow-send-message --mode=user - - FML::Process::Digest Error Kernel - prepare credential area more early stage (within constructor). - so remove later object creation. - - FML::Credential - implement set_sender() and get_sender(). - - FML::Process::Utils - implement allow_reply_message() method. - - FML::Process::Kernel - use $curproc->allow_reply_message() to check if we should send back - messages. - - FML::Process::Configure - FML::Command::User::subscribe unsubscribe - fml --allow-send-message allows makefml::fml sends reply messages. - currently user mode "subscribe" and "unsubcribe" support this style. - -2004/03/12 - - variables - rename $reply_message_* -> $report_mail_* - change default vale of $log_command_tail_starting_location - - [*_program -> *_function] - - $use_command_mail_program -> $use_command_mail_function - $use_digest_program -> $use_article_digest_function - $use_distribute_program -> $use_article_post_function - $use_error_analyzer_program -> $use_error_mail_analyzer_function - - [command list] - - $commands_for_stranger -> $anonymous_command_mail_allowed_commands - $commands_for_user -> $user_command_mail_allowed_commands - $commands_for_privileged_user -> $admin_command_mail_allowed_commands - $commands_for_admin_cgi -> $admin_cgi_allowed_commands - - [restrictions] - - $post_restrictions -> $article_post_restrictions - $post_restrictions_reject_notice_data_type - -> $article_post_restrictions_reject_notice_data_type - - $command_restrictions -> $command_mail_restrictions - permit_commands_for_stranger -> permit_anonymous_command_mail - - $admin_command_restrictions -> $admin_command_mail_restrictions - -2004/03/04 - - コマンドメールのコードを全面的に書き直した。 - - new command mail framework - FML::Command - FML::Command::Auth - FML::Command::Admin::password - FML::Command::User::admin - FML::Process::Command - FML::Restriction::Command - FML::Process::State - - FML::Process::Command - fully rewritten. a lot of codes are moved to under - FML::Command:::class. - - FML::Restriction::Command - method-fy. - - syntax check is applied to each entry of space separeted command - string. - - FML::Command - implement verify_syntax(), simple_syntax_check() and - safe_regexp_match(). - - remove auth() method call for FML::Command::$MODE::$COMMAND, - which is not used. - - FML::Command::Auth - show detalis of error messages more. - - FML::Command::Admin::password - implement verify_syntax() method. - - FML::Command::User::admin - now, user mode "admin" command becomes entrance for priviledged - command world. - - The main part of $admin_command_restrictions is moved from - FML::Process::Command to here. - - implement verify_syntax(), which is a wrapper for other admin - commands. - - implemnt need_lock(). - - FML::Article::Summary - charcode_convert() -> charcode_convert_to_external_charset(). - - FML::Restriction::Base Command - prepare and use command mail specific definitions. - -2004/02/29 - - Mail::Message::Language - accept_language_list() return [] not [*] if not found. - -2004/02/27 - - コマンドの返事を返す際に、より正しい言語選択を行なう - 必要なら(というより判断がつかないなら)、複数の言語で返す。 - - FML::Process::Kernel - fix comments on reply_message() around. - reply_message() handles request when the current process runs - under MTA. fix regexp optimization. - - define __convert_message_nl() and use it. - allow loader program uses reply_message() method. - - select proper language for reply message based on Accept-Language, - Content-Type and language preference order. - use plural languages if needed. - - FML::Process::Utils - define lang_to_charset(). - fix return value for some methods. - use "print if $debug" in some cases. - - -2004/02/26 - - variables - define $language_preference_order - - etc/command_line_options - new option -o key=value which overrider configurations. - you can use duplicated -o options e.g. -o key1=value1 -o key2=value2. - - remove not used -params options - - FML::Process::Kernel - new option -o key=value which overrider configurations. - you can use duplicated -o options e.g. -o key1=value1 -o key2=value2. - - more proper charset handling based on Content-Type::field. - - change Mail::Message::Encode to Mail::Message::String in - message handling. - - implement get_preferred_languages() method. - - FML::Process::Utils - get_charset: fix default charset handling - implement set_language_hint(), get_language_hint(). - get_accept_language_list() returns [] not [*] when no data. - - FML::Error::Cache - firstly, constructor() expires too old cache. - - Mail::Message - enhance trap regexp for charset=... - - Mail::Message::Charset - fix comments - - Mail::Message::Language - handle X-Accept-Language: - - Tie::JournaledDir - new() expires too old cache files. - -2004/02/15 - - FML::Article::Spool - check input data more. - - Mail::Message::String - add new methods: - +charcode_convert_to_internal_code(). - +charcode_convert_to_external_charset(). - - we need to ignore original charset in some cases. - So, if "=?sjis=..." is input, we return it as "=?iso-2022-jp...". - - more debug codes. - - FML::Process::Kernel - ui_message() prefers $msg_args->{level} if specified. - -2004/02/13 - - FML::Article::Summary - ensure initial value of $min and $max - -2004/02/06 - - FML::Header - expand special regexp in tag before tag substitution. - - Mail::Message::Subject - update $subject only if subject is rewritten. - - FML::Article::Summary - switch to new Mail::Message::* framework. - - Mail::Message::Charset - implement message_charset_to_language() method. - - Mail::Message::String - use mothod-style more even internally. - speculate in and out code::charset as could as possible. - implement method::charcode_convert(), get_charcode(). - -2004/02/04 - - FML::Command::User::chaddr - vaildate address type variables. - - Mail::Message::String - change in-core internal variables. - implement set(), get(), set_mime_charset(), get_mime_charset - and unfold(). - - Mail::Message::Address - modify on-memory variable naming. - implement as_str(), substr(). - - Mail::Message::Date - new() can handle both unix time and Date::style string. - - implement set(), unixtime(). - speculate_timezone() -> _speculate_timezone(). - - yet another style methods::as_mail_header_style(), - as_YYYYMMDD(), as_YYYYxMMxDD(), as_current_time(), - as_precise_current_time(), as_stardate(), and as_unixtime(). - - FML::Article::Summary - FML::Header - modified to use new Mail::Message::* framekwork. - -2004/02/03 - - IO::Adapter - IO::Adapter::File - fix meta escape needed in finding key. - -2004/02/01 - - variables - add $log_command_tail_starting_location - $article_non_mime_filter_rules = reject_empty_content_type permit - - FML::Config - fix checking code of defined value. - - FML::Article::Sequence - $sequence_file -> $article_sequence_file - use //o if could. - - FML::Command::Admin::log - use $log_command_tail_starting_location. - fix comments. - - FML::Command::Admin::{chaddr,changepassword,digest,subscribe} - validate input address by FML::Restriction::Base. - - FML::Command::Filter - FML::Filter - FML::Filter::Header MimeComponent Size TextPlain - new FML::Command::Filter $curproc; - fix::update comments::messages. - rename method::rules() -> set_rules(). - use ::::o if could. - - fix var name: - $article_none_mime_filter_rules -> $article_non_mime_filter_rules. - - implement reject_empty_content_type rule (non mime filter). - -2004/01/31 - - FML::Error::Cache - validate input address. - - FML::Process::{Addr,Alias,Calendar,Command,ConfViewer,Configure} - FML::Process::{Digest,Distribute,DocViewer,Error,Fake,HTMLify} - FML::Process::CGI::Kernel - not use "$cf_list = $curproc->get_config_files_list();". - $curproc->load_config_files($cf_list); - -> - $curproc->load_config_files(); - - Calendar::Lite - print() -> print_as_html() - -2004/01/22 - *** オーバホールキャンペーン中 *** - - FML::Command - fix comments. - define $default_lock_channel and modified to use it. - - FML::MTA::Control::Procmail - fix $fh->close() usage. - fix comments. - cosmetics. - -2004/01/21 - *** オーバホールキャンペーン中 *** - - FML::Restriction::Base - define $number_regexp , $address_regexp. - modified to use it. - - FML::Process::CGI::Kernel - more todo comments. - remove 'use FML::Log' which is not used. - - FML::Filter::Size TextPlain - check input data type. - more todo comments. - white space cometics. - - FML::Header - cosmetics: spaces, unroll one line to plural ones. - - FML::Command::HTMLify - fix comments. - add missing loop label. - - FML::Filter::Header - fix comments. - check input data type. - cosmetics. - FNF. - - FML::Filter::MimeComponent - define $recursive_max_level in file scope. - fix comments. - cosmtics: sort initialization order, location. - =~ "" -> =~ // - - FML::User::DB - fix comments. - close output channel before exits from within loop. - -2004/01/18 - *** オーバホールキャンペーン中 *** - - FML::Confirm - update comments. - clean up. - if (defined $db) { ...->open::close ... } - - FML::Config - fix comments. - change variable name::$mode -> $op in some cases. - change argument order of __update_config(). - -2004/01/14 - - FML::Process::Calendar - bug fix handling of $args within $curproc for further reference. - - Calendar::Lite - clean up. - show summary next 3 days above calender this month. - - FML::Process::Kernel - load_config_files() not need the argument. - load_config_files() do sanity checks for mta and cgi processes. - -2004/01/01-2004/01/04 - - *** 2003 年末 〜 2004 年初め オーバホールキャンペーン中 *** - - clean up - $curproc とペアになっている $args をほとんどのクラスでは削除した。 - $args へのアクセスは FML::Process::Utils のアクセスメソッド経由 - のみとする。 - - FML::Process::Utils - +set_config_files_list() - +append_to_config_files_list() - +get_config_files_list() - - FML::Digest - fix lock algorithm. - clean up. - fix comments. - -2003/12/31 - - 2003 年末 〜 2004 年初め オーバホールキャンペーン - - 変数 - FML::ML::Control - *_private_dirs -> *_private_directories - - FML::Command::Admin::newdomain newml rmdomain rmml - FML::Process::Addr Alias - FML::ML::Control HomePrefix - FML::MTA::Control - FML::MTA::Control::Postfix Procmail Qmail Sendmail Utils - clean up class hierarchy. - o FML::HomeDir::Prefix -> FML::ML::HomePrefix; - o FML::MTAControl -> FML::MTA::Control - o move main codes in newml and rmml to FML::ML::Control class. - - FML::Process::Switch - bug fix initialization. - update comments. - clarify function role by renaming::ProcessSwitch() -> load_module() - Process::Switch - sort. - - FML::Process::Kernel - save incoming_message cache file path on memory for later use. - import $default_ml_home_prefix from main.cf name space. - - FML::Process::Utils - implement {get,set}_incoming_message_cache_file_path(). - bug fix get_incoming_message_cache_file_path() - - FML::Process::Fake - experimental implementation done. - - Mail::Delivery::Queue - define *_file_path() methods. - bug fix use of *_{dir,file}_path() functions. - validate $value (ARRAY_REF). - update comments. - - Mail::Delivery::Net::INET6 - fix label name - - File::CacheDir - implement cache_file_path() - - FML::Cache::Journal - import $directory_private_mode if could - - FML::Error - update comments. - clean up. - use methods not direct editing of $self as could as possible. - use $curproc->{ credential } - reset address comparison level after main routine. - - FML::Header::MessageID - get() return null string if the value is undefined - - FML::Command::Auth - validate $address input as data. - $cred = $curproc->{ credential }; - update comments. - - FML::Command::Admin::addadmin - update comments. - define and use $maplist. - - FML::Command::Admin::addmoderator - update comments. - define and use $maplist. - - FML::Command::Admin::check - update comments. - implement check_ml_home_dir() and modify rules. - - FML::Command::Admin::edit - update comments. - use $curproc->ml_*() methods if could. - reset $ENV{'PATH'} while running editor. - - FML::Command::Admin::mailq - update comments. - more readable method and variable names. - - FML::Command::Admin::rmml - update comments. - use $curproc->ml_*() methods if could. - modify local variable names to be more readble. - - FML::Command::Admin::list - update comments. - clean up. - modify routine names to be more readable. - remove not used variables. - bug fix cgi_menu() initialization phase. - - FML::Command::User::chaddr confirm digest off on unsubscribe - update comments on $primary_*_map use. - use $curproc->{ credential } not call "use FML::Credential ...". - - FML::Command::User::digest - update comments::messages. - use $curproc->{ credential } - - FML::Command::User::chaddr subscribe - update comments. - use $curproc->{ credential } - reset address comparison level after main routine runs. - -2003/12/25 - - FML::Process::Utils - bugfix default $use_address_mask and $address_mask_type in - thread_db_args() - - Mail::Message::ToHTML - add from-address for not use address_mask in - _print_li_filename() - - FML::Process::Distribute - add log at htmlify article end - -2003/12/24 - - etc/{command_line_options,install.cf.in,modules} - FML::Process::Fake - add and enable libexec::faker - - FML::Process::Utils - implement is_need_ml_name() - - FML::Process::CGI::Kernel - use is_need_ml_name() not $args->{ ... } - - FML::Process::{Addr,Alias,Calendar,ConfViewer,Digest, - Distribute,DocViewer,Kernel} - remove the direct use of $args - instead, use utility methods via $curproc - -2003/12/22 - - Mail::Delivery::Queue - define the following methods and modified to use it: - new_dirpath deferred_dirpath active_dirpath info_dirpath - sender_dir_path recipients_dir_path - *_dirpath() -> *_dir_path(). - -2003/12/21 - - variables - + $list_command_default_maps - + $newml_command_ml_admin_default_address - - etc/install.cf.in - FML::Install - remove hard-coded language dependent information by moving it to - $nl_template_files in install.cf.in. - -2003/12/20 - - FML::Command::Admin::list - use $list_command_default_maps not hard-coded value. - change default map to $recipient_maps not $member_maps. - - FML::Command::Admin::newml - use $newml_command_ml_admin_default_address as $ml-admin value. - if unspecified, use the default fml owner value. - - FML::Command - define get_mode() and set_mode() and modified to use it. - -2003/12/10 - - Mail::Message::DB - quick hack for trouble making html indexs and working - distribute. - -2003/11/30 - - variables - FML::Credential - FML::Command::Auth - FML::Process::{Command,Distribute} - FML::Restriction::Post - rename: $system_accounts -> $system_special_accounts. - -2003/11/29 - - 機械処理(および、その出力形式をカスタマイズ)しやすいログを出力する - オプションを作りこむ。 - - --log-computer-output コマンドラインオプション - $use_log_computer_output と $log_computer_output_engine を定義する。 - フォーマットは $log_computer_output_engine で指定するモジュールで変 - えてくださいな。 - - etc/command_line_options - FML::Process::Kernel - support --log-computer-output option - - FML::Process::{Command,Configure,Distribute,Error,Kernel} - FML::Log::Print::Simple - define $use_log_computer_output. - modify FML::Process::* to use it. - - FML::Process::Kernel supports customization by - $log_computer_output_engine definition. - - $curproc->log_message_init() is called within prepare() method - of each program. - - FML::Process::Debug - implement config() method. - - FML::User::DB - use $curproc->config() to get config object. - - variables - FML::Header - x_ml_name -> outgoing_mail_header_x_ml_name - -2003/11/27 - - FML::User::Control - check if $buf retruned from IO::Adapter is defined. - - IO::Adapter::File - bug fix get_key_values_as_array_ref() - -2003/11/26 - - list コマンドの拡張、あらゆる map を表示可能にした。 - - FML::Command::Admin::list - try to list up arbitorary map if could. - FML::User::Control::{userlist -> print_userlist} - - IO::Adapter::{Array,DBI,File} - implement get_key_values_as_array_ref() to return key and all values - as ARRAY_REF. - - FML::User::Control - rename method::userlist -> print_userlist - - cal get_key_values_as_array_ref() of IO::Adapter to get key and all - values. - - So, print_userlist() print out "key values ...". - - アドレスを比較する関数で大文字小文字を区別する/しないという機能を実装 - また、互換性のため、デフォルトを case insensitive (区別しない)に変更。 - - variabes - address_compare -> address_compare_function - - FML::Credential - bug fix variable overload - -2003/11/25 - - FML::User::Control - remove debug condition - - FML::Credential - variables - implement switch to toggle case sensitive check of mail address. - +use_address_compare = yes - +address_compare_type = user_part_case_insensitive - -2003/11/24 - - FML::Process::Switch - ensure valid exit code - -2003/11/23 - - FML::Confirm - FML::Command::User::{chaddr,confirm,off,on,subscribe,unsubscribe} - FML::Cache::Journal - FML::Data::Deadline - separete database part in FML::Confirm to FML::Cache::Journal - which can be shared between other modules. - - change FML::Confirm::new() to take $curproc. - - FML::Command::Admin::{addadmin,addmoderator,chaddr,deladmin, - delmoderator,digest,list,off,on, - subscribe,unsubscribe} - FML::Process::Utils - create FML::User::* class to manipulate user database. - 1. move FML::Command::UserControl to FML::User::Control class. - 2. implement FML::User::DB (committed later). - - variables - define the folloging variables: - + $primary_user_db_gecos_map - + $primary_user_db_subscribe_date_map - + $user_db_gecos_maps - + $user_db_subscribe_date_maps - - Mail::Message::ToHTML - try to mask raw addresses in signature. - rename::_who_of_address() -> _address_to_gecos() - - FML::User::DB - avoid duplication. - - FML::User::Control - FML::User::Info - run FML::User::Infoal->import_from_mail_header() to save user info - included in the header for further use. - -2003/11/18 - - FML::Confirm - FML::Command::User::confirm - fix argument FML::Confirm::is_expired($id) from time to id. - - FML::Credential - implement is_user_part_case_sensitive() and modified to use it. - we should attach $self internal directly even if within the - same module. - -2003/11/16 - - ドメインの扱い(デフォルトおよびバーチャルドメイン)の拡張(その1終了) - - FML::Command::Admin::newdomain rmdomain - FML::Process::Utils - FML::HomeDir::Prefix - switched to new ml_home_prefix framework, which is enhanced virtual - domain operation. See fml-devel in 2003::10. - - FML::Command::Admin::newdomain rmdomain - FML::Process::Configure - fixed argument handling to support: - o makefml method domain - o fml domain method - - FML::Process::Debug - we use this module as simplified FML::Process::Kernel for debug. - define simplified version of some following methods: - +mkdir - +log - +logwarn - +logerror - +ml_home_prefix - -2003/11/11 - - FML::Header::MessageID - change message-id format to match RFC2822 - -2003/11/08 - - Mail::Message::Encode - disable Encode use even on >= 5.008 since we are not ready. - - perl 5.8 では Encode をつかうべきなんだろうけど、今は Jcode を - 使うコードしかないので、「if 5.8 …」の部分を一旦、使わないこ - とにする。 - - FML::Command::UserControl - call croak() if address to remove not found - -2003/11/07 - - Mail::Message::ToHTML - Mail::Message::ToHTML の拡張 - add $versionid - add new comment tag at html_begin() for file magic - change @header_field remove same information (X-xxx) and add - Message-Id - -2003/11/05 - - ドメインの扱い(デフォルトおよびバーチャルドメイン)の拡張のはじまり - - FML::Process::Kernel - etc/main.cf.in - define $primary_ml_home_prefix_map in main.cf. - FML::Process::Kernel imports it. - -2003/11/02 - - FML::Process::Utils - FML::Process::CGI::Kernel - move safe_cgi_action_name from FML::Process::Utils to - FML::Process::CGI::Utils. - - FML::Process::Kernel Utils - debug_level() -> get_debug_level(). - sort definitions::{set,get}_print_style(). - -2003/11/01 - - 変数体系のクリーニング: 階層構造、命名規則 - - よりシステマティックな変数命名ルールを考えていくと、ここでも、 - 基底クラスと継承という考えを(ある程度)導入する方がよいと思う - ようになりました。 - - が、ものすごく厳密にやると逆にわけ分からないので程ほどに。 - - 例: - mail_何とか - mail_default_何とか - - use_incoming_mail_何とか - incoming_mail_何とか - - use_outgoing_mail_何とか - outgoing_mail_何とか - - use_report_mail_何とか - report_mail_何とか - - この例でも、厳密には outgoing_report_mail とかするべきなんでしょ - うけど、そこまではやらないのがほどほどってところでしょうね。 - -2003/10/30 - - variables - FML::Process::Kernel - header_loop_check_rules -> incoming_mail_header_loop_check_rules - use_header_loop_check -> use_incoming_mail_header_loop_check - body_loop_check_rules -> incoming_mail_body_loop_check_rules - use_body_loop_check -> use_incoming_mail_body_loop_check - body_cksum_cache_dir -> incoming_mail_body_cksum_cache_dir - - variables - has_* -> system_has_* - -2003/10/29 - - import im-146. - -2003/10/26 - - FML::Install - etc/install.cf.in - To remove hard-coded file list to install as sample, - define $sample_cf_files in install.cf and use it. - - FML::Process::Kernel Switch - etc/main.cf.in - define $site_default_config_cf to remove hard-coded - site_default_config.cf. sort entries in main.cf. - -2003/10/22 - - variables - FML::CGI::User - change address list shown on the cgi menu from member to - recipient. - -2003/10/17 - - 変数名の変更 - command_prompt -> command_mail_reply_prompt - cgi_menu_map_list -> cgi_menu_address_map_list - cgi_menu_default_map -> cgi_menu_default_address_map - - command_prompt -> command_mail_reply_prompt - - summary_file -> article_summary_file - summary_format_style -> article_summary_file_format_style - summary_format_address_length -> article_summary_file_format_address_length - - default_file_mode -> file_default_mode - default_directory_mode -> directory_default_mode - - move *_mode definitions from basic.cf to file.cf. - - remove duplicated $default_directory_mode. - - FML::Process::CGI::Kernel - Mail::Message::Charset - Mail::Message::Charset has tables on code, charset and languge. - FML::Process::CGI::Kernel is modified to use it. - - FML::Command::Admin::log - define log_file_*_charset and modify log module to use it. - -2003/10/16 - - charset の取り扱いを拡張した。 - resutructure/enhance charset definitions: - ${category}_default_charset and ${category}_charset_{ja,en,...} - - FML::Process::CGI::Utils - cgi_var_language() returns '' not 'japanese' if language info - not found. - - FML::Process::CGI::Kernel - bug fix _cgi_resolve_ml_specific_variables() for correct ml_* - handling. - - follow HTTP_ACCEPT_LANGUAGE information. - fix log_file when admin::*.cgi runs. - add $domain_local_log_file - add $domain_local_log_file - - FML::Process::CGI::Kernel - FML::CGI::ThreadTrack Calendar Menu - FML::Command::Admin::log - language_of_cgi_message() -> get_charset("cgi") - - FML::Process::Kernel - Mail::Message - Mail::Message::Language - consider Accept-Language::(but not used yet now ;-). - - FML::Process::CGI::Utils - FNF::add comments - - FML::Process::CGI::Kernel - bug fix charset handling. - - FML::Command::SendFile - FML::Digest - messager::rfc822 part not need charset ;) - - FML::Process::Utils - bug fix masking variable definition - - remove language_of_cgi_message() - - implement set_accept_language_list() and - get_accept_language_list(). - - remove obsolete language_of_reply_message(). - - get_charset() can handle accpet-language::and charset requested by - other module via PCB. - -2003/10/15 - - FML::Digest - FML::Command::SendFile - FML::Process::Kernel Utils - implement get_charset() and set_charset(). modified to use it to - treat current charset changed dynamically on the fly. - - FML::Process::CGI::Kernel - enable languge change function - - variables - define $default_cgi_language, $cgi_language_list - -2003/10/14 - - fml/share/message/ is translated to English. - euc-jp/* is translated to corresponding us-ascii/*. - - FML::Process::Kernel - if (defined $pcb) { ...} - - FML::Process::CGI::Kernel Utils - define cgi_var_language() and use it - - Mail::Message::DB - oops, remove debug message output - - FML::Filter::MimeComponent - recursive multipart checks - - FML::Process::CGI::Kernel - FML::CGI::List ML Menu User - implement cgi_hidden_info_language() and modified to use it. - It holds language info within CGI operations. - -2003/10/07 - - FML::Command::Admin::log - fix html style: -
str1<::pre> 
str2<::pre> ... -> 
str1\nstr2 ... <::pre>
-
-2003/10/06
-
-   FML::Process::Distribute 
-   Mail::Message::DB ToHTML 
-	handle article subject specilly where the key in db is
-	"article_subject".
-	
-   FML::Command::Admin::log 
-	
-	fix printing_style value::cgi -> html
-
-2003/09/30
-
-   Mail::Message::DB 
-	create article_$header db too.
-
-   FML::Restriction::Base 
-	define language regexp
-
-2003/09/29
-
-   FML::Process::Distribute
-	disable _old_thread_check()
-
-2003/09/27
-
-   natural language extension in cgi menu.
-
-   FML::CGI::Admin::{List,ML,User} -> FML::CGI::{List,ML,User}
-	
-   FML::Process::CGI::Utils 
-   FML::CGI::List ML User 
-	define new methods::cgi_var_address_map() cgi_var_address_map_list()
-	cgi_var_action() cgi_var_frame_target()
-	
-	switched to use cgi_var_*().
-	
-	sort::cleanup initialization parts in each cgi_menu().
-	
-   FML::CGI::ML 
-	cgi_var_ml_name_list($ml_domain) -> cgi_var_ml_name_list()
-	
-   FML::CGI::User 
-	fix selected_key name
-	
-   FML::CGI::List 
-	add reset button
-	
-   FML::Config 
-	bug fix expand_variable_in_buffer() to match as many as could.
-	
-   FML::Process::Kernel 
-	make message_nl() handle enable language translation
-	
-   FML::Process::CGI::Utils 
-	define methods::cgi_var_navigator_title(), cgi_var_fml_project_url().
-
-2003/09/26
-
-   ml-admin/*/*.cgi を利用可能にする
-
-   variables
-	define $commands_for_ml_admin_cgi
-	
-   FML::Process::CGI::Kernel 
-   FML::CGI::Admin::Menu 
-   FML::Command::Admin::newml 
-   FML::CGI::Menu 
-   FML::CGI::MLAdmin::Menu 
-   FML::Process::CGI::Utils 
-	change *::CGI:::class architecture.
-	
-	FML::CGI::*Admin::Menu inherits FML::CGI::Menu.
-	
-	methods in FML::Process::CGI::* returns the value by checking the
-	current cgi mode (admin or ml-admin).
-	
-   FML::CGI::Admin::ML 
-   FML::CGI::Admin::User 
-   FML::Command::Admin::list 
-   FML::Process::Utils 
-	change arguments of get_ml_list() to remove $args.
-
-   FML::Process::CGI::Kernel 
-	use cgi.*.top for top level help
-
-2003/09/20
-
-   FML::Process::Switch 
-	define _find_longest_matched_entry() function and use it to
-	find more specific entry for getopt parameters and module
-	definitons.
-
-2003/09/19
-
-   FML::Process::Switch 
-	implement _filespec_splitdir() which split filename to
-	@filepath but it uses File::Spec only in > perl 5.6.1.
-	
-	more specific match for $0 to resolve module we should use.
-
-   FML::Process::Utils 
-	fixed to avoid uninitialized ...
-	
-   etc/command_line_options 
-	define --log-dup anyway
-	
-   FML::Header 
-   FML::Header::MessageID 
-   FML::Process::Kernel 
-	new Header->add_message_id()
-	change Header::MessageID->gen_id() Args
-	change in Process::Kernel->_add_info_on_header() add add_message_id()
-
-2003/09/16
-
-   update CPAN
-	updated to File-Spec-0.85_03.
-	Jcode updated to 0.83
-
-2003/09/14
-
-   FML::MTAControl::Procmail 
-	typo
-	
-   FML::Process::{Flow,Kernel,Switch}
-	Process::Flow and Process::Switch classes need to know $curproc
-	pointer each other.
-	
-	fix log message duplication mechanism.
-	
-	define global_tmp_dir_path(), be_quiet() in FML::Process::Kernel.
-
-2003/09/13
-
-   etc/modules
-   FML::Process::Switch 
-	extension: compare $0 against entry etc::modules by
-	considering subdir. 
-	
-   FML::Process::Switch 
-	fix $0 handling for *.cgi:
-	program_fullname => $ENV{ 'SCRIPT_FILENAME' } || $0
-	
-   FML::Process::CGI::Kernel 
-	use $curproc->config_cf_filepath().
-	
-   FML::Process::Kernel 
-	implement ui_message().
-	change label of log() from ok to info.
-	
-   FML::MTAControl 
-   FML::Command::Admin::{edit mailq newml rmml} 
-   FML::MTAControl::{Postfix,Procmail,Qmail,Sendmail} 
-	use $curproc->ui_message() instead of "print STDERR ...".
-	
-   FML::Filter::MimeComponent3 
-   Mail::Message 
-	fix variable initialization to avoid undefined reference warning.
-	
-   FML::Process::Configure 
-	remove close_stderr_channel_if_quiet_option_specified().
-	
-   FML::Process::Utils 
-	implement is_cgi_process(), is_under_mta_process().
-
-
-2003/09/11
-
-   FML::Command::Admin::newml 
-	clarify error messages more.
-	
-   FML::MTAControl::Postfix 
-	handle default::virtual domain properly.
-
-2003/09/08
-
-   Mail::Message
-   Mail::Message::{ToHTML,Encode}
-	=?shift_jis? ... メールの取り扱いを修正
-	各オブジェクトにおける charset と encoding の扱いを修正
-
-2003/09/06
-
-   MLの消去方法の拡張
-	MLを消した際、ディレクトリを日付名つきのものにする。
-	これで、何度、消しても大丈夫#って、そんなに何度も消すかな?
-
-		/var/spool/ml/elena
-			->
-		/var/spool/ml/@elena.20030906
-
-   FML::Command::Admin::rmml 
-   FML::Process::Utils 
-	use removed_ml_home_dir_path() method to determine the dir
-	path used as the removed $ml_home_dir.
-
-2003/09/05
-
-   FML::Process::Utils 
-	escape $curproc in eval
-	
-   FML::Process::Kernel 
-	bug fix::we should not use $main_cf in this module.
-	clean up.
-	more comments.
-
-2003/09/04
-
-   FML::Command::Admin::get newml rmml 
-	use $curproc->config()
-
-2003/09/02
-
-   FML::Process::Calendar 
-	bug fix wrong lvalue
-
-2003/08/30
-
-   use $curproc->config(), pcb() not { config }, { pcb } respectively.
-	
-   FML::Process::Kernel 
-	add simple log message queue logic as a prototype.
-
-2003/08/24
-
-   Mail::Message::ToHTML 
-	print STDERR ... if $debug.
-	
-   FML::Config 
-	print STDERR ... -> carp(...)
-	
-   File::Rotate 
-   IO::Adapter::DBI File 
-	remove debug::print STDERR ..
-	
-   FML::Process::CGI::Param 
-	remove debug
-	
-   FML::Process::ConfViewer 
-	save $@ via logwarn() not print STDERR ..
-
-2003/08/23
-
-   use log*() methods	
-	define $curproc->log, logwarn, logerror and log_message() methods.
-	modified to use $curproc->log*() interface.
-	
-   Mail::Message::Checksum 
-	use croak() not FML::Log()
-	
-   FML::Process::Kernel 
-	sort function definitions.
-	
-   FML::Process::QueueManager 
-   FML::Mailer 
-	new FML::Mailer $curproc;
-
-   FML::{Article,Digest,Error,Filter,Header,Mailer}
-   FML::Article::{Sequence,Summary,Thread} 
-   FML::Error::Cache 
-   FML::Filter::MimeComponent3 
-   FML::Process::Utils 
-   FML::Restriction::Post 
-	modified to use $curproc->log*() methods.
-
-2003/08/20
-
-   FML::Process::Utils 
-   Mail::Message::ToHTML 
-	define the detail of address masking against spammers.
-	$use_html_archive_address_mask	=	yes
-	$html_archive_address_mask_type	=	all
-
-   new variables
-	use_html_archive_address_mask  =       yes
-	phtml_archive_address_mask_type =       all
-
-2003/08/18
-
-   --quiet オプション創設 (fml と makefml コマンドだけ)
-
-   FML::Process::Configure Kernel 
-	support --quiet options for makefml and fml.
-	It closes STDERR before the main routine begins.
-	
-	define close_stderr_channel_if_quiet_option_specified().
-	
-   etc/command_line_options 
-	--quite option for fml and makefml.
-	clean up.
-
-2003/08/16
-
-   FML::Process::Kernel 
-	check whether $ml_home_dir not exists in _init_lock().
-
-   Mail::Message 
-	modify logic to find the start point of multipart.
-	correct handling of the first dash-boundary.
-	XXX this logic is effective but wrong.
-
-2003/08/15
-
-   FML::Process::Utils 
-   Mail::Message::ToHTML 
-	test html_archive_address_mask mask or nomask
-	address_mask use To and Cc
-
-2003/08/06
-
-   Mail::Bounce::Freeserve 
-   Mail::Bounce::Language::Japanese 
-	moved Japanese contnet to Mail::Bounce::Language::Japanese.
-	bugfix regexp
-
-   Mail::Bounce 
-	enable freeserve.en.jp
-	
-   FML::Process::Distribute 
-	clarify old::new thread engine routines.
-	rename htmlify() to _htmlify() to clarify it is private.
-
-2003/08/05
-
-  Mail::Bounce::Freeserve
-
-2003/08/03
-
-   FML::Process::Distribute 
-	fix arguments used in the case of key
-	"error.reject_notice_preamble" (PR by fml-devel:503).
-
-2003/08/02
-
-  Document translation to English completed up to 70 % ?
-
-   Mail::Message::ToHTML 
-	reduce warning if missing from or subject at sub
-	_print_li_filename()
-
-2003/08/01
-
-   FML::Restriction::Post 
-	deny_reason not over write
-
-2003/07/24
-
-  Document translation to English completed up to 40 % ?
-
-	etc/default_config.cf and etc/config.cf are translated.
-
-2003/07/23
-
-  Document translation to English starts 
-
-2003/07/22
-
-   Mail::Message::Language::Japanese::Subject 
-	nuke todo::method-ify done.
-	
-   Mail::Message::Date 
-	implement speculate_timezone() to remove hard-coded timezone
-	+0900 :-). 
-	
-   FML::Process::Kernel 
-	use our own Date::field when we use Mail::Message::Compose
-	(MIME::Lite). 
-	
-   Mail::Message::Encode 
-	detect_code() should not call croak() but return 'unknown'.
-	we can handle Japanes and English, so fixed comments.
-
-2003/07/21
-
-   import Time-modules-2003.0211 to use Time::Timezone.
-
-   clean up ...
-
-   Tie::JournaledDir JournaledFile 
-	clean up.
-	
-	change the match conditoin parameter name to "match_condition".  You
-	should specify "first" or "last" as match_condition in
-	Tie::JournaledFile::new() method.
-	
-	Tie::JournaledFile::change default match condition to "last match".
-	
-   Mail::ThreadTrack::Analyze 
-   FML::Article::Summary 
-   Mail::Message::Date 
-	method-ify date_to_unixtime() of Mail::Message::Date.
-	
-   Mail::Message::Checksum Utils 
-	import search_program() into Mail::Message::Utils module.
-	modified Checksum to use it.
-	
-   FML::Header::Subject 
-   Mail::Message::Language::Japanese::Subject 
-	method-ify cut_off_reply_tag()
-
-2003/07/20
-
-   Mail::Message::DB 
-	comment on analyze()
-
-	restrict demand copying only for the previous messages before
-	the current one.
-
-   Mail::Message::ToHTML 
-   Mail::Message::Thread 
-	moved analyzer dispatcher to ::Thread module to use analyzer
-	independetly.
-
-   Mail::Message::Thread 
-	analyze() accpets $id if specified.
-	
-   FML::Process::{Distribute,Utils} 
-	separete thread_db_args() routine prepares thread information.
-	pass $aritcle_id to analyze().
-
-2003/07/19
-
-   Mail::Message
-	merge udb branch to switch to the new thread engine
-	fixed to co-work with udb well.
-
-   variables
-	defined $udb_base_dir
-
-2003/07/03
-
-   Mail::Message::ToHTML 
-	change regexp $url$trailor
-
-2003/06/29
-
-   FML::Command 
-   FML::Command::SendFile 
-   FML::Command::User::get 
-	check the number of request in get commands.
-
-   update messages
-
-2003/06/26
-
-   FML::Header Filter 
-	add $debug for debug message to Log at only debug-mode
-
-2003/06/24
-
-   Mail::Message[udb]::ToHTML 
-	pass $old_db_base_dir to DB module
-
-   Mail::Message[udb]::DB 
-	save all values of fields.
-	
-	for filtering system, save other header fields::return_path posted
-	x_posted sender x_sender received x_received.
-	
-	demand copying from old db to udb if needed(demaned) when _
-	db_get() called.
-
-	bug fix negative cache handling et.al.
-
-2003/06/23
-
-   variables
-	remove $system_message_charset and $system_message_subject,
-	which are not used.
-
-   Mail::Message::ToHTML 
-	bugfix at debug
-
-2003/06/21
-
-   Mail::Message 
-	bug fixed::message_text() should be able to handle differenct
-	type $data. 
-
-2003/06/15
-
-   variables	
-	add check_date to $article_header_filter_rules (PR by
-	fml-devel:478).
-
-2003/06/14
-
-   Mail::Message::DB [udb]
-	implement separete method _save_header_info() to handle header info.
-	
-	implement get_as_array_ref() and get_table_as_hash_ref().
-	fixed to cooperate with ToHTML module.
-	add more print debug codes.
-
-	thread_summary() return more info::id, html_*
-	move thread_summary generator wrapper from ToHTML to DB
-	
-   Mail::Message::ToHTML [udb]
-	modified to use Mail::Message::Encode::decode_mime_string().
-	rewritten based on new DB module.
-	remove ndb_key(), which is not used.
-	fix filename to use db value.
-	fix filepath of thread links.
-	add a lot of printf debug.
-	move thread_summary generator wrapper from ToHTML to DB.
-	remove __str2array().
-	$self->{ _thread_list }->{ $id }       (STR) changed to
-	$self->{ _hint_ref_key_list }->{ $id } (ARRAY_REF).
-
-   Mail::Message::{DB,ToHTML,Utils} [udb]
-	implement Mail::Message::Utils::from_to_name() and modified modules to
-	use it.
-	
-   Mail::Message::Utils [udb]
-	fixed to use Mail::Message::Encode
-
-2003/06/11
-
-   FML::Filter::Header 
-	add check_date() for missing date field
-
-2003/06/06
-
-   Mail::Message::MH 
-	against longloop for underrun and overrun
-
-2003/06/04
-
-  import im-145
-
-2003/06/03
-
-   Mail::Message[udb]::DB 
-	monthly_to_key_list -> month_to_key_list
-	
-   Mail::Message[udb]::ToHTML 
-	remove _address_clean_up(), which is not used.
-
-2003/06/02
-
-   Mail::Message::IMPLEMENTATION [udb branch]
-	update idea::sync with current implementation
-	
-   Mail::Message::ToHTML [udb branch]
-	modified to use DB::thread_summary($id).
-	rename method to be more easy for eyes.
-	remove not used variables.
-	FNF a little.
-
-2003/06/01
-
-   スレッドデータベースの再設計
-	別ブランチでやってるので source-changes ML にしか動きが見えな
-	いとは思う。
-
-   Mail::Message::ToHTML [udb branch]
-   Mail::Message::DB [udb branch]
-	move main db manipulation code from ToHTML to DB.
-	XXX caution::but the index generator not works now.
-
-   Mail::Message::DB [udb branch]
-	implement thread_summary().
-
-2003/05/28
-
-   variables
-	error_analyzer_function::error_continuity -> histgram
-	define $error_analyzer_function_list
-	
-   FML::Error 
-   FML::Error::{Analyze,Cache}
-   FML::Error::Analyze::{histgram,simple_count}
-	restructuring under FML::Error class to be more extensible.
-	
-	move main part of print() to FML::Error::Analyzer::* modules.
-	So, print() format depends on FML::Error::Analyzer::* class.
-	
-   FML::Command::Admin::error 
-	list up summary for each algorithm defined in
-	$error_analyzer_function_list.
-
-2003/05/27
-
-   Mail::Message::ToHTML 
-	print text in "unknown MIME encoding" case.
-	try to validate key and value in hash operation but ... (?)
-
-2003/05/26
-
-   IO::Adapter::{Array,DBI,File}
-	remove not used method:
-	- get_value_as_str()
-	- get_value_as_array_ref()
-
-2003/05/20
-
-   FML::Command::Admin::error 
-	disable lock since FML::Error locks itself if needed.
-	
-   FML::Command::Admin::error 
-   FML::Error 
-	move the status dump code from FML::Command::Admin:error to
-	FML::Error.
-
-2003/05/16
-
-   Mail::Message::ToHTML 
-	bug fix masking of raw From::address
-
-2003/05/14
-
-   FML::Filter 
-   FML::Process::Command 
-   FML::Filter::Size 
-	implement size limit filter for both article and command mail.
-
-	入力に対するサイズ制限フィルタを実装しました。
-
-2003/05/13
-
-   FML::Filter 
-   FML::Process::Distribute 
-	use $_arg_address not $_arg_sender
-	
-	use "reject_notice_preamble" in filter rejection notice.
-	it describes:
-	o the reason why we do not use mime::multipart.
-	o this message is not from you but somebody forged.
-
-	フィルタが弾いた時に注意書きをつける。
-
-   FML::MTAControl::Postfix Sendmail 
-	check the existence of path_* programs
-
-2003/05/12
-
-   FML::Command::Auth 
-   FML::Command::Admin::chaddr changepassword deladmin delmoderator 
-		        digest off on unsubscribe 
-	we should operate only $primary_*_map not $*_maps in deleting the user
-	address.
-
-	メールアドレスを削除するコードの修正
-		常に primary_*_map にのみ追加/削除を行なう。
-
-2003/05/08
-
-   FML::Filter 
-	add $msg_args at article_filter_reject_notice()
-
-   Mail::Message 
-	whole_message_as_str():
-	o indent is null by default.
-	o fix the trailing indent replace.
-
-2003/05/05
-
-   variables and configure
-	search spamassassin, spamd and spamc, and set path_${it} for further
-	extension.
-
-2003/05/04
-
-   Mail::Bounce::SimpleMatch 
-	E500 SMTP Mail Service ?
-
-2003/05/03
-
-   FML::Process::Error 
-	fix comments (FNF).
-	
-   FML::Header 
-	style, aligned with FNF.
-
-2003/05/01
-
-   variables	
-	define article_filter_reject_notice_data_type
-	
-   FML::Process::Utils 
-	fix typo::maitainer->maintainer
-	
-   FML::Filter 
-	forward the rejected message by string or multipart?
-	It is determined by $article_filter_reject_notice_data_type.
-	
-   Mail::Message 
-	implement whole_message_header_as_str()
-
-	remove whole_message_as_string_ref().
-	
-	implement whole_message_as_str() to extract the first part of this
-	message as a string.
-
-2003/04/29
-
-   FML::Restriction::Base 
-	permit user+ext@domain
-
-   libexec/error がエラーメッセージを再転送可能にした。
-	転送先は $maintainer_recipient_maps に従う。デフォルトは未定義
-
-   variables
-	define $maintainer_recipient_maps
-	
-   FML::Process::Error 
-	define sender as $maintainer as a dummy sender to avoid
-	unexpected error.
-
-	if $maintainer_recipient_maps defined, forward error message
-	to it.
-	
-   FML::Process::Kernel 
-	permit use of reply_message() for libexec::error
-	
-   FML::Command::Admin::mailq 
-	modify format to be more similar to usual mailq output.
-
-2003/04/21
-
-   FML::Header 
-	obsolete mime_boundary() (same Mail::Message
-	_header_mime_boundary())
-
-2003/04/20
-
-   FML::Article 
-	not *path() method but spool_in() creates subdir if needed.
-
-2003/04/19
-
-   etc/default_config.cf.ja.in 
-   etc/src/config.cf.ja/acl.cf 
-   FML::Error 
-	we should handle addresses used by fml such as elena@fml.org,
-	elena-ctl@fml.org et.al. exceptionally in handling errors.
-
-	MLが使うアドレス( elena とか elena-ctl )は無視しないとね
-
-   Mail::Bounce
-	enhance smtp32 rules
-
-   FML::Command::Admin::newml 
-   FML::Config::Convert 
-   etc/aliases
-   etc/postfix_virtual 
-	fix virtual domain handling (fml-devel:417)
-
-	バーチャルドメインのテンプレートが間違ってたので修正。
-	今まで作っていた postfix の virtual テンプレートと
-	うまくいくようにした。
-
-2003/04/18
-
-   etc/command_line_options	
-	define menu.cgi
-	
-   FML::Command::Admin::newml 
-	mkdir $ml_home_prefix if not found
-
-   Mail::Message 
-	_header_mime_boundary() boundary detect no quote string case
-
-2003/04/16
-
-   article_filter_reject_notice_recipients
-	change attribute names of recipient used in filter rejection
-	notice: admin -> maintainer
-
-   FML::Header 
-	rewrite_received() outside loop $header->delete($org) for bad
-	count
-
-2003/04/15
-
-   Mail::Delivery::Queue 
-	reset alarm after flock()
-
-   FML::Header 
-	mime_boundary() boundary detect change short match and add no
-	quote string
-
-2003/04/09
-
-   FML::Header 
-	add rewrite_received() for replace Received::to X-Received:
-
-2003/04/07
-
-   Mail::Bounce::SimpleMatch 
-	add analize ybb.ne.jp and Webshield
-
-2003/04/04
-
-   フィルタが弾いた時のメッセージの返り先が微妙に間違ってるのを修正
-   FML::Process::Kernel 
-	reply_message_add_header_info() should pass $msg_args to
-	reply_message().
-
-2003/03/28
-
-   rename method: article_id_max() -> article_max_id()
-
-2003/03/24
-
-   img/ is updated to im-144.
-
-2003/03/18
-
-  【重要】 giant lock をなくす。粒度の細かいロックへ移行した。
-
-   FML::Command::Admin::edit get mailq 
-   FML::Command::User::deny guide help objective 
-	not need lock
-	
-   FML::Process::Kernel 
-	more logs around locks.
-	add deadlock warning.
-	reuse lock object if could.
-
-   FML::Command::UserControl 
-	modify chaddr algorithm::"del() and add()" -> "add() and del()".
-
-2003/03/17
-
-   特定のデータ構造を操作する関数をできるだけ集約するべく改造する
-	→ロックの粒度を細かくするため
-
-   FML::Process::Kernel 
-   Mail::Delivery::Queue 
-	fix that setrunnable() of Mail::Deliver::Queue returns the
-	correct value and FML::Process::Kernel logs the value.
-	
-   FML::Process::Distribute 
-	use new lock channel article_spool_modify to exclusive lock for both
-	sequence updating and spool writing.  In addition, locks at channel
-	article_sequence and article_spool are also done in each critical
-	section.
-	
-   FML::Command::Admin::chaddr 
-	move the main code to FML::Command::UserControl.
-	modified to use FML::Command::UserControl.
-	
-   FML::Command::Admin::changepassword 
-	move the main code to FML::Command::Auth.
-	
-   FML::Command::Auth 
-	implement change_password().
-	
-   FML::Process::Utils 
-	get_address_list() uses get_user_list() in FML::Command::UserControl.
-	
-   FML::Command::UserControl 
-	implement user_chaddr() and get_user_list().
-
-2003/03/16
-
-   removed "fmlthread".
-	instead of these, use the following commands: 
-		makefml thread $ml [options]
-
-   FML::Article 
-   FML::Article::Sequence 
-	define new lock channel::article_spool
-	move id related functions to FML::Article::Sequence	
-
-   FML::Article::Thread 
-	fixe to meethod style.
-	FNF::fix comments.
-	
-   FML::Command::SendFile 
-	use $curproc->article_id_max() to get the last article id.
-	
-   FML::Command::Admin::spool 
-	need no giant lock.
-	FML::Spool -> FML::Article::Spool
-	fix argument handling.
-	
-   FML::Digest 
-	define lock channel for digest_sequence_*.
-	use $curproc->article_id_max() if could.
-	clean up handling of digest_sequenc_file.
-
-   FML::Error 
-   FML::Process::Error 
-	clean up lock on error cache.
-	move lock mechanism into only FML::Error module.
-	XXX lock channel name is changed but hard-coded yet now.
-	
-   FML::Error 
-	fix lock channel name
-	
-   FML::Process::Utils 
-	article_id_max() is just a wrapper for FML::Article::id().
-
-2003/03/15
-
-   removed "fmlspool".
-	instead of these, use the following commands: 
-		makefml spool   $ml
-
-   File::Sequence 
-	return 0 if sequence file not found
-	
-   FML::Process::Command 
-	specify the definition on $command_args HASH STRUCTURE.
-
-2003/03/14
-
-   removed "fmlerror", "fmlsummary" and "fmlsuper".
-	instead of these, use the following commands: 
-		makefml error   $ml
-		makefml summary $ml
-		makefml mailq   $ml
-
-   FML::Process::Utils 
-	imlement debug_level()
-	
-   FML::Process::{Flow,Kernel}
-	define finalize() at the last of flow.
-	finalize() is only used for debug now.
-
-   FML::Header::Subject 
-   Mail::Message::Date 
-	validate input
-	
-   FML::Article::Summary 
-	validate input.
-	implement dump() method to show the whole summary_file.
-
-2003/03/11
-
-   FML::Sys::Alias
-	basic functions to deal with aliases file
-
-   FML::Process::Switch 
-   FML::Config::Tiny 
-	main.cf のデフォルト(バージョン依存)と /etc/fml/main.cf を
-	マージして評価する。そうしないと新変数が未定義になるなど
-	不都合がいろいろ出てくる。
-	
-	we use FML::Config::Tiny, which just reads and parses the file.
-	It is a tiny version of FML::Config module.
-
-   /etc/fml/	
-	install main.cf at $default_config_dir/
-
-2003/03/09
-
-   Mail::ThreadTrack::Print::HTML 
-	$action  = $curproc->safe_cgi_action_name()
-
-2003/03/06
-
-   variables
-	$use_article_filter_reject_notice
-	$article_filter_reject_notice_recipients
-	
-   etc/main.cf, etc/install.cf	
-	define $default_module_config
-	define $default_command_line_option_config
-
-   FML::Process::Distribute 
-	
-   FML::Process::Distribute 
-	enable switch by $use_article_filter_reject_notice
-	FNF: use get_as_array_ref()
-	
-   FML::Process::Addr 
-	switched to use FML::Sys::User
-	
-   FML::Restriction::Command 
-	nuke is_valid_mail_address() which is not used.
-	
-   FML::Process::Kernel 
-	validate From::syntax in credential updating.
-	FNF: use get_as_array_ref()
-
-   FML::Process::Kernel 
-   FML::Restriction::Post 
-	moved main codes of _check_restrions() to methods defined in new
-	FML::Restriction::Post module.
-	switched to use FML::Restriction::Post.
-
-   FML::Process::Scheduler 
-	remove dummy modules::queue_in() and exits()
-	
-   FML::Error::Cache 
-	modified not to use _new().
-	removed _new().
-	
-   FML::MTAControl::Procmail 
-	clarify *virtual* functoins are dummy.
-	These module do not need to handle virtual issue since
-	ml_name@ml_domain is explicitly written in procmailrc.
-	
-   FML::Process::Switch 
-	remove hard-coded module specific configuraitons.
-	resolve module name and the options based on etc::modules.
-	
-	use $default_config_dir/modules to resolv map between prorame
-	name and class (+ options).
-	
-	use etc::command_line_options to resolve getopts() parameters.
-	default_module_maps -> default_module_config.
-
-   FML::Filter 
-   FML::Process::Utils 
-	implment new method convert_to_mail_address() and use it
-	to expand {admin, sender, ...} to the corresponding mail address.
-
-2003/03/05
-
-   FML::Header 
-	do not show List-Help::unless $use_command_mail_program specified.
-	implement rewrite_errors_to()
-
-   FML::Process::Command Distribute 
-	return header for debug in error
-	
-   FML::Process::Kernel 
-	implement reply_message_add_header_info().
-
-	disable reply_message() in _check_restrictions().
-	
-	add "$curproc->caller_info($msg, caller) if $debug;" at a few places.
-	implement caller_info().
-	
-   FML::Filter 
-	「フィルタに弾かれたぞ」とメッセージを返す (プロトタイプ)
-	
-   messages
-	「メンバーじゃない」時のメッセージを改良
-	ウィルスかもよ?などとヒントも解説する。
-
-2003/03/03
-
-   FML::Article 
-	bug fix::try to mkdir $dir ($subdir) when $use_subdir enabled.
-	
-   Mail::Message::Spool 
-	bug fix::check value not by defined()
-
-2003/02/18
-
-   FML::Error 
-   FML::Process::Error 
-	use FML::Error->db_open() not FML::Error::Cache for cache db open.
-
-   FML::Filter 
-	fix typo
-	
-2003/02/16
-
-   clean up campaign of codes
-
-   variables
-	+summary_format_address_length
-	+cgi_menu_map_list
-	+cgi_menu_default_map
-	
-   FML::Config 
-	check the existence in load_file()
-	nuke ^\s* and \s*$ in array expantion.
-	yes() and no() compares the value case insensitively
-	bug fixed to work both FIRSTKEY() and NEXTKEY().
-	add debug code.
-	
-   FML::CGI::Calendar ThreadTrack 
-   FML::CGI::Admin::Menu 
-   FML::Command::HTMLify 
-   FML::Command::Admin::log 
-   FML::Process::Distribute 
-	use language_*() method to determine $charset
-	
-   FML::Article::Summary 
-	modified to use $summary_format_address_length.
-	it determines address length in summary file.
-	
-   FML::Command::User::get 
-	update comments and nuke todo.
-	
-   FML::Process::CGI::Kernel 
-	use language_*() to determine $charset.
-	remove hard-coded.
-	we ensure cgi_try_*() returns safe value.
-
-   FML::CGI::Admin::List 
-	nuke hard-coded and use config basd value.
-	add more syntax checks before main work.
-	
-   FML::Process::Utils 
-	implemente the following methods:
-	is_safe_syntax()
-	language_default()
-	language_of_cgi_message()
-	language_of_reply_message()
-	language_of_html_file()
-
-2003/02/15
-
-   FML::Command::UserControl 
-	use FML::Restriction::Base
-	
-   FML::Process::Utils 
-	implement safe_cgi_action_name()
-	
-   FML::CGI::ThreadTrack 
-   FML::CGI::Admin::List ML Menu User 
-   FML::Process::CGI::Kernel 
-	switched to use safe_cgi_action_name()
-
-2003/02/14
-
-   FML::MTAControl::Procmail 
-	fix code to find ml_name in procmailrc
-
-2003/02/13
-
-   Mail::Message 
-	use module global print_mode parameter not private one within
-	object.
-
-   FML::Command::Admin::off 
-	fixed to use $config->get_as_array_ref().
-	
-   FML::Command::UserControl 
-   FML::Command::Admin::{digest,off,on,subscribe,unsubscribe}
-	user{add,del}() checks input $address.
-	nuke the corresponding TODO.
-	
-   FML::Command::Admin::check 
-	validate $ml_name existence firstly.
-
-2003/02/11
-
-   switch INSTALL.sh to install.pl
-	インストーラを shell script から perl script へ変更しました!
-
-   FML::Install 
-	define default value (null) for md5 checksum result
-
-   FML::MTAControl 
-   FML::MTAControl::{Postfix,Procmail} 
-   Mail::ThreadTrack::Print::{HTML,Text} 
-   Mail::Delivery::Queue 
-   Mail::ThreadTrack::Print::Message 
-   Mail::Message::ToHTML 
-	FNF: not use $_
-
-2003/02/10
-
-   solaris 9 でもうごいたよ (^^)
-
-2003/02/08
-
-   variables
-	$command_run_*_hook added
-
-   etc/dot-qmail*
-	change args::ml_home_dir  -> ml_name@ml_domain
-
-2003/02/07
-
-   Mail::Message::ToHTML 
-	quick hack at sub sub _print_inline_object_link() URL Link
-
-2003/02/05
-
-   FML::Process::Command 
-	add $command_run_{start,end}_hook
-
-2003/02/03
-
-   FML::Process::Command
-   FML::Process::Error
-	stop_this_process() メソッドが意味をなすように修正
-	おもに hook のため
-
-2003/02/01
-
-   返事の返し方を変更 (お試し)
-	宛先の組ではなく、宛先ベースでメッセージをまとめる
-
-   FML::Process::Utils
-	implement unique()
-	
-   FML::Process::Kernel
-	unique recipient array before queuing.
-	implement another strategy of recipient based ququeing (for test).
-	
-   FML::Command::UserControl
-   FML::Command::Admin::chaddr
-   FML::Command::User::{chaddr,subscribe,unsubscribe}
-	try exact matching just before changing user.
-
-   IO::Adapter
-   IO::Adapter::{Array,DBI,MySQL}
-	remove get_next_value() method.
-	add todo for get_value_as_* if needed.
-	update document.
-	
-   IO::Adapter
-	get_next_value() メソッドを削除
-
-   FML::Command::Admin::chaddr
-	remove address matched by FML::Credential
-	in the case of $old_address
-	
-   FML::Config
-	FNF
-	bug fix wrong argument for chomp().
-	
-   FML::Credential
-	implement matched_address() method
-	
-   FML::Command::UserControl
-	try to remove address matched by $cred->has_address_in_map(), not
-	address specified by the function argument.
-
-   FML::Command::Auth
-	use FML::Crypt not Crypt::UnixCrypt directly.
-
-   variables	
-	enable changepassword, chpass, initpass and passwd as admin
-	command.
-
-2003/01/31
-
-   fix typo: rename Calender to Calendar ;)
-
-2003/01/29
-
-   FNF-ify (update/clean up documents, coding style ...)
-	FML::Install
-	File::CacheDir Utils.pm
-	IO::Adapter::AtomicFile
-
-   FML::Command::Admin::newml
-   FML::MTAControl::Utils
-	in newml, we should check if $ml_name already exists as a user
-	name or not.
-	
-   FML::MTAControl
-	add FML::MTAControl::Utils into @ISA
-
-   FML::Process::Calender
-	prepare() loads default configuration to use $path_* info.
-	w3m -> $path_w3m
-	cat -> $curproc->cat() method (XXX temporary use).
-	
-   FML::Process::Utils
-	implement cat() method for convenience
-	
-   FML::Command::Admin::unsubscribe
-	use $config->get_as_array_ref() method.
-
-   install.pl.in
-   FML::Install
-	implement is_run_as_root().
-	we verify install.pl runs as root.
-
-2003/01/28
-
-   FML::Config
-	expand ${variable}
-	
-   FML::Header::Subject
-	decode() returns tag info, too
-	
-   FML::Install
-	At the first time, do not ask if upgrade or not loader.
-	bug fix checks in copy_dir().
-	copy_dir() install files by preserving [am]time.
-
-   installer perl version
-	fml/etc/install.cf.in
-	install.pl.in
-
-2003/01/27
-
-   FML::Command::Admin::{deladmin,byeadmin}
-	mv real codes from byeadmin to deladmin module.
-	now, byeadmin is a forwarder to deladmin.
-	
-   FML::Command::Admin::delmoderator
-	sync with deladmin codes
-
-2003/01/26
-
-   FNF-ify (update/clean up documents, coding style ...)
-
-   FML::Command::DirUtils
-	use FML::Restriction::Base::regexp_match() to check command
-	line options.
-	FNF: remove $_
-	
-   FML::Restriction::Base
-	define 'command_line_options' regexp.
-	
-   FML::Command::Admin::byeadmin
-	bug fix target maps to handle.
-
-2003/01/25
-
-   FNF-ify (update/clean up documents, coding style ...)
-
-   FML::Command::Utils
-	removed since it is not used.
-
-   FML::Process::Utils
-	get_ml_list() checks arguments matched with regxp provided by
-	FML::Restriction::Base.
-	
-   FML::Error
-   FML::Command::DirUtils FileUtils.pm
-   FML::Command::Admin::dir file.pm
-   FML::Process::Kernel
-   FML::Restriction::Base
-	implement FML::Restriction::Base::regexp_match() and
-	switched to use it.
-	
-   Calender::Lite
-   FML::Restriction::Base
-	implement FML::Restriction::Base::regexp_match() can handle special
-	class "fullpath" not based on regexp.
-	
-	switch Calender::Lite to use this method for checking of fully path-ed
-	directory.
-
-2003/01/10
-
-   mime component filter に次の機能を仕込みました。
-
-	1) multipart のメッセージの中身がないなら、
-	   そのパートは切り捨てる
-
-	2) もし、すべてのパートが無効なら、reject する
-
-	例: こういうメールの場合を想定したものです。
-		text/plain (空)
-		application/ms-word (virus つき)
-
-	application/ms-word は content filter のルールで削除され、
-	無意味な text/plain は今回の機能で削除され、
-	結局有効なパートがないので reject する(配送しない)。
-
-	とりあえず、この機能はデフォルトで on です。
-
-   Mail::Message
-	fix next/prev link of object chain
-	implemenet is_multipart() method
-	
-   FML::Filter::MimeComponent3
-	when $opt_cut_off_empty_part is non zero, we cut off empty part.
-	Also, reject this message if no effective part in multipart.
-	
-	XXX $opt_cut_off_empty_part = 1; by default now.
-
-2003/01/09
-
-   FML::Filter::MimeComponent3
-	fix wrong logic of handling determined $action vs default_action.
-	corerct messages.
-
-2003/01/08
-
-   FML::Filter::MimeComponent3
-	sync default rule w/ etc/mime_component_filter
-
-2003/01/07
-
-   variables
-	postfix_verp_delimiters	=	+=
-	qmail_verp_delimiters	=	-=
-	
-   FML::Command::UserControl
-	shorten log messages
-	
-   FML::Process::Spool
-	change argument style
-
-2003/01/05
-
-   add new utility
-	fmlerror
-	fml
-
-   variables
-	$fmlerror_*hook added
-	
-   FML::Process::Switch
-	add fmlerror, fix fmlsuper getopt
-	
-   FML::Error
-   FML::Error::Analyze
-	
-	implement get_data_detail()
-
-2003/01/04
-
-   FML::MTAControl
-	add && enable FML::MTAControl::Sendmail.
-	
-	implement _remove_postfix_style_virtual(), which moved from
-	FML::MTAControl::Postfix.
-	
-   FML::MTAControl::Postfix
-	postfix_find_key_in_alias_maps()::find system aliases and fml defined
-	aliases irrespective of the result by postconf. This search uses newly
-	implemented _find_key_in_file() but it is a bug since it handles file
-	search only.
-	
-	modified to use _remove_postfix_style_virtual().
-	
-   FML::Error::Analyze
-	add analize day limit
-	
-	change day checkpoint at simple_count
-	add simple_count2() error_continuity2() for error type 4xx
-	
-	bugfix missing my at day check values
-
-2003/01/03
-
-   variables
-	add admin_member_maps into member_maps
-	
-   FML::Command
-	define $debug.
-	more error messages.
-	
-   FML::Restriction::Base
-	implement regexp() method.
-	FNF-ify.
-	
-   FML::Error
-	modified use FML::Restriction::Base->regexp().
-	
-   FML::Command::{DirUtils,FileUtils}
-   FML::Command::Admin::{dir,file}
-	modified to use FML::Restriction::Base->regexp().
-	modify messages.
-	
-   FML::Command::Admin::{newml,rmml}
-	get_as_array_ref() to get $newml_command_mta_config_list values.
-	
-   FML::Process::Command
-   FML::Command::Auth
-	modify log messages.
-	hide messages for debug mode.
-	
-   FML::Process::{Addr,Alias}
-	fix help message.
-	nuke not used variables.
-
-2003/01/02
-
-   fmlsuper コマンドを追加する。
-	キュー管理のための、ちょっとしたコマンドにするつもり。
-
-   update configure
-	add fmlsuper
-
-   variables
-	add $fmlsuper_*hook
-	
-   FML::Process::Switch
-	enable fmlsuper using FML::Process::Super
-	
-   FML::Process::Spool
-	fix description
-
-2002/12
-
-	オーバーホール・キャンペーンでした。
-
-
-2002/12/31
-
-   Mail::Bounce::SimpleMatch
-	bug fix trap pattern for more accuracy.
-
-   variables
-	+path_sum                  = @SUM@
-	+path_gzcat                = @GZCAT@
-	+path_makemap              = @MAKEMAP@
-	
-	define $newml_command_mta_config_list
-	define $rmml_command_mta_config_list
-	define $sendmail_virtual_map_file
-	
-	change $domain_sendmail_config_dir
-	$domain_mail_config_dir -> $domain_config_base_dir::sendmail
-
-   FML::MTAControl::Postfix
-	remove duplicated call "postmap virtual"
-
-   update configure
-	search sum, digest, gzcat and makemap, too.
-
-2002/12/30
-
-   Mail::Delivery::SMTP
-   Mail::Message
-	enhance Mail::Message::set_log_function() to override the global log
-	function within Mail::Message name space.  Thie enables all objects
-	within the current Mail::Message space uses the same log function.
-	
-	We need this function to enforce all objects in a chain to use the
-	same log output channel.
-	
-	So, Mail::Delivery enhanced to use this function to fix the lack of
-	log messages for multipart messages.
-
-2002/12/26
-
-   FML::Article
-	bug fix: defined check for $sfh
-
-   FML::Mailer
-	not set smtp_log_handle to avoid duplication
-
-   FML::Log
-	create log file with mode 0600 if could.
-	it seems o.k. by "Principle of Least Surprise".
-
-2002/12/25
-
-   FML::Process::Distribute
-	not use smtp_log_handle to avoid duplication in
-	var/mail/outgoing/ (PR fml-devel:345).
-
-   FML::Process::Command
-	fix comments.
-	rename::_allow_command() -> _config_allow_command()
-
-2002/12/24
-
-   *オーバホール・キャンペーン実施中
-
-   FML::Process::Command
-	rename:
-	o _is_valid_command() -> _config_permit_command()
-	o _is_valid_syntax()  -> _is_safe_syntax()
-	o _auth_admin()       -> _try_admin_auth()
-	
-	fix changes.
-	more log of level exceptions.
-
-2002/12/23
-
-   *オーバホール・キャンペーン実施中
-
-   File::CacheDir
-	fix comments.
-	check defined() more.
-	chop -> chomp.
-	
-   File::Sequence
-	fix comments.
-	clean up the return value by removing \s*..
-	
-   FML::Command::HTMLify
-	fix comments.
-	aggrege duplicated code.
-	
-   FML::Command::SendFile
-	fix comments.
-	rename: _is_valid_argument() -> _get_valid_article_list().
-	sort.
-	
-   FML::Command::User::digest
-	fix comments.
-	clean up (sort) codes.
-	
-   FML::Process::Kernel
-	clean up.
-	fix comments.
-	fix label name.
-	check address pattern by FML::Restriction.
-	//o if could.
-	
-   IO::Adapter::AtomicFile
-	bug fix: $fh->close() -> $fh->SUPER::close().
-
-2002/12/22
-
-   FML::MTAControl::Postfix
-	PR (fml-devel:343)
-	check the existence of virtual file.
-	
-   *オーバホール・キャンペーン実施中
-
-   IO::Adapter::AtomicFile
-	cometics. fix comments.
-	defined() check before $fh->close().
-	
-   Mail::ThreadTrack::Print::Text
-	fix comments.
-	add loop label.
-	
-   Mail::ThreadTrack::Print::Message
-	fix comments.
-	//o
-	modify variable to be more readable::$h -> header
-	
-   Mail::ThreadTrack::Analyze
-	fix comments.
-	//o
-	defined() check more.
-	
-   Tie::JournaledDir JournaledFile.pm
-	fix comments.
-	clean up variable names.
-	inform error by croak() more.
-	
-   FML::Config Confirm.pm
-	fix comments.
-	add todo(s) as comments.
-	//o
-
-2002/12/19
-
-   *オーバホール・キャンペーン実施中
-	clean up.
-	+ define label or rename label to more appropriate one for loop.
-	+ use return().
-	+ use qw() if could.
-	use ::::o if could.
-	fix comments.
-
-   FML::Header
-	s/rerply-to/Reply-To/
-	more defiend() check.
-	
-   FML::Command::Admin::log
-	fix comments.
-	fix typo.
-	bug fix the usage of _show_log() method.
-	
-   FML::Filter::TextPlain
-	fix comments. add todo(s).
-	rename $m -> $first_msg to clarify variable function.
-	remove not used declaration.
-
-2002/12/18
-
-   *オーバホール・キャンペーン実施中
-
-   FML::Header
-	clean up comments.
-	require() -> use()
-	
-   FML::Log
-	clean up commnets.
-	croak() if loading Mail::Message::Date fails.
-	
-   FML::MTAControl::Procmail
-	fix comments and documents.
-	use $fh->close() not close($fh).
-	
-   FML::MTAControl::Postfix Qmail.pm
-	fix comments
-	
-   FML::MTAControl
-	clean up comments.
-	define is_valid_mta-type() and modified to use it.
-
-   FML::Header::MessageID
-	define dummy db_close()
-	
-   FML::Process::Addr
-	clean up comments.
-	$fh->close()
-	
-   FML::Command::DirUtils
-	clean up comments.
-	modified to define $variable to describe arguments to execute
-	and run system($exec).
-
-2002/12/15
-
-   *オーバホール・キャンペーン実施中
-
-   FML::Article
-	id() returns data on memory or in sequence_file if not found
-	on memory.
-	clean up comments.
-	use $curproc->config(), $curproc->pcb().
-	
-   FML::Article::Summary
-	redireced to STDOUT if output channel cannot be opened.
-	add todo(s) as comments.
-	
-   ErrorStatus
-	clean up comments.
-	defined() check.
-	forward method::errstr() -> error().
-	
-   FML::Command::Admin::edit
-	print informational mesage
-	
-   FML::Command::Admin::dir
-	fix comments.
-	not pass $du_args->{options} to FML::Command::DirUtils module.
-	
-   FML::Command::Admin::byeadmin
-	care for primary_admin_recipient_map
-	XXX we should handle *_maps not primary_*_map.
-
-   FML::Restriction::CGI Command.pm
-	clean up comments
-	
-   FML::Restriction::Base
-	clean up comments.
-	define ${file,dir,command}_regexp. modified to use these regexp(s).
-	enhance $command_regexp to include [0-9].
-
-2002/12/13
-
-   File::SimpleLock
-	need write permission for flock on solaris (PR fml-devel:331,332)
-
-2002/12/12
-
-   Calender::Lite
-	cosmetic changes.
-	fix comments.
-	fix tag (FILE -> LINE).
-	
-   FML::Error::Analyze
-	defined()
-
-2002/12/10
-
-   updated IM modules to im-142
-	Thank Tatsuya Kinoshita .
-
-2002/12/09
-
-   update CPAN modules
-	import File-MMagic 1.16
-	import MIME-Types  1.004
-	update MailTools   1.15 -> 1.52
-
-2002/12/01
-
-   FML::Article::Summary
-   FML::Process::Distribute
-	bug fix article object handling:
-	we should not initialize article object under
-	libexec::distribute runs. pass $article object to $summary
-	object by append($article, $id).
-
-   FML::Article::Summary
-	summary date should be sync-ed with article date
-
-2002/11/26
-
-   implement fmlsummary program
-
-   new variables
-	define $fmlsummary*hook
-	define $summary_file, $summary_format_type
-	
-   FML::Article::Summary
-	FNF-ify.
-	clean up.
-	nuke debug.
-	implement rebuild() to enable "fmlsummary rebuild $ml_name".
-	make jcode of summary file "jis-jp".
-	implement append($id).
-
-   FML::Process::Summary
-	newly added as a main module to run fmlsummary program.
-	implement rebuild() to enable "fmlsummary rebuild $ml_name".
-	fix help and conditions to show help
-	
-   FML::Process::Distribute
-	update summary file by calling $summary->append($id)
-
-   FML::Process::Kernel
-	enable fmlsummary $command $ml_name ...
-	more defined() check
-
-   FML::Header::Subject
-	define clean_up(), decode(), delete_subject_tag() to separete
-	functions.
-	
-2002/11/24
-
-   variables
-	$commands_for_privileged_user += digest
-	
-	define $commands_for_admin = $commands_for_privileged_user for
-	conveninence.
-	XXX remove either in the future.
-	
-   FML::Command::Admin::digest
-	clean up
-	
-   FML::Command::Admin::{dir,file}
-	basic_variables() -> basic_variable() for FML::Restriction::Base
-	
-   FML::Process::Utils
-	enable to handle digest_recipient in which_map_nl().
-
-2002/11/20
-
-   FML::Error::Cache
-	mkdir $error_analyzer_cache_dir if not exists
-
-   variables
-	mkdir $error_analyzer_cache_dir in initialization phase
-
-2002/11/19
-
-   FML::Command::Admin::digest
-	init digest on off for admin
-
-   FML::Process::Kernel
-	bug fix queue identifier generation
-	
-   Mail::Delivery::Queue
-	input of recipients can be duplicated
-
-   Mail::Message::ToHTML
-	bug fix function call::f() => $obj->f()
-
-2002/11/18
-
-   FML::Process::Digest
-	correct start id calculation
-	enable queue flush to send digest.
-	
-   FML::Digest
-   FML::Process::Kernel
-	digest routine can customizes header.
-	XXX preliminary support. needs overhaul?
-
-2002/11/17
-
-   new variables
-	define $digest_*hook
-	$primary_digest_member_map	= $primary_member_map
-	$digest_member_maps		= $primary_member_maps
-	$primary_digest_recipient_map	= file:$ml_home_dir::recipients-digest
-	$digest_recipient_maps		= $primary_recipient_map
-	$article_sequence_file (= $sequence_file) for symmetry
-	$use_digest_program
-	$digest_sequence_file
-	$article_sequence_file
-	
-   FML::Process::Switch
-	enable libexec/digest
-
-   File::Sequence
-	fix get_id(); not use chomp() but use s::[\s\r\n]*$::::.
-	define set_id($id) to update value in the sequence file.
-	
-   FML::Process::Digest
-	newly created for digest delivery program.
-	implement _digest(), which is the real function to process digest
-	message creation.
-	
-	XXX mail queue operation is not yet implemented.
-
-   FML::Digest
-   FML::Process::Digest Kernel.pm
-   Mail::Delivery::Queue
-	enabled passing of recipient_maps (ARRAY_REF) into mail queue.
-	By this, we can now pass $digest_recipient_maps as digest recipients
-	to mail queue system.
-
-2002/11/09
-
-   I-D を消去し、www.fml.org I-D コレクションを見るようにした。
-
-2002/11/07
-
-   FML::MTAControl::Postfix
-	postconf -d -> postconf (postfix version dependent ?)
-	
-   FML::Process::Switch
-   FML::Process::Addr
-   INSTALL.sh configure configure.in
-   fml/bin/fmladdr.in
-	implement fmladdr command, which shows all users and aliases.
-
-2002/10/31
-
-   add configura option: --with/without-mime-component-filter
-	configure.in
-	fml/etc/site_default_config.cf.in
-		configure --with/without-mime-component-filter
-
-2002/10/29
-
-   FML::Process::Utils
-	fix escape of Log(...) in eval q{}
-	
-   FML::Command::Admin::newml
-	prinf "a b c" -> a, b, c
-	
-   Mail::Message::ToHTML
-	umask escaping like splx():
-	mask = umask();
-	umask( ...) ; # set up umask here
-	do something ...
-	uamsk($mask);
-	
-   FML::Process::Utils
-	ensure umask escape in _mkpath_*()
-	
-   FML::Command::Admin::newml
-	handle both public and private directories in initialization phase.
-	create variables:
-	$newml_command_init_public_dirs $newml_command_init_private_dirs
-	
-	changed newml codes to use them.
-
-2002/10/28
-
-   FML::Header::Subject
-	you can use \U$ml_name\$ in subject tag configuration:)
-	
-   FML::Process::ThreadTrack
-	fix db_update cannot get last_id from _speculate_last_id() use seqfile
-	
-   File::Sequence
-	use chomp at get_id()'s return value
-
-2002/10/27
-
-   FML::Filter::MimeComponent3
-	bug fix interface between FML::Filter and MimeComponent3
-
-2002/10/26
-
-   FML::Filter::MimeComponent3
-	fix initianlization bug
-	
-   FML::Filter
-	use MimeComponent3 as a test
-
-2002/10/23
-
-   Mail::ThreadTrack::DB
-	typofix filepath value at sub db_mkdb()
-	
-2002/10/22
-
-   FML::Process::Kernel
-	handle fmlthread $argv same as makefml one
-
-2002/10/21
-
-   MIME component フィルタの描き直し
-
-   FML::Filter
-	re-enable mime component filter based on
-	Filter::MimeComponent2
-
-   FML::Filter::MimeComponent2
-	
-	fix rule appling algorithm:
-	 for rule (rules) {
-	    for mp (message) {
-	       check mp by $rule
-	   }
-	 }
-	
-	enable to read filter rules from the specified file (-c file).
-	
-	show more debug info.
-	
-	clean up debug info. debug info changes with debug level
-
-	implement "cutoff" action
-
-	clarify reason in log message
-	
-	enhance filter rule to use the reverse condition.
-	e.g. (whole_type, !type, action).
-
-2002/10/12
-
-   Mail::Message::ToHTML
-	rename index.html to index_all.html
-	add sub create_top_index()
-
-2002/10/06
-
-   Mail::Message::ToHTML
-	add index reverse code at _update_id_monthly_index()
-
-2002/10/04
-
-   variables
-	define $html_archive_index_order_type
-	
-   FML::Command::HTMLify
-   FML::Process::Distribute
-   Mail::Message::ToHTML
-	enabled to handle order in index.html by
-	$html_archive_index_order_type.
-	
-	Mail::Message::ToHTML
-	o htmlify_{file,dir}() is changted to normal methods for passing
-	arguments.
-	
-   FML::Filter
-	add prototype for $use_article_non_mime_filter
-	
-   FML::Header::Subject
-	workaround to re-encode subject after subject tag handling
-
-2002/09/30
-
-   フィルタリングの再構成
-
-	FNF-ify
-	
-	rename: _load_function() -> _apply_function()
-	
-	module name renamed:
-	o ContentCheck -> MimeComponent
-	o HeaderCheck  -> Header
-	o BodyCheck    -> TextPlain
-
-2002/09/29
-
-   フィルタリングの再構成
-
-   変数
-	reconstruct filter system.  create a new file "article.cf",
-	and gather article_*_filter definitions in it.
-
-   FML::Process::Distribute
-	sync w:::FML::Filter reconstruction. rename function name
-	
-   FML::Filter
-	following new variable $article_filter_functions,
-	call the following function sequentially.
-	o article_header_filter
-	o article_non_mime_filter
-	o article_mime_component_filter
-	o article_text_plain_filter
-
-2002/09/29
-
-   FML::Process::ConfViewer
-	"fmlconf $ml $varname" shows "$varname = $value".
-	unless $varname specified, dump all variables.
-
-   FML::Config::Convert
-	hold file mode. set $dst mode same as $src mode
-	
-   FML::Confirm
-   FML::Header::MessageID
-   File::CacheDir
-   Mail::ThreadTrack
-   Mail::Delivery::Queue
-   Mail::Message::ToHTML
-   Mail::ThreadTrack::DB
-	we should not use hard-coded file::dir mode
-	
-   FML::Article
-	care subdir case more
-
-2002/09/28
-
-   variables
-	enable off/on for user use
-
-2002/09/24
-
-   variables
-	$article_body_filter_rules add permit as the last resort
-	$article_header_filter_rules append permit rule
-	
-   FML::Filter::BodyCheck
-   FML::Filter::HeaderCheck
-	define permit rule
-
-2002/09/23
-
-   FML::Filter::BodyCheck
-	should not import STR2EUC from Mail::Message::Encode
-	bug fixed to use Mail::Message::Encode->convert()
-
-2002/09/14
-
-   FML::Filter::BodyCheck
-	add use Mail::Message::Encode at reject_japanese_command_syntax()
-	because rejected by filter due to Undefined subroutine
-	&FML::Filter::BodyCheck::STR2EUC called
-	
-   variables	
-	define $default_umask and $timezone
-
-2002/09/11
-
-   FML::Log
-	not use /dev/stderr
-
-2002/09/09
-
-   INSTALL.sh
-	not use "id -p" (PR by fml-devel:241)
-
-2002/08/29
-
-   INSTALL.sh
-	add a cheap diag: check the existence of $owner and $group
-
-   FML::Command::Admin::newml
-	validate $ml_home_prefix before main
-
-2002/08/28
-
-   FML/Process/Kernel
-	proper handling of "$program /var/spool/ml/elena" case
-
-2002/08/26
-
-   IO::Adapter::File
-	ensure rollback in calling get_value_*()
-	
-   FML::Error::Analyze
-	error_continuity::in summation, bad if $v >= 2
-	
-   FML::Credential
-	is_same_address() validate input data more
-	
-   FML::Process::Kernel
-	bug fix my ml_name (+ ml_domain) detection code:
-	
-	[back ground detail] "fmlconf -n elena@fml.org" works but
-	"fmlconf -n elena" not works since we ignore the latter case.
-	Regaredless of poorman's strategy but we pick up the first non
-	/^-/ string as a $ml_name and set $ml_domain to the default
-	domain.
-
-2002/08/21
-
-   IO::Adapter
-	enhance add() to add($address, [$argv])
-	
-   IO::Adapter::File
-	enhance add()
-	implement get_next_value()
-	define get_value_as_str($key), get_value_as_array_ref($key)
-
-   IO::Adapter::AtomicFile
-	more unique temp filename
-	
-2002/08/20
-
-   FML::Process::Distribute
-	modify error message
-	
-   FML::Command::SendFile
-	message key change
-	command.get.invalid.args -> command.get_invalid_args
-	
-   IO::Adapter::File
-	remove fml 4 specific ignore rules such as m=.. option
-	delete(KEY) not (REGEXP)
-
-2002/08/19
-
-   FML::Process::Error
-	rename::$use_error_analyzer -> $use_error_analyzer_program
-	use default $log_format_type now
-	
-   FML::Process::Command
-	enable process if $use_command_mail_program is defined.
-	
-   FML::Process::Distribute
-	enable process if $use_distribute_program is defined.
-	
-   variables
-	define $use_command_mail_program ("yes" by default).
-	rename $use_error_analyzer to $use_error_analyzer_program
-
-   message key reconstructuring
-
-2002/08/18
-
-   FML::Command::SendFile
-	more debug info.
-	
-	send_user_xxx_message()
-	set $command_args->{ _filename_to_send } before calling send_file().
-	
-   FML::Command::User::confirm
-	send back welcome file in subscribe case
-
-2002/08/16
-
-   FML::Error::Analyze
-	error_continuity::sum up time sequence with not point but mountain
-	with some width.
-	rename::simple_count_by_day -> error_continuity
-
-   Mail::Message::Encode
-	add is_iso2022jp_string()
-	
-   FML::Command::Admin::log
-   FML::Filter::BodyCheck
-   FML::Process::Kernel
-	switch FML::Language to Mail::Message::Encode
-
-   FML::Language::ISO2022JP
-   FML::Language::Japanese::{String,Utils}
-	Removed
-
-2002/08/15
-
-   new variables	
-	$error_analyzer_function
-	$error_analyzer_simple_count_limit
-	
-   FML::Error
-	count up address with status=5*
-	move analyzer function() to FML::Error::Analyze
-	rename: *_timeout -> *_event_timeout
-	
-   FML::Process::Kernel
-	check if $maintainer differs $ml_address
-	rename: *_timeout -> *_event_timeout
-
-2002/08/14
-
-   FML::Process::Kernel
-	use $config->get_as_array_ref( 'header_loop_check_rules' ) to get list.
-	rename: refuse_further_processing() -> stop_this_process()
-	define do_nothing($reason), same as stop_this_process()
-
-   FML::Process::Alias Command ConfViewer Configure Distribute
-		DocViewer Error HTMLify Kernel Spool ThreadTrack
-   FML::Process::CGI::Kernel
-	apply fix_perl_include_path(); after load_config_files() runs to add
-	ml local library path to @INC.
-	This is used for ml specific extention e.g. command extension.
-	
-   FML::Process::Kernel
-	enable ml local message template handling
-	
-   variables
-	define $ml_local_* for ml specific customize
-	+ ml_local_dir           =       $ml_home_dir::local
-	+ ml_local_lib_dir       =       $ml_local_dir::lib
-	+ ml_local_share_dir     =       $ml_local_dir::share
-	+ ml_local_message_template_dir  = $ml_local_share_dir::message
-	
-	change definition for $message_template_dir:
-	$fml_share_dir::message::$template_file_charset ->
-		$fml_share_dir::message
-
-2002/08/13
-
-   fml.org を 4.0 から fml-devel ベースへ移行開始
-
-   etc/include*
-	__ml_home_prefix__::__ml_name__ -> __ml_name__@__ml_domain__
-	
-   etc/config.cf*
-	comment out $ml_name, $ml_domain
-	
-   FML::MTAControl::Postfix
-	bug fix $fh-close() under defined($fh) is confirmed
-	use "postconf -d" to expand variables
-
-   Mail::Message::Encode
-   remove FML::Encode and Mail::Message::Decode
-	merge FML::Encode Mail::Message::Decode into Mail::Message::Encode
-
-   FML::Header::Subject
-	switched to use of Mail::Message::Encode
-
-2002/08/11
-
-   FML::Encode
-	プロトタイプを作ってみる。
-	XXX このモジュールは fml 4.0 でも使う
-
-2002/08/09
-
-   libexec/error
-	エラーアドレスの自動削除機能一通り完成
-
-   FML::Process::Error
-	change lock granuality
-	
-   FML::Error
-	validate syntax for target address to remove
-	check if the target address is a ML member before deluser() runs
-	
-2002/08/08
-
-   FML::Error
-	enable real deluser()
-	
-   FML::Credential
-   FML::Command::{Auth,UserControl}
-   FML::Command::Admin::chaddr
-   FML::Command::User::{chaddr,off,on,subscribe,unsubscribe}
-   FML::Process::{Command,Error,Kernel}
-	change arguments of credential functions to clarify the target address:
-	e.g. is_member($curproc, $args) -> is_member(addr)
-	
-	modified functions:
-	o is_member()
-	o is_privileged_member()
-	o is_recipient()
-	o match_system_accounts()
-
-2002/08/07
-
-   libexec/error
-	エラーアドレスの自動削除機能を実装
-
-   FML::Error::Cache
-   FML::Process::Error
-   FML::Error
-	enable automatic user removing (prototype)
-	
-   FML::Process::{Kernel,Utils}
-	define $curproc->{ scheduler } not _scheduler
-	define access method scheduler().
-	please use it e.g. $curproc->scheduler().
-	
-   FML::Process::Kernel
-	lock() and unlock() accepts channel as the argument if needed.
-	
-	implemented
-	o is_timeout( $channel )
-	o get_timeout( $channel )
-	o set_timeout( $channel, $time )
-	
-   FML::Process::Error
-   FML::ErrorAnalyze  (removed)
-	create FML::Error:::with separate clesses for cache manipulation and
-	analyzer.
-	modified to FML::Error::Cache for cache writing.
-
-   FML::Process::Scheduler
-	$scheduler_queue_dir -> $event_queue_dir
-	
-   Tie::JournaledFile
-	check the file existence
-	
-   Tie::JournaledDir
-	bug fix the default day type handling
-	
-2002/08/03
-
-   変数
-	define $scheduler_queue_dir
-
-   FML::Process::Kernel Command Distribute Error
-   FML::Process::Scheduler
-	scheduler_init()
-
-   Tie::JournaledFile
-	enhance find: find(key, [mode]) where mode = scalar, array, array_ref
-	implement get_all_values_as_hash_ref()
-	bug fix FIRSTKEY() and NEXTKEY(), modified to use hash on memory
-	
-   Tie::JournaledDir
-	bug fix keys() and each(), modified to use hash on memory.
-	implement EXISTS(), DELETE(), CLEAR()
-	implement get_all_values_as_hash_ref()
-	
-   FML::Header::MessageID
-	modified to sync w:::Tie::JournaledDir usage
-	
-   FML::Article
-   FML::Header
-   FML::Process::Distribute Kernel
-	use LogError() if appropriate
-
-2002/07/31
-
-   ログファイル
-	ログファイルフォーマットのデフォルトを変更
-
-   FML::Header
-   FML::Header::MessageID
-	disable some debug codes.
-	switch DB from File::CacheDir to Tie::JournaledDir
-	
-   FML::Log
-	use File::Basename;
-	
-   FML::Article
-	s/Article/article/
-	
-   Mail::Delivery::SMTP
-	recipients::total=\d+
-	
-   FML::Process::Distribute
-   Mail::ThreadTrack::Analyze
-	disable some debug messages
-
-2002/07/30
-
-   変数
-	+error_analyzer_cache_type		=	File::CacheDir
-	+error_analyzer_cache_mode		=	temporal
-	+error_analyzer_cache_size		=	14
-
-   libexec/error を書き上げよう!
-	   FML::Process::Error
-	   FML::ErrorAnalyze
-		move error analyzer core functions to FML::ErrorAnalyze
-
-   FML::Process::Kernel
-	libexec::error not need reply_message()
-
-2002/07/29
-
-   変数
-	nuke database_* sql_*
-
-   FML::Process::Error
-	bug fix::resolve_ml_specific_variables() and load_config_files()
-	add a few function prototypes
-
-2002/07/28
-
-   変数
-	$newml_command_init_dirs
-		rename::init_config_dir_list -> newml_command_init_dirs
-
-		added $shared_db_dir $var_dir $db_dir $lock_dir
-		$tmp_dir $spool_dir
-
-	member_maps = $primary_member_map (nuke members-admin)
-
-2002/07/26
-
-   モデレータモードの予備作業
-	moderator の maps を定義する。
-		members-moderator
-		recipients-moderator
-
-	{add,del}moderator コマンドを作成
-
-   FML::Command::Admin::{add,del}admin
-		members-admin
-		recipients-admin
-	の両方をアップデートする(けど、recipients の方は使わない)。
-
-2002/07/25
-
-   FML::Config
-   File::Sequence Utils
-   IO::Adapter::File
-   IO::Adapter::AtomicFile
-   IO::File::Atomic
-	rename::IO::File::Atomic -> IO::Adapter::AtomicFile
-
-   IO::Adapter の改良継続中
-
-   FML::Process::Command
-	improve error messages
-
-   FML::Process::Kernel
-	improve log messages
-
-   IO::Adapter::File
-	bug fix so that getline() returns undef if not opened
-
-2002/07/24
-
-   IO::Adapter
-	clean up
-	remove AUTOLOAD()
-	removed replace()
-
-   IO::Adapter::DBI
-	add missing open(), close()
-	removed replace()
-	implement getline()
-
-   IO::Adapter::File
-	removed replace()
-	clean up comments
-
-   IO::Adapter::SQL::toymodel
-	removed since we discard sql model based framework
-
-   FML::Credential
-   FML::Command::UserControl
-   FML::Command::Admin::chaddr
-	change argv of FML::Credential::has_address_in_map():
-	($map, $address) -> ($map, $config, $address)
-
-2002/07/23
-
-   IO::Adapter の SQL コードを大改定
-
-   FML::Mailer
-   FML::Command::Auth UserControl
-   FML::Command::Admin::chaddr
-   FML::Process::Distribute Utils
-   Mail::Delivery::SMTP
-	reconstruct SQL functions in IO::Adapter
-	new IO::Adapter $map, $config;
-
-   IO::Adapter
-   IO::Adapter::DBI MySQL
-	reconstruct MySQL functions
-	o get_next_key() works now.
-	o disable some functions once.
-
-   FML::Config
-	.ini sytle extension. for example
-
-	[mysql:id]
-	key = value
-
-	So, we have the 2nd level hash value such as
-	$config->{ key1 }->{ key2 } = $value
-	and read::write it.
-
-	bug fix {+,-}=  operation in the second level.
-
-
-2002/07/22
-
-   変数
-	READ_ONLY($admin_member_maps)
-	mysql 設定の例を追加
-
-   FML::Config
-	expand READ_ONLY($array) -> an array of READ_ONLY($array[$i])
-
-   IO::Adapter
-	accept READ_ONLY($map)
-	prohibit add/delete/replace call for read only maps.
-
-   FML::Credential
-	add is_recipient() for sender is an ML recipient or not.
-
-   off/on command prototype
-	   FML::Command::User::confirm
-	   FML::Command::Admin::on
-	   FML::Command::Admin::off
-	   FML::Command::User::on
-	   FML::Command::User::off
-		prototype on and off mode for recipient map
-
-2002/07/20
-
-   FML::Command::Admin::unsubscribe
-	member_map    use config primary_member_map    to member_maps
-	recipient_map use config primary_recipient_map to recipient_maps
-
-2002/07/19
-
-   FML::Process::Kernel
-	repyl_message() handles makefml and *.cgi as special cases.
-
-   FML::Process::CGI::Kernel
-	cgi_execute_command() checks the command is allowed in
-	commands_for_admin_cgi.
-	XXX "commands_for_admin_cgi" is hard-coded.
-	XXX we should enhance this for ml-admin::*.cgi et.al.
-
-   FML::Restriction::Command
-	enhance command syntax regexp
-
-   FML::Command::Auth
-	check user matching
-
-   FML::Restriction::Command
-	bug fix wrong command regexp
-
-   FML::Process::Command
-	remove not used variable
-	check whether this command is allowed in this $level
-
-2002/07/17
-
-   Mail::Message::MH
-	add debug
-	define new()
-	bug fix first:\d+
-	handle a,b,c pattern
-
-   FML::Command::SendFile
-	use Mail::Message::MH
-
-   FML::Command::UserControl
-   FML::Command::Admin::log
-   FML::Process::Kernel Utils
-   FML::Process::CGI::Kernel
-	define printing style format such as 'text', 'html', ...
-	you can control it by the following access methods,
-	get_print_style() and set_print_style(mode)
-
-   FML::Command::Admin::dir file
-	use FML::Restriction::
-
-   FML::MTAControl::Procmail
-	remove garbage definitions
-
-   FML::MTAControl::Postfix
-	search only hash:, dbm::types in postfix alias_maps
-
-   FML::Credential
-	optionally, we accept case insensitive comparison of user part
-	of the mail address.
-
-2002/07/15
-
-   FML::Process::Utils
-	define the following access methods:
-	config()
-	pcb()
-	incoming_message_header()
-	incoming_message_body()
-	incoming_message()
-	article_header()
-	article_body()
-	article_message()
-
-   FML::Command::DataCheck
-   FML::Filter::BodyCheck
-   FML::Process::Command Distribute Error Kernel Utils
-	modified to use access methods above.
-
-   FML::Command
-	use "$myname eq" not "$0 =~"
-
-   FML::Config
-	nuke debug::... if $0 =~ ::loader::
-
-2002/07/14
-
-   いくつかのコマンドの結果やエラーメールは管理者へも送るようにする
-	登録/削除についてのログ
-	メンバー以外からの投稿/コマンドメールなど
-
-   FML::Process::Utils
-	implement which_message_nl()
-
-   FML::Command
-   FML::Command::UserControl
-   FML::Command::User::confirm
-   FML::Process::Command Distribute Kernel
-	copy message and send it to $maintainer too
-	use reply_message*() with $msg_args to copy the message if needed where
-	$msg_args = { always_cc => $maintainer } or
-	$msg_args = { recipient => $maintinaer } pertinently.
-
-   FML::Command::UserControl
-	use message_nl( {add,del}_{ok,fail} ... ) as a reply
-
-   FML::Process::Kernel
-	disabled makefml NOT TO USE reply_message() now
-
-2002/07/13
-
-   コマンドシンタックスの見直し
-	CGI もこれに合わせて修正
-
-	admin adduser
-	admin useradd
-	admin addadmin
-	admin adminadd
-	admin deluser
-	admin userdel
-	admin deladmin
-	admin admindel
-
-   FML::MTAControl
-   FML::MTAControl::Procmail
-   FML::Command::Admin::newml rmml
-	newml 時に procmail の設定のテンプレートを作る。
-	rmml  時には消す。
-
-   FML::Process::Kernel
-	check defined($ml_name) in ml_* variable handlings
-
-2002/07/12
-
-   procmailrc のサンプルもつくってみやう
-	newml/rmml コマンドが procmailrc のテンプレートを生成/削除する
-	ようにする
-
-2002/07/11
-
-   FML::MTAControl::Qmail
-	remove ~fml::.qmail-* when the ML is removed.
-
-2002/07/10
-
-   CPAN modules
-	import Unicode::Japanese 0.09
-
-   CPAN documents
-	catch up (2002::07::10)
-
-2002/06/30-2002/07/30
-
-   ドキュメントクリーニング きゃんぺーん
-
-2002/06/30
-
-   FML::Command::HTMLify
-	more check of input
-
-   FML::Process::ThreadTrack
-	fix ISA for ->speculate_max_id()
-
-   FML::Process::ConfViewer Spool
-	fix the condition to show help
-
-   FML::Process::Error
-	$self -> $curproc
-
-2002/06/28
-
-   FML::CGI::Admin::Menu
-   FML::Process::CGI::Kernel
-	separate execution of the command and the menu pop up.
-	Firstly execute run_cgi_main() and show tables after that.
-
-	CGI の情報更新をきちんとするために、CGI の関数呼びだしの基本構
-	造を修正
-
-2002/06/27
-
-  バーチャルドメインサポートの修正、全面的オーバホール
-
-   FML::MTAControl
-   FML::Command::Admin::newml rmml
-   FML::MTAControl::Postfix Qmail
-	major overhaul
-	o reconstruct architecture
-	o bug fix virtual domain support
-	o sync w:::FML::Process overhaul to bug fix virtual domain support
-
-   FML::Process::Alias Command ConfViewer
-		                            Configure Distribute
-		                            DocViewer Error HTMLify
-		                            Kernel Spool Switch
-		                            ThreadTrack Utils
-   FML::Process::CGI::Kernel
-	major overhaul::delayed loading of *.cf files.  The loading is done
-	within prepare() method now to handle virtual domains properly.
-
-   FML::Command::HTMLify
-	not need to validate ml existence
-
-2002/06/25
-
-   clean up CGI ...
-
-   FML::CGI::Admin::List
-	scroll size is set by the length of maps
-
-   FML::Command::Admin::rmml
-	fix virtual domain handling. sync w:::newml logic
-	clean up (white spaces)
-	clean up. nuke _get_domain_info (not used)
-
-2002/06/24
-
-   CGI の見栄えを大改良中
-
-   FML::Process::Utils
-	get_ml_list()::check $ml_home_prefix, bug fix default domain handling
-	bug fix ml_home_prefix() args, more defined() checks
-
-   FML::Config
-   FML::Process::Kernel
-   FML::Process::CGI::Kernel
-	more defined() checks and sanity check if could
-
-   FML::CGI::Admin::ML Menu User
-   FML::Process::CGI::Kernel
-	clean up menu, bug fix run_cgi_menu() args
-
-2002/06/23
-
-   バーチャルドメインのサポート
-	bug fix
-	postfix および qmail は makefml newml を実行するだけで
-	バーチャルドメインの設定まで全自動
-	# 最初の一回はちょっとだけ MTA の設定が必要だけどね
-
-   FML::Command::Admin::newml
-	insert "$ml_domain $ml_domain" to the file "virtual" at the
-	first time since $ml_domain is one of $mydestination.
-	install a template for qmail::control::virtualdomains
-
-2002/06/22
-
-   bug fix domain/virtual domain handling (specially in CGI)
-
-   FML::Process::CGI::Kernel
-	use $curproc->ml_XXX() as could as possible in new()
-	clean up table configuration:
-	define tables for function and  attributes
-
-   FML::Log
-	eval Log(warn ...) || print stderr it
-
-   FML::Restriction::Base
-	define navi_command as the same as command
-
-   FML::Config
-	defined() check more
-
-   FML::Command::Admin::newml
-	fix args of ml_home_xxx()
-
-   FML::CGI::Admin::ML
-	change get_ml_list() args
-
-   FML::CGI::Admin::Menu
-	classify the command in the navigation and main
-
-   FML::Process::Utils
-	define ml_name() method
-	ml_domain() returns the current process's domain not default one.
-	ml_home_prefix() and get_ml_list() behave more properly to reflect the
-	current situation.
-	fix ml_domain handling of rewrite_config_if_needed().
-
-2002/06/21
-
-   CGI bug fixes
-
-   FML::Process::Utils
-   FML::Process::CGI::Kernel
-	move get_ml_list() and get_recipient_list()
-	from Process::CGI::Kernel to Process::Utils.
-
-   FML::CGI::Admin::Menu
-   FML::Command::Admin::newml
-	set up $ml_name dynamically
-
-   FML::Command::UserControl
-	ignore non-existed files, not croak()
-
-   IO::Adapter::File
-	close write handle and read handle after the write one.
-
-   FML::Command::UserControl
-	use IO::Adapter->get_next_key() not getline() for member list up
-
-2002/06/01
-
-   major variable naming overhaul
-
-	relocating variable definitions in etc/src/
-
-	align convention: for example,
-		use_XXX
-		XXX_rules
-		XXX_dir
-		XXX_cache_dir
-
-	rename:
-	$recipient_limit -> $smtp_recipient_limit
-	$incoming_mail_dir -> $incoming_mail_cache_dir
-	$outgoing_mail_dir -> $outgoing_mail_cache_dir
-	$qmail_control_virtualdomains_file -> $qmail_virtualdomains_file
-
-	s/header_filter/article_header_filter/
-	s/header_rewrite/article_header_rewrite/
-	s/body_filter/article_body_filter/
-
-	s/subject_tag/article_subject_tag/
-
-	verify_XXX_* -> check_XXX
-
-	newly defined:
-		$use_digest_header_rewrite
-
-	removed:
-		$smtp_log_dir
-		$smtp_log_file
-
-   overhaul
-	variable naming convention
-	defined check
-	FNF-ify
-	fix argument declarations
-
-   FML::Command::Auth
-	permit_admin_member_maps() return 0 if not match
-
-   FML::Process::Kernel
-	temp_file_path() ensures temp file name uniqueness by counting the
-	number of times this function is called.
-
-2002/05/31
-
-   FML::Header
-	add rewrite_date() for header rewrite Date::to X-Date:
-
-2002/05/29
-
-   FML::Command::Admin::chaddr
-	bug fix::error_set() -> croak()
-
-   FML::Process::Switch
-	try to save the critical error message at $ml_home_prefix/ if could
-
-2002/05/28
-
-   rename/reconstruct variables
-	clarify prefixes in caution.
-	define or rename sysconf_dir et.al. to $domain_XXX_config_dir
-	define $path_postmap
-
-   FML::Command::Admin::newml
-	mkdir @$init_config_dir_list
-	run "postmap virtual"
-	mainconf_dir -> domain_mail_config_dir
-
-   FML::Credential
-	$config->get_as_array_ref
-
-   FML::Command::Auth
-	implement permit_admin_member_maps()
-
-2002/05/27
-
-   new variable naming convention
-	add caution
-
-	define terms on "mail" and "message"
-	change::_message_ -> _mail_
-
-	define $postfix_virtual_map_file
-
-	add $admin_member_maps to $member_maps
-
-	change attribute names:
-	o permit_members_only -> permit_member_maps
-	o check_command -> check_admin_member_password
-
-   FML::Mailer
-   FML::Process::Distribute
-   Mail::Delivery::{SMTP,Utils}
-	pass smtp log file handle to Mail::Delivery
-
-   FML::Process::Distribute
-	permit_members_only -> permit_member_maps
-
-   FML::Command::Admin::newml
-   FML::MTAControl
-   FML::MTAControl::{Postfix,Qmail}
-	set up virtual map if needed
-
-   FML::Process::Kernel
-	only user "fml" should read lock files.
-	define terms on "mail" and "message"::_message_ -> _mail_
-	permit_members_only -> permit_member_maps
-
-   FML::Process::Command
-   FML::Command::Auth
-	rearrange admin command authentication to sync w/ new variable names
-
-   FML::Process::Utils
-	implement is_default_domain()
-
-2002/05/25
-
-   FML::Command::Admin::newml
-	fix $templ_files be ARRAY_REF
-
-   FML::MTAControl::Qmail
-	install .qmail-do:ma:-$ml for .qmail-do.ma.in-$ml
-
-   FML::Command::Admin::newml
-   FML::Process::Configure Utils
-	at the first stage of makefml, care $config and rewrite it, if needed,
-	when we handle virtual domain.
-	implement $curproc->rewrite_config_if_needed() for it.
-
-2002/05/24
-
-   variables
-	reconstruct $newml_command_*_template_files
-
-   FML::Config::Convert
-	implement convert_file(srcfile, dstfile, params)
-
-   FML::Log
-	print STDERR $msg if Log() fails
-
-   FML::MTAControl
-   FML::Command::Admin::newml
-	use FML::MTAControl ACAP
-
-2002/05/23
-
-   FML::Header::Subject
-	add mime decode for subject
-
-   Mail::Message::Decode Encode
-	FNF-ify, fix documents and @EXPORTS
-
-2002/05/22
-
-   FML::Mailer
-	save smtp log at var/mail/outgoing/
-
-2002/05/21
-
-   variables
-   	define $error_cache_dir
-	define $newml_command_postfix_template_files
-	define $newml_command_qmail_template_files
-	define $incoming_message_dir
-	define $outgoing_message_dir
-		var/mail/{incoming,outgoing,queue}/
-
-	define $use_outgoing_message_cache     =       yes
-	define $outgoing_message_cache_size    =       128
-
-   etc/aliases
-	enable auto error analyzer by default
-
-   FML::Process::Kernel
-	implement $curproc->open_outgoing_message_channel()
-	$mincoming_dir -> $incoming_message_dir
-
-   FML::Process::Distribute
-	use $curproc->open_outgoing_message_channel() not _smtplog to save
-	SMTP transaction logs.
-
-   FML::Command::Admin::newml
-	$newml_command_template_files ->
-	$newml_command_postfix_template_files
-
-   Mail::Bounce::Postfix19991231
-	validate input data
-
-   FML::Process::Error
-	implement a prototype to cache error data
-
-2002/05/19
-
-   add/enable a prototype of libexe::fml::error (mead)
-
-   variables
-	define $use_error_analyzer
-	define $subscribe_command_auth_type
-	define $listinfo_base_dir
-	$command_prompot          -> $command_prompt
-	$command_chaddr_type      -> $chaddr_command_auth_type
-	$command_unsubscribe_type -> $unsubscribe_command_auth_type
-
-   FML::Process::Error
-	work if $use_error_analyzer is 'yes'
-	add hooks
-	finish() checks if this error message is effective or not.
-	fix typo and missing definition
-
-   FML::Process::Command
-	fix building logic of $command_args and $options to make admin
-	command work again.
-	fix $admin_prefix trap
-	rearrange structure
-	FNF-ify
-	clarify the current context is under confirmation or not.
-	ignorance of commands are dependent on this context.
-	nuke mode=special which is not used.
-	send back statistics and original message
-
-   FML::Command::DataCheck
-	fix parse_command_arguments() arguments
-
-   Mail::Message::MH
-	fix wrong last:\d+ counting logic
-
-2002/05/18
-
-   FML::Process::Command
-	reconstruct command check logic (1)
-
-   Mail::Message
-	implement message_text_as_array_ref()
-
-   updated IM to im-141 + local patch (tats20020413.diff)
-
-   FML::Filter::BodyCheck
-	add reject_uuencode()
-
-2002/05/17
-
-   FML::Process::Kernel
-	check whether $use_incoming_message_cache is yes
-	use $mincoming_cache_size as cache modulus
-	save incoming message at $ml_home_dir/var/mincoming/
-
-   File::CacheDir
-	update document on new() arguments
-	bug fix eval{} should do eval { use()&&new() }
-
-   new variables: (etc/)
-	use_incoming_message_cache	=	yes
-	incoming_message_cache_size	=	128
-
-2002/05/16
-
-   FML::Process::CGI::Kernel
-	pick up address_selected not address
-
-   Mail::Message::ToHTML
-	not reset @AnyDBM_File::ISA.
-	It is better for us to use the default @ISA
-
-2002/05/13
-
-   FML::Process::Utils
-	implement
-	config_cf_filepath($ml, $domain)
-	is_config_cf_exist($ml, $domain)
-
-   FML::Command::HTMLify
-	validate if config.cf exists
-
-2002/05/11
-
-   FML::Filter::ContentCheck
-	add Log deteled mimetype at only_plaintext() and typo fix
-	fix wrong log message (but is it correct fix ?).
-	FNF-ify
-
-   FML::Language::Japanese::Utils
-	_look_not_iso2022jp_string::add trivial check
-
-   Mail::Message
-	fix::parser() should handle header only message.
-	no no no, not reset $data_ptr unless body
-	nuke \s*$
-
-2002/05/10
-
-   FML::Filter::ContentCheck
-	add function permit_mimetype() and reject_mimetype()
-	add function permit_rules() and reject_rules()
-
-2002/04/30
-
-   FML::Command::Admin::check
-	add prototype for diagnostics
-
-2002/04/28
-
-   FML::Process::Kernel
-	check $curproc->is_refused() more before action at each step
-
-   Mail::Message
-	fix comment.
-	add loop label.
-	FNF.
-	more checks by defined() and whether the content is not empty.
-	new() not need $InComingMessage here
-	remove module global variable $InComingMessage
-	check invalid multipart format
-
-2002/04/27
-
-   FML::Process::Kernel
-	kern.not_member -> error.not_member
-
-   FML::Process::Kernel
-	disable debug message
-
-   Mail::Message
-	check more data by defined()
-
-   FML::Process::Kernel
-	modified to not using FileHandle::pipe()
-	add methods to prepare and clean up temporary files
-	implement parse_exception()
-	implement message_nl() to separete message converter into natural
-	language and message handling parts
-
-   FML::Process::CGI::Kernel Param
-	convert exception syntax into the new style. See FNF
-	convert message to natual language if could
-
-2002/04/26
-
-   FML::Process::Flow
-	run clean_up_tmpfiles() finally
-
-   FML::Process::Kernel
-	fix typo
-	define "permit_commands_for_stranger" (only define not implemented :)
-
-   FML::Process::Command
-   FML::Command::DataCheck
-	permit_commands_for_stranger works
-
-   variables
-	add rule permit_commands_for_stranger for $command_restrictions
-
-2002/04/25
-
-   variables
-	rename variable::available_commands_for_xxx -> commands_for_xxx
-
-   FML::Command::Admin::htmlify
-	check $use_html_archive value before action
-
-   FML::MTAControl
-	implement get_aliases_as_hash_ref()
-	new() accepts { mta_type => ... } argument
-
-   FML::Process::Switch
-   FML::Process::Alias
-	new utility::fmlalias e.g. shows not only fml but all alias entries
-
-   Mail::Message
-	check defined($InComingMessage) before $body_size estimation
-
-2002/04/24
-
-   FML::Header::Subject
-	replace subject to Subject
-
-   define $path_postconf
-
-   File::Utils
-	define append()
-
-   FML::Command::Admin::{newml, rmml}
-	use File::Utils and FML::MTAControl to share codes.
-
-   FML::Command::Admin::newml
-	check $ml_name duplication over all $alias_maps (postfix case)
-
-   FML::Filter::ContentCheck
-	bugfix object argument
-
-2002/04/23
-
-   FML::Process::Distribute Kernel
-	fix errro message and enable the rejected message forwarding
-
-   FML::Command::Admin::newml
-	check alias duplication
-	enable cgi
-
-   FML::Restriction::Base
-	define $ml_name_specified
-
-   FML::CGI::Admin::Menu
-   FML::Process::CGI::Kernel
-   FML::CGI::Admin::ML
-	define cgi_try_get_ml_name()
-	enabled newml and rmml on CGI.
-
-2002/04/22
-
-   FML::Process::CGI::Kernel
-	sort ml list
-
-   FML::Command::HTMLify
-	bug fix subdirs sorting algorithm
-
-   Mail::Message::Spool
-	check value of $args->{ use_subdir }
-
-   FML::Article
-	error if the article already exists
-
-2002/04/21
-
-   FML::Command::Admin::newml
-	install .htaccess only for the first time
-
-   Mail::Message::ToHTML
-	you can specify $ENV{MAX}
-
-   Mail::Message::ToHTML
-	for () { fork() && call htmlify_file() }
-
-   Mail::Message::ToHTML
-	htmlify_dir() accepts options::$has_fork and $max (for debug)
-
-   Mail::Message::ToHTML
-	sort years in monthly.index
-	bug fix the scan range for each subdir
-
-   FML::Command::HTMLify
-	sort -n subdirs list
-
-2002/04/20
-
-   FML::Filter::BodyCheck
-	comment out "local($*) = 0;"
-
-   FML::Filter::TrafficMonitor
-	disable almost all codes imported from fml 4.0 once anyway
-
-   configure
-	add --with-warning
-
-   FML::Command::HTMLify
-   FML::Process::HTMLify
-	bug fix subdir checking
-
-	use FML::Command::HTMLify to share htmlify code between
-	fmlhtmlify and "makefml htmlify".
-
-   FML::Command::Admin::htmlify
-	remove $options
-
-   FML::Process::Configure
-	log raw error message
-
-2002/04/19
-
-   FML::Process::Spool
-	check argument and show help if invalid
-
-   FML::Process::Switch
-	stop $ml_home_dir search when we can get it.
-
-   Mail::Message::ToHTML
-	bug fix::check the source file existence more severely
-
-2002/04/18
-
-   Mail::Message::ToHTML
-	check $args->{ file } more severely in _update_relation()
-
-   FML::Process::Distribute
-	eval htmlify_file() to avoid unknown error ;)
-
-   FML::Process::Distribute
-	eval filtering
-
-2002/04/16
-
-   FML::Process::Switch
-	fmlspool --srcdir not --dstdir
-
-   FML::Process::Spool
-	fix conversion algorithm
-
-2002/04/15
-
-   FML::Process::Switch
-	fmlspool --srcdir not --dstdir
-
-   FML::Process::Spool
-	fix conversion algorithm
-
-   add a new utility "fmlspool"
-	add a new utility::fmlspool to handle spool directory
-
-   FML::Process::Utils
-	implement ml_home_dir()
-
-   FML::Process::Switch
-	enable fmlspool
-
-   FML::Article
-	implement subdirpath().
-	check $curproc->{'incoming_message'}->{ message } in new() data input.
-
-   FML::Process::Kernel
-	implement set_umask_as_public(), reset_umask() for umask control.
-
-   FML::Process::Distribute
-	umask and permission control for html archives
-
-   Mail::Message::ToHTML
-	BEGIN { @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File); }
-
-   FML::Process::HTMLify
-	consider spool:::may has subdir(s)
-
-2002/04/14
-
-   Mail::Message::ToHTML
-	fix $subdir handling on month boundary
-	validate $curid ($self->{ _current_id})
-	validate or warn input into Jcode
-	set $code for Jcode if needed
-
-   CPAN	modules
-	updated Jcode to 0.79
-
-2002/04/13
-
-   FML::Command::User::unsubscribe
-	use FML::Confirm not via eval{ use ..}
-
-   FML::Process::Command
-	select the error message by the $xxx_restrictions error reason
-
-   Mail::Message
-	implement whole_message_as_string_ref()
-
-   FML::Process::Command
-	reply_message( OBJ(Mail::Message) ) when the message is rejected by
-	$command_restrictions.
-
-   FML::Process::Kernel
-	o reply_message() can handle OBJ(Mail::Message).
-	o save error reason at pcb area when the message is rejected by
-	xxx_restrictions.
-
-2002/04/12
-
-   FML::Process::Distribute
-	send back mesg "we deny requests from system accounts"
-
-   FML::Process::Command
-	check by permit_command() before command execution ;)
-	send back mesg "we deny requests from system accounts"
-
-   FML::CGI::Calender
-	switched to the current style
-
-2002/04/11
-
-   FML::Config
-	has_attribute() should look up %_fml_config_result
-
-   FML::Process::Command
-	accept commands, e.g. subscribe, allowed for not members
-
-2002/04/10
-
-   2002/03 分クリーンアップおわり
-
-   FML::Filter クラスによるフィンルタリングを有効にする
-	FML::Filter:: のバグ修正
-
-   FML::Process::Distribute Kernel
-	enable filtering.
-	implement access methods to control filtering.
-	o $curproc->refuse_further_processing()
-	o $curproc->is_refused()
-
-2002/04/07
-
-   variables
-	define $primary_admin_member_password_map
-	rename $admin_member_passwd_maps -> $admin_member_password_maps
-
-   FML::Command::Admin::chaddr
-	chaddr over all maps
-
-   FML::Command::Admin::get
-	clean up variable names to be easy for your eyes
-
-   FML::Command::Admin::htmlify
-	doc::remove makefml description
-	add --dstdir=DIR
-	FNF-ify
-
-   FML::Command::Admin::list
-	show all maps in $xxx_maps
-
-   FML::Command::Admin::log
-	fix::add comments
-	use HTML::FromText class to espace metchars
-
-   FML::Process::Calender
-	clean up documents, comments
-	use $curproc not $self if appropriate
-
-   FML::Process::DocViewer
-	remove AUTOLOAD()
-	clean up
-
-2002/04/06
-
-   remove "recipients" file from default $recipient_maps
-
-   Mail::Message::Spool
-	define dirpath()
-
-   FML::Article
-	mkdir subdir if needed
-
-2002/04/05
-
-   spool (記事のスプール)の階層化構造をオプションにする
-	変数 $use_spool_subdir を創設する
-
-2002/04/03
-
-   clean up, audit campaign
-	春だからお掃除しましょう(意味不明)
-
-2002/04/01
-
-  実際に構築しつつテストしてみる。
-	configure はもっといろいろチェックするべし
-	不便なものを実装する。e.g. makefml list
-
-   more check and expansion by configure
-	we should use values speculated by configure if could.
-	default_ml_home_prefix = @mlspooldir@
-
-   FML::Command::Admin::newml
-	not install CVS
-
-	expand default_domain by config.status
-
-   FML::Command::UserControl
-   FML::Command::Admin::list
-	enable "admin list" command
-	admin list $ml {members,actives,recipients}
-
-   FML::Process::Switch
-	warn() if $ml_name not specified
-
-2002/03/31
-
-   "makefml newml" set up ~fml/fml/listinfo/$domain/$ml/
-	MLの作成時に WWW ページを用意する( listinfo を作る)。
-	FML::Command::Admin::newml
-
-	variables
-	+ remove $message_message_dir
-	+ change $message_template_dir
-	+ change $html_archive_dir
-	+ add $listinfo_dir
-
-   階層化構造を取れるようにする
-	HTML 化記事を置くディレクトリ
-	スプールディレクトリ
-
-   FML::Process::Kernel
-	$message_message_dir -> $message_template_dir
-   FML::Command::Admin::htmlify
-   FML::Process::{Distribute,HTMLify}
-   Mail::Message::ToHTML
-   Mail::HTML::Lite
-	rename class::Mail::HTML::Lite -> Mail::Message::ToHTML
-	change .ht* database names
-
-   FML::Article
-   Mail::Message::Spool
-   Mail::ThreadTrack
-   Mail::ThreadTrack::DB Print.pm
-   Mail::ThreadTrack::Print::HTML Text.pm
-	use Mail::Message::Spool::filepath() for the article file path.
-	use $self->filepath() which is  based on Mail::Message::Spool
-	Mail::Message::Spool::spool arg changes::$spool_dir -> $base_dir
-
-   Mail::HTML::Lite
-	rename message_file*() -> html_file*()
-	html file path is YYYYMM/msg$id.html by default
-
-2002/03/30
-
-   FML::Article
-   FML::Command::SendFile
-   FML::Process::Distribute
-	FML::Article::filepath() determines the article file path.
-
-   admin {delete,unlink} -> admin file $subcommand
-	コマンド名が衝突する可能性があるため
-	admin コマンドのシンタックスの拡張をはじめる。
-
-2002/03/25
-
-   enable admin {delete,unlink}
-
-   FML::Restriction::Base
-	define file
-
-   FML::Command::DirUtils
-	fix to use FML::Restriction::Base not CGI
-
-2002/03/24
-
-   FML::Restriction::Base
-	define directory regexp as [-a-zA-Z0-9]+
-	permit . in "user" part in e.g. "address"
-
-   variables
-	define $path_ls for admin {dir,ls}
-
-   enhance dommands
-	enable admin {ls,dir,delete,unlink}
-
-2002/03/23
-
-   FML::Command::Auth
-	admin コマンドのパスワード認証を有効にする
-
-   FML::Command
-	implement rewrite_prompt(). It is used to hide password et. al.
-
-   FML::Process::Command
-	clean up
-	use rewrite_prompt() by FML::Command to hide admin password.
-
-   variables
-	define $admin_member_passwd_maps.
-	admin password
-	admin pass
-
-   new modules from CPAN
-	import Crypt-UnixCrypt-1.0, perl-only implementation of the
-	crypt(3).
-
-2002/03/21
-
-   コマンドの認証について改良
-
-   FML::Credential
-	reconstruct is*member() functions
-	implement primitive is_privileged_member()
-
-   FML::Process::Command
-	clean up :::clarify the logic:
-	o valid command syntax
-	o command mode for a user, admin and stranger
-	o add prototype of admin command auth
-
-   variable:
-	define $admin_command_restrictions
-
-   FML::Command::Auth
-	add prototype of admin command auth
-
-2002/03/20
-
-   CGI の再構成: clean up's
-
-   loader
-	prepare a hook to inform some hints via $main_cf
-
-   FML::Process::Utils
-	implement hints()
-
-   FML::Command::Admin::newml
-	setup admin::{thread,config,menu}.cgi based on libexec::loader
-	and hints
-
-   FML::Config::Convert
-	replace __hints_for_fml_process__
-
-   FML::Process::Switch
-	enable config.cgi , remove makefml.cgi
-
-   FML::CGI::ThreadTrack
-	vertical align of menus
-
-   FML::Process::CGI::Kernel
-	change layout in table a little.
-	define run_cgi_title() and run_cgi_help()
-	add options bar to switch the language (dummy yet :-)
-
-   FML::CGI::Admin::Menu
-	remove run_cgi_help() once
-
-2002/03/19
-
-   CGI の再構成: FML::CGI と FML::Command 間のトランポリン機構
-	コマンド依存の機能を FML::Command クラスへ委任する
-
-   FML::Process::CGI::Param
-	accpet empty value even if it not matches filter:)
-
-   FML::Command::Admin::subscribe unsubscribe.pm
-	implement cgi_menu() to show command specific menu in CGI screen
-
-   FML::CGI::Admin::Menu
-   FML::Process::CGI::Kernel
-	o prepend cgi_ or run_cgi to function name.
-	o implement trampoline mechanism using FML::Command::class.
-	o change::pop_menu -> scrolling_list
-
-   FML::Command::UserControl
-	define FML::Command::UserControl class to share user control codes.
-	modified Admin::{subscribe,unsubscribe} commands to use it.
-
-   new commands
-	これらの admin コマンドが新たに使えるようになりました。
-	admin addadmin
-	admin addpriv
-	admin byeadmin
-	admin byepriv
-	admin log
-
-   new variables
-	$primary_admin_member_map
-	$admin_member_maps
-
-2002/03/18
-
-   CGI の再構成をはじめる
-
-	FML::CGI::*
-	FML::Process::CGI::*
-	reconstruct CGI around structure phase 1:
-	o table not frame based menu support (similar style to www.netbsd.org)
-	o prepare method for each location in the screen.
-	   for example,
-	   + run_cgi_main() to show main menu at the center in the screen.
-	   + run_cgi_navigator() to show navigation bar at the left.
-	o longjmp() by eval::croak when we encounter insecure conditions.
-
-   FML::CGI::Admin::Menu
-   FML::Process::CGI::Kernel
-	cosmetics
-	FNF
-	define cgi_execute_command() and try_get_address() into
-	FML::Process::CGI::Kernel and remove them from FML::CGI::Admin::Menu
-
-   FML::Process::Utils
-	define ml_domain() but same as default_domain() yet
-
-   new variables (for CGI)
-	$cgi_main_menu_color
-	$cgi_navigation_bar_color
-
-2002/03/17
-
-   chaddr コマンドが動くようになった!
-		chaddr
-		admin chaddr
-		makefml chaddr
-	この3つ全部です。
-
-   FML::Command::User::chaddr
-	works again!
-	if either old or new addresses in chaddr arguments is an ML member,
-	try to confirm this request irrespective of "From:" address.
-
-   FML::Command::Admin::subscribe unsubscribe.pm
-   FML::Command::User::chaddr confirm.pm
-	change $command_args argument:
-	$command_args->{ adddress } =>  $command_args->{ command_data }
-
-   FML::Process::Kernel
-	reply_message::append \n to message if \n$ is missing
-
-	reconstruct message queue subsystem internal.
-	we can handle output styles for message queue input properly.
-
-	メッセージキューイングシステム再構築
-	受信者ベースでのまとめあげ処理などを正しく処理する
-	XXX これで chaddr コマンドが書けます。
-
-2002/03/16
-
-   FML::Process::Kernel
-	new message queue handling. sync with reply-message branch
-
-	clean up logic to handle messages queue.
-	for $recipient ( queue ) {
-		apply the following rules for messages returned to
-		specified $recipient.
-
-		1. pick up text messages and put them into the first part.
-		2. append non text messages
-	}
-
-2002/03/06
-
-   variables
-	define directory for cgi and HTML article archive
-	define $newml_command_template_files
-	define $available_commands_for_admin_cgi
-
-   FML::Config
-	implement get_as_array_ref()
-
-   FML::Process::Switch
-	makefml --force $command $ml ...
-
-2002/02/24
-
-   update /etc: define the following variables
-	$fml_owner $fml_group $syscon_dir $mailconf_dir
-	$mail_aliases_file
-
-   FML::Process::Utils
-	define fml_owner(), fml_group() and mail_aliases().
-
-   FML::Config::Convert
-	replace $fml_owner and $ml_home_dir.
-
-   FML::Config
-	set(key, value) and update() informs FML::Config to expand variables.
-
-   FML::Command::Admin::newml
-	install aliases when makefml newml runs.
-
-2002/02/23
-
-   FML::Command::SendFile
-   FML::Command::Admin::get
-	fix filename in mime header
-
-   FML::Process::Command and etc/
-	validate if the requested admin command is permited or not.
-	define $available_commands_for_privileged_user
-	rename $available_commands -> $available_commands_for_user
-
-2002/02/20
-
-   File::Sequence
-	add function _search_max_id_from_top()
-
-   clean up commands
-	多くのコマンドを動くようにした(微修正だが:-)。
-
-	update $available_commands_for_stranger and $available_commands
-	fix path::$message_template_dir -> $ml_home_dir
-	o $guide_file
-	o $help_file
-	o $objective_file
-	o $summary_file
-
-   FML::Process::Kernel
-	add Reply-To::into our reply message
-
-2002/02/19
-
-   FML::Command
-	remove require_lock() due to obsolete
-
-2002/02/18
-
-   clean up FML::Command::{User,Admin}::*
-	remove FML::Command::Utils and ErroStatus
-	we should not inherit anything as could as possible.
-
-   enhance xxx_restrictions:
-	enable "permit_anyone" can be used in {post,command}_restrictions.
-
-2002/02/17
-
-   FML::Config
-	implement hook extension. For example,
-	$config->is_hook_defined( 'START_HOOK' );
-	$config->get_hook( 'START_HOOK' );
-
-   FML::Process::Command ConfViewer Configure Distribute
-		 DocViewer HTMLify ThreadTrack
-	implement several hooks
-
-   import HTML-Template-2.5 from CPAN
-
-   change variables
-	$confirm_keyword -> $confirm_command_prefix
-	add $admin_command_prefix
-
-   FML::Command::Admin::htmlify
-	makefml htmlify elena --srcdir=.. --outdir=...
-
-   Mail::Delivery::ESMTP
-	fix argument
-
-   admin コマンドを動くようにする
-	まだ認証してないけど :)
-
-   FML::Command::User::confirm
-	remove ErrorStatus, FML::Command::Utils;
-	define new()
-	call User::Command::XXX without lock since already locked now.
-
-   FML::Config
-	fix return value by FETCH() to be without \s*$
-
-   FML::Command
-	change use() and new().
-	not use ErrorStatus.
-	check $command_args->{ override_need_no_lock } to control lock.
-
-   FML::Process::Distribute
-	bug fix definitions on hooks
-
-   FML::Process::Kernel
-	fix file name in searching message template
-
-2002/02/13
-
-   define access method need_lock().
-        each command module determins whether it needs lock or not.
-
-	FML::Command と FML::Command::* 以下の変更いろいろ
-	各コマンドは各自 need_lock() というアクセスメソッドで
-	ロックが必要かどうかを FML::Command に教えるべし
-	XXX 拡張を考慮の上、こうしてみた
-
-   FML::Command::SendFile
-	remove import of ErrorStatus
-
-   rename module::TinyScheduler -> Calender::Lite
-	FML::Process::Switch
-	FML::CGI::Scheduler -> FML::CGI::Calender
-	FML::Process::Scheduler -> FML::Process::Calender
-
-2002/02/11
-
-   create FML::Restriction::Command class
-
-   FML::Command::SendFile
-   FML::Command::User::{guide,help,deny,objective}
-	send back file file in $ml_home_dir if found.
-	return the default message if not found.
-	"guide", "help", "objective" commands use this logic.
-
-	ユーザ用のコマンドの送り返し方を変更
-		1. (4.0 風にいえば) $DIR の help ファイルを送り返す
-		2. help ファイルがないなら、デフォルトのメッセージを使う
-
-		1. は 4.0 との互換性のためで、
-		fml-devel では 2. がデフォルト( help ファイルは作らない )
-
-2002/02/04
-
-   FML::Process::ThreadTrack
-	determine the max sequence id by considering last mofieid time
-	among the sequence file and thread databases.
-
-   Mail::ThreadTrack::DB
-	implement db_last_modified()
-	It return the last modified time of "date" DB in dateabase as
-	unix time.
-
-2002/02/03
-
-   main.cf.in
-	$ml_home_prefix -> $default_ml_home_prefix
-
-   FML::Command::Admin::newml
-   FML::Process::Utils
-	ml_home_prefix() can recognize virtual domain.
-	modified to use it.
-
-	we should not use $curproc->{ main_cf } directrly in modules out of FML::Process::
-	we implement the following methods in FML::Process::Utils and use them.
-	o $curproc->executable_prefix()
-	o $curproc->template_files_dir_for_newml()
-
-2002/02/02
-
-   FML::Process::Utils
-	define access methods::default_domain(), ml_home_prefix()
-	(prototype)
-
-   FML::Process::Switch
-   FML::Process::CGI::Kernel
-	use FML::Process::Utils::__ml_home_prefix_from_main_cf() to
-	get $ml_home_prefix.
-
-   TinyScheduler
-   Mail::ThreadTrack::DB
-	use File::Spec
-
-2002/02/01
-
-   remove $ENV{debug} based toggle flag
-
-2002/01/27
-
-   FML::Command::Admin::newml
-	"makefml newml" virtual domain support. For exmaple,
-
-		% makefml newml elena@nuinui.net
-
-	The ml_home_dir is speculated from $virtual_maps in main.cf.
-
-
-   IO::Adapter clean up campaign ?:)
-
-   Mail::Delivery::SMTP
-   IO::Adapter
-   IO::Adapter::{Array,DBI,File,MySQL}
-	clarify IO::Adapter definition and clean up get_XXX() functions.
-	remove get_member(), get_active() and get_recipient()
-	define get_next_key() and get_next_value() and clarify thier definitions.
-	add IMPLEMENTATION.jp
-
-   FML::Credential
-   IO::Adapter
-   IO::Adapter::DBI
-	clarify IO::Adapter::find() usage.
-	find() returns "key value" by default and "key" if requested.
-	add want option e.g. find(key, { want => $what } ).
-
-   File::Sequence
-	search_max_id() searches all keys if full_search option specified
-
-   FML::Command::SendFile
-	clarify function acl, arguments more
-
-   FML::Command::User::get
-	clarify function arguments more
-
-2002/01/20
-
-   /etc/fml/main.cf
-	define $virtual_maps
-
-   FML::Process::Utils
-	implement get_virtual_maps()
-
-   FML::Process::Kernel
-	fix module loading of Mail::Delivery::Queue
-
-   FML::Command
-   FML::Command::SendFile
-	fixed to call up error to FML::Process::Command layer
-
-   FML::Process::Command
-	more comments, log.
-	fix message handling to use object to get command string returned by
-	find_first_plaintext_message().
-
-2002/01/16
-
-   change Mail::Message naming convention.
-	   FML::Article Parse
-	   FML::Filter::BodyCheck HeaderCheck TrafficMonitor
-	   FML::Process::Command Distribute Kernel
-	   Mail::Bounce Message
-	   Mail::Bounce::DSN Exim GOO Postfix19991231 SimpleMatch
-	   Mail::Delivery::SMTP
-	   Mail::HTML::Lite
-	   Mail::ThreadTrack::Analyze HeaderRewrite
-
-	public -> private:
-	o head_message
-	o last_message
-	o next_message
-	o prev_message
-
-	prefix change:
-	o rfc822_message_ -> whole_message_
-	o get_first_plaintext_message() -> find_first_plaintext_message()
-	o get_encoding_mechanism() -> encoding_mechanism()
-	o get_data_type() -> data_type()
-	o get_data_type_list() -> data_type_list()
-
-	renamed:
-	o get_offset() - >offset_pair()
-	o header_in_body_part() -> message_fields()
-	o data_in_body_part()   -> message_text()
-	where we use RFC822 flabour naming convention.
-	rfc822 says "message = fields + text" and rfc2047 says "message" as
-	defined in RFC 822, with all header fields optional.
-
-2002/01/14
-
-   Mail::HTML::Lite
-	define default value.
-	delayed loading by eval q{ use .. }.
-	validate defined( $db->{ _thread_list }->{ $id } ).
-
-	_head_thread()::fix head_thread search algorithm.
-
-	rename __search_default_next_thread_id() to
-	__search_default_next_id_in_thread().
-
-	__sort_yyyymm()::validate value is not null.
-
-2002/01/13, 01/12, ...
-
-   final clean up campaign in 2001
-   	クリーニングキャンペーン 2001 final はいまだに続いているぞ;-)
-
-   Mail::Message
-   FML::parse
-	rfc822_message_FUNCTION()
-
-	メッセージ全体( Mail::Message の chain 全体)に対する
-	メソッドには rfc822_message_ を頭につけるように名前をあわせる
-
-   File::SimpleLock
-   Mail::Delivery::Queue
-
-        use Fcntl qw(:DEFAULT :flock), remove LOCK_XX() definitions.
-
-2001/12/25
-
-   Mail::HTML::Lite
-	bug fix::_print_li_filename() check is too restricted
-
-2001/12/22,23,24,25
-
-   final clean up campaign in 2001
-   	クリーニングキャンペーン 2001 ファイナル:)
-	FNF-ify
-	コメントおよびドキュメントの更新
-	空白の削除 \s*$
-	使っていないので削除したモジュール
-		FML::Messages
-		FML::MIME
-		FML::Language::Japanese::Subject
-
-	FML::MIME は Mail::Message::Decode および
-	Mail::Message::Encode の2つにわかれたよ
-
-   renamed
-	FML::Checksum -> Mail::Message::Checksum
-
-2001/12/22
-
-   FML::Process::Kernel
-	remove FML::Messages
-
-   TinyScheduler
-	define get_mode() for symmetric definition.
-
-2001/12/18
-
-  記事の HTML 化を可能にする(デフォルトで ON)
-
-	use_html_archive = yes (デフォルト)
-
-	~fml/public_html/mlarchive/ML名/
-
-   FML::Process::Kernel
-	define $fml_owner_home_dir by process $uid
-
-   FML::Process::Distribute
-	htlmify article
-
-2001/12/16
-
-   FML::Messages
-   IO::Adapter::LDAP
-   Mail::Message::Date
-   Mail::Message::Language::Japanese::Subject
-	nuke "require Exporter, which is not needed
-
-   INSTALL.sh
-	warn you should update loader if needed
-
-   loader.in
-	use $fmlconfdir not $sysconfdir
-	use IO::File not FileHandle
-
-2001/12/11
-
-   FML::Command::Admin::newml
-	ensure installed file mode to be 0644
-
-   TinyScheduler
-	speculate $user by $$ unless defined $user
-
-   ./configure の拡張
-		メッセージをいろいろつけたす
-		--with-fml-group=$GROUP
-		--with-fmlconfdir=$prefix/etc/fml
-
-2001/12/09
-
-  インストーラのバグをとる
-	makefml の引数チェックのバグを修正
-	fml/etc/ 以下の構成を変更する
-	makefml newml は config.cf 生成時にML名の変更をする
-
-2001/12/08
-
-   TinyScheduler
-	more proper error messages
-
-   FML::Process::Configure
-	fix error handling, define finish() to avoid loading error
-
-   FML::Process::DocViewer
-	add path for perl executatbles e.g. ::usr::local::bin
-
-2001/11/27
-
-   FML::Log
-   Tie::JournaledDir
-	FML::Date -> Mail::Message::Date
-
-   Mail::Message::Date
-	remove MTI.. message
-
-   update comments
-	clean up
-	FNF-ify
-
-   Mail::ThreadTrack::Analyze
-	run prepare_history_info($msg) if $self->{ _is_rewrite_header }
-
-   configure
-	@sysconfdir@ -> @sysconfdir@/fml
-	modify message
-
-   FML::Process::Switch
-	modified not to use Standalone
-	loader has Standalone by itself now.
-
-   config.sh.in
-   etc/main.cf.in
-	@sysconfdir@ -> @sysconfdir@::fml
-
-   FML::Process::Switch
-   libexec/loader.in
-	modified not to use Standalone
-	loader has Standalone by itself now.
-
-2001/11/26
-
-   FML::Process::Kernel
-	bug fix missing mkdir() argument
-
-   FML::Process::Distribute
-   Mail::ThreadTrack
-   Mail::ThreadTrack::Analyze
-	toggle header rewriting (subject) to add thread id. off by default
-
-   config.cf
-	define $use_thread_subject_tag to toggle header rewrite
-
-2001/11/25
-
-   more tainted safe
-	(but needs more consideration, may be use of FML::Restriction class)
-	TinyScheduler
-	FML::Process::ConfViewer, FML::Process::Scheduler
-
-   FML::Filter::BodyCheck
-	validate get_first_plaintext_message() return value
-
-   libexec/loader.in
-	we should not use @INC derived from $0
-	reset PATH in the early stage
-
-   FML::Process::*
-	implement help() method
-	enable --help for all command line programs
-	verify_request() checks @ARGV and show help() if needed
-
-   FML::Process::Switch
-	enable distribute and command
-	check whether getopt() options are given or not.
-	enable --help for all command line programs
-	xxx.cgi SHOULD NOT ACCPET the same options as command line program xxx
-	does.
-
-   FML::Process::Kernel
-	trap --help in new() to show and exit asap
-
-   FML::Process::ConfViewer
-	fmlconf and makefml are separete now
-
-   FML::Process::CGI::Kernel
-	change defualt target to _top
-
-   FML::Process::CGI::Param
-   FML::Restriction
-	reconstructured safe parameter definitions
-
-2001/11/21
-
-   FML::Process::Switch
-	fmlsch -h to show help
-
-   FML::Process::Scheduler
-   TinyScheduler
-	clean up fmlsch
-	FNF-ify
-	handle options by getopt() in Process::Scheduler not TinySchedule
-	make "fmlsch help" work
-	fix entry duplication bug in parser
-	print_specific_month() can handle (month, year) pair
-	define set_mode()
-	use env var BROWSER ("w3m" by default)
-
-2001/11/20
-
-   File::Sequence
-	implement search_max_id() in hash key
-	more debug
-
-   Mail::ThreadTrack::DB
-	db_hash( $type ) to return hash reference for $type
-
-   Mail::ThreadTrack::HeaderRewrite
-	validate variables
-
-   FML::Process::ThreadTrack
-	update database for latest not-yet-analyzed articles.
-
-2001/11/19
-
-   Mail::ThreadTrack
-	implement set_fd(), get_fd()
-	implemente set_order()
-
-   FML::Process::ThreadTrack
-   Mail::ThreadTrack::Print
-	split functions for list and summary.
-	"list" shows thread summary but "summary" shows thread summary +
-	article summary.
-
-	enhance fmlthread to provide CUI, oh this is useful !
-
-   Mail::ThreadTrack::Print
-	enable --reverse for summary, list command
-	check reverse_order value ;-)
-
-   Mail::ThreadTrack::Print::Message
-	check value of header fields, which is undefined in some cases
-
-   Mail::ThreadTrack::Print::Text
-	implement show_articles_in_thread()
-
-   FML::CGI::ThreadTrack
-	summary listing on CGI is normal order by default
-
-2001/11/18
-
-   FML::Article
-	implement speculate_max_id()
-
-   FML::Process::ThreadTrack
-	change max_id speculation strategy:
-	1. check the max_id is given or not, use it if given
-	2. try max_id() of FML::Article;
-	3. speculate_max_id($spool_dir) in FML::Article
-
-   fml/etc/paths.cf
-	./configure が paths.cf を作る。
-
-2001/11/17
-
-   FML::Process::HTMLify
-   Mail::HTML::Lite
-	disable debug code, enable it when $ENV{debug} is defined
-
-   FML::CGI::Configure ThreadTrack.pm
-   FML::Process::Switch
-   Mail::ThreadTrack
-   Mail::ThreadTrack::Print::HTML
-	change default target to _top
-	use $msg_base_url to show link to article
-
-2001/11/16
-
-   Mail::ThreadTrack
-	new()::save $args as _saved_args in $self
-
-   Mail::ThreadTrack::DB
-	fix _status but in unpolite way. XXX fix it !
-
-2001/11/13
-
-   CGI 新スタイルへ変更他、
-
-	Problem 追跡システム、スケジューラ、makefml CGI 版 (プロトタイプ)
-	すべて動くようにした
-
-   FML::Process::CGI::Kernel
-	some cgi may need no ml_name
-
-   FML::Process::CGI::Param
-	fix address regexp, define $command, modify error return way
-
-   FML::Process::CGI::Kernel
-	move get_ml_list() to FML::Process::CGI::Kernel
-	from FML::CGI::ThreadTrack
-
-2001/11/12
-
-   use autoconf
-	いろいろ改造する。そういうわけで
-
-		# useradd fml
-		# ./configure; make install
-
-	というインストール方式になりました。
-
-   loader
-	loader generated from loader.in (autoconf)
-
-   Standalone
-	expand ${variable}
-
-   FML::CGI::ThreadTrack
-	fix typo, $myname resolved by $curproc->myname()
-
-   FML::Process::Switch
-	fix to introduce $config_dir (etc::fml) from main.cf
-	default_config -> default_config_cf
-
-   FML::CGI::ThreadTrack
-   FML::Process::CGI::Kernel Param.pm
-	move "function to get paramlist" to FML::Process::CGI::Param module
-	implement safe_pramlist\d+_\S+() via AUTOLOAD()
-
-2001/11/11
-
-   Mail::ThreadTrack::Print::Sort
-	change cost evaluation logic (numeric now)
-
-   Mail::ThreadTrack::Print
-   Mail::ThreadTrack::Print::HTML Message.pm
-	clean up summary() mode for both text and html modes.
-	print() method knows what should it do for text::html mode.
-
-   Mail::ThreadTrack::HeaderRewrite
-	defined $rh->{ _articles  }->{ $thread_id }
-
-   Mail::ThreadTrack::Print
-   Mail::ThreadTrack::Print::HTML Text.pm
-	dynamic binding accoding to mode::text or html
-
-   Mail::ThreadTrack
-	change article_summary_lines to 5 by default
-
-   FML::Process::CGI::Param
-	define article_id, method -> action
-
-   FML::Process::CGI::Kernel
-	header( -charset => $charset)
-
-   FML::CGI::ThreadTrack
-	modified to fit FML::Process::CGI structure.
-	enable 'close' operation
-	reset button
-
-   FML::Process::CGI::Kernel
-	workaround::header( -target  => "ResultsWindow" ) anyway
-
-   FML::Process::CGI::Param
-	allow action =~ ::^[-a-z_]+$::
-
-   FML::CGI::ThreadTrack
-   Mail::ThreadTrack
-   Mail::ThreadTrack::Print
-   Mail::ThreadTrack::Print::HTML
-	enable "show" and "change_status" to work
-
-   FML::CGI::ThreadTrack
-   FML::Process::{Distribute,Switch,ThreadTrack}
-   Mail::ThreadTrack
-   Mail::ThreadTrack::Print::HTML
-	ThreadTrack switches acconding to myname ($0).
-	threadview is view only and cannot change status.
-
-2001/11/10
-
-   loader
-   FML::Process::Switch
-	bug fix::format $reason
-
-   FML::Process::CGI::Kernel
-	remove makefml issue.
-	modify run() which now executes:
-		$curproc->html_start($args);
-		$curproc->run_cgi($args);
-		$curproc->html_end($args);
-
-2001/11/08
-
-   Mail::Message::Language::Japanese::Subject
-	nuke new(), not used
-
-   Mail::ThreadTrack
-	restructure hierarchy
-	clean up inheritence for further refactoring
-	modify method names
-	clean up
-	nuke some "*cost*" indicator codes
-	closed -> close for some cases
-
-   Mail::ThreadTrack::Analyze
-	avoid duplicated commit to articles DB { thread_id => [ id1 id2 ... ] }
-   Mail::ThreadTrack::Print::Message
-	ignore ^= line in message summary
-
-   Mail::Message::Date
-	validate $in $shift_m
-
-   Mail::ThreadTrack
-	list_up_thread_id()::remove db_*() operation
-
-   Mail::ThreadTrack::Analyze
-	speculate date from header's Date:
-
-   loader
-	least error infomation by default OR raw $@ if debug
-
-   FML::Process::Switch
-	least error infomation by default OR raw $@ if debug
-
-   Mail::ThreadTrack::Print
-	bug fix trap pattern of _valid_buf() and
-	_delete_subject_tag_like_string()
-
-   FML::Process::CGI
-	use FML::Process::CGI::{Kernel,Param}
-
-   FML::Command
-	defined() check for $command_args
-
-   FML::Process::Switch
-	modify error message
-
-2001/11/07
-
-   FML::Process::Switch ThreadTrack.pm
-   Mail::ThreadTrack
-   Mail::ThreadTrack::Print
-
-	enable fmlthread options:
-	--article_id_max=\d+  to override ::var::spool::ml::$ml::seq
-	--reverse             to reverse time order in showing "review"
-
-   Mail::ThreadTrack::DB
-
-	remove not used variables
-
-   FML::Process::Switch ThreadTrack.pm
-   Mail::ThreadTrack::Analyze
-
-	fmlthread -f filterlist ...
-
-   Mail::ThreadTrack::DB
-
-	show ... when processing
-
-   Mail::ThreadTrack::Print
-
-	check -f article_file
-
-   FML::Process::Utils
-
-	command_line_argv_find()
-
-   FML::Process::ThreadTrack
-
-	fmlthread review ML RANGE srcdir=::some::where
-	XXX srcdir=\S+ overwrites config->{ spool_dir } variable
-
-   Mail::ThreadTrack
-
-	define add_filter() method
-
-   FML::Process::Switch ThreadTrack.pm
-
-	we should use long line options since we support it :)
-	o define --spool_dir for fmlthread. for example:
-	% fmlthread db_clear fml-help
-	% fmlthread --spool_dir=::some::where -f ::tmp::filter db_rebuild fml-help
-	% fmlthread --spool_dir=::some::where review fml-help last:100
-
-
-
-2001/11/06
-
-   スレッド review と再生成をリモートでできるようにするとちょっと便利
-
-	fmlthread db_clear fml-help
-	fmlthread --spool_dir=/some/where -f /tmp/filter db_rebuild fml-help
-	fmlthread --spool_dir=/some/where review fml-help last:100
-
-2001/11/05
-
-   fmlthread review
-	review() mode to show summary for articles in each thread
-
-   FML::Process::Utils
-	implement command_line_options()
-
-   fmlhtmlify [-I dir] src_dir dst_dir
-		new utility for convenience
-	Affected Files:
-		INSTALL.sh
-		fml/bin/fmlhtmlify
-		FML::Process::Switch
-		FML::Process::HTMLify
-
-2001/11/04
-
-   プログラム全域で ticket -> thread
-
-   FML::Process::Switch
-	eval FML::Process::Flow::ProcessStart($obj, $args);
-	and trap error.
-	If error traped and $obj has help() method, run $obj->help().
-	also upcall the $@ by croak($@)
-
-   FML::Process::
-	save $args at $curproc->{ __parent_args }
-	$curproc provides convenient functions FML::Process::Utils has.
-	fml_version()
-	myname()
-	command_line_raw_argv()
-	command_line_argv()
-	article_id_max()
-
-	my $myname  = $curproc->myname();
-	my $argv    = $curproc->command_line_argv();
-
-   FML::Process::ThreadTrack
-	enable db_clear, db_mkdb, summary, help
-
-   Mail::ThreadTrack
-	implement exist() and close()
-	implemente db_clear(), db_mkdb()
-
-2001/11/03
-
-   remove fmlticket, create fmlthread
-
-   FML::Process:: を Mail::ThreadTrack ベースに切替える
-	FML::Process::TicketSystem は削除し、
-	FML::Process::ThreadTrack が作られた。
-
-   Mail::ThreadTrack を CVS へ入れる。
-	これはスレッドを追跡するためのツールであり、
-	call tracking system の概念のごく一部をなしているといってよい
-
-   Mail::ThreadTrack
-	change new() parameters
-	nuke pcb
-	$config->{ db_type } = 'AnyDBM_File'; by default
-	$self->{ _index_db } = $db_base_dir::"index"
-	moved set_status() into this module
-
-   Mail::ThreadTrack::Analyze
-	nuke pcb
-	bug fix $article_id handling
-	Log() to $self->log()
-	assign()::clean up function names and arguments
-	define {get,set}_thread_id() and modified to use them
-	add commentes for FNF style
-	clarify assign() and rewrite_header() roles
-	define {set,get}_thread_status() and modified to use them
-	message-id is  (RFC822), we use this format also in DB.
-	correct handling of $config->{ thread_subject_tag_location }
-	remove _address_clean_up(), which is not used now.
-	remove set_status()
-
-   Mail::ThreadTrack::HeaderRewrite
-	prepare_history_info()
-
-   Mail::ThreadTrack::DB
-	make index database in db_base_dir not db_dir
-
-   Mail::ThreadTrack::Print
-	build-in decode_mime_string()
-	tune up alignment in printing
-	EUC-ify output
-	define STR2EUC() for convenience
-
-2001/10/29
-
-   Mail::Message
-	_get_mime_header() checks offset boundary
-	return default pair if overrun.
-
-   Mail::HTML::Lite
-	nuke $ENV{DEBUG}, check input data more
-
-	rename key:
-	prev_thread -> prev_thread_id
-	next_thread -> next_thread_id
-
-	count up $self->{ _num_attachment } for child process
-	attachment file name $id.$count.html
-	parent passes the id to child (processing attachment)
-
-	ignore type if type is ::^multipart::
-
-	check $idp pattern
-
-2001/10/28
-
-   Mail::HTML::Lite
-	change method to speculate thread link
-
-	rename functions
-	implement _create_temporary_filename()
-	reorder $type check
-
-	consider case of text::* with encoded content
-	save content to file once and rewrite it by _rewrite_html_file()
-
-	consider encoding style of quoted-printable, 7bit also
-
-	_format_safe_header() and print it in raw mode to enable
-	 tag use.
-
-	define _sprintf_safe_str() and  __sprintf_safe_str() for convenience
-
-	define _separete_url() to help incomplete regexp of
-	HTML::FromText::text2html()
-
-2001/10/27
-
-   Mail::HTML::Lite
-	use _PRINT_DEBUG(), define _print_safe_{str,buf}() to be easy for eyes
-	_print() -> _print_raw_str()
-
-   Mail::Message
-	oops, should be s::::::mi to trap encodinge
-
-   FML::Filter::BodyCheck
-   Mail::Message
-   Mail::Bounce::DSN
-   Mail::HTML::Lite
-	change method: data() -> data_in_body_part()
-
-2001/10/22
-
-   FML::Ticket::System (clean up campaign)
-	remove obsolete functions:_quote_space(), _dequote_space(), AUTOLOAD()
-	remove not used _pcb_[sg]et_id()
-	$self->_pcb_set_id($curproc, $id) -> $pcb->set('article', 'id', $id)
-
-   Mail::HTML::Lite
-	add (X-ML-Name X-Mail-Count X-Sequence) into @header_field (default
-	header to show)
-
-	defined() check before calling Jcode::XXX()
-
-   FML::Command::Admin::htmlify
-	accept command line option::srcdir=$srcdir
-
-2001/10/21
-
-   makefml htmlify $ml_name outdir=$out_dir
-
-	スプールを HTML 化するコマンド
-	もちろん Mail::HTML::Lite を利用する。
-	# fml 4 の spool2html に対応するものといえよう
-
-   Mail::HTML::Lite
-	月ごとの ID インデックスも作る (TABLE)。
-	make monthly index always
-		monthly_index.html
-		month.YYYYMM.html
-
-	prepare top level entrance functions:
-		htmlify_file() for file
-		htmlify_dir()  for directory
-
-	clean up codes, documents
-
-	implement _print_index_{begin,end}() and modified to use them
-
-	sort location of function definition
-	rename functin name:
-	_print_attachment -> _print_inline_object
-	_raw_text_print   -> _text_print_by_raw_mode
-
-	oops, fix untie() operation to be ensured
-
-	check target html is already processed or not
-
-	bug fix _address_clean_up() syntax check
-
-	check already processed or not
-	you can know it by $self->is_ignore($id) method.
-
-	move a lot of debug code to "if $debug > 3" in cache_message_info()
-
-2001/10/20
-
-   Mail::HTML::Lite
-	メールを HTML 化するモジュール
-	mhonarc のように凝ってはいないが必要十分な最低限の機能は持つ
-	(だから Lite なんだよん)
-
-	cache information in .ht_hml_* in html article directory
-	rewrite links using these data among articles needed to rewrite.
-	links contains prev::next by ID (article ID) and prev::next by Thread.
-
-	bug fix target lists to update, modified to use the result by
-	evaluation_relation()
-
-	clean up debug code
-	more debug information
-
-	show  and  information in  if could
-	new() takes charset as argument
-	change _decode_mime_string() to method
-	modify ifdef in_chaset_to_code() to be more suitable
-
-	we can make index.html and thread.html
-
-	Mail::HTML::Lite::new() accepts
-		{ db_type => "DB_TYPE", attachment => 0::1 }
-
-	change html_begin argument::($wh, { message => $msg });
-	we can specify title in 
-	several minior changes
-
-	bug fix::_address_clean_up() should check return value, which is
-	address or not more rigolously.
-
-	bug fix::check parent::child (attachment) process or not
-
-	more and more debug info
-
-   Mail::Message
-
-	bug fix::$InComingMessage should not local scope. modify it to
-	SCALAR REF
-
-	bug fix::data_in_body_part() returns whole data not the first
-	512 bytes. if $size is specified as argument, return the first
-	$size bytes.
-
-	feature::get_data_type_list() returns ARRAY of xxx::yyy by
-	default for other method use. If under $debug mdoe, it shows
-	verbose output.
-
-2001/10/19
-
-   import HTML::FromText 1.005
-
-   Mail::Bounce
-	Mail::Message::get_data_type_list() is changed. To sync with it,
-	use $msg->get_data_type_list( { debug => 1 } ) for debug.
-
-2001/10/18
-
-   Tie::JournaledDir
-	change default unit to "day" not number (unix time).
-
-2001/10/17
-
-   variables
-	add $confirm_keyword to $available_commands_for_stranger
-	add $available_commands_for_stranger to $available_commands
-
-   FML::Command
-	modified FML::Command uses get_attribute() in FML::Command::Attribute
-
-   FML::Command::Attribute
-	renamed FML::Command::ACL -> FML::Command::Attribute.pm
-
-   FML::Command::SendFile
-	support MH style arg::first, last, cur, first:\d+ and last:\d+
-
-   FML::Command::User::bye
-	fix typo
-
-   File::Sequence
-	implemente get_id() method to return the latest article id
-	update document
-
-2001/10/15
-
-   フィルタリングを有効にする
-
-     FML::Filter::BodyCheck
-     FML::Filter::HeaderCheck.pm
-	define @default_rules and use it if rules not specified
-	rules() method to overwrite filtering rules
-
-     variables
-	define the following variables for filtering (FML::Filter)
-		body_cksum_cache_dir
-		body_filter_rules
-		body_loop_check_rules
-		header_filter_rules
-		use_body_filter
-		use_body_loop_check
-		use_header_filter
-
-2001/10/14
-
-   FML::Process::Kernel
-	bug fix::we should pay attention to implisit $_ use
-
-   FML::Process::Configure
-	sync style w:::Process::Command
-
-   FML::Process::Command
-	make argument vector from $command
-	relocate _parse_command_options()
-	implemt _get_command_name()
-	clean up
-	fix typo
-
-   FML::Command::Admin::get
-	prototype to use FML::Command::SendFile
-
-   FML::Command
-   FML::Command::*
-   FML::Process::Configure
-   FML::Process::Command
-	$optargs -> $command_args
-
-2001/10/13
-
-   FML::Process::Command
-	pass $comname in $optargs
-
-   FML::Command::SendFile
-	fix duplicatoin for $charset
-
-   FML::Config
-	avoid infinite loop
-
-   FML::Command::SendFile is added
-	This module provides basic file sending functions
-
-   implement command: get help summary guide
-	FML::Command::SendFile based command
-
-2001/10/12
-
-   FML::Command
-	remove error_nl()
-
-   FML::Command::Admin::resign
-	->SUPER::process()
-
-   FML::Command::Admin::subscribe
-	clean up log message, LogError() -> croak()
-
-   FML::Command::User::subscribe
-	use reply_message_nl()
-
-   FML::Command::User::unsubscribe
-	confirm version
-
-   FML::Config
-	expand_variable_in_buffer can take optional $args
-
-   FML::Credential
-	bug fix variable name
-
-   FML::Process::Kernel
-	implement search template mechanism in reply_message_nl()
-	$config->expand_variable_in_buffer() takes optional $args
-
-   FML::Process::Command
-	use reply_message_nl()
-	remove exception mechanism by $obj->error_nl();
-
-   etc/
-	define $message_message_dir
-	add chaddr to $available_commands
-
-   メッセージ
-	テンプレートは euc-jp を使う
-
-   FML::Config
-	expand_variable_in_buffer()
-	expand $varname to $config->{ varname }
-
-   FML::Process::Command
-
-	add _pre_scan()
-	even not member need to use $confirm_keyword.
-	for example, 'guide', 'subscribe', 'confirm'
-
-	add _can_accpet_command()
-	1. simple command syntax check
-	2. use of this command is allowed in FML::Config or not ?
-	3. Even new comer need to use commands [ guide, subscirbe, confirm ].
-
-   enable confirmation
-	FML::Confirm module を利用します
-	変数 $available_commands_for_stranger を定義する。
-	FML::Confirm provides basic functions needed for confirmation
-	+ FML::Command::User::subscribe
-	+ FML::Command::User::confirm
-	+ FML::Confirm
-
-   FML::Command::Admin::subscribe
-	check address is specified or not
-
-   FML::Command::User::help
-	clean up
-	expand_variables_in_file() -> prepare_file_to_return()
-
-   FML::Process::Kernel
-	define prepare_file_to_return():
-	expand $xxx variables in template (e.g. $help_file).
-	1. in Japanese case, convert kanji code::iso-2022-jp -> euc
-	2. expand variables::$ml_name -> elena
-	3. back kanji code::euc -> iso-2022-jp
-	4. return the new created template
-
-2001/10/11
-
-   FML::Filter::Utils
-	it provides utility functions
-		is_secure_command_string()
-		is_valid_mail_address()
-
-   FML::Process::Command
-	it checks input by FML::Filter::Utils::is_secure_command_string()
-
-2001/10/10
-
-   コマンド
-	get mget help などが動くようになった。
-
-   FML::Config
-	check defined() more
-
-   FML::Credential
-	implement is_same_address() completely.
-	is_member() accpepts $args->{ address }
-	define set_compare_level(), get_compare_level()
-
-   add variables
-	command_prompot	= >>>
-	help_file = $message_template_dir/help
-	message_template_dir = $fml_share_dir/template/$template_file_charset
-	template_file_charset = $default_charset
-
-   Mail::Delivery::SMTP
-	old IO::Socket has no connected() method. modified to use our
-	own socket_is_connected() method or remove connected() check.
-
-	Mail::Delivery::SMTP
-	+ bug fix: ensure we handle IPv6 case more restrictly
-
-	Mail::Delivery::Net::INET6
-	+ bug fix: clear error counter
-	+ check more defined($socket) or not, socket is connected
-	+ more debug log
-
-   FML::Process::Kernel
-	define prototype for reply_message_nl() for natural language
-	check more defined() or not
-	more debug info
-	define expand_variables_in_file()
-	+ expand $xxx variables in template (e.g. $help_file).
-
-   FML::Process::Command
-	bug fix: $obj->$command where $command is a command name not line.
-	modified to use reply_meessage_nl()
-
-   FML::Command
-	define error_nl(), but a dummy yet now
-	+ get natural language information
-
-2001/10/09
-
-   libexec/Standalone.pm
-	check $config->{ $x } is defined() or not
-
-   Ticket System
-	consider $ticket_subject_tag_location in regexp
-	change ticket_id_syntax to "$ml_name/%d" by default
-	define ticket_subject_tag_location as "appended"
-	change default ticket syntax
-		etc/default_config.cf.ja
-		etc/defaults/tickets.cf.ja
-
-	FML::Header::Subject
-		change regexp_compile().
-		quotemeta() firstly, and hack a few
-
-   FML::Process::Command
-	catch up the modification in FML::Process::Distribute.
-	make command function work with replying request mail.
-	disable lock()/unlock() since each command module lock/unlock
-	by itself.
-
-   FML::Process::Distribute
-	modified finish() to use queue_flush()
-
-
-2001/10/08
-
-   メールでのコマンドの応答を可能にした(プロトタイプ)
-	add a lot of debug messages
-
-	* Affcted modules:
-		FML::Command
-		FML::Process::Command
-		FML::Process::Distribute
-		FML::Process::Kernel
-		FML::Process::Switch
-
-	* newly added:
-		FML::Command::User::help
-
-	* test tools:
-		regress/simulation/test-ctl.sh
-		regress/testmails/text=plain.command
-
-   FML::Command
-   FML::Process::Kernel
-	more debug info
-
-   FML::Process::Distribute
-	log ACL error
-
-   FML::Process::Switch
-	enable "loader --ctladdr" behaves as libexec/command
-	more debug messages
-	modify style e.g. eval q## -> eval q{} et. al.
-
-   regress/simulation/test-ctl.sh
-	added simple command mode emulator
-
-   regress/simulation/perlcheck
-	add -I ../../fml/libexec
-
-   libexec/loader
-	die() -> croak()
-	define missing default value in initialization
-	remove obsolete variable: $libexec_dir
-	eval()-fiy more
-	fix error message
-	show $@ in error
-	fix typo
-
-   fix: more severe initialization check
-	FML::Credential
-
-
-2001/09/23
-
-   Mail::Message
-	implement get_encoding_mechanism() in Mail::Message.
-
-	implement get_offset(): return offset information in the data.
-	return value is	ARRAY.
-
-	return encoding type for specified Mail::Message not whole mail.
-	The return value is one of base64, quoted-printable or undef.
-
-	Modified Files:
-		fml/lib/Mail/Message.pm
-		fml/doc/ja/tutorial/module/Mail::Message.sgml
-		regress/message/dump.pl
-
-   チュートリアル
-	module  に関する新パートの創設
-	module/ ディレクトリを創設
-		Mail::Message
-		IO::Adapter
-	のプロトタイプを用意する。
-	このディレクトリでは各モジュールの詳細な使い方について
-	記述するもの。
-
-   FML::Filter
-	fml 4.0.x 相当の機能をきちんと実装する。
-	# ただし、ウィルスチェックは除く
-	XXX これで、おおむね、いつでも入れ換え可能か?
-
-	Utils を削除し、関数は適当なモジュールへ移動
-	move clean_up_buffer() and compare_euc_string() to
-	FML::Filter::BodyCheck and FML::Language::Japanese::Utils
-	respectively to remove FML::Filter::Utils.
-
-	MS GUID を判別するルーチンも実装した
-
-2001/09/22
-
-   FML/Config.pm
-	if ($ENV{'debug'}) { ... debug ...;}
-
-   TinyScheduler.pm
-   FML/Command/Admin/edit.pm
-	modified to use File::Spec
-
-2001/09/18
-
-   errormail collection
-	add netscape messaging server 3.54 sample
-	thanks PR for Toshimi Aoki 
-
-2001/09/17
-
-   IO::Adapter
-
-     * IO::Adapter::{DBI,MySQL,RDBMS}.pm
-	rename: $self->{ _driver } -> $self->{ _model_specific_driver }
-	dynamically load DBD:mysql
-
-	move replace(), getline() and get_nextvalue() to DBI.pm
-	since these functions are MI (Map Independent).
-
-	implement setpos(), getpos() and eof() in MySQL.pm
-	since these functions is dependent on map type (MD).
-
-	RDBMS.pm is not used now, so removed.
-
-     * IO/Adapter.pm
-	change replace()
-	o fix typo: s/regexp/replace/
-	o fix case insensitive search when $show_all is on
-	o call md_find (md == map dependent, function) if defined
-	o enabled to call md_XXX()
-		define AUTOLOAD() to hook up md_XXX() functions
-		XXX For example, md_XXX() should be implemented at
-		XXX IO::Adapter::SQL::toymodel.pm
-
-     * IO/Adapter/SQL/toymodel.pm
-	rename: fetch_and_cache_address_list -> fetch_all
-	implement md_find()
-
-
-2001/09/13
-
-   FML::Process::QueueManager
-	send() can take queue id as the argument
-
-   FML::Process::Kernel
-	more friendly error message
-
-	implement queue_flush($queue): This flush C<$queue>, that is,
-	send mail specified by C<$queue>.  It uses
-	FML::Process::QueueManager module.
-
-   FML::Config.pm
-	define FIRSTKEY and NEXTKEY for complete hash emulation
-
-   FML::Command::Admin	ユーザ用コマンド群
-		commit prototype
-		makefml uses this class
-
-2001/08/26
-
-   FML::Credential
-	implement has_address_in_map() method and is_member() uses this.
-	has_address_in_map() searches the address in the specified map.
-
-   IO::Adapter クラス
-	touch() メソッドを追加
-	XXX file タイプ以外では無意味。ダミー
-
-   FML::Command:: クラスの再構成
-
-	FML::Command.pm		FML::Command クラス以下への入口
-	FML::Command::ACL	ACL
-	FML::Command::Utils	よもやまの定義
-	FML::Command::User	ユーザ用コマンド群
-	FML::Command::Admin	ユーザ用コマンド群
-
-		newml edit などは Admin のみ
-
-2001/08/24
-
-  regress/
-	add&enable FML::Config {+,-}= overload test tools
-
-2001/08/23
-
-   FML::Config の拡張
-	postfix style のさらなる拡張
-
-	変数名 += 値
-	変数名 -= 値
-	で、特定の値の足し引きができます。
-
-	例:
-		x  = a b c d
-		x -= b
-		は
-		x = a c d
-
-		x  = a b c d
-		x += e
-		は
-		x = a b c d e
-		などとなる。
-
-2001/08/22
-
-   clean up
-	File::Spec を使うように変更
-
-
-2001/08/21
-
-   Tie::JournaledDir クラスの創設
-   Tie::JournaledFile の clean up
-
-	Tie::JournaledDir クラスはキャッシュとしてあるディレクトリを使い、
-	その中の複数個のファイルを順番に使います。
-	それぞれのファイルは Tie::JournaledFile を使ってアクセスします。
-
-	これにより auto expiration をする Journaled 型キャッシュを実現
-	します。
-
-	add Tie::JournaledDir which wraps Tie::JournaledFile and uses some
-	directory as cache area.
-
-	add/update test tools for Tie::Journaled{File,Dir} modules.
-
-	clean up Tie::JournaledFile
-	o remove header in the cache file
-	o $self->{ 'key' }
-	o $debug is on if $ENV{'debug'} is defined.
-	o more carefull check of whether the value is defined or not.
-	o quotemeta() for pre search key in find()
-	o rename grep() to find()
-
-2001/08/19
-
-  フィルタコードの改良
-	一行メールか否か?の判定コードをきれいにする
-
-		そのために signature や引用か?を判定するコード他を書く
-		Utils.pm もきれいにし、いらないコードを消した。
-
-
-2001/08/06
-
-  フィルタ
-	clean up
-
-  fml/lib/
-  fml/etc/
-	変数名の変更をする。s/header_check/header_loop_check/
-	ループチェックの設定であることを変数名自体ではっきりさせる
-
-  IO::Adapter
-
-	IO::Adapter
-		set @ISA = qw(IO::Adapter::ErrorStatus) to call error_set()
-		check $@ before call configure()
-		add more debug codes
-
-	IO::Adapter::MySQL
-		メインの部分を 	IO::Adapter::SQL:: 以下へ移す
-		IO::Adapter::MySQL は単なるフロントエンドにする
-
-2001/08/02
-
-   Mail::Message
-	bug fix wrong handling of "\n" at the last of part
-
-2001/07/31
-
-   rename FML::NL to FML::Language
-
-   Mail::Bounce class
-
-	以下のパターンを解析できるようになったはずです。
-		Lotus Notes
-		pakeo.ne.jp
-		jp-r.ne.jp (ほんとか?)
-
-	Mail::Bounce::Language::Japanese
-		日本語依存パーサを作成する
-
-   Mail::Bounce::DSN
-
-	call again $self->address_clean_up($addr, $addr)
-	gives $addr itself as a hint of fixing broken address
-	domain part of $addr may match someting e.g. nifty.ne.jp, webtv.ne.jp.
-
-   Mail::Bounce.pm
-   Mail::Bounce::FixBrokenAddress.pm
-
-	use Mail::Bounce::FixBrokenAddress to clean up address
-
-	Mail::Bounce::FixBrokenAddress class provides irrgular
-	address handlings, so handles domain/MTA specific addresses.
-	For example, nifty.ne.jp, webtv.ne.jp, ...
-
-2001/07/30
-
-   Mail::Bounce class
-
-        pick up Reporting-MTA and Received-From-MTA in DSN
-
-	clean up documentation
-	add error examples
-
-	modify Mail::Bounce::$module return "hints" to caller
-	(Mail::Bounce class).
-
-2001/07/19
-
-   add errormail samples
-
-	freeserve.ne.jp
-	webtv.ne.jp
-
-2001/07/15
-
-   設定変数
-
-	pid を _pid へ変更
-
-   FML::Config
-
-	enable read and write configuration file
-
-	コメントを保存しつつ postfix スタイルの設定ファイルの
-	読み書きを可能にするように
-
-2001/07/15
-
-   このファイルを創設する:)
-
-
-----------------------------------------------------------------
-Appendix
-
-	7.98.17 update modules: cpan modules, IM et.al (to be planned).
-	7.98.16 FML::Install is enhanced.
-	7.98.15 IM updated to IM-150.
-		fix wrong ID incrementation in article to html conversion.
-	7.98.14 www interface for anonymous users.
-		Anyone can submit a subscribe/unsubscribe request via
-		www interface. 
-	7.98.13 "isolate" instead of "reject" spam or unknown messages
-		by default.
-	7.98.12 delivery system error handling fixed.
-	7.98.11 ignore in restrictions supported.
-	7.98.10	delivery system overhaul sequal.
-	7.98.09	delivery system overhaul
-	7.98.08	correct context switch.
-		address validation in smtp transaction.
-	7.98.07	confirmation + manual subscribe/chaddr/unsubscribe
-		manual subscribe/chaddr/unsubscribe
-	7.98.06	fundamentals of moderator mode implemented.
-	7.98.05	add reviveml command (to revive a removed ML).
-		add PostgreSQL support.
-		add LDAP support.
-	7.98.04	minor fixes. clean up. 
-		clean up method naming convension.
-	7.98.03	Japanese/English document overhaul/revised.
-	7.98.02	queuing system revised. fetchfml added.
-		PGP/GPG authentication.
-		bug fix method naming convension (FNF).
-		MIME-Base64 removed from cvs tree.
-	7.98.01	overhaul.
-
-  [注意]
-	コマンドメールのコードを全面的に書き直しました。
-
-	fml-devel-20040303 が、このコマンドメールの変更が"入っていない"
-	最後のスナップショットです。
-
-	fml-devel-20040313 では、変数命名のルールが大きく変わりました。
-	気をつけてください。
+7.98.01	overhaul.
 
-	2004/09 以降の fml8 は疑似 MTA 的な動作をしていて、自分のメー
-	ルキューイングシステムを使ってエラー処理や再送処理を行ないます。
+7.97.xx fml-devel after 200409xx behaves like a pseudo MTA, so that
+	fml-devel itself has a mail queing system to handle error and
+	resend handling by itself.
 
+7.97.xx	fml-devel-20040313 variable naming convention is largely changed.
 
-$FML: CHANGES.txt,v 1.336 2017/03/04 02:39:21 fukachan Exp $
+7.97.xx command mail codes is fully rewritten.
+	fml-devel-20040303 is the last snapshot without this rewriting.
-- 
cgit v1.2.1