POLYCENTER Software Installation Utility Developer's
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:
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:
For example, the output PDF for product BLACKJACK V2.1-17 might be
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
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.
following statement groups are used to conditionally process other
- 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:
- LINK (create an alias directory entry)
- LOADABLE IMAGE
- 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
- 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:
- 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>
Many software products require only the use of a small subset of these
PDL statements to create their PDF. Commonly used statements are as
- PRODUCT and END PRODUCT (required in every PDF)
- 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
- Zero or more options each specified as a keyword phrase and value
- 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
- Case is not significant, except within a quoted string.
- A keyword phrase consists of one or more keywords as defined by the
- 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, "
". This prevents the hyphens from being parsed as the start of a
- 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
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
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
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 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
0 (false), the number
1 (true), the keywords
A sequence of 0 to 255 ISO Latin-1 characters. In the context of PDF
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,
Table 3-2 lists the additional constraints on PDL strings.
Specifies a positive, negative, or zero integral value in the range of
-2147483648 to 2147483647.
Specifies a zero or positive integral value in the range of 0 through
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.