]> Pileus Git - ~andy/fetchmail/commitdiff
Add new design notes document.
authorMatthias Andree <matthias.andree@gmx.de>
Wed, 20 Jul 2005 10:26:14 +0000 (10:26 -0000)
committerMatthias Andree <matthias.andree@gmx.de>
Wed, 20 Jul 2005 10:26:14 +0000 (10:26 -0000)
svn path=/trunk/; revision=4126

Makefile.am
NEWS
design-notes.html [new file with mode: 0644]
esrs-design-notes.html
fetchmail-FAQ.html
specgen.sh

index 6166c4a37d922ba55d8190e057a1b8143d1e06bc..58892b41f6fffab21783e90674b6f0c6d8cde888 100644 (file)
@@ -71,7 +71,7 @@ fetchmail.spec: Makefile.in specgen.sh
        $(srcdir)/specgen.sh $(VERSION) >fetchmail.spec
 
 DISTDOCS=      FAQ FEATURES NOTES OLDNEWS fetchmail-man.html \
-               fetchmail-FAQ.html esrs-design-notes.html todo.html \
+               fetchmail-FAQ.html design-notes.html esrs-design-notes.html todo.html \
                fetchmail-features.html README.SSL README.NTLM
 
 # extra directories to ship
@@ -86,8 +86,13 @@ FAQ: fetchmail-FAQ.html
 FEATURES: fetchmail-features.html
        AWK=$(AWK) $(SHELL) $(srcdir)/dist-tools/html2txt $(srcdir)/fetchmail-features.html >$@ || { rm -f $@ ; exit 1 ; }
 
-NOTES: esrs-design-notes.html
-       AWK=$(AWK) $(SHELL) $(srcdir)/dist-tools/html2txt $(srcdir)/esrs-design-notes.html >$@ || { rm -f $@ ; exit 1 ; }
+NOTES: design-notes.html esrs-design-notes.html
+          echo "This file contains two articles reformatted from HTML." > $@ \
+       && echo "------------------------------------------------------" >> $@ \
+       && echo "" >> $@ \
+       && AWK=$(AWK) $(SHELL) $(srcdir)/dist-tools/html2txtx $(srcdir)/design-notes.html >>$@ \
+       && AWK=$(AWK) $(SHELL) $(srcdir)/dist-tools/html2txt $(srcdir)/esrs-design-notes.html >>$@ \
+       || { rm -f $@ ; exit 1 ; }
 
 TODO: todo.html
        AWK=$(AWK) $(SHELL) $(srcdir)/dist-tools/html2txt $(srcdir)/todo.html >$@ || { rm -f $@ ; exit 1 ; }
diff --git a/NEWS b/NEWS
index fbacf44aba0a302a23184f754d68a562138426dc..2982c161a46025502571d9268e4c5a0d145fc0af 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -113,6 +113,12 @@ fetchmail 6.3.0 (not yet released officially):
 since -pre4:
 * Make tracepolls a server option, as documented. Fixes Debian bug
   #156094. Matthias Andree.
+* Updated some translations. (MA)
+* Fix some minor inaccuracies (RFC-1893 related, grammar/spelling) in
+  the manual page.
+* Rename ESR's design notes to esrs-design-notes.html and add a new
+  design-notes.html document. The NOTES file will contain both of them.
+  Matthias Andree.
 
 fetchmail-6.2.5 (Wed Oct 15 18:39:22 EDT 2003), 23079 lines:
 
diff --git a/design-notes.html b/design-notes.html
new file mode 100644 (file)
index 0000000..ffd82bf
--- /dev/null
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Updated design notes on fetchmail</title>
+<link rev="made" href="mailto:matthias.andree@gmx.de" />
+<meta name="description" content="Updated design notes on fetchmail." />
+<meta name="keywords" content="fetchmail, POP, POP2, POP3, IMAP, ETRN, ODMR, remote mail" />
+<style type="text/css">
+/*<![CDATA[*/
+ h1.c1 {text-align: center}
+/*]]>*/
+</style>
+</head>
+<body>
+<table width="100%" cellpadding="0" summary="Canned page header">
+<tr>
+<td width="30%">Back to <a href="index.html">Fetchmail Home Page</a></td>
+<td width="30%" align="right">$Date: 2003/02/28 11:26:47 $</td>
+</tr>
+</table>
+
+<hr />
+<h1 class="c1">Design Notes On Fetchmail</h1>
+
+<h2>Introduction</h2>
+
+<p>This document is supposed to complement <a
+    href="esrs-design-notes.html">Eric S. Raymond's (ESR's)
+    design notes.</a> The new maintainers don't agree with some of the decisions
+ESR made previously, and the differences and new directions will be laid
+out in this document. It is therefore a sort of a TODO document, until
+the necessary code revisions have been made.</p>
+
+<h2>SMTP forwarding</h2>
+
+<p>Fetchmails multidrop and rewrite options will process addresses
+received from remote sites. Special care must be taken so these
+features cannot be abused to relay mail to foreign sites.</p>
+
+<p>ESR's attempt to make fetchmail use SMTP exclusively failed,
+fetchmail got LMTP and --mda options &ndash; the latter has a lot of
+flaws unfortunately, is inconsistent with the SMTP forwarder and needs
+to be reviewed and probably bugfixed. --mda doesn't properly work with
+multiple recipients, it cannot properly communicate errors and is best
+avoided for now.</p>
+
+<h2>Server-side vs. client-side state.</h2>
+
+<h3>Why we need client-side tracking</h3>
+
+<p>ESR asserted that server-side state were essential and those persons
+repsonsible for removing the LAST command from POP3 deserved to
+suffer. ESR is right in stating that the POP3 UID tracks which messages
+have been read <em>by this client</em> &ndash; and that is exactly what
+we need to do.</p>
+
+<p>If fetchmail is supposed to retrieve all
+mail from a mailbox reliably, without being disturbed by someone
+occasionally using another client on another host, or a webmailer, or
+similar, then <em>client</em>-side tracking of the state is
+indispensable. This is also needed to match behavior to ETRN and ODMR.</p>
+
+<h3>Present and future</h3>
+
+<p>Fetchmail supports client-side state in POP3 if the UIDL option is
+used (which is strongly recommended). Similar effort needs to be made to
+track IMAP state by means of UIDVALIDITY and UID.</p>
+
+<p>This will also mean that the UID handling code be revised an perhaps
+use one file per account or per folder.</p>
+
+<h2>Concurrent queries/concurrent fetchmail instances</h2>
+
+<p>ESR refused to make fetchmail query multiple hosts or accounts
+concurrently, on the grounds that finer-grained locks would be hard to
+implement portably.</p>
+
+<p>The idea of using one file per folder or account to track UIDs on the
+client-side will make solving this locking problem easy &ndash; the lock can
+be placed on the UID file instead.</p>
+
+<h2>Multidrop issues</h2>
+
+<p>Fetchmail tries to guess recipients from headers that are not routing
+relevant, for instance, To:, Cc:, or Resent-headers (which are rare
+anyways). It is important that fetchmail insists on the real envelope
+operation for multidrop. This is detailed in <a
+    href="http://home.pages.de/~mandree/mail/multidrop">my
+    article &quot;Requisites for working multidrop
+    mailboxes&quot;</a>.</p>
+
+<p>As Terry Lambert pointed out in the FreeBSD-arch mailing list on
+2001-02-17 under the subject "UUCP must stay; fetchmail sucks",
+fetchmail performs DNS MX lookups to determine domains for which
+multidrop is valid, on the assumption that the receiving SMTP host
+upstream were the same as the IMAP or POP3 server.</p>
+
+<hr />
+<table width="100%" cellpadding="0" summary="Canned page footer">
+<tr>
+<td width="30%">Back to <a href="index.html">Fetchmail Home Page</a></td>
+<td width="30%" align="right">$Date: 2003/02/28 11:26:47 $</td>
+</tr>
+</table>
+
+<br clear="left" />
+<address>Matthias Andree <a
+       href="mailto:matthias.andree@gmx.de">&lt;matthias.andree@gmx.de&gt;</a></address>
+</body>
+</html>
index 29ba0fb934f7c29251537ac28eeb48cd5375c866..e7fbf147d057ae3e6e2b41b84b2dffff05c9e98a 100644 (file)
@@ -3,7 +3,7 @@
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-<title>Design notes on fetchmail</title>
+    <title>Eric S. Raymond's former Design notes on fetchmail</title>
 <link rev="made" href="mailto:esr@snark.thyrsus.com" />
 <meta name="description" content="Design notes on fetchmail." />
 <meta name="keywords" content="fetchmail, POP, POP2, POP3, IMAP, remote mail" />
 <body>
 <table width="100%" cellpadding="0" summary="Canned page header">
 <tr>
+<td width="30%">Forward to <a href="design-notes.html">Updated design
+       notes</a></td>
 <td width="30%">Back to <a href="index.html">Fetchmail Home Page</a></td>
 <td width="30%" align="right">$Date: 2003/02/28 11:26:47 $</td>
 </tr>
 </table>
 
 <hr />
-<h1 class="c1">Design Notes On Fetchmail</h1>
+<h1 class="c1">Eric S. Raymond's former Design Notes On Fetchmail</h1>
 
 <p>These notes are for the benefit of future hackers and
 maintainers. The following sections are both functional and
index acf0b27c413a31c970cd7f10737c588f9e27a349..190653848f5b5f471a0ec9eace6d4e1a706d1455 100644 (file)
@@ -414,9 +414,10 @@ fetchmail simple so it stays reliable.</p>
 
 <p>For reasons fetchmail doesn't have other commonly-requested
 features (such as password encryption, or multiple concurrent polls
-from the same instance of fetchmail) see the <a
-href="http://fetchmail.berlios.de/esrs-design-notes.html">design
-notes</a>.</p>
+from the same instance of fetchmail) see <a
+href="esrs-design-notes.html">ESR's design
+notes</a>. Note that this document is partially obsoleted by the 
+<a href="design-notes.html">updated design notes.</a></p>
 
 <p>Fetchmail is a mature project, no longer in constant active
 development. It is no longer my top project, and I am going to be
index bb493cc0f6bbc14e420289230ad6b8d8e30faf75..a1bc30bc5d29ad364b852517ced48a01972b7b6f 100755 (executable)
@@ -168,6 +168,7 @@ rm -rf \$RPM_BUILD_ROOT
 %doc NOTES OLDNEWS README README.SSL
 %doc contrib
 %doc fetchmail-features.html fetchmail-FAQ.html esrs-design-notes.html
+%doc design-notes.html
 %attr(644, root, man) %{_mandir}/man1/fetchmail.1*
 %attr(755, root, root) /usr/bin/fetchmail
 # Uncomment the following to support internationalization