Document revision date: 30 March 2001

## POLYCENTER Software Installation Utility Developer's Guide

Previous | Contents | Index

## loadable image

> The loadable image statement places an image into the system loadable images table, SYS$LOADABLE_IMAGES:VMS$SYSTEM_IMAGES.DATA, and also into SYS$UPDATE:VMS$SYSTEM_IMAGES.IDX for compatibility with the System Management utility (SYSMAN).

### Syntax

loadable image image product product
[ step { init | sysinit } ]
[ message text ]
[ severity { fatal | success | warning } ] ;

### Parameters

> #### image

> Indicates the file name of the system loadable image. The name you specify must be defined in the same product description and must have bootstrap scope and product or assembly lifetime.

> #### product product

> Indicates the product mnemonic (as a single quoted or unquoted string of 1 to 8 characters) that uniquely identifies the loadable image. For user-written images, this should typically contain the string _LOCAL_.

### Options

> #### step init

> Indicates that the system load the image during the INIT step of the booting process.

> #### step sysinit

> Indicates that the system load the image during the SYSINIT step of the booting process. This is the default.

> #### message text

> Indicates the message you want displayed using the severity option. The message must be a single quoted or unquoted string. Case is significant. By default, the severity option displays the message "system image load failed."

> #### severity fatal

> Indicates that if an error occurs while the image is being loaded, the system displays the message and bugchecks; if no error occurs, processing continues.

> #### severity success

> Indicates that the system continue processing and not display a message regardless of whether an error occurs while the image is being loaded.

> #### severity warning

> Indicates that if an error occurs while the image is being loaded, the system displays the message and continues; if no error occurs, the system continues and does not display the message. This is the default.

### Description

> The loadable image statement places an image into the system loadable images table, SYS$LOADABLE_IMAGES:VMS$SYSTEM_IMAGES.DATA, and also into SYS$UPDATE:VMS$SYSTEM_IMAGES.IDX for compatibility with the System Management utility (SYSMAN).

> The loadable image statement specifies a loadable image module managed object that has the following characteristics:

> - It must be unique within the global scope.
> - It has assembly lifetime and global scope.
> - It does not recover from managed object conflict.

> The loadable image statement also refers to a file managed object specified using the image parameter.

See Also file

### Example

    loadable image DDIF$RMS_EXTENSION product _LOCAL_
        message "DDIF Extension not loaded"
        severity warning ;

> The statement in this example places the user-written image DDIF$RMS_EXTENSION in the system loadable images table. If an error occurs while loading this image, the system displays the error message "DDIF Extension not loaded" and continues.

## logical name

> The logical name function tests whether a specified logical name is defined in the default logical name table LNM$SYSTEM_TABLE or in the table specified by the function.

### Function Syntax

< logical name name [ equals value ] [ table table_name ] >

### Parameter

> #### name

> Indicates the logical name string.

### Option

> #### equals value

> Indicates the equivalence name string of the logical name. If you do not specify the equivalence name, the presence of the logical name in the default or specified logical name table is sufficient to make the function evaluate to TRUE.

> #### table table_name

> Indicates the name of the logical name table in which the logical name is to be searched. If the name of the table is not specified, LNM$SYSTEM_TABLE becomes the default table name.

### Description

> The logical name function tests whether the specified logical name is defined. The value of the function is true if the following conditions are met:

> - No options are specified, and the logical name has been found in the LNM$SYSTEM_TABLE logical name table. The equivalence name is not probed in such an instance.
> - An equivalence name is specified, no logical table name is listed, the logical name has been found in the LNM$SYSTEM_TABLE logical name table, and the equivalence string from the table matches the equivalence string specified in the function.
> - Both options are specified, the logical name has been found in the user specified table, and the equivalence string from the table matches the equivalence string specified in the function.
> - The equivalence name is not specified and the logical table name is provided by the user. If the logical name is found in the user-specified table, the function evaluates as true and the equivalence name is not probed.

> The function evaluates to false in any other case.

> The utility evaluates the logical name function immediately after processing the execute preconfigure statement. This gives you the opportunity to define a logical name before the configuration phase. You can use this logical name to affect the processing of statements within an if group during the configuration or the execution phase of an installation, configuration, or reconfiguration operation.

See Also execute preconfigure
if

### Example

    execute preconfigure "@PCSI$SOURCE:[SYSUPD]EXEC_PREC.COM"
                 uses [SYSUPD]EXEC_PREC.COM interactive ;
    if ( < logical name YOUR_ANSWER equals MENU_ITEM_1 > ) ;
                 file [SYSEXE]FILE1.EXE ;
    else if ( < logical name YOUR_ANSWER equals MENU_ITEM_2 > ) ;
                 file [SYSEXE]FILE2.EXE ;
    else if ( < logical name YOUR_ANSWER equals MENU_ITEM_3 > ) ;
                 file [SYSEXE]FILE3.EXE ;
    end if ;

> The utility limits your configuration options to accept only true or false values. This example illustrates how to program multiple choice questions.

> The execute preconfigure statement runs commands from the EXEC_PREC.COM file in an interactive mode. The user is prompted to select one of three menu items. The answer is stored by the command procedure as an equivalence name to a logical name YOUR_ANSWER. The logical name is evaluated immediately after the execute preconfigure statement and the result is stored internally. During the execution phase, the logical name function is evaluated and, based on the result, the if group installs the appropriate file.

## module

> The module statement adds or replaces one or more modules in a command, help, macro, object, or text library file.

### Syntax

module file type type module (module_name[,...])
[ [no] generation generation ]
[ [no] globals ]
[ library library ]
[ [no] selective search ] ;

### Parameters

> #### file

> Indicates the relative file specification of the file that contains the modules.

> #### type type

> The library type. Table 7-7 lists the keywords you can specify with this parameter.

> Table 7-7 Library Types for Module Statement
> Keyword | Library Type | Default Library File
> --- | --- | ---
> Command | Command definition library | [SYSLIB]DCLTABLES.EXE
> Help | Help library | [SYSHLP]HELPLIB.HLB
> Macro | Macro library | [SYSLIB]STARLET.MLB
> Object | Object library | [SYSLIB]STARLET.OLB
> Text | Text library | [SYSLIB]STARLETSD.TLB

> #### module module_name

> The list of module names you are specifying.

### Options

> #### [no] generation generation

> Indicates that the file has an explicit generation number. Specify the number as an unsigned integer in the range of 0 through 4294967295. Refer to the Description section for the meaning of this value. By default, the file does not have an explicit generation number (no generation), which is equivalent to zero.

> #### [no] globals

> Indicates whether the global symbol names of the modules you are inserting into an object library are included in the global symbol table. You can use this option with object libraries only. By default, the global symbols of the module are inserted into the global symbol table.

> #### library library

> Indicates the relative file specification of the library. The file you specify must be a library of the type you specified with the type parameter.

> #### [no] selective search

> Indicates whether the input modules being inserted into the library are available for selective searches by the linker (by default they are not). You cannot use this option with the command and help libraries. For more information about selective searches, see the OpenVMS Linker Utility Manual.

### Description

> The module statement adds or replaces one or more modules in a command library file, or a single module in a help, macro, object, or text library file. The module statement adds the module name to the product database. You do not need to use a register module statement in addition to a module statement to register the module name.

> Use the module parameter to specify the name of the module object. For a help, macro, object, or text library, the name specified with the module parameter should be the same as the name of the module itself.

> The module object has assembly lifetime, and its scope is the same as the library.

> A module inserted into a command, help, object, text, or macro library can conflict with another module having the same name that is already resident in the library. Two types of module conflict can occur:

> - An inter-product module conflict occurs when two or more products provide a module with the same name.
> - An intra-product module conflict occurs when two or more patch or partial kits for a product update the same module.

> The utility resolves a module conflict by comparing the generation numbers of the modules involved.

> A generation number is an optional attribute you supply on either the module or register module statement using the generation option. A generation number can be any integer in the range of 0 to 4294967295. If you do not specify a generation number, its default value is 0.

> Table 7-8 Resolving Module Conflict with Generation Numbers
> If the generation numbers | Then
> --- | ---
> Are different | The module with the largest non-zero number is selected.
> Are the same and are not zero | The module from the kit replaces the previously installed module.
> Are zero | Unresolvable file conflict, an error is reported to the user. Note that for V6.1-V6.2 a module with an explicit generation number of 0 might be selected over a module with a default value of 0.

> Generation information is not used for intra-product conflict detection when a product is upgraded. In this case, all modules from the old version are deleted, and new modules from the kit are placed on the target disk. However, generation information is used during an upgrade for inter-product conflict detection when any modules from the product conflict with modules from another product.

See Also file
register module

### Examples

#1
    module [SYSUPD]CDD.CLD type COMMAND module CDD ;

> The statement in this example creates the command module CDD in the default command library [SYSLIB]DCLTABLES.EXE using the file [SYSUPD]CDD.CLD.

#2
    module [SYSUPD]HELP.HLP type HELP module HELP ;

> The statement in this example creates the help module in the default help library [SYSHLP]HELPLIB.HLB using the file [SYSUPD]HELP.HLP.

#3
    module [SYSUPD]SPI$CONNECT.MAR type MACRO
        library [SYSLIB]LIB.MLB module SPI$CONNECT ;

> The statement in this example creates the macro module SPI$CONNECT in the macro library [SYSLIB]LIB.MLB using the file [SYSUPD]SPI$CONNECT.MAR.

#4
    module [SYSUPD]COBRTL.OBJ type OBJECT module COBRTL;

> The statement in this example creates the object module COBRTL in the default object library [SYSLIB]STARLET.OLB using the file [SYSUPD]COBRTL.OBJ.

#5
    module [SYSUPD]PROTOTYPE_BOOK.TXT type TEXT
        library [SYSLIB]LPS$FONT_METRICS.TLB module PROTOTYPE_BOOK;

> The statement in this example creates the text module PROTOTYPE_BOOK in the text library [SYSLIB]LPS$FONT_METRICS.TLB using the file [SYSUPD]PROTOTYPE_BOOK.TXT.

## network object

> The network object statement uses a command procedure to create a DECnet network object.

### Syntax

network object name with (parameters,...) ;

### Parameters

> #### name

> Indicates the name of the network object. The network object name is passed to the command procedure as P1.

> #### with (parameters,...)

> Indicates the list of parameters that are passed to the command procedure that creates the network object. Each parameter must be a single quoted string that specifies P2 through P5, in order. Refer to the Description section for the meaning of the parameters.

### Description

> The network object statement uses a command procedure (SYS$UPDATE:PCSI$CREATE_NETWORK_OBJECT.COM) to create network objects. The command procedure determines whether DECnet Phase IV or DECnet--Plus is running on the system. If Phase IV is being used, the command procedure runs the Network Control Program (NCP) utility to create the network object. Otherwise, it runs the Network Control Language (NCL) utility.

> In the case of DECnet--Plus, the network object created during the product installation will exist only in memory. It is recommended that DECnet--Plus objects be supplied in the form of an NCL script with a file statement and activated with a product startup procedure.

> The utility passes the following parameters to the command procedure:

> - P1 specifies the name of the network object (using the name parameter).
> - P2 specifies the object number (for DECnet Phase IV systems only).
> - P3 specifies the user name associated with the object. If you specify a user name, it must already exist.

>   Note The password of the specified user account is changed when the network object is created by PCSI$CREATE_NETWORK_OBJECT.COM. The new password is system generated, and can be viewed with the `NCP> SHOW OBJECT...` command.

> - P4 specifies optional parameters to use with the NCP command DEFINE OBJECT for DECnet Phase IV objects.
> - P5 specifies optional parameters to use with the NCL command CREATE SESSION CONTROL APPLICATION for DECnet--Plus objects.

> When you remove a product that created network objects, the POLYCENTER Software Installation utility uses a command procedure (SYS$UPDATE:PCSI$DELETE_NETWORK_OBJECT.COM) to delete network objects associated with your product.

> Note In a future version, the utility may create and delete these managed objects directly without the use of command procedures. If this is the case, these statements will continue to function, but the command procedures may not be maintained or shipped with future versions of the utility.

> The network object statement specifies a network object managed object that has the following characteristics:

> - Its name is the value of the name parameter. The name must be unique with respect to all network object names in the processor scope.
> - It has operating lifetime and processor scope.
> - Managed object conflict is not recoverable.

See Also file
execute start...stop

### Examples

#1
    network object k$test with ("number 107", "user KRYPTON") ;

> In this example, the network object statement creates a network DECnet Phase IV object named k$test. Its object number is 107 and it will execute as user [KRYPTON].

#2
    file [SYSMGR]NETOBJ_TEST.NCL;
    file [SYS$STARTUP]PRODUCT_STARTUP.COM ;

    execute
        start "@sys$startup:product_startup.com"
        stop  "";

> In this example, the first file statement supplies the DECnet--Plus NCL script file. This script can contain NCL directives that create a DECnet--Plus network object, that is, session control application. For example, the script file might contain the following NCL commands:

>        .
>        .
>        .
>     delete session control application k_test
>     create session control application k_test
>     set session control application k_test
>        .
>        .
>        .

> where k_test is the network object name.

> The second file statement supplies a command procedure, which is executed as a result of processing the execute start statement during the product installation. The startup command procedure may contain the following DCL command that forces the NCL script file to be executed:

>        .
>        .
>        .
>     $ MCR NCL DO NETOBJ_TEST.NCL
>        .
>        .
>        .

> The startup command procedure can be placed later into the system startup procedure to execute each time the user's system is rebooted.

## option

> The option statement conditionally processes a group of statements based on the user's response to a question. The option and end option statements form an option group.

### Statement Syntax

option name [ default value ] [ with helptext ]

; [ PDL-statements ]

end option

;

### Function Syntax

< option name [ default value ] [ with helptext ] >

### Parameter

> #### name

> Indicates, as a quoted or unquoted string, the name of the associated PTF text module. This text module contains the text of a question that will be displayed to the user. The name you specify can be from 1 to 31 characters and must be unique among all text modules in the PDF; that is, two PDL statements cannot refer to the same text module.

### Options

> #### default value

> Indicates the default value for the option. The value must be either 1 (true), 0 (false), yes, no, true, or false; the default is 1 (true).

> If you specify an option statement with the default value 0, and the option group contains other option statements, any defaults for the enclosed option statements apply only when the top-level option statement is selected.

> #### with helptext

> Forces the display of the full help text module during the installation or configuration of the product. See Section 7.1 for usage constraints.

> #### PDL-statements

> Any product description language statement or a group of statements described in this reference section can be used, except the product and end product statements.

### Required Terminator

end option ;

### Description

> Statement

> The option statement conditionally processes a group of statements based on the user's response to a question. The user is prompted to choose options during the configuration phase of an operation. If the user accepts an option, the utility executes the statements contained in the option group. If the user declines the option, the utility skips these statements.

> You can nest option groups. The user must process and select an option group containing other option statements before any inner option statements are processed. That is, if the user declines an option, any option groups contained within it are also treated as being declined.

> When an option is processed, the utility displays the prompt text line from the specified module in the PTF and waits for a response. The response can be Yes, No, or Return to accept the default answer.

> Default answers come from one of three places:

> - A product configuration file (PCF), if one is supplied with the /CONFIGURATION=INPUT=pcf-name qualifier on the command line of a PRODUCT INSTALL, PRODUCT CONFIGURE, or PRODUCT RECONFIGURE command.
> - The product database (PDB) for an upgrade of a previously installed product where the PDB contains the answers from the previous installation.
> - The product description file (PDF) from the product kit.

> If an input PCF is used and it contains an answer for an option, that answer is the default. Depending on the entry in the PCF, the user may or may not be allowed to change the default value.

> If no input PCF is supplied, or if the input PCF does not contain an answer for an option, the default answer is obtained from either the PDB or the PDF. If the PDB does not contain information about the product (for example, this is a new installation), or a product specific PDB entry exists but does not contain the option (a new option), then the default comes from the PDF. Default answers that come from either the PDB or PDF may be changed by the user.

> In addition to the prompt text line, the utility displays help text (if present in the PTF), when the user specifies the /HELP qualifier on the command line, or the option statement contains the with helptext option.

> You must supply prompt text for the option statement in the PTF using the =prompt directive. Help text is optional. If provided, it must immediately follow the prompt text line.

> You cannot use the option statement in a patch, mandatory update, partial, or transition PDF. It is valid only in a full, platform, or operating system PDF.

> Function

> The user is prompted to choose options during the configuration phase of the operation. If the user selects an option, the option function returns true. If the user declines the option, the option function returns false.

See Also if
part

### Examples

#1
    option NET ;
        file [SYSEXE]NETSERVER.COM ;
        file [SYSEXE]NETSERVER.EXE ;
        file [SYSHLP]NCPHELP.HLB ;
        option NET_A default 0 ;
            file [SYSEXE]FAL.COM ;
            file [SYSEXE]FAL.EXE ;
        end option ;
        option NET_B ;
            file [SYSEXE]REMACP.EXE ;
            file [SYSMGR]RTTLOAD.COM ;
            file [SYS$LDR]CTDRIVER.EXE ;
            file [SYS$LDR]RTTDRIVER.EXE ;
        end option ;
    end option ;

> If the product description file contains the lines above, the product text file contains the corresponding text:

>     1 NET
>     =prompt network support
>     This option allows you to participate in a DECnet network.
>     1 NET_A
>     =prompt incoming remote file access
>     This option allows file access from other nodes in a DECnet network.
>     1 NET_B
>     =prompt incoming remote terminal access
>     This option allows users on other nodes in a DECnet network to log
>     in.

> The user must select option NET before NET_A or NET_B are available for selection. Therefore, NET is processed before NET_A or NET_B.

#2
    if (<option A>) ;
        file [SYSEXE]A.EXE ;
    else ;
        file [SYSEXE]B.EXE ;
    end if ;

> Previous | Next | Contents | Index

> | privacy and legal statement |
> 5952PRO_012.HTML