Installation for a working News system
--------------------------------------


1) First follow the directions in NNTPd.doc for installation.

2) If you have an active file already, skip to #3.

   If you do not have an active file, edit the file called active.all which
   should now be located in your uunews directory, and select the newsgroups
   that you wish to maintain on your system.  Save the edited file as: active

   Note that you MUST have newsgroup entries for control and junk, so do not
   delete the first two entries in active.all!

   CD to your uunews directory and type:

	bin/activesetup

   This will create the subdirectories for your news if they do not
   already exist.


3) If you already have a properly maintained active.times file, skip to #4.

   CD to your uunews directory and type:

	bin/activetimesmaker

   This will create a file called active.times in your uunews directory.

4) If you already have an history database in your uunews directory, skip
   to #5.

   CD to your uunews directory and type:

	bin/mkhistory

   The time that this utility takes depends on how extensive of a news
   system you already have.  If you have no or very few newsgroups with
   articles, this will be done quickly.  If you have the entire news system
   stored on your system, start this and go to bed.  Also, this function is
   a storage space hog, so have at least 200*number of articles of free space
   available.

5) You should now have the following files in your uunews dir:

	active
	active.times
	history
	history.dir
	history.pag

   Verify that they are all there. If they aren't, start over.

6) Next you will build the .overview files in each of the subdirectories. CD
   to your uunews directory and type:

	bin/initov

   This utility has to open up every article and extract the header from the
   article, so it too will take a while if you have an extensive news system.

7) Decide which NNTP servers you wish to forward your posts to and add them
   to the uunews:sys file.  Example:

	You want to add foo.bar.edu to your distribution and forward to them
	all articles in alt, bin, comp, and local.

	Add the following line to your sys file:

	foo.bar.edu:alt,bin,comp,local,to.news/all,!ut:F:foo.bar.edu

   *NOTE*
   ------

   Yes, I realize what the sys manpages say, but this is the way it works.
   You can do whatever you want, but the above works, and your way may not.


8) At this point the daemon will run, accept and forward posts.

9) At regular intervals, you will need to process the news you have in your
   spool directory.  Use relaynews to process each of the files in your spool
   directory. Then update your overview files using domkov. Finally, process
   the batches using batchproc.  Batchproc forwards out your news to other
   systems using Michael van Elst's nntpput (archive included in its
   entirety). Cron is a good tool which runs programs at regular intervals.
   An example script to run, say, every 1/2-1 hour, follows:

	cd uunews:
	bin/relaynews
	bin/domkov <headers       <----- Sorry, but, yes, this is a redirect.
	bin/batchproc             <----- Add -p here if you want your system
					 to forward all news as NEW posts,
					 otherwise leave this blank, and all
					 posts will be forwarded with IHAVE.
					 See batchproc below for more details.

10)Daily, you probably will want to expire old news to make room for the new
   news.  Cron is also useful for this. The script doexpire, located in
   the uunews directory, does this.  It also updates your active file.
   *Note* that the server is NOT functional when this routine is running, and
   all people connecting during this time will receive a maintenance in
   progress message, and all connected people will be disconnected on their
   next command entry.

   ***Edit expire before running it if you do not have uunews: assigned to
      your uunews directory.  You will need to change all of the cd uunews:
      to wherever your uunews directory is located.

   The articles are expired based on the contents of explist.  Edit the
   file explist.eg, located in your uunews directory, and save the file
   as explist.  The man pages will help you edit this file to your liking.

------------------------------------------------------------------------------


These utilities exist in your uunews/bin directory:

	activesetup
	relaynews
	doexpire
	expire
	mkdbz
	dbz
	activeupdate
	mkhistory
	unixsort
	histinfo
	activetimesmaker
	newgroup
	initov
	expov
	expovguts
	domkov
	ovsplit
	batchproc

activesetup

	This program takes your active file and creates subdirectories for
	each newsgroup if needed.  It is usually only run once during the
	initial installation of NNTPd.


relaynews

	This will take all incoming messages in your UUSPOOL directory and 
	place them in the proper directory.  It also adds the entries to your
	history file. I have no idea if RelayNews works beyond the above use
	because I haven't the slightest idea how it works.  Someone with
	knowledge want to share it with me?
	

doexpire/expire

	See the expire manpage to learn how to manipulate the explist in your
	uunews directory.  An example should be in your uunews directory
	under explist.eg.

	expire <filename>   (<filename> should be explist, otherwise edit
				the doexpire script)

		Expires all articles under the conditions set by you
		in <filename>.  Any errors will appear on stdout. See BEWARE
		in doexpire below.

	doexpire

		A simple batch file to run expire, activeupdate, and mkdbz
		to complete maintenance.  Disables new connections to NNTPd
		with a "Maintenance in progress" message. BEWARE that any
		established connections do not exist or there will be trouble
		with locks on files.

activeupdate

	Updates your active file based on the articles that actually exist
	in your subdirectories.  Usually run after an expire.

activetimesmaker

	Creates the file active.times, with a list of all groups you have
	listed in active.  Usually only run once on installation.

mkhistory/histinfo

	Mkhistory makes a history database in uunews called history, with
	support files history.dir and history.pag.  These make running the
	daemon faster, and speeds the task of expiring articles tremendously.
	It is only run once during the initial setup of your news system.

unixsort

	A sort program that accepts unix-style sorting commands.  Used by
	mkhistory and mkdbz frequently as well as other programs.

mkdbz/dbz

	dbz - No manpages or info available.  Creates history.dir and
	      history.pag to speed access to your history file in locating
	      database entries.

	mkdbz - Used by doexpire. Updates history.dir and history.pag after
		an expire, usually after daily maintenance work.  Uses
		unixsort and dbz.

newgroup <newgroupname>

	Adds the <newgroupname> to both your active file and your active.times
	file, and creates any subdirectories required if they don't exist.

initov

	Creates the .overview files in each subdirectory.  Takes a long time
	if you have an extensive news system already installed, but only run
	once during the initial installation.

expov/expovguts

	Removes expired overview entries.  Usually run after expire.

domkov <filename>

	Takes the headers from uunews:headers and places the information in
	the .overview files.  The <filename> is ALWAYS uunews:headers.


batchproc

	This program extracts the batched articles from your out.master
	directory and places that article path names in files named after
	their destination hosts.  Then it calls Michael van Elst's nntpput
	to forward the articles to the destination server.

	This program uses the IHAVE command to feed articles from your
	system to another system.  You must have IHAVE feed permission on the
	destination server to use this command.  IF YOU DONT HAVE IHAVE
	permission, but you have POST permission, attach a -p to the batchproc
	command (i.e. bin/batchproc -p) to use the POST command.  Note that
	this is NOT the preferred way to feed mail to another server as you'll
	probably wind up with your own articles again when you receive a news
	feed.

