Previous Next Table of Contents

12. cnews-configuration

If you decided to use INN instead of cnews you can skip this chapter.

I'll refer here to the path-conventions which are used by the cnews of Slackware 2.1: /var/lib/news for configurationfile, logfiles and statusfiles and /usr/lib/newsbin for the cnews-binaries. In other distributions everything will be placed either in /usr/lib/news and /usr/lib/news/bin or in /usr/local/lib/news and /usr/local/lib/news/bin.

I'll list up here the most important configuration-files:

First the sys-file, which contains where the newsgroups are exported to:


# /var/lib/news/sys 
#
# Attention: do not insert non-necessary blanks, this could cause
#            problems.
#
# ME: defines, which newsgroups you have on your own system.
#     You could write "all", but then you risk to automatically create
#     hierarchies (when having also an uucp-feed) you dont want to
#     have.
ME:alt,comp,news,gnu,de,rec,fido,ger,spinnaker,junk

# FidoGate (all FTN-nets, which are served via FidoGate):
# fido.*, ger.*, de.*, comp.*, rec.*, alt.*, gnu.*
fidogate/flokiste.fido.de:\
fido,de,comp,rec,alt,gnu/all:Lf:

We have to create an outbound-directory to get cnews to work. cnews expects this directory as /var/spool/news/out.going/fidogate. The owner of this should be news.news and it should have the permissions 775.

Now we have to define how the news via FidoGate will be processed:


# /var/lib/news/batchparms 
#
# site          size    queue   builder muncher sender
# ----          ----    -----   ------- ------- ------
/default/       100000  20      batcher compcun viauux
#
fidogate        250000  200     batcher nocomp  viafido

This means that the script viafido is used for the transport via FidoGate. Furthermore the maximal packet-size is set to 250K. If you have not much free space on your HD you may decrease the "size" (for the above you need at least 10MB of free space on /tmp), but this results in smaller .pkt-files.

Newer versions of cnews have a different format for this file:


fidogate    u     250000  200     batcher | nocomp | viafido

The file /usr/lib/newsbin/batch/nocomp seems to be missing in Slackware 3.0, but you can create with:


#!/bin/sh
# /usr/lib/newsbin/batch/nocomp
#
exec cat $*

The file viafido doesn't exist, you have to create it:


#! /bin/sh
# /usr/lib/newsbin/batch/viafido
#
# Submit news batch to FIDOGATE's rfc2ftn -w.
#
# The 'exec' cuts down the number of processes active for this simple case.

exec /usr/local/lib/fidogate/rfc2ftn -w Normal -b -n 

After this the expire-list has to be configured, which defines, which articles are how fast to be deleted:
# /var/lib/news/explist 
#
# The history sould be kept 30 days. Articles older than 30 days,
# reaching us are not inserted to the newssystem but simply deleted.
/expired/                       x       30      -

# Articels are kept minimal 3 days and maximal 90 days
/bounds/                        x       3-5-90  -

# The following list is searched from top to bottom.
junk                            x       7       -
fido.junk                       x       7       -
control                         x       7       -
de.newusers.questions           x       8       -
de.newusers                     x       90      -
de                              x       14      -
comp.os.linux.announce          x       90      -
comp.os.linux                   x       8       -
fido.2450                       x       27      -
fido.r24                        x       10      -
fido.ger.linux                  x       18      -
fido.ger                        x       14      -

# default:  9 days (everything not matched above should be kept 9 days)
all                             x       9       -

By this the news-system should work, but some things have to be excecuted periodically, thus it works properly.

For this I use some cron-jobs. This is the crontab for the user news:


# crontab.news
#
SHELL=/bin/sh
MAILTO=news
#
# Crontab entries for news system
#
15 * * * * /bin/date >  /tmp/news_cron_ok

# Before both polls the news are collected and exported to fido.
# Additionaly the news are colleced and exported every hour.
27      8       * * *   /usr/local/lib/fidogate/run-batch
27      20      * * *   /usr/local/lib/fidogate/run-batch
13      *       * * *   /usr/local/lib/fidogate/run-batch

# New articles should be inserted into the newssystem every 5 minutes
*/5     *       * * *   /usr/lib/newsbin/input/newsrun

# Inspect the newssystem every evening
18      21      * * *   /usr/lib/newsbin/maint/newsdaily

# expire old articles every 12 hours.
24       8      * * *   /usr/lib/newsbin/expire/doexpire
24       20     * * *   /usr/lib/newsbin/expire/doexpire

run-batch is a little shell-script, which at first calls newsrun and then sendbatches:
#!/bin/sh
# /usr/local/lib/fidogate/run-batch 
#
# Call newsrun, sendbatches
#

/usr/lib/newsbin/input/newsrun
/usr/lib/newsbin/batch/sendbatches

In Slackware 3.0 in every call of sendbatches the UUCP-queue is checked, where a error-message is given, as the system fidogate doesn't exist as a UUCP-system. To avoid this message you have to edit the script queuelen like this:


 #!/bin/sh
 # Find size of current queue of news outbound to $1.  Taylor version.
 # =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
 . ${NEWSCONFIG-/var/lib/news/config}

 PATH=$NEWSCTL/bin:$NEWSBIN:$NEWSPATH ; export PATH
 umask $NEWSUMASK

 if test "$1" = "fidogate"
 then
    echo -e "\t0"
    exit 0
 else
 uustat -s $1 -c rnews | wc -l
 fi

Now we have to enter the newsgroups into the news system. To do this job we use the program /usr/lib/newsbin/maint/addgroup, which takes the name of the newsgroup and the character y as parameters, e.g.

/usr/lib/newsbin/maint/addgroup fido.ger.linux y
By this the newsgroup fido.ger.linux (equals the fido-area LINUX.GER) is added. Do this for all your newsgroups. Then add the newsgroups fido.junk and junk, which will contain articles, which couldn't be sorted into another newsgroup. If Fido-echomail belongs to an area, which isn't defined in /usr/local/lib/fidogate/areas, it will be stored in fido.junk. If the area is defined in fidogate/areas, but you forgot to create the newsgroup with addgroup, then the article is stored to junk. As the newsadmin should subscribe this group to find out what groups are missing and to create them. To cancel articles you need the newsgroup control, which should be created with addgroup, too.

If there are problems with permissions a bug in relaynews could be the reason, as after an su the old user-ID and group-ID are used. The following patch should fix this problem:


--- org/relaynews.c     Tue Mar 17 08:42:42 1992
+++ relaynews.c Sun Jan 30 13:48:34 1994
@@ -201,7 +201,7 @@
        else
                newsuid = geteuid(), newsgid = getegid();
        if (setgid(newsgid) < 0 || setuid(newsuid) < 0 ||
-           getgid() != newsgid || getuid() != newsuid) {
+           getegid() != newsgid || geteuid() != newsuid) {
                if (getenv("NEWSPERMS") != 0)
                        error("recursive loop setting ids", "");
                /*


Previous Next Table of Contents