summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorfukachan <fukachan>2004-03-15 09:03:35 +0000
committerfukachan <fukachan>2004-03-15 09:03:35 +0000
commit9ed717d08165575ea10b84cbb39a0abdcb7c1e15 (patch)
treeae9029cc7574e32eed18962bf73026a9f42be39d /gnu
parent3a8cd77204643ff9cdd456fcad299131b6596265 (diff)
downloadfml8-9ed717d08165575ea10b84cbb39a0abdcb7c1e15.tar.gz
fml8-9ed717d08165575ea10b84cbb39a0abdcb7c1e15.tar.bz2
fml8-9ed717d08165575ea10b84cbb39a0abdcb7c1e15.zip
Initial revision
Diffstat (limited to 'gnu')
-rw-r--r--gnu/dist/fml4/cf/MANIFEST1547
-rw-r--r--gnu/dist/fml4/cf/MANIFEST.Japanese1692
-rw-r--r--gnu/dist/fml4/cf/README15
-rw-r--r--gnu/dist/fml4/cf/compat.ignore16
-rwxr-xr-xgnu/dist/fml4/cf/config807
5 files changed, 4077 insertions, 0 deletions
diff --git a/gnu/dist/fml4/cf/MANIFEST b/gnu/dist/fml4/cf/MANIFEST
new file mode 100644
index 00000000..6bb7a395
--- /dev/null
+++ b/gnu/dist/fml4/cf/MANIFEST
@@ -0,0 +1,1547 @@
+INFO:
+# FML Configurable Variable Definitions
+#
+# Copyright (C) 1996-2003 Ken'ichi Fukamachi
+# All rights reserved.
+# 1993-1996 fukachan@phys.titech.ac.jp
+# 1996-2003 fukachan@sapporo.iij.ad.jp
+#
+# FML is free software; you can redistribute it and/or modify
+# it under the terms of GNU General Public License.
+# See the file COPYING for more details.
+#
+# $FML: MANIFEST,v 1.104 2003/12/06 04:06:29 fukachan Exp $
+#
+
+
+#####################################################################
+# ### Section: Fundamental Configuration (CF Version, debug, Language) ###
+# config.ph configuration version
+# define 5.0 for fml 3.0.
+# define 6.0 for fml 3.0 + fukui-newconfig.
+CFVersion: 6.1
+
+# global debug option. if non-nil, debug mode.
+# In debug mode, fml does not distribute posted articles.
+# value: 1/0
+debug: 0
+
+# fml 3.0 generates template files, $DIR/{help,welcome} in $LANGUAGE
+# in "makefml newml". You define this variable in installation.
+# The value is controlled by /usr/local/fml/.fml/system.
+# value: Japanese/English
+LANGUAGE: Japanese
+
+# Error message language fml returns.
+# If $MESSAGE_LANGUAGE is not defined, fml 3.0 uses $LANGUAGE.
+# &Mesg() tries to translate the given message to this language.
+# value: Japanese/English
+MESSAGE_LANGUAGE:
+
+# ## Sub Section: DNS ##
+# fml automatically set up DNS for this host, but check it again by yourself.
+#
+# DOMAINNAME the domain name e.g. fml.org
+# FQDN Fully Qualified Domain Name e.g. beth.fml.org
+#
+# value: string
+DOMAINNAME: &fix:dn phys.titech.ac.jp
+FQDN: &fix:fqdn axion.phys.titech.ac.jp
+
+
+#####################################################################
+# ### Section: Mailing List Policy (for Post, Commands), Maintainer ###
+#
+# $MAIL_LIST is the address for post. For example 'elena@fml.org'.
+#
+# $PERMIT_POST_FROM is one of "anyone", "members_only" and "moderator".
+# It defines who can post to this ML.
+# When post from not a member is rejected,
+# fml calls $REJECT_POST_HANDLER.
+# $REJECT_POST_HANDLER is one of "reject", "auto_subscribe" and "ignore".
+# HISTORY: you can use "auto_regist" used in fml 2.x.
+#
+# value: string
+MAIL_LIST:
+PERMIT_POST_FROM: members_only
+REJECT_POST_HANDLER: reject
+
+
+# $CONTROL_ADDRESS is the address you send a command request to.
+# For example 'elena-ctl@fml.org'.
+#
+# $PERMIT_COMMAND_FROM is one of "anyone", "members_only" and "moderator".
+# It defines who can post to this ML.
+# When command request from not a member is rejected,
+# fml calls $REJECT_COMMAND_HANDLER.
+#
+# $REJECT_COMMAND_HANDLER is one of "reject", "auto_subscribe" and "ignore".
+# HISTORY: you can use "auto_regist" used in fml 2.x.
+#
+# Typical Configuration is
+#
+# (default)
+# $PERMIT_COMMAND_FROM = "members_only";
+# $REJECT_COMMAND_HANDLER = "reject";
+#
+# (automatic subscribe: fml automatically handles subscribe request)
+# $PERMIT_COMMAND_FROM = "members_only";
+# $REJECT_COMMAND_HANDLER = "auto_subscribe";
+#
+# value: string
+CONTROL_ADDRESS:
+PERMIT_COMMAND_FROM: members_only
+REJECT_COMMAND_HANDLER: reject
+
+# obsolete (though you can use it)
+# When $MAIL_LIST_ACCEPT_COMMAND = 1,
+# both $MAIL_LIST and $CONTROL_ADDRESS accept commands
+# which format is "# command".
+# value: 1/0
+MAIL_LIST_ACCEPT_COMMAND:
+
+# ## Sub Section: Maintainer ##
+# mailing list maintainer/administrator address e.g. 'elena-admin@fml.org'.
+# $MAINTAINER != $MAIL_LIST IS REQUIRED AGAINST MAIL LOOP!
+# value: string
+MAINTAINER:
+MAINTAINER_SIGNATURE:
+
+# ## Sub Section: ML_FN ##
+# obsolete
+#
+# You can enforce To: field of posted article by rewriting it.
+# To: $MAIL_LIST $ML_FN => To: Elena@fml.org (Elena Lolabrigita ML)
+#
+# value: string
+ML_FN:
+
+
+#####################################################################
+# ### Section: Directory ###
+# $*DIR variable is relative under $DIR (defined in fml initialization phase).
+# $FP*DIR is fully pathed directory name for each $*DIR variable.
+
+# article spool
+# value: directory string
+SPOOL_DIR: spool
+
+# tmp, after chdir, under DIR
+# value: directory string
+TMP_DIR: tmp
+
+# multi-purpose log, temporary, transient, and spool files (4.4BSD style)
+# $LOGFILE and $SPOOL_DIR is exceptional but others is under var/.
+# value: directory string
+VAR_DIR: var
+VARLOG_DIR: var/log
+VARRUN_DIR: var/run
+VARDB_DIR: var/db
+
+
+#####################################################################
+# ### Section: Manual Registration ###
+#
+# Term "Manual Registration" may be ambiguous but it implies
+# ML maintainer needs to do some action to add a new member.
+# When the maintainer receives subscribe request, he/she
+# 1. remote login to the fml host and edit actives/members
+# 2. remote login to the fml host and run "makefml add ML address"
+# 3. send a command to add an address e.g. "admin add address".
+# You need to enable remote administration function to do it.
+# See "remote administration" section for more details.
+#
+# On contrary, "automatic registration" is fml does everything
+# to add a new member except for some error cases.
+#
+# only support 'confirmation' or 'forward_to_admin'
+# In "confirmation", fml confirms the subscribe request is valid to
+# avoid a tricky attack.
+# If "forward_to_admin" is selected, subscribe request is forwarded
+# to $MAINTAINER without further check.
+#
+# value: confirmation/forward_to_admin
+MANUAL_REGISTRATION_TYPE: confirmation
+
+# value: directory string
+MANUAL_REGISTRATION_CONFIRMATION_FILE: $DIR/confirm.msub
+
+#####################################################################
+# ### Section: Automatic Registration ###
+#
+# When REJECT_{POST,COMMAND}_HANDLER is "auto_subscribe" or
+# "auto_regist", fml does everything to add a new member except for some
+# error cases. The subscription request type is as follows.
+#
+# value: confirmation/subject/body/no-keyword
+AUTO_REGISTRATION_TYPE: confirmation
+
+# keyword of subscribe request
+# $REQUIRE_SUBSCRIBE (CFVersion 2) => $AUTO_REGISTRATION_KEYWORD
+# value: string
+AUTO_REGISTRATION_KEYWORD: subscribe
+
+# when automatic registration,
+# we apply $AUTO_REGISTRATION_DEFAULT_MODE e.g. "m=3mp s=1" to the address.
+# Please see "file operation" in doc/tutorial for more details.
+# value: string
+AUTO_REGISTRATION_DEFAULT_MODE:
+
+# "confirmation" (default) mode configurations
+# please see doc/tutorial for the detail of "confirmation"
+# value: string
+CONFIRMATION_ADDRESS:
+CONFIRMATION_SUBSCRIBE: subscribe
+CONFIRMATION_KEYWORD: confirm
+CONFIRMATION_WELCOME_STATEMENT:
+
+# "subscribe" needs no YOUR NAME.
+# value: 1/0
+CONFIRMATION_SUBSCRIBE_NEED_YOUR_NAME: 1
+
+# file to send back "what is confirmation?" with "confirmation request"
+# reply mail in "confirmation" mode.
+# value: filename string
+CONFIRMATION_FILE: $DIR/confirm
+
+# Expire of request queue. The unit is "hour". (default, 168 == 7*24)
+# value: number
+CONFIRMATION_EXPIRE: 168
+
+# confirmation request queue (you should not manually edit it)
+# value: filename string
+CONFIRMATION_LIST:
+
+# In fact, obsolete.
+# default keyword for trap
+# value: string
+DEFAULT_SUBSCRIBE: subscribe
+
+# In adding a new member, fml sends $WELCOME_FILE to him/her.
+# ML maintainer should set up this file as a guide of mailing list.
+# This function works in automatic registration.
+# value: filename string
+WELCOME_FILE: $DIR/welcome
+
+# subject of mail ($WELCOME_FILE) sent to a new member
+# value: string
+WELCOME_STATEMENT:Welcome to our $ML_FN\n You are added automatically
+
+# Enforce file to add a new member address for some purposes.
+# In default fml adds it to both $ACTIVE_LIST and $MEMBER_LIST.
+# value: filename string
+FILE_TO_REGIST:
+
+# obsolete in fact.
+#
+# In default if body lines > $AUTO_REGISTRATION_LINES_LIMIT,
+# we forward this mail to $MAIL_LIST. If $AUTO_REGISTERED_UNDELIVER_P is set,
+# we ALWAYS DO NOT Forward it to $MAIL_LIST.
+# value: 1/0
+AUTO_REGISTERED_UNDELIVER_P: 1
+AUTO_REGISTRATION_LINES_LIMIT: 0
+
+
+#####################################################################
+# ### Section: Confirmd ###
+# confirmd
+# value: filename string
+CONFIRMD_ACK_REQ_FILE: $DIR/confirmd.ackreq
+CONFIRMD_ACK_LOGFILE: $VARLOG_DIR/confirmd.ack
+
+# value: number / ( number + month/week/day )
+CONFIRMD_ACK_EXPIRE_UNIT: 1month
+CONFIRMD_ACK_WAIT_UNIT: 2weeks
+
+#####################################################################
+# ### Section: Remote Administration ###
+#
+# For security, I do not recommend you use remote control of fml.
+# If $REMOTE_ADMINISTRATION is set, you can control FML by sending
+# a command mail from remote host.
+# Another choice from remote host is CGI interface but fml 3.0 does not
+# provide it. CGI development is underway.
+#
+# value: 1/0
+REMOTE_ADMINISTRATION: 0
+
+# Of course, the remote control requires some kind of authentication.
+# The choice of authentication is $REMOTE_ADMINISTRATION_AUTH_TYPE,
+# which is one of
+# address From: field
+# crypt From: field + password (e.g. "#admin pass PASSWORD")
+# md5 From: field + password (e.g. "#admin pass PASSWORD")
+# pgp PGP(Pretty Good Privacy) signature
+#
+# The difference of "crypt" and "md5" is $PASSWD_FILE format.
+# HISTORY: $REMOTE_ADMINISTRATION_REQUIRE_PASSWORD <=> "crypt"
+#
+# value: crypt/address/md5/pgp/pgp2/pgp5/gpgp
+REMOTE_ADMINISTRATION_AUTH_TYPE: crypt
+
+# address list of members who can send a command mail from remote
+# value: filename string
+ADMIN_MEMBER_LIST: $DIR/members-admin
+
+# help file of admin commands
+# value: filename string
+ADMIN_HELP_FILE: $DIR/help-admin
+
+# password file to authenticate members
+# The format is "address encrypted-password" and uses one line for one address.
+# value: filename string
+PASSWD_FILE: $DIR/etc/passwd
+
+# "admin add" to add an address to a member list. If it succeeds, fml
+# sends back $WELCOME_FILE if this variable is defined. In default fml
+# does not do it, so the maintainer needs to send the success of subscribe
+# and guide to the new member.
+# value: 1/0
+ADMIN_ADD_SEND_WELCOME_FILE: 0
+
+# N, the number of lines, of "tail -N $LOGFILE".
+# "admin log" is "tail -100 log" in default to avoid too big mail.
+# value: number
+ADMIN_LOG_DEFAULT_LINE_LIMIT: 100
+
+# PGP directory path (obsolete in fml 4.0)
+# value: filename string
+PGP_PATH: $DIR/etc/pgp
+
+# If you enforce the following *KEYRING_DIR in $CFVersion < 6.1,
+# set this variable on.
+# value: 1/0
+USE_FML40_PGP_PATH: 1
+
+# fml 4.0
+# value: directory string
+DIST_AUTH_KEYRING_DIR: $DIR/etc/dist-auth
+DIST_ENCRYPT_KEYRING_DIR: $DIR/etc/dist-encrypt
+ADMIN_AUTH_KEYRING_DIR: $DIR/etc/admin-auth
+ADMIN_ENCRYPT_KEYRING_DIR: $DIR/etc/admin-encrypt
+
+
+#####################################################################
+# ### Section: Moderations; moderators check posted articles ###
+
+# "moderator" certification type
+# value: 1/2/3
+MODERATOR_FORWARD_TYPE: 2
+
+# member list who receives submitted article.
+# If this file does not exist, it is forwarded to only $MAINTAINER.
+# A moderator who certificate submitted articles and permit the post
+# to mailing list.
+#
+# fml does not check moderator's addresses. fml check only "moderators
+# knows passwords or identifiers (one time password)".
+#
+# value: filename string
+MODERATOR_MEMBER_LIST: $DIR/moderators
+
+# expire old submitted but not certified articles
+# default: 2 weeks
+# value: number
+MODERATOR_EXPIRE_LIMIT: 14
+
+
+#####################################################################
+# ### Section: Security ###
+
+# We reject $REJECT_ADDR@ARBITRARY.DOM.AIN since these are clearly NOT
+# individuals. It also may be effective to avoid mail loop since
+# some error or automatic reply comes from not individual addresses.
+# This restriction is stronger than $PERMIT_*_FROM variable.
+# For example, if $PERMIT_POST_FROM is "anyone", fml does not permit
+# post from root@some.domain. If you permit it, please define $REJECT_ADDR.
+#
+# XXX This variable name is ambiguous. It should be $REJECT_ACCOUNT?
+#
+# value: regexp string
+REJECT_ADDR: root|postmaster|MAILER-DAEMON|msgs|nobody|news|majordomo|listserv|listproc|\S+\-help|\S+\-subscribe|\S+\-unsubscribe
+
+
+# list of addresses fml should reject. fml checks From: field for this but
+# it may be ineffective since SMTP has no general authentication method.
+# value: filename string
+REJECT_ADDR_LIST: $DIR/spamlist
+
+# check UNIX from to avoid mail loop. check in default.
+# value: 1/0
+NOT_USE_UNIX_FROM_LOOP_CHECK: 0
+
+# check Message-Id: duplication to avoid mail loop
+# value: 1/0
+CHECK_MESSAGE_ID: 1
+
+# check mail body content md5 checksum to avoid mail loop
+# do not check it in default.
+# value: 1/0
+CHECK_MAILBODY_CKSUM: 0
+
+# obsolete today
+# Logs the getpeername()
+# value: 1/0
+LOG_CONNECTION: 0
+
+# address check levels, which level is the tree depth from the root.
+# For example
+# fukachan@phys.titech.ac.jp
+# fukachan@axion.phys.titech.ac.jp
+#
+# fml checks $ADDR_CHECK_MAX level from the name space root. That is
+# compare "jp" -> compare "ac" -> titech -> phys -> axion ...
+#
+# When $ADDR_CHECK_MAX = 3, fml regards these two are the same.
+# When $ADDR_CHECK_MAX = 4, fml regards these two are the same.
+# When $ADDR_CHECK_MAX = 5, fml regards these two are DIFFERENT!
+#
+# value: number
+ADDR_CHECK_MAX: 3
+
+# fml reject too big mail.
+# In-coming mail size > $INCOMING_MAIL_SIZE_LIMIT, fml discards it
+# and send a warning only to the maintainer.
+# 0 (default) implies infinite (no limit)
+# value: number
+INCOMING_MAIL_SIZE_LIMIT:
+
+# When fml reject too big mail,
+# if $NOTIFY_MAIL_SIZE_OVERFLOW is set, notify the rejection to the sender.
+# value: 1/0
+NOTIFY_MAIL_SIZE_OVERFLOW: 1
+
+# When fml reject too big mail,
+# if $ANNOUNCE_MAIL_SIZE_OVERFLOW is set, announce "too big mail from someone"
+# to mailing list (SARASHIMONO:-).
+# value: 1/0
+ANNOUNCE_MAIL_SIZE_OVERFLOW: 0
+
+# Resource Limit (useful for ISP ?): (default 0 == not check this limit)
+# the maximum of ML delivery members when auto registration routine works.
+#
+# If member > $MAX_MEMBER_LIMIT, auto registration rejects the request.
+# We check actives to permit aliases of post-able addresses.
+# We check @ACTIVE_LIST effective members, not @MEMBER_LIST.
+# value: number
+MAX_MEMBER_LIMIT:
+
+# Filter of posted article.
+# &EnvelopeFilter is called in the top of &Distribute if you set
+# $USE_DISTRIBUTE_FILTER = 1;
+# value: 1/0
+USE_DISTRIBUTE_FILTER:
+
+# Filter of posted article.
+# You can use $DISTRIBUTE_FILTER_HOOK for advanced customizes.
+# value: string
+DISTRIBUTE_FILTER_HOOK:
+
+# $FILTER_NOTIFY_REJECTION enables fml.pl notifies the rejection to
+# the sender.
+# value: 1/0
+FILTER_NOTIFY_REJECTION:
+
+# Attribute of filter of posted article
+# value: 1/0
+FILTER_ATTR_REJECT_NULL_BODY: 1
+
+# Attribute of filter of posted article
+# When $FILTER_ATTR_REJECT_COMMAND is 1 under distribution mode,
+# rejects "# command" syntax just before distribution (&Distribute;)
+# value: 1/0
+FILTER_ATTR_REJECT_COMMAND:
+
+# Attribute of filter of posted article
+# reject Japanese "2byes English words"
+# value: 1/0
+FILTER_ATTR_REJECT_2BYTES_COMMAND:
+
+# Attribute of filter of posted article
+# reject command mail sent to the address for posting.
+# value: 1/0
+FILTER_ATTR_REJECT_INVALID_COMMAND: 1
+
+# Attribute of filter of posted article
+# reject a mail with "one line" mail body (must be invalid command mail)
+# one line means the input mail has one line in the first paragraph
+# except for signature (last paragraph).
+# Even if it has one line, the paragraph ends with period '.'
+# it must be an effective paragraph. So we should not reject it.
+# value: 1/0
+FILTER_ATTR_REJECT_ONE_LINE_BODY: 1
+
+# Attribute of filter of posted article
+# reject MIME/multipart mails with Microsoft GUID within it,
+# We intend to reject "Melissa virus" family by it.
+# value: 1/0
+FILTER_ATTR_REJECT_MS_GUID: 1
+
+# reject not ascii nor ISO-2022-JP
+# value: 1/0
+FILTER_ATTR_REJECT_INVALID_JAPANESE: 0
+
+# cutoff empty message.
+# value: 1/0
+CONTENT_HANDLER_CUTOFF_EMPTY_MESSAGE: 0
+
+# reject empty message after cut off process.
+# value: 1/0
+CONTENT_HANDLER_REJECT_EMPTY_MESSAGE: 0
+
+# try to convert Japanese HANKAKU chars in the mail body to ZENAKKU
+# value: 1/0
+USE_HANKAKU_CONVERTER: 0
+
+# reject HTML mails that the same content exist in the form of both
+# plain and html. e.g. some versions of M$ outlook, netscape mail
+# "AGAINST_HTML_MAIL: 1/0" is old style, which works for compatibility though.
+# NULL (default) is "pass through a html mail".
+# value: "strip" / "reject" / ""
+HTML_MAIL_DEFAULT_HANDLER:
+
+# Traffic Monitoring Mechanism within fml
+# Mail Traffic Information: internal traffic monitor
+# value: 1/0
+USE_MTI:
+
+# MIT warning (mail bomb report) negative cache interval
+# to avoid mail bomb of "mail bomb attack report" itself.
+# value: number
+MTI_WARN_INTERVAL: 3600
+
+# value: filename string
+MTI_WARN_LASTLOG:
+
+# garbage collection
+# how old data (cache) to remove in clean up
+# value: number
+MTI_EXPIRE_UNIT: 3600
+
+# low water mark
+# value: number
+MTI_BURST_SOFT_LIMIT: 1
+
+# high water mark
+# value: number
+MTI_BURST_HARD_LIMIT: 2
+
+# function name to evaluate the current traffic load
+# value: funtion string
+MTI_COST_EVAL_FUNCTION: MTISimpleBomberP
+
+# cache of spammer candidates
+# value: filename string
+MTI_MAIL_FROM_HINT_LIST: $DIR/mti_mailfrom.hints
+
+
+# how to announce the new comer if $AUTO_REGISTERED_UNDELIVER_P is 0.
+# value: raw / prepend_info
+SUBSCRIBE_ANNOUNCE_FORWARD_TYPE: prepend_info
+
+
+# Optional. If UNSUBSCRIBE_AUTH_TYPE is 'confirmation', fml sends back
+# confirmation against a fake. In default, FML does not do confirmation.
+# available type is "confirmation" only.
+# value: confirmation
+UNSUBSCRIBE_AUTH_TYPE:
+
+# chaddr checks confirmation
+# value: confirmation / ""
+CHADDR_AUTH_TYPE:
+
+# LOGGING THE LATEST IN-COMING MAILS
+# Logs an in-coming mail to $LOG_MAIL_DIR/$id
+# where ($id = `cat $LOG_MAIL_SEQ`; $id = $id % $NUM_LOG_MAIL; $id++).
+# Latest $NUM_LOG_MAIL files are stored in $LOG_MAIL_DIR and
+# the message size of each file except for the header
+# is limited up to $LOG_MAIL_FILE_SIZE_MAX bytes to save disk.
+# value: 1/0
+USE_LOG_MAIL: 0
+
+# value: filename string
+LOG_MAIL_DIR: $VAR_DIR/Mail
+LOG_MAIL_SEQ: $LOG_MAIL_DIR/.seq
+
+# value: number
+NUM_LOG_MAIL: 100
+LOG_MAIL_FILE_SIZE_MAX: 2048
+
+# PGP Encrypted ML
+# value: 1/0
+USE_ENCRYPTED_DISTRIBUTION:
+
+# value: pgp / pgp2 / pgp5 / gpgp
+ENCRYPTED_DISTRIBUTION_TYPE: pgp2
+
+# obosolete in fml 4.0
+# value: 2/5/6
+# PGP_VERSION: 2
+
+
+#####################################################################
+# ### Section: Header Customization ###
+# In general, you can control fields in header in the following:
+#
+# @HdrFieldsOrder Fields Order In Header
+#
+# &DEFINE_FIELD_ORIGINAL('field'); Conserve Original
+# &DEFINE_FIELD_FORCED('field', "contents"); Overwrite
+#
+# In default, we discard fields not shown in @HdrFieldsOrder.
+
+# Date: definition ("makefml config" can control this)
+# 1 original-date Date:
+# * Date: == when distribute() works
+# 2 distribute-date+posted Date: + Posted:
+# 3 distribute-date+x-posted Date: + X-Posted:
+# 4 distribute-date+x-original-date Date: + X-Original-Date:
+# * Date: == when fml.pl receives or is kicked off.
+# 5 received-date+posted Date: + Posted:
+# 6 received-date+x-posted Date: + X-Posted:
+# 7 received-date+x-original-date Date: + X-Original-Date:
+# value: original-date/distribute-date+posted/distribute-date+x-posted
+# /distribute-date+x-original-date/received-date+posted
+# /received-date+x-posted/received-date+x-original-date
+DATE_TYPE: original-date
+
+# In article header, fml adds following header fields.
+#
+# $XMLNAME
+# $XMLCOUNT: sequence-number
+#
+# e.g.
+# X-ML-Name: Elena
+# X-Mail-Count: 00007
+#
+# value: string
+XMLNAME: X-ML-Name: Elena
+XMLCOUNT: X-Mail-Count
+
+# In default subject tag does not exist to show more and more effective
+# subject and body. Client Interface SHOULD CONTROL subject descriptions.
+#
+# The available type is [:] [,] [ ] (:) (,) ( ).
+# e.g. [:] => [Elena:00100] format (here $BRACKET is "Elena").
+# But you can customize SUBJECT_FREE_* series variables.
+# Please see doc/tutorial for the detail
+#
+# value: (:) / [:] / () / [] / (,) / [,] / () / [] / (ID) / [ID] / ""
+SUBJECT_TAG_TYPE:
+
+# BRACKET of "Subject: [BRACKET:ID] ..." form
+# value: string
+BRACKET: Elena
+
+# obsolete
+# We strip off e.g. [ML:fukachan] form in Subject
+# but this operations depends on special forms, so not functional.
+# You do not expect a lot on this option.
+STRIP_BRACKETS: 0
+
+# You can customize your own bracket by these variables.
+# See doc/tutorial and libtagdef.pl on examples.
+# value: regexp string
+BRACKET_SEPARATOR:
+SUBJECT_FREE_FORM:
+SUBJECT_FREE_FORM_REGEXP:
+SUBJECT_FORM_LONG_ID:
+
+# obsolete based on RFC1123
+# value: 1/0
+USE_ERRORS_TO:
+
+# obsolete based on RFC1123
+# value: string
+ERRORS_TO:
+
+# Message-Id: use original Message-Id or Server Defined Message-Id ?
+# if 1, original and
+# if 0, fml generates a message-id like $day.FMLAAA.$pid.$MAIL_LIST
+# value: 1/0
+USE_ORIGINAL_MESSAGE_ID: 1
+
+# Precedence: field;
+# value: string
+PRECEDENCE: bulk
+
+# append STARTREK stardate :-) in article.
+# Stardate calculation algorithm is ambiguous.
+# X-Stardate: field
+# value: 1/0
+APPEND_STARDATE:
+
+# RFC2369 e.g. list-post: ..
+# value: 1/0
+USE_RFC2369: 1
+
+# List-*
+LIST_SOFTWARE:
+LIST_POST:
+LIST_OWNER:
+LIST_HELP:
+LIST_SUBSCRIBE:
+LIST_UNSUBSCRIBE:
+LIST_ID:
+
+
+# obsolete in fml 3.0
+# We should force "To: $MAIL_LIST" form "For Eye" or NOT?
+# default is "NO".
+#
+# 0 Pass the original field To:
+# 1 We rewrite "To: $MAIL_LIST, original-to-fields".
+# 2 Force "To: $MAIL_LIST".
+#
+# REWRITE_TO = 1 if NOT_REWRITE_TO == 0 (2.1 Release)
+# value: 0/1/2
+REWRITE_TO:
+
+# Default values if no value (no field) is given.
+# value: string
+Subject:
+From_address: not.found
+User: not.found
+Date: not.found
+
+# TIME ZONE; +0900 is RFC822 syntax (I like JST but ... ;-)
+# value: +\d{4} / -\d{4}
+TZone: +0900
+
+# time zone within summer time if you use summer time.
+# thank HIROSHIMA Naoki <naoki@bcrossing.com> on this idea
+TZONE_DST:
+
+# ## Sub Section: Pass All Header ? ##
+# In some cases you need to pass only defined fields of the header
+# which is defined in @HdrFieldsOrder (see "sub SetDefaults" in fml.pl).
+# All files except $SKIP_FIELDS is passed through
+# when $PASS_ALL_FIELDS_IN_HEADER is set.
+# The old variable name is $SUPERFLUOUS_HEADERS.
+# value: 1/0
+PASS_ALL_FIELDS_IN_HEADER: 1
+
+# ignore header field irrespective of @HdrFieldsOrder and
+# $PASS_ALL_FIELDS_IN_HEADER setting
+# value: regexp string
+SKIP_FIELDS: Return-Receipt-To
+
+# correct a wrong input
+# value: 1/0
+ALLOW_WRONG_LINES_IN_HEADER: 1
+
+
+#####################################################################
+# ### Section: Commands, Command Traps, File Operations (e.g. mget) ###
+
+# obsolete
+# COMMAND format is "#help" == "# help" if $COMMAND_SYNTAX_EXTENSION is set.
+# value: 1/0
+COMMAND_SYNTAX_EXTENSION: 1
+
+# "Subject: # commands" is available?
+# value: 1/0
+USE_SUBJECT_AS_COMMANDS: 0
+
+# obsolete
+# If NOT "# command" syntax commands is given, ignore or warn to the user?
+# Our default is not, since most such cases are "signature".
+# value: 1/0
+USE_WARNING: 0
+
+# obsolete: since this is the same as --ctladdr.
+# value: 1/0
+COMMAND_ONLY_SERVER: 0
+
+# **ATTENTION**
+# $PROHIBIT_COMMAND_FOR_STRANGER is obsoletes since
+# $PROHIBIT_COMMAND_FOR_STRANGER equals $PERMIT_COMMAND_FROM = "anyone";
+
+# ## Sub Section: traps ##
+# obsolete
+# when $MAIL_LIST == $CONTROL_ADDRESS,
+# the first $COMMAND_CHECK_LIMIT lines is checked for commands mail or not?
+# $GUIDE_CHECK_LIMIT is the same kind of variable but for "# guide" trap.
+# $GUIDE_KEYWORD determines "guide" of "$ guide" trap.
+# value: number
+COMMAND_CHECK_LIMIT: 3
+
+# obsolete
+# value: number
+GUIDE_CHECK_LIMIT: 3
+
+# obsolete
+# value: string
+GUIDE_KEYWORD: guide
+
+
+# The maximum length for each command. 128 bytes by default.
+# value: number
+MAXLEN_COMMAND_INPUT: 128
+
+# The maximum number of commands in one command mail.
+# The variable \$MAXNUM_COMMAND_INPUT controls this.
+# If the value is 3, fml permits 3 commands in one command mail.
+# 0 or NULL implies infinite (default).
+# value: number
+MAXNUM_COMMAND_INPUT:
+
+
+# "# chaddr" command name aliases
+# value: regexp string
+CHADDR_KEYWORD: chaddr|change\-address|change
+
+# choise of addresses to return for "chaddr" command reply
+# value: newaddr curaddr maintainer
+CHADDR_REPLY_TO: newaddr curaddr
+
+# choise of addresses to return for "admin chaddr" command reply
+# value: newaddr curaddr maintainer
+ADMIN_CHADDR_REPLY_TO: newaddr curaddr
+
+# ## Sub Section: mget ##
+# The default mode of "mget" without mode (default is "tar.gz" form).
+# $MGET_TEXT_MODE_DEFAULT is used by &SendFileBySplit
+# value: mode string
+MGET_MODE_DEFAULT:
+MGET_TEXT_MODE_DEFAULT:
+
+# The reply for "mget" commands sends long reply mails as splitten mails
+# by the unit $MAIL_LENGTH_LIMIT lines once at $SLEEPTIME secs..
+# value: number
+MAIL_LENGTH_LIMIT: 1000
+SLEEPTIME: 60
+
+# almost obsolete
+# special case of "mget" routine uses these variables.
+# It is not user defined variable.
+# See doc/tutorial and libfop.pl for the detail.
+# You change MIME/Multipart default.
+# value: string
+MIME_VERSION:
+MIME_CONTENT_TYPE:
+MIME_MULTIPART_BOUNDARY:
+MIME_MULTIPART_CLOSE_DELIMITER:
+MIME_MULTIPART_DELIMITER:
+MIME_MULTIPART_PREAMBLE:
+MIME_MULTIPART_TRAILER:
+
+# Japanese specific
+# sjis conversion in "mget ish" mode.
+# value: 1/0
+USE_SJIS_IN_ISH:
+
+# RFC1153 configurations; see doc/tutorial for the detail
+# value: number
+RFC1153_ISSUE:
+
+# value: number / string
+RFC1153_VOL:
+
+# value: filename string
+RFC1153_SEQUENCE_FILE:
+
+# ## Sub Section: MTA specific ##
+# qmail specific extension
+# To send "get 1" to ml-ctl@domain is equivalent to that
+# send anything to ml-get-1@domain if this variable is defined.
+# value: 1/0
+USE_DOT_QMAIL_EXT: 0
+
+# ## Sub Section: Headers of reply from FML ##
+# obsolete
+# For the reply for commands from fml,
+# we force Reply-To: $FORCE_COMMAND_REPLY_TO ?(default is $CONTROL_ADDRESS)
+# value: string
+FORCE_COMMAND_REPLY_TO:
+
+# Subject template in "mget" reply.
+# automatic substitute is done before send the reply; For example,
+# Subject: result for mget [last:3 tar + gzip] (1/1) (Elena Lolabrigita ML)
+#
+# _DOC_MODE_ <=> [last:10 tar + gzip]
+# _PART_ <=> (1/4)
+# _ML_FN_ <=> $ML_FN (here is "(Elena Lolabrigita ML)")
+#
+# $NOT_SHOW_DOCMODE is obsolete, it equals you discard _PART_.
+#
+# value: string
+MGET_SUBJECT_TEMPLATE: result for mget _DOC_MODE_ _PART_ _ML_FN_
+
+# send error message to Reply-To: ? or From: ?
+# (Of course From: if Reply-To: is not defined).
+# If $MESSAGE_RETURN_ADDR_POLICY is null,
+# it implies we prefer Reply-To: (by default).
+# value: from / reply-to
+MESSAGE_RETURN_ADDR_POLICY: reply-to
+
+#####################################################################
+# ### Section: Digest/Matome Okuri Configurations ###
+#
+# $MSEND_MODE_DEFAULT is the default of msend (when e.g. m=3)
+# and the format is the same as $MGET_MODE_DEFAULT.
+# which is "tar.gz" format.
+
+# Subject template in Digest/matome okuri.
+# automatic substitute is done before send the reply; For example,
+# Digest -Matome Okuri- Article 768 [last:10 tar + gzip] (1/1) (Elena ML)
+#
+# _ARTICLE_RANGE_ <=> Article 768
+# _DOC_MODE_ <=> [last:10 tar + gzip]
+# _PART_ <=> (1/4)
+# _ML_FN_ <=> $ML_FN (here is "(Elena ML)")
+#
+# $NOT_SHOW_DOCMODE is obsolete, it equals you discard _PART_.
+#
+# value: string
+MSEND_SUBJECT_TEMPLATE: Digest _ARTICLE_RANGE_ _PART_ _ML_FN_
+
+
+# Digest/Matome Okuri rc file
+# value: filename string
+MSEND_RC: $VARLOG_DIR/msendrc
+
+# rfc1153 or rfc934
+# obsoletes $USE_RFC1153, $USE_RFC1153_DIGEST, $USE_RFC934
+# value: mode string
+MSEND_MODE_DEFAULT:
+
+# Subject:
+# value: string
+MSEND_DEFAULT_SUBJECT:
+
+# If no articles to send, we send "no traffic" to the member of $MAIL_LIST
+# with the subject $MSEND_NOTIFICATION_SUBJECT if $MSEND_NOTIFICATION is set.
+# value: 1/0
+MSEND_NOTIFICATION:
+
+# value: string
+MSEND_NOTIFICATION_SUBJECT:
+
+# not require X-ML-Info: in the "mget";
+# value: 1/0
+MSEND_NOT_USE_X_ML_INFO:
+
+# not do newsyslog in the Sundays morning. $NOT_USE_NEWSYSLOG (CFVersion 2)
+# value: 1/0
+MSEND_NOT_USE_NEWSYSLOG:
+
+
+#####################################################################
+# ### Section: Other Files for Configurations and Logs ###
+
+# cache file of Message-ID: loop check
+# value: filename string
+LOG_MESSAGE_ID: $VARRUN_DIR/msgidcache
+
+# cache size of Message-ID: negative cache
+# value: number
+MESSAGE_ID_CACHE_BUFSIZE: 6000
+
+# cache file of mailbody cksum mail loop check
+# value: filename string
+LOG_MAILBODY_CKSUM: $VARRUN_DIR/bodycksumcache
+
+# $MEMBER_LIST member who can post and use commands
+# $ACTIVE_LIST delivery list
+# value: filename string
+MEMBER_LIST: $DIR/members
+ACTIVE_LIST: $DIR/actives
+
+
+# ATTENTION: only "guide" is also send to strangers
+#
+# $GUIDE_FILE sent by "# guide" command,
+# $OBJECTIVE_FILE sent by "# objective" command
+# $HELP_FILE sent by "# help" command
+# value: filename string
+GUIDE_FILE: $DIR/guide
+OBJECTIVE_FILE: $DIR/objective
+HELP_FILE: $DIR/help
+
+# When fml rejects mail from someone, fml sends back this file to the sender.
+# value: filename string
+DENY_FILE: $DIR/deny
+
+# $LOGFILE log file
+# $MGET_LOGFILE log file for mget routine, $LOGFILE in default.
+# value: filename string
+LOGFILE: $DIR/log
+MGET_LOGFILE: $DIR/log
+
+# suffix extension if defined. For example log.2000
+# For example $LOGFILE_SUFFIX = ".%C%y", file name is "log.2000".
+# See UNIX manual "strftime(3)" for more details on format.
+# value: srtings
+LOGFILE_SUFFIX:
+
+# when -d2 ($debug = 2), logs this file for convenience.
+# value: filename string
+DEBUG_LOGFILE: $DIR/log.debug
+
+# article summary file
+# value: filename string
+SUMMARY_FILE: $DIR/summary
+
+# sequence number file
+# value: filename string
+SEQUENCE_FILE: $DIR/seq
+
+# rename(2) lock (liblock.pl)
+# value: filename string
+LOCK_FILE: $VARRUN_DIR/lockfile.v7
+
+
+#####################################################################
+# ### Section: SMTP and Delivery ###
+#
+# fml sends mail via SMTP to mail server $HOST:$PORT/tcp.
+# The default host is one fml runs on itself.
+# $HOST is an arbitrary host (if you can access it) which runs MTA
+# (e.g. sendmail). If the Mailing List Server machine is week,
+# you can use the sendmail of another powerful host(host).
+
+# always try IPv6 connection by default
+# value: 1/0
+USE_INET6: 1
+
+# value: string
+HOST: localhost
+
+# value: number
+PORT: 25
+
+# enforce MAIL FROM:<$SMTP_SENDER> if defined
+# value: address
+SMTP_SENDER:
+
+# IF $NOT_TRACE_SMTP IS 1 (default 0), we log the SMTP session to $SMTP_LOG
+# value: filename string
+SMTP_LOG: $VARLOG_DIR/_smtplog
+
+# rotate use of var/log/_smtplog.$i (where $i is the number)
+# value: 1/0
+USE_SMTP_LOG_ROTATE: 1
+
+# expire how old _smtplog.$date
+# value: number
+SMTP_LOG_ROTATE_EXPIRE_LIMIT: 90
+
+# the number of var/log/_smtplog.$i files. This is the value of modulus.
+# value: number
+NUM_SMTP_LOG_ROTATE: 8
+
+# type of suffix for _smtplog
+# value: number / day
+SMTP_LOG_ROTATE_TYPE: number
+
+
+# IF $NOT_TRACE_SMTP IS 1 (default 0), we log the SMTP session to $SMTP_LOG
+# IF $TRACE_SMTP_DELAY IS 1, we log the delay of response between SMTP server.
+# value: 1/0
+NOT_TRACE_SMTP: 0
+TRACE_SMTP_DELAY:
+
+# smtp profile for debug
+# value: 1/0
+USE_SMTP_PROFILE: 0
+
+# You can use plural MTA for parallel delivery.
+# $MCI_SMTP_HOSTS is the number of hosts you use.
+# @HOSTS is the array of hosts you use.
+# value: number
+MCI_SMTP_HOSTS:
+
+# obsolete today
+# value: string
+DEFAULT_RELAY_SERVER:
+
+# obsolete today
+# CF (by motonori@wide.ad.jp) base relay control if $RELEY_HACK is on.
+# with %RELAY_GW, %RELAY_NGW, %RELAY_NGW_DOM (set in librelayhack.pl)
+# $CF_DEF is CF's configuration files;
+# **ATTENTION**; we do not use sendmail.cf but CF's configuration.
+# value: 1/0
+RELAY_HACK:
+
+# obsolete today
+# value: filename string
+CF_DEF:
+
+# list-outgoing@domain is a real distribution address. Fml does not
+# sends article to all recipient list to MTA but only this address.
+# MTA expands address list and distribute article.
+# In default fml does not use this but effective for poor machine like
+# 486 16M ;-)
+#
+# fml -> list-outgoing -> expanded and distributed to $ACTIVE_LIST members
+#
+# XXX dedicated to minmin sama:D
+#
+# value: 1/0
+USE_OUTGOING_ADDRESS:
+
+# list-outgoing@domain is a real distribution address. Fml does not
+# sends article to all recipient list to MTA but only this address.
+# MTA expands address list and distribute article.
+# In default fml does not use this but effective for poor machine like
+# 486 16M ;-)
+#
+# fml -> list-outgoing -> expanded and distributed to $ACTIVE_LIST members
+#
+# value: string
+OUTGOING_ADDRESS:
+
+# VERPs: Variable Envelope Return Paths. See qmail documents for more details.
+# XXX you need additional configuration so that MTA receives VERPs addresses.
+#
+# value: 1/0
+USE_VERP:
+
+# postfix $verp_delimiters
+# value: string
+POSTFIX_VERP_DELIMITERS: +=
+
+# try VERPs once a day for efficient delivery.
+# value: 1/0
+TRY_VERP_PER_DAY:
+
+# we use ESMTP pipelining mechanism by default.
+# value: 1/0
+NOT_USE_ESMTP_PIPELINING: 0
+
+# smtpfeed special option which provides VERPs like error track trick.
+# value: 1/0
+USE_SMTPFEED_F_OPTION:
+
+#####################################################################
+# ### Section: MISC ###
+
+# ## Sub Section: MIME ##
+# Mime Decode On if $USE_MIME for ISO-2022-JP statements.
+# e.g. Decode $SUMMARY_FILE subject and so on.
+# default 1 from 2.1C#13
+# value: 1/0
+USE_MIME: 1
+
+# special hack to treat broken MIME ending (e.g. by MacOS X)
+# value: 1/0
+MIME_BROKEN_ENCODING_FIXUP: 0
+
+# obsolete and Japanese specific
+# NOT RECOMMENDED OPTION:
+# articles in the spool are MIME-DECODED for poor environment users.
+# These articles may be insane in strict MIME oriented mail interfaces.
+# value: 1/0
+MIME_DECODED_ARTICLE:
+
+
+# ## Sub Section: Preamble and Trailer for Mail Body ##
+# FOR COMMAND RESULT MAIL,
+# you always append some message in the command reply mail body.
+# For example, the mail body becomes
+#
+# $PREAMBLE_MAILBODY
+# original body
+# $TRAILER_MAILBODY
+#
+# If you use the article distributed in ML, you must use some hooks.
+# For example, append this in the last of config.ph (but before 1;)
+# $SMTP_OPEN_HOOK = q#
+# $e{'Body'} = $PREAMBLE_MAILBODY. $e{'Body'} .$TRAILER_MAILBODY;
+# #;
+# Please see doc/tutorial for our policy behind this.
+#
+# value: string
+PREAMBLE_MAILBODY:
+TRAILER_MAILBODY:
+
+
+# ## Sub Section: Reply Configurations ##
+# In the last of e.g. "command status report", we add
+# "$GOOD_BYE_PHRASE $FACE_MARK" :-) in the last of the reply.
+# So the standard form is
+#
+# message
+# FYI message generated by the function $PROC_GEN_INFO.
+# $GOOD_BYE_PHRASE $FACE_MARK
+# for example, " --$MAIL_LIST, Be Seeing You!"
+#
+# value: string
+GOOD_BYE_PHRASE:
+FACE_MARK:
+
+# value: function name string
+PROC_GEN_INFO: GenInfo
+
+
+# ## Sub Section: Lock Algorithm ##
+# use flock for lock algorithm if $USE_FLOCK is on.
+# see flock(2), alarm(3). If not, we rename(2) base lock.
+# The timeout of rename(2) lock is rand(3) * $MAX_TIMEOUT secs.
+# value: 1/0
+USE_FLOCK: 1
+
+# In rename(2) base lock case,
+# the timeout of rename(2) lock is rand(3) * $MAX_TIMEOUT secs.
+# value: number
+MAX_TIMEOUT: 200
+
+
+# ## Sub Section: misc ##
+# Not spooling of articles (default is "spooling")
+# It may be used for some secret ML, ML on diskless machihe;-), ISP services
+# value: 1/0
+NOT_USE_SPOOL:
+
+# "$CFVersion < 2" equals "$COMPAT_FML15 = 1;"
+# value: 1/0
+COMPAT_FML15: 0
+
+# newsyslog library maximum number. default is 4.
+# log.4 is removed and
+# log.3 -> log.4, log.2 -> log.3, log.1 -> log.2, log.0 -> log.1, log -> log.0
+# value: number
+NEWSYSLOG_MAX: 4
+
+# not used generally. This is "cron of fml package" configuration.
+# $CRONTAB configuratoin file
+# $CRON_PIDFILE pid file
+# value: filename string
+CRONTAB: etc/crontab
+CRON_PIDFILE: var/run/cron.pid
+
+# not used generally. This is "cron of fml package" configuration.
+# cron notifies what is done to $MAINTAINER.
+# value: 1/0
+CRON_NOTIFY: 1
+
+# cross operations
+# value: 1/0
+USE_CROSSPOST:
+
+# Under $USE_MEMBER_NAME is set, commands on member lists
+# are with Gecos Fields which are extracted from From: field
+# in the time of auto registration.
+# Author: Masayuki FUKUI <fukui@sonic.nm.fujitsu.co.jp>
+# value: 1/0
+USE_MEMBER_NAME:
+
+
+#####################################################################
+# ### Section: Expire and Archive ###
+
+# If $USE_EXPIRE is set, we do expire articles in $SPOOL_DIR.
+# The default is "no". You need to remove articles if you do so.
+#
+# Expiration limit is $EXPIRE_LIMIT, which syntax is
+# e.g. 7days(days) or 100 (articles left in spool)
+# If you re-generate $SUMMARY_FILE, set $EXPIRE_SUMMARY
+#
+# value: 1/0
+USE_EXPIRE: 0
+
+# expire summary file when $USE_EXPIRE is enabled.
+# value: 1/0
+EXPIRE_SUMMARY:
+
+# expire how old articles
+# value: number / ( number + day/week/month )
+EXPIRE_LIMIT: 7days
+
+# If $USE_ARCHIVE is on, we do automatically archive, which is
+# spool/articles is aggregated to e.g. "$ARCHIVE_DIR/100.tar.gz"
+# by the unit $ARCHIVE_UNIT.
+#
+# the location of store (when $USE_ARCHIVE on): $ARCHIVE_DIR
+# the search path order : $ARCHIVE_DIR @ARCHIVE_DIR
+#
+# If @ARCHIVE_DIR is set and $ARCHIVE_DIR is not set,
+# we use $ARCHIVE_DIR[0] as the $ARCHIVE_DIR.
+#
+# value: 1/0
+USE_ARCHIVE: 0
+
+# spool/articles is aggregated to "$ARCHIVE_DIR/100.tar.gz"
+# by the unit $ARCHIVE_UNIT.
+# value: number
+ARCHIVE_UNIT: 100
+DEFAULT_ARCHIVE_UNIT: 100
+
+# spool/articles is aggregated to "$ARCHIVE_DIR/100.tar.gz"
+# value: directory string
+ARCHIVE_DIR: var/archive
+
+# "index" command
+# In default we scan spool and archives and reports, but
+# send back $INDEX_FILE if $INDEX_FILE exists.
+# value: filename string
+INDEX_FILE: $DIR/index
+
+# show directory name in "index" command result? default is "no".
+# value: 1/0
+INDEX_SHOW_DIRNAME: 0
+
+
+# ### Section: Library Commands ###
+#
+# "library" command is a small mailing list within mailing list.
+# It is useful to exchange some files.
+# You can put and get files by "library" commands.
+#
+# In default, @DenyProcedure = ('library'); So 'library' command is disabled;
+# Set @DenyProcedure = ('') in LOCAL CONFIG part (the last of config.ph).
+#
+# value: directory string
+LIBRARY_DIR: var/library
+LIBRARY_ARCHIVE_DIR: archive
+
+# ## Sub Section: newsyslog(8) ##
+# to turn over \$DIR/log
+# value: number
+LOGFILE_NEWSYSLOG_LIMIT:
+
+# to turn over $ACTIVE_LIST and $MEMBER_LIST if the file size over this value,
+# default 150K = 30*5000
+# value: number / (number + K/M)
+AMLIST_NEWSYSLOG_LIMIT: 150K
+
+
+# ### Section: Html Configurations ###
+#
+# HTML article generator: Please see doc/tutorial for the details.
+# AUTO_HTML_GEN == AUTOmatic HTML GENeration
+# if $AUTO_HTML_GEN, we generate html'ed articles in $DIR/$HTML_DIR
+# value: 1/0
+AUTO_HTML_GEN:
+
+# use Mail::HTML::Lite in fml-devel (fml next generation).
+# value: 1/0
+USE_NEW_HTML_GEN:
+
+# value: 1/0
+HTML_THREAD: 1
+
+# value: 1/0
+HTML_INDEX_REVERSE_ORDER: 1
+
+# generate html articles under htdocs/
+# value: directory string
+HTML_DIR: htdocs
+
+# expire old html articles if non-zero value is defined.
+# not expire in default since the value is 0 or NULL.
+# options: Please see doc/tutorial for the details.
+# value: number
+HTML_EXPIRE_LIMIT:
+
+# title of index.html
+# value: string
+HTML_INDEX_TITLE:
+
+# cache file
+# value: filename string
+HTML_DATA_CACHE:
+HTML_DATA_THREAD:
+
+# filter in generate html file
+# value: filename string
+HTML_OUTPUT_FILTER:
+
+# stylesheet file name (see HTML 4.0)
+# "fml.css" is default.
+# value: filename string
+HTML_STYLESHEET_BASENAME:
+
+# threading algorithm type
+# value: default / prefer-in-reply-to
+HTML_THREAD_REF_TYPE: prefer-in-reply-to
+
+# sort type for entries of thread.html
+# default is "time" from past to latest,
+# "reverse-number" is from latest to past.
+# value: "" / reverse-number
+HTML_THREAD_SORT_TYPE:
+
+# $subdir type of htdocs/$subdir/
+# value: number / day / week / month / infinite
+HTML_INDEX_UNIT: day
+
+# threading type
+# value: "" / UL
+HTML_INDENT_STYLE: UL
+
+# image file embedding style
+# value: A / IMAGE
+HTML_MULTIPART_IMAGE_REF_TYPE:
+
+# html file umask
+# value: "" / umask
+HTML_DEFAULT_UMASK:
+HTML_WRITE_UMASK:
+
+
+# ### Section: Interface to DataBase Management System ###
+
+# value: 1/0
+USE_DATABASE:
+
+# value:
+DATABASE_METHOD:
+
+# value:
+DATABASE_CACHE_FILE_SUFFIX:
+
+# value: filename
+DATABASE_DRIVER: toymodel.pl
+
+# attributes to inform database drivers
+# value:
+DATABASE_DRIVER_ATTRIBUTES: always_lower_domain
+
+# ## Sub Section: RDBMS
+
+# value: string
+SQL_SERVER_HOST:
+
+# value: number
+SQL_SERVER_PORT:
+
+# value: string
+SQL_SERVER_USER:
+
+# value: string
+SQL_DATABASE_NAME:
+
+# value: string
+SQL_SERVER_PASSWORD:
+
+# value: string
+SQL_DATABASE_NAME:
+
+
+# ## Sub Section: LDAP
+
+# value: string
+LDAP_SERVER_HOST:
+LDAP_SERVER_PASSWORD:
+LDAP_SEARCH_BASE:
+LDAP_SERVER_BIND:
+LDAP_QUERY_FILTER:
+
+
+
+# ### Section: Interface to other Services (http,ftp,gopher,www) ###
+
+# "whois": default is search of local database file
+# If "whois -h host" syntax is given, we connects "host" whois server.
+# If $USE_WHOIS set, you can use local database $WHOIS_DB.
+# If you have local whois server (inetd), you can also use it.
+# If "whois help" is given, send back $WHOIS_HELP_FILE if it exists.
+#
+# value: 1/0
+USE_WHOIS:
+
+# value: string
+DEFAULT_WHOIS_SERVER:
+
+# value: filename string
+WHOIS_DB: $VARDB_DIR/whoisdb
+WHOIS_HELP_FILE:
+
+# do Japanese conversion or not? for the result from whois server
+# value: 1/0
+WHOIS_JCODE_P: 1
+
+
+#####################################################################
+# ### Section: Architecture Dependence ###
+
+# cpu-type manufacturer operating-system by GNU config.guess ("makefml")
+# value: string
+CPU_TYPE_MANUFACTURER_OS:
+
+# struct sockaddr
+# It is system dependent.
+# value: string
+STRUCT_SOCKADDR: S n a4 x8
+
+# flock(2) system call; please see "/usr/include/sys/file.h"
+# value: number
+LOCK_SH: 1
+LOCK_EX: 2
+LOCK_NB: 4
+LOCK_UN: 8
+
+# enforce solaris 2 compatible
+# value: 1/0
+COMPAT_SOLARIS2:
+
+# used in cron of fml package
+# we can emulate daemon(3) ?
+# value: 1/0
+NOT_USE_TIOCNOTTY:
+
+# On Unix, always yes set 1 in &SetDefaults;
+# value: 1/0
+HAS_GETPWUID: &is_unix
+
+# On Unix, always yes set 1 in &SetDefaults;
+# value: 1/0
+HAS_GETPWGID: &is_unix
+
+# On Unix, always yes set 1 in &SetDefaults;
+# value: 1/0
+HAS_ALARM: &is_unix
+
+# On Unix, always yes set 1 in &SetDefaults;
+# value: 1/0
+UNISTD: &is_unix
+
+
+# program paths fml uses
+# Usually "makefml newml" checks and expands this value.
+# value: filename string
+SENDMAIL: &path(sendmail)
+TAR: &path(tar) cf -
+UUENCODE: &path(uuencode)
+COMPRESS: &path(gzip) -c
+ZCAT: &path(gzcat:zcat:gzip\s-cd)
+LHA: &path(lha)
+ISH: &path(ish)
+ZIP: &path(zip)
+BZIP2: &path(bzip2)
+PGP: &path(pgp)
+PGP5: &path(pgp5)
+PGPE: &path(pgpe)
+PGPK: &path(pgpk)
+PGPS: &path(pgps)
+PGPV: &path(pgpv)
+GPG: &path(gpg)
+RCS: &path(rcs)
+CI: &path(ci)
+BASE64_DECODE:
+BASE64_ENCODE:
+MD5: &path(md5:md5sum)
+
+
+LOCAL_CONFIG:
+
+# ## Sub Section: Available Hooks ##
+# You can set customized hooks here. See doc/tutorial's chapter "HOOKS".
+# For example available hooks are
+# $START_HOOK, $DISTRIBUTE_START_HOOK, $SMTP_OPEN_HOOK
+# $HEADER_ADD_HOOK, $DISTRIBUTE_CLOSE_HOOK, $DISTRIBUTE_END_HOOK
+# $ADMIN_COMMAND_HOOK, $RFC1153_CUSTOM_HOOK, $MSEND_OPT_HOOK
+# $FML_EXIT_HOOK, $FML_EXIT_PROG, $MSEND_START_HOOK
+# $REPORT_HEADER_CONFIG_HOOK, $AUTO_REGISTRATION_HOOK, $MSEND_HEADER_HOOK
+# $SMTP_CLOSE_HOOK, $MODE_BIFURCATE_HOOK. $HTML_TITLE_HOOK
+# $PROCEDURE_CONFIG_HOOK, $ADMIN_PROCEDURE_CONFIG_HOOK, $COMMAND_HOOK
+#
+# ## Sub Section: Available Arrays and Assoc-Arrays ##
+# Also you can set here arrays and association arrays:
+#
+# @MEMBER_LIST, @ACTIVE_LIST, @CROSSPOST_CF
+# @HOST, @HOSTS, @MAIL_LIST_ALIASES, @HdrFieldsOrder
+#
+# value: perl statement
diff --git a/gnu/dist/fml4/cf/MANIFEST.Japanese b/gnu/dist/fml4/cf/MANIFEST.Japanese
new file mode 100644
index 00000000..b7ebba7b
--- /dev/null
+++ b/gnu/dist/fml4/cf/MANIFEST.Japanese
@@ -0,0 +1,1692 @@
+.translate value: string ʸ»úÎó
+.translate value: number ¿ô»ú
+.translate value: regexp Àµµ¬É½¸½
+.translate value: value: ÊÑ¿ô¤¬¤È¤ê¤¦¤ëÃÍ:
+
+INFO:
+# FML Configurable Variable Definitions
+#
+# Copyright (C) 1993-2000 Ken'ichi Fukamachi
+# All rights reserved.
+# 1993-1996 fukachan@phys.titech.ac.jp
+# 1996-2000 fukachan@sapporo.iij.ad.jp
+#
+# FML is free software; you can redistribute it and/or modify
+# it under the terms of GNU General Public License.
+# See the file COPYING for more details.
+#
+# $Id: MANIFEST.Japanese,v 1.11 2003/12/06 04:06:30 fukachan Exp $
+#
+
+
+#####################################################################
+# ### Section: DNS and Other Fundamental (CF Version, debug, Language) ###
+# config.ph configuration version
+.j Section::Fundamental ´ðËÜŪ¤ÊÀßÄê
+.j config.ph¤Î¥Ð¡¼¥¸¥ç¥ó
+CFVersion: 5.0
+
+# global debug option. if non-nil, debug mode.
+# In debug mode, NOT do distribution
+.j ¥Ç¥Ð¥Ã¥°¥Õ¥é¥Ã¥°: 0 °Ê³°¤Ë¤¹¤ë¤È¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤Ë¤Ê¤ë¡£
+# value: 1/0
+debug: 0
+
+# for further extension: FML 2.1 DOES NOT use this
+# except for files (e.g. help, welcome, ...) created in "makefml newml"
+.j ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë(help¤Ê¤É)¤Î¸À¸ì»ØÄê
+# value: Japanese/English
+LANGUAGE: Japanese
+
+# &Mesg() tries to translate thie language.
+.j ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î¸À¸ì»ØÄê
+# value: Japanese/English
+MESSAGE_LANGUAGE:
+
+# ## Sub Section: DNS ##
+.j Section::Fundamental::DNS ´ðËÜŪ¤ÊÀßÄê(DNS)
+# DNS setting s automatically checked by makefml but check them, please
+#
+# DOMAINNAME the domain name e.g. fml.org
+# FQDN Fully Qualified Domain Name e.g. beth.fml.org
+#
+.j fml ¤Îư¤¤¤Æ¤¤¤ë¥Þ¥·¥ó¤Î̾Á°
+.j DOMAINNAME ¥É¥á¥¤¥ó̾ Îã: fml.org
+.j FQDN ´°Á´¤Ê¥Þ¥·¥ó̾(Fully Qualified Domain Name) Îã: beth.fml.org
+.j Ãí: virtual domain¤Î¾ì¹ç¤Ï virtual ¤Î̾Á°¤Ë¤Ê¤ë¤À¤í¤¦
+# value: string
+DOMAINNAME: &fix:dn phys.titech.ac.jp
+FQDN: &fix:fqdn axion.phys.titech.ac.jp
+
+
+#####################################################################
+# ### Section: Mailing List Policy (for Post, Commands), Maintainer ###
+#
+# $MAIL_LIST is THE ADDRESS FOR POST.
+# $PERMIT_POST_FROM is "anyone", "members_only" or "moderator",
+# which permit post from who? If not-member posts is rejected,
+# THE FUNCTION $REJECT_POST_HANDLER is applied.
+# $REJECT_POST_HANDLER is "reject", "auto_subscribe" or "ignore"
+# you can use "auto_regist" used in fml 2.x.
+#
+# **ATTENTION**: "reject" implies just "NOT REGISTERED IN $MEMBER_LIST".
+# See "Section: Security" for positive reject against e.g. spammers.
+#
+.j $MAIL_LIST ¤Ï¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ê¡¢Åê¹Æ¤¹¤ë¥¢¥É¥ì¥¹¤Ç¤â¤¢¤ë
+.j
+.j $PERMIT_POST_FROM ¤ÏÅê¹Æ¤Ç¤­¤ë¿Í¤Î¼ïÎà¤ò»ØÄꤹ¤ë¡£¼è¤êÆÀ¤ëÃͤÏ
+.j
+.j anyone ï¤Ç¤âÅê¹Æ²Äǽ
+.j members_only £Í£Ì¤Î¥á¥ó¥Ð¡¼¤È¤·¤ÆÅÐÏ¿¤·¤Æ¤¢¤ë¿Í (¥Ç¥Õ¥©¡¼¥ë¥È)
+.j moderator ¥â¥Ç¥ì¡¼¥¿¤È¤·¤ÆÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¿Í
+.j
+.j ¤â¤·¥á¥ó¥Ð¡¼°Ê³°¤¬Åê¹Æ¤·¤è¤¦¤È¤¹¤ë¤È$REJECT_POST_HANDLER¤¬Å¬ÍѤµ¤ì¤ë¡£
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï reject ¤ÇÅê¹Æ¤òµñÈݤ¹¤ë¡£
+.j
+.j reject Åê¹Æ¤òµñÈݤ¹¤ë¡£$DIR/deny ¥Õ¥¡¥¤¥ë¤òÁ÷¤êÊÖ¤¹
+.j auto_subscribe ¼«Æ°ÅÐÏ¿¥â¡¼¥É¤ËÆþ¤ë
+.j ignore ñ¤Ë¤½¤Î¥á¡¼¥ë¤ò̵»ë¤¹¤ë¡£²¿¤âµ¯¤³¤é¤Ê¤¤¡£
+.j
+# value: string
+MAIL_LIST: Elena@$FQDN
+PERMIT_POST_FROM: members_only
+REJECT_POST_HANDLER: reject
+
+
+# $CONTROL_ADDRESS is THE ADDRESS FOR COMMANDS.
+# $PERMIT_COMMAND_FROM is "anyone", "members_only" or "moderator",
+# which permit command from who? If not-member commands is rejected,
+# THE FUNCTION $REJECT_COMMAND_HANDLER is applied.
+# $REJECT_COMMAND_HANDLER is "reject", "auto_subscribe" or "ignore"
+# you can use "auto_regist" used in fml 2.x.
+#
+.j $CONTROL_ADDRESS ¤Ï¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Î¥³¥Þ¥ó¥ÉÍѤΥ¢¥É¥ì¥¹
+.j
+.j $PERMIT_COMMAND_FROM ¤Ï¥³¥Þ¥ó¥É¤¬»È¤¨¤ë¿Í¤Î¼ïÎà¤ò»ØÄꤹ¤ë¡£¼è¤êÆÀ¤ëÃͤÏ
+.j
+.j anyone ï¤Ç¤âÅê¹Æ²Äǽ
+.j members_only £Í£Ì¤Î¥á¥ó¥Ð¡¼¤È¤·¤ÆÅÐÏ¿¤·¤Æ¤¢¤ë¿Í (¥Ç¥Õ¥©¡¼¥ë¥È)
+.j moderator ¥â¥Ç¥ì¡¼¥¿¤È¤·¤ÆÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¿Í
+.j
+.j ¤â¤·¥á¥ó¥Ð¡¼°Ê³°¤¬Åê¹Æ¤·¤è¤¦¤È¤¹¤ë¤È$REJECT_COMMAND_HANDLER¤¬Å¬ÍѤµ¤ì¤ë¡£
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï reject ¤Ç¥³¥Þ¥ó¥É¤òµñÈݤ¹¤ë¡£
+.j
+.j reject Åê¹Æ¤òµñÈݤ¹¤ë¡£$DIR/deny ¥Õ¥¡¥¤¥ë¤òÁ÷¤êÊÖ¤¹
+.j auto_subscribe ¼«Æ°ÅÐÏ¿¥â¡¼¥É¤ËÆþ¤ë
+.j ignore ñ¤Ë¤½¤Î¥á¡¼¥ë¤ò̵»ë¤¹¤ë¡£²¿¤âµ¯¤³¤é¤Ê¤¤¡£
+.j
+.j Ãí°Õ: ¤¤¤ï¤æ¤ë"¼«Æ°ÅÐÏ¿"¤ÏÄ̾ï $REJECT_COMMAND_HANDLER ¤ÎÃͤò¤ò
+.j auto_subscribe ¤Ë¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
+.j
+# value: string
+CONTROL_ADDRESS: Elena-ctl@$FQDN
+PERMIT_COMMAND_FROM: members_only
+REJECT_COMMAND_HANDLER: reject
+
+# When $MAIL_LIST_ACCEPT_COMMAND = 1,
+# both $MAIL_LIST and $CONTROL_ADDRESS accept commands
+# which format is "# command".
+.j hml¸ß´¹¥â¡¼¥É
+# value: 1/0
+MAIL_LIST_ACCEPT_COMMAND:
+
+# ## Sub Section: Maintainer ##
+# $MAINTAINER != $MAIL_LIST IS REQUIRED AGAINST MAIL LOOP
+.j $MAINTAINER ¤Ï£Í£Ì¤Î´ÉÍý¼Ô¤Î¥¢¥É¥ì¥¹
+.j $MAINTAINER_SIGNATURE ¤Ï¤½¤Î¥¢¥É¥ì¥¹¤Î̾Á°¤ËÁêÅö¤¹¤ëÉôʬ¤Ë¤Ê¤ë
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï$MAINTAINER_SIGNATURE ¤Ï¤Ê¤·
+# value: string
+MAINTAINER: Elena-admin@$FQDN
+MAINTAINER_SIGNATURE:
+
+# ## Sub Section: ML_FN ##
+# We expand
+# To: $MAIL_LIST $ML_FN
+# =>
+# To: Elena@fml.org (Elena Lolabrigita ML)
+.j ¥Ø¥Ã¥À¤Ë¸½¤ì¤ë£Í£Ì¤Î̾Á°
+.j fml 3.0 ¤Ç¤Ï¥³¥Þ¥ó¥É¤Î·ë²Ì¤Ê¤É¤Ç¤ªÌܤˤ«¤«¤ë¤³¤È¤Ë¤Ê¤ë
+.j
+.j Îò»Ë: fml 2.1 °ÊÁ°¤Ç¤ÏÅê¹Æ¥á¡¼¥ë¤Î¥Ø¥Ã¥À¤Ï¶¯À©Åª¤Ë
+.j To: $MAIL_LIST $ML_FN
+.j ¤Ë¤µ¤ì¤Æ¤¤¤¿¡£¤³¤ì¤Ï¾ï¤ËƱ¤¸¾ì½ê¤ËƱ¤¸¾ðÊó¤¬Íè¤ë¤è¤¦¤Ë¤È¤¤¤¦
+.j ÇÛθ¤Î¤â¤Î¤À¤Ã¤¿¡£3.0 ¤Î¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï¤½¤Î½ñ¤­´¹¤¨¤Ï¤Ê¤¤
+.j (=> $REWRITE_TO)
+# value: string
+ML_FN: (Elena Lolabrigita ML)
+
+
+#####################################################################
+# ### Section: Directory ###
+# We use fully pathed directory name => $FP_SPOOL_DIR(= $DIR/$SPOOL_DIR)
+# and relative path $SPOOL_DIR (e.g. spool)
+.j Section::Directory ¥Ç¥£¥ì¥¯¥È¥ê¹½À®
+.j
+.j $FP_ ¤Ç»Ï¤Þ¤ë¤â¤Î¤Ï full path
+.j ¤½¤¦¤Ç¤Ê¤¤¤â¤Î¤Ï $DIR °Ê²¼¤ÎÁêÂÐ path ¤Ç¤¢¤ë¡£
+.j
+.j Ãí: $FP_ÊÑ¿ô¤Ï½é´ü²½²¾Äê¤Ç¼«Æ°Åª¤ËÊä´Ö¤µ¤ìÀ¸À®¤µ¤ì¤ë¤Î¤Ç
+.j config.ph ¤Ç¤ÏÁêÂХѥ¹¤Î¤ß¤ò»ØÄꤹ¤ë¡£
+.j
+.j Ãí: tar ¤Ê¤ÉÁêÂХѥ¹¤òɬÍפȤ¹¤ë¤â¤Î¤¬¤¢¤ë¤«¤éÁêÂХѥ¹¤âɬÍפǤ¢¤ë
+
+# article spool directory
+.j µ­»ö¤òÊݴɤ¹¤ë¾ì½ê¡£°ìÄ̰ì¥Õ¥¡¥¤¥ë
+# value: directory string
+SPOOL_DIR: spool
+
+# tmp, after chdir, under DIR
+.j temporary
+# value: directory string
+TMP_DIR: tmp
+
+# LOG is /var/log (4.4BSD style)
+.j var/ ¤Ï"multi-purpose log, temporary, transient, and spool files"¤Ç¤¢¤ë
+.j var/log/ ¥í¥°¥Õ¥¡¥¤¥ë
+.j var/run/ pid ¥Õ¥¡¥¤¥ë¤Ê¤É¤Î¥·¥¹¥Æ¥à¾ðÊó
+.j var/db/ ¥Ç¡¼¥¿¥Ù¡¼¥¹
+.j
+# value: directory string
+VAR_DIR: var
+VARLOG_DIR: var/log
+VARRUN_DIR: var/run
+VARDB_DIR: var/db
+
+
+#####################################################################
+# ### Section: Manual Registration ###
+.j Section::ManualRegistration ¼êưÅÐÏ¿
+.j
+.j ManualRegistration ¤È¤¤¤¦Ì¾Á°¤Ïʶ¤é¤ï¤·¤¤¤¬
+.j ´ÉÍý¼Ô¤¬ÌÀ¼¨Åª¤ËÅÐÏ¿ºî¶È¤ò¤¹¤ë¾ì¹ç¤ò»Ø¤¹¡£¼«Æ°ÅÐÏ¿¤ÎÈ¿ÂÐ
+.j (¼«Æ°ÅÐÏ¿¤Ïfml¤¬¼«Æ°Åª¤ËÅÐÏ¿ºî¶È¤ò¹Ô¤Ê¤¦)¡£
+.j
+.j fml¤ËÁ÷¤é¤ì¤¿¡ÖÅÐÏ¿°ÍÍê¤Î¥á¡¼¥ë¡×¤Ï
+.j forward_to_admin £Í£Ì´ÉÍý¼Ô¤ØÅÐÏ¿¤Î°ÍÍ꤬¤¢¤Ã¤¿¤³¤È¤òÅÁ¤¨¤ë
+.j confirmation ¤½¤ÎÁ÷¤ê¼ç¤ËÅÐÏ¿¤·¤ÆÎɤ¤¤«³Îǧ¤·
+.j ³Îǧ¸å¤Ë£Í£Ì´ÉÍý¼Ô¤ØÅÐÏ¿¤Î°ÍÍ꤬¤¢¤Ã¤¿¤³¤È¤òÅÁ¤¨¤ë
+.j ¤½¤Î¸å£Í£Ì¤Î´ÉÍý¼Ô¤Ï
+.j fml¤ÎÁö¤ë¥Û¥¹¥È¾å¤Ç makefml add
+.j admin¥³¥Þ¥ó¥É
+.j ¤Ê¤É¤Îºî¶È¤ò¤¹¤ë
+.j
+# only support 'confirmation' or 'forward_to_admin'
+# I call this "5 way hand shake".
+# value: confirmation/forward_to_admin
+MANUAL_REGISTRATION_TYPE: confirmation
+
+.j Á÷¤ê¼ç¤Ë³Îǧ¥á¡¼¥ë¤òÁ÷¤ëºÝ¤Î¥á¡¼¥ë¤Î¥Æ¥ó¥×¥ì¡¼¥È
+# value: directory string
+MANUAL_REGISTRATION_CONFIRMATION_FILE: $DIR/confirm.msub
+
+#####################################################################
+# ### Section: Automatic Registration ###
+.j
+.j Section::AutomaticRegistration ¼«Æ°ÅÐÏ¿
+.j
+# If at least either REJECT_{POST,COMMAND}_HANDLER is "auto_subscribe"
+# or "auto_regist",
+# PLEASE SELECT THE TYPE OF AUTOMATIC REGISTRATION
+.j ¼«Æ°ÅÐÏ¿¤Î¼ïÎà
+.j confirmation Á÷¤ê¼ç¤ËÅÐÏ¿°Õ»×¤Î³Îǧ¤òµá¤á¤ë¡£¥Ç¥Õ¥©¡¼¥ë¥È
+.j subject ³Îǧ¤òµá¤á¤Ê¤¤¡£subject: ¤Ë¥³¥Þ¥ó¥É¤ò½ñ¤¯
+.j body ³Îǧ¤òµá¤á¤Ê¤¤¡£¥á¡¼¥ëËÜʸ¤Ë¥³¥Þ¥ó¥É¤ò½ñ¤¯
+.j no-keyword ³Îǧ¤òµá¤á¤Ê¤¤¡£¥­¡¼¥ï¡¼¥É¤ÏÉÔɬÍ×
+.j
+.j Ãí: no-keyword¤Ï±ã²ñ¤Î£Í£Ì¤¯¤é¤¤¤·¤«»È¤¤Æ»¤¬¤Ê¤¤¤Î¤Ç»È¤ï¤Ê¤¤¤è¤¦¤Ë
+.j
+# value: confirmation/subject/body/no-keywrod
+AUTO_REGISTRATION_TYPE: confirmation
+
+# $REQUIRE_SUBSCRIBE (CFVersion 2) => $AUTO_REGISTRATION_KEYWORD
+.j ÅÐÏ¿°ÍÍê¥á¡¼¥ë¤Ë½ñ¤¯¥­¡¼¥ï¡¼¥É
+# value: string
+AUTO_REGISTRATION_KEYWORD: subscribe
+
+# when auto-registered,
+# we apply $AUTO_REGISTRATION_DEFAULT_MODE e.g. "m=3mp s=1" to the address.
+.j ÅÐÏ¿¤¹¤ëºÝ¤Ë¶¯À©¤¹¤ë¥Ñ¥é¥á¡¼¥¿¡£»È¤¨¤ë¥Ñ¥é¥á¡¼¥¿¤Ïactives¤Ë»È¤¨¤ë¤â¤Î
+.j ¾Ü¤·¤¯¤Ï doc/Japanese/ °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ê¤É¤ò»²¾È
+.j Îã: ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¤Þ¤È¤áÁ÷¤ê¤Ë¤¹¤ë
+.j
+# value: string
+AUTO_REGISTRATION_DEFAULT_MODE:
+
+# "confirmation" (default) mode configurations
+# please see doc/tutorial for the detail of "confirmation"
+.j ÅÐÏ¿¤Î°Õ»×¤ò³Îǧ¤¹¤ë¥â¡¼¥É¤Ç»È¤¦¥Ñ¥é¥á¡¼¥¿
+.j $CONFIRMATION_SUBSCRIBE ÅÐÏ¿°ÍÍê¥á¡¼¥ë¤Î¥­¡¼¥ï¡¼¥É
+.j $CONFIRMATION_KEYWORD ÅÐÏ¿°Õ»×³Îǧ¥á¡¼¥ë¤Ç»È¤¦¥­¡¼¥ï¡¼¥É
+.j $CONFIRMATION_ADDRESS
+.j $CONFIRMATION_WELCOME_STATEMENT
+# value: string
+CONFIRMATION_ADDRESS:
+CONFIRMATION_SUBSCRIBE: subscribe
+CONFIRMATION_KEYWORD: confirm
+CONFIRMATION_WELCOME_STATEMENT:
+
+# explanation of confirmation
+.j ÅÐÏ¿¤Î°Õ»×¤ò³Îǧ¤¹¤ëºÝ¤ËÁ÷¤êÊÖ¤¹¥á¡¼¥ë¤Î¥Æ¥ó¥×¥ì¡¼¥È
+# value: filename string
+CONFIRMATION_FILE: $DIR/confirm
+
+# Expire of request queue. The unit is "hour". (default, 168 == 7*24)
+# value: number
+.j °Õ»×³Îǧ¤Î¥á¡¼¥ë¤ÎÊÖ»ö¤òÂԤĻþ´Ö¡£Ã±°Ì¤Ï»þ´Ö(hour)
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï°ì½µ´Ö
+CONFIRMATION_EXPIRE: 168
+
+# confirmation request queue (you should not manually edit it)
+.j ³Îǧ¤¹¤ë¥â¡¼¥É¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹(°ÍÍêqueue¤Î¥Ç¡¼¥¿)
+# value: filename string
+CONFIRMATION_LIST:
+
+# default keyword for trap
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤ÎÅÐÏ¿°ÍÍê¤Î¥­¡¼¥ï¡¼¥É(¾å¤Ç¤¹¤Ç¤ËÄêµÁºÑ¤ß¤À¤¬¡¢¸ß´¹À­¤Î¤¿¤á)
+# value: string
+DEFAULT_SUBSCRIBE: subscribe
+
+# WHEN either $REJECT_{POST,COMMAND}_HANDLER has "auto_subscribe"
+# (or "auto_regist"),
+# we do automatic registration. After we register an address to
+# $MEMBER_LIST ($FILE_TO_REGIST if $FILE_TO_REGIST is set),
+# we send $WELCOME_FILE to him/her with the subject $WELCOME_STATEMENT
+.j ¼«Æ°ÅÐÏ¿¤¬À®¸ù¤·¤¿ºÝ¤ËÅÐÏ¿¤·¤¿¥¢¥É¥ì¥¹¤ØÁ÷¤ë¥á¡¼¥ë¤Î¥Æ¥ó¥×¥ì¡¼¥È
+.j ¥¬¥¤¥É¤Î¼è¤êÊý¤äÈ´¤±Êý¤Ë¤Ä¤¤¤Æ½ñ¤¤¤Æ¤ª¤¯¤ÈÎɤ¤¡£
+# value: filename string
+WELCOME_FILE: $DIR/welcome
+
+.j ¼«Æ°ÅÐÏ¿¤¬À®¸ù¤·¤¿ºÝ¤ËÅÐÏ¿¤·¤¿¥¢¥É¥ì¥¹¤ØÁ÷¤ë¥á¡¼¥ë¤ÎSubject:¤Î¥Æ¥ó¥×¥ì¡¼¥È
+# value: string
+WELCOME_STATEMENT:Welcome to our $ML_FN\n You are added automatically
+
+.j ¼«Æ°ÅÐÏ¿¤ÎºÝ¤Ë½ñ¤­¹þ¤à¥Õ¥¡¥¤¥ë¤ò¥Ç¥Õ¥©¡¼¥ë¥È¤«¤éÊѹ¹¤¹¤ëºÝ¤Ë»È¤¦
+# e.g. $DIR/members (default)
+# value: filename string
+FILE_TO_REGIST:
+
+# In default if body lines > $AUTO_REGISTRATION_LINES_LIMIT,
+# we forward this mail to $MAIL_LIST. If $AUTO_REGISTERED_UNDELIVER_P is set,
+# we ALWAYS DO NOT Forward it to $MAIL_LIST.
+.j
+.j $AUTO_REGISTERED_UNDELIVER_P ÅÐÏ¿¤·¤¿¤³¤È¤ò£Í£Ì¤Ë¥¢¥Ê¥¦¥ó¥¹¤¹¤ë¤«¡©
+.j $AUTO_REGISTRATION_LINES_LIMIT ²¿¹Ô°Ê¾å¤Î¥á¡¼¥ë¤Ê¤é¥¢¥Ê¥¦¥ó¥¹¤¹¤ë¤«¡©
+.j
+.j Ãí: confirmation ¤Ç¤Ï̵°ÕÌ£¤ÊÊÑ¿ô¤È¤¤¤¨¤ë¡£¼ÂºÝ¤³¤Îµ¡Ç½¤Ï»È¤ï¤ì¤Æ¤¤¤Ê¤¤
+.j confirmation°ÊÁ°¤Î»þÂå¤Î¤¿¤á¤Î¤â¤Î¤È¹Í¤¨¤ÆÍߤ·¤¤
+.j
+# value: 1/0
+AUTO_REGISTERED_UNDELIVER_P: 1
+AUTO_REGISTRATION_LINES_LIMIT: 0
+
+
+#####################################################################
+# ### Section: Confirmd ###
+.j Section::Confirmd confirmd
+.j
+.j Äê´üŪ¤Ë¡Ö¤³¤ì¤«¤é¤â£Í£Ì¤ËÆþ¤ê³¤±¤ë¤«¡©¡×¤Î³Îǧ¤ò¤È¤ë¥Ç¡¼¥â¥ó
+.j
+.j $CONFIRMD_ACK_REQ_FILE Á÷¤ë¥á¡¼¥ë¤Î¥Æ¥ó¥×¥ì¡¼¥È
+.j $CONFIRMD_ACK_LOGFILE ³Îǧ¤Îqueue¤Î¥í¥°
+# confirmd
+# value: filename string
+CONFIRMD_ACK_REQ_FILE: $DIR/confirmd.ackreq
+CONFIRMD_ACK_LOGFILE: $VARLOG_DIR/confirmd.ack
+
+.j $CONFIRMD_ACK_EXPIRE_UNIT (¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï°ì¥«·î)¤Ë°ìÅÙ
+.j ¡Ö¤³¤ì¤«¤é¤â£Í£Ì¤ËÆþ¤ê³¤±¤ë¤«¡©¡×¤ò¿Ò¤Í¤ë¡£
+.j ÊÖ»ö¤ò$CONFIRMD_ACK_WAIT_UNIT (2½µ´Ö)ÂԤġ£
+.j ÊÖ»ö¤¬¤Ê¤¤»þ¤Ï¤½¤Î¥¢¥É¥ì¥¹¤òºï½ü¤¹¤ë¡£
+.j
+# value: number / ( number + month/week/day )
+CONFIRMD_ACK_EXPIRE_UNIT: 1month
+CONFIRMD_ACK_WAIT_UNIT: 2weeks
+
+#####################################################################
+# ### Section: Remote Administration ###
+.j Section::RemoteAdministration ¥ê¥â¡¼¥È´ÉÍý
+.j
+.j ¥á¡¼¥ë¤Ç¥³¥Þ¥ó¥É¤òÁ÷¤Ã¤Æ£Í£Ì¤Î´ÉÍý¤ò¤¹¤ë¤³¤È
+.j
+# For security, YOU CANNOT CONTROL FML IN REMOTE (DEFAULT).
+# IF $REMOTE_ADMINISTRATION is set, You can control FML in remote.
+# The remote control require some kind of authentication.
+# The choice of authentication is $REMOTE_ADMINISTRATION_AUTH_TYPE,
+# which is one of
+# address From: field
+# crypt From: field + password (e.g. "#admin pass PASSWORD")
+# md5 From: field + password (e.g. "#admin pass PASSWORD")
+# pgp PGP(Pretty Good Privacy) signature
+#
+# The difference of "crypt" and "md5" is $PASSWD_FILE format.
+#
+.j ¥ê¥â¡¼¥È´ÉÍý¤ò»È¤¦¤«¡©Èݤ«¡© ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï£°¡Ê¤·¤Ê¤¤¡Ë
+# value: 1/0
+REMOTE_ADMINISTRATION: 0
+
+# TYPE is address, crypt, md5 or pgp.
+# FYI: $REMOTE_ADMINISTRATION_REQUIRE_PASSWORD <=> "crypt"
+.j ǧ¾Ú¤Î¥¿¥¤¥×
+.j
+.j crypt ¥¢¥É¥ì¥¹¤È¥Ñ¥¹¥ï¡¼¥Éǧ¾Ú
+.j md5 ¥¢¥É¥ì¥¹¤È¥Ñ¥¹¥ï¡¼¥É¤Çǧ¾Ú
+.j (¥Ñ¥¹¥ï¡¼¥É¤Î°Å¹æ²½¤Ëmd5¤ò»È¤¦°Ê³°¤Ïcrypt¤ÈƱ¤¸)
+.j address ¥¢¥É¥ì¥¹¤À¤±¤Çǧ¾Ú
+.j pgp ǧ¾Ú¤ÏPGP 2.x ¤Îclear sign ¤Ç¹Ô¤Ê¤¦
+.j
+# value: crypt/address/md5/pgp
+REMOTE_ADMINISTRATION_AUTH_TYPE: crypt
+
+.j ¥ê¥â¡¼¥È´ÉÍý¤òǧ¤á¤ë¥á¥ó¥Ð¡¼¤Î¥¢¥É¥ì¥¹¥ê¥¹¥È
+.j
+.j ǧ¾Ú: pgpǧ¾Ú¤Î¾ì¹ç¤Ï̵°ÕÌ£¤Ë¶á¤¤¤¬¡Ä
+.j
+# members who can use admin commands for the type "address"
+# value: filename string
+ADMIN_MEMBER_LIST: $DIR/members-admin
+
+.j ¥ê¥â¡¼¥È´ÉÍý¤Ç»È¤¨¤ë¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Î¥Ø¥ë¥×¥Õ¥¡¥¤¥ë
+# help file of admin commands
+# value: filename string
+ADMIN_HELP_FILE: $DIR/help-admin
+
+.j ¥Ñ¥¹¥ï¡¼¥É¥Õ¥¡¥¤¥ë
+.j ¥Õ¥¡¥¤¥ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï
+.j ¥¢¥É¥ì¥¹ ¶õÇò °Å¹æ²½¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É
+.j
+# password file to authenticate members
+# value: filename string
+PASSWD_FILE: $DIR/etc/passwd
+
+.j
+.j ¥ê¥â¡¼¥È¥³¥Þ¥ó¥É¤Ç¥æ¡¼¥¶¤òÅÐÏ¿¤·¤¿¤µ¤¤¤Ë
+.j (¥³¥Þ¥ó¥É¤Ï "admin add" ¤Ê¤¤¤· "approve ¥Ñ¥¹¥ï¡¼¥É add")
+.j $WELCOME_FILE ¤òÁ÷¤êÊÖ¤¹¤«¡©¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¤·¤Ê¤¤
+.j
+# "admin add" to add an address to a member list. If succeeds, FML
+# sends back WELCOME_FILE if this variable is defined. Default is 0,
+# so the maintainer which adds it notifies 'work is done' to the subscriber.
+# value: 1/0
+ADMIN_ADD_SEND_WELCOME_FILE: 0
+
+.j "admin log" ¥³¥Þ¥ó¥É¤Ï¥í¥°¥Õ¥¡¥¤¥ë¤ò´ÉÍý¼Ô¤ËÁ÷¤êÊÖ¤¹
+.j ¤½¤Î¤Þ¤Þ¤Ç¤Ï¤È¤Æ¤âŤ¤¥á¡¼¥ë¤Ë¤Ê¤ë¤Î¤ÇºÇ´ü¤Î100¹Ô¤À¤±¤òÁ÷¤êÊÖ¤¹
+.j ¤½¤Î¹Ô¿ô¤¬ $ADMIN_LOG_DEFAULT_LINE_LIMIT
+.j
+# "admin log" is "tail -100 log" in default
+# value: number
+ADMIN_LOG_DEFAULT_LINE_LIMIT: 100
+
+.j pgp ¤Î¥Ç¡¼¥¿¤òÃÖ¤¯¥Ç¥£¥ì¥¯¥È¥ê
+# PGP PATH
+# value: filename string
+PGP_PATH: $DIR/etc/pgp
+
+
+#####################################################################
+# ### Section: Moderations; moderators check posted articles ###
+.j Section::Moderator ¥â¥Ç¥ì¡¼¥¿
+.j
+# If you select "moderator", you can select forwarding type to 1 or 2.
+.j ¥â¥Ç¥ì¡¼¥¿¥¿¥¤¥×
+.j
+.j 1 ¥â¥Ç¥ì¡¼¥¿¤À¤±¤¬¤·¤Ã¤Æ¤¤¤ë¥Ñ¥¹¥ï¡¼¥É¤Çǧ¾Ú
+.j 2 ¥â¥Ç¥ì¡¼¥¿¤Ë¤Ïone time password¤Ä¤­¤ÎººÆÉ°ÍÍ꤬¤¯¤ë
+.j 3 1 + 2 ¡£¥â¥Ç¥ì¡¼¥¿¤À¤±¤ÏººÆÉ¤Ê¤·¤ÇÅê¹Æ¤Ç¤­¤ë¤¬°ìÈ̥桼¥¶¤ÏººÆÉ¤ò¼õ¤±¤ë
+.j
+.j Ãí: ¿ô»ú¤Ï¤ï¤«¤ê¤Ë¤¯¤¤¡£¾­Íè¤Ï²¿¤«Ì¾Á°¤ò¤Ä¤±¤ë¤Ù¤­¤Ç¤¢¤ë
+# value: 1/2/3
+MODERATOR_FORWARD_TYPE: 2
+
+# This is a list to send posted articles for the certification.
+# If this file does not exist, moderator == $MAINTAINER.
+#
+# Moderators who certificate articles posted to this mailing list
+# They receive articles posted here. We do not check moderators's
+# addresses. We check only "moderators knows passwords or identifiers".
+.j ¥â¥Ç¥ì¡¼¥¿¤Î¿Í¤Î(¥¢¥É¥ì¥¹)¥ê¥¹¥È
+.j ¤Ä¤Þ¤êººÆÉ°ÍÍê¥á¡¼¥ë¤¬¥Õ¥©¥ï¡¼¥É¤µ¤ì¤ë¿Í¤Î°ìÍ÷ɽ
+.j ¤³¤Î¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¾ì¹ç¤Ï $MAINTAINER ¤Î¿Í¤ËÁ÷¤é¤ì¤ë
+# value: filename string
+MODERATOR_MEMBER_LIST: $DIR/moderators
+
+# expire not certifield submission to moderated ML
+# default: 2 weeks
+.j ººÆÉ°ÍÍê¤Ï¤É¤Î¤¯¤é¤¤¤Î´ü´ÖÍ­¸ú¤«¡©
+.j ¤Ä¤Þ¤ê¡¢¤À¤ì¤âººÆÉ¤·¤ÆOK¤ò½Ð¤µ¤Ê¤¤¾ì¹ç¤Ï°Ç¤ËÁò¤é¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£
+.j $MODERATOR_EXPIRE_LIMIT Æü¸å¡¢¸õÊ䤫¤é³°¤µ¤ì¤ë¡£
+# value: number
+MODERATOR_EXPIRE_LIMIT: 14
+
+
+#####################################################################
+# ### Section: Security ###
+.j Section::Security ¥»¥­¥å¥ê¥Æ¥£
+
+.j From:¤¬ÆÃ¼ì¤Ê¥¢¥«¥¦¥ó¥È¤Î¾ì¹çµñÈݤ¹¤ë
+.j ¸Ä¿Í¤òÆÃÄê¤Ç¤­¤Ê¤¤¤è¤¦¤Ê¥¢¥É¥ì¥¹¤ò»È¤¦¤Ù¤­¤Ç¤Ï¤Ê¤¤
+.j ¤Þ¤¿¥ë¡¼¥×¤òËɤ°¤¿¤á¤Ë¤âÍ­¸ú¤Ç¤¢¤ë¡£
+.j ¤³¤ì¤Ï
+.j $PERMIT_POST_FROM = "anyone"; (ï¤Ç¤âÅê¹Æ²Äǽ)
+.j ¤Ç¤¢¤Ã¤Æ¤âŬÍѤµ¤ì¤ë¸·¤·¤¤À©¸Â¤Ç¤¢¤ë¡£
+.j
+# We reject $REJECT_ADDR@ARBITRARY.DOMAINS,
+# since these are clearly NOT individuals.
+# value: regexp string
+REJECT_ADDR: root|postmaster|MAILER-DAEMON|msgs|nobody|news|majordomo|listserv|listproc|\S+\-help|\S+\-subscribe|\S+\-unsubscribe
+
+
+.j ¤³¤Î¥ê¥¹¥È¤ËFrom: ¤¬´Þ¤Þ¤ì¤Æ¤¤¤¿¤éµñÈݤ¹¤ë
+# list of spammers to be rejected, which corresponds /etc/sendmail.spamlist
+# value: filename string
+REJECT_ADDR_LIST: $DIR/spamlist
+
+.j unix from¤òloop check¤Î¥Ç¡¼¥¿¤È¤·¤Æ¤Ä¤«¤¦¤«¡©»È¤ï¤Ê¤¤¤«¡©
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï»È¤¦(0)¡£
+# DO CHECK UNIX From Loop or not
+# value: 1/0
+NOT_USE_UNIX_FROM_LOOP_CHECK: 0
+
+.j Message-ID: ¤Î½ÅÊ£¥Á¥§¥Ã¥¯¤ò¹Ô¤Ê¤¦(¥Ç¥Õ¥©¡¼¥ë¥È)¡£
+.j Message-ID: ¤Ï¥á¡¼¥ë¤´¤È¤Ë°ã¤¦¤Î¤ÇƱ¤¸Message-ID:¤Î¥á¡¼¥ë¤¬Íè¤ë¤³¤È¤Ï
+.j ¥ë¡¼¥×¤ò°ÕÌ£¤¹¤ë¡£
+# DO Message-Id: cache and check loops
+# value: 1/0
+CHECK_MESSAGE_ID: 1
+
+.j ¥á¡¼¥ëËÜʸ¤ÎMD5 checksum¤ò¤È¤Ã¤Æ½ÅÊ£¥Á¥§¥Ã¥¯¤ò¹Ô¤Ê¤¦¡£
+.j MD5Ū¤Ë¥á¡¼¥ëËÜʸ¤ÎƱ¤¸¥á¡¼¥ë¤¬Íè¤ë¤³¤È¤Ï¤Þ¤º´Ö°ã¤¤¤Ê¤¯¥ë¡¼¥×¤ò°ÕÌ£¤¹¤ë
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï"¥Á¥§¥Ã¥¯¤·¤Ê¤¤"¡£
+.j
+# loop check based on mailbody md5 cksum cache
+# value: 1/0
+CHECK_MAILBODY_CKSUM: 0
+
+.j getpeername()¤ÎÃͤò¥í¥°¤Ë¤È¤ë(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¼è¤é¤Ê¤¤)
+.j Ãí: ¸½Âå¤ÎMTA¤Ç¤Ïʬ»¶·¿¤Ê¤Î¤Ç¤½¤â¤½¤â¤È¤ê¤è¤¦¤¬¤Ê¤¤¤Î¤Ç°ÕÌ£¤Ê¤·
+# Logs the getpeername()
+# value: 1/0
+LOG_CONNECTION: 0
+
+.j ¥¢¥É¥ì¥¹¤Î¥Á¥§¥Ã¥¯¤ÎÅÙ¹ç
+.j Â绨ÇĤˤ¤¤¨¤Ð¥µ¥Ö¥É¥á¥¤¥ó/¥Þ¥·¥ó̾¤¬¤Ä¤¤¤Æ¤¤¤Æ¤âƱ¤¸¤â¤Î¤È¤ß¤Ê¤¹¤«¡©
+.j Î㤨¤Ð
+.j fukachan@axion.phys.titech.ac.jp
+.j fukachan@phys.titech.ac.jp
+.j ¤ÏƱ¤¸¥¢¥É¥ì¥¹¤È¤ß¤Ê¤¹¤Ù¤­¤«¡©Èݤ«¡©
+.j ±¦¤«¤é $ADDR_CHECK_MAX ¸Äʬ¤Ç¤¢¤ë¡£¤³¤ÎÎã¤Ç¤Ï
+.j $ADDR_CHECK_MAX ¤¬4°Ê²¼¤Ê¤éƱ¤¸¤â¤Î¤È¤ß¤Ê¤¹¡£
+.j 5¤Ê¤éÊ̤Υ¢¥É¥ì¥¹¤È¤ß¤Ê¤¹¤³¤È¤Ë¤Ê¤ë¡£
+# address check levels, which level is the tree depth from the root.
+# value: number
+ADDR_CHECK_MAX: 3
+
+.j ¥á¡¼¥ë¥µ¥¤¥º¤ÎÀ©¸Â¡£¥Ç¥Õ¥©¡¼¥ë¥È¤ÏÀ©¸Â¤Ê¤·
+# In-coming mail size > $INCOMING_MAIL_SIZE_LIMIT, fml discards it
+# and send a warning only to the maintainer.
+# 0 (default) implies infinite (no limit)
+# If $NOTIFY_MAIL_SIZE_OVERFLOW is set, notify the rejection to the sender.
+# If $ANNOUNCE_MAIL_SIZE_OVERFLOW is set, announce received the over
+# size mail to the ML (SARASHIMONO:-).
+# value: number
+INCOMING_MAIL_SIZE_LIMIT:
+
+.j ¥á¡¼¥ë¥µ¥¤¥º¤¬ $INCOMING_MAIL_SIZE_LIMIT ¤ò±Û¤¨¤¿»þ¤Ë
+.j ¤½¤Î¥á¡¼¥ë¤ò½Ð¤·¤¿¿Í¤ËËܿͤˡÖÂ礭¤¤¥á¡¼¥ë¤À¤«¤éµñÈݡפÈÄÌÃΤ¹¤ë¤«¡©
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤ÏÄÌÃΤ¹¤ë¡£
+.j ¥¢¥¿¥Ã¥¯¤Î²ÄǽÀ­¤â¤¢¤ë¤Î¤Ç¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¤È¤¤¤¦È½ÃǤò¤¹¤ë¿Í¤â¤¢¤ë¤À¤í¤¦
+# value: 1/0
+NOTIFY_MAIL_SIZE_OVERFLOW: 1
+
+.j Åê¹Æ¥á¡¼¥ë¤Î¥µ¥¤¥º¤¬ $INCOMING_MAIL_SIZE_LIMIT ¤ò±Û¤¨¤¿»þ¤Ë
+.j £Í£Ì¤Ë¡ÖÂ礭¤¤¥á¡¼¥ë¤À¤«¤éµñÈݤ·¤¿¡×¤È¥¢¥Ê¥¦¥ó¥¹¤¹¤ë¤«¡©
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï"¤·¤Ê¤¤"
+.j ¥¢¥¿¥Ã¥¯¤Î²ÄǽÀ­¤â¤¢¤ë¤Î¤Ç¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¤È¤¤¤¦È½ÃǤò¤¹¤ë¿Í¤â¤¢¤ë¤À¤í¤¦
+# value: 1/0
+ANNOUNCE_MAIL_SIZE_OVERFLOW: 0
+
+.j £Í£Ì¤Î¥á¥ó¥Ð¡¼¤Î¾å¸Â¡£¼ç¤Ë¼«Æ°ÅÐÏ¿ÍÑ
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï̵À©¸Â
+# Resource Limit (for ISP ?): (default 0 == not check this limit)
+# the maximum of ML delivery members when auto registration routine works.
+# If member > $MAX_MEMBER_LIMIT, auto registration rejects the request.
+# We check actives to permit aliases of post-able addresses.
+# We check @ACTIVE_LIST effective members, not @MEMBER_LIST.
+# value: number
+MAX_MEMBER_LIMIT:
+
+.j ¥Õ¥£¥ë¥¿¥ê¥ó¥°µ¡¹½¤òÍ­¸ú¤Ë¤¹¤ë¤«¡© ¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï£Î£Ï
+.j XXX: ¥Õ¥£¥ë¥¿¥ê¥ó¥°¤Ï¿ä¾©
+# Envelope Filtering for distribution mails
+# &EnvelopeFilter is called in the top of &Distribute if you set
+# $USE_DISTRIBUTE_FILTER = 1;
+# You can use $DISTRIBUTE_FILTER_HOOK for advanced customizes.
+# value: 1/0
+USE_DISTRIBUTE_FILTER:
+
+.j ¥Õ¥£¥ë¥¿¥ê¥ó¥°¤Î¥Õ¥Ã¥¯¡£
+.j perl¤ÇÊ£»¨¤Ê¾ò·ïʸ¤ò³Æ¤¿¤á¤ËÍѤ¤¤ë
+.j ¾ÜºÙ¤Ï doc/Japanese/ °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ê¤É¤ò»²¾È »²¾È
+# value: string
+DISTRIBUTE_FILTER_HOOK:
+
+.j ¥Õ¥£¥ë¥¿¤¬ÃƤ¤¤¿¤ÈËܿͤËÃΤ餻¤ë¤«¡©¡Ê¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï¤·¤Ê¤¤¡Ë
+.j ¥¢¥¿¥Ã¥¯¤Î²ÄǽÀ­¤â¤¢¤ë¤Î¤Ç¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¤È¤¤¤¦È½ÃǤò¤¹¤ë¿Í¤â¤¢¤ë¤À¤í¤¦
+# $FILTER_NOTIFY_REJECTION enables fml.pl notifies the rejection to
+# the sender.
+# value: 1/0
+FILTER_NOTIFY_REJECTION:
+
+.j "# command"¤Î¤è¤¦¤Ê¥á¡¼¥ë¤ÏµñÈݤ¹¤ë
+.j Ãí: hml¸ß´¹¥â¡¼¥É¤Ïobsolete
+# Attributes
+# When $FILTER_ATTR_REJECT_COMMAND is 1 under distribution mode,
+# rejects "# command" syntax just before distribution (&Distribute;)
+# value: 1/0
+FILTER_ATTR_REJECT_COMMAND:
+
+.j £Õ£Î£Ó£Õ£Â£Ó£Ã£Ò£É£Â£Å¤Î¤è¤¦¤Ê£²¥Ð¥¤¥È±Ñ¸ì¤À¤±¤Î¥á¡¼¥ë¤òµñÈݤ¹¤ë
+# reject Japanese "2byes English words"
+# value: 1/0
+FILTER_ATTR_REJECT_2BYTES_COMMAND:
+
+.j Microsoft GUID¤Î¤è¤¦¤Êʸ»úÎó¤ò´Þ¤àźÉÕ¥Õ¥¡¥¤¥ë¤¬¤Ä¤¤¤¿
+.j MIME/Multipart ¤Î¥á¡¼¥ë¤ÏµñÈݤ¹¤ë¡£
+.j (¥¦¥£¥ë¥¹¤Ä¤­¤Î¥Þ¥¯¥í¤«¤â¤·¤ì¤Ê¤¤¤«¤é)
+# reject MIME/multipart mails wich Microsoft GUID within it,
+# We intend to reject "Melissa virus" family by it.
+# value: 1/0
+FILTER_ATTR_REJECT_MS_GUID: 1
+
+.j HTML¤Èplaintext¤ÇƱ¤¸¤â¤Î¤¬Æþ¤Ã¤¿Éå¤Ã¤Æ¤¤¤ë¥á¡¼¥ë¤ÏµñÈݤ¹¤ë
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤ÏµñÈݤ·¤Ê¤¤
+.j
+.j fml 3.0 ¤Ç¤Ï³ÈÄ¥¤µ¤ì ContentHandler ¤È¤¤¤¦µ¡¹½¤¬¤ª¤³¤Ê¤¦
+.j ¸ß´¹À­¤Î¤¿¤á¤³¤ÎÊÑ¿ô¤Ï¸½ºß¤â»È¤¦¤³¤È¤¬½ÐÍè¤ë¡£
+.j
+# reject HTML mails that the same content exist in the form of both
+# plain and html. e.g. some versions of M$ outlook, netscape mail
+# "AGAINST_HTML_MAIL: 1/0" is old style, which works for compatibility though.
+# NULL (default) is "pass through a html mail".
+# value: "strip" / "reject" / ""
+HTML_MAIL_DEFAULT_HANDLER:
+
+.j ¥È¥é¥Õ¥£¥Ã¥¯¥â¥Ë¥¿
+.j ÂХ᡼¥ëÇúÃÆµ¡¹½
+.j ¿ä¾©
+# Mail Traffic Information: internal traffic monitor
+# value: 1/0
+USE_MTI:
+
+.j ¥È¥é¥Õ¥£¥Ã¥¯¤Î°Û¾ïÁýÂç¤ò°ìÅٷٹ𤷤¿¤é
+.j $MTI_WARN_INTERVAL (default 3600ÉÃ) ´Ö¤Ï·Ù¹ð¤ò¹µ¤¨¤ë
+.j
+.j Ãí: ·Ù¹ð¤òÉÑÈˤˤÀ¤¹¤È¤½¤ì¼«ÂΤ¬¥á¡¼¥ëÇúÃÆ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦
+# MIT warning (mail bomb report) negative cache interval
+# to avoid mail bomb of "mail bomb attack report" itself.
+# value: number
+MTI_WARN_INTERVAL: 3600
+
+.j $MTI_WARN_INTERVAL¤Î»È¤¦¥­¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë
+# value: filename string
+MTI_WARN_LASTLOG:
+
+.j "£Í£Ì¤ò¼­¤á¤ë¥³¥Þ¥ó¥É" ¤Ë¤â confirmation ¤òÍѤ¤¤ë¤«¡©
+.j defualt ¤Ï»È¤ï¤Ê¤¤
+# Optional. If UNSUBSCRIBE_AUTH_TYPE is 'confirmation', FML sends back
+# confirmation against a fake. In default, FML does not do confirmation.
+# available type is "confirmation" only.
+# value: confirmation
+UNSUBSCRIBE_AUTH_TYPE:
+
+.j "chaddr ¥¢¥É¥ì¥¹¤òÊѹ¹¤¹¤ë¥³¥Þ¥ó¥É" ¤Ë¤â confirmation ¤òÍѤ¤¤ë¤«¡©
+.j defualt ¤Ï»È¤ï¤Ê¤¤
+# chaddr checks confirmation
+# value: confirmation / ""
+CHADDR_AUTH_TYPE:
+
+.j fml¤ËÆÍ¤Ã¹þ¤Þ¤ì¤¿À¸¥á¡¼¥ë¤ò°ìÄê´ü´ÖÊݸ¤·¤Æ¤ª¤¯(default ¤Ç¤ÏÊݸ¤·¤Ê¤¤)
+.j Êݸ´ü´Ö¤Ï¥È¥é¥Õ¥£¥Ã¥¯¤Ë¤è¤Ã¤ÆÊѤï¤ë
+.j
+.j Ãí: ¤¢¤ëÄøÅÙDISK¤¬É¬Í×
+# LOGGING THE LATEST IN-COMING MAILS
+# Logs an in-coming mail to $LOG_MAIL_DIR/$id
+# where ($id = `cat $LOG_MAIL_SEQ`; $id = $id % $NUM_LOG_MAIL; $id++).
+# Latest $NUM_LOG_MAIL files are stored in $LOG_MAIL_DIR and each file size
+# is limited up to $LOG_MAIL_FILE_SIZE_MAX bytes to save disk.
+# value: 1/0
+USE_LOG_MAIL: 0
+
+.j $USE_LOG_MAIL ¤¬À¸¥á¡¼¥ë¤ÎÊݸ¤Ë»È¤¦¥Ç¥£¥ì¥¯¥È¥ê¤È¥Õ¥¡¥¤¥ë̾¤Î¥«¥¦¥ó¥¿
+# value: filename string
+LOG_MAIL_DIR: $VAR_DIR/Mail
+LOG_MAIL_SEQ: $LOG_MAIL_DIR/.seq
+
+.j Êݸ¤¹¤ë¥Õ¥¡¥¤¥ë¿ô(default 100)
+.j 101 Ä̤á¤Ï 1 ¤Ë¤Ê¤ë¡£¤Ä¤Þ¤ê modulus ¤Ë¤è¤ê±ß´É¥Ð¥Ã¥Õ¥¡¤Ë¤Ê¤Ã¤Æ¤¤¤ë
+.j Â礭¤¤¥á¡¼¥ë¤ÏËÜʸÀèÆ¬¤Î $LOG_MAIL_FILE_SIZE_MAX (2048) bytesʬ¤À¤±
+.j Êݸ¤¹¤ë(¥Ø¥Ã¥ÀÅù¤ÎÊý¤¬½ÅÍפʤΤÇÂ礭¤¤¥á¡¼¥ëËÜʸ¤ÏÅÓÃæ¤Þ¤Ç¤Ç¤â¹½¤ï¤Ê¤¤)
+# value: number
+NUM_LOG_MAIL: 100
+LOG_MAIL_FILE_SIZE_MAX: 2048
+
+.j Åê¹Æ¤µ¤ì¤¿¥á¡¼¥ë¤ò°Å¹æ²½¤¹¤ë
+# PGP Encrpyted ML
+# value: 1/0
+USE_ENCRYPTED_DISTRIBUTION:
+
+.j °Å¹æ²½¤Î»ÅÊý¡£¸½ºß¤ÏPGP¤Î¤ß
+# value: pgp
+ENCRYPTED_DISTRIBUTION_TYPE: pgp
+
+
+#####################################################################
+# ### Section: Header Customization ###
+.j Section::Header ¥Ø¥Ã¥À¤Î¥«¥¹¥¿¥Þ¥¤¥º
+# In general, you can control fields in header in the following:
+#
+# @HdrFieldsOrder Fields Order In Header
+#
+# &DEFINE_FIELD_ORIGINAL('field'); Conserve Original
+# &DEFINE_FIELD_FORCED('field', "contents"); Overwrite
+#
+# In default, we discard fields not shown in @HdrFieldsOrder.
+
+# Date: definition ("makefml config" can control this)
+# 1 original-date Date:
+# * Date: == when distribute() works
+# 2 distribute-date+posted Date: + Posted:
+# 3 distribute-date+x-posted Date: + X-Posted:
+# 4 distribute-date+x-original-date Date: + X-Original-Date:
+# * Date: == when fml.pl receives or is kicked off.
+# 5 received-date+posted Date: + Posted:
+# 6 received-date+x-posted Date: + X-Posted:
+# 7 received-date+x-original-date Date: + X-Original-Date:
+# value: original-date/distribute-date+posted/distribute-date+x-posted
+# /distribute-date+x-original-date/received-date+posted
+# /received-date+x-posted/received-date+x-original-date
+.j Date: ¤ÎÃÍ
+.j 1 original-date Date:
+.j * Date: == when distribute() works
+.j 2 distribute-date+posted Date: + Posted:
+.j 3 distribute-date+x-posted Date: + X-Posted:
+.j 4 distribute-date+x-original-date Date: + X-Original-Date:
+.j * Date: == when fml.pl receives or is kicked off.
+.j 5 received-date+posted Date: + Posted:
+.j 6 received-date+x-posted Date: + X-Posted:
+.j 7 received-date+x-original-date Date: + X-Original-Date:
+.j ¤Ê¤É¤¤¤í¤¤¤í
+DATE_TYPE: original
+
+# In Header, we expand these values to
+#
+# $XMLNAME
+# $XMLCOUNT: sequence-number
+#
+# e.g.
+# X-ML-Name: Elena
+# X-Mail-Count: 00007
+#
+.j ¥Ø¥Ã¥À¤Ë¤Ä¤±¤ë£Í£Ì¤Î¼±Ê̻Ҥȥ«¥¦¥ó¥È
+.j X-ML-Name: Elena
+.j X-Mail-Count: 00007
+.j
+# value: string
+XMLNAME: X-ML-Name: Elena
+XMLCOUNT: X-Mail-Count
+
+# In default subject tag does not exist to show more and more effective
+# subject and body. Client Interface SHOULD CONTROL subject descriptions.
+# The available type is [:] [,] [ ] (:) (,) ( ).
+# e.g. [:] => [Elena:00100] format (here $BRACKET is "Elena").
+# But you can customize SUBJECT_FREE_* series variables.
+# Please see doc/tutorial for the detail
+.j Subject:¤Î¥¿¥°¤Î¼ïÎà¡£¥Ç¥Õ¥©¡¼¥ë¥È¤Ï²¿¤â¤Ä¤±¤Ê¤¤
+.j
+.j ½ÅÍפʾðÊ󤬸º¤ë¤À¤±¤Ê¤Î¤ÇËÜÍ褳¤ó¤ÊTAG¤Ï¤Ä¤±¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£
+.j ¤À¤á¤ÊMUAÂкö¤È¤·¤Æ¤½¤¦¤¤¤¦¤â¤Î¤À¤ÈÎò»ËŪ¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤È¤ª¤â¤ï¤ì¤ë
+.j
+# value: (:) / [:] / () / [] / (,) / [,] / () / [] / (ID) / [ID] / ""
+SUBJECT_TAG_TYPE:
+
+.j Subject:¤Î¥¿¥°¤Ë¤Ä¤¯£Í£Ì¤Î¼±ÊÌ»Ò
+# BRACKET of "Subject: [BRACKET:ID] ..." form
+# value: string
+BRACKET: Elena
+
+.j fml 3.0 ¤Ç¤Ï¤É¤¦¤Ç¤â¤¤¤¤ÊÑ¿ô
+.j Îò»Ë: ÀΤϤ¢¤ëÌÜŪ¤Î¤¿¤á¤Ë¤¢¤Ã¤¿¤¬¸½ºß¤Ç¤Ï»È¤ï¤Ê¤¤
+# Obsoletes? We strip off e.g. [ML:fukachan] form in Subject
+# but this operations depends on special forms, so not functional.
+# You do not expect a lot on this option.
+STRIP_BRACKETS: 0
+
+.j Subject:¥¿¥°¤ÎÆâÉôɽ¸½
+.j $SUBJECT_TAG_TYPE ¤Ï¤³¤ì¤Î´Ê°×ÈǤǤ¢¤ë¡£
+.j $SUBJECT_TAG_TYPE ¤ò»È¤ï¤º¤Ë¤³¤ì¤é¤ÎÊÑ¿ô¤ò»È¤Ã¤Æ
+.j ¼«Ê¬¤Ç¥¿¥°¤òÄêµÁ¤¹¤ë¤³¤È¤â½ÐÍè¤ë¡£
+# "Free Subject Tag" settings (see doc/tutorial and libtagdef.pl on examples)
+# value: regexp string
+BRACKET_SEPARATOR:
+SUBJECT_FREE_FORM:
+SUBJECT_FREE_FORM_REGEXP:
+SUBJECT_FORM_LONG_ID:
+
+.j Errors-To: ¤ò»È¤¦¤«¡©(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï»È¤ï¤Ê¤¤)
+.j Ãí: RFC1123 ¤Ë¤è¤êErrors-To: ¤Ïº£Æü¤Ç¤Ï»È¤ï¤Ê¤¤
+# Errors-To: field
+# Errors-To is not referred in RFC822. Sendmail 8.x do not see this
+# field in default. However in error may be effective for e.g. Pasokon
+# Tuusin, BITNET..
+# value: 1/0
+USE_ERRORS_TO:
+
+.j Errors-To: ¤Ë»È¤¦Ãͤò¶¯À©¤¹¤ë»þ¤Ë»È¤¦
+# value: string
+ERRORS_TO:
+
+.j Original ¤Î Message-ID: ¤ò»È¤¦¤«¡©»È¤¦(1)¤¬¥Ç¥Õ¥©¡¼¥ë¥È
+.j 0¤Ë¤¹¤ë¤Èfml¤¬Å¬Åö¤Ê Message-ID: ¤ò¤Ä¤±¤ë¡£À¸À®´Ø¿ô¤ÏGenMessageID
+.j ¤½¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï Æü¤Å¤±.FMLAAA.¿ô»ú(pid).$MAIL_LIST ¤Î¤è¤¦¤Ê¤â¤Î
+# Message-Id: use original Message-Id or Server Defined Message-Id ?
+# value: 1/0
+USE_ORIGINAL_MESSAGE_ID: 1
+
+.j Precedence: ¥Õ¥£¡¼¥ë¥É
+# Precedence: field;
+# why "list" is not used ;_; but netbsd.org is "list"
+# value: string
+PRECEDENCE: bulk
+
+.j Åê¹Æ¥á¡¼¥ë¤Ë¥¹¥¿¡¼¥È¥ì¥Ã¥¯±§ÃèÎò¤ò¥Ø¥Ã¥À¤Ë¤Ä¤±¤ë(¾Ð)
+.j Ãí: ±§ÃèÎò¤ÎÊýÄø¼°¤ÏÊ£¿ô¤¢¤ë¤¬¤½¤Î¤¦¤Á¤Î°ì¤Ä¤ò»È¤Ã¤Æ¤¤¤ë
+.j Àµ¤·¤¤ÊýÄø¼°¤«¤É¤¦¤«¤Ï¤Þ¤¿Ê̤À:-)
+.j ¾ÜºÙ¤Ï¥¹¥¿¡¼¥È¥ì¥Ã¥¯¥¨¥ó¥µ¥¤¥¯¥í¥Ú¥Ç¥£¥¢¤Ê¤É¤ò»²¾È¤µ¤ì¤¿¤¤
+# X-Stardate: field
+# value: 1/0
+APPEND_STARDATE:
+
+# We should force "To: $MAIL_LIST" form "For Eye" or NOT?
+#
+# 0 Pass the original field To:
+# 1 We rewrite "To: $MAIL_LIST, original-to-fields".
+# 2 Force "To: $MAIL_LIST".
+#
+# REWRITE_TO = 1 if NOT_REWRITE_TO == 0 (2.1 Release)
+.j To: ¤ÎÃÍ¡£3.0¤Î¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¤¹Ä̤·¡£
+# value: 0/1/2
+REWRITE_TO:
+
+.j ̤ÄêµÁ¤Î»þ¤Î¥Ç¥Õ¥©¡¼¥ë¥ÈÃÍ
+.j Ä̾ï¤Ï¥í¥°¥Õ¥¡¥¤¥ë¤Ë¸½¤ì¤ë¤¯¤é¤¤
+# Default values if no value (no field) is given.
+# value: string
+Subject:
+From_address: not.found
+User: not.found
+Date: not.found
+
+.j ¥¿¥¤¥à¥¾¡¼¥ó
+.j Ä̾ï¤Ï¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë»ØÄꤹ¤ë¤â¤Î
+# TIME ZONE; +0900 is RFC822 syntax (I like JST but ... ;-)
+# value: +\d{4} / -\d{4}
+TZone: +0900
+
+.j $SKIP_FIELDS (¼¡)°Ê³°¤Î¥Ø¥Ã¥À¥Õ¥£¡¼¥ë¥É¤ò¤¹¤Ù¤ÆÄ̤¹
+# ## Sub Section: Pass All Header ? ##
+# In default we pass only defined fields of the header
+# which is defined in @HdrFieldsOrder (see "sub SetDefaults" in fml.pl).
+# All files except $SKIP_FIELDS is passed through
+# when $PASS_ALL_FIELDS_IN_HEADER is set.
+# The old variable name is $SUPERFLUOUS_HEADERS.
+# value: 1/0
+PASS_ALL_FIELDS_IN_HEADER: 1
+
+.j $SKIP_FIELDS ¤Î¥Ø¥Ã¥À¥Õ¥£¡¼¥ë¥É¤ÏÍ¡£
+.j ¾¯¤Ê¤¯¤È¤â Return-Receipt-To: ¤ÏºÇÄã¸Â¤Ï¤¸¤¯¤Ù¤­¤Ç¤¢¤ë
+.j ¥ë¡¼¥×¤Î¸¶°ø¤Ë¤Ê¤êÆÀ¤ë¤¿¤á¤Ç¤¢¤ë
+# value: regexp string
+SKIP_FIELDS: Return-Receipt-To
+
+
+#####################################################################
+# ### Section: Commands, Command Traps, File Operations (e.g. mget) ###
+.j Section::Command ¥³¥Þ¥ó¥É¤Þ¤ï¤ê
+
+.j # help ¤È #help¤Ï°ì½ï
+.j Îò»Ë: µì»þÂå¤Î»ºÊª
+# COMMAND format is "#help" == "# help" if $COMMAND_SYNTAX_EXTENSION is set.
+# value: 1/0
+COMMAND_SYNTAX_EXTENSION: 1
+
+.j Subject:¤Ë¥³¥Þ¥ó¥É("# command")¤ò»È¤¦¾ì¹ç(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï»È¤ï¤Ê¤¤)
+.j Îò»Ë: µì»þÂå¤Î»ºÊª
+# "Subject: # commands" is available?
+# value: 1/0
+USE_SUBJECT_AS_COMMANDS: 0
+
+.j ¥³¥Þ¥ó¥É¤Î¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼¤ò¾ï¤Ë·Ù¹ð¤ò½Ð¤¹(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï½Ð¤µ¤Ê¤¤)
+.j Îò»Ë: µì»þÂå¤Î»ºÊª
+# If NOT "# command" syntax commands is given, ignore or warn to the user?
+# Our default is not, since most such cases are "signature".
+# value: 1/0
+USE_WARNING: 0
+
+.j 3.0 ¤Ç¤Ï¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î --ctladdr ¤Ç»ØÄꤹ¤ë¤â¤Î
+.j Îò»Ë: µì»þÂå¤Î»ºÊª
+# obsolete: since this is the same as --ctladdr.
+# value: 1/0
+COMMAND_ONLY_SERVER: 0
+
+# **ATTENTION**
+# $PROHIBIT_COMMAND_FOR_STRANGER is obsoletes since
+# $PROHIBIT_COMMAND_FOR_STRANGER equals $PERMIT_COMMAND_FROM = "anyone";
+
+.j ºÇ½é¤Î $COMMAND_CHECK_LIMIT ¹Ô¤ò¥Á¥§¥Ã¥¯¤¹¤ë
+.j Îò»Ë: µì»þÂå¤Î»ºÊª
+# ## Sub Section: traps ##
+# when $MAIL_LIST == $CONTROL_ADDRESS,
+# the first $COMMAND_CHECK_LIMIT lines is checked for commands mail or not?
+# $GUIDE_CHECK_LIMIT is the same kind of variable but for "# guide" trap.
+# $GUIDE_KEYWORD determines "guide" of "$ guide" trap.
+# value: number
+COMMAND_CHECK_LIMIT: 3
+
+.j ¥¬¥¤¥ÉÍ׵ᤫ¤É¤¦¤«¥á¡¼¥ëËÜʸ¤ÎºÇ½é¤Î $GUIDE_CHECK_LIMIT ¹Ô¤ò¥Á¥§¥Ã¥¯¤¹¤ë
+.j Îò»Ë: µì»þÂå¤Î»ºÊª
+# value: number
+GUIDE_CHECK_LIMIT: 3
+
+.j ¥¬¥¤¥ÉÍ׵ᤫ¤É¤¦¤«¤Î¥­¡¼¥ï¡¼¥É
+.j Îò»Ë: µì»þÂå¤Î»ºÊª
+# value: string
+GUIDE_KEYWORD: guide
+
+.j °ì¤Ä¤Î¥á¡¼¥ë¤Ë¤«¤±¤ë¥³¥Þ¥ó¥É¿ô¤Î¾å¸Â
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï̵À©¸Â
+# The maximum number of commands in one command mail.
+# The variable \$MAXNUM_COMMAND_INPUT controls this.
+# If the value is 3, fml permits 3 commands in one command mail.
+# 0 or NULL implies infinite (default).
+# value: number
+MAXNUM_COMMAND_INPUT:
+
+.j chaddr ¥³¥Þ¥ó¥É¤Î¥¨¥¤¥ê¥¢¥¹
+# "# chaddr" commands is required for special exception
+# value: regexp string
+CHADDR_KEYWORD: chaddr|change\-address|change
+
+.j mget¥³¥Þ¥ó¥É¤Î¥Ç¥Õ¥©¡¼¥ë¥È¤Î¥Õ¥©¡¼¥Þ¥Ã¥È
+.j UNIX¾å¤Ç¤ÏºÇ¤â¸úΨ¤ÎÎɤ¤ tar.gz ¤¬¥Ç¥Õ¥©¡¼¥ë¥È
+.j Windows NT4¤Ç¤Ï MIME/Multipart ¤¬¥Ç¥Õ¥©¡¼¥ë¥È
+# ## Sub Section: mget ##
+# The default mode of "mget" without mode (default is "tar.gz" form).
+# $MGET_TEXT_MODE_DEFAULT is used by &SendFileBySplit
+# value: mode string
+MGET_MODE_DEFAULT:
+MGET_TEXT_MODE_DEFAULT:
+
+.j mget ¥³¥Þ¥ó¥É¤Î·ë²Ì¤¬Â礭¤¤¥á¡¼¥ë¤Î¾ì¹ç¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¤Ëʬ³ä¤¹¤ë
+.j ³Æ¥á¡¼¥ë¤Ï¤ª¤ª¤è¤½ $MAIL_LENGTH_LIMIT ¹Ô¤Ç
+.j $SLEEPTIME Éôֳ֤ÇÁ÷¤êÊÖ¤¹
+# The reply for "mget" commands sends long reply mails as splitten mails
+# by the unit $MAIL_LENGTH_LIMIT lines once at $SLEEPTIME secs..
+# value: number
+MAIL_LENGTH_LIMIT: 1000
+SLEEPTIME: 60
+
+.j mget ¤Ç»È¤¦MIME¥Ñ¥é¥á¡¼¥¿¡£Ì¤ÄêµÁ
+.j mget¤Î¥Õ¥¡¥¤¥ë¥â¡¼¥É¤¬½é´ü²½¤µ¤ì¤ë»þ¤ËɬÍפʤé½é´ü²½¤µ¤ì¤ë
+# See doc/tutorial and libfop.pl for the detail. You change MIME/Multipart default.
+# value: string
+MIME_VERSION:
+MIME_CONTENT_TYPE:
+MIME_MULTIPART_BOUNDARY:
+MIME_MULTIPART_CLOSE_DELIMITER:
+MIME_MULTIPART_DELIMITER:
+MIME_MULTIPART_PREAMBLE:
+MIME_MULTIPART_TRAILER:
+
+.j mget ¤Ç ish ¥â¡¼¥É¤ò»ØÄꤷ¤¿¤é sjis ¤Ë¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤«¡©(default¤Ï¤·¤Ê¤¤)
+.j sjis ¤Ê¤Î¤Ï ish ¤ò»È¤¦¥æ¡¼¥¶¤ÏM$¤Ê´Ä¶­¤À¤í¤¦¤«¤é¤Ç¤¢¤ë
+# sjis conversion in "mget ish" mode.
+# value: 1/0
+USE_SJIS_IN_ISH:
+
+.j mget ¤ÎRFC1153 format¤Î¥Ñ¥é¥á¡¼¥¿
+# RFC1153 configurations; see doc/tutorial for the detail
+# value: number
+RFC1153_ISSUE:
+
+.j mget ¤ÎRFC1153 format¤Î¥Ñ¥é¥á¡¼¥¿
+# value: number / string
+RFC1153_VOL:
+
+.j mget ¤ÎRFC1153 format¤Î¥Ñ¥é¥á¡¼¥¿
+# value: filename string
+RFC1153_SEQUENCE_FILE:
+
+# ## Sub Section: MTA specific ##
+# qmail °Í¸³ÈÄ¥
+# ¥á¡¼¥ëËÜʸ¤Ë "get 1" ¤ò½ñ¤¤¤Æ ml-ctl@domain ¤ËÁ÷¤ë¤³¤È¤Ï
+# ml-get-1@domain ¤Ë²¿¤«¤òÁ÷¤ë¤³¤È¤ËÅù¤·¤¤¡£¤Ä¤Þ¤ê
+# ml-command-°ú¿ô@domain == "command °ú¿ô"¤ò ml-ctl@domain ¤ËÁ÷¤ë¤³¤È
+# value: 1/0
+USE_DOT_QMAIL_EXT: 0
+
+
+.j obsolete
+.j Reply-To: ¤ÎÃͤò¶¯À©¤¹¤ë¡£
+.j fml 3.0 ¤Ç¤Ï&DEFINE_FIELD_FORCED() ¤ò»È¤¦
+#C beth
+# ## Sub Section: Headers of reply from FML ##
+# For the reply for commands from FML,
+# we force Reply-To: $FORCE_COMMAND_REPLY_TO ?(default is $CONTROL_ADDRESS)
+# value: string
+FORCE_COMMAND_REPLY_TO:
+
+.j mget ¤Î¥Õ¥¡¥¤¥ë¤òÁ÷¤êÊÖ¤¹¥á¡¼¥ë¤ÎSubject: ¥Æ¥ó¥×¥ì¡¼¥È
+# Subject template in "mget" reply.
+# automatic substitute is done before send the reply; For example,
+# Subject: result for mget [last:3 tar + gzip] (1/1) (Elena Lolabrigita ML)
+#
+# _DOC_MODE_ <=> [last:10 tar + gzip]
+# _PART_ <=> (1/4)
+# _ML_FN_ <=> $ML_FN (here is "(Elena Lolabrigita ML)")
+#
+# $NOT_SHOW_DOCMODE is obsolete, it equals you discard _PART_.
+#
+# value: string
+MGET_SUBJECT_TEMPLATE: result for mget _DOC_MODE_ _PART_ _ML_FN_
+
+
+#####################################################################
+# ### Section: Digest/Matome Okuri Configurations ###
+.j Section::Digest ¤Þ¤È¤á¤ª¤¯¤ê
+#
+# $MSEND_MODE_DEFAULT is the default of msend (when e.g. m=3)
+# and the format is the same as $MGET_MODE_DEFAULT.
+# which is "tar.gz" format.
+
+# Subject template in Digest/matome okuri.
+# automatic substitute is done before send the reply; For example,
+# Digest -Matome Okuri- Article 768 [last:10 tar + gzip] (1/1) (Elena ML)
+#
+# _ARTICLE_RANGE_ <=> Article 768
+# _DOC_MODE_ <=> [last:10 tar + gzip]
+# _PART_ <=> (1/4)
+# _ML_FN_ <=> $ML_FN (here is "(Elena ML)")
+#
+# $NOT_SHOW_DOCMODE is obsolete, it equals you discard _PART_.
+#
+.j ¤Þ¤È¤áÁ÷¤ê¥á¡¼¥ë¤ÎSubject: ¥Æ¥ó¥×¥ì¡¼¥È
+# value: string
+MSEND_SUBJECT_TEMPLATE: Digest _ARTICLE_RANGE_ _PART_ _ML_FN_
+
+.j ¤Þ¤È¤áÁ÷¤ê¤Î¡Öï¤Ë¤É¤³¤Þ¤ÇÁ÷¤Ã¤¿¤«¡×¤Îµ­Ï¿¤ò¤¹¤ë¥Õ¥¡¥¤¥ë
+# Digest/Matome Okuri rc file
+# value: filename string
+MSEND_RC: $VARLOG_DIR/msendrc
+
+.j ¤Þ¤È¤áÁ÷¤ê¤Î¥Ç¥Õ¥©¡¼¥ë¥È
+# rfc1153 or rfc934
+# obsoletes $USE_RFC1153, $USE_RFC1153_DIGEST, $USE_RFC934
+# value: mode string
+MSEND_MODE_DEFAULT:
+
+.j ¤Þ¤È¤áÁ÷¤ê¥á¡¼¥ë¤ÎSubject: ¤Î¥Ç¥Õ¥©¡¼¥ë¥È
+.j Îò»Ë: ¸ß´¹À­¤Î¤¿¤á¡£¸½ºß¤Ç¤Ï°ÕÌ£¤Ê¤·
+# Subject:
+# value: string
+MSEND_DEFAULT_SUBJECT:
+
+.j ¥È¥é¥Õ¥£¥Ã¥¯¤Î¤Ê¤¤Æü¤Ï
+.j ¡Öº£Æü¤Ï¤Þ¤È¤á¤ª¤¯¤ê¤¹¤ë¤Ù¤­¤â¤Î¤¬¤Ê¤¤¡×¤È
+.j £Í£Ì¤Ë¥¢¥Ê¥¦¥ó¥¹¤ò¤À¤¹¤«¡©(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï"¤À¤µ¤Ê¤¤")
+# If no articles to send, we send "no traffic" to the member of $MAIL_LIST
+# with the subject $MSEND_NOTIFICATION_SUBJECT if $MSEND_NOTIFICATION is set.
+# value: 1/0
+MSEND_NOTIFICATION:
+
+.j ¤½¤Î subject:
+# value: string
+MSEND_NOTIFICATION_SUBJECT:
+
+.j ¤Þ¤È¤á¤ª¤¯¤ê¤Ç¤Ï X-ML-Info: ¤ÏÉÔɬÍפ«?(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï X-ML-Info:¤Ä¤­)
+# not require X-ML-Info: in the "mget";
+# value: 1/0
+MSEND_NOT_USE_X_ML_INFO:
+
+.j ¤Þ¤È¤á¤ª¤¯¤ê¤Î¤Ä¤¤¤Ç¤Ë newsyslog ¤ò¹Ô¤Ê¤¦¤«¡©(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¤¹¤ë)
+# not do newsyslog in the sunday morning. $NOT_USE_NEWSYSLOG (CFVersion 2)
+# value: 1/0
+MSEND_NOT_USE_NEWSYSLOG:
+
+
+#####################################################################
+# ### Section: Other Files for Configurations and Logs ###
+.j Section::Files ¥Õ¥¡¥¤¥ëÅù
+
+.j Message-ID: ¥ë¡¼¥×¥Á¥§¥Ã¥¯¤Ç»È¤¦¥­¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë
+# cache of loop check
+# value: filename string
+LOG_MESSAGE_ID: $VARRUN_DIR/msgidcache
+
+.j ¥á¡¼¥ëËÜʸ¤Î¥Á¥§¥Ã¥¯¥µ¥à¤Ç¥ë¡¼¥×¥Á¥§¥Ã¥¯¤ò¤¹¤ë»þ»È¤¦¥­¥ã¥Ã¥·¥å¥Õ¥¡¥¤¥ë
+# cache of mailbody cksum
+# value: filename string
+LOG_MAILBODY_CKSUM: $VARRUN_DIR/bodycksumcache
+
+# $MEMBER_LIST sent by "# member" command
+# $ACTIVE_LIST sent by "# active" command
+# == delivery list (active member list)
+
+.j $MEMBER_LIST £Í£Ì¤Î¥á¥ó¥Ð¡¼¤«Ç§¾Ú¤¹¤ë»þ¤Î¥á¥ó¥Ð¡¼¥ê¥¹¥È
+.j $ACTIVE_LIST ÇÛÁ÷Àè¥ê¥¹¥È
+# value: filename string
+MEMBER_LIST: $DIR/members
+ACTIVE_LIST: $DIR/actives
+
+.j ̾Á°¤ÎÄ̤ê
+.j guide ¥¬¥¤¥É
+.j objective ÌÜŪ
+.j help ¥Ø¥ë¥×¥Õ¥¡¥¤¥ë
+.j
+.j XXX guide ¤È objective ¤Ã¤Æ¤É¤¦¤Á¤¬¤¦¤ó¤À¤í¤¦¤Í¡©
+.j XXX ¤·¤¤¤Æ¤¤¤¨¤Ð£Í£Ì¤ËÆþ¤Ã¤Æ¤¤¤ë¿Í¤Ë¤À¤±¤³¤Ã¤½¤ê¶µ¤¨¤ë¾ðÊó¤¬
+.j XXX ´Þ¤Þ¤ì¤Æ¤¤¤ë¤Î¤¬ objective ¤Ê¤Î¤À¤í¤¦
+# ATTENTION: only "guide" is also send to strangers
+#
+# $GUIDE_FILE sent by "# guide" command,
+# $OBJECTIVE_FILE sent by "# objective" command
+# $HELP_FILE sent by "# help" command
+# value: filename string
+GUIDE_FILE: $DIR/guide
+OBJECTIVE_FILE: $DIR/objective
+HELP_FILE: $DIR/help
+
+.j ¥á¡¼¥ë¤ÎÅê¹Æ¤òµñÈݤ¹¤ëºÝ¤Ë»È¤¦¥Æ¥ó¥×¥ì¡¼¥È
+# WHEN REJECT_*_HANDLER is "reject", we return this file to the poster
+# value: filename string
+DENY_FILE: $DIR/deny
+
+.j ¥í¥°¥Õ¥¡¥¤¥ë
+.j XXX mget¤Î¥í¥°¤À¤±Ê̤Τâ¤Î¤Ë¤¹¤ë¤È¤¤¤¦µ¡Ç½¤â¤¢¤ë¤³¤È¤Ï¤¢¤ë¤¬¡Ä
+# $LOGFILE log file
+# $MGET_LOGFILE log file for mget routine, the same file in default.
+# value: filename string
+LOGFILE: $DIR/log
+MGET_LOGFILE: $DIR/log
+
+.j ¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë¤ò¤¢¤²¤¿»þ¤Ë¥Ç¥Ð¥Ã¥°¾ðÊó¤òÅǤ¯¥Õ¥¡¥¤¥ë
+.j $LOGFILE ¤È¤ÏÊѤ¨¤Æ¤ª¤¯¤È¤Ê¤Ë¤«¤ÈÊØÍø¤«¤â¤·¤ì¤Ê¤¤
+# when -d2 ($debug = 2), logs this file.
+# value: filename string
+DEBUG_LOGFILE: $DIR/log.debug
+
+.j Åê¹Æ¥á¡¼¥ë¤Î¥µ¥Þ¥ê
+# article summary file
+# value: filename string
+SUMMARY_FILE: $DIR/summary
+
+.j Åê¹Æ¥á¡¼¥ë¤Î X-Mail-Count: ¤Î¿ô»ú¤òÊݸ¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë
+# sequence number file
+# value: filename string
+SEQUENCE_FILE: $DIR/seq
+
+.j flock(2)¤¬»È¤¨¤Ê¤¤OS¾å¤Ç»È¤¦¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤Î̾Á°
+.j $USE_FLOCK = 0 (flock¤ò»È¤ï¤Ê¤¤)»þ¤Ï rename(2)¤ò»È¤Ã¤Æ¤¤¤ë
+# rename(2) lock (liblock.pl)
+# value: filename string
+LOCK_FILE: $VARRUN_DIR/lockfile.v7
+
+
+#####################################################################
+# ### Section: SMTP and Delivery ###
+.j Section::SMTP ¥á¡¼¥ë¤ÎÇÛÁ÷·Ï¤Ë¤Ä¤¤¤Æ(SMTP)
+#
+# [IPC] to speak to Sendmail via Simple Mail Transfer Protocol($PORT/tcp).
+# $HOST is an arbitrary host(if you can access it) which runs MTA
+# (e.g. sendmail). If the Mailing List Server machine is week,
+# you can use the sendmail of another powerful host(host).
+.j ¥á¡¼¥ë¤ÎÇÛÁ÷¤Ë»È¤¦¥Û¥¹¥È¡£¥Ç¥Õ¥©¡¼¥ë¥È¤Ïfml¤¬Áö¤Ã¤Æ¤¤¤ë¥Û¥¹¥È¼«¿È
+.j
+.j Ãí: ISP¤Ë¤è¤Ã¤Æ¤Ïfml¤¬Áö¤ë¥Û¥¹¥È¤È¥á¡¼¥ëÇÛÁ÷¤Ë»È¤¦¥Û¥¹¥È¤¬°Û¤Ê¤ë
+.j ¤è¤¯Ä´ºº¤µ¤ì¤¿¤¤
+# value: string
+HOST: localhost
+
+.j smtp port ¤ÎÈֹ档¥Ç¥Õ¥©¡¼¥ë¥È¤Ï 25/tcp
+# value: number
+PORT: 25
+
+.j ¥á¡¼¥ëÇÛÁ÷¤ÎÍÍ»Ò¤Î¥í¥°¤ò¤È¤ë¥Õ¥¡¥¤¥ë
+.j ¥Ç¥Ð¥Ã¥°ÍÑÅÓ
+# IF $NOT_TRACE_SMTP IS 1 (default 0), we log the SMTP session to $SMTP_LOG
+# IF $TRACE_SMTP_DELAY IS 1, we logs the delay of response between SMTP server.
+# value: filename string
+SMTP_LOG: $VARLOG_DIR/_smtplog
+
+.j ¥á¡¼¥ëÇÛÁ÷¤Î¥í¥°¤ò¤È¤ë¤«¡©(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¤È¤ë)
+# value: 1/0
+NOT_TRACE_SMTP: 0
+TRACE_SMTP_DELAY:
+
+.j Ê£¿ô¤Î¥Û¥¹¥È¤ÎMTA¤ò»È¤Ã¤ÆÊÂÎóÇÛÁ÷¤ò¤¹¤ëºÝ¤Ë²¿Âæ»È¤¦¤Î¤«¡©¤ò»ØÄꤹ¤ë
+.j @HOSTS ¤È¤¤¤¦ÇÛÎó¤ËÄêµÁ¤µ¤ì¤¿¥Û¥¹¥È¤ò»È¤¦
+# IF YOU USE PLURAL SMTP SERVER FOR DELIVERY, Please set the number to
+# $MCI_SMTP_HOSTS and define them to @HOSTS as the array components.
+MCI_SMTP_HOSTS:
+
+.j ¥ê¥ì¡¼¥µ¡¼¥Ð
+.j XXX ¥á¡¼¥ë¥ê¥ì¡¼¤Ï¸½Âå¤Ç¤Ï¤¢¤Þ¤ê°ÕÌ£¤¬¤Ê¤¤
+.j XXX SPAM¤Ê¤É¤Ç°­¤¤¤³¤È¤Ë¤Ð¤«¤ê»È¤ï¤ì¤½¤â¤½¤â¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¤Î¤¬ÉáÄÌ
+# ## Relay server ##
+# each user relay is defined in delivery list as "m=relay-host".
+# If $DEFAULT_RELAY_SERVER is set, we apply it for all members.
+# value: string
+DEFAULT_RELAY_SERVER:
+
+.j CF¤Î static routing
+.j XXX ¥á¡¼¥ë¥ê¥ì¡¼¤Ï¸½Âå¤Ç¤Ï¤¢¤Þ¤ê°ÕÌ£¤¬¤Ê¤¤
+.j XXX SPAM¤Ê¤É¤Ç°­¤¤¤³¤È¤Ë¤Ð¤«¤ê»È¤ï¤ì¤½¤â¤½¤â¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¤Î¤¬ÉáÄÌ
+# CF (by motonori@wide.ad.jp) base relay control if $RELEY_HACK is on.
+# with %RELAY_GW, %RELAY_NGW, %RELAY_NGW_DOM (set in librelayhack.pl)
+# $CF_DEF is CF's configuration files;
+# **ATTENTION**; we do not use sendmail.cf but CF's configuration.
+# value: 1/0
+RELAY_HACK:
+
+.j CF¤ÎÀßÄê¥Õ¥¡¥¤¥ë
+# value: filename string
+CF_DEF:
+
+.j fml¤¬ÇÛÁ÷¥ê¥¹¥È¤ò¥á¡¼¥ë¥µ¡¼¥Ð¤ËÅϤ¹¤Î¤Ç¤Ï¤Ê¤¯
+.j ²Í¶õ¤Î¥¢¥É¥ì¥¹¤ËÅϤ·¤Æ¥á¡¼¥ë¥µ¡¼¥Ð¤Ç¥ê¥¹¥È¤òŸ³«¤¹¤ë
+.j ¥á¥â¥ê¤¬¾¯¤Ê¤¤¾ì¹ç(Îã: 16M 486 machine)¤Ê¤É¤ËÆÃ¤ËÍ­¸ú
+.j
+.j fml.pl ¤Ï°ì¤Ä¤Î¥¢¥É¥ì¥¹ <list-outgoing@$DOMAIN> ¤Ø
+.j list-outgoing@$DOMAIN ¤¬Å¸³«
+.j
+# list-going@domain is a real distribution address. Fml does not
+# pass rcpt list to MTA but only this address.
+# XXX: dedicated to minmin sama:D
+# value: 1/0
+USE_OUTGOING_ADDRESS:
+
+.j ²Í¶õ¤Î¥¢¥É¥ì¥¹ <list-outgoing@$DOMAIN>
+# value: string
+OUTGOING_ADDRESS:
+
+.j VERPs (Variable Envelope Return Paths) ¤ò»È¤¦
+.j qmail¤Î¥Þ¥Ë¥å¥¢¥ë¤Ê¤É¤òÆÉ¤Þ¤ì¤¿¤¤
+.j ¤â¤Á¤í¤ó¼õ¤±¤È¤ì¤ë¤è¤¦¤ËÀßÄ꤬ÊÌÅÓMTA¤ËɬÍפǤ¢¤ë
+# VERPs: Variable Envelope Return Paths. See qmail documents for more details.
+USE_VERP:
+
+
+#####################################################################
+# ### Section: MISC ###
+.j Section::Misc ¤½¤Î¾
+
+.j MIME decode ¤ò¤¹¤ë¤«¡©"¤¹¤ë"¤¬¥Ç¥Õ¥©¡¼¥ë¥È
+# ## Sub Section: MIME ##
+# Mime Decode On if $USE_MIME;
+# e.g. Decode $SUMMARY_FILE subject and so on.
+# default 1 from 2.1C#13
+# value: 1/0
+USE_MIME: 1
+
+.j obsolete
+.j $SPOOL_DIR ¤Ëµ­»ö¤òÊݸ¤¹¤ë»þ¤Ëµ­»ö¤òMIME decode¤·¤Æ¤·¤Þ¤¦
+.j Îò»Ë: Éå¤Ã¤¿MUA¤Î¤¿¤á¤Ë¤¢¤ë¡£º£»þ»È¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤
+# NOT RECOMMENDED OPTION:
+# articles in the spool are MIME-DECODED for poor environment users.
+# These articles may be insane in strict MIME oriented mail interfaces.
+# value: 1/0
+MIME_DECODED_ARTICLE:
+
+
+# ## Sub Section: Preamble and Trailer for Mail Body ##
+.j Section::Misc::CommandReportMail ¥³¥Þ¥ó¥É¤Î·ë²Ì¤Ê¤É¤Î¥á¡¼¥ë
+# If you always append some message in the command reply mail body,
+# you can use these variables. For example, the mail body becomes
+#
+# $PREAMBLE_MAILBODY
+# original body
+# $TRAILER_MAILBODY
+#
+# If you use the article distributed in ML, you must use some hooks.
+# For example, append this in the last of config.ph (but before 1;)
+# $SMTP_OPEN_HOOK = q#
+# $e{'Body'} = $PREAMBLE_MAILBODY. $e{'Body'} .$TRAILER_MAILBODY;
+# #;
+# Please see doc/tutorial for our policy behind this.
+#
+.j ¥³¥Þ¥ó¥É¤Î·ë²Ì¤Ê¤É¤òÊÖ¤¹»þ¤Ë¥á¡¼¥ëËÜʸ¤Î
+.j $PREAMBLE_MAILBODY ËÜʸ¤ÎÁ°
+.j $TRAILER_MAILBODY ËÜʸ¤Î¸å
+.j ¤Ë²¿¤«¤ò¤Ä¤±¤ë¡£
+.j
+.j Ãí: Åê¹ÆÍѤΥ᡼¥ë¤Î¤¿¤á¤Ç¤Ï¤Ê¤¤¤Î¤ÇÃí°Õ
+.j
+# value: string
+PREAMBLE_MAILBODY:
+TRAILER_MAILBODY:
+
+
+# ## Sub Section: Reply Configurations ##
+.j Section::Misc::ReplyMail ¤½¤Î¾
+# In the last of e.g. "command status report", we add
+# "$GOOD_BYE_PHRASE $FACE_MARK" :-) in the last of the reply.
+# So the standard form is
+#
+# message
+# FYI message generated by the function $PROC_GEN_INFO.
+# $GOOD_BYE_PHRASE $FACE_MARK
+#
+.j ¥³¥Þ¥ó¥É¤Î·ë²Ì¤Ê¤É¤òÊÖ¤¹»þ¤Î¥á¡¼¥ëËÜʸ¤ÎºÇ¸å¤Ë¤Ä¤±¤ë¤´°§»¢:)
+# value: string
+GOOD_BYE_PHRASE: --$MAIL_LIST, Be Seeing You!
+FACE_MARK:
+
+.j X-ML-Info: ¤ÎÆâÍÆ¤òÀ¸À®¤¹¤ë´Ø¿ô̾
+.j ÆÈ¼«¤Î´Ø¿ô¤òºî¤Ã¤Æ¸Æ¤Ó½Ð¤»¤ÐÆÈ¼«¤Î X-ML-Info: ¤¬ºî¤ì¤ë
+# value: function name string
+PROC_GEN_INFO: GenInfo
+
+
+# ## Sub Section: Lock Algorithm ##
+.j Section::Misc::Lock ¥í¥Ã¥¯
+# use flock for lock algorithm if $USE_FLOCK is on.
+# see flock(2), alarm(3). If not, we rename(2) base lock.
+# The timeout of rename(2) lock is rand(3) * $MAX_TIMEOUT secs.
+.j flock(2)¤ò»È¤¦¤«¡©¥Ç¥Õ¥©¡¼¥ë¥È¤Ï"»È¤¦"
+# value: 1/0
+USE_FLOCK: 1
+
+.j flock¤Ç¤Ê¤¤rename(2)¤Î»þ¤Î¥¿¥¤¥à¥¢¥¦¥È(retry²ó¿ô)
+.j Â绨ÇĤˤϽ½¿ôÊ¬ÄøÅÙ
+# value: number
+MAX_TIMEOUT: 200
+
+
+# ## Sub Section: misc ##
+.j Section::Misc::Misc ¤½¤Î¾¤¤¤í¤¤¤í
+# Not spooling (default is "spooling")
+.j $SPOOL_DIR¤Ëµ­»ö¤òÊݸ¤·¤Ê¤¤(¥Ç¥Õ¥©¡¼¥ë¥È¤Ï"Êݸ¤¹¤ë")
+# value: 1/0
+NOT_USE_SPOOL:
+
+.j fml 1.5 °ÊÁ°¤È¤Î¸ß´¹¥â¡¼¥É
+# "$CFVersion < 2" equals "$COMPAT_FML15 = 1;"
+# value: 1/0
+COMPAT_FML15: 0
+
+.j ¸Å¤¤¥Õ¥¡¥¤¥ë¤Ï .0 .1 ¤Ê¤É¤Î¤è¤¦¤Ësuffix¤òÊѤ¨¤ÆÊݸ¤¹¤ë
+.j $NEWSYSLOG_MAX ²ó¤Ï»Ä¤ë
+.j Îã:
+.j log.3 -> log.4, log.2 -> log.3, log.1 -> log.2, log.0 -> log.1, log -> log.0
+.j log.4 -> log.5 ¤Ï¤Ê¤¯¡¢¾Ãµî¤µ¤ì¤ë¤À¤±
+.j XXX OS¤Ë¤è¤Ã¤Æ¤Ï newsyslog(8)¤ò¤ß¤é¤ì¤¿¤¤¡£
+# newsyslog library maximum number. default is 4. So
+# log.3 -> log.4, log.2 -> log.3, log.1 -> log.2, log.0 -> log.1, log -> log.0
+# value: number
+NEWSYSLOG_MAX: 4
+
+.j fmlÉí°¤Îcron¤Î¤¿¤á¤Îcrontab¤Î¾ì½ê¤Èpid¥Õ¥¡¥¤¥ë
+.j XXX Vixie cron ¤Î¤Ê¤¤OS¤Ç¤ÎÏäʤΤÇÉáÄ̤ϻȤï¤Ê¤¤
+# cron configurations for bin/cron.pl NOT system Vixie cron(8)
+# value: filename string
+CRONTAB: etc/crontab
+CRON_PIDFILE: var/run/cron.pid
+
+.j cron¤¬¼Â¹Ô¤·¤¿ÆâÍÆ¤ò$MAINTAINER¤ËÃΤ餻¤ë(default ¤¹¤ë)
+.j XXX Vixie cron¤È°ì½ï
+# value: 1/0
+CRON_NOTIFY: 1
+
+.j ¥¯¥í¥¹¥Ý¥¹¥È¤ò¹Íθ¤¹¤ë¡£
+.j ¹Íθ¤¹¤ë£Í£Ì·²¤Ë¤Ä¤¤¤ÆÄêµÁ¥Õ¥¡¥¤¥ë¤¬É¬Í×
+# cross operations
+# value: 1/0
+USE_CROSSPOST:
+
+.j ¥¢¥É¥ì¥¹¤ÈËÜ̾¤ÎÂбþ¥ê¥¹¥È¤ò»È¤¦
+.j
+.j -- doc/Japanese/ °Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ê¤É¤ò»²¾È
+.j
+.j ¤³¤ì¤Þ¤Ç¤Î fml ¤Ç¤Ï¡¢¥á¥ó¥Ð¡¼°ìÍ÷¤ò 'members' ¥³¥Þ¥ó¥É¤Ç¼è¤ê´ó¤»¤ë¤È
+.j ¥á¥ó¥Ð¡¼Á´°÷¤Î¥¢¥É¥ì¥¹¤¬ÊÖÁ÷¤µ¤ì¤Æ¤­¤Þ¤¹¤¬¡¢¥¢¥É¥ì¥¹¤À¤±¤Ç¤Ï郎ï¤Ê¤Î¤«
+.j ¤ï¤«¤ê¤Ë¤¯¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤·¤¿¡£
+.j ¤³¤Î¥â¥¸¥å¡¼¥ë libmember_name.pl ¤Ï¡¢¤½¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤¿¤á¤Ë¡¢³Æ¥á¥ó¥Ð¡¼
+.j ¤Î̾Á° (´ðËÜŪ¤Ë¤Ï¡¢mail ¤Î From: ¥Ø¥Ã¥À¤Ë½ñ¤«¤ì¤Æ¤¤¤ë̾Á°(gecos)) ¤ò´ÉÍý
+.j ¤¹¤ëµ¡Ç½¤òÉղä·¤Þ¤¹¡£
+.j ¤³¤Î¥â¥¸¥å¡¼¥ë¤òÍ­¸ú¤Ë¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢µ¡Ç½¤¬Äɲá¦Êѹ¹¤µ¤ì¤ë¹àÌܤò°Ê²¼
+.j ¤Ëµ­½Ò¤·¤Þ¤¹¡£
+.j ¡ü ¼«Æ°ÅÐÏ¿¥â¡¼¥É¤ÇFrom:¤«¤é¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÀ¸À®¤¹¤ë
+.j ¡ü 'members', 'member' ¥³¥Þ¥ó¥É¤Ç̾Á°¤òÉղ乤ë
+.j ¡ü 'name' ¥³¥Þ¥ó¥É (¿·µ¬)
+.j ¡ü 'admin name' ¥³¥Þ¥ó¥É (¿·µ¬)
+.j
+# Under $USE_MEMBER_NAME is set, commands on member lists
+# are with Gecos Fields which are extracted from From: field
+# in the time of auto registration.
+# Author: Masayuki FUKUI <fukui@sonic.nm.fujitsu.co.jp>
+# value: 1/0
+USE_MEMBER_NAME:
+
+
+#####################################################################
+# ### Section: Expire and Archive ###
+.j Section::Archive µ­»ö¤ÎExpire¤È¥¢¡¼¥«¥¤¥Ö¤Î¼«Æ°ºîÀ®
+
+# If $USE_EXPIRE is set, we do expiration function built-in (2.1 release)
+# default is "NOT Expiration" or "Manual Expiration".
+# Expiration limit is $EXPIRE_LIMIT, which syntax is
+# e.g. 7days(days) or 100 (articles left in spool)
+# If you re-generate $SUMMARY_FILE, set $EXPIRE_SUMMARY
+#
+.j ¼«Æ°Åª¤Ë¸Å¤¤µ­»ö¤ò¾Ã¤¹¤«¡©¡Ê¤·¤Ê¤¤¡Ë
+.j $EXPIRE_SUMMARY ¤¬0¤Ç¤Ê¤¤¤Ê¤é $SUMMARY_FILE ¤âÀ¸À®¤·Ä¾¤¹
+# value: 1/0
+USE_EXPIRE: 0
+EXPIRE_SUMMARY:
+
+.j ¤É¤Î¤¯¤é¤¤¸Å¤¯¤Ê¤Ã¤¿¤é¾Ã¤¹¤Î¤«¡©
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï7Æü´Ö
+# value: number / ( number + day/week/month )
+EXPIRE_LIMIT: 7days
+
+# If $USE_ARCHIVE is on, we do automatically archive, which is
+# spool/articles is aggregated to e.g. "$ARCHIVE_DIR/100.tar.gz"
+# by the unit $ARCHIVE_UNIT.
+#
+# the location of store (when $USE_ARCHIVE on): $ARCHIVE_DIR
+# the search path order : $ARCHIVE_DIR @ARCHIVE_DIR
+#
+# If @ARCHIVE_DIR is set and $ARCHIVE_DIR is not set,
+# we use $ARCHIVE_DIR[0] as the $ARCHIVE_DIR.
+#
+.j ¼«Æ°Åª¤Ë¥¢¡¼¥«¥¤¥Ö¤òºî¤ë¤«¡©
+.j $SPOOL_DIR ¤«¤é $ARCHIVE_DIR/100.tar.gz (X-Mail-Count:¤¬1 ¡Á 100)
+.j ¤òÀ¸À®¤¹¤ë¡£
+.j Ãí: Ì·½â¤·¤Ê¤¤¤è¤¦¤Ë expire ¤Ï½½Ê¬¤æ¤Ã¤¯¤ê¹Ô¤Ê¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+.j
+# value: 1/0
+USE_ARCHIVE: 0
+
+.j tar.gz ¤òºî¤ëºÝ¤Î°ì¤Ä¤Îtar.gz¤¢¤¿¤ê²¿¸Ä¤Îµ­»ö¤òÆþ¤ì¤ë¤«
+.j Ãí: °ÕÌ£¤ÏƱ¤¸¤À¤¬ $DEFAULT_ARCHIVE_UNIT ¤Ï¸ß´¹À­¤Î¤¿¤á¤Î¤â¤Î
+.j µ¤¤Ë¤·¤Ê¤¯¤ÆÎɤ¤
+# value: number
+ARCHIVE_UNIT: 100
+DEFAULT_ARCHIVE_UNIT: 100
+
+.j tar.gz ¤òºî¤ë¥Ç¥£¥ì¥¯¥È¥ê
+# value: directory string
+ARCHIVE_DIR: var/archive
+
+.j "index"¥³¥Þ¥ó¥É¤Ï
+.j $SPOOL_DIR ¤ÎÆâÍÆ¤ä tar.gz ¤Ê¤É¤Î¾õ¶·¤ò¶µ¤¨¤Æ¤¯¤ì¤ë
+.j $INDEX_FILE ¤¬¤¢¤ë¤Ê¤é¤½¤ì¤ò¥á¡¼¥ë¤ÇÊÖ¤¹
+.j ¤Ê¤¤¤Ê¤éfml¤¬ $SPOOL_DIR $ARCHIVE_DIR ¤ÎÃæ¿È¤òÄ´¤Ù¤ÆÊÖ¤¹
+# "index" command; in default we scan spool and archives and reports. But
+# "# index" send $INDEX_FILE if $INDEX_FILE exists;
+# value: filename string
+INDEX_FILE: $DIR/index
+
+.j fml¤¬ $SPOOL_DIR $ARCHIVE_DIR ¤ÎÃæ¿È¤òÄ´¤Ù¤ÆÊÖ¤¹»þ¤Ë
+.j ¥Ç¥£¥ì¥¯¥È¥ê¤Î̾Á°¤ò½Ð¤¹¤«¡©¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï¶µ¤¨¤Ê¤¤
+# value: 1/0
+INDEX_SHOW_DIRNAME: 0
+
+
+# ### Section: Library Commands ###
+.j Section::Library ¥é¥¤¥Ö¥é¥ê¥³¥Þ¥ó¥É
+.j
+.j £Í£ÌÃæ¤Ë¤¢¤ë¥ß¥Ë£Í£Ì¤Î¤è¤¦¤Ê¤â¤Î
+.j ¥¢¡¼¥«¥¤¥Ö¤ËÃÖ¤¤¤¿¤ê¾Ã¤·¤¿¤ê¤¹¤ë
+.j Îã: ºî¶ÈÍѤΥɥ­¥å¥á¥ó¥È¤Ê¤É¤Î¼õÅϤ·¤Ë»È¤¦
+.j
+# You can put and get files by "library" commands.
+# In default, @DenyProcedure = ('library'); So 'library' command is disabled;
+# Set @DenyProcedure = ('') in LOCAL CONFIG part (the last of config.ph).
+#
+.j $LIBRARY_DIR ¥é¥¤¥Ö¥é¥ê¥³¥Þ¥ó¥É¤ÎHOME
+.j $LIBRARY_ARCHIVE_DIR ¥¢¡¼¥«¥¤¥Ö¤ÎÃÖ¤­¾ì½ê
+# value: directory string
+LIBRARY_DIR: var/library
+LIBRARY_ARCHIVE_DIR: archive
+
+
+# ## Sub Section: newsyslog(8) ##
+.j Section::NewSysLog newsyslog(8)
+# to turn over \$DIR/log
+.j $LOGFILE ¤Î turn over ¤Î»þ¤À¤±backup¤Î¿ô¤òÁý¤ä¤¹
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ç¤Ï $NEWSYSLOG_MAX ²ó
+# value: number
+LOGFILE_NEWSYSLOG_LIMIT:
+
+.j $MEMBER_LIST $ACTIVE_LIST ¤ÎÊѹ¹¤ÎºÝ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò¤¹¤ë
+.j ¤½¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤¬¤¢¤ëÄøÅÙÂ礭¤¤¤Ê¤é newsyslog(8)¤òŬÍѤ¹¤ë
+# to turn over \$DIR/actives.bak and \$DIR/members.bak,
+# 150K = 30*5000
+# value: number / (number + K/M)
+AMLIST_NEWSYSLOG_LIMIT: 150K
+
+
+# ### Section: Html Configurations ###
+.j Section::HTML µ­»ö¤òHTML¤Ë¼«Æ°ÊÑ´¹¤¹¤ë
+# HTML Mode Configurations (libsynchtml.pl)
+# Please see doc/tutorial for the details.
+# AUTO_HTML_GEN == AUTOmatic HTML GENeration
+# if $AUTO_HTML_GEN, we generte html'ed articles in $DIR/$HTML_DIR
+.j µ­»ö¤òHTML¤Ë¼«Æ°ÊÑ´¹¤¹¤ë ($AUTO_HTML_GEN)
+.j ¥¹¥ì¥Ã¥É²½¤¹¤ë ($HTML_THREAD)
+.j ÈÖ¹æ½ç¤Î¾ì¹ç¤Ï¡¢¿·¤·¤¤µ­»ö¤¬ºÇ½é¤ÎÊý¤Ë¤Ê¤ë¤è¤¦¤Ë¤¹¤ë
+.j ($HTML_INDEX_REVERSE_ORDER)
+# value: 1/0
+AUTO_HTML_GEN:
+HTML_THREAD: 1
+HTML_INDEX_REVERSE_ORDER: 1
+
+.j HTML²½¤µ¤ì¤¿µ­»ö¤ò¤Ä¤¯¤ë¾ì½ê
+.j WWW¤Ç¸ø³«¤¹¤ë»þ¤Ï¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥ê¥ó¥¯¤ò¤Ï¤ë
+# value: directory string
+HTML_DIR: htdocs
+
+.j ¸Å¤¤HTML²½¤µ¤ì¤¿µ­»ö¤ò¾Ã¤¹¤«¡© (¾Ã¤µ¤Ê¤¤¤Î¤¬¥Ç¥Õ¥©¡¼¥ë¥È)
+# options: Please see doc/tutorial for the details.
+# value: number
+HTML_EXPIRE_LIMIT:
+
+.j
+# value: string
+HTML_INDEX_TITLE:
+
+.j ¥­¥ã¥Ã¥·¥å
+# value: filename string
+HTML_DATA_CACHE:
+HTML_DATA_THREAD:
+
+.j *.html ¤ÎºÝ¤Î¥Õ¥£¥ë¥¿
+HTML_OUTPUT_FILTER:
+
+.j ¥¹¥¿¥¤¥ë¥·¡¼¥È¤Î̾Á°
+# HTML 4.0; example: "fml.css"
+# value: filename string
+HTML_STYLESHEET_BASENAME:
+
+.j ¥¹¥ì¥Ã¥ÉÀ¸À®¤Î¥¢¥ë¥´¥ê¥º¥à»ØÄê
+# value: default / prefer-in-reply-to
+HTML_THREAD_REF_TYPE: prefer-in-reply-to
+
+.j ¥¹¥ì¥Ã¥É¤Î½çÈÖ¡£¥Ç¥Õ¥©¡¼¥ë¥È¤Ïµ­»ö¤Î½çÈÖÄ̤ê(¾å¤ÎÊý¤¬²áµî)
+.j reverse-number ¤Ë¤¹¤ë¤È¾å¤ÎÊý¤¬°ìÈֺǶá¤Î¤â¤Î
+# value: "" / reverse-number
+HTML_THREAD_SORT_TYPE:
+
+.j htdocs/¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê/html¥Õ¥¡¥¤¥ë ¤Î¤è¤¦¤Ê¹½Â¤¤Ë¤Ê¤ë
+.j ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Îñ°Ì
+.j Îã:
+.j 100Ä̤ǣ±¥Ç¥£¥ì¥¯¥È¥ê
+.j °ìÆü¤´¤È
+# value: number / day / week / month / infinite
+HTML_INDEX_UNIT: day
+
+.j ¥¹¥ì¥Ã¥É¤Î¥¤¥ó¥Ç¥ó¥È¤Î¥¹¥¿¥¤¥ë
+# value: "" / UL
+HTML_INDENT_STYLE: UL
+
+.j ²èÁü¤Î½èÍý
+.j <IMAGE SRC=kenken.jpg>
+.j <A HREF=kenken.jpg>
+# image file embedding style
+# value: A / IMAGE
+HTML_MULTIPART_IMAGE_REF_TYPE:
+
+.j HTML¥Õ¥¡¥¤¥ë¤Ø¤Îumask
+# html file umask
+# value: "" / umask
+HTML_DEFAULT_UMASK:
+HTML_WRITE_UMASK:
+
+
+# ### Section: Interface to other Services (http,ftp,gopher,www) ###
+.j Section::Services ¾¤Î¥µ¡¼¥Ó¥¹¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹
+.j
+.j ̾Á°¤ÎÄ̤ê:-)
+.j
+# Please see doc/tutorial for the details.
+# *_DIR value: directory string
+# *_FILE value: filename string
+# *_SERVER value: string
+# *_PORT value: number
+FTPMAIL_SERVER:
+FTP_DIR:
+FTP_HELP_FILE:
+DEFAULT_GOPHER_PORT:
+DEFAULT_GOPHER_SERVER:
+DEFAULT_HTML_FIELD:
+DEFAULT_HTTP_PORT:
+DEFAULT_HTTP_SERVER:
+
+.j whois ¥Ç¡¼¥¿¥Ù¡¼¥¹
+.j ¥Ç¥Õ¥©¡¼¥ë¥È¤Ï¥í¡¼¥«¥ëDISK¾å¤Ë¤¢¤ë
+.j -h host ¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤ë¤È¾¤Îwhois¤ØÊ¹¤­¤Ë¤¤¤¯
+.j
+.j XXX ¤¿¤Ö¤óº£»þwhois¥µ¡¼¥Ð¤Ê¤ó¤Æ»È¤Ã¤Æ¤Ê¤¤¤È»×¤¦;-)
+.j
+# "whois": default is search of local database file
+# If "whois -h host" syntax is given, we connects "host" whois server.
+# If $USE_WHOIS set, you can use local database $WHOIS_DB.
+# If you have local whois server (inetd), you can also use it.
+# If "whois help" is given, send back $WHOIS_HELP_FILE if it exists.
+#
+.j whois ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»È¤¦(default »È¤ï¤Ê¤¤)
+# value: 1/0
+USE_WHOIS:
+
+.j whois server¤Ø¤Î¥ê¥ì¡¼¤¹¤ë¤¬¥Ç¥Õ¥©¡¼¥ë¥È¤Ê¤é¤½¤Î¥µ¡¼¥Ð¤Î¥Û¥¹¥È̾
+# value: string
+DEFAULT_WHOIS_SERVER:
+
+.j ¥í¡¼¥«¥ë¥Ç¥£¥¹¥¯¾å¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë̾
+# value: filename string
+WHOIS_DB: $VARDB_DIR/whoisdb
+
+.j ¥Ø¥ë¥×
+WHOIS_HELP_FILE:
+
+.j whois database¤ÏÆüËܸìÊÑ´¹¤·¤Æ¤ß¤ë¤«¡©¤¹¤ë¤¬¥Ç¥Õ¥©¡¼¥ë¥È
+# do Japanese conversion or not? for the result from whois server
+# value: 1/0
+WHOIS_JCODE_P: 1
+
+
+#####################################################################
+# ### Section: Architecture Dependence ###
+.j Section::OS ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à
+
+.j ¥Û¥¹¥È¤Î¥¿¥¤¥× "CPU¤È¥á¡¼¥«¡¼Ì¾¤ÈOS"
+.j GNU autoconf ¤Î config.guess ¤¬¿ä¬¤·¤¿ÃÍ
+# cpu-type manufacturer operating-system by GNU config.guess ("makefml")
+# value: string
+CPU_TYPE_MANUFACTURER_OS:
+
+.j struct sockaddr
+.j ËÜÍèOS°Í¸¡£ makefml¤¬¿ä¬¤·¤Æ¤¯¤ì¤ë
+# struct sockaddr
+# value: string
+STRUCT_SOCKADDR: S n a4 x8
+
+.j flock(2) ¥Ñ¥é¥á¡¼¥¿
+.j ËÜÍèOS°Í¸
+# flock system call; please see "/usr/include/sys/file.h"
+# value: number
+LOCK_SH: 1
+LOCK_EX: 2
+LOCK_NB: 4
+LOCK_UN: 8
+
+.j ¥Û¥¹¥È¤ÏSYSV·Ï¤ÎOS¤À¤È»×¤¨¤Èfml¤Ë¶µ¤¨¹þ¤à
+.j makefml¤¬¿ä¬¤Ë¼ºÇÔ¤·¤¿¤È¤­¤Ë»È¤¦¤À¤í¤¦
+# solaris 2 compatible (for not-automatic-checked OS's ;-)
+# value: 1/0
+COMPAT_SOLARIS2:
+
+.j ioctl(2)
+.j fmlÉí°¤Îcron¤¬»È¤¦¤¯¤é¤¤¤Ê¤Î¤ÇÉáÄ̤ϴط¸¤Ê¤¤
+# we can emulate daemon(3) ?
+# value: 1/0
+NOT_USE_TIOCNOTTY:
+
+.j $CPU_TYPE_MANUFACTURER_OS ¤Ë°Í¸¤¹¤ë
+.j UNIX ¤Ê¤é1¤½¤ì°Ê³°¤Ï0
+# In Unix, always yes set 1 in &SetDefaults;
+# value: 1/0
+HAS_GETPWUID:
+HAS_GETPWGID:
+HAS_ALARM:
+
+.j ¥×¥í¥°¥é¥à¤Î¥Ñ¥¹Ì¾
+.j &path¤Ï cf/config ¤¬¼«Æ°Åª¤ËÊä´Ö¤¹¤ë
+# programs which may be used in the fml library
+# these are automatically set by "makefml"
+# value: filename string
+SENDMAIL: &path(sendmail)
+TAR: &path(tar) cf -
+UUENCODE: &path(uuencode)
+COMPRESS: &path(gzip) -c
+ZCAT: &path(gzcat:zcat:gzip\s-cd)
+LHA: &path(lha)
+ISH: &path(ish)
+ZIP: &path(zip)
+PGP: &path(pgp)
+RCS: &path(rcs)
+CI: &path(ci)
+BASE64_DECODE:
+BASE64_ENCODE:
+MD5: &path(md5:md5sum)
+
+
+LOCAL_CONFIG:
+
+# ## Sub Section: Available Hooks ##
+# You can set customized hooks here. See doc/tutorial's chapter "HOOKS".
+# For example available hooks are
+# $START_HOOK, $DISTRIBUTE_START_HOOK, $SMTP_OPEN_HOOK
+# $HEADER_ADD_HOOK, $DISTRIBUTE_CLOSE_HOOK, $COMMAND_HOOK
+# $ADMIN_COMMAND_HOOK, $RFC1153_CUSTOM_HOOK, $MSEND_OPT_HOOK
+# $FML_EXIT_HOOK, $FML_EXIT_PROG, $MSEND_START_HOOK
+# $REPORT_HEADER_CONFIG_HOOK, $AUTO_REGISTRATION_HOOK, $MSEND_HEADER_HOOK
+# $SMTP_CLOSE_HOOK, $MODE_BIFURCATE_HOOK. $HTML_TITLE_HOOK
+#
+# ## Sub Section: Available Arrays and Assoc-Arrays ##
+# Also you can set here arrays and association arrays:
+#
+# @MEMBER_LIST, @ACTIVE_LIST, @CROSSPOST_CF
+# @HOST, @HOSTS, @MAIL_LIST_ALIASES, @HdrFieldsOrder
+#
+# value: perl statement
diff --git a/gnu/dist/fml4/cf/README b/gnu/dist/fml4/cf/README
new file mode 100644
index 00000000..0d99348b
--- /dev/null
+++ b/gnu/dist/fml4/cf/README
@@ -0,0 +1,15 @@
+The scripts and configurations under cf/ is the base of fml configurations.
+
+* fml (after fml 2.2.1) defines available values for each variable.
+ We use "# value: xxx" format in cf/MANIFEST, and the available values
+ follows:
+
+ # value: directory string
+ # value: filename string
+ # value: 1/0
+ # value: number
+ # value: string
+ # value: regexp string
+ # value: perl statement
+
+$Id: README,v 1.2 2000/10/28 14:37:42 fukachan Exp $
diff --git a/gnu/dist/fml4/cf/compat.ignore b/gnu/dist/fml4/cf/compat.ignore
new file mode 100644
index 00000000..959a5687
--- /dev/null
+++ b/gnu/dist/fml4/cf/compat.ignore
@@ -0,0 +1,16 @@
+BRACKET
+USE_FLOCK
+USE_ORIGINAL_MESSAGE_ID
+ML_MEMBER_CHECK
+AUTO_REGISTERED_UNDELIVER_P
+ERRORS_TO
+REJECT_ADDR
+SKIP_FIELDS
+SENDMAIL
+COMMAND_SYNTAX_EXTENSION
+PROHIBIT_COMMAND_FOR_STRANGER
+NEWSYSLOG_MAX
+WHOIS_JCODE_P
+CRON_NOTIFY
+REMOTE_ADMINISTRATION_REQUIRE_PASSWORD
+CHECK_MESSAGE_ID
diff --git a/gnu/dist/fml4/cf/config b/gnu/dist/fml4/cf/config
new file mode 100755
index 00000000..889399d2
--- /dev/null
+++ b/gnu/dist/fml4/cf/config
@@ -0,0 +1,807 @@
+#!/usr/local/bin/perl
+#-*- perl -*-
+#
+# Copyright (C) 1993-1998 Ken'ichi Fukamachi
+# All rights reserved.
+# 1993-1996 fukachan@phys.titech.ac.jp
+# 1996-1998 fukachan@sapporo.iij.ad.jp
+#
+# FML is free software; you can redistribute it and/or modify
+# it under the terms of GNU General Public License.
+# See the file COPYING for more details.
+#
+# $Id: config,v 2.10 2003/01/15 16:00:52 fukachan Exp $
+
+
+# Init;
+$ERROR_LOG = "etc/motd.error";
+unlink $ERROR_LOG if -f $ERROR_LOG;
+
+require 'getopts.pl';
+&Getopts("m:hdDr:csnfrFiI:v");
+
+$no_dns = $opt_n;
+$debug = $opt_d;
+$debug2 = $opt_D;
+$compat = $opt_c;
+$reverse = $opt_r;
+$install = $opt_i;
+$verbose = $rv'verbose = 1 if $opt_v; #';
+$file_substitute = $opt_F;
+
+#############################################################################
+
+
+
+$HEADER = q%# -*-Perl-*-
+#
+# FML Configuration File
+#
+# Copyright (C) 1993-2000 Ken'ichi Fukamachi
+# All rights reserved.
+# 1993-1996 fukachan@phys.titech.ac.jp
+# 1996-2000 fukachan@sapporo.iij.ad.jp
+#
+# FML is free software; you can redistribute it and/or modify
+# it under the terms of GNU General Public License.
+# See the file COPYING for more details.
+#
+%;
+
+&SetDefaults($opt_m);
+&SetIgnoredFields;
+
+if ($opt_r) {
+ &reverse($opt_r);
+}
+elsif ($opt_c) {
+ &SetIgnoredFields_Compat($opt_I);
+ &compat_output;
+}
+elsif ($opt_s) {
+ &show_entry;
+}
+elsif ($opt_f) {
+ &FixEnv;
+}
+else {
+ &readfile(@ARGV) unless $install;
+ &output;
+}
+
+
+exit 0;
+########################################################################
+
+sub SetIgnoredFields
+{
+ @Ignore = (PORT,TAR,UUENCODE,COMPRESS,ZCAT,HOST,LHA,ISH,
+ 'MAIL_LIST', ML_FN, MAINTAINER, XML,
+ 'PRECEDENCE', 'PROC_GEN');
+
+ for (@Ignore) {
+ $skip_key .= $skip_key ? "|$_" : $_;
+ }
+}
+
+
+sub SetIgnoredFields_Compat
+{
+ local($file) = @_;
+ local(@ignore);
+
+ ($file && -f $file) || (die "cannot open $file\n");
+
+ if (open(F, $file)) {
+ while (<F>) {
+ chop;
+ next if /^\s*$/;
+ push(@ignore, $_);
+ }
+ close(F);
+ }
+ else {
+ @ignore = (ML_MEMBER_CHECK,AUTO_REGISTERED_UNDELIVER_P,
+ ERRORS_TO,REJECT_ADDR,SKIP_FIELDS,SENDMAIL,
+ COMMAND_SYNTAX_EXTENSION,COMMAND_CHECK_LIMIT,
+ GUIDE_CHECK_LIMIT,PROHIBIT_COMMAND_FOR_STRANGER,
+ NEWSYSLOG_MAX,WHOIS_JCODE_P,CRON_NOTIFY,
+ REMOTE_ADMINISTRATION_REQUIRE_PASSWORD);
+ }
+
+ for (@ignore) { $skip_key .= $skip_key ? "|$_" : $_;}
+}
+
+
+sub readfile
+{
+ local($file) = @_;
+ local(@local_order);
+
+ ($file && open(F, $file)) || die "cannot open $file";
+
+ while (<F>) {
+ /^LOCAL_CONFIG/ && ($local_config = 1) && next;
+
+ if ($local_config) {
+ $LOCAL .= $_;
+ }
+ else {
+ next if /^\#/o; # skip "^# line" outside the LOCAL_...
+ s/^\$//; # strip '$' of "$VARIABLE"
+
+ if (/(\S+)\s+(.*)/) { # VARIABLE VALUE
+ local($key, $str) = ($1, $2);
+ $key =~ s/:$//;
+
+ push(@local_order, $key);
+
+ # SPECIAL FUNCTIONS
+ if ($str =~ /^&path\((\S+)\)(.*)/) {
+ local($opt) = $2;
+ eval("\$str = &search_path($1);");
+ $str = "$str$opt";
+ }
+
+ $str =~ s/@/\\@/g;
+ while ($str =~ s/\\\\@/\\@/g) { 1;}
+
+ # special handling of timezone
+ if ($key eq 'TZone' ||
+ $key eq 'TZONE_DST' ||
+ $key eq 'BRACKET') {
+ $str = "\"$str\""; # enforce "string" sytanx.
+ }
+ else {
+ $str = ($str =~ /^(\-\d+|\d+)$/) ? $str : "\"$str\"";
+ }
+
+ # print STDERR
+ # "Overwrite $key as $str\n\t(original $value{$key})\n";
+ $value{$key} = $str;
+ $rewritten{$key} = 1;
+ }
+ }
+ }
+
+ close(F);
+
+ # RESET
+ if ($file_substitute) { @order = @local_order;}
+ @CFDefiend = @local_order;
+}
+
+
+sub show_entry
+{
+ for $k (sort keys %value) {
+ next if $k =~ /^INFO:/;
+ next if $k =~ /^LOCAL_/;
+ printf "%-30s\t%s\n", $k, $value{$k};
+ printf "%s\n\n", $comment{$k};
+ }
+
+ $k = "LOCAL_CONFIG";
+ printf "%-30s\n%s\n", $k, $value{$k};
+}
+
+
+sub compat_output
+{
+ print $HEADER;
+
+ foreach $key (@order) {
+ next if $key eq 'debug';
+
+ if ($value{$key} eq "\"\"" ||
+ $value{$key} eq "''" ||
+ $value{$key} eq "0") {
+ next ;
+ }
+
+ if ($key eq 'LOCAL_CONFIG') {
+ print "\n\#\#\#LOCAL_CONFIG\n";
+ print $value{"LOCAL_CONFIG"};
+ }
+ elsif ($key !~ /^INFO:/ &&
+ (! ($value{$key} eq "0" || $value{$key} eq "\"\""))
+ ) { # non-nil variables
+
+ next if $key =~ /$skip_key/;
+
+ printf "%-20s || (%s = %s);\n", "\$$key", "\$$key", $value{$key};
+ }
+ }
+
+ print "\n1;\n";
+}
+
+
+sub output
+{
+ local($cf); # comment out flag;
+
+ print $HEADER;
+
+ foreach $key (@order) {
+ #print STDERR "key\t$key => $value{$key}\n";
+
+ undef $cf;
+ undef $ncr;
+ undef $comment;
+
+ next if $key eq "_SKIP_LINE_" && $prev_key eq "_SKIP_LINE_";
+ $prev_key = $key;
+
+ if ($key eq "_SKIP_LINE_") {
+ print "\n";
+ next;
+ }
+
+ # here may be overwritten!
+ # patched by racsho@cpdc.canon.co.jp (96/11/14)
+ if (!$install && !$rewritten{$key}) {
+ $cf = '# ';
+ }
+
+ # dependent on keys in "cf"
+ if (($key ne 'LOCAL_CONFIG') && (! $rewritten{$key})) {
+ local($xkey);
+ for $xkey (@CFDefiend) {
+ next if $xkey =~ /^_/;
+ next if $xkey =~ /^LOCAL_CONFIG/;
+
+ if ($value{$key} =~ /\$${xkey}/) {
+ printf STDERR " %-25s depends %s\n",
+ $key, $xkey if $debug;
+ undef $cf;
+ }
+ }
+ }
+
+ #print STDERR "[$cf]$key\t$value{$key}\n";
+
+ if ($key =~ /^INFO:/) { print "\n\n\n";}
+
+ if ($_ = $comment{$key}) { $ncr = tr/\n/\n/; $add_n++;}
+
+ if ($ncr <= 1) {
+ $s = sprintf("%-30s = %s; %s\n",
+ "${cf}\$${key}", $value{$key}, $_);
+ $s = length($s);
+ if ($s < 80) { $comment = "$_"; undef $add_n;}
+
+ }
+
+ if ($_ && (! $comment)) {
+ # add \n?
+ # $_ .= "\n";
+ # while (s/\n\n$/\n/) {;}
+
+ print $_;
+## print "\n"; # null line after the comments
+ }
+
+ if ($key eq "LOCAL_CONFIG") {
+ print "\n";
+ print ('#' x 70); print "\n";
+ print "\# \#\#\# Section: LOCAL CONFIG \#\#\#\n";
+ print $value{$key};
+ print "\n";
+ }
+ elsif ($key !~ /^INFO:/) {
+# printf "%-30s = %s;", "\$$key", $value{$key};
+ printf "%-30s = %s;", "${cf}\$$key", $value{$key};
+ print " $comment" if $comment;
+ print "\n";
+# print "\n" if $add_n; # cf version 3; not add "\n";
+ }
+ }
+
+
+ ##### LOCAL CONFIG #####
+ if ($LOCAL) {
+ print "\n\n\n";
+ print ('#' x 35); print "\n";
+ print "\#\ LOCAL CONFIG YOU CONFIGURED\n";
+ # print ('#' x 35); print "\n";
+ print $LOCAL;
+ }
+
+ print "\n1;\n";
+
+ # fml-support: 04205; Masayuki FUKUI <fukui@sonic.nm.fujitsu.co.jp>
+ return if $file_substitute;
+
+ for (keys %value) {
+ print STDERR "WARNING: $ARGV[0]: invalid keyword \`$_\' (ignored)\n"
+ unless $OrderHash{$_};
+ }
+}
+
+
+sub DNS
+{
+ if ($no_dns) {
+ print STDERR "No DNS Reconfigure\n";
+ $FQDN = 'aoi.domain.uja';
+ $DOMAINNAME = 'domain.uja';
+ return;
+ }
+
+ # fml 4.0
+ local($system) = $0;
+ $system =~ s/config$//;
+ $system .= ($ENV{'OS'} =~ /Windows_NT/) ? "..\\_fml\\" : "../.fml/";
+ $system .= 'system';
+ if (-f $system) {
+ print STDERR "use system = $system\n" if $debug0;
+ package __system;
+ eval require $main::system;
+ $main::HOSTNAME = $main::FQDN = $FQDN;
+ $main::DOMAINNAME = $DOMAIN;
+ package main;
+ if ($@) {
+ print STDERR $@;
+ }
+ else {
+ return ;
+ }
+ }
+
+ print STDERR "Verifying DNS...\n" if $debug;
+
+ local(@n, $hostname, $list);
+ chop($hostname = `hostname`); # beth or beth.domain may be possible
+ $HOSTNAME = $FQDN = $hostname;
+ @n = (gethostbyname($hostname))[0,1]; $list .= " @n ";
+ @n = split(/\./, $hostname); $hostname = $n[0]; # beth.domain -> beth
+ @n = (gethostbyname($hostname))[0,1]; $list .= " @n ";
+
+ foreach (split(/\s+/, $list)) { /^$hostname\.\w+/ && ($FQDN = $_);}
+ $FQDN =~ s/\.$//; # for e.g. NWS3865
+ $DOMAINNAME = $FQDN;
+ $DOMAINNAME =~ s/^$hostname\.//;
+
+ printf STDERR "%-10s %s\n", "HOSTNAME", $HOSTNAME if $debug;
+ printf STDERR "%-10s %s\n", "DOMAINNAME", $DOMAINNAME if $debug;
+ printf STDERR "%-10s %s\n", "FQDN", $FQDN if $debug;
+}
+
+sub host { $HOSTNAME;}
+sub dn { $DOMAINNAME;}
+sub fqdn { $FQDN;}
+
+sub SetDefaults
+{
+ local($file) = @_;
+ local($key, $local_config);
+
+ foreach ($file, './cf/MANIFEST', './MANIFEST') {
+ -f $_ && ($file = $_, last);
+ }
+
+ open(MANIFEST, $file) || die "CANNOT OPEN MANIFEST[$file]\n";
+ select(MANIFEST); $| = 1; select(STDOUT);
+
+ print STDERR "MANIFEST: $file\n\n" if $debug2;
+
+ &DNS;
+
+ while (<MANIFEST>) {
+ next if /^\#C\s+/i;
+
+ if (/MANIFEST,v ([\d\.]+) /) {
+ $Manifest_Version = $1;
+ }
+
+ if (/\# \#\#\# Section:\s*(.*)\s*\#\#\#\s*$/) {
+ $Index .= "\# $1\n";
+ }
+
+ if (/^\s*$/) {
+ undef $comment_key;
+ push(@order, "_SKIP_LINE_");
+ }
+
+ undef $local_config if /^(INFO|FML_CONFIG|LOCAL_CONFIG):/;
+
+
+ if (/^LOCAL_CONFIG/) {
+ $local_config = 1;
+ push(@order, "LOCAL_CONFIG");
+ next;
+ }
+
+ if ($local_config) {
+ $value{"LOCAL_CONFIG"} .= $_;
+ next;
+ }
+ elsif (/^(\S+):\s*(.*)/) { # VARIABLE NAME: DEFAULT VALUE
+ $key = $1;
+ $str = $2;
+ $attach++;
+
+ # keyword
+ print STDERR "define \$comment_key = $key;\n" if $verbose;
+ $comment_key = $key;
+
+
+ if ($str =~ /^&path\((\S+)\)(.*)/) {
+ $str = &search_path($1);
+ $FixError{$key} = 1 unless $str;
+ $str = $str . $2;
+
+ printf STDERR "%-10s %s\n", $key, $str if $opt_d;
+ $FixPath{$key} = $str;
+ }
+
+ if ($str =~ /^&fix:(\S+)\s+(\S+)/) {
+ $f = $1;
+ $str = $org = $2;
+ $str = &$f($str);
+
+ local($fqdn, $dn, $hostname) = &CheckDNS;
+ $FixDNS{'FQDN'} = $fqdn;
+ $FixDNS{'DOMAINNAME'}= $dn;
+ $FixError{$key} = 1 unless $str;
+ }
+
+ if ($str =~ /^&is_unix/) {
+ $str = ($ENV{'OS'} =~ /Windows_NT/) ? 0 : 1;
+ }
+
+ if ($key eq 'INFO') {
+ $INFO++;
+ $key = "INFO:$INFO";
+ }
+
+ push(@order, $key);
+
+ $str =~ s/@/\\@/g;
+ while ($str =~ s/\\\\@/\\@/g) { 1;}
+ $value{$key} = ($str =~ /^\d+$/) ? $str : "\"$str\"";
+
+ ## XXX 3.0B bug?
+ ## It is needed to avoid default_config.ph overwrites
+ ## config.ph definitions. For example $CONTROL_ADDRESS
+ ## in default_config.ph overwrites config.ph commnted-out
+ ## '# $CONTROL_ADDRESS' in config.ph ???
+ ## If $install mode (cf/config -i), WE SHOULD NOT
+ ## load value like acct@domain form to default_config.ph.
+ ## or SHOULD MODIFY cf/MANIFEST ???
+ # if ($install) {
+ # if ($str =~ /\@/) { $value{$key} = "''";}
+ # }
+
+ # next; # not next for comments
+ }
+
+ # comments buffer supported for version 3
+ if ($comment_key) {
+ if ($comment_buf) {
+ #print STDERR "$comment_key < allcated \$comment_buf\n";
+ #print STDERR "\$comment_buf line=($_)\n";
+
+ $comment{$comment_key} .= "$comment_buf";
+ undef $comment_buf;
+ }
+
+ /^\s*(\#.*)/ && ($comment{$comment_key} .= "$1\n");
+ }
+ else {
+ print STDERR "alloc \$comment_buf($_)\n" if $_ && $verbose;
+ /^\s*(\#.*)/ && ($comment_buf .= "$1\n");
+ }
+
+ } # while;
+
+ close(MANIFEST);
+
+ # making the hash
+ for (@order) { $OrderHash{$_} = 1;}
+
+ print STDERR "SetDefaults Done.\n\n" if $verbose;
+
+ $HEADER .= "\# Section Index (cf/MANIFEST $Manifest_Version)\n$Index\n";
+}
+
+
+sub CheckDNS
+{
+ local($fqdn, @fqdn, $hostname, $dn);
+
+ chop($fqdn = `hostname`);
+
+ if ($fqdn =~ /(\S+)\.(\S+)/) { # hostname gives FQDN
+ @fqdn = split(/\./, $fqdn);
+ $hostname = shift @fqdn;
+ $dn = join('.', @fqdn);
+ }
+ else {
+ $hostname = $fqdn;
+ local($name, $aliases, @opt) = gethostbyname($fqdn);
+ local($e) = "$name $aliases ";
+
+ if ($e =~ /$hostname\.([\S+\.]+)\. / ||
+ $e =~ /$hostname\.([\S+\.]+) /) {
+ $hostname = $hostname;
+ $dn = $1;
+ $fqdn = "$hostname\.$dn";
+ }
+ }
+
+ ($fqdn, $dn, $hostname);
+}
+
+
+sub FixEnv
+{
+ while (<>) {
+ chop;
+
+ if (/^\$(\S+)(\s*=\s*)\"(.*)\"(;.*)/) { # VARIABLE NAME: DEFAULT VALUE
+ $key = $1;
+ $eq = $2;
+ $str = $3;
+ $pad = $4;
+
+ if ($FixError{$key}) {
+ printf STDERR "Hmm... %-10s %s\n", $key, "NOT FOUND";
+ printf STDERR " Please fix it manually if you need\n";
+ &ErrorLog("\t$key NOT FOUND");
+ }
+
+ if ($newstr = ($FixPath{$key} || $FixDNS{$key})) {
+ if ($newstr ne $str) {
+ if ($newstr) {
+ printf STDERR "Fixing %-10s => %s\n", $key, $newstr;
+ }
+
+ $_ = "\$$key$eq\"$newstr\"$pad";
+ }
+ else {
+ printf STDERR "O.K. %-10s %s\n", $key, $str;
+ }
+ }
+ }
+
+ print "$_\n";
+ }
+}
+
+
+sub search_path
+{
+ local($f) = @_;
+ local($path) = $ENV{'PATH'};
+ local($prog, $dir, $p);
+
+ for $prog (split(/:/, $f)) {
+ ($p) = split(/\\s/, $prog);
+ $prog =~ s#\\s# #g;
+
+ for $dir (split(/:/, $path)) {
+ if (-f "$dir/$p") { return "$dir/$prog";}
+ }
+
+ print STDERR "search_prog; $prog is not found\n" if $debug;
+ }
+
+ "";
+}
+
+
+sub ErrorLog
+{
+ print STDERR "open(APP, >> $motd) < @_\n";
+
+ local($motd) = $ERROR_LOG || "etc/motd.error";
+ open(APP, ">> $motd") || retunr;
+ select(APP); $| = 1; select(STDOUT);
+ print APP "@_\n";
+ close(APP);
+
+ 1;
+}
+
+
+
+package rv;
+
+
+sub main'reverse
+{
+ local($file) = @_;
+
+ # &PreScanConfigPH($file);
+
+ ########################################################################
+ # TRICKY; (but why?)
+ for (DIR, CACHE_DIR, FTP_DIR) {
+ eval "\$$_ = '\$${_}';\n";
+ }
+
+ print STDERR "=== do $file in 'rv' Name Space ===\n" if $verbose;
+
+ do $file;
+
+ for (DIR, CACHE_DIR, FTP_DIR) {
+ eval "undef \$${_};";
+ }
+
+ undef $rv'RM; undef $rv'CP; undef $rv'LOCKFILE; undef $rv'LOCKDIR;
+ ########################################################################
+
+
+
+ if ($] =~ /5.\d\d\d/) {
+ *stab = *{"rv::"};
+ }
+ else {
+ (*stab) = eval("*_rv");
+ }
+
+ while (($key, $val) = each(%stab)) {
+ if ($verbose) {
+ print STDERR "\n".('-'x50);
+ print STDERR "\nTRY\t$key\n";
+ print STDERR "\t$key != [A-Z0-9_]\n" if $key !~ /^[A-Z0-9\_]+$/;
+ }
+
+ next if $key !~ /^[A-Z0-9\_]+$/;
+
+ local(*entry) = $val;
+
+ if ($verbose) {
+ if (defined $entry) {
+ print STDERR "GO \$\t$key\n";
+ }
+ elsif (defined @entry) {
+ print STDERR "GO \@\t$key\n";
+ }
+ elsif (defined %entry) {
+ print STDERR "GO \%\t$key\n";
+ }
+ elsif (defined &entry) {
+ print STDERR "GO \&\t$key\n";
+ }
+ else {
+ print STDERR "GO !=\t$key\n";
+ }
+ }
+
+ if (defined($entry)) {
+ print STDERR " ? $entry == $main'value{$key}\n" if $verbose;#';
+
+ next if "$entry" eq $main'value{$key};
+ next if "\"$entry\"" eq $main'value{$key};
+
+ print STDERR "\n\tDIFF $key\n\n" if $verbose;
+
+ if ($key =~ /HOOK/) {
+ if ($entry !~ /\#/) {
+ $OUT'HOOK .= "\$$key = q\#$entry\#;\n"; #';
+ }
+ elsif ($entry !~ /\%/) {
+ $OUT'HOOK .= "\$$key = q%$entry%;\n"; #';
+ }
+ elsif ($entry !~ /\@/) {
+ $OUT'HOOK .= "\$$key = q@$entry@;\n"; #';
+ }
+ else {
+ print STDERR "CONVERSION ERROR: ";
+ print STDERR "plaese define [$key]:\n$entry;\n";
+ }
+ }
+ else {
+ $entry =~ s/\012/\\n/g;
+ $value{$key} = $entry;
+ $other_value{$key} = $entry;
+ }
+
+ next;
+ }
+
+ if (defined @entry) {
+ undef $num;
+ $OUT'LOCAL .= "\@$key = (";
+ foreach (@entry) {
+ $OUT'LOCAL .= "," if $num++ > 0;
+ $OUT'LOCAL .= "'$_'";
+ }
+ $OUT'LOCAL .= ");\n";
+
+ next;
+ }
+
+ # Is there an associative array that isn't the one
+ # we're currently iterating through?
+
+ if ($key ne "_$package" && defined %entry) {
+ $OUT'LOCAL .= "\%$key = (\n"; #';
+ foreach $key (sort keys(%entry)) {
+ $OUT'LOCAL .= "'$key', '". $entry{$key} ."',\n";#';
+ }
+ $OUT'LOCAL .= ");\n"; #';
+
+ next;
+ }
+
+ $OUT'UNMATCH .= "$key ;\n";
+
+ } # %stab;
+
+
+
+ for $key (@main'order) {
+ if ($key =~ /INFO:/) {
+ print "\n" if $match;
+ undef $match;
+ next;
+ }
+
+ if (defined $value{$key}) {
+ printf "%-20s %s\n", "$key", $value{$key};
+ $match++;
+ }
+ }
+
+ undef $buffer;
+
+ for (keys %other_value) {
+ $v = $other_value{$_};
+ next if $main'OrderHash{$_}; #';
+ $buffer .= sprintf("\$%-20s = \"%s\";\n", $_, $v);
+ }
+
+
+ print "\n\nLOCAL_CONFIG\n\n";
+ print $OUT'HOOK;
+ print "\n";
+ print $OUT'LOCAL;
+
+
+ print "\n";
+ print "\#\#\# cf/config (reverse-mode) generates below \#\#\#\n";
+ print "\#\#\# NOT DEFINED ENTRIES in cf/MANIFEST ARE HERE \#\#\#\n";
+ print $buffer;
+}
+
+
+package dumpvar;
+
+sub rv'PreScanConfigPH #';
+{
+ local($file) = @_;
+
+ do $file;
+
+ if ($] =~ /5.\d\d\d/) {
+ *stab = *{"dumpvar::"};
+ }
+ else {
+ (*stab) = eval("*_dumpvar");
+ }
+
+ while (($key,$val) = each(%stab)) {
+ next if @vars && !grep($key eq $_,@vars);
+ local(*entry) = $val;
+
+ if (defined $entry) {
+ eval("$rv'\$$key = 1; undef $rv'\$$key");
+ }
+ elsif (defined @entry) {
+ eval("$rv'\@$key = 1; undef $rv'\@$key");
+ }
+ elsif ($key ne "_$package" && $key ne "_DB" && defined %entry) {
+ eval("$rv'\%$key = 1; undef $rv'\%$key");
+ }
+ else {
+ print STDERR "not match $key\n" if $verbose;
+ }
+ }
+}
+
+
+1;