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.
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.
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
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.
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.
33 * Fixed a long-standing bug in innreport which prevented it from
34 correctly reporting nnrpd and innfeed log messages.
36 * Fixed a hang in Perl hooks on (at least) HP/PA since Perl 5.10.
38 * Fixed a compilation problem on some platforms because of AF_INET6
39 which was not inside a HAVE_INET6 block in innfeed.
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
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
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
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
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.
77 * Group blocks in incoming.conf are now correctly parsed and no longer
78 cause segfaults when loading this file.
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.
85 * scanlogs now rotates innfeed's log file, which prevents innfeed from
86 silently dying when its log file reaches 2 GB.
88 * Perl 5.10 support has been added to INN thanks to Jakub Bogusz.
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
97 * Fixed a bug in the display of the used compressor ("cunbatch" was used
98 if arguments were passed to gzip or bzip2).
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.
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.
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.
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
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
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.
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.
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.
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.
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).
148 * The RADIUS configuration is now wrapped in a "server {}" block in
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
156 * Checkgroups are now properly propagated even though the news server
157 does not carry the groups they are posted to.
159 * controlchan and docheckgroups now handle wire format messages so that
160 articles from the spool can be directly fed to them.
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
170 * The sample control.ctl file has been extensively updated.
172 * Fixed empty LISTGROUP replies which were not terminated. Thanks to
173 David Canzi for the patch.
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
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.
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.
190 * Other minor bug fixes and documentation improvements.
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.
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
205 * Fixed yet another problem with verifying that a user has permissions
206 to approve posts to a moderated group. Thanks, Jens Schlegel.
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.
212 * rnews's handling of articles with nul characters, NNTP errors, header
213 problems, and deferrals has been significantly improved.
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.
219 * Many other more minor bug fixes, optimization improvements, and
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.
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.
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.
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.
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.
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.
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.
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.
265 * Messages mailed to moderators had two spaces after the colons in the
266 headers, rather than one. This bug has been fixed.
268 * A bug that could cause heap corruption and random crashes in innd if
269 INN were compiled with Python support has been fixed.
271 * Some problems with innd's tracking of article size and enforcement of
272 the configured maximum article size have been fixed.
274 * pgpverify will now correctly verify signatures generated by GnuPG and
275 better supports GnuPG as the PGP implementation.
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.
281 * Improved the error reporting in the history database code, in inews,
282 in controlchan, and in expire.
284 * Many other, more minor bugs have also been fixed.
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.
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.)
297 * Fixed a serious bug in XPAT handling, thanks to Tommy van Leeuwen.
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.
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.
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.
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.
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.
319 * Multiple other more minor bugs have been fixed.
321 * Documentation and man pages have been clarified and updated.
323 Upgrading from 2.3 to 2.4
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.
333 This change is the beginning of standardization of parsing and syntax
334 across all of INN's configuration files.
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
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.
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.
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.
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.
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.
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.
370 If you are upgrading from a version prior to INN 2.3, see "Upgrading
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.
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)
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
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).
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.
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.
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
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.
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
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
434 See doc/compliance-nntp for all of the known issues with INN's
435 compliance with the current NNTP draft.
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.
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.
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
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.
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
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.
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.
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).
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
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
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.
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.
507 * Most (if not all) of the temporary file creation in INN now uses
508 functions that create temporary files properly and safely.
512 * Clients using POST are no longer permitted to provide an
513 Injector-Info: header.
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
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.
527 * LIST ACTIVE no longer returns data when given a single group argument
528 if the client is not authorized to read that group.
530 * XHDR and XPAT weren't correctly parsing article headers, resulting in
531 searches for the header "newsgroup" matching the header "newsgroups".
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
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).
541 * Substantial updates to the sample provided control.ctl file.
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
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.
551 * Other minor bug fixes and documentation improvements.
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.
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.
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
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.
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).
580 * The sample control.ctl file has been extensively updated.
582 * Wildmat exclusions ("@" and "!") should now work properly in
583 storage.conf newsgroup patterns.
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.
589 * Various other more minor bug fixes, standards compliance fixes, and
590 documentation improvements.
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
598 * Several problems with tagged-hash history files have been fixed thanks
599 to the debugging efforts of Andrew Gierth and Sang-yong Suh.
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
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.
615 * Added a sample subscriptions file and documentation for it and
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.
626 * Added a man page for ckpasswd.
628 * A serious bug in the embedded Perl authentication hooks was fixed,
629 thanks to Jan Rychter.
631 * The annoying compilation problem with embedded Perl filtering on Linux
632 systems without libgdbm installed should be fixed.
634 * INN now complains loudly at "configure" time if the configured path
635 for temporary files is world-writeable, since this configuration can
638 * Many other varied bug fixes and documentation fixes of all sorts.
640 Upgrading from 2.2 to 2.3
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.
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:
658 Create this storage.conf file before rebuilding history or overview.
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.
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:
670 makehistory -b -f history.n -O -T /usr/local/news/tmp -l 600000
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:
677 makehistory -b -f history.n -O -F
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:
683 awk 'NF==2 { print; }' < history >> history.n
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:
689 makedbz -s `wc -l < history.n` -f history.n
691 mv history.n.dir history.dir
692 mv history.n.hash history.hash
693 mv history.n.index history.index
695 (Rather than .hash and .index files, you may have a .pag file if you're
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
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.)
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.
725 crosspost is no longer installed, and no longer works (even with
726 traditional spool). If you have an entry for crosspost in newsfeeds,
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>.
738 If you are using a version of Cleanfeed that still has a line in it
741 $lines = $hdr{'__BODY__'} =~ tr/\n/\n/;
743 you will need to change this line to:
745 $lines = $hdr{'__LINES__'};
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.
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.
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.
766 Note that ovdb has not been as widely tested as the other overview
767 mechanisms and should be considered experimental.
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.)
776 * The timecaf storage method has been added, similar to timehash but
777 storing multiple articles in a single file. See INSTALL for details
780 * INN now supports embedded Python filters as well as Perl and Tcl
781 filters, and supports Python authentication hooks.
783 * There is preliminary support for news reading over SSL, using OpenSSL.
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.
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
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.
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.
809 * Fixed a security hole when *verifycancels* was enabled in inn.conf
812 * Message-IDs are now limited to 250 octets to prevent interoperability
813 problems with other servers.
815 * Embedded Perl filters now work with Perl 5.6.0.
817 * Lots of bug fixes and changes for security paranoia.
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.
827 * Various bug fixes, mostly notably fixes for potential buffer overflow
828 security vulnerabilities.
832 * New storage.conf file (replaces storage.ctl).
834 * New (optional) way of handling non-cancel control messages
835 (controlchan) that serializes them and prevents server overload from
836 control message storms.
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>.
845 * Some options to "configure" are now moved to inn.conf
846 (*merge-to-groups* and *pgp-verify*, without the hyphen).
848 * inndf, a portable version of df(1), is supplied.
850 * New cnfsstat program to show stats of CNFS buffers.
852 * news2mail and mailpost programs for gatewaying news to mail and mail
853 to news are supplied.
855 * pullnews program for doing a sucking feed is provided (not meant for
858 * The innshellvars.csh.in script is obsolete (and lives in the obsolete