From: IN%"BULLETIN@PFCVAX.PFC.MIT.EDU" 26-OCT-1989 18:48:30.28 To: TNIELAND CC: Subj: BULLETIN utility. Return-path: BULLETIN@PFCVAX.PFC.MIT.EDU Received: from AAMRL.AF.MIL by FALCON; Thu, 26 Oct 89 18:48 EST Received: from PFCVAX.PFC.MIT.EDU by AAMRL.AF.MIL; Thu, 26 Oct 89 18:43 EDT Date: Thu, 26 Oct 89 17:53 EST From: BULLETIN@PFCVAX.PFC.MIT.EDU Subject: BULLETIN utility. To: TNIELAND X-VMS-To: IN%"@AAMRL.AF.MIL:TNIELAND@FALCON" Message-id: <325D8B33AADF002445@PFCVAX.PFC.MIT.EDU> X-Envelope-to: @AAMRL.AF.MIL:TNIELAND@FALCON You are about to receive version 1.75 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.) NOTE: The following commands can be sent to BULLETIN@PFCVAX.PFC.MIT.EDU: SEND ALL Sends all bulletin files. SEND filename Sends the specified file. BUGS Sends a list of the latest bug fixes. HELP or INFO Sends a brief description of BULLETIN. There is also a documentation file written by Chris Tanner from Chalk River Nuclear Labs which can be used as handout. To obtain this, request the file BULLETIN.DOC. 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@PFCVAX.PFC.MIT.EDU ------------------------------------------------------------------------ V1.75 A bug in the data file cleanup algorithm was fixed which destroys the acls on the folder files, therefore wiping out private and semiprivate designations. This was introduced several versions back in order to fix a problem with a user whose BULL_DIR directory had SET DIRECTORY/VERSION=1 was set, as the previous algorithm created temporary files with the same name as the old data files. The temporary files are now creating with a different name, which was not causing the acls to be propagated. A subroutine has been added to copy the acls. V1.74 Added /ALL qualifier on BULLETIN command. This suppresses the automatic setting of NOLOGIN for users which have DISMAIL set. It also removes the NOLOGIN setting if any account already has it set. Fixed bug in BBOARD digest code. Crash would occur if the FROM line was empty in the digested message. Modified BULLETINN_MASTER to send message to POSTMASTER in the event that PMDF mail was sent to a non-existant folder. Previously, the mail would simply disappear without any recording of the error. Fixed bug which caused entering command SHOW FOLDER/ALL to crash BULLETIN. V1.73 Modified the affect of the SET STRIP command. It now strips all headers which appear at the top of the message. Previously it stopped stripping headers as soon as it encountered a blank line. Fixed the MAIL command. It was unable to accept a quote (") in the username. It also was unable to send mail to more than one user (even though it accepted a username list.) Fixed the conversion routines which upgraded file formats from older bulletin versions (i.e. circa 1986). V1.72 Corrected the corrections I applied in V1.71. There were a few minor bugs, one of which can cause BULLETIN_MASTER to crash. Fixed bug which prevented the POST and RESPOND commands from working if the subject line contained a quotation mark ("). Fixed bug in POST which caused message to be sent to owner of message if /EDIT/TEXT is specified. Fixed bug in MOVE command which prevented messages from being deleted from original folder if a range of messages is specified. V1.71 The PMDF interface was not placing the proper address into the owner field of the message. The last forwarding address was being entered rather than the address in the From: field of the message. This has been fixed. Also, if a Reply-to: field exists, it will be used as the owner rather than the From: address. Additionally modified code to correctly store usernames in digested folders so that messages can be RESPOND'ed to. Rebuild both BULLETIN and BULLETIN_MASTER sources, and remember to relink and reinstall BULLETIN_MASTER.EXE in order for these changes to be installed. V1.70 Added /REVERSE qualifier for SEARCH command. Added ability to specify a nodename when using the /SHUTDOWN option. This is useful in a cluster environment. Normally, the message would be deleted only after the node on which the message was added was rebooted. Now, any node on the cluster can now be specified. 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