.TL
Setting up the news overview database
(pre-Cleanup-Release version)
.AU
Geoff Collyer
.AI
Software Tool & Die
.SH
Introduction
.PP
My original hope was that
the news reader maintainers would pick up this code,
and that it would be quickly incorporated into the Cleanup Release
of C News, which was supposed to have happened at the end of April, 1993,
and thus most people wouldn't have to deal with setting up
the news overview database
(\c
.I nov )
directly.
The Cleanup Release has slipped,
so until it happens,
here are interim installation instructions.
.PP
This distribution includes code to add to the February 1993
C News release (Performance Release with known.problems fixed),
plus code to add to news readers to access the
.I nov
database
(see
.B doc/rationale
for an overview).
.PP
The basic idea is that replacing the relevant
.I relaynews
sources with the ones in
.B c.news/relay
and recompiling
.I relaynews
should add the necessary hook to
.I relaynews .
You then have to install some of the other machinery,
notably
.I mkov
and the wrapper scripts
(domkov, newsrun, etc.).
This will generate the
.B .overview
files that constitute the
.I nov
database.
.PP
Proof-of-concept versions of
.I nn ,
.I trn ,
and
.I vnews
can be found in
.B world.std.com:src/news/*.dist.tar.Z.
Better versions should be available from the maintainers of these
news readers.
.SH
Setup
.PP
In the root directory of the distribution tree,
type
.B make ;
this will build everything you should need except the new
.I relaynews .
Verify that
.B maint/*ov
and
.B maint/initdb
have the right path names embedded in them
for your system,
then copy them to NEWSBIN/maint.
In
.B c.news ,
.B doexpire
and
.B newsrun
are modified versions that invoke the appropriate
.I nov
maintenance machinery;
you may want to diff them with your existing ones rather than just
blindingly installing them.
.PP
.B c.news/relay
contains drop-in replacements for their corresponding source
files in the February 1993 updated Performance Release.
You can either copy these sources into your C News tree
(into
.B relay )
or diff them against your sources and merge in any changes
you may have made.
NB:
the version of
.B libc/fgetfln.c
in the
.I nov
distribution fixes a nasty bug and you should copy it on top of
the one in your C News tree
(in
.B libc ).
Then rebuild all of C News by rerunning the
.B conf/doit.*
scripts,
notably
.B doit.bin .
You could just rebuild and install
.I relaynews ,
but getting the fixed
.B fgetfln.c
into everything is worth doing.
.PP
Some of the scripts in
.B maint
expect
.I gawk
in
.B /usr/local/bin/gawk ;
you can use
.I nawk
instead or possibly even
.I awk .
.PP
The manual pages in the
.B man
directory should be installed somewhere suitable.
.SH
Initialisation
.PP
You can either run
.I maint/initdb
which takes a long time,
but generates
.I .overview
files for all news on your machine,
or you can just let C News create
.I .overview
entries for news as it arrives;
in a few days,
you'll have a
.I nov
database for most of the news on your machine.
.SH
Caveats
.PP
The
.I relaynews
regression test may fail after applying these changes,
probably due to the presence of a new file,
NEWSCTL/headers.
.SH
Newsreader Hooks
.PP
The
.B libnov
directory contains a reference implementation of an access
library for
.I nov .
Feel free to modify this code to suit your needs,
but
.I please
keep the database format the same.
Note the existence of an extension field in
.I nov .
