HP OpenVMS Systems Documentation

Content starts here

POLYCENTER Software Installation Utility Developer's Guide


Previous Contents Index

3.3 PDF File-Naming Conventions

You supply the PDF as input to the PRODUCT PACKAGE command. The PDF can have any valid OpenVMS file name and file type. We recommend that you give the input PDF file the extension .PCSI$DESC. For example:


TEST.PCSI$DESC

When you execute the PRODUCT PACKAGE command, it creates an output PDF. See Section 2.3.9 for the distinction between input and output files.

The output PDF file format is the same as the input PDF; that is, a sequential file containing PDL statements. The contents of the output PDF, however, may differ slightly from that of the input PDF. For example, the POLYCENTER Software Installation utility adds the size option to every FILE statement and supplies the actual size of the file in disk blocks.

The name of the output PDF consists of the product's stylized file name and a file type of .PCSI$DESCRIPTION as follows:


producer-base-product-version-kittype.PCSI$DESCRIPTION

For example, the output PDF for product BLACKJACK V2.1-17 might be named:


ABC_CO-AXPVMS-BLACKJACK-V0201-17-1.PCSI$DESCRIPTION
See Section 2.3 for a description of the product-naming syntax.

3.4 Structure of a PDF

A PDF is a text file that contains a sequence of PDL statements. A PDF must begin with a PRODUCT statement and end with an END PRODUCT statement. The PRODUCT statement uniquely identifies the product and specifies the type of kit to build (full, partial, patch, and so forth). Each file that is part of the product material must be specified with a FILE statement. The following example shows a complete PDF for a product that places one file named test.exe in SYS$COMMON:[SYSEXE].


product DEC axpvms test v1.0 full ;
    file [sysexe]test.exe ;
end product ;

3.4.1 Overview of PDL Statements

The product description language consists of statements that are defined in Chapter 7 of this manual. As an overview, these statements are listed here in classes according to their main function:

  • Statement groups are defined by a pair of opening and closing statements; by convention, the closing statement is the keyword END followed by the keyword of the opening statement. Statement groups operate on statements lexically contained within their begin-end pair. Many statement groups can be nested within other groups.
    The following statement groups are used to conditionally process other statements:
    • IF and END IF (ELSE and ELSE IF statements optionally can be used within the statement group). Used to evaluate the Boolean value of a statement function or expression as a condition to process enclosed statements or a group of statements.
    • OPTION and END OPTION.

    The following statement groups unconditionally process all statements at their inner level:
    • PART and END PART
    • PRODUCT and END PRODUCT
    • REMOVE and END REMOVE
    • SCOPE and END SCOPE
  • Statements that create or modify managed objects include:
    • ACCOUNT
    • DIRECTORY
    • FILE
    • LINK (create an alias directory entry)
    • LOADABLE IMAGE
    • MODULE
    • NETWORK OBJECT
    • REGISTER MODULE
    • RIGHTS IDENTIFIER
  • Statements that enforce software dependencies and hardware requirements by testing the execution environment and taking appropriate action include:
    • APPLY TO
    • HARDWARE DEVICE
    • HARDWARE PROCESSOR
    • INFER
    • SOFTWARE
    • UPGRADE
  • Statements whose main purpose is to display a message to the user and in some cases query the user for a response are as follows:
    • ERROR
    • INFORMATION
    • PROCESS PARAMETER
    • PROCESS PRIVILEGE
    • SYSTEM PARAMETER
  • Statements that cause producer-supplied command procedures to execute or instruct the user to manually perform a task include:
    • EXECUTE ABORT
    • EXECUTE INSTALL...REMOVE
    • EXECUTE LOGIN
    • EXECUTE POSTINSTALL
    • EXECUTE POST_UNDO
    • EXECUTE PRECONFIGURE
    • EXECUTE PRE_UNDO
    • EXECUTE REBOOT
    • EXECUTE START...STOP
    • EXECUTE TEST
    • EXECUTE UPGRADE
  • Statement functions that are used to provide a Boolean value when evaluated in the expression part of an IF statement:
    • <HARDWARE DEVICE>
    • <HARDWARE PROCESSOR>
    • <LOGICAL NAME>
    • <OPTION>
    • <SOFTWARE>
    • <UPGRADE>

Many software products require only the use of a small subset of these PDL statements to create their PDF. Commonly used statements are as follows:

  • PRODUCT and END PRODUCT (required in every PDF)
  • FILE
  • MODULE
  • SOFTWARE
  • OPTION and END OPTION
  • IF and END IF
  • EXECUTE INSTALL...REMOVE
  • EXECUTE TEST

3.4.2 PDL Statement Syntax

A PDL statement consists of:

  • A keyword phrase that identifies the statement (required)
  • Zero or more parameter values (which may be expressions in certain contexts)
  • Zero or more options each specified as a keyword phrase and value pair
  • A semicolon (;) that terminates the statement (required)

Additional Syntax Rules

  • Statements can span multiple lines and whitespace can be used freely to improve readability or show relationship through indentation levels.
  • Case is not significant, except within a quoted string.
  • A keyword phrase consists of one or more keywords as defined by the PDL statement.
  • A comment is a sequence of two consecutive hyphens (- -) followed by characters up to and including end-of-line.
    When a string containing consecutive hyphens is passed as a parameter or option value, enclose the string in quotes, for example, " a--b.dat ". This prevents the hyphens from being parsed as the start of a comment.
  • Lexical element separators are used to set off keywords, values, expressions, and so on. They include end-of-line, comment, and the following characters: space, horizontal tab, form feed, and vertical tab (except when they appear within a quoted string).
  • Delimiters are required syntax in many situations. They consist of the following characters: semicolon (;), comma (,), left parenthesis ((), right parenthesis ()), left angle bracket (<), and right angle bracket (>).
    When a string contains a delimiter character that is passed as a parameter or option value, enclose the string in quotes. For example, to pass the numeric UIC string [1,1] as an option value, use the quoted string form of "[1,1]", because it contains a comma character.

3.4.3 PDL Function Syntax and Expressions

Certain PDL statements have a function form that tests for a condition in the execution environment and returns a Boolean value of true or false. A function is syntactically similar to its corresponding statement except that a function is enclosed in left and right angle brackets (<...>), instead of being terminated by a semicolon (;).

The following statements have corresponding functions:

  • HARDWARE DEVICE
  • HARDWARE PROCESSOR
  • OPTION
  • SOFTWARE
  • UPGRADE

The LOGICAL NAME function does not have a corresponding statement form.

Expressions are used in IF statements to produce a Boolean value for the if-condition test. An expression is delimited by opening and closing parentheses ((...)). It contains one or more functions and, optionally, one or more of the keywords AND, OR, and NOT, which are used as logical operators.

An expression has one of the following forms, where each term is either another expression or a function:

  • (term)
  • (term AND term)
  • (term OR term)
  • (NOT term)

The following example shows an IF statement using a compound expression:


if ( (not <hardware device MUA0:>) and
     (<software ABC VAXVMS TEST version below 2.0>) ) ;
    .
    .
    .
end if ;

3.4.4 PDL Data Types and Values

The PDL has several base data types that you must use when passing parameters to the PDL statements listed in Chapter 7. Table 3-1 describes the PDL base data types and their values. PDL statements may restrict the range of values that can be used as parameters.

Table 3-1 Base Data Types and Values
Data Type Values
Boolean The number 0 (false), the number 1 (true), the keywords false, true, no, and yes.
String A sequence of 0 to 255 ISO Latin-1 characters. In the context of PDF language statements:
  • abc is an unquoted string.
  • "abc" is a quoted string.
  • ""double_quoted_string"" is a quoted string that maintains original quotation marks.

You must use the quoted string form if the string contains any PDL delimiters (open/close parentheses, comma, open/close angle brackets, and semicolons) or lexical element separators (double hyphen, space, horizontal tab, form feed, or vertical tab). For example, "/privilege=(tmpmbx, netmbx)".

Table 3-2 lists the additional constraints on PDL strings.

Signed integer Specifies a positive, negative, or zero integral value in the range of -2147483648 to 2147483647.
Unsigned integer Specifies a zero or positive integral value in the range of 0 through 4294967295.
Version identifier See the description in Section 2.3.
Text module name Specifies a unique name for a text module using the printable ISO Latin-1 characters, excluding horizontal tab, space, exclamation point, and comma. The name can be from 1 to 31 characters.


Previous Next Contents Index