
				INSTALLATION

    Get and install XMake if you don't have it.  You can get XMake
    from http://www.backplane.com/xmake/

    Edit lib/vendor.h

	To use default hash table size or specifically request a small
	or large hash table.  To maintain dhistory compatibility with
	releases < V1.11, set USE_SMALL_HASH.  To maintain dhistory
	compatibility with releaes > V1.11 from releases < V1.11,
	use USE_LARGE_HASH.  The default is to use a small hash table
	in releases < V1.09, and a large one in releases >= 1.09.  

	>> We suggest that you follow the instructions at the end of this file
	if you wish to upgrade to a larger hash table size. <<

    Edit lib/config.h

	To port to a new architecture or to refine an existing port

    Edit XMakefile.inc

	To set compiler flags

    xmake clean
    xmake

    Create a news home called /news (in recognition that usenet news is
    a major subsystem, we have none of this /usr/local/news crap).  /news
    can be a softlink to wherever the real news home is.

    Create a news userid and a news groupid.

	mkdir /news/dbin		(reader and server)
	mkdir /news/spool		(reader and server)
	mkdir /news/dqueue		(server only)
	mkdir /news/spool/news	(server only)
	mkdir /news/spool/cache	(reader only)
	mkdir /news/spool/group	(reader only)
	mkdir /news/spool/postq	(reader only)
	chown -R news.news /news

	xmake install

    Your news spool partition should be mounted as /news/spool/news.  Be
    sure that both the underlying mount point and the partition is
    properly chown'd and chmod'd.  Do the same with /news.

    cd /news

    copy the contents of the samples directory to /news and edit as
    appropriate, then run rc.news as root.  Read the TUNING_NOTES
    and RELEASE_NOTES as well as the various manual pages.  The required
    files are:

	diablo.config	(reader and server)
	dhistory	(server only)
	dexpire.ctl	(server only)
	diablo.hosts	(server only)
	dnewsfeeds	(server only)
	dnntpspool.ctl	(server only)
	dactive.kp	(required for reader, optional for server (1))
	dcontrol.ctl	(reader only)
	moderators	(reader only)
	dreader.hosts	(reader only)
	dserver.hosts	(reader only)

	note (1): The dsyncgroups program can be used to generate an initial
		  dactive.kp database, see the manual page for dsyncgroups.

    Don't forget the adm directory with the sample crontab.  You will have
    to edit the sample crontab as appropriate for your system, and then
    install it for the 'news' user.

    And you are off.

    WHEN UPGRADING:  when upgrading from an earlier release of diablo, always
    diff the source tree adm directory against your installed adm directory
    and update the appropriate files.  Note that for any given release of the
    code, corruption may result if you do not properly update your 
    administrative scripts.

    HASH METHOD:  The default hash method in diablo.config is 'crc/prime',
    designed so that people upgrading from 1.13 or earlier releases can
    install this one without blowing up their dhistory file.  If you are
    doing an installation from scratch with no prior dhistory, you can
    set the hash method to just 'crc'.  Otherwise leave it 'crc/prime'
    for a week and THEN set it to just 'crc'.


		    /NEWS and /NEWS/SPOOL/NEWS HINTS

		    ** FOR A DEDICATED NEWSFEEDS MACHINE **

    /news should generally own its own partition, as should /news/spool/news.

    /news can usually share the root disk

    /news/spool/news should be given its own private disk(s).  The MINIMUM 
    recommended spool size is 8 GB.

    Under no circumstances should you use physical disks with storage
    capacities greater then 4G.

    The minimum recommended configuration when taking a full feed is:

	128 MB ram, parity SIMM.

	Three 4G seagate barracudas (or better)  Use one for the root 
	drive and /news, and stripe the other two (e.g. with ccd) to make
	your spool.  The suggested stripe size is 2 cylinders (usually 
	around 1024 blocks).

	pentium 90 or better motherboard (I personally suggest a pentium
	pro motherboard, which gives better cpu performance and hardware
	ECC when using parity-simm memory).

	run FreeBSD, BSDI, or Linux.  My personal favorite is FreeBSD.



		    ** FOR A DEDICATED NEWSREADER MACHINE **

    /news should generally own its own partition, as should /news/spool/news.

    /news can reside on the root disk *IF* you have enough memory not to
    swap, otherwise it should own its own disk.  

    /news/spool/news should be given its own private disk(s).  The MINIMUM
    recommended spool size is 16 GB if you are taking a full feed, 8 or 12
    if you are not.

    Under no circumstances should you use physical disks with storage
    capacities greater then 4G.

    The minimum recommended configuration for a newsreader machine taking
    a full feed is:

	128 MB ram, parity SIMMs, 256 MB ram if over 100 readers may become
	active at once.

	Five 4G seagate barracudas (or better).  Use one for the root drive 
	and /news, and stripe the other four (e.g. with ccd) to make your 
	spool.  The suggested stripe size is 2 cylinders (usually around 
	1024 blocks).

	Pentium-pro 200, Adaptec PCI SCSI controller

	running FreeBSD.


		    FREEBSD / PENTIUM BOX / ADAPTEC CONTROLLER

    We use pentium boxes running FreeBSD with seagate drives and an 
    adaptec controller.  We have had serious firmware problems with other 
    drives, especially quantums (even the new ones).  If you are going 
    with a pentium/FreeBSD solution for news, I suggest sticking with
    the newer seagate drives.

    For any news system, you should not underestimate the memory 
    requirements.  Most modern UNIX operating systems are able to use any
    free memory as a disk buffer cache, and that can be very important
    when it comes to news.  News machines cannot generally afford to 
    swap, but it depends heavily on the software you are using.  Diablo,
    for example, can handle swapping/paging much better then something
    like INN.

			CHECKLIST ONCE IT IS RUNNING

    Here's a checklist for once you have Diablo running:

    * Make sure syslog is logging news

    * fgrep DIABLO /var/log/news (or wherever your syslog puts the log) and
      use the uptime and 'arts' numbers to calculate the articles per minute.
      The uptime is in HH:MM, so calculate:  arts / (HH * 60 + MM) .  For
      a full feed as of March 1997, you should wind up with between 
      190 and 250 articles/min if you properly primed the history file.
      If you have not primed the history file and are taking multiple feeds,
      you may see a higher article rate for several days until Diablo's
      history file stabilizes.

    * After DIABLO has been running for a day, check the logs generated by
      the cron scripts.  Make sure that the expire is being run every four
      hours.

    * After DIABLO has been running for a few days, check the logs again.
      Make sure that expire is still running properly, and that the 
      history rewrite (biweekly.rehist) is running properly.

    * After four weeks of operation, double check that biweekly.rehist has
      been running properly and that the dhistory file has stabilized to
      a reasonable size (as of July 1997, between 200 and 300 MBytes).

      If you have a lot of feeds and a lot of memory, it may be worthwhile 
      increasing the dhistory table hash size from 4 million entries to 
      8 million, see adm/biweekly.atrim and the manual page to diload for
      more information.

