Installation Instructions for trn 4.0:

1)  Decide what package you want to use to solve your news database
    needs.  There's currently two supported by trn:  mthreads and
    news overview.  Mthreads creates smaller files that load faster
    each time you enter a group, however it is more taxing on your
    cpu and disk bandwidth because it keeps the files in thread order.
    Overview files are larger, but they are less taxing on your system
    because the format is pretty "raw" and the files are maintained by
    your news software (either the latest C news or INN 1.3 and above).
    Though they load slower than .thread files, they have subject and
    author headers that are not truncated (unlike mthreads headers)
    which means that trn won't have to "freshen" these headers during
    its idle time.  The final choice is to not store a database.  If
    you go this route it will take significantly longer to start up
    a group in threaded mode, but you could chose to read one or more
    groups unthreaded.

2)  Figure out how you want trn to get the news, either via NNTP from
    a news server, or from a "local" file system (which could be NFS
    mounted).  Trn is able to use both NNTP and local servers via the
    same executable, so it is possible to have multiple news sources
    available (even to read multiple sources at the same time).  Trn
    also comes with a "mini" inews for posting via NNTP which I recommend
    you use in place of other inews choices on a client machine (it is
    a drop-in replacement for a client inews).  If you have local news
    files and wish to read news from other servers via NNTP, trn's mini
    inews knows how to route local postings to your news software's
    inews as well as post remotely, so it can be used as the one public
    inews for all newsreaders on your system.

3)  Run Configure.  This will figure out various things about your system.
    Some things Configure will figure out for itself, other things it will
    ask you about.  It will then proceed to make config.h, config.sh, the
    Makefile, and a bunch of shell scripts.  You might possibly have to
    trim # comments from the front of Configure if your sh doesn't handle
    them, but all other # comments will be taken care of.

    NOTE: This package allows the build to be performed in a directory
    other than where the sources are.  You will need a "make" that supports
    VPATH to do this.  Just create a directory where you want to do the
    build, cd into it, and run "path/Configure" from there where "path" is
    either a relative or absolute path reference to the trn source directory.

4)  Glance through config.h and common.h to make sure system dependencies
    are correct.  Most of them should have been taken care of by running
    the Configure script.  (If your confidence is high, skip this step.)

    If you have any additional changes to make to the C definitions, they
    can be done in the Makefile, in config.h, or in common.h.  If you have
    strange mailboxes on your system (and trn knows about standard unix
    "From " format and MMDF) you should modify mbox.saver to correctly
    append an article to a mailbox or folder and then define the MBOXSAVER
    variable in the global INIT file so that it is used for all mail saves.
    one possible definition:

-EMBOXSAVER="%X/mbox.saver %A %P %c %a %B %C \"%b\" \"From %t %`LANG= date`\""

    If you are on a machine with limited address space, you probably don't
    want to be using trn.  Feel free to give it a try, though -- there are
    some defines in common.h that can be turned off to try to make trn fit
    (see the System Dependencies section).  You might run a "make depend"
    afterward, just to be safe.

5)  make

    This will attempt to make trn in the current directory.

6)  make install

    This will put trn, Pnews, Rnmail, trn-artchk, nntplist, and (optionally)
    inews into a public directory (normally /usr/local/bin), and put a
    number of files into the private trn library (e.g. /usr/local/lib/trn).
    It also tries to put the trn man page in a reasonable place.

    Of the installed private library files, you may wish to change some
    of trn's defaults in the INIT file, change the default news source
    via the access.def file, and/or change the message that trn users
    receive via the newsnews file.

    NOTE: The format of the INIT file has changed.  See the section of
    the trn man page on the new trnrc file format.

7)  Read the manual entry before running trn, or at least read the file
    HelpFiles/changelog if you are already familiar with trn.  Those that
    are brand new to trn can get a quick idea of what's different from rn
    by reading the WHAT'S NEW section of the man page.  Also check out
    the HelpFiles/hints file for some ways to get the most out of using trn.

8)  Try trn, and play with the online options (type &<RETURN> while
    running trn).  Personal defaults are saved in the .trn/trnrc file
    when you 'S'ave from the online options editor.  Any options you
    find that you want to make the default for everyone can be placed
    into the INIT file in the trn library (copy them out of your
    ./trn/trnrc file).

9)  Once trn is running ok, make sure any database software you've installed
    is going ok and interfacing properly with trn.  Read the documentation
    that comes with the package of your choosing.

10) IMPORTANT!  Help save the world!  Communicate any problems and suggested
    patches to trn-workers@lists.sourceforge.net so we can keep the world
    in sync.  If you have a problem, there's someone else out there who
    either has had or will have the same problem.  If the problem affects
    regular rn, code, I will pass it on to Stan Barber.

    If possible, send in patches such that the patch program will apply them.
    Unified or regular context diffs are the best, then normal diffs.  Don't
    send ed scripts--I've probably changed my copy since the version you have.

    Watch for trn patches in news.software.readers.  Patches will always be
    in the unified context diff format, for application by the patch program.
    If you don't have a patch program that handles unified context diffs,
    you'll probably want to get one, such as patch version 2.1 available
    at any GNU archive.  Otherwise, you can use the (included) filter
    "unipatch", which can be generated with the command "make unipatch".
    To apply patches using this filter, use the command:

	unipatch <patchfile | patch -p

11) If you are going to hack on trn, please refer to rn's HACKERSGUIDE first.
