github InterNetNews/inn 2.3.0
INN 2.3.0

latest releases: 2.7.2, 2.7.2rc1, 2.7.1...
2 years ago

2000-08-20
Full changes and diff from previous release

Upgrading from 2.3 to 2.3

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

  • 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 https://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.

Bug Fixes

  • All of the applicable bug fixes from the INN 2.2 STABLE series are also included in INN 2.3.

New Features

  • New readers.conf file (replaces nnrp.access) which allows more flexible specification of access restrictions. Included in the sample implementations is a RADIUS-based authenticator.

  • Unified overview has been replaced with an overview API, and there are now three separate overview implementations to choose from. One (tradindexed) is very like traditional overview but uses an additional index file. The second (buffindexed) uses large buffers rather than separate files for each group and can handle a higher incoming article rate while still being fast for readers. The third (ovdb) uses Berkeley DB to store overview information (so you need to have Berkeley DB installed to use it). The ovmethod key in inn.conf chooses the overview method to use.
    Note that ovdb has not been as widely tested as the other overview mechanisms and should be considered experimental.

  • All article storage and retrieval is now done via the storage API. Traditional spool is now available as a storage type under the storage API. (Note that the current traditional spool implementation causes nightly expire to be extremely slow for a large number of articles, so it's not recommended that you use the tradspool storage method for the majority of a large spool.)

  • The timecaf storage method has been added, similar to timehash but storing multiple articles in a single file. See INSTALL for details on it.

  • INN now supports embedded Python filters as well as Perl and Tcl filters, and supports Python authentication hooks.

  • There is preliminary support for news reading over SSL, using OpenSSL.

  • To simplify anti-abuse filtering, and to be more compliant with news standards and proposed standards, INN now treats as control messages only articles containing a Control header field. A Subject header field body beginning with cmsg is no longer sufficient for a message to be considered a control message, and the Also-Control header field is no longer supported.

  • The INN build system no longer uses subst. (This will be transparent to most users; it's an improvement and modernization of how INN is configured.)

  • The build and installation system has been substantially overhauled. make update now updates scripts as well as binaries and documentation, there is better support for parallel builds (make -j), there is less make recursion, and far more of the system-dependent configuration is handled directly by autoconf. libtool build support (including shared library support) should be better than previous releases.

Don't miss a new inn release

NewReleases is sending notifications on new releases.