diff options
| author | Ken'ichi Fukamachi <fukachan@fml.org> | 2018-09-10 19:52:48 +0900 |
|---|---|---|
| committer | Ken'ichi Fukamachi <fukachan@fml.org> | 2018-09-10 19:52:48 +0900 |
| commit | d519a7f4088b9481f42e6b6f364bb18f2735f016 (patch) | |
| tree | da95f7a51ae887a9fe020fe8c067993997c12e7b | |
| parent | 7dc3fe1a7ac71cb1907b2d02ae81f90a01f6fd87 (diff) | |
| download | fml8-d519a7f4088b9481f42e6b6f364bb18f2735f016.tar.gz fml8-d519a7f4088b9481f42e6b6f364bb18f2735f016.tar.bz2 fml8-d519a7f4088b9481f42e6b6f364bb18f2735f016.zip | |
changes in fml-devel (before 7.98) age separeted from CHANGES.txt to here.
| -rw-r--r-- | fml/doc/ja/CHANGES-7.97.txt | 8073 |
1 files changed, 8073 insertions, 0 deletions
diff --git a/fml/doc/ja/CHANGES-7.97.txt b/fml/doc/ja/CHANGES-7.97.txt new file mode 100644 index 00000000..6e422369 --- /dev/null +++ b/fml/doc/ja/CHANGES-7.97.txt @@ -0,0 +1,8073 @@ +# -*- mode:text coding:euc-jp *-* + + CHANGES in fml-devel (fml before 7.98). + +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: + <pre>str1<::pre> <pre>str2<::pre> ... -> <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 <tats@mbf.nifty.com>. + +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 <td> 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 <addr-spec> (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 + <SPAN> 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 <META> and <LINK> information in <HEAD> 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 <HEAD> + 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 <toshi@kinotrope.co.jp> + +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 + + このファイルを創設する:) + |
