"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "inn-2.4.5/NEWS" of archive inn-2.4.5.tar.gz:


As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
    1 Changes in 2.4.5
    2 
    3     * Fixed the "alarm signal" around "SSL_read" in nnrpd:  it allows a
    4       proper disconnection of news clients which were previously hanging
    5       when posting an article through a SSL connection.  Moreover, the
    6       *clienttimeout* parameter now works on SSL connections.  Thanks to
    7       Matija Nalis for the patch.
    8 
    9     * SO_KEEPALIVE is now implemented for SSL TCP connections on systems
   10       which support it, allowing system detection and closing the dead TCP
   11       SSL connections automatically after system-specified time.  Thanks to
   12       Matija Nalis for the patch.
   13 
   14     * Fixed a segmentation fault when an article of a size greater than
   15       remaining stack is retrieved via SSL.  Thanks to Chris Caputo for this
   16       patch.
   17 
   18     * Fixed a few segfaults and bugs which affected both Python innd and
   19       nnrpd hooks.  They no longer check the existence of methods not used
   20       by the hooked script.  An issue with Python exception handling was
   21       also fixed, as well as a segfault fixed by Russ Allbery which happened
   22       whenever one closes and then reopens Python in the same process. 
   23       Julien Elie also fixed a bug when reloading Python filters (they were
   24       not always correctly reloaded) and a segfault when generating access
   25       groups with embedded Python filters for nnrpd.  Many thanks to David
   26       Hlacik for its bug reports.
   27 
   28     * The nnrpd.py stub file in order to test Python nnrpd hooks, as
   29       mentioned in their documentation, is now installed; only INN.py was
   30       previously installed in *pathfilter*.  Also fixed a bug in INN.py and
   31       add missing methods to it.
   32 
   33     * Fixed a long-standing bug in innreport which prevented it from
   34       correctly reporting nnrpd and innfeed log messages.
   35 
   36     * Fixed a hang in Perl hooks on (at least) HP/PA since Perl 5.10.
   37 
   38     * Fixed a compilation problem on some platforms because of AF_INET6
   39       which was not inside a HAVE_INET6 block in innfeed.
   40 
   41     * Fixed a bug in innfeed which contained thrice the same IPs for each
   42       peer; it unnecessarily slowed the peer IP rotation for innfeed. 
   43       Thanks, D. Stussy, for having seen that.  Miquel van Smoorenburg
   44       provided the patch.
   45 
   46     * A new *heavily* improved version of pullnews is shipped with this INN
   47       release.  This new version is provided by Geraint Edwards.  He added
   48       no more than 16 flags, fixed some bugs and integrated the backupfeed
   49       contrib script by Kai Henningsen, adding again 6 other flags.  A
   50       long-standing but very minor bug in the -g option was especially fixed
   51       and items from the to-do list implemented.  Many thanks again to
   52       Geraint Edwards.
   53 
   54     * New headers are accessible through Perl and Python innd filtering
   55       hooks.  You will find the exact list in the INN Python Filtering and
   56       Authentication Hooks documentation (doc/hook-python) and in Python
   57       samples.  Thanks to Matija Nalis for this addition of new useful
   58       headers.
   59 
   60     * New samples for Python nnrpd hooks are shipped with INN: 
   61       nnrpd_access.py for access control and nnrpd_dynamic.py for dynamic
   62       access control.  The nnrpd_auth.py script is now only used for
   63       authorization control.  See the readers.conf man page for more
   64       information (especially the *python_auth*, *python_access* and
   65       *python_dynamic* parameters).  The documention about INN Python
   66       Filtering and Authentication Hooks has also been improved by Julien
   67       Elie.
   68 
   69 Changes in 2.4.4
   70 
   71     * Fixed incomplete checking of packet sizes in the ctlinnd interface in
   72       the no-Unix-domain-sockets case.  This is a potential buffer overflow
   73       in dead code since basically all systems INN builds on support Unix
   74       domain sockets these days.  Also track the buffer size more correctly
   75       in the client side of this interface for the Unix domain socket case.
   76 
   77     * Group blocks in incoming.conf are now correctly parsed and no longer
   78       cause segfaults when loading this file.
   79 
   80     * Fixed a problem with innfeed continuously segfaulting on amd64
   81       hardware (and possibly on lots of 64-bit platforms).  Many thanks to
   82       Ollivier Robert for his patch and also to Kai Gallasch for having
   83       reported the problem and provided the FreeBSD server to debug it.
   84 
   85     * scanlogs now rotates innfeed's log file, which prevents innfeed from
   86       silently dying when its log file reaches 2 GB.
   87 
   88     * Perl 5.10 support has been added to INN thanks to Jakub Bogusz.
   89 
   90     * Some news clients hang when posting an article through a SSL
   91       connection: it seems that nnrpd's SSL routines make it wrongly wait
   92       for data completion.  In order to fix the problem, the select() wait
   93       is now just bypassed.  However, the IDLE timer stat is currently not
   94       collected for such connections.  Thanks to Kachun Lee for this
   95       workaround.
   96 
   97     * Fixed a bug in the display of the used compressor ("cunbatch" was used
   98       if arguments were passed to gzip or bzip2).
   99 
  100     * Fixed a bug in mailpost and pullnews which prevented useful error
  101       messages to be seen.  Also add the -x flag to pullnews in order to
  102       insert Xref: headers in articles which lack one.
  103 
  104     * If compiling with Berkeley DB, use its ndbm compatibility layer for
  105       ckpasswd in preference to searching for a traditional dbm library. 
  106       INN also supports Berkeley DB 4.4, 4.5 and 4.6 thanks to Marco d'Itri.
  107 
  108     * ovdb_init now properly closes stdin/out/err when it becomes a daemon. 
  109       The issue was reported by Viktor Pilpenok and fixed by Marco d'Itri.
  110 
  111     * Added support for Diablo quickhash and hashfeed algorithms.  It allows
  112       to distribute the messages among several peers (new Q flag for
  113       newsfeeds).  Thanks to Miquel van Smoorenburg for this implementation
  114       in INN.
  115 
  116     * innd now listen on separate sockets for IPv4 and IPv6 connections if
  117       the IPV6_V6ONLY socket option is available.  There might also be
  118       operating systems that still have separate IPv4 and IPv6 TCP
  119       implementations, and advanced features like TCP SACK might not be
  120       available on v6 sockets.  Thanks to Miquel van Smoorenburg for this
  121       patch.
  122 
  123     * The two configuration options *bindaddress* and *bindaddress6* can now
  124       be set on a per-peer basis for innfeed.  Setting *bindaddress6* to
  125       "none" tells innfeed to never attempt an IPv6 connection to that host.
  126       Thanks to Miquel van Smoorenburg for this patch.
  127 
  128     * Added a *nnrpdflags* parameter to inn.conf (modeled on the concept of
  129       *innflags*) to permit passing of command line arguments to instances
  130       of nnrpd spawned from innd.
  131 
  132     * A new inn.conf parameter called *pathcluster* has been added: it
  133       allows to append a common name to the Path: header on all incoming
  134       articles.  *pathhost* and *pathalias* (if set) are still appended to
  135       the path as usual, but *pathcluster* is always appended as the last
  136       element (e.g. on the leftmost side of the Path: header).  Thanks to
  137       Miquel van Smoorenburg for this feature.
  138 
  139     * simpleftp has been rewritten to use "Net::FTP".  Indeed, ftp.pl is no
  140       longer shipped with Perl 5 and the script did not work.
  141 
  142     * perl-nocem will now check for a timeout and re-open the socket if
  143       required.  Additionally, perl-nocem will switch to cancel_ctlinnd in
  144       case cancel_nntp fails after sending the Message-ID.  Thanks to
  145       Christoph Biedl for the patch.  A more detailed documentation has also
  146       been written for perl-nocem(8).
  147 
  148     * The RADIUS configuration is now wrapped in a "server {}" block in
  149       radius.conf.
  150 
  151     * Checkgroups when there is nothing to change no longer result in
  152       sending a blank mail to administrators.  Besides, no mail is sent by
  153       controlchan for the creation of a newsgroup when the action is "no
  154       change".
  155 
  156     * Checkgroups are now properly propagated even though the news server
  157       does not carry the groups they are posted to.
  158 
  159     * controlchan and docheckgroups now handle wire format messages so that
  160       articles from the spool can be directly fed to them.
  161 
  162     * Newgroup control messages for existing groups now change their
  163       description.  If a mail is sent to administrators, it reminds them to
  164       update their newsgroups file.  It also warns when there are missing or
  165       obsolete descriptions.  Furthermore, the newsgroups file is now
  166       written prettier (from one to three tabulations between the name of
  167       the group and its short description) and to.* groups cannot be
  168       created.
  169 
  170     * The sample control.ctl file has been extensively updated.
  171 
  172     * Fixed empty LISTGROUP replies which were not terminated.  Thanks to
  173       David Canzi for the patch.
  174 
  175     * In response to a LIST [file] command, if the file does not exist, we
  176       assume it is not maintained and return 503 instead of 215 and an empty
  177       file.  Moreover, capability to LIST ACTIVE.TIMES for a wildmat pattern
  178       as its third argument has been added in order to select wanted
  179       newsgroups.
  180 
  181     * inews now tries to authenticate if it does not receive a 200 return
  182       code after MODE READER.  Indeed, it might be able to post even with a
  183       201 return code and also with another codes like 440 or 480.
  184 
  185     * If creating a new history file, set the ownership and mode
  186       appropriately.  inncheck also expects fewer things to be private to
  187       the news user.  Most of the configuration files will never contain
  188       private information like passwords.
  189 
  190     * Other minor bug fixes and documentation improvements.
  191 
  192 Changes in 2.4.3
  193 
  194     * Previous versions of INN had an optimization for handling XHDR
  195       Newsgroups that used the Xref: header from overview.  While this does
  196       make the command much faster, it doesn't produce accurate results and
  197       breaks the NNTP protocol, so this optimization has been removed.
  198 
  199     * Fixed a bug in innd that allowed it to accept articles with duplicated
  200       headers if the header occurred an odd number of times.  Modified the
  201       programs for rebuilding overview to use the last Xref: header if there
  202       are multiple ones to avoid problems with spools that contain such
  203       invalid articles.
  204 
  205     * Fixed yet another problem with verifying that a user has permissions
  206       to approve posts to a moderated group.  Thanks, Jens Schlegel.
  207 
  208     * Increase the send and receive buffer on the Unix domain socket used by
  209       ctlinnd.  This should allow longer replies (particularly for innstat)
  210       on platforms with very low default Unix domain socket buffer sizes.
  211 
  212     * rnews's handling of articles with nul characters, NNTP errors, header
  213       problems, and deferrals has been significantly improved.
  214 
  215     * Thomas Parmelan added support to send-uucp for specifying the funnel
  216       or exploder site to flush for feeds managed through one and fixed a
  217       problem with picking up old stranded work files.
  218 
  219     * Many other more minor bug fixes, optimization improvements, and
  220       documentation fixes.
  221 
  222 Changes in 2.4.2
  223 
  224     * INN is now licensed under a less restrictive license (about as
  225       minimally restrictive as possible shy of public domain), and the
  226       clause similar to the old BSD advertising clause has been dropped.
  227 
  228     * "make install" and "make update" now always install the newly built
  229       binaries, rather than only installing them if the modification times
  230       are newer.  This is the behavior that people expect.  "make install"
  231       now also automatically builds a new (empty) history database if one
  232       doesn't already exist.
  233 
  234     * The embedded Tcl filter code has been disabled (and will be removed
  235       entirely in the next major release of INN).  It hasn't worked for some
  236       time and causes innd crashes if compiled in (even if not used).  If
  237       someone wants to step forward and maintain it, I recommend starting
  238       from scratch and emulating the Perl and Python filters.
  239 
  240     * ctlinnd should now successfully handle messages from INN up to the
  241       maximum allowable packet size in the protocol, fixing problems sites
  242       with many active peers were having with innstat output.
  243 
  244     * Overview generation has been fixed in both makehistory and innd to
  245       follow the rules in the latest NNTP draft rather than just replacing
  246       special characters with spaces.  This means that the unfolding of
  247       folded header lines will not introduce additional, incorrect
  248       whitespace in the overview data.
  249 
  250     * nnrpd now uniformly responds with a 480 or 502 status code to attempts
  251       to read a newsgroup to which the user does not have access, depending
  252       on whether the user has authenticated.  Previously, it returned a 411
  253       status code, claiming the group didn't exist, which confuses the
  254       reactive authentication capability of news readers.
  255 
  256     * If a user is not authorized to approve articles (using the "A"
  257       *access* control in readers.conf), articles that include Approved:
  258       headers will be rejected even if posted to unmoderated groups.  Some
  259       other site may consider that group to be moderated.
  260 
  261     * The configuration parser used for readers.conf and others now
  262       correctly handles "#" inside quoted strings and is more robust against
  263       unmatched double quotes.
  264 
  265     * Messages mailed to moderators had two spaces after the colons in the
  266       headers, rather than one.  This bug has been fixed.
  267 
  268     * A bug that could cause heap corruption and random crashes in innd if
  269       INN were compiled with Python support has been fixed.
  270 
  271     * Some problems with innd's tracking of article size and enforcement of
  272       the configured maximum article size have been fixed.
  273 
  274     * pgpverify will now correctly verify signatures generated by GnuPG and
  275       better supports GnuPG as the PGP implementation.
  276 
  277     * INN's code should now be more 64-bit clean in its handling of size_t,
  278       pointer differences, and casting of pointers, correcting problems that
  279       showed up on 64-bit platforms like AMD64.
  280 
  281     * Improved the error reporting in the history database code, in inews,
  282       in controlchan, and in expire.
  283 
  284     * Many other, more minor bugs have also been fixed.
  285 
  286 Changes in 2.4.1
  287 
  288     * SECURITY:  Handle the special filing of control messages into per-type
  289       newsgroups more robustly.  This closes a potentially exploitable
  290       buffer overflow.  Thanks to Dan Riley for his excellent bug report.
  291 
  292     * Fixed article handling in innd so that articles without a Path: header
  293       (arising from peers sending malformatted articles or injecting
  294       malformatted articles through rnews) would not cause innd to crash. 
  295       (This was not exploitable.)
  296 
  297     * Fixed a serious bug in XPAT handling, thanks to Tommy van Leeuwen.
  298 
  299     * "configure" now looks for sendmail only in /usr/sbin and /usr/lib, not
  300       on the user's path.  This should reduce the need for --with-sendmail
  301       if your preferred sendmail is in a standard location.
  302 
  303     * The robustness of the tradindexed overview method has been further
  304       increased, handling more edge cases arising from corrupted databases
  305       and oddly-named newsgroups.
  306 
  307     * innd now never decreases the high water mark of a newsgroup when
  308       renumbering, which should help ameliorate overview and active file
  309       synchronization problems.
  310 
  311     * Do not close and reopen the history file on ctlinnd reload when the
  312       server is paused or throttled.  This was breaking ctlinnd reload all
  313       during a server pause.
  314 
  315     * Various minor portability and compilation issues fixed.  Substantial
  316       numbers of compiler warnings have been cleaned up, thanks largely to
  317       work by Ilya Kovalenko.
  318 
  319     * Multiple other more minor bugs have been fixed.
  320 
  321     * Documentation and man pages have been clarified and updated.
  322 
  323 Upgrading from 2.3 to 2.4
  324 
  325     The inn.conf parser has changed between INN 2.3 and 2.4.  Due to that
  326     change, options in inn.conf that contain whitespace or a few other
  327     special characters must be quoted with double quotes, and empty
  328     parameters (parameters with no value) are not allowed.  INN 2.4 comes
  329     with a script, innupgrade, run automatically during "make update", that
  330     will attempt to fix any problems that it finds with your inn.conf file,
  331     saving the original as inn.conf.OLD.
  332 
  333     This change is the beginning of standardization of parsing and syntax
  334     across all of INN's configuration files.
  335 
  336     The history subsystem now has a standard API that allows other backends
  337     to be used.  Because of this, you now need to specify the history method
  338     in inn.conf.  Adding:
  339 
  340         hismethod: hisv6
  341 
  342     will tell INN to use the same history backend as was used in previous
  343     versions.  innupgrade should take care of this for you.
  344 
  345     ovdb is known to have some locking and timing issues related to how
  346     nnrpd shuts down (or fails to shut down) the overview databases.  If you
  347     have stability problems with ovdb, try setting *readserver* to "true" in
  348     ovdb.conf.  This will funnel all ovdb reads through a single process
  349     with a cleaner interface to the underlying Berkeley DB database.
  350 
  351     If you use Perl authentication for nnrpd (if *nnrpdperlauth* in inn.conf
  352     is "true"), there have been major changes.  See "Changes to Perl
  353     Authentication Support for nnrpd" in doc/hook-perl for details.
  354 
  355     Similarly, if you use Python authentication for nnrpd (if
  356     *nnrpdpythonauth* in inn.conf is "true"), there have been major changes.
  357     See "Changes to Python Authentication and Access Control Support for
  358     nnrpd" in doc/hook-python for details.
  359 
  360     If you use send-uucp, it has been completely rewritten and now takes a
  361     configuration file to specify its behavior.  See its man page for more
  362     information.  If you use sendbatch, it is no longer included in INN
  363     since the new send-uucp can handle all of the same functionality.
  364 
  365     The wildmat API has been renamed (to uwildmat and friends; see
  366     uwildmat(3) for the interfaces) to distinguish it from Rich $alz's
  367     original version, since it now supports UTF-8.  This may require changes
  368     in other software packages that link against INN's libraries.
  369 
  370     If you are upgrading from a version prior to INN 2.3, see "Upgrading
  371     from 2.2 to 2.3".
  372 
  373 Changes in 2.4.0
  374 
  375     * IPv6 support has been added, disabled by default.  If you have IPv6
  376       connectivity, build with --enable-ipv6 to try it.  There are no known
  377       bugs, but please report any problems you find (or even successes, if
  378       you use an unusual platform).  There are a few changes of interest;
  379       further information is available in doc/IPv6-info.
  380 
  381     * The tradindexed overview method has been completely rewritten and
  382       should be considerably more robust in the face of system crashes.  A
  383       new utility, tdx-util, is provided to examine the contents of the
  384       overview database, repair inconsistencies, and rebuild the overview
  385       for particular groups from a tradspool news spool.  See tdx-util(8)
  386       for more details.
  387 
  388     * The Perl and Python authentication hooks for readers have been
  389       extensively overhauled and integrated better with readers.conf.  See
  390       the Changes sections in doc/hook-perl and doc/hook-python for more
  391       details.
  392 
  393     * nnrpd now optionally supports article injection via IHAVE, see
  394       readers.conf(5).  Any articles injected this way must have Date, From,
  395       Message-ID, Newsgroups, Path, and Subject headers.  X-Trace and
  396       X-Complaints-To headers will be added if the appropriate options are
  397       set in readers.conf, but other headers will not be modified/inserted
  398       (e.g.  NNTP-Posting-Host, NNTP-Posting-Date, Organization, Lines, Cc,
  399       Bcc, and To headers).
  400 
  401     * nnrpd now handles arbitrarily long lines in POST and IHAVE;
  402       administrators who want to limit the length of lines in locally posted
  403       articles will need to add this to their local filters instead.
  404 
  405     * nnrpd no longer handles the poorly-specified RFC 977 optional fourth
  406       argument to the NEWGROUPS command specifying the "distributions" that
  407       the command was supposed to apply to.
  408 
  409       Clients that use that argument will break.  There are not believed to
  410       be any such clients, and it's easy enough to just filter the returned
  411       list of newsgroups (which is generally fairly short) to achieve the
  412       same results.
  413 
  414     * nnrpd no longer accepts UTC as a synonym for GMT for NEWGROUPS or
  415       NEWNEWS.  This usage was never portable, and was rejected by the NNTP
  416       working group.  It is being removed now in the hope that it will be
  417       caught before anyone starts to rely on it.
  418 
  419     * innfeed supports a new peer parameter, *backlog-feed-first*, that if
  420       set to "true" feeds any backlog to a peer before new articles, see
  421       innfeed.conf(5).  When used in combination with *max-connections* set
  422       to 1, this can be used to enforce in-order delivery of messages to a
  423       peer that is doing Xref slaving, avoiding cases where a
  424       higher-numbered message is received before a lower-numbered message in
  425       the same group.
  426 
  427     * Several other, more minor protocol issues have been fixed: 
  428       connections rejected due to the connection rate limiting in innd
  429       receive 400 replies instead of 504 or 505, and ARTICLE without an
  430       argument will always either retrieve the current article or return a
  431       423 error, never advance the current article number to the next valid
  432       article.
  433 
  434       See doc/compliance-nntp for all of the known issues with INN's
  435       compliance with the current NNTP draft.
  436 
  437     * All accesses to the history file for all parts of INN now go through a
  438       generic API like the storage and overview subsystems do.  This will
  439       eventually allow new history implementations to be dropped in without
  440       affecting the rest of INN, and will significantly improve the
  441       encapsulation of the history subsystem.  See the libinnhist(3) man
  442       page for the details of the interface.
  443 
  444     * INN now uses a new parser for the inn.conf file.  This means that
  445       parameters containing whitespace or other special characters must now
  446       be quoted; see inn.conf(5).  It fixes the long-standing bug that
  447       certain values must be included in inn.conf even if using the defaults
  448       for the use of shell or Perl scripts, and it will serve as the basis
  449       for standardizing and cleaning up the configuration file parsing in
  450       other parts of INN.  innupgrade is run during "make update" and should
  451       convert an existing inn.conf file for you.
  452 
  453     * send-uucp has been replaced by a completely rewritten version from
  454       Marco d'Itri, Edvard Tuinder, and Miquel van Smoorenburg, which uses a
  455       configuration file that specifies batch sizes, compression methods,
  456       and hours during which batches should be generated.  The old sendbatch
  457       script has been retired, since send-uucp can now handle everything
  458       that it did.
  459 
  460     * Two "configure" options have changed names:  --with-tmp-path is now
  461       --with-tmp-dir, and --with-largefiles is now --enable-largefiles, to
  462       improve consistency and better match the "autoconf" option guidelines.
  463 
  464     * Variables can now be used in the newsfeeds file to make it easier to
  465       specify many similar feeds or feed patterns.  See the newsfeeds(5) man
  466       page for details.
  467 
  468     * Local connections to INN support a new special mode, MODE CANCEL, that
  469       allows efficient batch cancellation of messages.  This is intended to
  470       be the preferred interface for external spam and abuse filters like
  471       NoCeM.  See "CANCEL FEEDS" in innd(8) for details.
  472 
  473     * Two new options, *nfsreader* and *nfswriter*, have been added to
  474       inn.conf to aid in building NFS based shared reader/writer platforms. 
  475       On the writer server configure *nfswriter* to "true" and on all of the
  476       readers configure *nfsreader* to "true"; these options add calls to
  477       force data out to the NFS server and force it to be read directly from
  478       the NFS server at the appropriate moments.  Note that it has only been
  479       tested on Solaris 8, using CNFS as the storage mechanism and
  480       tradindexed as the overview method.
  481 
  482     * A new option, *tradindexedmmap*, has been added to inn.conf.  If set
  483       to "true" (the default), then the tradindexed overview method will use
  484       mmap() to access its overview data (in 2.3 you couldn't control this;
  485       it always used mmap).
  486 
  487     * Thanks to code contributed by CMU, innfeed can now feed an IMAP server
  488       as well as other NNTP servers.  See the man page for innfeed(8) for
  489       more information.
  490 
  491     * An authenticator, auth_smb, that checks a username and password
  492       against a remote Samba server is now included.  See auth_smb(8) for
  493       details.
  494 
  495     * The wildmat functions in INN now support UTF-8, in a way that should
  496       allow them to still work with most simple 8-bit character sets in
  497       widespread use.  As part of this change, some additional wildmat
  498       interfaces are now available and the names have changed (to uwildmat,
  499       where "u" is for Unicode).  See uwildmat(3) for the details.
  500 
  501     * The interface between external authenticators and nnrpd is now
  502       properly documented, in doc/external-auth.  A library implementing
  503       this interface in C is provided, which should make it easier to write
  504       additional authenticators resolvers.  See libauth(3) for details, and
  505       any of the existing programs in authprogs/ for examples.
  506 
  507     * Most (if not all) of the temporary file creation in INN now uses
  508       functions that create temporary files properly and safely.
  509 
  510 Changes in 2.3.5
  511 
  512     * Clients using POST are no longer permitted to provide an
  513       Injector-Info: header.
  514 
  515     * Fixed a bug causing posts with Followup-To: set to a moderated group
  516       to be rejected if the posting user didn't have permission to approve
  517       postings.
  518 
  519     * Fixed bugs in inncheck with setuid rnews or setgid inews, in
  520       *innconfval* with inn.conf parameters containing shell metacharacters
  521       but no spaces, and in parsedate.y with some versions of yacc.  Fixed a
  522       variety of size-related printf format warnings (e.g., %d vs. %ld)
  523       thanks to the work of Winfried Szukalski.
  524 
  525 Changes in 2.3.4
  526 
  527     * LIST ACTIVE no longer returns data when given a single group argument
  528       if the client is not authorized to read that group.
  529 
  530     * XHDR and XPAT weren't correctly parsing article headers, resulting in
  531       searches for the header "newsgroup" matching the header "newsgroups".
  532 
  533     * Made CNFS more robust against crashes by actually syncing the cycbuff
  534       headers to disk as was originally intended.  Fixed a memory leak in
  535       the tradspool code.
  536 
  537     * Two bugs in pgpverify when using GnuPG were fixed:  it now correctly
  538       checks for gpgv (rather than pgp) when told to use GnuPG and expects
  539       the keyring to be pubring.gpg (not pubring.pgp).
  540 
  541     * Substantial updates to the sample provided control.ctl file.
  542 
  543     * Compilation fixes with Perl 5.8.0, Berkeley DB 4.x, current versions
  544       of Linux (including with large file support), and Tru64.  inndf fixes
  545       for ReiserFS.
  546 
  547     * Various bugs in the header handling in nnrpd have been fixed,
  548       including hangs when using virtual domains and improper processing of
  549       folded headers under certain circumstances.
  550 
  551     * Other minor bug fixes and documentation improvements.
  552 
  553 Changes in 2.3.3
  554 
  555     * pgpverify now supports using GnuPG to check signatures (rather than
  556       PGP) without the pgpgpg wrapper.  GnuPG can check both old-style RSA
  557       signatures and new OpenPGP signatures and is recommended over PGP 2.6.
  558       If you have GnuPG installed, pgpverify will use it rather than PGP,
  559       which means that you may have to create a new key ring for GnuPG to
  560       use to verify signatures if you were previously using PGP.
  561 
  562     * Users can no longer post articles containing Approved: headers to
  563       moderated groups by default; they must be specifically given that
  564       permission with the *access* parameter in readers.conf.  See the man
  565       page for more details.
  566 
  567     * Two bugs in repacking overview index files and a reliability bug with
  568       writing overview data were all fixed in the tradindexed overview
  569       method, hopefully making it somewhat more reliable, particularly for
  570       makehistory.
  571 
  572     * If rc.news.local exists in the INN binary directory, it will be run
  573       with the start or stop argument whenever rc.news is run.  This is
  574       available as a hook for local startup and shutdown code.
  575 
  576     * The default history table hash sizes were increased because a
  577       too-small value can cause serious performance problems (whereas a
  578       too-large hash just wastes a bit of disk space).
  579 
  580     * The sample control.ctl file has been extensively updated.
  581 
  582     * Wildmat exclusions ("@" and "!") should now work properly in
  583       storage.conf newsgroup patterns.
  584 
  585     * The implementation of the -w flag for expireover was fixed;
  586       previously, the value given to -w to change expireover's notion of the
  587       current time was scaled by too much.
  588 
  589     * Various other more minor bug fixes, standards compliance fixes, and
  590       documentation improvements.
  591 
  592 Changes in 2.3.2
  593 
  594     * innxmit can again handle regular filenames as input as well as storage
  595       API tokens (allowing it to be used to import an old traditional
  596       spool).
  597 
  598     * Several problems with tagged-hash history files have been fixed thanks
  599       to the debugging efforts of Andrew Gierth and Sang-yong Suh.
  600 
  601     * A very long-standing (since INN 1.0!) NNTP protocol bug in nnrpd was
  602       fixed.  The response to an ARTICLE command retrieving a message by
  603       Message-ID should have the Message-ID as the third word of the
  604       response, not the fourth.  Fixing this is reported to *possibly* cause
  605       problems with some Netscape browsers, but other news servers correctly
  606       follow the protocol.
  607 
  608     * Some serious performance problems with expiration of tradspool should
  609       now be at least somewhat alleviated.  tradspool and timehash now know
  610       how to output file names for removal rather than tokens, and fastrm's
  611       ability to remove regular files has been restored.  This should bring
  612       expiration times for tradspool back to within a factor of two of
  613       pre-storage-API expiration times.
  614 
  615     * Added a sample subscriptions file and documentation for it and
  616       innmail.
  617 
  618 Changes in 2.3.1
  619 
  620     * inews no longer downloads the active file, no longer tries to send
  621       postings to moderated groups to the moderator directly, and in general
  622       duplicates less of the functionality of nnrpd, instead letting nnrpd
  623       handle it.  This fixes the problem of inews not working properly for
  624       users other than news without being setgid.
  625 
  626     * Added a man page for ckpasswd.
  627 
  628     * A serious bug in the embedded Perl authentication hooks was fixed,
  629       thanks to Jan Rychter.
  630 
  631     * The annoying compilation problem with embedded Perl filtering on Linux
  632       systems without libgdbm installed should be fixed.
  633 
  634     * INN now complains loudly at "configure" time if the configured path
  635       for temporary files is world-writeable, since this configuration can
  636       be a security hole.
  637 
  638     * Many other varied bug fixes and documentation fixes of all sorts.
  639 
  640 Upgrading from 2.2 to 2.3
  641 
  642     There may be additional things to watch out for not listed here; if you
  643     run across any, please let <inn-bugs@isc.org> know about them.
  644 
  645     Simply doing a "make update" is not sufficient to upgrade; the history
  646     and overview information will also have to be regenerated, since the
  647     formats of both files have changed between 2.2 and 2.3.  Regardless of
  648     whether you were using the storage API or traditional spool under 2.2,
  649     you'll need to rebuild your overview and history files.  You will also
  650     need to add a storage.conf file, if you weren't using the storage API
  651     under INN 2.2.  A good default storage.conf file for 2.2 users would be:
  652 
  653         method tradspool {
  654             newsgroups: *
  655             class: 0
  656         }
  657 
  658     Create this storage.conf file before rebuilding history or overview.
  659 
  660     If you want to allow readers, or if you want to expire based on
  661     newsgroup name, you need to tell INN to generate overview data and pick
  662     an overview method by setting *ovmethod* in inn.conf.  See INSTALL and
  663     inn.conf(5) for more details.
  664 
  665     The code that generates the dbz index files has been split into a
  666     separate program, makedbz.  makehistory still generates the base history
  667     file and the overview information, but some of its options have been
  668     changed.  To rebuild the history and overview files, use something like:
  669 
  670         makehistory -b -f history.n -O -T /usr/local/news/tmp -l 600000
  671 
  672     (change the /usr/local/news/tmp path to some directory that has plenty
  673     of temporary space, and leave off -O if you're running a transit-only
  674     server and don't intend to expire based on group name, and therefore
  675     don't need overview.)  Or if your overview is buffindexed, use:
  676 
  677         makehistory -b -f history.n -O -F
  678 
  679     Both will generate a new history file as history.n and rebuild overview
  680     at the same time.  If you want to preseve a record of expired
  681     Message-IDs in the history file, run:
  682 
  683         awk 'NF==2 { print; }' < history >> history.n
  684 
  685     to append them to the new history file you created above.  Look over the
  686     new history file and make sure it looks right, then generate the new
  687     index files and move them into place:
  688 
  689         makedbz -s `wc -l < history.n` -f history.n
  690         mv history.n history
  691         mv history.n.dir history.dir
  692         mv history.n.hash history.hash
  693         mv history.n.index history.index
  694 
  695     (Rather than .hash and .index files, you may have a .pag file if you're
  696     using tagged hash.)
  697 
  698     For reader machines, nnrp.access has been replaced by readers.conf. 
  699     There currently isn't a program to convert between the old format and
  700     the new format (if you'd like to contribute one, it would be welcomed
  701     gratefully).  The new file is unfortunately considerably more complex as
  702     a result of its new capabilities; please carefully read the example
  703     readers.conf provided and the man page when setting up your initial
  704     configuration.  The provided commented-out examples cover the most
  705     common installation (IP-based authentication for all machines on the
  706     local network).
  707 
  708     INN makes extensive use of mmap(2) for the new overview mechanisms, so
  709     at the present time NFS-mounting the spool and overview on multiple
  710     reader machines from one central server probably isn't feasible in this
  711     version.  mmap tends to interact poorly with NFS (at the least, NFS
  712     clients won't see updates to the mapped files in situations where they
  713     should).  (The preferred way to fix this would, rather than backing out
  714     the use of mmap or making it optional, to add support for Diablo-style
  715     header feeds and pull-on-demand of articles from a master server.)
  716 
  717     The flags for overchan have changed, plus you probably don't want to run
  718     overchan at all any more.  Letting innd write overview data itself
  719     results in somewhat slower performance, but is more reliable and has a
  720     better failure mode under high loads.  Writing overview data directly is
  721     the default, so in a normal upgrade from 2.2 to 2.3 you'll want to
  722     comment out or remove your overchan entry in newsfeeds and set
  723     *useoverchan* to "false" in inn.conf.
  724 
  725     crosspost is no longer installed, and no longer works (even with
  726     traditional spool).  If you have an entry for crosspost in newsfeeds,
  727     remove it.
  728 
  729     If you're importing a traditional spool from a pre-storage API INN
  730     server, it's strongly recommended that you use NNTP to feed the articles
  731     to your new server rather than trying to build overview and history
  732     directly from the old spool.  It's more reliable and ensures that
  733     everything gets put into the right place.  The easiest way to do this is
  734     to generate, on your old server, a list of all of your existing article
  735     files and then feed that list to innxmit.  Further details can be found
  736     in the FAQ at <http://www.eyrie.org/~eagle/faqs/inn.html>.
  737 
  738     If you are using a version of Cleanfeed that still has a line in it
  739     like:
  740 
  741         $lines = $hdr{'__BODY__'} =~ tr/\n/\n/;
  742 
  743     you will need to change this line to:
  744 
  745         $lines = $hdr{'__LINES__'};
  746 
  747     to work with INN 2.3 or later.  This is due to an internal optimization
  748     of the interface to embedded filters that's new in INN 2.3.
  749 
  750 Changes in 2.3.0
  751 
  752     * New readers.conf file (replaces nnrp.access) which allows more
  753       flexible specification of access restrictions.  Included in the sample
  754       implementations is a RADIUS-based authenticator.
  755 
  756     * Unified overview has been replaced with an overview API, and there are
  757       now three separate overview implementations to choose from.  One
  758       (tradindexed) is very like traditional overview but uses an additional
  759       index file.  The second (buffindexed) uses large buffers rather than
  760       separate files for each group and can handle a higher incoming article
  761       rate while still being fast for readers.  The third (ovdb) uses
  762       Berkeley DB to store overview information (so you need to have
  763       Berkeley DB installed to use it).  The *ovmethod* key in inn.conf
  764       chooses the overview method to use.
  765 
  766       Note that ovdb has not been as widely tested as the other overview
  767       mechanisms and should be considered experimental.
  768 
  769     * All article storage and retrieval is now done via the storage API. 
  770       Traditional spool is now available as a storage type under the storage
  771       API.  (Note that the current traditional spool implementation causes
  772       nightly expire to be extremely slow for a large number of articles, so
  773       it's not recommended that you use the tradspool storage method for the
  774       majority of a large spool.)
  775 
  776     * The timecaf storage method has been added, similar to timehash but
  777       storing multiple articles in a single file.  See INSTALL for details
  778       on it.
  779 
  780     * INN now supports embedded Python filters as well as Perl and Tcl
  781       filters, and supports Python authentication hooks.
  782 
  783     * There is preliminary support for news reading over SSL, using OpenSSL.
  784 
  785     * To simplify anti-abuse filtering, and to be more compliant with news
  786       standards and proposed standards, INN now treats as control messages
  787       only articles containing a Control: header.  A Subject: line beginning
  788       with "cmsg " is no longer sufficient for a message to be considered a
  789       control message, and the Also-Control: header is no longer supported.
  790 
  791     * The INN build system no longer uses subst.  (This will be transparent
  792       to most users; it's an improvement and modernization of how INN is
  793       configured.)
  794 
  795     * The build and installation system has been substantially overhauled. 
  796       "make update" now updates scripts as well as binaries and
  797       documentation, there is better support for parallel builds ("make
  798       -j"), there is less "make" recursion, and far more of the
  799       system-dependent configuration is handled directly by "autoconf". 
  800       libtool build support (including shared library support) should be
  801       better than previous releases.
  802 
  803 Changes in 2.2.3
  804 
  805     * inews is not installed setgid news and rnews is not installed setuid
  806       root by default any more.  If you need the old permissions, you have
  807       to give a flag to configure.  See INSTALL for more details.
  808 
  809     * Fixed a security hole when *verifycancels* was enabled in inn.conf
  810       (not the default).
  811 
  812     * Message-IDs are now limited to 250 octets to prevent interoperability
  813       problems with other servers.
  814 
  815     * Embedded Perl filters now work with Perl 5.6.0.
  816 
  817     * Lots of bug fixes and changes for security paranoia.
  818 
  819 Changes in 2.2.2
  820 
  821     * Various minor bug fixes and a Y2K bug fix.  The Y2K bug is in version
  822       version 2.2.1 only and will show up after Jan 1st, 2000 when a news
  823       reader issues a NEWNEWS command for a date prior to the year 2000.
  824 
  825 Changes in 2.2.1
  826 
  827     * Various bug fixes, mostly notably fixes for potential buffer overflow
  828       security vulnerabilities.
  829 
  830 Changes in 2.2.0
  831 
  832     * New storage.conf file (replaces storage.ctl).
  833 
  834     * New (optional) way of handling non-cancel control messages
  835       (controlchan) that serializes them and prevents server overload from
  836       control message storms.
  837 
  838     * Support for actsyncd to fetch active file with ftp; configured by
  839       default to use <ftp://ftp.isc.org/pub/usenet/CONFIG/active.Z> if you
  840       run actsyncd.  Be sure to read the manual page for actsync to
  841       configure an actsync.ign file for your site, and test simpleftp if you
  842       do not "configure" with wget or ncftp.  Also see
  843       <ftp://ftp.isc.org/pub/usenet/CONFIG/README>.
  844 
  845     * Some options to "configure" are now moved to inn.conf
  846       (*merge-to-groups* and *pgp-verify*, without the hyphen).
  847 
  848     * inndf, a portable version of df(1), is supplied.
  849 
  850     * New cnfsstat program to show stats of CNFS buffers.
  851 
  852     * news2mail and mailpost programs for gatewaying news to mail and mail
  853       to news are supplied.
  854 
  855     * pullnews program for doing a sucking feed is provided (not meant for
  856       large feeds).
  857 
  858     * The innshellvars.csh.in script is obsolete (and lives in the obsolete
  859       directory, for now).
  860