# News Transport Software

There are two main sets of news "transport" software for *nix these days, Cnews and INN. The old "Bnews" has been declared officially dead and unsupported by its authors.

News "transport" is defined here to be the software that works behind the scenes to post and propagate the news articles as well as making the articles available for the newsreaders to access.

You can set your paths to anything you like, as long as UUCP has the absolute path to rnews in the Permissions file and as long as you have your newsreaders configured so that they can find "inews" and "mail".

Important - you're asking for trouble if you try to intermix Cnews and INN. Pick one or the other. It's ok to add the NNTP "Reference Release" into Cnews since they're intended to play well together.

### Cnews Performance Release

The current de-facto standard news software is Cnews. It has been around for a number of years, I first saw it sometime around 1988.

Cnews's main benefit is its maturity. It runs on about every *nix you can find and there are literally thousands of systems running it worldwide.

Its main disadvantage is that it seems to have been intended for uucp-over-modem connections between sites and as such requires the addition of NNTP software to handle realtime Internet feeds and reading.

In addition, it requires external threading packages for the various newsreaders, although the NOV package can now be hooked in to help somewhat and it's rumored to have native NOV support in the upcoming "cleanup" release.

Regardless, the beginning USENET admin should probably run Cnews first since it's so stable, well documented, and has many thousands of experienced administrators who can answer questions.

The newspak-2.1.tar.z distribution on sunsite contains working config files for Cnews under Linux as well as a couple line patch you'll need to make to "doexplode" to get around some problems with bash1.12. bash1.13 is now available on the various Linux archive sites that should help.

### Installing Cnews

Installing the Performance Release of Cnews is absolutely a "rtfm" project. Just grab the sources, extract them, and follow the instructions.

The build.def in newspak was generated by running "build" the first time and simply looking up the answers by checking out the /usr/include files to get the right answers.

When you start the actual compilation, it'll blow up a couple of times. In all cases, you'll need to simply comment out a couple of atoi() and atol() macros that gcc doesn't like when your doit.bin compilation blows up.

Also, you need the following tiny change to doexplode to get around some bash1.12 bugs or else you won't feed anything downstream

            (from Steve Robbins -  steve@nyongwa.cam.org )

            if [ ! -f $f ] ; then continue; fi              # add this line
            #       case "$f" in                            # comment me out
            #       "out.master/[0-9]*")    break ;;        # comment me out
            #       esac                                    # comment me out

Henry Spencer of Cnews fame says that the code in doexplode that is currently causing problems with bash is on the list to be revised in a future release.

It is uncertain at this time if the need for this patch goes away if you switch to the bash1.13 now available for Linux. I switched to the new bash and libs and left the patch in place and nothing broke (for what that's worth :-)

### Configuring Cnews

At the very least, you need to edit the following files that all should be in /usr/local/lib/news:

    active             - the active file
    batchparms         - batch parameters
    explist            - article expiration setup
    mailname           - name in headers for mailed replies
    mailpaths          - path to mail moderated postings to
    organization       - your "org"
    sys                - control what you take and feed
    whoami             - your hostname for the Path: line

### Maintaining a Cnews Site

First, a significant rule of thumb is to not mess with files by hand that have utilities that configure them. In particular don't set up newsfeeds (run "addfeed" instead) and don't mess with your active file (run "addgroup"). When in doubt, read and re-read the docs in the source distribution.

Everything else can be done via cron. My crontab for "news" looks like the following:

            # take the compressed batches that came in from other systems
            20 *       * * * /usenet/sw/news/bin/input/newsrun

            # batch 'em up to go out
            0 *        * * * /usenet/sw/news/bin/batch/sendbatches myfeedsite

            # expire C-news
            59 0       * * * /usenet/sw/news/bin/expire/doexpire

            # monitor stuff and report if needed
            10 5       * * * /usenet/sw/news/bin/newsdaily
            00 5       * * * /usenet/sw/new/bin/newswatch

            # turn processing of incoming news batches off 6:30AM - 4:00 PM
            30 6       * * * /usenet/sw/news/bin/input/newsrunning off
            00 16      * * * /usenet/sw/news/bin/input/newsrunning on

### InterNetNews (INN)

INN is the newcomer on the scene, but it's gaining popularity as it matures. Its main benefit is speed and the fact that it contains an integrated nntp package. Its main drawback is that it's new and that it doesn't necessarily install and run flawlessly on the many "standard *nixes" yet. In addition, it operates by having a daemon (the innd) always running plus potentially a overchan daemon to do threading. The tradeoff seems to be memory vs. speed.

New USENET admins should probably not try INN until they have experience with either B-news or Cnews. While it's fast and reliable under Linux, it's virtually undocumented for the beginning news administrator (though in practice it's rather simple to run once you figure it out).

INN is very particular about its permissions. Don't mess with them.

INN is also very particular about having a "quality" TCP/IP to work with. Linux is not necessarily all the way there at this time, so it is recommended that you grab a Linux-specific INN distribution from one of the usual Linux archive sites.

### Installing INN

( from Arjan de Vet - devet@info.win.tue.nl )

I've made a patch + config kit for INN 1.4 to get it to run on Linux. It can be found at:

ftp.win.tue.nl:/pub/linux/ports/inn-1.4-linux.tar.gz

INN depends heavily on a good /bin/sh substitute. I use a beta version of bash 1.13 that is now available for Linux on the normal archive sites. bash 1.12 gives some small problems with newgroups not being handled correctly (maybe some other problems too, I don't remember).

### Configuring INN

Basically follow Arjan's instructions and you'll be all set. Here's the summary of what to do:

- In config.data, make sure you have "HAVE_UNIX_DOMAIN DONT"
- Add the hostname of the system running innd to hosts.nntp For a uucp-only site, that's your sitename.
- Make sure you do not have a line for nntp in /etc/inetd.conf
- Make sure that you have innshellvars say "HAVE_UUSTAT DO" rather than the "DONT" in his example config.data if you have uustat from the Taylor UUCP package installed. If you have this defined wrong, it'll result in no outgoing news getting batched.
- If you run INN, definitely define the recommended syslogd stuff because it is very, very helpful.

There is a spectacular (!!!!) FAQ for INN that comes out monthly. Look on rtfm.mit.edu for it. You'll be glad you did.

### Maintaining a INN Site

I've found that there's essentially zero care-and-feeding of a Linux INN site other than having a working "cron". Basically you want a crontab that looks something like the following:

            # daily maint, also expire the .overview database and articles
            1 0 * * * /usenet/sw/inn/bin/news.daily expireover delayrm < /dev/null

            # send 'em out
            5 * * * * /usenet/sw/inn/lib/send-uucp

( if you switch to bash1.13, the "< /dev/null" above is not needed )

### Other News Transport Agents

The following is a non-inclusive list of other news transport software known to work under Linux:

dynafeed, nntp1.5.11, slurp1.05