Previous Next Contents

5. News

5.1 How do I set up an online news-reader?

As long as PPP is active, it will be possible to read news online. There are lots of available programs. Two simple alternatives are rtin and trn.

To start reading news, the only thing required in terms of configuration in most cases is to do (usually once and for all in the file .profile):


To get the From-address correct in postings, some programs may require:


5.2 How do I set up an offline news-reader?

To be able to read news while offline, and thus reduce phone bills and give greater flexibility, one must set up a local news-spool of one sort or the other. This requires some configuration, and there will also be a certain amount of disk space involved. After initial setup, things should run more or less by themselves, with only some attention needed from time to time.

Two different solutions will be described here.

5.3 How do I set up C News?

The solution described here is based on the news-server C News and the NNTP protocol. C News was originally targeted towards another sort of configuration, but is flexible enough to handle our situation too. One might also use the more recent INN news server, but it might require a bit more in terms of resources. Any way, be careful not to install both; they don't live together easily.

It is crucial that all maintenance of news is done while logged in as user news, and that all configuration files is placed in /usr/lib/news. One way of handling this is, while logged in as root to write su news; cd.

The most important files in the configuration are:

Dirk Gently's Holistic Detective Agency


mkdir /var/spool/news/out.going/acme

C News needs a certain degree of daily maintenance, but this can be specified once and for all via the command crontab -e issued as user news. A suggested setup follows; it can be tuned as required:

# maintain incoming and outgoing batches
10,40 *  * * * /usr/lib/newsbin/input/newsrun

# expire C News, once a day
30 0  * * * /usr/lib/newsbin/expire/doexpire

# monitor and report if needed
00 2  * * sat /usr/lib/newsbin/maint/addmissing
40 3  * * * /usr/lib/newsbin/maint/newswatch
50 3  * * * /usr/lib/newsbin/maint/newsdaily
newsrun moves articles in and out (twice every hour), doexpire will delete articles as they get old (every night at 00:30), and the three last commands does various supervisory and error correcting tasks.

One should also ensure that things are cleaned up when starting the machine. As user root, add the following line to /etc/rc.d/rc.local:

su news -c /usr/lib/newsbin/maint/newsboot
News may be collected via the program NewsX, picking news from an NNTP-server. The program can be found at: Or:

Setting up NewsX is quite simple. Installation is a classic case of:

make install

With the setup outlined here, all you have to do is to create the groups you want to read using the "addgroup" command.

To fetch articles, user news issues the following commands (assuming communication via PPP or similar is up):

newsx acme

The option -d gives continuous printout to the screen. Refer to the NewsX documentation for further information.

NewsX will also take care of posting of outgoing news.

To control disposal of articles as they get old, a file explist is required. The comments in this example should explain what we want to do:

# hold onto history lines 14 days, nobody gets >120 days
/expired/           x    14   -
/bounds/            x    0-1-120 -

# retain these for 2 months
comp.sources,comp.os.linux.all     x    60   -

# noise gets thrown away fast
junk,control             x    2    -

# default:  14 days, no archive
all                 x    14   -

ALT: In a small news-spool, one will often not need the newsgroup control. The traffic is huge compared to the usefulness. The main point is that articles will be canceled, and that groups may be created automatically. To ensure that control messages containing newgroup not shall mess up things for us, a file called newgroupperm specifies what we will allow:

comp.os.linux yv
all       any       nq
In this example, all proper groups under comp.os.linux will be created (y), and the user news will be notified (v). Everything else will be silently (q) ignored (n). The last line is sufficient if you want to create all groups manually.

ALT: Alternatives to NewsX are suck, or slurp combined with postit. Slurp uses the NNTP NEWNEWS which will put severe loads on many news server.

5.4 How do I set up Leafnode?

A different solution altogether is to install the integrated package leafnode. This will handle all tasks required for a personal news spool, and is easy to configure. It is available via:

As for C News, all news maintenance should be performed as user news.

The home directory for leafnode is in /usr/lib/leafnode. To install, write:

cd /usr/lib/leafnode
tar -xzvf leafnode-0.8.tgz
cd leafnode-0.8
make install

While still being logged in as root, change the line that controls NNTP in /etc/inetd.conf:

nntp  stream  tcp  nowait  news  /usr/sbin/tcpd /usr/local/sbin/leafnode
Activate it by:
killall -HUP inetd

Return to user news by writing exit. In /usr/lib/leafnode/config change the line that defines the NNTP server. In our case:

server =

Leafnode will look after itself by adding the following command via crontab -e as user news:

# expire Leafnode, once a day
0 4 * * * /usr/local/sbin/texpire

The news exchange is also done as user news by the following command (assuming PPP is up and running):


Users who wants to read news should then use the recipe in How do I set up an online news-reader?, except that they configure for the local machine, i.e:

export NNTPSERVER=localhost

That should be all there is to it. The first fetch will transfer a list of available newsgroups. Leafnode will then monitor what groups the users are requesting, and adapt to this the next time it is activated.

ALT: An alternative to leafnode is nntpcache, available from:

Previous Next Contents