summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fml/doc/en/tutorial/install/download.sgml14
-rw-r--r--fml/doc/en/tutorial/install/fml_on_unix.sgml48
-rw-r--r--fml/doc/en/tutorial/install/postfix.sgml27
-rw-r--r--fml/doc/en/tutorial/install/qmail.sgml5
-rw-r--r--fml/doc/en/tutorial/install/upgrade.sgml31
-rw-r--r--fml/doc/en/tutorial/operations/backup.sgml159
-rw-r--r--fml/doc/en/tutorial/operations/log.sgml87
-rw-r--r--fml/doc/en/tutorial/overview/fml.sgml188
-rw-r--r--fml/doc/en/tutorial/setup/apache.sgml68
-rw-r--r--fml/doc/en/tutorial/setup/cgi.sgml49
-rw-r--r--fml/doc/en/tutorial/setup/config.cf.sgml20
-rw-r--r--fml/doc/en/tutorial/setup/merge.fml4to8.sgml313
-rw-r--r--fml/doc/en/tutorial/setup/newml.recipes.sgml85
-rw-r--r--fml/doc/en/tutorial/setup/newml.sgml118
-rw-r--r--fml/doc/en/tutorial/setup/procmail.sgml36
-rw-r--r--fml/doc/en/tutorial/setup/qmail.sgml21
-rw-r--r--fml/doc/en/tutorial/setup/test.sgml39
-rw-r--r--fml/doc/en/tutorial/troubleshoot/chapter.sgml6
-rw-r--r--fml/doc/en/tutorial/troubleshoot/filesystem.sgml132
19 files changed, 1303 insertions, 143 deletions
diff --git a/fml/doc/en/tutorial/install/download.sgml b/fml/doc/en/tutorial/install/download.sgml
index 668e4b6b..abe4cdb5 100644
--- a/fml/doc/en/tutorial/install/download.sgml
+++ b/fml/doc/en/tutorial/install/download.sgml
@@ -1,11 +1,11 @@
<!--
- $FML: download.sgml,v 1.1 2003/07/24 15:37:36 fukachan Exp $
+ $FML: download.sgml,v 1.2 2003/07/26 09:10:40 fukachan Exp $
$jaFML: download.sgml,v 1.2 2002/07/06 14:55:17 fukachan Exp $
-->
<chapter id="download">
<title>
- Download &fmldevel; source code.
+ Download &fml8; source code.
</title>
@@ -17,8 +17,8 @@
<para>
You can find &fml8; source at
- <ulink url="ftp://ftp.fml.org/pub/fml-devel/">
- ftp://ftp.fml.org/pub/fml-devel/
+ <ulink url="ftp://ftp.fml.org/pub/fml8/">
+ ftp://ftp.fml.org/pub/fml8/
</ulink>.
You can get it by ftp.
</para>
@@ -31,8 +31,8 @@ Please get the latest one.
<para>
Also, you can find a daily snapshot at
-<ulink url="ftp://ftp.fml.org/pub/fml/daily-snapshots/fml-devel/source/">
-ftp://ftp.fml.org/pub/fml/daily-snapshots/fml-devel/source/
+<ulink url="ftp://ftp.fml.org/pub/fml/daily-snapshots/fml8/source/">
+ftp://ftp.fml.org/pub/fml/daily-snapshots/fml8/source/
</ulink>.
This snapshot is auto-build.
So it may not work well.
@@ -48,7 +48,7 @@ So it may not work well.
</title>
<para>
-You can find &fmldevel; under /fmlsrc in anoncvs.fml.org.
+You can find &fml8; under /fmlsrc in anoncvs.fml.org.
</para>
<para>
diff --git a/fml/doc/en/tutorial/install/fml_on_unix.sgml b/fml/doc/en/tutorial/install/fml_on_unix.sgml
index 4ac3a882..7793110d 100644
--- a/fml/doc/en/tutorial/install/fml_on_unix.sgml
+++ b/fml/doc/en/tutorial/install/fml_on_unix.sgml
@@ -1,5 +1,5 @@
<!--
- $FML$
+ $FML: fml_on_unix.sgml,v 1.1 2003/07/25 14:49:21 fukachan Exp $
$jaFML: fml_on_unix.sgml,v 1.5 2003/04/15 14:51:39 fukachan Exp $
-->
@@ -16,8 +16,7 @@
<para>
-Create the user "fml" and the group "fml" before running
-configure.
+Create the user "fml" and the group "fml" before running configure.
<screen>
% su root
# groupadd fml
@@ -212,7 +211,7 @@ Now you must run "make install".
</title>
<para>
-&fml8; installs under /usr/local by default.
+&fml8; installs files under /usr/local by default.
</para>
<para>
@@ -237,7 +236,8 @@ Now you must run "make install".
configuration files.
It corresponds with
&fml4;'s /usr/local/fml/.fml and default_config.ph.
- Files here specify version and library paths etlb.al.
+ /usr/local/etc/fmo/main.cf
+ here specify version and library paths et.al.
</entry>
</row>
@@ -264,7 +264,7 @@ Now you must run "make install".
<entry>
message templates
( &fml4;'s /usr/local/fml/messages/)
- language depends.
+ language dependendent.
</entry>
</row>
@@ -276,13 +276,23 @@ Now you must run "make install".
The top directory for mailing lists of the default domain.
same as &fml4;.
- caution:: the owner of /var/spool/ml
+ caution: the owner of /var/spool/ml
can be specified by configure arguments.
Prepare different directory for each domain.
- For example, var/spool/ml for fml.org (default domain),
+ For example, /var/spool/ml for fml.org (default domain),
whereas /var/spool/nuinui.net for nuinui.net domain
(virtual domain).
+
+ See <link linkend="virtualdomain.fml8.overview">
+ ml_home_prefix_maps
+ </link> for the relation between domain and directory.
+
+ Also see
+ <link linkend="virtualdomain">
+ <xref linkend="virtualdomain">
+ </link>
+ for the virtual domain detail.
</entry>
</row>
</tbody>
@@ -311,7 +321,7 @@ change user to "root" and run "make install" after configure runs.
<para>
You need not to run configure by the user root.
But, you need to run "make install" by root.
-So, it is good to run both by root.
+So, it may be better to run both by root.
<screen>
% su root
# ./configure
@@ -361,7 +371,7 @@ file locations et.al.
common over all mailing list on this host(site).
<footnote>
<para>
-This file corresponds to &fml4;'s site_init.ph.
+This file corresponds to &fml4;'s site_force.ph.
</para>
</footnote>
</para>
@@ -425,11 +435,12 @@ All filter are enabled by default.
<para>
"mime component filter" is important.
By default mime component filter is enabled,
-text/plain article can be passeed through &fml8;.
+Only text/plain article can be passed through &fml8;.
</para>
<para>
-To disable mime component filter, set
+To disable mime component filter on all ML's,
+set
<screen>
use_mime_component_filter = no
</screen>
@@ -454,8 +465,15 @@ at site_default_config.cf, and edit rules in
</title>
<para>
-You do not need edit /usr/local/etc/fml/main.cf but you need to edit
-/usr/local/etc/fml/virtual.
+You do not need edit /usr/local/etc/fml/main.cf
+but
+you need to edit ml_home_prefix_maps.
+You can use "makefml newdomain" command to control ml_home_prefix_maps.
+See
+<link linkend="setup.newml">
+"ML creation"
+</link>
+for newdomain command.
</para>
<para>
@@ -467,7 +485,7 @@ you need to specify other directory.
<para>
Specify the relation between domain and directory,
-edit /usr/local/etc/fml/virtual and set the following:
+edit /usr/local/etc/fml/ml_home_prefix and set the following:
<screen>
nuinui.net /var/spool/nuinui.net
</screen>
diff --git a/fml/doc/en/tutorial/install/postfix.sgml b/fml/doc/en/tutorial/install/postfix.sgml
index 8117b929..fc909978 100644
--- a/fml/doc/en/tutorial/install/postfix.sgml
+++ b/fml/doc/en/tutorial/install/postfix.sgml
@@ -1,5 +1,5 @@
<!--
- $FML$
+ $FML: postfix.sgml,v 1.1 2003/07/24 15:37:37 fukachan Exp $
$jaFML: postfix.sgml,v 1.3 2003/04/15 14:51:39 fukachan Exp $
-->
@@ -8,6 +8,9 @@
MTA configuration (postfix)
</title>
+<para>
+Please set up postfix properly when "makefml newml" can set up a ml.
+</para>
<sect2>
<title>
@@ -41,7 +44,7 @@ $mydomain).
</title>
<para>
-You need to edit both main.cf and virtual_map.
+You need to edit both main.cf and virtual_maps.
<screen>
allow_mail_to_commands = alias,forward,include
@@ -52,20 +55,32 @@ alias_maps = hash:/etc/mail/aliases
virtual_maps = hash:/var/spool/nuinui.net/etc/postfix/virtual
</screen>
-/var/spool/nuinui.net/etc/postfix/virtual is updated by makefml
-automatically.
+Both alias files and /var/spool/nuinui.net/etc/postfix/virtual are
+updated by makefml automatically.
+Here we support ml_home_prefix_maps defines
+<screen>
+nuinui.net /var/spool/nuinui.net
+</screen>
+relation.
</para>
<warning>
<para>
$mydestination should contain the default domain (may be $mydomain)
-but not virtual domain. Please see postfix document for more details.
+but not virtual domain (we assume we use postfix style virtual
+domain). Please see postfix document for more details.
</para>
<para>
When a new virtual domain is added,
-add the new aliases file to $alias_maps but do not edit virtual_maps.
+add the new aliases file to $alias_maps and $virtual_maps.
+</para>
+
+<para>
+Recent postfix has $virtual_alias_maps and $virtual_maps variables.
+But $virtual_alias_maps = $virtual_maps by default.
+You can use either.
</para>
</warning>
diff --git a/fml/doc/en/tutorial/install/qmail.sgml b/fml/doc/en/tutorial/install/qmail.sgml
index 0248fee4..629c32b1 100644
--- a/fml/doc/en/tutorial/install/qmail.sgml
+++ b/fml/doc/en/tutorial/install/qmail.sgml
@@ -1,5 +1,5 @@
<!--
- $FML$
+ $FML: qmail.sgml,v 1.1 2003/07/24 15:37:37 fukachan Exp $
$jaFML: qmail.sgml,v 1.3 2003/04/15 14:51:39 fukachan Exp $
-->
@@ -28,13 +28,14 @@ The template of /var/qmail/control/virtualdomains is created at
</title>
<para>
+It is good to prepare "ml.fml.org" domain for ml specific.
At
<screen>
/var/qmail/control/virtualdomains
</screen>
specify the following rule
<screen>
-fml.org:fml-fml.org
+ml.fml.org:fml-fml.org
</screen>
.
"makefml newml" can set up ~/.qmail-* automatically.
diff --git a/fml/doc/en/tutorial/install/upgrade.sgml b/fml/doc/en/tutorial/install/upgrade.sgml
index 877e1efd..913b89d3 100644
--- a/fml/doc/en/tutorial/install/upgrade.sgml
+++ b/fml/doc/en/tutorial/install/upgrade.sgml
@@ -1,16 +1,31 @@
<!--
- $FML: upgrade.sgml,v 1.1 2003/07/24 15:37:37 fukachan Exp $
+ $FML: upgrade.sgml,v 1.2 2003/07/26 09:06:36 fukachan Exp $
$jaFML: upgrade.sgml,v 1.3 2003/04/15 14:51:39 fukachan Exp $
-->
<chapter id="xxxgrade">
<title>
- upgrade/downgrade
+ Upgrade and Downgrade of &fml8;
</title>
+<warning>
+<para>
+This chapter describes upgrade and downgrade of &fml8;.
+</para>
+
+<para>
+See
+<link linkend="mergeml.fml4to8">
+<xref linkend="mergeml.fml4to8">
+</link>
+on the upgrade from &fml4; to &fml8;.
+</para>
+</warning>
+
+
<sect1 id="upgrade">
<title>
- upgrade
+ Upgrade
</title>
<para>
@@ -21,9 +36,9 @@ again.
</para>
<para>
-After &fml8; installation,
-rewrite fml_version line in /etc/fml/main.cf to the version installed now.
-Just when the file is saved, fml is changed to the new version.
+After &fml8; installation, rewrite fml_version line in
+/usr/local/etc/fml/main.cf to the version installed now. Just when
+the file is saved, fml is changed to the new version.
</para>
</sect1>
@@ -34,8 +49,8 @@ Just when the file is saved, fml is changed to the new version.
</title>
<para>
-No need to install. Edit /etc/fml/main.cf to back the fml_version to
-the previous one.
+No need to install. Edit /usr/local/etc/fml/main.cf to back the
+fml_version to the previous one.
</para>
<para>
diff --git a/fml/doc/en/tutorial/operations/backup.sgml b/fml/doc/en/tutorial/operations/backup.sgml
new file mode 100644
index 00000000..ce0557f3
--- /dev/null
+++ b/fml/doc/en/tutorial/operations/backup.sgml
@@ -0,0 +1,159 @@
+<!--
+ $FML$
+ $jaFML: backup.sgml,v 1.3 2004/10/06 09:07:41 fukachan Exp $
+-->
+
+
+<chapter id="operations.backup">
+ <title>
+ Back up of configurations
+ </title>
+
+
+<para>
+To preserve &fml8; configurations, back up the following two directories:
+<screen>
+/usr/local/etc/fml/
+$ml_home_prefix (e.g. /var/spool/ml/, domain specific)
+</screen>
+Attention:
+These directories holds all articles, log files and others et.al.
+</para>
+
+<para>
+It is better to back up MTA configurations.
+For example, /etc/postfix in the case of Postfix.
+</para>
+
+<para>
+In summary,
+the following three (2 + number of domains fml8 operatates) are targets.
+<screen>
+/etc/postfix/
+/usr/local/etc/fml/
+$ml_home_prefix (e.g. /var/spool/ml/)
+</screen>
+</para>
+
+
+<sect1 id="operations.backup.fml8.include">
+ <title>
+ Back up &fml8; configurations
+ </title>
+
+<para>
+To back up &fml8; configurations, it is enough to back up the
+following two directories. But it is too large since they contains
+articles, log files and all contents.
+<screen>
+/usr/local/etc/fml/
+$ml_home_prefix (e.g. /var/spool/ml/, domain specific)
+</screen>
+</para>
+
+<para>
+The hard disk is cheap. So it is safe to preserve all contents as
+could as possible.
+</para>
+
+<para>
+If you preserve only configuratoins, it is enough to back up the
+following files.
+</para>
+
+
+<sect2>
+ <title>
+ Configuration files back up
+ </title>
+
+<para>
+It is useful to make a list of targets based on the file naming
+convension.
+</para>
+
+<para>
+In the case of &fml8;, a file with .cf extension is a configuration
+file.
+The format of .cf file is
+<screen>
+key = value
+</screen>
+style. This style configuration files follow
+<screen>
+/usr/local/etc/fml/main.cf
+/usr/local/etc/fml/site_default_config.cf
+/EACH_ML_HOME_DIRECTORY/config.cf
+</screen>
+et.al.
+</para>
+
+<para>
+Configuration files with other syntax are
+<screen>
+/usr/local/etc/fml/mime_component_filter
+/usr/local/etc/fml/ml_home_prefix
+</screen>
+This type of files are space separeted.
+</para>
+
+<para>
+/usr/local/etc/fml/ contains only configuration files.
+So back up all under them.
+</para>
+
+</sect2>
+
+
+<sect2>
+ <title>
+ Address list back up
+ </title>
+
+<para>
+Lists of mail addresses are
+<screen>
+/ML_HOME_DIRECTORY/members*
+/ML_HOME_DIRECTORY/recipients*
+</screen>
+Article delivery uses recipients and members. For other roles,
+&fml8; uses members-$role and recipients-$role.
+So, back up all members* and recipients* files.
+</para>
+
+<para>
+Remoto administration by command mail (admin command mail) uses
+the following password files
+<screen>
+/ML_HOME_DIRECTORY/etc/passwd-$role
+</screen>
+. Back up /ML_HOME_DIRECTORY/etc/ too.
+</para>
+
+</sect2>
+
+</sect1>
+
+
+<sect1 id="operations.backup.fml8.exclude">
+ <title>
+ Back up all files except for some large directories.
+ </title>
+
+<para>
+It is easy to back up all files except for the following large
+directories. They contains large data or temporary files.
+<screen>
+spool articles
+tmp temporary files
+var useful data
+</screen>
+</para>
+
+<para>
+If you use rsync, rsync --exclude is useful.
+</para>
+
+</sect1>
+
+
diff --git a/fml/doc/en/tutorial/operations/log.sgml b/fml/doc/en/tutorial/operations/log.sgml
new file mode 100644
index 00000000..bced7c02
--- /dev/null
+++ b/fml/doc/en/tutorial/operations/log.sgml
@@ -0,0 +1,87 @@
+<!--
+ $FML$
+ $jaFML: log.sgml,v 1.2 2004/10/06 09:07:41 fukachan Exp $
+-->
+
+
+<chapter id="operations.log">
+ <title>
+ Logging
+ </title>
+
+
+<sect1 id="operations.log.see">
+ <title>
+ See log
+ </title>
+
+<para>
+<screen>
+% makefml log ML_NAME
+% fml ML_NAME log
+</screen>
+shows the latest 30 lines of log.
+</para>
+
+<para>
+GUI uses log command.
+</para>
+
+</sect1>
+
+
+<sect1 id="operations.log.computeroutput">
+ <title>
+ Show computer oriented log
+ </title>
+
+<para>
+When another command or CGI calls &fml8; CUI and wants to analyze the
+output, please use the following option.
+</para>
+
+<para>
+<screen>
+% makefml --log-computer-output COMMAND ML_NAME
+% fml --log-computer-output ML_NAME COMMAND
+</screen>
+It shows the computer oriented log into STDERR channel.
+</para>
+
+<para>
+For example
+<screen>
+% fml --log-computer-output elena@fml.org list
+rudo@nuinui.net
+1070109341 info lock channel=recipient_map_modify
+1070109342 info unlock channel=recipient_map_modify
+</screen>
+This example shows "TIME LOG_LEVEL MESSAGE" style log.
+It is suitable for computer proceessing.
+</para>
+
+<para>
+The command line option --log-computer-output is same effect as
+<screen>
+use_log_computer_output = yes
+</screen>
+in config.cf
+</para>
+
+<para>
+When "use_log_computer_output = yes" specified in config.cf, all
+programs are affected. So all programs shows the computer oriented log
+to STDERR. So use of command line option is recommended.
+</para>
+
+<para>
+We should use perl module which holds a set of functions. In this
+case, the print out engine is the class called as
+FML::Log::Print::Simple. The output style is contolled by
+$log_computer_output_engine in config.cf
+</para>
+
+</sect1>
+
+
+</chapter>
diff --git a/fml/doc/en/tutorial/overview/fml.sgml b/fml/doc/en/tutorial/overview/fml.sgml
index badbb82b..27ce618b 100644
--- a/fml/doc/en/tutorial/overview/fml.sgml
+++ b/fml/doc/en/tutorial/overview/fml.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: fml.sgml,v 1.1 2003/07/25 14:30:51 fukachan Exp $
+ $FML: fml.sgml,v 1.2 2003/07/27 18:11:40 fukachan Exp $
$jaFML: fml.sgml,v 1.4 2003/04/15 14:51:43 fukachan Exp $
-->
@@ -8,6 +8,14 @@
&fmldevel; overview
</title>
+<para>
+See
+<link linkend="changes">
+<xref linkend="changes">
+</link>
+on the detail of difference between &fml4; and &fml8;.
+</para>
+
<!-- ======================================================== -->
<sect1 id="overview.fml8">
@@ -21,29 +29,54 @@
<listitem>
<para>
+ &fml8; configuration file format is changed to
+ <link linkend="internal.config.cf">
new postfix style format configuration files (.cf files).
+ </link>
</para>
</listitem>
<listitem>
<para>
- usage of CUI is almost same as one of &fml4;
+ usage of CUI is almost same as &fml4;
(it is same as could as possible).
- You can use CUI (makefml and fml command)
- to create/remove an ML,
- to add/remove/change an addresse of ML members,
- to add/remove/change an address of remote administrators,
- to see log and member list,
- et.al.
+ You can use CUI
+ <link linkend="usage.onhost">
+ (makefml and fml command)
+ </link>
+ <screen>
+ to create/remove an ML,
+ to add/remove/change an addresse of ML members,
+ to add/remove/change an address of remote administrators,
+ to see log and member list,
+ et.al.
+ </screen>
Makefml and fml are same programs except for argument order.
</para>
+
+ <para>
+ See
+ <link linkend="changes.cui">
+ <xref linkend="changes.cui">
+ </link>
+ on the CUI usage difference between &fml4; and &fml8;.
+ </para>
+
</listitem>
<listitem>
<para>
- CGI interface.
+ GUI (CGI) interface.
The functions are a subset of CUI ones.
+ <screen>
+ to create/remove an ML,
+ to add/remove/change an address of ML members,
+ to add/remove/change an address of remote administrators,
+ to see log and member list,
+ et.al.
+ </screen>
+ The configuration file editing is incomplete yet.
</para>
</listitem>
@@ -53,19 +86,33 @@
article delivery,
header rewriting
and
- several filters.
+ several filters (
+ corresponding with &fml4;'s envelope filter and content filter
+ ).
</para>
</listitem>
<listitem>
<para>
command mail for users.
+ <screen>
+ to add/remove/change the address,
+ get article summary,
+ get old articles,
+ et.al.
+ </screen>
</para>
</listitem>
<listitem>
<para>
- command mail (admin command) for remote administratoin by mail.
+ command mail (admin command mail) for remote administratoin by mail.
+ <screen>
+ to add/remove/change an addresse of ML members,
+ to add/remove/change an address of remote administrators,
+ to see log and member list,
+ et.al.
+ </screen>
</para>
</listitem>
@@ -95,13 +142,18 @@
built-in module for HTML converter of articles.
support automatic conversion by default.
</para>
+
+ <para>
+ fmlhtmlify and makefml supports html conversion functions.
+ </para>
+
</listitem>
<listitem>
<para>
main programs (fml/libexec):
- fml.pl distribute command error
+ distribute command error
</para>
</listitem>
@@ -113,8 +165,6 @@
fmlailas
fmlconf
fmldoc
- fmlhtmlify
- fmlsch
makefml
fml
</para>
@@ -123,8 +173,27 @@
<listitem>
<para>
+ fml4 emulation:
+ if you replace fml.pl of fml4 and fml.pl of fml8,
+ fml8 runs as fml4.
+ </para>
+ </listitem>
+
+
+ <listitem>
+ <para>
+ After 2004 summer,
+ the queueing system is implemanted.
+ Currently the delivery system is queuing based.
+ So, &fml8; is a MTA in fact.
+ </para>
+ </listitem>
+
+
+ <listitem>
+ <para>
<link linkend="module.io.adapter">
- Abstracted IO
+ Abstracted IO layer
</link>
to get member list in unified way from
a file,
@@ -149,7 +218,7 @@
<important>
<para>
-You run GNU autoconf firstly, and "make install". It is standard in
+Run GNU autoconf firstly, and "make install". It is defact standard in
the world of open sources. This procedure is different from &fml4;
installation steps. It may confuse you if you are customered with
&fml4; But &fml8; is more friendly for package systems of free unix
@@ -158,13 +227,10 @@ like systems.
<para>
The main differece between &fml4; and &fml8; in installation is
-"work by root",
+"run programs as root",
"use of configure",
and
-editing of configuration files:
-/usr/local/etc/fml/main.cf
-and
-/usr/local/etc/fml/site_default_config.cf.
+editing of configuration files.
</para>
</important>
@@ -180,7 +246,7 @@ The brief flow of installation is as follows:
<listitem>
<para>
<link linkend="download">
- Download &fml8; source and expand it on the disk.
+ Download &fml8; source and extract it on the disk.
</link>
</para>
</listitem>
@@ -189,6 +255,7 @@ The brief flow of installation is as follows:
<para>
<link linkend="install.fml.unix">
Install it by user root.
+ </link>
Firstly, change user to "root" and create the user "fml" and
the group "fml".
Secondly, run
@@ -196,7 +263,6 @@ The brief flow of installation is as follows:
configure
</link>
and "make install".
- </link>
<screen>
% su root
# groupadd fml
@@ -207,19 +273,19 @@ The brief flow of installation is as follows:
</para>
<para>
- By default,
- main programs such as distribute, command, et.al. are installed into
- /usr/local/libexec/fml/.
- Also, installer installs utility programs to
- /usr/local/bin.
- <footnote>
- <para>
- You can control paths by
- <link linkend="install.fml.unix.configure">
- configure options.
- </link>
- </para>
- </footnote>
+ By default, 4.4 BSD style sub-directories are created.
+ The path is configurable at
+ <link linkend="install.fml.unix.configure">
+ configure options.
+ </link>
+ </para>
+
+ <para>
+ For example,
+ main programs called from MTA
+ such as distribute, command, et.al. are installed into
+ under /usr/local/libexec/fml/.
+ Instead, utility programs are installed to /usr/local/bin.
These are wrappers to call real programs at /usr/local/libexec/fml/.
</para>
@@ -236,7 +302,7 @@ The brief flow of installation is as follows:
<listitem>
<para>
<link linkend="guide.newml">
- Change user to "fml", create elena ML for test.
+ Change user to "fml" and create elena ML for test.
</link>
<screen>
% su fml
@@ -254,14 +320,16 @@ Both are same except for the syntax.
<listitem>
<para>
- Set up MTA.
+ Set up MTA which runs &fml8; programs.
</para>
</listitem>
<listitem>
<para>
+ <link linkend="test">
Test.
+ </link>
</para>
</listitem>
@@ -311,11 +379,29 @@ for more details.
In the virtual domain case, specify the whole address as an argument.
For example, to create an ML elena@nuinui.net, run the following command:
<screen>
+(At the first time)
+% su root
+% makefml newdomain nuinui.net /some/where/nuinui.net
+% su fml
+% makefml newml elena@nuinui.net
+
+(After the 2nd time)
% su fml
% makefml newml elena@nuinui.net
</screen>
</para>
+
+<warning>
+<para>
+See
+<link linkend="virtualdomain">
+<xref linkend="virtualdomain">
+</link>
+for the virtual domain case detail.
+</para>
+</warning>
+
</sect1>
@@ -332,7 +418,7 @@ In the case of the default domain (fml.org)
% makefml subscribe elena rudo@nuinui.net
</screen>
in the case of virtual domain (nuinui.net),
-specify the whole adress of ML.
+specify the whole adress of ML name.
<screen>
% su fml
% makefml subscribe elena@nuinui.net fukachan@sapporo.iij.ad.jp
@@ -355,7 +441,7 @@ In the case of the default domain (fml.org),
% makefml unsubscribe elena rudo@nuinui.net
</screen>
in the case of virtual domain (nuinui.net),
-specify the whole adress of ML.
+specify the whole adress of ML name.
<screen>
% su fml
% makefml unsubscribe elena@nuinui.net fukachan@sapporo.iij.ad.jp
@@ -374,11 +460,11 @@ specify the whole adress of ML.
<warning>
<para>
"makefml config" is a CUI to customize ML by menu form.
-BUT NOT yet implemented.
+BUT YET INCOMPLETE.
</para>
<para>
-Edit configuration files anyway.
+Edit configuration files anyway now.
</para>
</warning>
@@ -395,7 +481,7 @@ affects all ML on this host
irrespective of the default domain or virtual domains.
<footnote>
<para>
-This corresponds to site_init.ph of &fml4;.
+This corresponds to site_force.ph of &fml4;.
</para>
</footnote>
</para>
@@ -405,6 +491,14 @@ The format of site_default_config.cf is same as config.cf described
below.
</para>
+<para>
+See
+<link linkend="list.variables.by.alphabeticalorder">
+list of all variables
+</link>
+for the configurable variation.
+</para>
+
</sect2>
@@ -415,8 +509,12 @@ below.
<para>
To customize elena ML, edit /var/spool/ml/elena/config.cf file. The
-format is a little modified postfix style. It is different from both
-&fml4;'s config.ph and cf.
+format is
+<link linkend="internal.config.cf">
+ a little modified postfix style.
+</link>
+It is different from both &fml4;'s config.ph and cf.
+Add hooks after =cut line.
</para>
<para>
diff --git a/fml/doc/en/tutorial/setup/apache.sgml b/fml/doc/en/tutorial/setup/apache.sgml
new file mode 100644
index 00000000..728a29d4
--- /dev/null
+++ b/fml/doc/en/tutorial/setup/apache.sgml
@@ -0,0 +1,68 @@
+<!--
+ $FML: apache.sgml,v 1.4 2005/06/25 15:11:36 fukachan Exp $
+-->
+
+
+<chapter id="setup.apache">
+ <title>
+ Apache configuration
+ </title>
+
+
+<warning>
+
+<para>
+See
+<link linkend="cgi.internal.method">
+<xref linkend="cgi.internal.method">
+</link>
+for the &fml8; CGI internals.
+</para>
+
+</warning>
+
+
+<sect1 id="setup.apache.suexec">
+ <title>
+ Use suexec of apache
+ </title>
+
+<para>
+Build apache enabled with suexec.
+Run configure by
+<screen>
+(apache 1.x)
+configure --enable-suexec --suexec-caller=www
+</screen>
+The user "www" can call suexec.
+Please prepare a user specific for suexec-ed environment.
+</para>
+
+<para>
+After apache installation, change httpd.conf to allow ~user/cgi-bin/ form.
+<screen>
+Example:
+
+&lt;Directory /home/*/*/public_html&gt;
+ AllowOverride FileInfo AuthConfig Limit
+ Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
+ &lt;Limit GET POST OPTIONS PROPFIND&gt;
+ Order allow,deny
+ Allow from SPECIFIC_HOST
+ &lt;/Limit&gt;
+&lt;/Directory&gt;
+
+&lt;IfModule mod_mime.c&gt;
+ ... snip ...
+
+ AddHandler cgi-script .cgi
+
+ ... snip ...
+&lt;/IfModule&gt;
+</screen>
+</para>
+
+</sect1>
+
+
+</chapter>
diff --git a/fml/doc/en/tutorial/setup/cgi.sgml b/fml/doc/en/tutorial/setup/cgi.sgml
index 7a44906b..8e051b8e 100644
--- a/fml/doc/en/tutorial/setup/cgi.sgml
+++ b/fml/doc/en/tutorial/setup/cgi.sgml
@@ -1,5 +1,5 @@
<!--
- $FML$
+ $FML: cgi.sgml,v 1.1 2003/07/25 17:05:47 fukachan Exp $
$jaFML: cgi.sgml,v 1.4 2003/04/15 14:51:43 fukachan Exp $
-->
@@ -13,24 +13,29 @@
<para>
See the section
-<link linkend="internalcgi.method">
-<xref linkend="internalcgi.method">
+<link linkend="cgi.internal.method">
+<xref linkend="cgi.internal.method">
</link>
for CGI Internal details.
</para>
<para>
-We assumes you use suexec under apache.
+We assumes
+<link linkend="setup.apache.suexec">
+you use suexec under apache.
+</link>
</para>
<para>
-Now &fml8; provides the master cgi to control all ML's in one domain,
-but not support a ecgi for each ml. It is not yet implemented.
+Now &fml8; provides both the master cgi to control all ML's in one
+domain and a cgi for each ml.
+You can add and remove a user, or view member list et.al by this interface.
+Editing of configuration on this cgi is incomplete.
</para>
<para>
If you use postfix and qmail, you do not need to modify MTA
-configuration.
+configuration for cgi specific reason.
</para>
</warning>
@@ -38,7 +43,7 @@ configuration.
<sect1 id="setupcgi.install">
<title>
- "makefml newml" creates CGI script.
+ "makefml newml" creates CGI script always.
</title>
<para>
@@ -64,7 +69,6 @@ http://lists.fml.org/~fml/cgi-bin/fml/$domain/ml-admin/${ml_name}/config.cgi
Example:
http://lists.fml.org/~fml/cgi-bin/fml/fml.org/ml-admin/elena/config.cgi
</screen>
-which is not yet created (not implemented _o_).
</para>
<para>
@@ -90,7 +94,7 @@ http://lists.fml.org/~fml/cgi-bin/fml/fml.org/.htaccess
</para>
<para>
-The default .htaccess is dummy like this:
+The default .htaccess is a dummy like this:
<screen>
AuthName ByPassword
AuthType Basic
@@ -99,6 +103,11 @@ require valid-user
Please edit .htaccess properly.
</para>
+<para>
+Apache dos not support ~user style access by default.
+Please set up apache to enable it.
+</para>
+
</sect1>
@@ -188,4 +197,24 @@ Specify the address to subscribe and push "submit" at the center.
</sect1>
+<sect1 id="setupcgi.admin.cgi.skin">
+ <title>
+ CGI skin selection
+ </title>
+
+<para>
+config.cgi is TABLE and SELECT based.
+If you use old style menu, use menu.cgi.
+<screen>
+for a whole domain
+~fml/public_html/fml/DOMAIN/admin/menu.cgi
+
+for a ml
+~fml/public_html/fml/DOMAIN/ml-admin/menu.cgi
+</screen>
+</para>
+
+</sect1>
+
+
</chapter>
diff --git a/fml/doc/en/tutorial/setup/config.cf.sgml b/fml/doc/en/tutorial/setup/config.cf.sgml
index 290c9a03..f05bc2ff 100644
--- a/fml/doc/en/tutorial/setup/config.cf.sgml
+++ b/fml/doc/en/tutorial/setup/config.cf.sgml
@@ -1,5 +1,5 @@
<!--
- $FML$
+ $FML: config.cf.sgml,v 1.1 2003/07/25 17:05:47 fukachan Exp $
$jaFML: config.cf.sgml,v 1.3 2003/04/15 14:51:44 fukachan Exp $
-->
@@ -11,7 +11,7 @@
<para>
In running "makefml newml", makefml sets up
configuration files such as config.cf,
-include files for sendmail and postfix,
+include files for sendmail and postfix and
~fml/.qmail-* files.
<screen>
% su fml
@@ -30,7 +30,7 @@ edit config.cf.
<warning>
<para>
-no menu tool to edit config.cf yet implemented.
+menu tool to edit config.cf is incomplete.
</para>
</warning>
@@ -42,8 +42,20 @@ For example,
<screen>
"| /usr/local/libexec/fml/distribute elena@fml.org"
</screen>
-elena@fml.org in this argument determins
+/var/spool/ml/elena/include-ctl file follows:
+<screen>
+"| /usr/local/libexec/fml/commande elena@fml.org"
+</screen>
+/usr/local/libexec/fml/PROGMAR resolves ml_name and ml_domain from
+the arguments such as elena@fml.org.
+That is, elena@fml.org in this argument determines
values of $ml_domain and $ml_name.
+It is enough that ml_name and ml_domain in config.cf is a comment.
+</para>
+
+<para>
+The content of include, include-ctl and aliases are same as &fml4;
+except for the path.
</para>
</sect1>
diff --git a/fml/doc/en/tutorial/setup/merge.fml4to8.sgml b/fml/doc/en/tutorial/setup/merge.fml4to8.sgml
new file mode 100644
index 00000000..d67ff48d
--- /dev/null
+++ b/fml/doc/en/tutorial/setup/merge.fml4to8.sgml
@@ -0,0 +1,313 @@
+<!--
+ $FML: merge.fml4to8.sgml,v 1.6 2005/06/25 15:11:37 fukachan Exp $
+-->
+
+
+<chapter id="mergeml.fml4to8">
+ <title>
+ Convert &fml4; style ML to &fml8; style ML
+ </title>
+
+<para>
+2004/03: We have implemented a converter which converts ML HOME
+DIRECTORY ($DIR) such as /var/spool/ml/elena ($ml_home_dir in &fml8;)
+from &fml4; style to &fml8; style.
+It is incomplete but is being developed.
+</para>
+
+<para>
+2004/11:
+<link linkend="mergeml.fml4.overview">
+You can replace fml.pl of &fml4; with fml.pl of &fml8;.
+</link>
+now.
+It means that &fml8; directly emulates &fml4;.
+It enables easy upgrade from &fml4; to &fml8;.
+</para>
+
+
+<sect1 id="mergeml.fml4to8.overview">
+ <title>
+ Overview: &fml4; to &fml8; (1)
+ </title>
+
+<para>
+It is wrong that &fml8; works if &fml8; overwrites &fml4; programs.
+</para>
+
+<para>
+Currently &fml8; can work but it needs automatic conversion in the
+background.
+</para>
+
+<para>
+Firstly you want to upgrade all ML's at the same time from &fml4; to
+&fml8; ?
+It is better to upgrade from one to one ?
+When something fails, you want to downgrade your system if could.
+</para>
+
+<para>
+We want to support that upgrade of each ML. So it is available that
+some ML's are &fml8;, other ML's are &fml4; in one domein.
+Downgrading if needed are supported.
+</para>
+
+<para>
+One example of upgrade operation follows:
+<screen>
+1. install fml8
+
+2. (in the case of postfix) add &fml8; aliases to postfix's alias_maps.
+
+ Example:
+ alias_maps = hash:/etc/mail/aliases
+ hash:/var/spool/ml/etc/aliases (fml4)
+ hash:/var/spool/ml/etc/mail/aliases (fml8)
+
+
+3. convert &fml4; ML to &fml8; one.
+
+ fml $ml mergeml fml4's$DIR
+for example,
+ fml elena mergeml /var/spool/ml/elena
+</screen>
+Apply 3. for ML's which would be converted to &fml8;.
+</para>
+
+<para>
+You can use "makefml mergeml" command of aliases, include files,
+&fml4; configuration files and member lists from &fml4; to &fml8;.
+</para>
+
+<para>
+It is not easy to convert difficult config.ph file. Now we can convert
+simple config.ph to &fml8; config.cf style file automatically. We
+support this simple config.ph is generatd by &fml4;'s "makefml config"
+command.
+</para>
+
+</sect1>
+
+
+<sect1 id="mergeml.fml4.overview">
+ <title>
+ Overview: convert &fml4; to &fml8; (2)
+ </title>
+
+<para>
+2004/11: you can replace &fml4;'s fml.pl with &fml8;'s fml.pl.
+</para>
+
+<para>
+Configure like this.
+<screen>
+% su fml
+% make configure
+% su root
+# make install
+# mv /usr/local/fml/fml.pl /usr/local/fml/fml.pl.orig
+# ln -s /usr/local/libexec/fml/fml.pl /usr/local/fml/fml.pl
+# ln -s /usr/local/libexec/fml/msend.pl /usr/local/fml/msend.pl
+# ln -s /usr/local/libexec/fml/mead.pl /usr/local/fml/libexec/mead.pl
+</screen>
+</para>
+
+<para>
+Precisely &fml8; can not read &fml4; configuration file. If &fml8;'s
+fml.pl cannot find config.cf, it tries to convert config.ph in ML's
+home directory to config.cf, read it and starts to run.
+</para>
+
+<para>
+The conversion is incomplete but &fml8; can convert simple
+configurations manipulated by &fml4; CUI or GUI.
+</para>
+
+</sect1>
+
+
+<sect1 id="mergeml.fml4to8.config.diff">
+ <title>
+ Overview: difference between &fml4; and &fml8;
+ </title>
+
+<para>
+There are several &fml8; variables and functions not related with
+&fml4; since &fml8; is re-designed and re-coded from scratch.
+</para>
+
+<para>
+Also not one to one if the relation found.
+</para>
+
+<para>
+Let's see a few examples below.
+</para>
+
+
+<sect2>
+ <title>
+ Anyone can post
+ </title>
+
+<para>
+Users registered as members can post ML.
+This default behaviour is common between &fml4; and &fml8;.
+To set "anyone can post", in the case of &fml4;,
+<screen>
+$PERMIT_POST_FROM = "anyone";
+</screen>
+in the case of &fml8;,
+<screen>
+article_post_restrictions = reject_system_special_accounts
+ permit_anyone
+ reject
+</screen>
+.
+</para>
+
+</sect2>
+
+<sect2>
+ <title>
+ Subject tag
+ </title>
+
+<para>
+no subject tag by default.
+This is common between &fml4; and &fml8;
+To set the tag such as '[ML_NAME:00100]', in the case of &fml4;,
+<screen>
+$SUBJECT_TAG_TYPE = '[:]';
+</screen>
+This corresponds to the &fml8; configuration:
+<screen>
+article_header_rewrite_rules = rewrite_article_subject_tag
+
+article_subject_tag = [$ml_name:%05d]
+</screen>
+</para>
+
+</sect2>
+
+<sect2>
+ <title>
+ Disable specific command in command mail
+ </title>
+
+<para>
+Commands such as members are prohibited in &fml8; by default.
+&fml4; needs the following configurations:
+<screen>
+&amp;DENY_PROCEDURE('member');
+&amp;DENY_PROCEDURE('active');
+&amp;DENY_PROCEDURE('members');
+&amp;DENY_PROCEDURE('actives');
+&amp;DENY_PROCEDURE('status');
+&amp;DENY_PROCEDURE('stat');
+</screen>
+</para>
+
+<para>
+Old &fml4; use no filter by default but &fml8; uses filter by default.
+</para>
+
+<para>
+&fml8; applies confirmation for subscribe, chaddr, unsubscribe
+commands by default. &fml4; not. Currently &fml8; always applies
+confirmation, which is not disabled by configuration.
+</para>
+
+</sect2>
+
+</sect1>
+
+
+<sect1 id="mergeml.fml4to8.boot">
+ <title>
+ Implementation: boot process
+ </title>
+
+<para>
+"makefml mergeml" command processes the following steps automatically.
+</para>
+
+<para>
+To clarify details more, explain conversion of aliases and include
+files below.
+</para>
+
+<para>
+Firstly, we need MTA runs &fml4; and &fml4; runs &fml8; too.
+Our purpose is to run &fml8; anyway.
+If &fml8; runs, converter of config.ph runs too.
+</para>
+
+<para>
+Explain more details. Consider
+<link linkend="overview.ml">
+ML driver internal
+</link>
+section.
+</para>
+
+<para>
+For example, when you use postfix, postfix reads aliases and
+recognizes it needs to read include file. By reading include file,
+postfix knows how to call &fml8; process. Finally, postfix runs
+/usr/local/libexec/fml/distribute command.
+</para>
+
+<para>
+Executed distribute command reads config.cf and knows the location of
+member lists and processes et.al.
+</para>
+
+<para>
+That is, when &fml8; starts,
+the following two phases
+<screen>
+aliases (MTA configuration)
+include
+</screen>
+ends.
+</para>
+
+<para>
+It is mandatory that no duplication in aliases files.
+For example,
+if /etc/postfix/main.cf contains the following configuration:
+<screen>
+alias_maps = hash:/etc/mail/aliases
+ hash:/var/spool/ml/etc/aliases (fml4)
+ hash:/var/spool/ml/etc/mail/aliases (fml8)
+</screen>
+aliases of &fml4; and &fml8; has no duplication.
+</para>
+
+<para>
+In othe words, in the case of &fml4; process,
+<screen>
+MTA -> fml4's aliases -> fml4's include -> fml4 (fml.pl) runs
+</screen>
+in the case of &fml8; process,
+<screen>
+MTA -> fml8's aliases -> fml8's include -> fml8 runs
+</screen>
+So we need the following condition:
+<screen>
+remove the ml from fml4's aliases file.
+add the ml to fml8's aliases file.
+</screen>
+</para>
+
+<para>
+If no duplication in aliases,
+both &fml4; and &fml8; runs on the same host.
+</para>
+
+</sect1>
+
+
+</chapter>
diff --git a/fml/doc/en/tutorial/setup/newml.recipes.sgml b/fml/doc/en/tutorial/setup/newml.recipes.sgml
new file mode 100644
index 00000000..cbb4b55f
--- /dev/null
+++ b/fml/doc/en/tutorial/setup/newml.recipes.sgml
@@ -0,0 +1,85 @@
+<!--
+ $FML$
+ $jaFML: newml.recipes.sgml,v 1.3 2004/10/06 09:07:42 fukachan Exp $
+-->
+
+
+<sect1 id="setup.newml.recipies">
+ <title>
+ Recipes
+ </title>
+
+<qandaset>
+
+
+<!-- Q -->
+<qandaentry>
+
+<question>
+<para>
+specify administrator's mail address in alias file
+when "newml" command runs.
+</para>
+</question>
+
+<answer>
+<para>
+CUI (makefml/fml) creats an alias in "newml".
+<screen>
+${ml_name}-admin: ADDRESS
+</screen>
+where ADDRESS is defined by $newml_command_ml_admin_default_address.
+
+By default, $newml_command_ml_admin_default_address == $fml_owner
+defined in /usr/local/etc/fml/main.cf file.
+
+Specify
+$newml_command_ml_admin_default_address
+in site_default_config.cf.
+<screen>
+$newml_command_ml_admin_default_address = YOUR_ADDRESS
+</screen>
+
+You can use $ml_name here.
+<screen>
+$newml_command_ml_admin_default_address = $ml_name-owner@$ml_domain
+</screen>
+</para>
+
+</answer>
+
+</qandaentry>
+
+
+<!-- Q -->
+<qandaentry>
+
+<question>
+<para>
+Not create a configuration file for a specific MTA not used.
+</para>
+</question>
+
+<answer>
+<para>
+$newml_command_mta_config_list defines
+examples of MTA list "newml" command creates.
+Remove the specific MTA from the list.
+</para>
+
+<para>
+For example, you do not need "qmail" configuration example
+<screen>
+newml_command_mta_config_list -= qmail
+</screen>
+&fml8; does not generate ~/.qmail-* files.
+</para>
+
+</answer>
+
+</qandaentry>
+
+
+</qandaset>
+
+</sect1>
diff --git a/fml/doc/en/tutorial/setup/newml.sgml b/fml/doc/en/tutorial/setup/newml.sgml
index 3d415881..2d7d91f0 100644
--- a/fml/doc/en/tutorial/setup/newml.sgml
+++ b/fml/doc/en/tutorial/setup/newml.sgml
@@ -1,5 +1,5 @@
<!--
- $FML$
+ $FML: newml.sgml,v 1.1 2003/07/25 17:05:47 fukachan Exp $
$jaFML: newml.sgml,v 1.3 2003/04/15 14:51:44 fukachan Exp $
-->
@@ -12,17 +12,41 @@
<sect1>
<title>
- run "makefml newml" to create an ML
+ run "makefml newml" to create an ML (in the case of default domain)
</title>
+<caution>
<para>
-To create an ML, use "makefml" command (CUI).
+The usage of &fml8; makefml is same as &fml4; in the case of default
+domain. But not in the virtual domain case. See
+<link linkend="setup.newml.nondefault">
+<xref linkend="setup.newml.nondefault">
+</link>
+for the virtual domain case.
+</para>
+</caution>
+
+<para>
+To create an ML, use "makefml" command (CUI) in the same way as &fml4;.
<screen>
% su fml
% makefml newml elena
+ ... snip ...
</screen>
</para>
+<para>
+In the case of non default domain (virtual domain),
+run "makefml newdomain" command before run "makefml newml".
+<screen>
+% su root
+# makefml newdomain fml.org /var/spool/virtual/fml.org
+# exit
+% su fml
+% makefml newml elena
+ ... snip ...
+</screen>
+</para>
<para>
"makefml newml" processes the following steps.
@@ -37,8 +61,8 @@ To create an ML, use "makefml" command (CUI).
include
include-ctl
</screen>
- at /var/spool/ml/elena.
- The domai name et.al. in these files is replaced to proper value.
+ at /var/spool/ml/elena. The domain name et.al. in these files
+ is replaced to proper value.
</para>
</listitem>
@@ -63,12 +87,6 @@ To create an ML, use "makefml" command (CUI).
<listitem>
<para>
- create samples for each MTA.
- </para>
- </listitem>
-
- <listitem>
- <para>
prepare the directory
<screen>
~fml/public_html/fml/mlarchive/$domain/$ml/
@@ -103,6 +121,81 @@ To create an ML, use "makefml" command (CUI).
</sect1>
+<sect1 id="setup.newml.nondefault">
+ <title>
+ run "makefml newml" to create an ML (in the case of non default domain)
+ </title>
+
+<caution>
+<para>
+The usage of makefml differs from &fml4;.
+In the case of &fml8; firstly use "makefml newdomain" command,
+in the next run "makefml newml" command.
+Also ml_name differs. For virtual domain, use ml_name@ml_domain form.
+</para>
+</caution>
+
+<para>
+In using "makefml newml", the usage is same as &fml4; except for
+the ml_name. ml_name part is ml_name@ml_domain in the case of &fml8;
+</para>
+
+<para>
+At the first time to use a virtual domain,
+run "makefml newdomain" before "makefml newml".
+<screen>
+% su root
+# makefml newdomain nuinui.net /var/spool/virtual/nuinui.net
+# exit
+% su fml
+% makefml newml elena@nuinui.net
+</screen>
+After the second time, just use "makefml newml".
+<screen>
+% su fml
+% makefml newml elena@nuinui.net
+</screen>
+</para>
+
+<para>
+In running "makefml newdomain",
+specify a pair of domain and directory in ml_home_prefix_maps.
+This command edits /usr/local/etc/fml/ml_home_prefix file to add the
+following line.
+<screen>
+nuinui.net /var/spool/virtual/nuinui.net
+</screen>
+To remove this line, use "makefml rmdomain".
+</para>
+
+<para>
+The usage of "makefml newml" command is same as in the case of default
+domain.
+</para>
+
+<para>
+"makefml newml" creates an example of virtual domain configurations
+for several MTA's such as
+<screen>
+/var/spool/ml/etc/sendmail/virtusertable
+/var/spool/ml/etc/postfix/virtual
+</screen>
+.
+No example for qmail.
+No example for procmail since .procmailrc contains domain.
+</para>
+
+<para>
+See the chapter of
+<link linkend="virtualdomain">
+virtual domain
+</link>
+for more details.
+</para>
+
+</sect1>
+
+
<!-- MTA config -->
&sect.setup.postfix;
&sect.setup.qmail;
@@ -112,4 +205,7 @@ To create an ML, use "makefml" command (CUI).
&sect.setup.config.cf;
+<!-- recipies -->
+&sect.setup.newml.recipes;
+
</chapter>
diff --git a/fml/doc/en/tutorial/setup/procmail.sgml b/fml/doc/en/tutorial/setup/procmail.sgml
index 8f48faff..9e6af891 100644
--- a/fml/doc/en/tutorial/setup/procmail.sgml
+++ b/fml/doc/en/tutorial/setup/procmail.sgml
@@ -1,5 +1,5 @@
<!--
- $FML$
+ $FML: procmail.sgml,v 1.1 2003/07/25 17:05:47 fukachan Exp $
$jaFML: procmail.sgml,v 1.3 2003/04/15 14:51:44 fukachan Exp $
-->
@@ -9,18 +9,25 @@
</title>
<para>
-When you need to set up a ML on your account, for example virtual
-domain service of ISP, use a mail processor such as procmail.
+When you set up a ML within your account, for example when you are
+using virtual domain service of ISP, you need to use a mail processor
+such as procmail.
</para>
<para>
-You need to filter messages according to To: or Cc: in the mail header
-and redistribute it.
+To catch up messages to ML's, you need to filter messages according to
+To: or Cc: in the mail header and redistribute it.
</para>
<para>
-makefml creates/updates ~/.procmailrc sample in newml
-at /var/spool/ml/etc/procmail/procmailrc.
+&fml8; expects the user uses a filter tool such as procmail in such a
+situation. &fml8; itself does not provide such a tool.
+</para>
+
+<para>
+makefml creates/updates ~/.procmailrc sample in running "makefml
+newml" at /var/spool/ml/etc/procmail/procmailrc. Please use it as a
+sample.
</para>
@@ -54,4 +61,19 @@ inbox/.
</sect2>
+<sect2>
+ <title>
+ virtual domain case
+ </title>
+
+<para>
+The procmail rules above contains ml_name and ml_domain within it.
+So it does not need special handling for virtual domain.
+</para>
+
+<para>
+MTA configuration is another issue. Please contact administrator on
+it.
+</para>
+
</sect1>
diff --git a/fml/doc/en/tutorial/setup/qmail.sgml b/fml/doc/en/tutorial/setup/qmail.sgml
index d52ca167..2655a699 100644
--- a/fml/doc/en/tutorial/setup/qmail.sgml
+++ b/fml/doc/en/tutorial/setup/qmail.sgml
@@ -1,5 +1,5 @@
<!--
- $FML$
+ $FML: qmail.sgml,v 1.1 2003/07/25 17:05:47 fukachan Exp $
$jaFML: qmail.sgml,v 1.2 2002/07/06 14:55:20 fukachan Exp $
-->
@@ -14,11 +14,8 @@
~fml/.qmail-fml:org-elena
~fml/.qmail-fml:org-elena-ctl
</screen>
-Hence,
-<screen>
-/var/qmail/control/virtualdomains
-</screen>
-is prepared like this,
+Hence, if /var/qmail/control/virtualdomains contains the following
+definition
<screen>
fml.org:fml-fml.org
</screen>
@@ -33,4 +30,16 @@ ML's uses the whole one domain only for mailing list.
</para>
</warning>
+<sect2>
+ <title>
+ virtual domain case
+ </title>
+
+<para>
+The logic is same as above. So you need to edit
+/var/qmail/control/virtualdomains to make an ML effective
+automatically when you runs "makefml newml". This edit needs root
+priviledge. Please contact the administrator on it.
+</para>
+
</sect1>
diff --git a/fml/doc/en/tutorial/setup/test.sgml b/fml/doc/en/tutorial/setup/test.sgml
index 970e389d..8b37fe3c 100644
--- a/fml/doc/en/tutorial/setup/test.sgml
+++ b/fml/doc/en/tutorial/setup/test.sgml
@@ -1,5 +1,5 @@
<!--
- $FML$
+ $FML: test.sgml,v 1.1 2003/07/25 17:05:47 fukachan Exp $
$jaFML: test.sgml,v 1.4 2003/04/15 14:51:44 fukachan Exp $
-->
@@ -31,34 +31,35 @@ the mail server.
<sect1>
<title>
- test of only MTA
+ test of MTA
</title>
<para>
-check MTA without fml on ahodori.fml.org.
+Firstly, check MTA without fml on ahodori.fml.org.
</para>
<para>
-FIrstly,
-prepare one personal user address such as rudo@fml.org.
+Prepare one personal user address such as rudo@fml.org.
Usually, just create a user named as "rudo".
<screen>
# useradd rudo
</screen>
+Check you can send a mail to rudo@fml.org on ahodori.fml.org and rudo
+receives the mail.
+<screen>
+% echo test |Mail rudo@fml.org
+</screen>
+If it not works, check MTA configuration.
</para>
<para>
-You should verify SMTP over network.
+Secondary, verify mail delivery over network.
Send a mail to rudo@fml.org from other host (not ahodori.fml.org).
If rudo receives the mail, o.k.
</para>
<para>
-Secondly check the local delivery.
-send a mail to rudo@fml.org on ahodori.fml.org.
-<screen>
-% echo test |Mail rudo@fml.org
-</screen>
+If both work well, MTA configuration must be ok.
</para>
</sect1>
@@ -79,21 +80,23 @@ Create elena ML (elena@fml.org) and subscribe rudo@fml.org to elena ML.
</para>
<para>
-Send a test mail to elena@fml.org from other host (not ahodori.fml.org).
-Verify the header of this test mail should be "From: rudo@fml.org".
+Send a test mail to elena@fml.org from on the host and from other host
+(not ahodori.fml.org). Verify the header of this test mail should be
+"From: rudo@fml.org" since &fml8; checks the From:.
</para>
+
<sect2>
<title>
- checks
+ checkpoints
</title>
<para>
-If not works well, check the following:
+If someting not work well, check the following points:
<screen>
check the mail server log (e.g. /var/log/maillog)
check the fml log (e.g. /var/spool/m/elena/log)
-fml pass the message to MTA ?
+fml can pass the message to MTA ?
MTA succeeds to deliver it?
</screen>
</para>
@@ -127,11 +130,11 @@ It is easy to re-create this mailing list (e.g. test ML).
% makefml rmml test
% makefml newml test
</screen>
-The removed ML home is left as /var/spool/ml/@test.
+The removed ML home is left as /var/spool/ml/@test.$DATE.
Please remove it since this is a test to avoid the duplication in the
future.
<screen>
-% rm -fr /var/spool/ml/@test
+% rm -fr /var/spool/ml/@test.$DATE
</screen>
</para>
diff --git a/fml/doc/en/tutorial/troubleshoot/chapter.sgml b/fml/doc/en/tutorial/troubleshoot/chapter.sgml
index c3115900..53ac7c18 100644
--- a/fml/doc/en/tutorial/troubleshoot/chapter.sgml
+++ b/fml/doc/en/tutorial/troubleshoot/chapter.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: chapter.sgml,v 1.1 2003/07/24 15:37:38 fukachan Exp $
+ $FML: chapter.sgml,v 1.2 2003/08/03 01:47:18 fukachan Exp $
$jaFML: chapter.sgml,v 1.3 2002/11/09 14:16:19 fukachan Exp $
-->
@@ -18,8 +18,6 @@
</qandaset>
+&sect.troubleshoot.filesystem;
</chapter>
-
-
-
diff --git a/fml/doc/en/tutorial/troubleshoot/filesystem.sgml b/fml/doc/en/tutorial/troubleshoot/filesystem.sgml
new file mode 100644
index 00000000..caca7ecc
--- /dev/null
+++ b/fml/doc/en/tutorial/troubleshoot/filesystem.sgml
@@ -0,0 +1,132 @@
+<!--
+ $FML: filesystem.sgml,v 1.5 2005/06/25 15:11:38 fukachan Exp $
+-->
+
+
+<sect1 id="troubleshoot.filesystem">
+ <title>
+ When the file system error occurs ?
+ </title>
+
+<para>
+Fundamentally, &fml8; exit abnormally to make MTA re-deliver it or
+&fml8; re-delivers it by itself. &fml8; do not lost received messages
+whereas log or summary file lacks something.
+</para>
+
+<para>
+Describe below what happans when the file system error occurs in the
+delivery process.
+</para>
+
+
+<sect2>
+ <title>
+ When passed from MTA to &fml8;
+ </title>
+
+<para>
+&fml8; read a message and writes it into the disk once. If succeeded,
+it processes more. If failed, &fml8; exits abnormally as
+exit(EX_TEMPFAIL) for MTA to re-deliver it. See
+<link linkend="message.queue.incoming">
+<xref linkend="message.queue.incoming">
+</link>
+for more details.
+</para>
+
+<para>
+In this case, incoming queue may have a incomplete message.
+&fml8; tries to remove it in abnormal exit.
+Even if failed, the queue management system removes it later.
+</para>
+
+</sect2>
+
+
+<sect2>
+ <title>
+ If the article sequence number update failed
+ </title>
+
+<para>
+In normal case, &fml8; updates the article sequence number and
+re-reads it and compare it again.
+If the check fails, &fml8; exit(EX_TEMPFAIL) for MTA to re-deliver it.
+</para>
+
+<caution>
+<para>
+The article sequence number updated. After that,
+&fml8; should not do exit(EX_TEMPFAIL).
+</para>
+</caution>
+
+</sect2>
+
+
+<sect2>
+ <title>
+ When saving the article failed
+ </title>
+
+<caution>
+<para>
+In this stage, the article sequence has been updated.
+</para>
+</caution>
+
+<para>
+In this case, &fml8; do not create a new article file but the original
+message is already on the disk. The header of the article differs from
+the original one but the body content is same. So &fml8; tries to
+link(2) the original mail in the incoming queue to the article file to
+save the content.
+<footnote>
+<para>
+If it could be, it is useful to implement another command which fixes
+the article header later. It is not implemented.
+</para>
+</footnote>
+</para>
+
+<para>
+&fml8; tries to deliver the message on the memory.
+</para>
+
+<para>
+If the delivery process exits abnormally,
+the delivery process ends incompletely
+since &fml8; can not use outgoing queue.
+</para>
+
+</sect2>
+
+
+<sect2>
+ <title>
+ Delivery Process
+ </title>
+
+<para>
+&fml8; saves the message into the outgoing queue, after succeeded, the
+delivery process runs.
+</para>
+
+<para>
+When &fml8; fails to write the outgoing queue,
+&fml8; exits incompletely.
+</para>
+
+<para>
+See
+<link linkend="message.queue.outgoing">
+<xref linkend="message.queue.outgoing">
+</link>
+for more details.
+</para>
+
+</sect2>
+
+
+</sect1>