summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen'ichi Fukamachi <fukachan@fml.org>2018-09-10 19:52:48 +0900
committerKen'ichi Fukamachi <fukachan@fml.org>2018-09-10 19:52:48 +0900
commitd519a7f4088b9481f42e6b6f364bb18f2735f016 (patch)
treeda95f7a51ae887a9fe020fe8c067993997c12e7b
parent7dc3fe1a7ac71cb1907b2d02ae81f90a01f6fd87 (diff)
downloadfml8-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.txt8073
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
+
+ このファイルを創設する:)
+