# HG changeset patch # User uh1763 # Date 957558374 -3600 # Node ID 2467ff423c15ff0fd118b26caef98b7f355de1d3 # Parent 92b59cfcf364c72547e7c51fbe5091ec4b92b93d [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. diff -r 92b59cfcf364 -r 2467ff423c15 AUTHORS --- /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 + + +Contributions +------------- + +Volker Wysk +Jim Hague +Uwe Hermann + diff -r 92b59cfcf364 -r 2467ff423c15 AUTHORS.html --- 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 @@ - - - -NOFFLE Authors - - - - -
-

NOFFLE Authors

-
- -
- -
    -
  • -Markus Enzenberger -
  • -Volker Wysk -
  • -Jim Hague -
- - - diff -r 92b59cfcf364 -r 2467ff423c15 CHANGELOG.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 @@ - - - -NOFFLE Changelog - - - - -
-

NOFFLE Changelog

-
- -
- -

Version 1.opre6pre

- -
    -
  • -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. -
  • -Change output of noffle -a all to standard mailbox format, -so that tools like grepmail work. -
- -

Version 1.0pre5

- -
    -
  • -Fixed bug: multiple-line headers of posted articles were truncated. -
  • -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. -
- - - diff -r 92b59cfcf364 -r 2467ff423c15 COPYING --- /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. + + + Copyright (C) 19yy + + 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. + + , 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. diff -r 92b59cfcf364 -r 2467ff423c15 COPYING.html --- 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 @@ - - - -NOFFLE Copying - - - -

- -

-

NOFFLE Copying

-
- -

-


-

- - -This program is available under the GNU General Public License. -

-The full terms and conditions for copying, distribution and modification -can be found at: -

-http://www.fsf.org/copyleft/gpl.html -
- - - - diff -r 92b59cfcf364 -r 2467ff423c15 ChangeLog --- /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 + + * 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. + diff -r 92b59cfcf364 -r 2467ff423c15 FAQ.html --- 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 @@ - - - -NOFFLE FAQ - - - -

- -

-

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. - - - diff -r 92b59cfcf364 -r 2467ff423c15 INSTALL --- /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 + or + noffle --subscribe-thread + or + noffle --subscribe-full + + * 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. diff -r 92b59cfcf364 -r 2467ff423c15 INSTALL.html --- 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 @@ - - - -NOFFLE Installation - - - -

- -

-

NOFFLE Installation

-
- -

-


-

- -For compiling NOFFLE there are the following 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 optimisation 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). -

    - -

- -

-For installing NOFFLE on your system, the following steps are necessary: -

- -

    - -
  • -Edit the Makefile. Change SPOOLDIR and PREFIX, if you do not -like the defaults. -

    - -

  • -Type 'make'. -

    - -

  • -Log in as root and type 'make install'. -

    - -

  • -Copy '<PREFIX>/doc/noffle/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 
    -
    -or -
    -         noffle --subscribe-thread 
    -
    -or -
    -         noffle --subscribe-full 
    -
    -Then 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 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 :-) - - - diff -r 92b59cfcf364 -r 2467ff423c15 LSM.TXT --- 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 -Maintained-by: Markus Enzenberger -Primary-site: http://home.t-online.de/home/markus.enzenberger/noffle.html -Platforms: UNIX, Linux -Copying-policy: GPL -End diff -r 92b59cfcf364 -r 2467ff423c15 NEWS --- /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 + diff -r 92b59cfcf364 -r 2467ff423c15 NOTES.html --- 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 @@ - - - -NOFFLE Compatibility Notes - - - - -

-

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. - -

-


- -Last modified 4/99, -Markus Enzenberger - - - - diff -r 92b59cfcf364 -r 2467ff423c15 README --- /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 . 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 : + + 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 . + + +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 + + * 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 + diff -r 92b59cfcf364 -r 2467ff423c15 README.html --- 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 @@ - - -NOFFLE - - - - - -

- -

-

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 -Linux -operating system and freely available under -GPL. -

-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 this web site. -
-noffle-1.0pre5.tar.gz -(current release, 18 Apr 2000) -
-noffle-1.0pre4.tar.gz -(current release, 13 Nov 1999) -
-RPM packages have been created by -Mario Moder. They are available -at -
-ftp://ftp.fbam.de/pub/linux/ -
-

- -[NEW] -I moved Noffle to -SourceForge -recently. You can download files from the -Noffle project page. -There is also a mailing list and a discussion forum. - -

Documentation

- -Read the files README and INSTALL from the package -for compiling and installing NOFFLE on your system. -

-Some German documentation -([Deutsch] -"NOFFLE Installation") -is provided by -Klaus Mödinger. -

-The current version is still beta. Please send bug reports, -comments and patches to - -markus.enzenberger@t-online.de. -

- -

Links

- - - - -

Acknowledgements

- -The wildmat newsgroup pattern matching software used by NOFFLE -was developed by Rich Salz, and is as distributed with INN -v2.2. - -

-


- -Last modified 4/2000, -Markus Enzenberger - - - - diff -r 92b59cfcf364 -r 2467ff423c15 TODO --- /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 .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) + diff -r 92b59cfcf364 -r 2467ff423c15 TODO.TXT --- 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 .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) diff -r 92b59cfcf364 -r 2467ff423c15 docs/FAQ --- /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. + diff -r 92b59cfcf364 -r 2467ff423c15 docs/NOTES --- /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 +Last update: 4/2000 + diff -r 92b59cfcf364 -r 2467ff423c15 docs/noffle.1 --- /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 |all +.br +.B noffle +\-c | \-\-cancel +.br +.B noffle +\-C | \-\-create +.br +.B noffle +\-d | \-\-database +.br +.B noffle +\-D | \-\-delete +.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 +.br +.B noffle +\-m | \-\-modify post (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 +.br +.B noffle +\-S | \-\-subscribe-full +.br +.B noffle +\-t | \-\-subscribe-thread +.br +.B noffle +\-u | \-\-unsubscribe + +.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 |all +Write article 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 +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 +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 +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 + + +.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: full|thread|over + +.TP +.B \-m | \-\-modify desc +Modify the description of the named newsgroup. + +.TP +.B \-m | \-\-modify post +Modify the posting permission on a local newsgroup. 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: + +.TP +.B \-s, \-\-subscribe-over +Add group with name to list of groups that are presently to be fetched +(in over mode). + +.TP +.B \-S, \-\-subscribe-full +Add group with name to list of groups that are presently to be fetched +(in full mode). + +.TP +.B \-t, \-\-subscribe-thread +Add group with name to list of groups that are presently to be fetched +(in thread mode). + +.TP +.B \-u, \-\-unsubscribe +Remove group with name 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 /fetchlist +List of newsgroups that are presently to be fetched. +.br + +.TP +.B /data/groupinfo.gdbm +Database with groups in +.BR gdbm(3) +format. + +.TP +.B /data/articles.gdbm +Database with articles in +.BR gdbm(3) +format. + +.TP +.B /lock/ +Lock files and files indicating online/offline status. + +.TP +.B /outgoing/ +Posted articles to be delivered to the remote server. + +.TP +.B /overview/ +Text file per group with article overviews. + +.TP +.B /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 +.br +Volker Wysk + +1998-1999. diff -r 92b59cfcf364 -r 2467ff423c15 docs/noffle.conf.5 --- /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 [:] [ ] +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 +Never get more than articles. If there are more, the oldest ones +are discarded. +.br +Default: 300 + +.TP +.B mail-to
+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: + +.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 +Number of days used for auto-unsubscribe option. +.br +Default: 30 + +.TP +.B thread-follow-time +Automatically mark articles for download in thread mode, if they +are referencing an article that has been opened by a reader within the last + days. +.br +Default: 7 + +.TP +.B connect-timeout +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. + 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 +The default expiry period, in days. An expiry period of 0 means "never". +.br +Default: 14 + +.TP +.B expire +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 +.br +Volker Wysk +.br +Jim Hague +.br +1998-2000. + + diff -r 92b59cfcf364 -r 2467ff423c15 docs/noffle.lsm --- /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 +Maintained-by: Markus Enzenberger +Primary-site: http://home.t-online.de/home/markus.enzenberger/noffle.html +Platforms: UNIX, GNU/Linux +Copying-policy: GPL +End diff -r 92b59cfcf364 -r 2467ff423c15 noffle.1 --- 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 |all -.br -.B noffle -\-c | \-\-cancel -.br -.B noffle -\-C | \-\-create -.br -.B noffle -\-d | \-\-database -.br -.B noffle -\-D | \-\-delete -.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 -.br -.B noffle -\-m | \-\-modify post (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 -.br -.B noffle -\-S | \-\-subscribe-full -.br -.B noffle -\-t | \-\-subscribe-thread -.br -.B noffle -\-u | \-\-unsubscribe - -.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 |all -Write article 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 -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 -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 -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 - - -.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: full|thread|over - -.TP -.B \-m | \-\-modify desc -Modify the description of the named newsgroup. - -.TP -.B \-m | \-\-modify post -Modify the posting permission on a local newsgroup. 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: - -.TP -.B \-s, \-\-subscribe-over -Add group with name to list of groups that are presently to be fetched -(in over mode). - -.TP -.B \-S, \-\-subscribe-full -Add group with name to list of groups that are presently to be fetched -(in full mode). - -.TP -.B \-t, \-\-subscribe-thread -Add group with name to list of groups that are presently to be fetched -(in thread mode). - -.TP -.B \-u, \-\-unsubscribe -Remove group with name 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 /fetchlist -List of newsgroups that are presently to be fetched. -.br - -.TP -.B /data/groupinfo.gdbm -Database with groups in -.BR gdbm(3) -format. - -.TP -.B /data/articles.gdbm -Database with articles in -.BR gdbm(3) -format. - -.TP -.B /lock/ -Lock files and files indicating online/offline status. - -.TP -.B /outgoing/ -Posted articles to be delivered to the remote server. - -.TP -.B /overview/ -Text file per group with article overviews. - -.TP -.B /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 -.br -Volker Wysk - -1998-1999. diff -r 92b59cfcf364 -r 2467ff423c15 noffle.conf.5 --- 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 [:] [ ] -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 -Never get more than articles. If there are more, the oldest ones -are discarded. -.br -Default: 300 - -.TP -.B mail-to
-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: - -.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 -Number of days used for auto-unsubscribe option. -.br -Default: 30 - -.TP -.B thread-follow-time -Automatically mark articles for download in thread mode, if they -are referencing an article that has been opened by a reader within the last - days. -.br -Default: 7 - -.TP -.B connect-timeout -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. - 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 -The default expiry period, in days. An expiry period of 0 means "never". -.br -Default: 14 - -.TP -.B expire -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 -.br -Volker Wysk -.br -Jim Hague -.br -1998-2000. - -