1 SDMENU The SDMENU utility has been designed to allow for the easy construction of software kits in VMSINSTAL format. Since these kits may be built on any DEC media, the SDMENU utility allows you to specify which device you want to use to build your kit. The SDMENU procedure is invoked as follows: $ @SD$DIR:SDMENU [device or utility] [option,...] [root] 2 DEVICE The P1 parameter is used to define the default device as shown in the main window of the SDMENU utility. This device must be either a valid tape drive or directory. A logical may be used to point to the tape drive or directory. The default is MSA0: for all Vaxes except MicroVaxs. The default is MUA0: for all MicroVaxs. 3 devices The SDMENU will support any tape drive that runs on a VAX. This includes the TU58 cartridge and the TK50 tapes. Smaller disk such as the 8" and 5 1/4" floppies may also be used. Simply enter the appropriate device in then CD option and the SDMENU will take the appropriate steps. The CSA0: console device may be used (in the case of 11/780s) but this is not recommended since it will be needed in the case of a re-boot. If you do decide to use the CSA0: console, the SDMENU will make sure to remount the boot floppy properly before exiting. 2 DIRS The SDMENU directory structure is designed to control the kits such that two kits can never be named the same. We also use the sub- directory name to designate the kit name when invoking SPKITBLD. The other directories that are in the SD$DIR standard are: ------------------------------------------------------------------ SD$ROOT:[ALPHA] Used for pre-release kits before release to BETA test. SD$ROOT:[BETA] Used for pre-release kits pending the approval of the 1st Article. SD$ROOT:[FIRST] Used for kits that are ready for First Article. ------------------------------------------------------------------ SD$ROOT:[INTERNAL] Used for kits distributed in-house only. ------------------------------------------------------------------ SD$ROOT:[INSPECT] Used to keep the 1st Article listings for the IT option. SD$ROOT:[HISTORY] Used to keep all old SDMENU.LOG files just in case we want to track down a problem. SD$ROOT:[LOG] Used for log files if SDMENU is run in BATCH and DEBUG mode (i.e the SDMENU$DEBUG logical is defined). SD$ROOT:[COM] Used to save the com files is SDMENU is run in BATCH and DEBUG mode. ------------------------------------------------------------------ Other than these directories, all other sub-directories are used for kits. These directories have (S:RWED,O:RWED,G:R,W:R) protections. The files in the kits should have [001,004] ownership and (S:RWED,O:RWE,G:RWE,W:RWE) protections. 2 INTRO The SDMENU utility is used by both Manufacturing and Development to build kits for installation using the utility VMSINSTAL. o VMSINSTAL is a standard utility, supported by Digital, that resides on every Vax/VMS operating system. It is located in SYS$UPDATE. o If the SDMENU utility has been set up properly, any user on the system should be able to run SDMENU by simply typing SDMENU at the $ prompt. o The main prompt is used to enter a variety of commands designed to help you build kits on any device you want and from any root directory. o Use this help facility to learn about the various features of SDMENU. 2 KITS Each kit consists of a clearly defined number of files that will install on the customer system. These files should never be customized since the customer will get confused that one kit IGES014 is different from another kit IGES014. Much care should be taken to define the product such that options as such do not occur. Options can be marketed as separate kits or installed as an optional savesets (understanding that the customer can either choose to install the option or not). Each kit has its own sub-directory in the SD$DIR directory. The sub- directory name is the kit name. Therefore IGES014 will reside in DUA0:[SD.IGES014] for example. We have settled on the protection scheme (S:RWED,O:RWE,G:RWE,W:RWE) for all files in the kit directories. This protection scheme may be set manually or through the use of a DEFAULT_PROTECTION ACL on the SD$DIR directory. We like the later scheme since SPKITBLD will strip off all ACLs before moving the files to tape. 2 LOGFILE The SDMENU logfile will record every transaction made from the SDMENU utility. You may list this file from the SDMENU display by typing LL at the main prompt. The recorded fields include: Day-Month-Year (Time stamp for the log entry) Hour-Minute (Time stamp for the log entry) Function (Depends on the command) Device (The target distribution device) Root (The source root - kit location) Kit Name (If appropriate) Username (Process Username) PID (Process Identification Number) UIC (Recorded during Login and Logout) Elapsed Time (Recorded in minutes:seconds) Terminal (Terminal Device name) This log file is very useful to monitor which kits were built, when, and by whom. The file also will record all commands given from the main menu including any help commands given at the prompts. This information is used by the designers to help tune the SDMENU utility. 2 LOGICALS The logicals involved with the SDMENU help it perform its necessary tasks transparent to the user. These logicals are: SD$DIR - SDMENU Directory SD$ROOT - Software Distribution Root Directory SD$PRINT_IP - Inspection Report Printer SD$PRINT_TAPE - Tape Label Printer SD$PRINT_TK50 - TK-50 Label Printer SD$MAIL - SDMENU error reporting VMS MAIL distribution SD$NODES - List of nodes for the SDINSPECT file distribution SDMENU$VERIFY - Runs SDMENU in verify SDMENU$DEBUG - Saves the LOG and COM files when in BATCH mode 3 SD$DIR The SD$DIR logical will point to the directory that contains the software distribution kits. This logical must be defined as a SYSTEM logical. $ DEFINE SD$DIR /SYSTEM DUA0:[SD] 3 SD$ROOT The SD$ROOT logical is used like the SYS$SYSROOT logical to point to the root directory of the SD$DIR directory. Using this root logical allows the SDMENU utility to find kits easily. You will notice that in the backup listing of the kits, the SD$ROOT logical is stripped off leaving a very clean listing. This logical must be defined as follows: $ DEFINE SD$ROOT /SYSTEM /TRANS=(CONEAL,TERMINAL) DUA0:[SD.] Note: If this logical is not defined and a privileged user runs SDMENU, then logical SD$DIR will be defined as the default directory. If the user does not have SYSNAM, the SDMENU will issue an error and abort. 3 SD$PRINT_IP The SD$PRINT_IP logical is used to specify which printer is used for the IP (Inspection to Printer) report. If this logical is not assigned, the SYS$PRINT printer is used. This logical does not have to be defined as a system logical. $ DEFINE SD$PRINT_IP /SYSTEM LPA0: 3 SD$PRINT_TAPE The SD$PRINT_TAPE logical is used to specify which printer should be used for the formatted label. If the SD$PRINT_TAPE logical is assigned, the SDMENU will output a nicely formatted label if you use the PL option. The labels are copied to the printer device (using a terminal device works just fine). If the printer is busy (printing another label?), SDMENU will loop and keep trying. The labels must have the standard McDonnell Douglas format. $ DEFINE SD$PRINT_TAPE /SYSTEM TTA4: 3 SD$PRINT_TK50 The SD$PRINT_TK50 logical is used to specify which printer should be used for a formatted label. If the SD$PRINT_TK50 logical is assigned, the SDMENU will output a nicely formatted label if you use the PL option. The labels are copied to the printer device (using a terminal device works just fine). If the printer is busy (printing another label?), SDMENU will loop and keep trying. The labels must have the standard McDonnell Douglas format. $ DEFINE SD$PRINT_TK50 /SYSTEM TTA4: 3 SD$MAIL The SD$MAIL logical is used to define the mail distribution for error reports from the IF option. If this logical is assigned, it must be a SYSTEM logical that points to a distribution list for VMS MAIL. $ DEFINE /SYSTEM SD$MAIL "SYSTEM,SD_COORD" If an error occurs during the comparison phase of the IF option, the differences file will be mailed to the distribution. NOTE1: DO NOT use remote usernames. Use the FORWARD option in MAIL instead. In the case of an error, SDMENU will send the MAIL to the local accounts instead of the FORWARDING address. NOTE2: If SD$MAIL is not defined, the SYSTEM account will receive the distribution. 3 SD$NODES The SD$NODES logical is used to define the nodes that will receive the inspection file from then BI function. $ DEFINE SD$NODES "SYSA,SYSB" NOTE: If this logical is not defined, the host node will be sent the file. If the host node does not have DECnet or DECnet is not active, the file will not be copied. 3 SDMENU$VERIFY The SDMENU$VERIFY logical is used to set the SDMENU utility into a "SET VERIFY" condition to debug problems. Otherwise, verify is specifically turned off. $ DEFINE SDMENU$VERIFY "1" 3 SDMENU$DEBUG The SDMENU$DEBUG logical is used to capture the LOG and COM files used when SDMENU is run in BATCH mode. If this logical is defined, the kit.COM file is stored in SD$ROOT:[COM] and the kit.LOG file is stored in SD$ROOT:[LOG]. $ DEFINE SDMENU$DEBUG "1" 2 OPTION The P2 parameter is used for options which are entered as a list separated by commas. If this parameter is ommitted, and you want to enter the default root directory, you may enter a blank "" and then specify the root directory. E - Expert mode; Don't display the options in the main menu B - Submit Batch mode (kit build is submitted batch) The default is no options (i.e. display the options and enter interactive mode). 2 ROOT The P3 parameter is used to define the root directory. This value MUST be specified as either RELEASED, ALPHA, BETA, FIRST, INTERNAL, or LOGIN. If you specify LOGIN, the SDMENU utility will look in your own SYS$LOGIN directory for kits. If you specify RELEASED, the SDMENU utility will look in the SD$DIR (system logical) [.RELEASED] sub-directory for kits. The default is RELEASED. 2 SAVESETS Most simple kits will be built into one saveset. This saveset may be created on tape, disk, or floppy. The saveset name must be the product name with a .A extension. For example: IGES014.A For more complicated installations, additional savesets may be used with extensions starting with .B and alphabetically incrementing. 3 examples The UGII V3.2 kit consisted of two products built into four savesets. When this type of installation is required, the SDMENU utility must be modified to handle the exception. The UGII V3.2 installation had the following savesets... TMOD010.A (Terminal Modules kit V1.0) UGII032.A (Unigraphics II kit V3.2) UGII032.B (User Function files V3.2) called by UGII V3.2 kit UGII032.C (UNIPIX files V3.2) called by UGII V3.2 kit 2 SYMBOL The SDMENU utility may be invoked in a variety of ways. If you simply run the utility by the command: $ @SD$DIR:SDMENU The SDMENU utility will use pre-defined defaults for the distribution device (MSA0: or MUA0:) and source directory (SD$ROOT). The label will display (or print) and the backup will be performed with a /LOG qualifier. A symbol may be defined to run the SDMENU as follows: $ SDMENU :== @SD$DIR:SDMENU P1 parameters can be used in the symbol to define the default device and root directory settings. 3 parameters P1 - Device name (i.e. MTA0: or SYS$LOGIN) P2 - Options B - Submit kit build BATCH E - Expert mode P3 - Root directory (RELEASED,ALPHA,BETA,FIRST,INTERNAL,LOGIN) Therefore, the SDMENU symbol could be defined as follows: $ SDMENU :== @SD$DIR:SDMENU MUA0: E RELEASED The P1 paramters will only affect the default settings when the SDMENU is run. The P1 and P3 settings may be changed while within the SDMENU utility. The P2 options cannot be changed until the symbol is re-defined. 3 examples To use any of the following examples, define the SDMENU symbol either in the system wide login (pointed to by SYS$SYLOGIN) or in individual LOGIN.COM files. $ SDMENU :== @SD$DIR:SDMENU MSA0: B (Kits are built on MSA0: is batch mode.) $ SDMENU :== @SD$DIR:SDMENU SYS$LOGIN BE (Kits are built in your login directory in batch mode. The SDMENU display will not show the command portion of the menu.) $ SDMENU :== @SD$DIR:SDMENU SYS$LOGIN "" LOGIN (Kits are to be built in your login directory from your sys$login kits instead of the system kits.) 2 UTILITY The SDMENU.COM command file may be invoked directly to use some of the built in functions. To use these functions, you will probably want to define some symbols as show below: $ SDINSPECT :== @SD$DIR:SDMENU SDINSPECT $ SPKITBLD :== @SD$DIR:SDMENU SPKITBLD 2 BI The BI option will be available to those users with SETPRIV privilege. This option will build an inspection file and allow you to distribute the file among several nodes in the network (edit the SDINSPECT.COM file if necessary). The file SD$DIR:SDINSPECT.COM is used. The prompt will appear as follows: * What kit [Main Menu]: 2 CB Change the mode to BATCH. Kits will be submitted to the batch queue to aid in cutting multiple tapes from a single terminal. The mode will display after the time in the main display. 2 CD The CD option is entered at the main prompt: * Which kit would you like to build [EXIT]: CD Notice that the default entry is in []. Therefore, if you press the key, the SDMENU utility will exit and you will be returned to the $ prompt. By typing CD, you will be prompted for a distribution device. * Distribution device [MSA0:]: As you can see, the default is in brackets. Therefore, to select MSA0: as your new distribution device, press or enter another choice. The distribution device is then allocated such that no other user can use that device while you are working with it. If the device is already allocated, you will be warned and allowed to choose another device. 3 parameters The distribution device may be any tape drive or disk device. You may also select a directory. This entry can be either the absolute device or a logical. For example the following are acceptable responses (given you have these devices on your system): * Distribution device [MSA0:]: SYS$LOGIN * Distribution device [MSA0:]: DUA1: * Distribution device [MSA0:]: HSC000$DUA0: * Distribution device [MSA0:]: DJA1:[TESTKIT] * Distribution device [MSA0:]: MSA0: * Distribution device [MSA0:]: UGMT0 3 CONSOLE The CSA1 console may be used as a distribution device. If the console is not connected and you do not have the privs to do a SYSGEN connect, the kit build will fail. To make the CSA1: device available, enter the following commands: $ MCR SYSGEN SYSGEN> CONNECT CONSOLE 3 FLOPPY The SDMENU utility may be used to build kits on 8" floppy. Just select the correct device from the CD option. The SPKITBLD will automatically build the kit correctly. 3 SYS$LOGIN Choosing SYS$LOGIN from the CD prompt allows you to build a kit in your own SYS$LOGIN directory. The kit will be named for example IGES014.A and will be a REAL saveset on disk. This saveset can be used to install the kit in the same way that kits are used from tape. When you invoke VMSINSTAL and it asks for a distribution device, enter SYS$LOGIN. This is also a great method for testing the kit building procedure without juggling tapes. 2 CE This option will change your mode to Expert. In the Expert mode, the main SDMENU display will NOT show the SDMENU commands. In the expert mode, the SDMENU does NOT show any log messages. If you enter CE while in Expert mode, the mode will revert back to Interactive. 2 CS The CS option allows you to change where the SDMENU utility looks for kits. If you enter RELEASED, the SDMENU utility will show only RELEASED kits. If you enter BETA, the SDMENU utility will show only UNRELEASED or BETA release kits. All kits pending First Article approval will be located in the FIRST section. Kits that may be distributed IN-HOUSE only are located in the INTERNAL section. To accept the default, press the key at the prompt: * Enter the Source Directory [RELEASED]: o Enter RELEASED to look in the RELEASED Software Distribution directory for kits. o Enter ALPHA to look in the ALPHA directory for unreleased kits. o Enter BETA to look in the BETA directory for unreleased kits. o Enter FIRST to look in the FIRST directory for kits pending First Article approval. o Enter INTERNAL to look in the INTERNAL directory for unreleased kits. o Enter LOGIN to look in your own SYS$LOGIN directory for kits. o Enter any valid directory specification to look in that directory for kits. 2 EX The EX option is identical to the EXIT command. This command will cleanup your SDMENU environment and exit the utility. 2 HE The HE command invokes the VAX/VMS HELP Facility to display information about a SDMENU command or topic. In response to the "SDMENU Subtopic?" prompt, you can: o Type the name of the command or topic for which you need help. o Type a question mark (?) to redisplay the most recently requested text. o Type a asterisk (*) to display all help under the catagory. o Press the RETURN key one or more times to exit from HELP. You can abbreviate any topic name, although ambiguous abbreviations result in all matches being displayed. 2 IT The IT option allows you to inspect a tape to the 1st Article listing which is stored in the SD$ROOT:[INSPECT] directory. After mounting the tape to be inspected on the distribution device and placing the device on-line, enter the IF option at the main prompt. The tape will be read and you will then be prompted for the kit name (for example): * What kit are you inspecting [IGES014]: This question is needed to determine which of the SD$ROOT:[INSPECT] listings to use to compare this tape. If any difference is found, an error will be reported. This error is also mailed to the SD$MAIL distribution if this logical is assigned. 3 error In case of an error, please check that you have: a. Marked the tape correctly? b. Enter the correct kit name at the prompt? If the tape is marked correctly and the kit name has been entered correctly, this is a SERIOUS error that must be reported at once to your supervisor. If the SD$ROOT:[INSPECT] file does not exist, it should be created by the individual responsible for adding products to this distribution. 2 LB List the SDMENU$BATCH queue. All kits that are submitted from this procedure will be submitted into the SDMENU$BATCH queue. Look for the kitname in the batch queue listing. 2 LK The LK option will list all of the available kits in your specified source directory. This option will examine all of the sub-directories of the source directory and display the kit name portion of the directory only if the last three digits are numbers. 2 LL The LL option will either type the SD$DIR:SDMENU.LOG file or search the file for any occurance of a string. This log file records every transaction made from the SDMENU utility. For more information on the log file look under HELP SDMENU LOGFILE. For example, to search for every IGES kit, simply enter IGES at the prompt. To search for a specific kit entry, enter the full kit name. Type EXIT to go back to the main menu or ALL to type all of the log entries. If you enter the keyword TODAY, all of today's entires will be listed. 3 fields The recorded fields include: Day-Month-Year (Time stamp for the log entry) Hour-Minute (Time stamp for the log entry) Function (Depends on the command) Device (The target distribution device) Root (The source root - kit location) Kit Name (If appropriate) Username (Process Username) PID (Process Identification Number) UIC (Recorded during Login and Logout) Elapsed Time (Recorded in minutes:seconds) Terminal (Terminal Device name) 2 LO The LO option will cleanup your SDMENU environment and LOG you out of the system. 2 LP The LP option allows you to backup/list a tape and print the listing on the SD$PRINT_IP device (or on SYS$PRINT if the SD$PRINT_IP locigal is not defined). The SDMENU utility will continue to list the tape through all of its savesets. 2 MA The MA optin will startup the Vax/VMS MAIL utility. 2 PH The PH option will startup the Vax/VMS Phone utility. 2 PL The PL option allows you print a label for any kit supported by the SDMENU utility. Simply enter the kit name at the prompt and the label will print to your SDMENU label printer. NOTE: If your current device is a TK-50, the SDMENU will attempt to print on the TK-50 printer. 2 SP The SPawn command will take you to DCL efficiently to execute any DCL command. To return to the SDMENU utility, simply LOGOUT of the SPAWN'd process.