changeset 42:2467ff423c15 noffle

[svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html, NOTES.html, INSTALL.html: Removed files. * AUTHORS, COPYING, ChangeLog, README, INSTALL, NEWS, docs/FAQ, docs/NOTES: Added files. * TODO.TXT: Renamed to TODO. Slightly changed formatting. * README: Reformatted the file. Added info about CVS. Added a pointer to the file INSTALL. * noffle.1, noffle.conf.5: Moved to docs/ * LSM.TXT: Moved to docs/noffle.lsm. Small fix. * INSTALL: Adapted to autoconf build-system. A few minor fixes.
author uh1763
date Fri, 05 May 2000 21:26:14 +0100
parents 92b59cfcf364
children 2842f50feb55
files AUTHORS AUTHORS.html CHANGELOG.html COPYING COPYING.html ChangeLog FAQ.html INSTALL INSTALL.html LSM.TXT NEWS NOTES.html README README.html TODO TODO.TXT docs/FAQ docs/NOTES docs/noffle.1 docs/noffle.conf.5 docs/noffle.lsm noffle.1 noffle.conf.5
diffstat 23 files changed, 1898 insertions(+), 1553 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AUTHORS	Fri May 05 21:26:14 2000 +0100
@@ -0,0 +1,17 @@
+-------------------------------------------------------------------------------
+NOFFLE Authors
+-------------------------------------------------------------------------------
+
+Main Author
+-----------
+
+Markus Enzenberger <markus.enzenberger@t-online.de>
+
+
+Contributions
+-------------
+
+Volker Wysk <volker.wysk@student.uni-tuebingen.de> 
+Jim Hague <jim.hague@acm.org>
+Uwe Hermann <uh1763@bingo-ev.de>
+
--- a/AUTHORS.html	Fri May 05 09:32:53 2000 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-<html>
-
-<head>
-<title>NOFFLE Authors</title>
-</head>
-
-<body bgcolor=white>
-
-<center>
-<h1>NOFFLE Authors</h1>
-</center>
-
-<hr>
-
-<ul>
-<li>
-Markus Enzenberger
-<li>
-Volker Wysk
-<li>
-Jim Hague
-</ul>
-
-</body>
-</html>
--- a/CHANGELOG.html	Fri May 05 09:32:53 2000 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +0,0 @@
-<html>
-
-<head>
-<title>NOFFLE Changelog</title>
-</head>
-
-<body bgcolor=white>
-
-<center>
-<h1>NOFFLE Changelog</h1>
-</center>
-
-<hr>
-
-<h2>Version 1.opre6pre</h2>
-
-<ul>
-<li>
-Forget cached group info when group database closed.
-<li>
-Added list of 'forbidden' newsgroup specs., as defined in draft IETF
-Newsgroup Format (C.Lindsey), tracked to replace RFC1036. This defines
-newsgroup names that should only be used for server-local groups and
-server pseudo-groups (e.g. INN's to.*, cancel, cancel.*, junk). These
-are now intercepted when querying server groups and ignored.  Group names
-omitted are any single component names, any 'control.*', 'to' or
-'to.*',and any with a component 'all' or 'ctl'.
-Note these restrictions do not apply to local group names.
-<li>
-Fixed problem with article numbering if the overview file empties,
-e.g. due to all articles in a very low volume group expiring. This
-would cause article numbers to be set back to 1 when a new article
-arrives.
-<li>
-Changed %i to %d in sscanfs everywhere. INN often (as it is entitled to
-do) has leading zeros on numbers. %i interprets these as octal
-numbers. Also changed %i to %d in printfs, for no good reason.
-<li>
-New groups now always start numbering at article 1. Previously article
-numbering would start with the first held remote article number, in an
-attempt to avoid newsreaders noticing if noffle is deleted and
-reinstalled. Given Noffle may well not collect the first held article
-anyway - it only will if the default number of articles to retrieve on
-a first connect is big enough - and the fact that Noffle's pseudo
-articles make it impossible to keep local article numbers in lock-step
-with the server, there is the chance this scheme would just cause
-readers to miss new articles.
-<li>
-Record newsgroup posting status. Enforce it at posting time.
-Added --modify to change newsgroup descriptions for all groups and
-posting status for local groups.
-<li>
-Added group deletion.
-<li>
-Added message cancellation - from command line or by control message.
-Note command line only cancels locally - it can't be used to cancel a
-message that has already gone offsite. A control messages cancels
-locally if possible; it is only propaged offsite if the target is in a
-non-local group and has itself already gone offsite.
-<li>
-Added wildmat code taken from INN - ensure Noffle wildcarding is
-exactly to spec.
-<li>
-Added group-specific expire times.
-<li>
-Noffle now sends a "MODE READER" command after connecting to the
-remote server. INN needs this before it will permit POST.
-<li>
-Applied patch from Jim Hague: support for local groups / new command
-line options --create and --cancel.
-<li>
-Change output of <code>noffle -a all</code> to standard mailbox format,
-so that tools like grepmail work. 
-</ul>
-
-<h2>Version 1.0pre5</h2>
-
-<ul>
-<li>
-Fixed bug: multiple-line headers of posted articles were truncated.
-<li>
-Core files are always enabled when running as server and debugging
-symbols are always in the executable.
-<li>
-Use GDBM_FAST flag for hash files.
-<li>
-Fixed a bug in online mode with servers that need authentication.
-<li>
-Minor changes and improvements
-</ul>
-
-<h2>Version 1.0pre4</h2>
-
-<ul>
-<li>
-Fixed a bug that broke cross-posting of articles
-<li>
-Fixed a bug that truncated headers of posted articles.
-<li>
-Long overview header lines are now split into multiple lines in response
-to HEAD or ARTICLE commands.
-<li>
-Fixed a bug that caused a crash sometimes when updating the requested
-article list after releasing/regetting the global lock
-<li>
-Server is now allowed to generate core files on crash (in spool directory)
-if compiled with -DDEBUG option
-<li>
-Opening an article additionally marks all references as interesting,
-so more articles are fetched in thread mode, if one article of a thread
-was opened.
-<li>
-New config option "connect-timeout"
-<li>
-Minor improvements and bug-fixes
-</ul>
-
-<h2>Version 1.0pre3</h2>
-
-<ul>
-<li>
-Added XPAT command. Not full syntax, but enough for making slrn's thread
-reconstruction work 
-<li>
-Storing of requested message-ids completely rewritten (thanks to
-Volker Wysk for the patch). Much more efficient now. Bug removed
-that broke requesting articles with message-IDs containing a slash.
-Added --requested option.
-<li>
-When fetching requested articles, do not send more than 20 ARTICLE commands
-at once, before parsing the server response.
-<li>
-Minor bug fixes and improvements.
-</ul>
-
-<h2>Version 1.0pre2</h2>
-
-<ul>
-<li>
-Added RPM_BUILD_ROOT variable to Makefile (useful for creating RPM source
-packages)
-<li>
-Removed terrible bug that truncated article body after releasing and re-getting
-global lock
-</ul>
-
-<h2>Version 1.0pre1</h2>
-
-<ul>
-<li>
-<em>needs complete re-installing, some formats have changed</em>
-<li>
-Support for multiple remote servers
-<li>
-Faster download when fetching news, because articles are prepared
-in database while parsing response to XOVER and all ARTICLE commands
-are sent at once
-<li>
-Bug removed that made authetication only work with lower-case passwords
-<li>
-Other small bug fixes and improvements
-</ul>
-
-<h2>Version 0.19</h2>
-
-<ul>
-<li>
-Fix broken full mode
-<li>
-Fix cutting of articles after line beginning with '.'
-<li>
-Other bug fixes
-<li>
-LIST commands can have pattern argument now
-<li>
-initial-fetch option removed (same as max-fetch now)
-</ul>
-
-<h2>Version 0.18</h2>
-
-<ul>
-<li>
-<em>needs complete re-installing, most file format have changed</em>
-<li>
-Group database uses gdbm, databases moved to /var/spool/noffle/data
-<li>
-Most config options changed their names, some do not longer exists
-<li>
-New fetch mode "thread" added
-<li>
-Different --fetch invocations replaced by single option
-<li>
-Meaning of "--database" option changed, "--article" option added
-<li>
-Failed postings are now returned to sender by "mail" command
-<li>
-Expire uses last access time
-<li>
-Auto-subscribe option only subscribes groups now, if an article
-body is opened (no longer if group is selected).
-<li>
-Improve posting at German T-Online provider: rename X-Sender header,
-Reply-To header is added, if missing (T-Online overwrites From headers),
-allow to remove Message-ID as a config option.
-<li>
-Doc files are now copied to $(PREFIX)/doc/noffle
-<li>
-Y2K compliance of NEWGROUPS command
-<li>
-Various bug fixes (thanks to all users helping with bug reports)
-<li>
-Various changes for tuning and improvement
-</ul>
-
-<h2>Version 0.17</h2>
-
-<ul>
-<li>
-Bug removed that caused NOFFLE to exceed the allowed maximum number
-of open files on longer sessions.
-</ul>
-
-<h2>Version 0.16</h2>
-
-<ul>
-<li>
-Noffle generates Message-ID if a message received for posting has none.
-</ul>
-
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/COPYING	Fri May 05 21:26:14 2000 +0100
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
--- a/COPYING.html	Fri May 05 09:32:53 2000 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-<html>
-
-<head>
-<title>NOFFLE Copying</title>
-</head>
-
-<body bgcolor=white>
-<p>
-
-<center>
-<h1>NOFFLE Copying</h1>
-</center>
-
-<p>
-<hr>
-<p>
-
-
-This program is available under the GNU General Public License.
-<p>
-The full terms and conditions for copying, distribution and modification
-can be found at:
-<blockquote>
-<a href="http://www.fsf.org/copyleft/gpl.html">http://www.fsf.org/copyleft/gpl.html</a>
-</blockquote>
-
-
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ChangeLog	Fri May 05 21:26:14 2000 +0100
@@ -0,0 +1,164 @@
+-------------------------------------------------------------------------------
+NOFFLE ChangeLog
+-------------------------------------------------------------------------------
+
+Fri May  5 22:24:37 CEST 2000  Uwe Hermann <uh1763@bingo-ev.de>
+
+ * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
+   NOTES.html, INSTALL.html: Removed files.
+ 
+ * AUTHORS, COPYING, ChangeLog, README, INSTALL, NEWS, docs/FAQ, docs/NOTES:
+   Added files.
+
+ * TODO.TXT: Renamed to TODO. Slightly changed formatting.
+
+ * README: Reformatted the file. Added info about CVS. Added a pointer to
+   the file INSTALL.
+
+ * noffle.1, noffle.conf.5: Moved to docs/
+
+ * LSM.TXT: Moved to docs/noffle.lsm. Small fix.
+
+ * INSTALL: Adapted to autoconf build-system. A few minor fixes.
+
+
+-------------------------------------------------------------------------------
+
+1.0pre6pre
+
+     * Forget cached group info when group database closed.
+     * Added list of 'forbidden' newsgroup specs., as defined in draft IETF
+       Newsgroup Format (C.Lindsey), tracked to replace RFC1036. This defines
+       newsgroup names that should only be used for server-local groups and
+       server pseudo-groups (e.g. INN's to.*, cancel, cancel.*, junk). These
+       are now intercepted when querying server groups and ignored. Group names
+       omitted are any single component names, any 'control.*', 'to' or
+       'to.*',and any with a component 'all' or 'ctl'.
+       Note these restrictions do not apply to local group names.
+     * Fixed problem with article numbering if the overview file empties,
+       e.g. due to all articles in a very low volume group expiring. This
+       would cause article numbers to be set back to 1 when a new article
+       arrives.
+     * Changed %i to %d in sscanfs everywhere. INN often (as it is entitled
+       to do) has leading zeros on numbers. %i interprets these as octal
+       numbers. Also changed %i to %d in printfs, for no good reason.
+     * New groups now always start numbering at article 1. Previously article
+       numbering would start with the first held remote article number, in an
+       attempt to avoid newsreaders noticing if noffle is deleted and
+       reinstalled. Given Noffle may well not collect the first held article
+       anyway - it only will if the default number of articles to retrieve on
+       a first connect is big enough - and the fact that Noffle's pseudo
+       articles make it impossible to keep local article numbers in lock-step
+       with the server, there is the chance this scheme would just cause
+       readers to miss new articles.
+     * Record newsgroup posting status. Enforce it at posting time.
+       Added --modify to change newsgroup descriptions for all groups and
+       posting status for local groups.
+     * Added group deletion.
+     * Added message cancellation - from command line or by control message.
+       Note command line only cancels locally - it can't be used to cancel a
+       message that has already gone offsite. A control messages cancels
+       locally if possible; it is only propaged offsite if the target is in a
+       non-local group and has itself already gone offsite.
+     * Added wildmat code taken from INN - ensure Noffle wildcarding is
+       exactly to spec.
+     * Added group-specific expire times.
+     * Noffle now sends a "MODE READER" command after connecting to the
+       remote server. INN needs this before it will permit POST.
+     * Applied patch from Jim Hague: support for local groups / new command
+       line options --create and --cancel.
+     * Changed output of 'noffle -a all' to standard mailbox format,
+       so that tools like grepmail work.
+
+Version 1.0pre5
+
+     * Core files are always enabled when running as server and debugging
+       symbols are always in the executable.
+     * Use GDBM_FAST flag for hash files.
+     * Fixed a bug in online mode with servers that need authentication.
+     * Minor changes and improvements
+
+Version 1.0pre4
+
+     * Fixed a bug that broke cross-posting of articles
+     * Fixed a bug that truncated headers of posted articles.
+     * Long overview header lines are now split into multiple lines in
+       response to HEAD or ARTICLE commands.
+     * Fixed a bug that caused a crash sometimes when updating the
+       requested article list after releasing/regetting the global lock
+     * Server is now allowed to generate core files on crash (in spool
+       directory) if compiled with -DDEBUG option
+     * Opening an article additionally marks all references as
+       interesting, so more articles are fetched in thread mode, if one
+       article of a thread was opened.
+     * New config option "connect-timeout"
+     * Minor improvements and bug-fixes
+
+Version 1.0pre3
+
+     * Added XPAT command. Not full syntax, but enough for making slrn's
+       thread reconstruction work
+     * Storing of requested message-ids completely rewritten (thanks to
+       Volker Wysk for the patch). Much more efficient now. Bug removed
+       that broke requesting articles with message-IDs containing a
+       slash. Added --requested option.
+     * When fetching requested articles, do not send more than 20 ARTICLE
+       commands at once, before parsing the server response.
+     * Minor bug fixes and improvements.
+
+Version 1.0pre2
+
+     * Added RPM_BUILD_ROOT variable to Makefile (useful for creating RPM
+       source packages)
+     * Removed terrible bug that truncated article body after releasing
+       and re-getting global lock
+
+Version 1.0pre1
+
+     * needs complete re-installing, some formats have changed
+     * Support for multiple remote servers
+     * Faster download when fetching news, because articles are prepared
+       in database while parsing response to XOVER and all ARTICLE
+       commands are sent at once
+     * Bug removed that made authetication only work with lower-case
+       passwords
+     * Other small bug fixes and improvements
+
+Version 0.19
+
+     * Fix broken full mode
+     * Fix cutting of articles after line beginning with '.'
+     * Other bug fixes
+     * LIST commands can have pattern argument now
+     * initial-fetch option removed (same as max-fetch now)
+
+Version 0.18
+
+     * needs complete re-installing, most file format have changed
+     * Group database uses gdbm, databases moved to
+       /var/spool/noffle/data
+     * Most config options changed their names, some do not longer exists
+     * New fetch mode "thread" added
+     * Different --fetch invocations replaced by single option
+     * Meaning of "--database" option changed, "--article" option added
+     * Failed postings are now returned to sender by "mail" command
+     * Expire uses last access time
+     * Auto-subscribe option only subscribes groups now, if an article
+       body is opened (no longer if group is selected).
+     * Improve posting at German T-Online provider: rename X-Sender
+       header, Reply-To header is added, if missing (T-Online overwrites
+       From headers), allow to remove Message-ID as a config option.
+     * Doc files are now copied to $(PREFIX)/doc/noffle
+     * Y2K compliance of NEWGROUPS command
+     * Various bug fixes (thanks to all users helping with bug reports)
+     * Various changes for tuning and improvement
+
+Version 0.17
+
+     * Bug removed that caused NOFFLE to exceed the allowed maximum number of
+       open files on longer sessions.
+
+Version 0.16
+
+     * Noffle generates Message-ID if a message received for posting has none.
+
--- a/FAQ.html	Fri May 05 09:32:53 2000 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-<html>
-
-<head>
-<title>NOFFLE FAQ</title>
-</head>
-
-<body bgcolor=white>
-<p>
-
-<center>
-<h1>NOFFLE FAQ</h1>
-</center>
-
-<p>
-<hr>
-<p>
-
-<b>Q:</b> What is the difference between NOFFLE and leafnode?
-<p>
-<b>A:</b> NOFFLE uses less resources (disk space and bandwidth). Downloading
-groups in overview mode is several times faster, because it uses the XOVER
-command instead of HEAD. In addition, there is the quasi-transparent mode,
-when online, which allows to browse through groups and cache everything
-without subscribing.<br>
-NOFFLE is GPLed, leafnode isn't. 
-
-<p>
-<hr>
-<p>
-
-<b>Q:</b> I subscribe to groups, but get a "Retreiving failed"
-message for every requested article.
-<p>
-<b>A:</b> Some news server do not allow retrieving articles by message-ID.
-You cannot use NOFFLE together with these servers presently.
-
-<p>
-<hr>
-<p>
-
-<b>Q:</b> I changed the server in the config files, but the
-new groups do not appear.
-<p>
-<b>A:</b> You should run <code>noffle --query groups</code> again. If you
-want all old group information deleted, you should remove the file
-data/groupinfo.gdbm in the spool directory before.
-
-<p>
-<hr>
-<p>
-
-<b>Q:</b> The Emacs news reader GNUS hangs while getting active list
-from server.
-<p>
-<b>A:</b> This is a known phenomena and I believe that it is a bug with
-GNUS, because the log files show correct handling of client commands by
-noffle.
-                                                                                
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/INSTALL	Fri May 05 21:26:14 2000 +0100
@@ -0,0 +1,305 @@
+-------------------------------------------------------------------------------
+NOFFLE Installation
+-------------------------------------------------------------------------------
+
+Requirements
+------------
+
+ * The gdbm library must be installed on your system (standard with most
+   distributions). 
+
+ * Please use the same compiler for compiling NOFFLE that was used for
+   compiling the gdbm library!
+   The reason for this warning is that there is an incompatibility between
+   egcs and gcc that causes programs to crash on some distributions, depending
+   on the optimization level. 
+
+ * The program "mail" must be available, because failed postings are returned
+   to the sender by calling it (with option -s and by piping message text
+   into it). 
+
+ * The program "sort" must be available (standard with most distributions). 
+
+
+Compilation and installation
+----------------------------
+
+For installing NOFFLE on your system, the following steps are necessary:
+
+ * ./configure
+   make
+   make install
+
+   You can type './configure --help' to get a list of possible options for
+   configure.
+   Apart from the standard ones, the following options can be used:
+
+    --enable-debug          Turn on debugging (default=yes)
+    --with-docdir=PATH      Specify where to put the documentation.
+                            Default is /usr/local/doc/noffle.
+
+ * Copy '/etc/noffle.conf.example' to '/etc/noffle.conf' and edit it.
+   Write in the name of the remote news server.
+
+   Change the owner to 'news':
+     chown news.news /etc/noffle.conf
+
+   Make it unreadable by others, if it contains a username and a password:
+     chmod o-r /etc/noffle.conf
+
+   Now you can leave the root account.
+
+ * Go online and run
+
+    noffle --query groups   # required
+    noffle --query desc     # optional group descriptions
+
+   to retrieve newsgroup information. This may take a while depending on the
+   number of active newsgroups at the remote news server.
+
+ * Subscribe to some groups by running
+
+     noffle --subscribe-over <newsgroup>
+   or
+     noffle --subscribe-thread <newsgroup>
+   or
+     noffle --subscribe-full <newsgroup>
+
+ * Now run 
+
+     noffle --fetch
+
+   for testing the retrieving of overviews/articles of the groups subscribed.
+
+ * Add a line for 'noffle' to '/etc/inetd.conf':
+
+    nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/bin/noffle -r
+
+   (Change the path of noffle if necessary)
+
+ * Add the following lines to your 'ip-up' script:
+
+    /usr/local/bin/noffle --fetch
+    /usr/local/bin/noffle --online
+
+   Add the following line to your 'ip-down' script:
+
+    /usr/local/bin/noffle --offline
+
+ * Add a line for running noffle to the crontab of news (by running
+   'crontab -u news -e' as root):
+
+     0 19 * * 1 /usr/local/bin/noffle --expire
+
+   (if you want to run 'noffle' on Monday (1st day of week) at 19.00 and
+   delete all articles not accessed recently. The default expiry period is
+   14 days, but this can be changed in /etc/noffle.conf.
+
+
+Now you are ready, configure the client readers to use "localhost" port 119
+as news server and/or set the environment variable NNTPSERVER to "localhost"
+and/or create the file /etc/nntpserver containing "localhost".
+
+If something goes wrong, have a look at '/var/log/news' for error and
+logging messages.
+
+
+It can be helpful to recompile NOFFLE with 
+
+ ./configure --enable-debug
+ make
+ make install
+
+to increase the level of logged details. Additionally, this will create
+a core file in the spool directory if NOFFLE should crash.
+This will allow those of you familiar with a debugger to send me a detailed
+bug report :-)
+
+
+Read below for more (generic) information about ./configure.
+
+-------------------------------------------------------------------------------
+
+
+Basic Installation
+==================
+
+   These are generic installation instructions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+   The file `configure.in' is used to create `configure' by a program
+called `autoconf'.  You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.  If you're
+     using `csh' on an old version of System V, you might need to type
+     `sh ./configure' instead to prevent `csh' from trying to execute
+     `configure' itself.
+
+     Running `configure' takes awhile.  While running, it prints some
+     messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.
+
+  5. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  You can give `configure'
+initial values for variables by setting them in the environment.  Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory.  After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+   By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc.  You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on.  Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+     CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+   If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+     Use and save the results of the tests in FILE instead of
+     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
+     debugging `configure'.
+
+`--help'
+     Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--version'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
--- a/INSTALL.html	Fri May 05 09:32:53 2000 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-<html>
-
-<head>
-<title>NOFFLE Installation</title>
-</head>
-
-<body bgcolor=white>
-<p>
-
-<center>
-<h1>NOFFLE Installation</h1>
-</center>
-
-<p>
-<hr>
-<p>
-
-For compiling NOFFLE there are the following requirements:
-<p>
-
-<ul>
-
-<li>
-The gdbm library must be installed on your system (standard with
-most distributions).
-<p>
-Please use the same compiler for compiling NOFFLE that was
-used for compiling the gdbm library!
-<p>
-The reason for this warning is that there is an incompatibility between
-egcs and gcc that causes programs to crash on some distributions,
-depending on the optimisation level.
-<p>
-
-<li>
-The program "mail" must be available, because failed postings are
-returned to the sender by calling it (with option -s and by piping
-message text into it).
-<p>
-
-<li>
-The program "sort" must be available (standard with most distributions).
-<p>
-
-</ul>
-
-<p>
-For installing NOFFLE on your system, the following steps are necessary:
-<p>
-
-<ul>
-
-<li>
-Edit the Makefile. Change SPOOLDIR and PREFIX, if you do not
-like the defaults.
-<p>
-
-<li>
-Type 'make'.
-<p>
-
-<li>
-Log in as root and type 'make install'.
-<p>
-
-<li>
-Copy '&lt;PREFIX&gt;/doc/noffle/noffle.conf.example' to '/etc/noffle.conf' and
-edit it. Write in the name of the remote news server.
-<br>
-Change the owner to 'news':
-<pre>
-         chown news.news /etc/noffle.conf
-</pre>
-Make it unreadable by others, if it contains a username and a password:
-<pre>
-         chmod o-r /etc/noffle.conf
-</pre>
-Now you can leave the root account.
-<p>
-
-<li>
-Go online and run
-<pre>
-         noffle --query groups # required
-         noffle --query desc   # optional group descriptions
-</pre>
-<p>
-to retrieve newsgroup information.
-<br>
-This may take a while depending on the number of active newsgroups
-at the remote news server.
-<p>   
-Subscribe to some groups by running
-<pre>
-         noffle --subscribe-over <groupname>
-</pre>
-or
-<pre>
-         noffle --subscribe-thread <groupname>
-</pre>
-or
-<pre>
-         noffle --subscribe-full <groupname>
-</pre>
-Then run
-<pre>
-         noffle --fetch
-</pre>
-for testing the retrieving of overviews/articles of the groups subscribed.
-<p>
-
-<li>
-Add a line for 'noffle' to '/etc/inetd.conf':
-<pre>
-         nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/bin/noffle -r
-</pre>
-(Change the path of noffle if necessary)
-<p>
-
-<li>
-Add the following lines to your 'ip-up' script:
-<pre>
-         /usr/local/bin/noffle --fetch
-         /usr/local/bin/noffle --online
-</pre>
-<p>
-Add the following line to your 'ip-down' script:
-<pre>
-         /usr/local/bin/noffle --offline
-</pre>
-Add a line for running noffle to the crontab of news (by running
-'crontab -u news -e' as root):
-<pre>
-         0 19 * * 1 /usr/local/bin/noffle --expire
-</pre>
-(if you want to run 'noffle' on Monday (1st day of week) at
-19.00 and delete all articles not accessed recently. The default
-expiry period is 14 days, but this can be changed in /etc/noffle.conf.
-<p>
-
-</ul>
-
-Now you are ready, configure the client readers to use "localhost" port 119
-as news server and/or set the environment variable NNTPSERVER to
-"localhost" and/or create the file /etc/nntpserver containing "localhost".
-<p>
-If something goes wrong, have a look at '/var/log/news' for error and
-logging messages.
-<p>
-It can be helpful to recompile NOFFLE with the
--DDEBUG option to increase the level of logged details. Additionally,
-the -DDEBUG option will create a core file in the spool directory if NOFFLE
-should crash. This will allow those of you familiar with a debugger to send
-me a detailed bug report :-)
-
-</body>
-</html>
--- a/LSM.TXT	Fri May 05 09:32:53 2000 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-Begin3
-Title:          NOFFLE - news server 
-Version:	
-Entered-date:   28AUG98
-Description:    NOFFLE is a news server optimized for low speed dialup
-		connections to the Internet and few users.
-		It allows reading news offline with many news reader
-                programs, even if they do not support offline reading
-                by themselves.
-Keywords:       news server, news reader, offline, modem, dialup
-Author:		Markus Enzenberger <markus.enzenberger@t-online.de>
-Maintained-by:  Markus Enzenberger <markus.enzenberger@t-online.de>
-Primary-site:   http://home.t-online.de/home/markus.enzenberger/noffle.html
-Platforms:      UNIX, Linux
-Copying-policy: GPL
-End
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NEWS	Fri May 05 21:26:14 2000 +0100
@@ -0,0 +1,56 @@
+-------------------------------------------------------------------------------
+NOFFLE NEWS -- User visible changes
+-------------------------------------------------------------------------------
+
+1.0pre6
+-------
+
+ * Forget cached group info when group database closed.
+ * Added list of 'forbidden' newsgroup specs., as defined in draft IETF
+   Newsgroup Format (C.Lindsey), tracked to replace RFC1036. This defines
+   newsgroup names that should only be used for server-local groups and
+   server pseudo-groups (e.g. INN's to.*, cancel, cancel.*, junk). These
+   are now intercepted when querying server groups and ignored. Group names
+   omitted are any single component names, any 'control.*', 'to' or
+   'to.*',and any with a component 'all' or 'ctl'.
+   Note these restrictions do not apply to local group names.
+ * Fixed problem with article numbering if the overview file empties,
+   e.g. due to all articles in a very low volume group expiring. This
+   would cause article numbers to be set back to 1 when a new article
+   arrives.
+ * New groups now always start numbering at article 1. Previously article
+   numbering would start with the first held remote article number, in an
+   attempt to avoid newsreaders noticing if noffle is deleted and
+   reinstalled. Given Noffle may well not collect the first held article
+   anyway - it only will if the default number of articles to retrieve on
+   a first connect is big enough - and the fact that Noffle's pseudo
+   articles make it impossible to keep local article numbers in lock-step
+   with the server, there is the chance this scheme would just cause
+   readers to miss new articles.
+ * Record newsgroup posting status. Enforce it at posting time.
+   Added --modify to change newsgroup descriptions for all groups and
+   posting status for local groups.
+ * Added group deletion.
+ * Added message cancellation - from command line or by control message.
+   Note command line only cancels locally - it can't be used to cancel a
+   message that has already gone offsite. A control messages cancels
+   locally if possible; it is only propaged offsite if the target is in a
+   non-local group and has itself already gone offsite.
+ * Added wildmat code taken from INN - ensure Noffle wildcarding is
+   exactly to spec.
+ * Added group-specific expire times.
+ * Noffle now sends a "MODE READER" command after connecting to the
+   remote server. INN needs this before it will permit POST.
+ * added support for local groups
+ * new command line options --create and --cancel
+ * Changed output of 'noffle -a all' to standard mailbox format,
+   so that tools like grepmail work.
+ * documentation updates
+ * NOFFLE now uses the autoconf/automake build-system
+
+
+0.16 - 1.0pre6pre
+-----------------
+
+ * See ChangeLog
+
--- a/NOTES.html	Fri May 05 09:32:53 2000 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,208 +0,0 @@
-<html>
-
-<head>
-<title>NOFFLE Compatibility Notes</title>
-</head>
-
-<body bgcolor=white>
-
-<center>
-<h1>NOFFLE Compatibility Notes</h1>
-</center>
-
-<p>
-<hr>
-<p>
-
-Subscribing to groups in "full" mode should work with any news reader.
-Caching of articles is unnecessary, since NOFFLE already caches them
-and should be switched off.
-<p>
-Subscribing to groups in "overview" or "thread" mode requires more
-from the news reader program:
-<p>
-<ul>
-<li>
-It must not cache articles at all (or allow to switch the cache off),
-because the article bodies change from the pseudo article
-"marked for download" to the real body.
-<li>
-The reader should rarely open article bodies automatically,
-because it will mark them unwantedly for download.
-</ul>
-
-Here comes a list with news readers that have been tested with NOFFLE,
-especially with regards to subscribing to groups in "overview" or "thread"
-mode.
-<p>                                                                             
-Please send me reports on your experiences. If a reader does not work at
-all, compile NOFFLE with the -DDEBUG option in CFLAGS. Then you will
-see every NNTP command and status line in /var/log/news. Most interesting
-is the last line, before the reader (or NOFFLE) hangs :-)
-Please also send me a short mail, if you successfully used NOFFLE with a
-certain version of a news reader for a longer time, so that I can keep
-this list up-to-date.
-<p>
-
-<h2>kexpress 0.2.0</h2>
-
-I found no way to disable caching, apart from writing a
-wrapper script, which removes all files from the cache after
-terminating kexpress:
-<p>
-<pre>
-      #!/bin/bash
-      # kexpress wrapper, save as /usr/local/bin/kexpress
-
-      /opt/kde/bin/kexpress $@
-      rm $HOME/.kde/share/apps/kexpress/data/*
-</pre>
-<p>
-
-<h2>krn 0.4.0</h2>
-
-Set "Options/NNTP Options/Connect on Startup,Connect without asking"
-and "Options/Expire options/Article bodies/Read=0,UnRead=0"
-Sometimes the article bodies remain in the cache, the following
-wrapper script helps:
-<p>
-<pre>
-      #!/bin/bash
-      # krn wrapper, save as /usr/local/bin/krn
-
-      /opt/kde/bin/krn $@
-      rm $HOME/.kde/share/apps/krn/cache/*
-</pre>
-<p>
-Articles can be marked as read/unread without opening with the
-middle mouse button.
-This version of krn is still unstable.
-
-<h2>netscape 3.04</h2>
-
-No cache problems, netscape caches the article overviews, but not
-the bodies.
-It is best to use "Options/Show only Unread Messages" and to keep
-requested articles in unread state until their bodies
-are downloaded.
-For avoiding unwanted opening of articles one should first
-"Message/Mark Newsgroup read", then open the wanted articles
-one by one and mark them as unread again ("Message/Mark as Unread")
-immediately after opening.
-
-<h2>netscape communicator 4.0.5</h2>
-
-Same as with netscape 3.04, but automatically opens
-the first article of a listed group and
-marks it for download thereby. If this bothers you,
-choose "View/Hide message".
-This version of netscape still seems to be unstable for reading
-news.
-
-<h2>netscape communicator 4.5</h2>
-
-As with 4.0.5 "View/Show/Message" can be used to switch off
-automatic message display (and marking for download).
-
-<h2>pine 3.96, 4.05</h2>
-
-Ok.
-
-<h2>slrn 0.9.5.2</h2>
-
-Ok. You can change some keybindings, by saving the following
-script to ~/.slrn.sl and adding "interpret .slrn.sl" at the end
-of your ~/.slrnrc
-<p>
-<pre>
-      % SLRN script for better interplay with NOFFLE news server.
-      % Redefines some keys for opening articles without modifying flags.
-      define my_article_linedn()
-      {
-          variable flags = get_header_flags();
-          call ( "article_linedn" );
-          set_header_flags( flags );
-      }
-      define my_scroll_dn()
-      {
-          variable flags = get_header_flags();
-          call ( "scroll_dn" );
-          set_header_flags( flags );
-      }
-      define my_hide_article()
-      {
-          variable flags = get_header_flags();
-          call ( "hide_article" );
-          set_header_flags( flags );
-      }
-      definekey( "my_article_linedn", "\r", "article" );
-      definekey( "my_scroll_dn", " ", "article" );
-      definekey( "my_hide_article", "h", "article" );
-</pre>
-<p>
-
-<h2>tin pre</h2>
-
-Call with "tin -r" or "rtin". 'K' marks articles/thread as
-read without opening them. '-' marks them as unread.
-
-<h2>Emacs Gnus</h2>
-
-Some versions of Gnus freeze up when retrieving active
-groups. Since NOFFLE's log files in DEBUG mode show nothing unusual,
-I believe that this is a bug in Gnus. Sometimes it helps to remove
-all ".newsrc" and similar files on ones home directory and restarting
-Gnus.
-
-<p>
-Here is a proposal for changing some key-bindings.
-<p>
-<pre>
-      ;; Customising Gnus for use with the NOFFLE news server
-      ;; 
-      ;; <return> tick and open article
-      ;;          for reading/marking for download
-      ;; <space>  scroll article text circular
-      ;;          for avoiding automatic opening of next article
-      ;; <d>      mark article as read and go to next line
-      (defun my-gnus-summary-tick-and-open(n)
-        "Tick and open article, so that NOFFLE marks it for download" 
-        (interactive "p")
-        (gnus-summary-scroll-up n)
-        (gnus-summary-mark-article nil gnus-ticked-mark t)
-        )
-      (defun my-gnus-summary-next-page(n)
-        "Next page of article, but do not open next article automatically"
-        (interactive "p")
-        (gnus-summary-next-page 10 t) ;; Call with argument `circular'.
-        )
-      (defun my-gnus-summary-mark-read-next-line(n)
-        "Mark article as read and go to next line"
-        (interactive "p")
-        (gnus-summary-mark-article-as-read gnus-read-mark)
-        (next-line n)
-        )
-      (defun my-gnus-summary-mode-hook ()
-        (define-key gnus-summary-mode-map "\r"
-          'my-gnus-summary-tick-and-open)
-        (define-key gnus-summary-mode-map " "
-          'my-gnus-summary-next-page)
-        (define-key gnus-summary-mode-map "d"
-          'my-gnus-summary-mark-read-next-line)
-        )
-      (add-hook 'gnus-summary-mode-hook 'my-gnus-summary-mode-hook)
-</pre>
-
-<h2>pan 0.8.0beta5</h2>
-
-Ok.
-
-<p>
-<hr>
-<small><i>
-Last modified 4/99,
-<a href="mailto:markus.enzenberger@t-online.de">Markus Enzenberger</a>
-</i></small>
-
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README	Fri May 05 21:26:14 2000 +0100
@@ -0,0 +1,145 @@
+-------------------------------------------------------------------------------
+The NOFFLE News Server
+-------------------------------------------------------------------------------
+
+Features
+--------
+
+NOFFLE is a Usenet news server optimized for few users and low speed dial-up
+connections to the Internet. It acts as a server to news clients running on
+the local host, but gets its news feed by acting as a client to a remote
+server. NOFFLE is written for the GNU/Linux operating system and freely
+available under the terms of the GPL. See COPYING for details.
+
+While Online:
+
+ * Any newsgroup can be read, selected articles are fetched immediately from
+   the remote server.
+
+While Offline:
+
+ * Allows reading news offline with many news clients, even if they do not
+   support offline reading by themselves.
+
+ * Groups can be retrieved in overview, full or thread mode.
+    * In overview mode, opened articles that have not been completely
+      downloaded yet are marked for download. NOFFLE generates a pseudo
+      article body telling the human about this.
+    * In full mode, complete articles are fetched at once.
+    * Thread mode is like overview mode, but opening an article marks the whole
+      thread for download (all later articles for some time that are
+      referencing the original article).
+
+ * The news feed is invoked automatically next online time by calling NOFFLE
+   in the ip-up script.
+
+ * Groups can be put on the fetch list via the 'noffle' command or
+   automatically when someone tries to read them. Groups can be automatically
+   removed from the fetch list, when nobody accesses them for some time.
+
+ * NOFFLE also offers limited support for local groups. Articles posted in
+   local groups appear in the news database for those groups immediately,
+   and are expired in the same way as other articles.
+
+
+Compatibility with News Clients
+-------------------------------
+
+Subscribing to groups in full mode should work with any news reader. Caching
+of articles is unnecessary, since NOFFLE already caches them and should be
+switched off.
+
+Subscribing to groups in overview mode or thread mode requires the following
+from the news reader program:
+
+ * It must not cache articles at all (or allow to switch the cache off),
+   because the article bodies change from the pseudo body "marked for download"
+   to the real body.
+
+ * The reader should rarely open article bodies automatically, because it will
+   mark them unwantedly for download.
+
+
+Getting NOFFLE
+--------------
+
+NOFFLE can be downloaded from the following location:
+
+ http://home.t-online.de/home/markus.enzenberger/noffle-1.0pre5.tar.gz
+ (18 Apr 2000)
+
+ http://home.t-online.de/home/markus.enzenberger/noffle-1.0pre4.tar.gz
+ (13 Nov 1999)
+
+You can always get the latest version from CVS. For instructions see
+
+ http://sourceforge.net/cvs/?group_id=1044
+
+
+RPM packages have been created by Mario Moder <moderm@gmx.net>. They are
+available at 
+
+ ftp://ftp.fbam.de/pub/linux/ 
+
+
+I moved Noffle to SourceForge recently (http://sourceforge.net/).
+
+You can download files from the Noffle project page at
+ http://sourceforge.net/project/?group_id=1044
+
+There is also a mailing list and a discussion forum.
+
+
+Installation
+------------
+
+Read INSTALL for information about compiling and installing Noffle.
+
+
+Documentation
+-------------
+
+Read the files in the subdirectory docs/ for more info on NOFFLE.
+Read INSTALL for information about compiling and installing NOFFLE on your
+system.
+
+Some German documentation is provided by
+Klaus Mödinger <klaus.moedinger@t-online.de>:
+
+ http://home.t-online.de/home/klaus.moedinger/noffle_install_de.html
+
+
+The current version is still beta. Please send bug reports, comments and
+patches to Markus Enzenberger <markus.enzenberger@t-online.de>.
+
+
+Links
+-----
+
+ * http://www.tin.org/docs.html
+   NNTP information
+
+ * http://www.privat.kkf.net/~mark.bulmahn/ncontr.html
+   ncontr -- a graphical front-end for NOFFLE by
+   Mark Bulmahn <mbu@privat.kkf.net>
+
+ * http://www.leafnode.org/
+   Leafnode -- a news server similar to NOFFLE
+
+ * http://space.mit.edu/~davis/slrn.html
+   slrn -- a powerful news reader for Windows and Unix
+
+ * http://www.gedanken.demon.co.uk/wwwoffle/index.html
+   WWWOFFLE - http proxy
+
+
+Acknowledgements
+----------------
+
+The wildmat newsgroup pattern matching software used by NOFFLE was developed
+by Rich Salz, and is distributed with INN v2.2. 
+
+
+-- 
+Markus Enzenberger <markus.enzenberger@t-online.de>
+
--- a/README.html	Fri May 05 09:32:53 2000 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,198 +0,0 @@
-<html>
-<head>
-<title>NOFFLE</title>
-<META NAME="description" CONTENT="NOFFLE is a news server for Linux that is optimized for low speed dialup connections to the Internet and few users. It can be used to add offline reading capability to news readers.">
-<META NAME="keywords" CONTENT="noffle, news server, news reader, offline, modem, dialup, linux">
-</head>
-
-<body bgcolor=white>
-<p>
-
-<center>
-<h1>The NOFFLE News Server</h1>
-</center>
-
-<p>
-<hr>
-<p>
-
-<ul>
-<li>
-<a href="#features">Features</a>
-<li>
-<a href="#compatibility">Compatibility with News Clients</a>
-<li>
-<a href="#getting">Getting NOFFLE</a>
-<li>
-<a href="#documentation">Documentation</a>
-<li>
-<a href="#links">Links</a>
-<li>
-<a href="#acknowledgements">Acknowledgements</a>
-</ul>
-
-<p>
-<hr>
-<p>
-
-<h2><a name="features">Features</a></h2>
-
-NOFFLE is a
-<a href=http://search.yahoo.com/bin/search?p=usenet>Usenet</a>
-news server optimized for few users and low speed dial-up connections
-to the Internet.
-It acts as a server to news clients running on the
-local host, but gets its news feed by acting as a client to a remote server.
-NOFFLE is written for the
-<a href=http://www.linux.org/>Linux </a>
-operating system and freely available under
-<a href=http://www.fsf.org/copyleft/gpl.html>GPL</a>.
-<p>
-While Online:
-<ul>
-<li>
-Any newsgroup can be read, selected articles are fetched
-immediately from the remote server.
-</ul>
-<p>
-While Offline:
-<ul>
-<li>
-Allows reading news offline with many news clients,
-even if they do not support offline reading by themselves.
-</li>
-<li>
-Groups can be retrieved in overview, full or thread mode.
-<ul>
-<li>
-In overview mode, opened articles that have not been completely downloaded
-yet are marked for download. NOFFLE generates a pseudo article body telling
-the human about this.
-</li>
-<li>
-In full mode, complete articles are fetched at once.
-</li>
-<li>
-Thread mode is like overview mode, but opening an article marks the
-whole thread for download (all later articles for some time
-that are referencing the original article).
-</li>
-</ul>
-</li>
-<li>
-The news feed is invoked automatically next online time by calling
-NOFFLE in the ip-up script.
-</li>
-<li>
-Groups can be put on the fetch list via the 'noffle'
-command or
-automatically when someone tries to read them. Groups can be automatically
-removed from the fetch list, when nobody accesses them for some time.
-</li>
-<li>
-NOFFLE also offers limited support for local groups. Articles posted
-in local groups appear in the news database for those groups immediately,
-and are expired in the same way as other articles.
-</li>
-</ul>
-
-<h2><a name="compatibility">Compatibility with News Clients</a></h2>
-
-Subscribing to groups in full mode should work with any news reader.
-Caching of articles is unnecessary, since NOFFLE already caches them
-and should be switched off.
-<p>
-Subscribing to groups in overview mode or thread mode requires the
-following from the news reader program:
-<p>
-<ul>
-<li>
-It must not cache articles at all (or allow to switch the cache off),
-because the article bodies change from the pseudo body
-"marked for download" to the real body.
-<p>
-<li>
-The reader should rarely open article bodies automatically,
-because it will mark them unwantedly for download.
-</ul>
-
-<p>
-
-<h2><a name="getting">Getting NOFFLE</a></h2>
-
-NOFFLE can be downloaded from this web site.
-<blockquote>
-<tt><a href=./noffle-1.0pre5.tar.gz>noffle-1.0pre5.tar.gz</a></tt>
-(current release, 18 Apr 2000)
-<br>
-<tt><a href=./noffle-1.0pre4.tar.gz>noffle-1.0pre4.tar.gz</a></tt>
-(current release, 13 Nov 1999)
-</blockquote>
-RPM packages have been created by
-<a href="mailto:moderm@gmx.net">Mario Moder</a>. They are available
-at 
-<blockquote>
-<tt><a href="ftp://ftp.fbam.de/pub/linux/">ftp://ftp.fbam.de/pub/linux/</a></tt>
-</blockquote>
-<p>
-
-<img src="img_new.gif" width="32" height="16" alt="[NEW]">
-I moved Noffle to
-<a href="http://sourceforge.net/">SourceForge</a>
-recently. You can download files from the
-<a href="http://sourceforge.net/project/?group_id=1044">Noffle project page</a>.
-There is also a mailing list and a discussion forum.
-
-<h2><a name="documentation">Documentation</a></h2>
-
-Read the files README and INSTALL from the package
-for compiling and installing NOFFLE on your system.
-<p>
-Some German documentation
-(<img src="img_german.gif" width="16" height="14" alt="[Deutsch]">
-<a href="http://home.t-online.de/home/klaus.moedinger/noffle_install_de.html">"NOFFLE Installation"</a>)
-is provided by
-<a href="mailto:klaus.moedinger@t-online.de">Klaus M&ouml;dinger</a>.
-<p>
-The current version is still beta. Please send bug reports,
-comments and patches to
-<a href="mailto:markus.enzenberger@t-online.de">
-markus.enzenberger@t-online.de</a>.
-<p>
-
-<h2><a name="links">Links</a></h2>
-
-<ul>
-<li>
-<a href="http://www.tin.org/docs.html">NNTP information</a>
-<li>
-<a href="http://www.privat.kkf.net/~mark.bulmahn/ncontr.html">ncontr</a>
-- graphical front-end for NOFFLE by
-<a href="mailto:mbu@privat.kkf.net">Mark Bulmahn</a>
-<li>
-<a href="http://www.leafnode.org/">
-Leafnode</a> - news server similar to NOFFLE
-<li>
-<a href="http://space.mit.edu/~davis/slrn.html">SLRN</a>
-- powerful news reader for Windows and Unix  
-<li>
-<a href="http://www.gedanken.demon.co.uk/wwwoffle/index.html">WWWOFFLE</a>
-- http proxy
-</ul>
-
-
-<h2><a name="acknowledgements">Acknowledgements</a></h2>
-
-The <i>wildmat</i> newsgroup pattern matching software used by NOFFLE
-was developed by Rich Salz, and is as distributed with INN
-v2.2.
-
-<p>
-<hr>
-<small><i>
-Last modified 4/2000,
-<a href="mailto:markus.enzenberger@t-online.de">Markus Enzenberger</a>
-</i></small>
-
-</body>
-</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TODO	Fri May 05 21:26:14 2000 +0100
@@ -0,0 +1,80 @@
+-------------------------------------------------------------------------------
+NOFFLE Todolist
+-------------------------------------------------------------------------------
+
+Urgent
+------
+
+ * Has Client_connect resource leaks if it fails?
+
+
+Later
+-----
+
+ * Add "hostname" config option for setting the FQHN in generated message IDs.
+
+ * Implement expiring by groups. There are some people requesting it and
+   it is useful.
+
+ * Move some text from noffle.1 to noffle.conf.5
+
+ * Read timeout when running as server and automatically close if client
+   does not send data for a longer time.
+
+ * Implement simple filter using popen or fifos.
+
+ * Make compatible to latest NNTP draft.
+
+ * Improve speed of online mode: Keep connection to server open for a while
+
+ * Check all in
+   http://mars.superlink.net/user/tal/writings/news-software-authors.html
+   (Use NOV library? Use inews for validating posted articles? ... )
+
+ * Store requested articles by group + number. This would allow to create
+   pseudo-groups (like <groupname>.requested) that contained only fully
+   downloaded articles in overview mode (very nice and clever
+   idea sent in by a user, it would make using overview mode much easier).
+   Second advantage: Noffle would work with servers that have retrieving
+   articles by message-id disabled.
+
+ * Expire should clean up empty request/outgoing directories, so they will not
+   exists forever after a server change.
+
+ * Do not log program abortion due to SIGINT, if no inconsistency can occur,
+   (e.g. when calling 'noffle -d' to a pipe and next program terminates or
+   pressing ^C). 
+
+ * Improve www page and documentation.
+
+ * Keeping the content list for several lock/unlock times could lead to
+   inconsistent results, because content list is maybe modified by
+   pseudo articles. Check this!
+
+ * Optimize NEWGROUPS (extra list?)
+
+ * Add noffle query option for checking all groups, if they are still
+   available at the remote server(s) and delete them otherwise.
+
+ * In online mode, retrieve full article header from remote server if client
+   sends a HEAD command. Presently, only the header lines from the overview
+   are returned and the article is only retrieved on an ARTICLE or BODY command.
+   The reason for this was that some readers (like pine) retrieve the group
+   overview by sending lots of HEAD commands and their performance would badly
+   suffer. On the other hand, some readers (like slrn) cache the header from
+   a HEAD command, even if a following ARTICLE command gets more header lines,
+   so that not all header lines are available when reading news in online mode,
+   before the next start of the reader. But some header lines (e.g. Reply-To)
+   are important.
+   Maybe make the behaviour configurable.
+
+
+Some day far away
+-----------------
+
+ * Understand supersedes header (useful for reading news.answers group)
+
+ * Get and execute cancel messages (read control.cancel, but use xpat to get
+   only cancels for groups in fetchlist). Seems to be expensive (20000 headers
+   a day, takes the remote server to search through)
+
--- a/TODO.TXT	Fri May 05 09:32:53 2000 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-
-=============================================================================
-Urgent
-=============================================================================
-
-Has Client_connect resource leaks if it fails?
-
-=============================================================================
-Later
-=============================================================================
-
-Add "hostname" config option for setting the FQHN in generated message IDs.
-
-Implement expiring by groups. There are some people requesting it and
-it is useful.
-
-Move some text from noffle.1 to noffle.conf.5
-
-Read timeout when running as server and automatically close if client
-does not send data for a longer time.
-
-Implement simple filter using popen or fifos.
-
-Make compatible to latest NNTP draft.
-
-Improve speed of online mode: Keep connection to server open for a while
-
-Check all in
-  http://mars.superlink.net/user/tal/writings/news-software-authors.html
-  (Use NOV library? Use inews for validating posted articles? ... )
-
-Store requested articles by group + number. This would allow to create
-pseudo-groups (like <groupname>.requested) that contained only fully
-downloaded articles in overview mode (very nice and clever
-idea sent in by a user, it would make using overview mode much easier).
-Second advantage: Noffle would work with servers that have retrieving
-articles by message-id disabled.
-
-Expire should clean up empty request/outgoing directories, so they will not
-exists forever after a server change.
-
-Do not log program abortion due to SIGINT, if no inconsistency can occur,
-(e.g. when calling 'noffle -d' to a pipe and next program terminates or
-pressing ^C). 
-
-Improve www page and documentation.
-
-Keeping the content list for several lock/unlock times could lead to
-inconsistent results, because content list is maybe modified by
-pseudo articles. Check this!
-
-Optimize NEWGROUPS (extra list?)
-
-Add noffle query option for checking all groups, if they are still
-available at the remote server(s) and delete them otherwise.
-
-In online mode, retrieve full article header from remote server if client
-sends a HEAD command. Presently, only the header lines from the overview
-are returned and the article is only retrieved on an ARTICLE or BODY command.
-The reason for this was that some readers (like pine) retrieve the group
-overview by sending lots of HEAD commands and their performance would badly
-suffer. On the other hand, some readers (like slrn) cache the header from
-a HEAD command, even if a following ARTICLE command gets more header lines,
-so that not all header lines are available when reading news in online mode,
-before the next start of the reader. But some header lines (e.g. Reply-To)
-are important.
-Maybe make the behaviour configurable.
-
-=============================================================================
-Some day far away
-=============================================================================
-
-understand supersedes header (useful for reading news.answers group)
-
-Get and execute cancel messages (read control.cancel, but use xpat to get
-only cancels for groups in fetchlist). Seems to be expensive (20000 headers
-a day, takes the remote server to search through)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/FAQ	Fri May 05 21:26:14 2000 +0100
@@ -0,0 +1,35 @@
+-------------------------------------------------------------------------------
+NOFFLE FAQ
+-------------------------------------------------------------------------------
+
+Q: What is the difference between NOFFLE and leafnode?
+
+A: NOFFLE uses less resources (disk space and bandwidth). Downloading groups
+   in overview mode is several times faster, because it uses the XOVER command
+   instead of HEAD. In addition, there is the quasi-transparent mode, when
+   online, which allows to browse through groups and cache everything without
+   subscribing. NOFFLE is GPLed, leafnode isn't.
+
+-------------------------------------------------------------------------------
+
+Q: I subscribe to groups, but get a "Retreiving failed" message for every
+   requested article.
+
+A: Some news server do not allow retrieving articles by message-ID. You cannot
+   use NOFFLE together with these servers presently.
+
+-------------------------------------------------------------------------------
+
+Q: I changed the server in the config files, but the new groups do not appear.
+
+A: You should run 'noffle --query groups' again. If you want all old group
+   information deleted, you should remove the file data/groupinfo.gdbm in the
+   spool directory before.
+
+-------------------------------------------------------------------------------
+
+Q: The Emacs news reader GNUS hangs while getting active list from server.
+
+A: This is a known phenomena and I believe that it is a bug with GNUS, because
+   the log files show correct handling of client commands by noffle.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/NOTES	Fri May 05 21:26:14 2000 +0100
@@ -0,0 +1,188 @@
+-------------------------------------------------------------------------------
+NOFFLE Compatibility Notes
+-------------------------------------------------------------------------------
+
+Subscribing to groups in "full" mode should work with any news reader.
+Caching of articles is unnecessary, since NOFFLE already caches them and
+should be switched off.
+
+Subscribing to groups in "overview" or "thread" mode requires more from the
+news reader program:
+
+ * It must not cache articles at all (or allow to switch the cache off),
+   because the article bodies change from the pseudo article
+   "marked for download" to the real body.
+
+ * The reader should rarely open article bodies automatically, because it will
+   mark them unwantedly for download.
+
+
+Here comes a list with news readers that have been tested with NOFFLE,
+especially with regards to subscribing to groups in "overview" or "thread"
+mode.
+
+Please send me reports on your experiences. If a reader does not work at all,
+compile NOFFLE with the -DDEBUG option in CFLAGS. Then you will see every NNTP
+command and status line in /var/log/news. Most interesting is the last line,
+before the reader (or NOFFLE) hangs :-) Please also send me a short mail, if
+you successfully used NOFFLE with a certain version of a news reader for a
+longer time, so that I can keep this list up-to-date.
+
+
+kexpress 0.2.0
+--------------
+
+I found no way to disable caching, apart from writing a wrapper script, which
+removes all files from the cache after terminating kexpress:
+
+#!/bin/bash
+# kexpress wrapper, save as /usr/local/bin/kexpress
+
+/opt/kde/bin/kexpress $@
+rm $HOME/.kde/share/apps/kexpress/data/*
+
+
+krn 0.4.0
+---------
+
+Set "Options/NNTP Options/Connect on Startup,Connect without asking"
+and "Options/Expire options/Article bodies/Read=0,UnRead=0" Sometimes
+the article bodies remain in the cache, the following wrapper script helps:
+
+#!/bin/bash
+# krn wrapper, save as /usr/local/bin/krn
+
+/opt/kde/bin/krn $@
+rm $HOME/.kde/share/apps/krn/cache/*
+
+Articles can be marked as read/unread without opening with the middle mouse
+button. This version of krn is still unstable.
+
+
+netscape 3.04
+-------------
+
+No cache problems, netscape caches the article overviews, but not the
+bodies. It is best to use "Options/Show only Unread Messages" and to
+keep requested articles in unread state until their bodies are
+downloaded. For avoiding unwanted opening of articles one should first
+"Message/Mark Newsgroup read", then open the wanted articles one by
+one and mark them as unread again ("Message/Mark as Unread")
+immediately after opening.
+
+
+netscape communicator 4.0.5
+---------------------------
+
+Same as with netscape 3.04, but automatically opens the first article
+of a listed group and marks it for download thereby. If this bothers
+you, choose "View/Hide message". This version of netscape still seems
+to be unstable for reading news.
+
+
+netscape communicator 4.5
+-------------------------
+
+As with 4.0.5 "View/Show/Message" can be used to switch off automatic
+message display (and marking for download).
+
+
+pine 3.96, 4.05
+---------------
+
+Ok.
+
+
+slrn 0.9.5.2
+------------
+
+Ok. You can change some keybindings, by saving the following script to
+~/.slrn.sl and adding "interpret .slrn.sl" at the end of your
+~/.slrnrc
+
+   % SLRN script for better interplay with NOFFLE news server.
+   % Redefines some keys for opening articles without modifying flags.
+   define my_article_linedn()
+   {
+       variable flags = get_header_flags();
+       call ( "article_linedn" );
+       set_header_flags( flags );
+   }
+   define my_scroll_dn()
+   {
+       variable flags = get_header_flags();
+       call ( "scroll_dn" );
+       set_header_flags( flags );
+   }
+   define my_hide_article()
+   {
+       variable flags = get_header_flags();
+       call ( "hide_article" );
+       set_header_flags( flags );
+   }
+   definekey( "my_article_linedn", "\r", "article" );
+   definekey( "my_scroll_dn", " ", "article" );
+   definekey( "my_hide_article", "h", "article" );
+
+
+tin pre
+-------
+
+Call with "tin -r" or "rtin". 'K' marks articles/thread as read
+without opening them. '-' marks them as unread.
+
+
+Emacs Gnus
+----------
+
+Some versions of Gnus freeze up when retrieving active groups. Since
+NOFFLE's log files in DEBUG mode show nothing unusual, I believe that
+this is a bug in Gnus. Sometimes it helps to remove all ".newsrc" and
+similar files on ones home directory and restarting Gnus.
+
+Here is a proposal for changing some key-bindings.
+
+   ;; Customising Gnus for use with the NOFFLE news server
+   ;; 
+   ;;  tick and open article
+   ;;          for reading/marking for download
+   ;;   scroll article text circular
+   ;;          for avoiding automatic opening of next article
+   ;;       mark article as read and go to next line
+   (defun my-gnus-summary-tick-and-open(n)
+     "Tick and open article, so that NOFFLE marks it for download" 
+     (interactive "p")
+     (gnus-summary-scroll-up n)
+     (gnus-summary-mark-article nil gnus-ticked-mark t)
+     )
+   (defun my-gnus-summary-next-page(n)
+     "Next page of article, but do not open next article automatically"
+     (interactive "p")
+     (gnus-summary-next-page 10 t) ;; Call with argument `circular'.
+     )
+   (defun my-gnus-summary-mark-read-next-line(n)
+     "Mark article as read and go to next line"
+     (interactive "p")
+     (gnus-summary-mark-article-as-read gnus-read-mark)
+     (next-line n)
+     )
+   (defun my-gnus-summary-mode-hook ()
+     (define-key gnus-summary-mode-map "\r"
+       'my-gnus-summary-tick-and-open)
+     (define-key gnus-summary-mode-map " "
+       'my-gnus-summary-next-page)
+     (define-key gnus-summary-mode-map "d"
+       'my-gnus-summary-mark-read-next-line)
+     )
+   (add-hook 'gnus-summary-mode-hook 'my-gnus-summary-mode-hook)
+
+
+pan 0.8.0beta5
+--------------
+
+Ok.
+
+-- 
+Markus Enzenberger <markus.enzenberger@t-online.de>
+Last update: 4/2000
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/noffle.1	Fri May 05 21:26:14 2000 +0100
@@ -0,0 +1,352 @@
+.TH noffle 1
+.\" $Id: noffle.1 48 2000-05-05 20:26:14Z uh1763 $
+.SH NAME
+noffle \- Usenet package optimized for dialup connections.
+
+.SH SYNOPSIS
+
+.B noffle
+\-a | \-\-article <message id>|all
+.br
+.B noffle
+\-c | \-\-cancel <message id>
+.br
+.B noffle
+\-C | \-\-create <local newsgroup name>
+.br
+.B noffle
+\-d | \-\-database
+.br
+.B noffle
+\-D | \-\-delete <newsgroup name>
+.br
+.B noffle
+\-e | \-\-expire
+.br
+.B noffle
+\-f | \-\-fetch
+.br
+.B noffle
+\-g | \-\-groups
+.br
+.B noffle
+\-h | \-\-help
+.br
+.B noffle
+\-l | \-\-list
+.br
+.B noffle
+\-m | \-\-modify desc <newsgroup name> <group description>
+.br
+.B noffle
+\-m | \-\-modify post <local newsgroup name> (y|n)
+.br
+.B noffle
+\-n | \-\-online
+.br
+.B noffle
+\-o | \-\-offline
+.br
+.B noffle
+\-q | \-\-query groups|desc|times
+.br
+.B noffle
+\-R | \-\-requested
+.br
+.B noffle
+\-r | \-\-server
+.br
+.B noffle
+\-s | \-\-subscribe-over <group>
+.br
+.B noffle
+\-S | \-\-subscribe-full <group>
+.br
+.B noffle
+\-t | \-\-subscribe-thread <group>
+.br
+.B noffle
+\-u | \-\-unsubscribe <group>
+
+.SH DESCRIPTION
+
+.B NOFFLE
+is an Usenet package optimized for low speed dialup Internet connections
+and few users.
+The
+.B noffle
+program is used for running and steering of the proxy news server,
+for retrieving new articles from the remote server and for
+expiring old articles from the database.
+.B NOFFLE
+can fetch newsgroups in one of the following modes:
+.TP
+.B full
+fetch full articles,
+.TP
+.B over
+fetch only article overviews by default. Opening an article marks it
+for download next time online,
+.TP
+.B thread
+like
+.B over,
+but download articles full if an article of the same thread already has
+been downloaded.
+
+.PP
+.B NOFFLE
+also offers limited support for local news groups. Articles
+posted to these appear in full in the database for the local group(s)
+immediately. They are expired in the usual way.
+.PP
+If an article is cross-posted to a local group and a remote group, it
+appears in the local group immediately and in the remote group after
+the next fetch from the remove server.
+.PP
+Note that
+.B NOFFLE
+cannot exchange the contents of local groups with other news servers.
+
+.SH OPTIONS
+
+.TP
+.B \-a, \-\-article <message id>|all
+Write article <message id> to standard output. Message Id must contain
+the leading '<' and trailing '>' (quote the argument to avoid shell
+interpretation of '<' and '>').
+.br
+If "all" is given as message Id, all articles are shown. 
+
+.TP
+.B \-c, \-\-cancel <message id>
+Cancel the article from the database and remove it from the queue of
+outbound messages if it has not already been sent. Message Id must
+contain the leading '<' and trailing '>' (quote the argument to avoid
+shell interpretation of '<' and '>').
+
+.TP
+.B \-C, \-\-create <local newsgroup name>
+Create a new local newsgroup with the given name. The name should
+conform to the usual newsgroup naming rules to avoid confusing
+newsreaders.
+
+.TP
+.B \-d, \-\-database
+Write the complete content of the article database to standard output.
+
+.TP
+.B \-D, \-\-delete <newsgroup name>
+Delete the newsgroup with the given name. All articles that only
+belong to the group are deleted as well.
+
+.TP
+.B \-e, \-\-expire
+Delete all articles that have not been accessed recently from the
+database.
+Should be run regularily from
+.BR crond (8).
+.TP
+The default expire period is 14 days. This can be changed and
+custom expiry periods set for individual newsgroups or sets of
+newsgroups in
+.B /etc/noffle.conf.
+
+.TP
+.B \-f, \-\-fetch
+Get new newsfeed from the remote server.
+Updates the list of the existing newsgroups,
+fetches new articles overviews or full articles from subscribed
+groups (see
+.B fetchlist
+),
+delivers all posted articles to the remote server,
+and retrieves all articles marked for download.
+.B noffle --fetch
+should be run in the
+.B ip-up
+script of
+.BR pppd (8).
+
+.TP
+.B \-g, \-\-groups
+List all groups available at remote server.
+.br
+Format (fields separated by tabs):
+.br
+<name> <server> <first> <last> <remote next> <post allowed> <created> <last access> <desc>
+
+.TP
+.B \-h, \-\-help
+Print a list of all options.
+
+.TP
+.B \-l, \-\-list
+List all groups that are presently to be fetched and their fetch mode.
+.br
+Format: <groupname> <server> full|thread|over
+
+.TP
+.B \-m | \-\-modify desc <newsgroup name> <group description>
+Modify the description of the named newsgroup.
+
+.TP
+.B \-m | \-\-modify post <local newsgroup name> <permission>
+Modify the posting permission on a local newsgroup. <permission> must
+be either 'y' (yes, posting allowed) or 'n' (no, posting not allowed).
+Attempts to post to a newsgroup with posting disabled will be rejected.
+
+.TP
+.B \-n, \-\-online
+Put
+.B NOFFLE
+to online status. Requested articles or overviews of selected
+groups are immediately fetched from the remote server.
+Should be run in the
+.B ip-up
+script of
+.BR pppd (8).
+
+.TP
+.B \-o, \-\-offline
+Put
+.B NOFFLE
+to offline status. Requested articles not already in the
+database are marked for download.
+Should be run in the
+.B ip-down
+script of
+.BR pppd (8).
+
+.TP
+.B \-q, \-\-query groups|desc|times
+Query information about all groups from the remote server and merge it to
+the
+.B groupinfo
+file. This must be run after installing 
+.B noffle
+or sometimes after a change of the remote news server or corruption
+of the file. It can take some time on slow connections.
+.B groups
+retrieves the list of the existing newsgroups
+(resets all local article counters),
+.B desc
+retrieves all newsgroup descriptions,
+.B times
+retrieves the creation times of the newsgroups.
+
+.TP
+.B \-r, \-\-server
+Run as NNTP server on standard input and standard output. This is
+intended to be called by
+.BR inetd (8)
+and should be registered in
+.B /etc/inetd.conf.
+Error and logging messages are put to the
+.BR syslogd (8)
+daemon which is usually configured to write them to
+.B /var/log/news.
+A list of the NNTP commands that are understood by
+.B noffle
+can be retrieved by running the server and typing
+.B HELP.
+
+.TP
+.B \-R, \-\-requested
+List articles that are marked for download.
+
+Format: <message-id> <server>
+
+.TP
+.B \-s, \-\-subscribe-over <group>
+Add group with name <group> to list of groups that are presently to be fetched
+(in over mode).
+
+.TP
+.B \-S, \-\-subscribe-full <group>
+Add group with name <group> to list of groups that are presently to be fetched
+(in full mode).
+
+.TP
+.B \-t, \-\-subscribe-thread <group>
+Add group with name <group> to list of groups that are presently to be fetched
+(in thread mode).
+
+.TP
+.B \-u, \-\-unsubscribe <group>
+Remove group with name <group> from list of groups that are presently to
+be fetched.
+
+.SH FILES
+
+.B NOFFLE
+takes its configuration from a configuration file, by default
+.I /etc/noffle.conf.
+For a description of this file, see
+.BR noffle.conf (5).
+.
+
+.B NOFFLE
+keeps all its data files in a spool directory.
+.I /var/spool/noffle
+is the default location.
+
+.TP
+.B <spool dir>/fetchlist
+List of newsgroups that are presently to be fetched.
+.br
+
+.TP
+.B <spool dir>/data/groupinfo.gdbm
+Database with groups in
+.BR gdbm(3)
+format.
+
+.TP
+.B <spool dir>/data/articles.gdbm
+Database with articles in
+.BR gdbm(3)
+format.
+
+.TP
+.B <spool dir>/lock/
+Lock files and files indicating online/offline status.
+
+.TP
+.B <spool dir>/outgoing/
+Posted articles to be delivered to the remote server.
+
+.TP
+.B <spool dir>/overview/
+Text file per group with article overviews.
+
+.TP
+.B <spool dir>/requested/
+Message IDs of articles marked for download.
+
+
+.SH SEE ALSO
+
+.BR noffle.conf (5),
+.BR crond (8),
+.BR inetd (8),
+.BR pppd (8)
+.br
+.B RFC 977,
+.B RFC 1036,
+.br
+.B IETF drafts on common NNTP extensions:
+.br
+.B http://www.karlsruhe.org/
+.br
+.B NOFFLE home page:
+.br
+.B http://home.t-online.de/home/markus.enzenberger/noffle.html
+
+.SH AUTHORS
+
+Markus Enzenberger <markus.enzenberger@t-online.de>
+.br
+Volker Wysk <volker.wysk@student.uni-tuebingen.de>
+
+1998-1999.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/noffle.conf.5	Fri May 05 21:26:14 2000 +0100
@@ -0,0 +1,200 @@
+.TH noffle.conf 5
+.\" $Id: noffle.conf.5 48 2000-05-05 20:26:14Z uh1763 $
+.SH NAME
+noffle.conf \- Configuration file for NOFFLE news server
+
+.SH DESCRIPTION
+
+The
+.B NOFFLE
+news server - see
+.BR noffle (1)
+- takes its configuration from a configuration file.
+By default this file is \fI/etc/noffle.conf\fP.
+
+.PP
+.B noffle.conf
+is a normal text file containing
+.B NOFFLE
+settings, one per line.
+
+.PP
+Leading whitespace on a line is ignored, as is any comment
+text. Comment text begins with a '#' character and continues to the
+end of the line. Blank lines are permitted.
+
+.SH SETTINGS
+
+.TP
+.B server <hostname>[:<port>] [<user> <pass>]
+Name of the remote server. If no port given, port 119 is used.
+Username and password for servers that need authentication
+(Original AUTHINFO). The password may not contain white-spaces.
+If there are multiple server entries in the config file, all of them are
+used for getting groups. In this case the first server should be
+the one of your main provider. Note that you must always
+run 'noffle --query groups'
+after making changes to the server entries.
+
+.TP
+.B max-fetch <n>
+Never get more than <n> articles. If there are more, the oldest ones
+are discarded.
+.br
+Default: 300
+
+.TP
+.B mail-to <address>
+Receiver of failed postings. If empty then failed postings are returned
+to the sender (taking the address from the article's Sender, X-Sender or
+From field, in this order).
+.br
+Default: <empty string>
+
+.TP
+.B auto-unsubscribe yes|no
+Automatically remove groups from fetch list if they have not been
+accessed for a number days.
+.br
+Default: no
+
+.TP
+.B auto-unsubscribe-days <n>
+Number of days used for auto-unsubscribe option.
+.br
+Default: 30
+
+.TP
+.B thread-follow-time <n>
+Automatically mark articles for download in thread mode, if they
+are referencing an article that has been opened by a reader within the last
+<n> days.
+.br
+Default: 7
+
+.TP
+.B connect-timeout <n>
+Timeout for connecting to remote server in seconds.
+.br
+Default: 30
+
+.TP
+.B auto-subscribe yes|no
+Automatically put groups on fetch list if someone reads them.
+<mode> can be full, over, thread (depending on the fetch mode) or
+off (do not subscribe automatically). Condition for putting a group
+on the list is that an article is opened. For this reason there is
+always a pseudo article visible in groups that are not on the fetch list.
+.br
+Default: no
+
+.TP
+.B auto-subscribe-mode full|thread|over
+Mode for auto-subscribe option.
+.br
+Default: over
+
+.TP
+.B remove-messageid yes|no
+Remove Message-ID from posted articles. Some remote servers can generate
+Message-IDs.
+.br
+Default: no
+
+.TP
+.B replace-messageid yes|no
+Replace Message-ID of posted articles by a Message-ID generated by
+NOFFLE. Some news readers generate Message-IDs that are not accepted by
+some servers. For generating Message-IDs, the domain name of your system should
+be a valid domain name. If you are in a local domain, set it to your
+provider's domain name.
+.br
+Default: yes
+
+.TP
+.B default-expire <n>
+The default expiry period, in days. An expiry period of 0 means "never".
+.br
+Default: 14
+
+.TP
+.B expire <group pattern> <n>
+The expiry period for a newsgroup or set of newsgroups, in days. The
+expiry pattern can contain \fIwildcards\fP, and there can be multiple
+.B expire
+lines. When checking the expiry period for a group, the expiry
+patterns are checked in the order in which they appear in
+.I /etc/noffle.conf
+until the first match occurs. If no pattern matches the group name, the
+.B default expiry period
+is used. An expiry period of 0 means "never".
+.br
+Default: no
+
+.SH "GROUP NAME WILDCARDS"
+
+.B NOFFLE
+uses a wildcard format that closely matches filename-style wildcards.
+\fIalt.binaries.*\fP, for example, matches all newsgroups under the
+.I alt.binaries
+hierarchy. A full description of the fomat (known as
+.B wildmat
+patterns) is as follows.
+
+.TP
+.BI \e x
+Turns off the special meaning of
+.I x
+and matches it directly; this is used mostly before a question mark or
+asterisk, and is not special inside square brackets.
+.TP
+.B ?
+Matches any single character.
+.TP
+.B *
+Matches any sequence of zero or more characters.
+.TP
+.BI [ x...y ]
+Matches any single character specified by the set
+.IR x...y .
+A minus sign may be used to indicate a range of characters.
+That is,
+.I [0\-5abc]
+is a shorthand for
+.IR [012345abc] .
+More than one range may appear inside a character set;
+.I [0-9a-zA-Z._]
+matches almost all of the legal characters for a host name.
+The close bracket,
+.IR ] ,
+may be used if it is the first character in the set.
+The minus sign,
+.IR \- ,
+may be used if it is either the first or last character in the set.
+.TP
+.BI [^ x...y ]
+This matches any character
+.I not
+in the set
+.IR x...y ,
+which is interpreted as described above.
+For example,
+.I [^]\-]
+matches any character other than a close bracket or minus sign.
+
+
+.SH SEE ALSO
+
+.BR noffle (1)
+
+.SH AUTHORS
+
+Markus Enzenberger <markus.enzenberger@t-online.de>
+.br
+Volker Wysk <volker.wysk@student.uni-tuebingen.de>
+.br
+Jim Hague <jim.hague@acm.org>
+.br
+1998-2000.
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/noffle.lsm	Fri May 05 21:26:14 2000 +0100
@@ -0,0 +1,16 @@
+Begin3
+Title:          NOFFLE - news server 
+Version:	
+Entered-date:   28AUG98
+Description:    NOFFLE is a news server optimized for low speed dialup
+		connections to the Internet and few users.
+		It allows reading news offline with many news reader
+                programs, even if they do not support offline reading
+                by themselves.
+Keywords:       news server, news reader, offline, modem, dialup
+Author:		Markus Enzenberger <markus.enzenberger@t-online.de>
+Maintained-by:  Markus Enzenberger <markus.enzenberger@t-online.de>
+Primary-site:   http://home.t-online.de/home/markus.enzenberger/noffle.html
+Platforms:      UNIX, GNU/Linux
+Copying-policy: GPL
+End
--- a/noffle.1	Fri May 05 09:32:53 2000 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,352 +0,0 @@
-.TH noffle 1
-.\" $Id: noffle.1 44 2000-05-05 07:23:15Z enz $
-.SH NAME
-noffle \- Usenet package optimized for dialup connections.
-
-.SH SYNOPSIS
-
-.B noffle
-\-a | \-\-article <message id>|all
-.br
-.B noffle
-\-c | \-\-cancel <message id>
-.br
-.B noffle
-\-C | \-\-create <local newsgroup name>
-.br
-.B noffle
-\-d | \-\-database
-.br
-.B noffle
-\-D | \-\-delete <newsgroup name>
-.br
-.B noffle
-\-e | \-\-expire
-.br
-.B noffle
-\-f | \-\-fetch
-.br
-.B noffle
-\-g | \-\-groups
-.br
-.B noffle
-\-h | \-\-help
-.br
-.B noffle
-\-l | \-\-list
-.br
-.B noffle
-\-m | \-\-modify desc <newsgroup name> <group description>
-.br
-.B noffle
-\-m | \-\-modify post <local newsgroup name> (y|n)
-.br
-.B noffle
-\-n | \-\-online
-.br
-.B noffle
-\-o | \-\-offline
-.br
-.B noffle
-\-q | \-\-query groups|desc|times
-.br
-.B noffle
-\-R | \-\-requested
-.br
-.B noffle
-\-r | \-\-server
-.br
-.B noffle
-\-s | \-\-subscribe-over <group>
-.br
-.B noffle
-\-S | \-\-subscribe-full <group>
-.br
-.B noffle
-\-t | \-\-subscribe-thread <group>
-.br
-.B noffle
-\-u | \-\-unsubscribe <group>
-
-.SH DESCRIPTION
-
-.B NOFFLE
-is an Usenet package optimized for low speed dialup Internet connections
-and few users.
-The
-.B noffle
-program is used for running and steering of the proxy news server,
-for retrieving new articles from the remote server and for
-expiring old articles from the database.
-.B NOFFLE
-can fetch newsgroups in one of the following modes:
-.TP
-.B full
-fetch full articles,
-.TP
-.B over
-fetch only article overviews by default. Opening an article marks it
-for download next time online,
-.TP
-.B thread
-like
-.B over,
-but download articles full if an article of the same thread already has
-been downloaded.
-
-.PP
-.B NOFFLE
-also offers limited support for local news groups. Articles
-posted to these appear in full in the database for the local group(s)
-immediately. They are expired in the usual way.
-.PP
-If an article is cross-posted to a local group and a remote group, it
-appears in the local group immediately and in the remote group after
-the next fetch from the remove server.
-.PP
-Note that
-.B NOFFLE
-cannot exchange the contents of local groups with other news servers.
-
-.SH OPTIONS
-
-.TP
-.B \-a, \-\-article <message id>|all
-Write article <message id> to standard output. Message Id must contain
-the leading '<' and trailing '>' (quote the argument to avoid shell
-interpretation of '<' and '>').
-.br
-If "all" is given as message Id, all articles are shown. 
-
-.TP
-.B \-c, \-\-cancel <message id>
-Cancel the article from the database and remove it from the queue of
-outbound messages if it has not already been sent. Message Id must
-contain the leading '<' and trailing '>' (quote the argument to avoid
-shell interpretation of '<' and '>').
-
-.TP
-.B \-C, \-\-create <local newsgroup name>
-Create a new local newsgroup with the given name. The name should
-conform to the usual newsgroup naming rules to avoid confusing
-newsreaders.
-
-.TP
-.B \-d, \-\-database
-Write the complete content of the article database to standard output.
-
-.TP
-.B \-D, \-\-delete <newsgroup name>
-Delete the newsgroup with the given name. All articles that only
-belong to the group are deleted as well.
-
-.TP
-.B \-e, \-\-expire
-Delete all articles that have not been accessed recently from the
-database.
-Should be run regularily from
-.BR crond (8).
-.TP
-The default expire period is 14 days. This can be changed and
-custom expiry periods set for individual newsgroups or sets of
-newsgroups in
-.B /etc/noffle.conf.
-
-.TP
-.B \-f, \-\-fetch
-Get new newsfeed from the remote server.
-Updates the list of the existing newsgroups,
-fetches new articles overviews or full articles from subscribed
-groups (see
-.B fetchlist
-),
-delivers all posted articles to the remote server,
-and retrieves all articles marked for download.
-.B noffle --fetch
-should be run in the
-.B ip-up
-script of
-.BR pppd (8).
-
-.TP
-.B \-g, \-\-groups
-List all groups available at remote server.
-.br
-Format (fields separated by tabs):
-.br
-<name> <server> <first> <last> <remote next> <post allowed> <created> <last access> <desc>
-
-.TP
-.B \-h, \-\-help
-Print a list of all options.
-
-.TP
-.B \-l, \-\-list
-List all groups that are presently to be fetched and their fetch mode.
-.br
-Format: <groupname> <server> full|thread|over
-
-.TP
-.B \-m | \-\-modify desc <newsgroup name> <group description>
-Modify the description of the named newsgroup.
-
-.TP
-.B \-m | \-\-modify post <local newsgroup name> <permission>
-Modify the posting permission on a local newsgroup. <permission> must
-be either 'y' (yes, posting allowed) or 'n' (no, posting not allowed).
-Attempts to post to a newsgroup with posting disabled will be rejected.
-
-.TP
-.B \-n, \-\-online
-Put
-.B NOFFLE
-to online status. Requested articles or overviews of selected
-groups are immediately fetched from the remote server.
-Should be run in the
-.B ip-up
-script of
-.BR pppd (8).
-
-.TP
-.B \-o, \-\-offline
-Put
-.B NOFFLE
-to offline status. Requested articles not already in the
-database are marked for download.
-Should be run in the
-.B ip-down
-script of
-.BR pppd (8).
-
-.TP
-.B \-q, \-\-query groups|desc|times
-Query information about all groups from the remote server and merge it to
-the
-.B groupinfo
-file. This must be run after installing 
-.B noffle
-or sometimes after a change of the remote news server or corruption
-of the file. It can take some time on slow connections.
-.B groups
-retrieves the list of the existing newsgroups
-(resets all local article counters),
-.B desc
-retrieves all newsgroup descriptions,
-.B times
-retrieves the creation times of the newsgroups.
-
-.TP
-.B \-r, \-\-server
-Run as NNTP server on standard input and standard output. This is
-intended to be called by
-.BR inetd (8)
-and should be registered in
-.B /etc/inetd.conf.
-Error and logging messages are put to the
-.BR syslogd (8)
-daemon which is usually configured to write them to
-.B /var/log/news.
-A list of the NNTP commands that are understood by
-.B noffle
-can be retrieved by running the server and typing
-.B HELP.
-
-.TP
-.B \-R, \-\-requested
-List articles that are marked for download.
-
-Format: <message-id> <server>
-
-.TP
-.B \-s, \-\-subscribe-over <group>
-Add group with name <group> to list of groups that are presently to be fetched
-(in over mode).
-
-.TP
-.B \-S, \-\-subscribe-full <group>
-Add group with name <group> to list of groups that are presently to be fetched
-(in full mode).
-
-.TP
-.B \-t, \-\-subscribe-thread <group>
-Add group with name <group> to list of groups that are presently to be fetched
-(in thread mode).
-
-.TP
-.B \-u, \-\-unsubscribe <group>
-Remove group with name <group> from list of groups that are presently to
-be fetched.
-
-.SH FILES
-
-.B NOFFLE
-takes its configuration from a configuration file, by default
-.I /etc/noffle.conf.
-For a description of this file, see
-.BR noffle.conf (5).
-.
-
-.B NOFFLE
-keeps all its data files in a spool directory.
-.I /var/spool/noffle
-is the default location.
-
-.TP
-.B <spool dir>/fetchlist
-List of newsgroups that are presently to be fetched.
-.br
-
-.TP
-.B <spool dir>/data/groupinfo.gdbm
-Database with groups in
-.BR gdbm(3)
-format.
-
-.TP
-.B <spool dir>/data/articles.gdbm
-Database with articles in
-.BR gdbm(3)
-format.
-
-.TP
-.B <spool dir>/lock/
-Lock files and files indicating online/offline status.
-
-.TP
-.B <spool dir>/outgoing/
-Posted articles to be delivered to the remote server.
-
-.TP
-.B <spool dir>/overview/
-Text file per group with article overviews.
-
-.TP
-.B <spool dir>/requested/
-Message IDs of articles marked for download.
-
-
-.SH SEE ALSO
-
-.BR noffle.conf (5),
-.BR crond (8),
-.BR inetd (8),
-.BR pppd (8)
-.br
-.B RFC 977,
-.B RFC 1036,
-.br
-.B IETF drafts on common NNTP extensions:
-.br
-.B http://www.karlsruhe.org/
-.br
-.B NOFFLE home page:
-.br
-.B http://home.t-online.de/home/markus.enzenberger/noffle.html
-
-.SH AUTHORS
-
-Markus Enzenberger <markus.enzenberger@t-online.de>
-.br
-Volker Wysk <volker.wysk@student.uni-tuebingen.de>
-
-1998-1999.
--- a/noffle.conf.5	Fri May 05 09:32:53 2000 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-.TH noffle.conf 5
-.\" $Id: noffle.conf.5 44 2000-05-05 07:23:15Z enz $
-.SH NAME
-noffle.conf \- Configuration file for NOFFLE news server
-
-.SH DESCRIPTION
-
-The
-.B NOFFLE
-news server - see
-.BR noffle (1)
-- takes its configuration from a configuration file.
-By default this file is \fI/etc/noffle.conf\fP.
-
-.PP
-.B noffle.conf
-is a normal text file containing
-.B NOFFLE
-settings, one per line.
-
-.PP
-Leading whitespace on a line is ignored, as is any comment
-text. Comment text begins with a '#' character and continues to the
-end of the line. Blank lines are permitted.
-
-.SH SETTINGS
-
-.TP
-.B server <hostname>[:<port>] [<user> <pass>]
-Name of the remote server. If no port given, port 119 is used.
-Username and password for servers that need authentication
-(Original AUTHINFO). The password may not contain white-spaces.
-If there are multiple server entries in the config file, all of them are
-used for getting groups. In this case the first server should be
-the one of your main provider. Note that you must always
-run 'noffle --query groups'
-after making changes to the server entries.
-
-.TP
-.B max-fetch <n>
-Never get more than <n> articles. If there are more, the oldest ones
-are discarded.
-.br
-Default: 300
-
-.TP
-.B mail-to <address>
-Receiver of failed postings. If empty then failed postings are returned
-to the sender (taking the address from the article's Sender, X-Sender or
-From field, in this order).
-.br
-Default: <empty string>
-
-.TP
-.B auto-unsubscribe yes|no
-Automatically remove groups from fetch list if they have not been
-accessed for a number days.
-.br
-Default: no
-
-.TP
-.B auto-unsubscribe-days <n>
-Number of days used for auto-unsubscribe option.
-.br
-Default: 30
-
-.TP
-.B thread-follow-time <n>
-Automatically mark articles for download in thread mode, if they
-are referencing an article that has been opened by a reader within the last
-<n> days.
-.br
-Default: 7
-
-.TP
-.B connect-timeout <n>
-Timeout for connecting to remote server in seconds.
-.br
-Default: 30
-
-.TP
-.B auto-subscribe yes|no
-Automatically put groups on fetch list if someone reads them.
-<mode> can be full, over, thread (depending on the fetch mode) or
-off (do not subscribe automatically). Condition for putting a group
-on the list is that an article is opened. For this reason there is
-always a pseudo article visible in groups that are not on the fetch list.
-.br
-Default: no
-
-.TP
-.B auto-subscribe-mode full|thread|over
-Mode for auto-subscribe option.
-.br
-Default: over
-
-.TP
-.B remove-messageid yes|no
-Remove Message-ID from posted articles. Some remote servers can generate
-Message-IDs.
-.br
-Default: no
-
-.TP
-.B replace-messageid yes|no
-Replace Message-ID of posted articles by a Message-ID generated by
-NOFFLE. Some news readers generate Message-IDs that are not accepted by
-some servers. For generating Message-IDs, the domain name of your system should
-be a valid domain name. If you are in a local domain, set it to your
-provider's domain name.
-.br
-Default: yes
-
-.TP
-.B default-expire <n>
-The default expiry period, in days. An expiry period of 0 means "never".
-.br
-Default: 14
-
-.TP
-.B expire <group pattern> <n>
-The expiry period for a newsgroup or set of newsgroups, in days. The
-expiry pattern can contain \fIwildcards\fP, and there can be multiple
-.B expire
-lines. When checking the expiry period for a group, the expiry
-patterns are checked in the order in which they appear in
-.I /etc/noffle.conf
-until the first match occurs. If no pattern matches the group name, the
-.B default expiry period
-is used. An expiry period of 0 means "never".
-.br
-Default: no
-
-.SH "GROUP NAME WILDCARDS"
-
-.B NOFFLE
-uses a wildcard format that closely matches filename-style wildcards.
-\fIalt.binaries.*\fP, for example, matches all newsgroups under the
-.I alt.binaries
-hierarchy. A full description of the fomat (known as
-.B wildmat
-patterns) is as follows.
-
-.TP
-.BI \e x
-Turns off the special meaning of
-.I x
-and matches it directly; this is used mostly before a question mark or
-asterisk, and is not special inside square brackets.
-.TP
-.B ?
-Matches any single character.
-.TP
-.B *
-Matches any sequence of zero or more characters.
-.TP
-.BI [ x...y ]
-Matches any single character specified by the set
-.IR x...y .
-A minus sign may be used to indicate a range of characters.
-That is,
-.I [0\-5abc]
-is a shorthand for
-.IR [012345abc] .
-More than one range may appear inside a character set;
-.I [0-9a-zA-Z._]
-matches almost all of the legal characters for a host name.
-The close bracket,
-.IR ] ,
-may be used if it is the first character in the set.
-The minus sign,
-.IR \- ,
-may be used if it is either the first or last character in the set.
-.TP
-.BI [^ x...y ]
-This matches any character
-.I not
-in the set
-.IR x...y ,
-which is interpreted as described above.
-For example,
-.I [^]\-]
-matches any character other than a close bracket or minus sign.
-
-
-.SH SEE ALSO
-
-.BR noffle (1)
-
-.SH AUTHORS
-
-Markus Enzenberger <markus.enzenberger@t-online.de>
-.br
-Volker Wysk <volker.wysk@student.uni-tuebingen.de>
-.br
-Jim Hague <jim.hague@acm.org>
-.br
-1998-2000.
-
-