BULLETIN has the capability to read and post messages  to  USENET  NEWS  in  a
client  mode.  News groups can also be stored on disk.  Selected groups or set
of groups which are commonly read can be selected to be  stored,  thus  making
reading  of such groups much faster than having to access them over a network.
Note that since the number of groups is well over 2000 makes  it  unreasonable
at most sites to store them all. 

BULLETIN (actually BULLCP) can act as as a gateway between decnet and tcp  for
NEWS,  which allows decnet nodes without tcp access to be able to access a tcp
news server.  This method does not require spawning any processes,  since  the
detached process BULLCP is always present, so the access is very fast. 

Since BULLETIN uses a shared database to store info on  the  NEWS  groups  and
periodically  updates  it,  there  is  no need for that to be done when a user
accesses the NEWS groups.  Several other NEWS readers do  this  when  you  run
them, which is why they take a long time to start up. 

It is also possible to feed NEWS groups into a "real" BULLETIN folder.
 
Presently, BULLETIN can be used with  either  UCX,  MULTINET,  or  CMU  TCP/IP
packages  (and of course DECNET) for reading NEWS.  Support for other packages
can be added if I can find sites willing to beta test the  interface  for  me.
The  source  for  the  TCP  interface  is in C rather than FORTRAN because the
MULTINET include files are in C. 

The instructions for installation are as follows.  Define BULL_NEWS_SERVER  to
be a system logical name pointing to either your internet or decnet NEWS node.
If it is decnet, simply specify the decnet node name, i.e. 

 	$ DEFINE/SYSTEM BULL_NEWS_SERVER NERUS

BULLETIN decides to use DECNET rather than TCP access based on the node  name.
If it does not have any periods in it, then it assumes it is a DECNET node. 

If you have a cluster where one  node  is  an  internet  node,  and  the  rest
non-internet  nodes,  you'll  have  to create a startup procedure that defines
BULL_NEWS_SERVER to be the internet news server address only on the  node  (or
nodes)  on  the  cluster  that have actually internet access.  The other nodes
will have BULL_NEWS_SERVER defined as the decnet  node  name  that  BULLCP  is
running  on  in  the cluster.  (Of course, BULLCP will have to be running on a
node with internet access.)
                         
NOTE: If you want to disable the DECNET gateway feature, then before  starting
BULLCP, define the logical name: 

	$ DEFINE/SYSTEM BULL_NO_NEWS_GATEWAY "TRUE"

Defining this will only shut off the gateway.  BULLETIN will still be allowed
to read NEWS from the local node as long as BULL_NEWS_SERVER is defined.

If you want to enable the TCP gateway, you must  define  BULL_TCP_NEWS_GATEWAY
(NOTE: This presently only works with MULTINET.)

	$ DEFINE/SYSTEM BULL_TCP_NEWS_GATEWAY "TRUE"

BULL_TCP_NEWS_GATEWAY can be defined to point to a file name which contains ip
names  that are allowed access.  The file should contain real ip names.  Blank
lines and comments (preceded by #) are allowed.  If you want a whole domain to
be allowed, specify the domain preceded by a ., i.e. .pfc.mit.edu . 

You can also specify that BULLCP is ONLY to act oas a NEWS gateway.   This
is to allow adding the news gateway to an site that you have DECNET access to,
but which does not want to make use of any of  the  other  BULLETIN  features.
You would specify the following command before starting BULLCP: 

	$ DEFINE/SYSTEM BULL_NEWS_GATEWAY_ONLY "TRUE"

In order to post messages, BULLETIN needs to know the internet nodename of
the local host.  This is done automatically for nodes running MULTINET.  For
other nodes, BULLETIN attempts to translate the logical name ARPANET_HOST_NAME,
INTERNET_HOST_NAME, and MX_NODE_NAME.  If you are on a DECNET node that is not
on INTERNET (and is not part of a cluster which has an INTERNET address), but
you are accessing NEWS via DECNET, you can specify the hostname as follows:

     $ DEFINE/SYSTEM INTERNET_HOST_NAME "%localhost@internet-address"

Where "localhost" is your local decnet hostname, and "internet-address" is the
internet address of the gateway node.

The local time zone is detected by looking at the following logical names:
LISP$TIME_ZONE, MULTINET_TIMEZONE, or PMDF_TIMEZONE.  (LISP$TIME_ZONE is
defined if you have LISP installed.)

The name of the organization is included in the header of the NEWS message.
This can be anything, but usually is the company or university name.  This
can be hardcoded into the source by putting in BULLNEWS.INC, or by defining
the system logical name BULL_NEWS_ORGANIZATION.

The name of the mail protocol to use for responding by mail to NEWS messages
can also be either hardcoded by putting in BULLNEWS.INC, or by defining the
system logical name BULL_NEWS_MAILER.

After installing the new BULLETIN, execute the command NEWS, which asks for a
list of all the news groups.  Because this is the first time it is executed, it
will cause a load of all the remote news groups into a local data base
(BULL_DIR:BULLNEWS.DAT). This will take several minutes to do.  It is the only
time that this load will be done interactively.  Afterwards, BULLCP will
periodically update the data base. BULLCP will update NEWS every hour.  If you
want to change this frequency, define the logical name BULL_NEWS_UPDATE to the
number of minutes in between updates, i.e. DEFINE/SYSTEM BULL_NEWS_UPDATE "30"
for 30 minutes.  NOTE: BULLCP will create a subprocess BULLCP NEWS which does
the update.  You can watch how long it takes for this to run in order to
determine if you want to change the update period).  If you ever want to force
NEWS to be updated, simply restart BULLCP.

It is suggested that you run OPTIMIZE_RMS.COM on BULLNEWS.DAT, as it will cause
the file to be compressed and will allow updates to run much faster (factor of
5 or more).                                                       

Never delete BULLNEWS.DAT.  There is no reason to ever do so, and it will cause
subscribed users to be subscribed to the wrong news groups.

WARNING: One user discovered that his server (using bnews?) had a bug which
caused the updates to cause bogus "new messages" notifications for subscribed
NEWS group when entering BULLETIN.  If you experience this problem, try
defining the system logical name BULL_SPECIAL_NEWS_UPDATE.  This will cause
the update to use a different algorithm which should eliminate the problem,
although it requires much more time to execute.

News groups can be specified as being stored on disk via the SET NEWS command. 
See the online help for more info.  After converting such groups, when BULLCP
wakes up, it will start the storing process.  This can take a long time if you
have a lot of groups.  An index file pointing to the stored messages is created
and called BULL_DIR:BULLNEWSDIR.DAT.  After the storage process is complete you
should consider running OPTIMIZE_RMS.COM on it (and anytime after you convert a
sizable amount of groups).
                                              
It is possible to automatically have news messages to be fed into a real
folder. Place the name of the news group into the folder description surrounded
by <>, i.e. <misc.test>.  It must be in lower case.  (Other text is allowed in
the description, i.e. "THIS IS A TEST FOLDER <misc.test>".)

If you have any problems or questions, please let me know.
									MRL
P.s.
	If you do not know what USENET NEWS, it's basically news messages which
are passed between nodes.  Originally it was limited to USENET, but that is no
longer the case.  Unlike internet mailing lists which use MAIL to send the
messages to individuals, NEWS messages are not sent via MAIL.  They are passed
between nodes using a special protocol, NNTP.  Users must use a NEWS reader
package to read them.  However, it is possible to read NEWS remotely over a
network, and therefore avoiding having to actually store the messages.
BULLETIN is setup to be used mainly in this client mode, i.e. it can read
messages on another node via TCP or DECNET.  This is useful, since the number
of NEWS groups total over 1000, the disk space required for storage is very
high.  If you are interested in finding a server node that would allow you to
read NEWS, and do not know of one (i.e. a USENET node), I know of no official
way of doing so.  However, one suggestion was to try  connecting  to  FTP.UU.NET
via  ANONYMOUS FTP and look through the directory uumap or uunet-sites to find a
USENET node near you to contact. 
