           Tobruk - version 1.00, released 1997-05-03
                   

INTRODUCTION
------------

This package contains the Tobruk mailprocessor.  The goal of the Tobruk
project is to produce a portable, C (source included), Public Domain, 
FTN mailprocessor with no message size limitation.  The Tobruk project 
started in an Australian Echo called AUST_C_HERE.

Everything in this package, including documentation, is released to the
public domain.  It is hoped that commercial mailprocessor authors can
use this as an "engine" when implementing their mailprocessor, so that
hopefully their own mailprocessor will then also have no message size
restriction.

The code is written in near-100% ISO C, and should work on any practically
any environment.  Makefiles are provided for MSDOS, OS/2, AmigaDOS and Unix.


OBTAINING
---------

Since I got denodelisted from fidonet thanks to a fascist NC who didn't
like some of my opinions expressed in echomail, you can no longer obtain
Tobruk from 3:711/934 with magic name "TOBRUK".  In addition, I will not
be doing any further development on this program.  Perhaps someone else
will take over development, who knows.  In the meantime, you can try the
following places:

Andrew Clarke/Rowan Crowe, 3:635/728, ftp.zws.com
Bob Juge, 1:106/2000, ftp.juge.com
NET_DEV echo.
They may or may not have it.


PROGRESS TO DATE
----------------

The program is now complete and usable, but there are a few quirks
or limitations which may or may not be a problem for you.

It doesn't:
process arcmail bundles (I use polyxarc for this)
compress packets into arcmail (I use either zip at my point address,
  or polyarc on my BBS for this)
do dupe checking, except on SEENBYs (I just put up with this)


FILES IN THIS PACKAGE
---------------------

In the package you should find the following:

readme.doc   - this file
tobruk.exe   - 32-bit executable for OS/2
tobrukd.exe  - 16-bit executable for MSDOS
tobrukam     - Amigados executable
tobrukux     - Unix executable
tobruk.cfg   - sample configuration file
dotb.cmd     - sample command line for tobruk
tbkdests.cfg  - future-use config file
tbkroute.cfg - future-use config file

Note that because of the way this is archived, you will have to do a
"protect tobrukam e add" to make the Amigados version executable.
 
In the "SRC" subdirectory you will find the following:

makefile.wat - to recompile tobruk with Watcom C++ 10.0b for OS/2
makefile.ibm - to recompile tobruk with CSET++/2 2.0 for OS/2
makefile.bcc - to recompile tobruk with Borland C++ 1.5 for OS/2
makefile.emx - to recompile tobruk with EMX 0.9a for OS/2
makefile.zor - to recompile tobruk with Zortech C for OS/2 (*)
makefile.w16 - to recompile tobruk with Watcom C++ 10.0b for MSDOS
makefile.dos - to recompile tobruk with Borland C++ 3.1 for MSDOS
makefile.msc - to recompile tobruk with MSC 6.0 for MSDOS
makefile.lsi - to recompile tobruk with LSI C for MSDOS (*)
makefile.sas - to recompile tobruk with SAS/C 6.5 for AmigaDos
makefile.unx - to recompile tobruk with GCC for Unix
makefile.lat - to recompile tobruk with SAS/C 5.1 for AmigaDos

plus all the C source code.

(*) No MSGAPI support


RECOMPILING THE SOURCE
----------------------

If you want to recompile the source, you will also need to obtain SMAPI.
This can be obtained from Andrew Clarke's systems, listed above.

Although you can compile this on any system, to get stuff into the 
messagebase, I am using MSGAPI, so you need to have this library first.
If you only want *.MSG support, then Tobruk can handle this without
using MSGAPI.  Note that this consideration is only an issue to get
stuff into the messagebase.  The only restriction placed on packet 
processing is that your file system must be capable of writing an 8.3 
filename, which can start with a number.  

I have compiled various versions of Tobruk on various compilers, such as 
CSET++/2 for OS/2, Borland C++ 1.5 for OS/2, Borland C++ 3.1, Microsoft C 6.0,
and Power C 1.3.0, and on the whole the result was favourable, but I don't
take the time to recompile and test under each environment for each release.
Sometimes old compilers are not conforming, e.g. Power C 1.3.0 doesn't have
EXIT_FAILURE defined, so you're on your own there.

This program was written in ISO C, and should compile on any ISO-conforming
compiler in the world.  It should run on most (I have made some assumptions
about the character set being ASCII in some places).  There is no assumption 
that bytes are little-endian ordered, no requirements for there to be no 
structure padding (hmmm - except that characters aren't padded!), no 
requirements for ints to be 16 or 32 bits.  Ditto for shorts and longs.  

If you are recompiling under Unix, you will probably have to run
a program to convert all <CR><LF> pairs to <LF>.  Amigados is in
the same boat, except that for the compiler I used, I didn't need
to, at least for the source code.


TRADEMARKS
----------

Squish is a trademark of Scott J Dudley.
IBM is a trademark of International Business Machines (actually,
  it's probably the name of the company rather than a trademark).
MSDOS is probably a trademark of Microsoft
Borland C++ may or may not be a trademark of Borland
OS/2 could well be a trademark of both IBM and Microsoft
CSET might be a trademark of IBM
Tobruk is not a trademark of anyone I know of.  It is, however, 
  a place in Libya.


BUGS
----

This program currently needs to be able to open as many files as 
required to do the processing.  I have compiled both the OS/2 and
the DOS executable with Watcom with a special Watcom call to increase
the number of files that can be opened.


RUNNING TOBRUK
--------------

To run tobruk, you need to invoke it something like this:

tobruk -ctobruk.cfg -p*.pkt -r*.bad

or if you are an existing squish user like I am, use your
existing squish.cfg with a "-csquish.cfg".

For a list of all options, just type "tobruk" by itself.

Here is an explanation of the options:

-d debug? (you normally would not want to debug)
-p packet name (you will need to specify the complete path to a packet
   to be tossed.  Wildcards may be used).
-r what bad packets should be renamed to (Wildcards as well)
-i how many bytes for input file buffer (only specify this if you want to
   do some performance tuning).  
-b how many bytes to allocate for the main buffer.  Use a reasonable
   size here, like at least 10k (I use 200k) as there are some
   restrictions such as all the SEENBYs must be able to fit into half
   of this buffer (which would allow 5k of SEENBYs), otherwise your
   message will be chucked out.
-c name of configuration file.  This needs to contain your Fidonet address,
   a Netmail area, and as many EchoAreas as you have.


CONFIGURATION FILE
------------------

You also need to set up a configuration file.  There is a sample 
included in the package (tobruk.cfg).  There is not much flexibility 
allowed in the Echoarea tags.  It must be the same case, it must have 
a message area, then have zero or more flags, then zero or more nodes
following.  The flags must all start with a "-".  It should read your
existing squish.cfg.  The flags are "-0" to say that it is a passthrough
area, "-$" to say it is a squish-type area (as opposed to the default
of *.MSG).

Here is an explanation of some of the fields:

App Tobruk Outbound - where you want the outbound packets to be stored,
  ready to be processed by squish squash!  Whatever you specify here
  gets prepended to the 8.3 packet name that is created.  If you system
  requires a backslash, make sure you end it with a backslash!!!!

App Tobruk Name - your full name

App Tobruk WorldRoute - if netmail is destined for a node that you
  are not sending echomail to, then it will be routed to this person.

App Tobruk PointMap - If the system is NOT a point, and there is mail
  destined to this system with a name as given above, then it will be
  remapped to this point number.  Specifying 0 here will make it not
  remap!

Outbound - use this if you have recompiled with BINKLEYSTYLE and have all
  the directories set up.
  
Address - your address.  Only the first one specified is used.  


USING TOBRUK "LIVE"
-------------------

To use this version of Tobruk in a live situation, you need to unpack
the arcmail bundles yourself (I advise using polyxarc), and if you are
a sysop, then use either squish to create the arcmail bundles, or polyarc.
If you are a point, then you can simply use zip directly.  If you choose
to use squish to create teh arcmail bundles, then rename all the stuff in
outbound.sq from "*.PKT" to "*.OUT" before giving it to "squish squash".  
