diff options
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: + +<Directory /home/*/*/public_html> + AllowOverride FileInfo AuthConfig Limit + Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI + <Limit GET POST OPTIONS PROPFIND> + Order allow,deny + Allow from SPECIFIC_HOST + </Limit> +</Directory> + +<IfModule mod_mime.c> + ... snip ... + + AddHandler cgi-script .cgi + + ... snip ... +</IfModule> +</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> +&DENY_PROCEDURE('member'); +&DENY_PROCEDURE('active'); +&DENY_PROCEDURE('members'); +&DENY_PROCEDURE('actives'); +&DENY_PROCEDURE('status'); +&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 --> §.setup.postfix; §.setup.qmail; @@ -112,4 +205,7 @@ To create an ML, use "makefml" command (CUI). §.setup.config.cf; +<!-- recipies --> +§.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> +§.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> |
