From:	CRDGW2::CRDGW2::MRGATE::"SMTP::PFCVAX.PFC.MIT.EDU::BULLETIN" 21-JUL-1989 09:10
To:	MRGATE::"ARISIA::EVERHART"
Subj:	BULLETIN utility.

Message-Id:  <8907211243.AA22754@crdgw1.ge.com>
Date: Fri, 21 Jul 89 08:35 EDT
From: BULLETIN@PFCVAX.PFC.MIT.EDU
Subject: BULLETIN utility.
To: EVERHART@ARISIA.DECNET
X-Vms-To: IN%"EVERHART%ARISIA.DECNET@CRDGW1.GE.COM"

You  are  about  to  receive  version  1.69  of the PFC BULLETIN.

BULLETIN   is   public   domain   software.    (I   will  gladly  accept
recommendations for new features,  not  for  changes  that  are  due  to
"personal" preference.)

The PMDF files have been made part of the general distribution.

NOTE:  An old bug might have changed the protection on the BULLETIN data
files.  The protection on all data files (i.e.  B*.DAT,  *.BULLFIL,  and
*.BULLDIR) should be (RWED,RWED,,).

This  version  includes  all  necessary  modifications to work under VMS
V5.0.  However, it will still be necessary to reassemble the ALLMACS.MAR
source  under  V5  and  relink.   The V4 version will not be installable
under V5 due to a change  in  a  shared  library  which  BULLETIN  uses.
However,  relinking  by  itself  will  not  be  enough.   You  MUST also
reassemble ALLMACS.MAR.  If you only relink,  BULLETIN  can  cause  your
system  to  crash  (the  BULLCP process will do this because it uses the
routines in ALLMACS.MAR).

If you are running a version of BULLETIN older than 1.52,  this  version
will  modify  the  format of some of the data files.  (This will be done
automatically  when  the  new  version  is   run).    After   successful
installation,  the  older  versions of these files can be removed.  This
format change can take a significant amount of time  if  the  folder  is
large.   If  your  site  has large folders, it is suggested that the new
version be installed during off peak hours.   NOTE: Problems  can  occur
if  the  old  version  of BULLETIN is run after the data files have been
modified.  Such a situation is possible on a cluster where each node has
installed  the  executable  separately.   To  help  installation,  a new
command procedure INSTALL_REMOTE.COM has been  included.   This  can  be
used  to install BULLETIN on several nodes from a single node.  Read the
comments in the file for information on how to use it.

NOTE: The BULLCP process  should  be  stopped  using  the  BULLETIN/STOP
command before the new version of BULLETIN is installed.  It can then be
restarted using the BULLETIN/STARTUP command.   (The  INSTALL_REMOTE.COM
command procedure does this automatically for remote nodes.)

You will be receiving 17 files (NOT NECESSARILY IN THIS ORDER!):
	1) BULLETIN.FOR
	2) BULLETIN0.FOR
	3) BULLETIN1.FOR
	4) BULLETIN2.FOR
	5) BULLETIN3.FOR
	6) BULLETIN4.FOR
	7) BULLETIN5.FOR
	8) BULLETIN6.FOR
	9) BULLETIN7.FOR
	10) BULLETIN8.FOR
	11) BULLETIN9.FOR
	12) ALLMACS.MAR
	13) BULLCOMS1.HLP
	14) BULLCOMS2.HLP
	15) BULLET1.COM
	16) BULLET2.COM
	17) PMDF.COM

(They will be  identified  in  the  SUBJECT  header.)   BULLET1.COM  and
BULLET2.COM  are  command procedures which when run, will create several
small files.  After you run them, you can delete them.  If you have PMDF
at  your  site, you should also run PMDF.COM.  Otherwise, you can delete
it.  Read AAAREADME.TXT for installation instructions.

NOTE: When creating these files (using the EXTRACT command) from the VMS
MAIL utility, you will have to strip  off  any  mail  headers  that  are
present,  including blank lines.  A command procedure is included at the
end of this message which can be run which uses EDT to do this for  you.

                                              MRL%MIT.MFENET@NMFECC.ARPA
------------------------------------------------------------------------
V1.69

Fixed bug which caused a user to obtain full bulletin privileges if that
user created a privileged folder.

V1.68

Fixed bug which prevented SHUTDOWN messages from being deleted.

Fixed code to allow SHOW KEY/PRINT to work properly.

Fixed  folder conversion routine which was used for updating folder data
file when either upgrading from  older  version  of  BULLETIN,  or  when
increasing the number of folders.  Recent software changes broke it.

Modified user data file cleanup algorithm.  User entries are now deleted
only if both the user doesn't exist in the SYSUAF file, and the user has
not  used  BULLETIN  within  the  last  6  months.  This change solves a
problem which occurs when nodes on the same cluster use different SYSUAF
files.   The  node  that  BULLCP runs on will only see one of the SYSUAF
file, and would discard the "valid" users from the  other  SYSUAF.   The
previous  suggested  solution  for this was to use separate BULL_DIR and
BULLCPs.   However,  messages  added  with  /BROADCAST  would  be   seen
throughout  the whole cluster, and if the same message was added to both
BULL_DIRs, the message would be seen twice.

V1.67

A  bug  was  fixed  which  allowed unauthorized users to add messages to
semi-private folders by using the ADD/FOLDER command.

Modified algorithm which decides if a user  has  "BULLETIN"  privileges.
There was a problem with this algorithm, in that the SET PRIV/ID command
grants privileges  to  a  user  by  creating  an  ACL  on  BULLUSER.DAT.
BULLETIN  privileges  are  granted  by  checking  access  to  that file.
Unfortunately, for this to properly work, the protection  on  this  file
must  be  (RWED,RWED,,).   However,  due to various reasons, it has been
found that the protection of this file  has  changed  and  thus  allowed
non-authorized  users  to  obtain  privileges.   Therefore, the checking
algorithm now makes sure that access is  obtained  via  ACLs.   However,
this  will  also  affect  users  that  have  the  ability to set process
privileges to access the file.  In the past,  setting  those  privileges
was  not  necessary to gain BULLETIN privileges, only the ability to set
them was necessary.  Now, it is necessary to set them.

V1.66

The  SET  NODEFAULT_EXPIRE  command  would not work, since it conflicted
with SET NODE.  The command has  been  removed.   Removing  the  default
expiration  time  is  now accomplished by SET DEFAULT_EXPIRE 0.  Setting
the value to -1 specifies that the default is that messages will  become
permanent.

V1.65

Added  option  to  COPY,  MOVE,  FILE,  and PRINT commands to be able to
specify a range of messages, i.e. m1-m2.

Under certain conditions, BULLETIN/STARTUP could be executed  such  that
the  BULLCP  created  would  not  fully work, due to privilege problems.
BULLETIN/STARTUP has been changed so that it will work properly.

V1.64

Added SET DIGEST  command  for  a  folder.   This  causes  network  mail
messages  which  are  in digest form to be undigested, thus avoiding the
necessity of a special command procedure to do it.

Added SET STRIP command for a folder.  This caused network mail messages
to have their mail headers stripped off.

Added the /ALL and /FORM= qualifiers to the PRINT command.

Added the SPAWN command.

Fixed minor bug relating  to  displaying  remote  folder  messages  when
logging  in.   If  a  message  was added to a remote folder less than 15
minutes before a user on another node logged in, and that was  the  only
new  message  in the folder, it is possible that the message will not be
displayed.  This is because BULLCP only updates remote  folders  on  the
local  node  every 15 minutes.  The fix was that when logging in, remote
folders are checked for new messages that  have  been  added  since  the
previous login time plus 15 minutes.

If a site does not have a DECNET account, BULLETIN/START will  now  work
without  having to modify the sources.  The BULLCP process will be owned
by the process which started it.

The  PMDF  program  now  writes out the owner of the message prefixed by
IN%", so that the RESPOND command will work with requiring  modification
of the sources.

V1.63

Fixed  bug  in  deletion  algorithm.  If a deletion was interrupted, the
file could be left in  a  state  such  that  BULLETIN  would  loop  when
attempting  to  recover  from  the  interruption.   Also  optimized  the
recovery algorithm, as it would takes a long time  to  recover  a  large
folder.

Fixed  bug  regarding  remote folders.  If user flags (SHOWNEW, READNEW,
etc.) were set for a remote folder, and there was an attempt  to  access
the  remote  folder when the remote node was down, BULLETIN would assume
the folder was no longer present, and remove the flags.  BULLETIN now is
smart enough to know that the node is simply down, not removed.

V1.62

Fixed  exit  handler  to  avoid  possibility of default protection being
changed if BULLETIN is exited abnormally.

Fixed REMOVE bug relating to forgetting to  change  default  protection.
If  a  user  without process privileges attempts to remove a folder, and
the default protection for SYSTEM is not RWED, BULLETIN will crash.

The algorithm for getting the last boot time in order to determine  when
to  delete  SHUTDOWN  messages  wouldn't work under V5 if the source was
compiled under V4.  The routine has been rewritten so it  is  no  longer
dependent on the VMS version.

V1.61

Added  SHOW USER command.  Will show login times for a user (as recorded
by BULLETIN/LOGIN), and will show which users have NOLOGIN set.

Fixed SET LOGIN command, as it was not working.

V1.6

Changed message line length limit from 80 to 255  characters.   Messages
lines  longer  than  the  terminal  width will wrap when displayed.  132
column mode is now supported.

Message owner and  subject  fields  have   also  been increased  to  255
characters.

In  most  cases,  the  RESPOND  subroutine  should  no longer have to be
customized to work with a site's network  mail  routine.   The  original
message  owner  as stored in VMS MAIL message is copied in full, and the
RESPOND command will use that when responding via the MAIL utility.

The SET PRIV command now has a /ID qualifier which will allow  a  rights
identify  to  be  specified.  Thus, a user can be granted the ability to
execute  privileged  commands  without  the  need  to  have  higher  VMS
privileges.

There is now a SHOW VERSION command.

There  is  now  a  POST  and RESPOND/LIST command which will send a mail
message to the network mailing list which is associated with  a  folder,
i.e.  if  a  folder  receives  mail  from  a mailing list via the BBOARD
feature.  The address of the mailing list  is  stored  in  the  folder's
description.  There is also a /CC qualifier for both POST & RESPOND.

The ability to mark messages has been added, similar to the  command  in
the V5 version of VMS MAIL.  New commands are MARK & UNMARK, DIR/MARKED,
READ/MARK, and SELECT/MARKED.

Several  terminal  output statements could not handle message numbers of
greater than 9999.  They have been corrected.

Fixed bug which didn't allow proper display if page length was > 127.

Fixed 2 bugs associated with using the TPU editor when adding a message.
A "BULL.SCR file not found" message used to be displayed.   It  has  now
been  suppressed.  Also a bug has been fixed which would cause a copy of
BULL.SCR to remain in SYS$LOGIN, if /TEXT was specified.

Fixed bug which causes a BBOARD message to be split up  if  a  form  feed
character occurs on a line by itself in the message.

-------------------------------------------------------------------------------
$ set nover
$ edit/edt/nocommand allmacs.mar
';  Name: SETACC.MAR'
d 1:.-2
exit
$ edit/edt/nocommand bulletin.for
'C  BULLETIN'
d 1:.-2
exit
$ edit/edt/nocommand bulletin0.for
'C  BULLETIN'
d 1:.-2
exit
$ edit/edt/nocommand bulletin1.for
'C  BULLETIN'
d 1:.-2
exit
$ edit/edt/nocommand bulletin2.for
'C  BULLETIN'
d 1:.-2
exit
$ edit/edt/nocommand bulletin3.for
'C  BULLETIN'
d 1:.-2
exit
$ edit/edt/nocommand bulletin4.for
'C  BULLETIN'
d 1:.-2
exit
$ edit/edt/nocommand bulletin5.for
'C  BULLETIN'
d 1:.-2
exit
$ edit/edt/nocommand bulletin6.for
'C  BULLETIN'
d 1:.-2
exit
$ edit/edt/nocommand bulletin7.for
'C  BULLETIN'
d 1:.-2
exit
$ edit/edt/nocommand bulletin8.for
'C  BULLETIN'
d 1:.-2
exit
$ edit/edt/nocommand bulletin9.for
'C  BULLETIN'
d 1:.-2
exit
$ edit/edt/nocommand bullcoms1.hlp
'1 ADD'
d 1:.-1
exit
$ edit/edt/nocommand bullcoms2.hlp
'1 POST'
d 1:.-1
exit
$ edit/edt/nocommand bullet1.com
'$set nover'
d 1:.-1
exit
$ edit/edt/nocommand bullet2.com
'$set nover'
d 1:.-1
exit
$ edit/edt/nocommand pmdf.com
'$set nover'
d 1:.-1
exit
