1. Edit sysconfig.h as appropriate. This file is where all the platform
   variations live. Any porting problems should be resolved in here.

2. Edit the first section of the Makefile to set things like the C compiler.

3. Look at config.h. This contains non-platform specific defaults. All the
   interesting items in here can now be set at run time, so you shouldn't
   need to change anything in here.

4. Look at startinnfeed.c. This program is setuid root as a front end to
   innfeed. Its only job is to raise the resource limits on memory and open
   files before exec'ing innfeed. You'll need this if you configure innfeed
   to handle many peers and connections. You should look at it to satisfy
   yourself that it does what I say it does.

5. type 'make'

	If you get compile errors about UIO_MAXIOV in endpoint.c then:

		make check-maxiov

	and then edit the define for MAX_IOVEC in sysconfig.h to use the value
	displayed.

	If you later get run time log errors like 

		"failed to write command to remote: invalid argument" 

	then your MAX_IOVEC value is too big. Make and run check-maxiov to
	verify the number.

6. type 'make install' to copy the new binaries to the pathname you set in
   the Makefile at step 2. NOTE that the program startinnfeed is 
   installed setuid root. So if you're not running as root when you do the
   installation, you'll need to fix that up with

	chown root.news /usr/news/local/startinnfeed
	chmod u+s,ug=rx,o-rwx /usr/news/local/startinnfeed

7. Create the backlog file directory. This comes from (in order of
   preference).

	- the ``-b'' option on the innfeed command line.
	- the config file value for ``backlog-directory''
	- the config.h value for TAPE_DIRECTORY.

8. Copy the sample innfeed.conf to its proper place. This value comes from
   (in order of preference).

	- the ``-c'' option on the innfeed command line.
	- the config.h value for CONFIG_FILE.

   If you're running innfeed version 0.9.3 or lower, then you can use the
   supplied perlscript innfeed-convcfg to create a new-style config file:

	innfeed-convcfg old-innfeed.conf > new-innfeed.conf

9. Edit the new innfeed.conf as approriate.

10. Validate the new config file with:

	/usr/news/local/innfeed -C

   Once you're happy with the new config then...
	
11. For each peer, add an entry to the INN newsfeeds file that looks something
   like this:

	peername:groups+distributions\
		:Tm:innfeed!

   e.g.

	nic.near.net\
		:!junk/!local\
		:Tm:innfeed!

12. Add an entry like this too for the above entries to feed into.

	innfeed!:!*\
		:Tc,Wnm*\
		:/usr/news/local/startinnfeed

    As mentioned above, startinnfeed is used here if you have innfeed
    configured to handle more peers and connections than the system will
    normally let it.

13. Get innd to start it up (e.g. reload the newsfeeds file).

14. If innd writes a file called innfeed! in the out.going area of your
    spool, then the program procbatch included here can be used to
    process it. Edit the definition of '$innshellvars' in procbatch as
    necessary. Run 'probatch -h' to get instructions.

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

If you want to include Larry Wall's debugging version of malloc included
here (for testing purposes only--shouldn't need it otherwise), then in the
Makefile uncomment the "MALLOC = malloc.o" line and add the necessary '-I'
value to the INCDIRS variable definition (to point at the include
subdirectory of the inn source tree). At a pinch you could just rebuild
innfeed like this:

	make MALLOC=malloc.o INCDIRS=-I/usr/local/src/inn/include

The Makefile builds malloc.o in debugging mode--meaning it will cause a
core dump (into the top of your news spool) on certain malloc
failures. Remove the '-Ddebug' from the build line if you prefer to just
syslog any failures.
