INN Changes and Upgrade Information

Table of Contents

  1. Changes in 2.5.5
  2. Changes in 2.5.4
  3. Changes in 2.5.3
  4. Changes in 2.5.2
  5. Changes in 2.5.1
  6. Upgrading from 2.4 to 2.5
  7. Changes in 2.5.0
  8. Changes in 2.4.6
  9. Changes in 2.4.5
  10. Changes in 2.4.4
  11. Changes in 2.4.3
  12. Changes in 2.4.2
  13. Changes in 2.4.1
  14. Upgrading from 2.3 to 2.4
  15. Changes in 2.4.0
  16. Changes in 2.3.5
  17. Changes in 2.3.4
  18. Changes in 2.3.3
  19. Changes in 2.3.2
  20. Changes in 2.3.1
  21. Upgrading from 2.2 to 2.3
  22. Changes in 2.3.0
  23. Changes in 2.2.3
  24. Changes in 2.2.2
  25. Changes in 2.2.1
  26. Changes in 2.2.0

Changes in 2.5.5

Changes in 2.5.4

Changes in 2.5.3

Please note that the HTML_STATUS compile-time option has been replaced with the htmlstatus parameter in inn.conf. If you used HTML_STATUS, you should set htmlstatus accordingly.

A confusion in the name of a key in innfeed.conf existed in the source code. Make sure that the misspelled, undocumented backlog-limit-high key is *not* used in your innfeed.conf file; its real name is backlog-limit-highwater. You should rename the key in case it is present in your configuration file. Otherwise, it will not be taken into account. You can run inncheck to verify that the syntax of this file is correct.

It is generally recommended to run inncheck after any changes done to configuration files, especially with the new improved version of this script shipped with INN 2.5.3, thanks to the hard work of Florian Schlichting who added support for the syntax of incoming.conf, innfeed.conf, readers.conf and storage.conf.

An up-to-date control.ctl file is provided with this release. You should manually update your control.ctl file with the new information recorded about Usenet hierarchies.

Changes in 2.5.2

The way checkpoints are handled by innreport for innd and innfeed has totally changed to provide more accurate daily statistics. The first Usenet report after an upgrade to INN 2.5.2 will probably contain incorrect statistics for incoming and outgoing articles because the beginning of the log files that will be used was generated by a previous version of INN.

A new version of innreport.conf is shipped with INN 2.5.2 but, in order to preserve any local changes, will not be automatically installed with make update. The changes are minor and not mandatory for the upgrade.

Changes in 2.5.1

Upgrading from 2.4 to 2.5

The following changes require your full attention because a manual intervention may be needed:

The parameters used by nnrpd to provide TLS support are now tlscafile, tlscapath, tlscertfile and tlskeyfile in inn.conf. The sasl.conf file used for that in previous versions of INN is obsolete. innupgrade takes care of the change during make update.

The nntpactsync parameter has been renamed to incominglogfrequency in inn.conf; innupgrade handles this renaming during the update.

In newsfeeds, innfeed should be run directly rather than through startinnfeed. innupgrade will attempt to take care of this modification during make update.

When starting innd by hand, innd can just be run directly rather than using inndstart. If you get error messages about resetting the file descriptor limits, you may need to increase the file descriptor limits. See the sample init script in contrib for an example of how to do this.

If you are upgrading from a version prior to INN 2.4, see also Upgrading from 2.3 to 2.4.

Changes in 2.5.0

Changes in 2.4.6

Changes in 2.4.5

Changes in 2.4.4

Changes in 2.4.3

Changes in 2.4.2

Changes in 2.4.1

Upgrading from 2.3 to 2.4

The inn.conf parser has changed between INN 2.3 and 2.4. Due to that change, options in inn.conf that contain whitespace or a few other special characters must be quoted with double quotes, and empty parameters (parameters with no value) are not allowed. INN 2.4 comes with a script, innupgrade, run automatically during make update, that will attempt to fix any problems that it finds with your inn.conf file, saving the original as inn.conf.OLD.

This change is the beginning of standardization of parsing and syntax across all of INN's configuration files.

The history subsystem now has a standard API that allows other backends to be used. Because of this, you now need to specify the history method in inn.conf. Adding:

    hismethod: hisv6

will tell INN to use the same history backend as was used in previous versions. innupgrade should take care of this for you.

ovdb is known to have some locking and timing issues related to how nnrpd shuts down (or fails to shut down) the overview databases. If you have stability problems with ovdb, try setting readserver to true in ovdb.conf. This will funnel all ovdb reads through a single process with a cleaner interface to the underlying Berkeley DB database.

If you use Perl authentication for nnrpd (if nnrpdperlauth in inn.conf is true), there have been major changes. See "Changes to Perl Authentication Support for nnrpd" in doc/hook-perl for details.

Similarly, if you use Python authentication for nnrpd (if nnrpdpythonauth in inn.conf is true), there have been major changes. See "Changes to Python Authentication and Access Control Support for nnrpd" in doc/hook-python for details.

If you use send-uucp, it has been completely rewritten and now takes a configuration file to specify its behavior. See its man page for more information. If you use sendbatch, it is no longer included in INN since the new send-uucp can handle all of the same functionality.

The wildmat API has been renamed (to uwildmat and friends; see uwildmat(3) for the interfaces) to distinguish it from Rich $alz's original version, since it now supports UTF-8. This may require changes in other software packages that link against INN's libraries.

If you are upgrading from a version prior to INN 2.3, see Upgrading from 2.2 to 2.3.

Changes in 2.4.0

Changes in 2.3.5

Changes in 2.3.4

Changes in 2.3.3

Changes in 2.3.2

Changes in 2.3.1

Upgrading from 2.2 to 2.3

There may be additional things to watch out for not listed here; if you run across any, please let <inn-bugs@isc.org> know about them.

Simply doing a make update is not sufficient to upgrade; the history and overview information will also have to be regenerated, since the formats of both files have changed between 2.2 and 2.3. Regardless of whether you were using the storage API or traditional spool under 2.2, you'll need to rebuild your overview and history files. You will also need to add a storage.conf file, if you weren't using the storage API under INN 2.2. A good default storage.conf file for 2.2 users would be:

    method tradspool {
        newsgroups: *
        class: 0
    }

Create this storage.conf file before rebuilding history or overview.

If you want to allow readers, or if you want to expire based on newsgroup name, you need to tell INN to generate overview data and pick an overview method by setting ovmethod in inn.conf. See INSTALL and inn.conf(5) for more details.

The code that generates the dbz index files has been split into a separate program, makedbz. makehistory still generates the base history file and the overview information, but some of its options have been changed. To rebuild the history and overview files, use something like:

    makehistory -b -f history.n -O -T /usr/local/news/tmp -l 600000

(change the /usr/local/news/tmp path to some directory that has plenty of temporary space, and leave off -O if you're running a transit-only server and don't intend to expire based on group name, and therefore don't need overview.) Or if your overview is buffindexed, use:

    makehistory -b -f history.n -O -F

Both will generate a new history file as history.n and rebuild overview at the same time. If you want to preserve a record of expired Message-IDs in the history file, run:

    awk 'NF==2 { print; }' < history >> history.n

to append them to the new history file you created above. Look over the new history file and make sure it looks right, then generate the new index files and move them into place:

    makedbz -s `wc -l < history.n` -f history.n
    mv history.n history
    mv history.n.dir history.dir
    mv history.n.hash history.hash
    mv history.n.index history.index

(Rather than .hash and .index files, you may have a .pag file if you're using tagged hash.)

For reader machines, nnrp.access has been replaced by readers.conf. There currently isn't a program to convert between the old format and the new format (if you'd like to contribute one, it would be welcomed gratefully). The new file is unfortunately considerably more complex as a result of its new capabilities; please carefully read the example readers.conf provided and the man page when setting up your initial configuration. The provided commented-out examples cover the most common installation (IP-based authentication for all machines on the local network).

INN makes extensive use of mmap(2) for the new overview mechanisms, so at the present time NFS-mounting the spool and overview on multiple reader machines from one central server probably isn't feasible in this version. mmap tends to interact poorly with NFS (at the least, NFS clients won't see updates to the mapped files in situations where they should). (The preferred way to fix this would, rather than backing out the use of mmap or making it optional, to add support for Diablo-style header feeds and pull-on-demand of articles from a master server.)

The flags for overchan have changed, plus you probably don't want to run overchan at all any more. Letting innd write overview data itself results in somewhat slower performance, but is more reliable and has a better failure mode under high loads. Writing overview data directly is the default, so in a normal upgrade from 2.2 to 2.3 you'll want to comment out or remove your overchan entry in newsfeeds and set useoverchan to false in inn.conf.

crosspost is no longer installed, and no longer works (even with traditional spool). If you have an entry for crosspost in newsfeeds, remove it.

If you're importing a traditional spool from a pre-storage API INN server, it's strongly recommended that you use NNTP to feed the articles to your new server rather than trying to build overview and history directly from the old spool. It's more reliable and ensures that everything gets put into the right place. The easiest way to do this is to generate, on your old server, a list of all of your existing article files and then feed that list to innxmit. Further details can be found in the FAQ at <http://www.eyrie.org/~eagle/faqs/inn.html>.

If you are using a version of Cleanfeed that still has a line in it like:

    $lines = $hdr{'__BODY__'} =~ tr/\n/\n/;

you will need to change this line to:

    $lines = $hdr{'__LINES__'};

to work with INN 2.3 or later. This is due to an internal optimization of the interface to embedded filters that's new in INN 2.3.

Changes in 2.3.0

Changes in 2.2.3

Changes in 2.2.2

Changes in 2.2.1

Changes in 2.2.0

$Id$

Last modified and spun 2022-12-12