|
POLYCENTER Software Installation Utility Developer's
Guide
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:
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 parenthesis, 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.
|
Table 3-2 describes additional constraints on the string data type.
Table 3-2 String Data Type Constraints
String Type |
Values |
Examples |
Unconstrained
|
None; any character may appear in any position.
|
|
Access control entry (ACE)
|
Specifies an ACE for a directory or file.
|
"(IDENTIFIER=[KM],ACCESS=READ)"
|
Command
|
Specifies an operating system command that you want to execute during a
specific operation.
|
@PCSI$DESTINATION:[SYSTEST]
PROD$IVP.COM
|
Device name
|
Specifies the name of a hardware device.
|
DUB6:
|
File name
|
Specifies a file name (without a device or directory specification).
|
STARTUP.DAT
|
Identifier name
|
Specifies a rights identifier.
|
DOC
|
Module name
|
Specifies the name of a module in a library.
|
FMSHELP
|
Processor model name
|
Specifies the model identification of a particular computer system.
|
7
|
Relative directory specification
|
Specifies the directory name and, if necessary, the directory path,
relative to the root directory specification.
|
[MY_PRODUCT]
|
Relative file specification
|
Specifies the directory path and file name, relative to the root
directory path.
|
[MY_PRODUCT]DRIVER.DAT
|
Root directory specification
|
Specifies the directory name and a trailing period (.). If you specify
a directory name and omit the period, it is inserted. If necessary, you
can add the device name.
|
[TEST.]
SYS$SYSDEVICE:[VMS$COMMON.]
|
3.5 Kit Types and Usage
The POLYCENTER Software Installation utility supports seven kit types
that can be grouped into three broad categories:
- Primary kit --- Used to install or upgrade a product. Primary kits
can require prerequisite products to be installed before or
concurrently. Kit types in this category include:
- Full (layered product or application software)
- Operating system
- Platform (product suite)
- Secondary kit --- Used to modify installed products. Kits types in
this category include:
- Partial (changes the product's version)
- Patch (maintenance update)
- Mandatory update
- Transition kit --- Used to register a product that has been
installed using VMSINSTAL or some method other than the DCL command
PRODUCT INSTALL. The kit type in this category is as follows:
You use the PRODUCT PACKAGE command to package (or build) a product
kit. The output of the packaging process is an installable kit (in
either sequential copy format or reference format) that contains:
- Product material (usually present) --- The files that make up the
product. Usually, the installation of a product kit copies files to the
target disk. However, there are exceptions:
- A transition kit never provides files.
- A platform kit references other products; it may or may not provide
common files for the product suite.
- Since product material is not a requirement for any type of kit,
you may create "skeleton" kits for testing purposes that do
not modify the target disk.
- A product description file (required) that drives the installation
process --- It defines the managed objects that are provided or created
and contains directives for the installation utility. In addition, it
can include options for the installer to select, declare software
references to other prerequisite products, and invoke command
procedures you write to augment the installation process.
- A product text file (optional) that provides text modules for use
during the installation process.
- Temporary files such as command procedures (optional) that are used
during the installation process but are not left on the user's system.
The full product name (that is, the string
producer-base-product) must be unique among all products
installed on a system. This implies, for example, that there could be
two FORTRAN compilers installed from different companies (such as
DEC-AXPVMS-FORTRAN and XYZCORP-AXPVMS-FORTRAN), but there cannot be two
patch kits with the same full name that are intended to apply to
different products (such as ABC-AXPVMS-ECO1 for ABC-AXPVMS-COBOL and
ABC-AXPVMS-ECO1 for ABC-AXPVMS-C).
The following sections describe each type of kit and provide examples
of their product description files.
3.5.1 The Full Kit Type
A full kit provides layered product application software and is the
most common type of kit. The PDF for a full kit must contain a
product statement with the keyword full and
an end product statement, as shown in the following example:
product CPQ AXPVMS TEST_A V2.0 full ;
.
.
.
end product ;
|
The full kit has the following characteristics:
- It contains all of the material for the product. Therefore, it can
be used to install the product for the first time or it can upgrade a
previously installed version of the product.
- The product can be removed, configured, or reconfigured.
- Its PDF can contain option and software
statements.
Example 3-1 shows a full kit that references another product.
Example 3-1 PDF for a Full Kit That
References Another Full Kit |
product DEC AXPVMS FORTRAN V7.1-1 full ; (1)
if (not <software DEC AXPVMS VMS version minimum V7.1>) ;(2)
software DEC AXPVMS FORRTL version minimum V7.1 ;
end if ;
information STARTUP_TASK phase after ;
information RELEASE_NOTES phase after ;(3)
file [SYSHLP]FORTRAN.RELEASE_NOTES release notes ;(4)
file [SYSHLP]FORTRAN_RELEASE_NOTES.PS ;
file [SYSHLP]FORTRAN_RELEASE_NOTES.DECW$BOOK ;
if (<software DEC AXPVMS FORTRAN90>) ;(5)
error REMFORT90 ;
end if ;
option FORTRAN_90 ;(6)
file [SYSEXE]F90$MAIN.EXE generation 2 ;
file [SYSMSG]F90$MSG.EXE generation 2 ;
module [000000]F90CLD.CLD type command generation 2 module F90 ;
module [000000]F90HELP.HLP type help generation 2 module F90 ;(7)
end option ;
option FORTRAN_77 ;
file [SYSEXE]FORT$MAIN.EXE generation 1 ;
file [SYSEXE]FORT$FSPLIT.EXE generation 1 ;
file [SYSMSG]FORT$MSG.EXE generation 1 ;
file [SYSMSG]FORT$MSG2.EXE generation 1 ;
module [000000]DEC_FORTCLD.CLD type command
generation 1 module FORTRAN ;
module [000000]DEC_FORHELP.HLP type help
generation 1 module FORTRAN ;
end option ;
file [SYSLIB]FORSYSDEF.TLB generation 5 ;
file [SYS$STARTUP]FORT$STARTUP.COM generation 1 protection private ;(8)
file [SYSTEST]FORT$IVP.COM generation 1 protection private ;
execute test "@PCSI$DESTINATION:[SYSTEST]FORT$IVP.COM" ;(9)
end product ;
|
- The product statement identifies
this as a complete layered product kit for installation of (or upgrade
to) FORTRAN V7.1-1 on an OpenVMS Alpha system.
- The if...end if group conditionally
executes statements within the group based on the evaluation of the
if function. In this example, the software statement
is executed only if the system is running a version of OpenVMS earlier
than V7.1. This software statement creates a software
reference to the product FORRTL. If FORTRL V7.1 or later is already
installed, the software dependency is satisfied; otherwise, FORRTL is
automatically installed concurrently with FORTRAN.
- This information statement causes a
message to be displayed after the product has been installed. Text is
obtained from the module RELEASE_NOTES in the PTF:
1 RELEASE_NOTES
=prompt Type HELP FORTRAN Release_notes for release notes location
|
- This file statement copies file
FORTRAN.RELEASE_NOTES to SYS$SYSDEVICE:[VMS$COMMON.][SYSHLP] (the same
as SYS$COMMON:[SYSHLP]) unless the user specifies a different
destination. The keyword phrase release notes tags
this file in the kit so that the PRODUCT EXTRACT RELEASE_NOTES command
can be used to extract this file from the kit.
- This if statement determines whether
or not the product FORTRAN90 is installed. If it is installed, text
from the module REMFORT90 in the PTF is displayed and the user is asked
if he wants to terminate the operation:
1 REMFORT90
=prompt PRODUCT REMOVE FORTRAN90 before installing Compaq Fortran
The obsolete DEC Fortran 90 product must be removed before Compaq Fortran
is installed. To do this, use the command:
PRODUCT REMOVE FORTRAN90
|
Note that if the keyword abort had been used on
the error statement, the operation would terminate
unconditionally. abort was not used because the
abort keyword was introduced in OpenVMS V7.1 and this
kit can be installed on earlier versions of OpenVMS.
- This option...end option group
conditionally provides files and library modules associated with the
Fortran 90 compiler. The user is asked a question from text module
FORTRAN_90 in the PTF:
1 FORTRAN_90
=prompt Compaq Fortran 90 compiler
This option selects the Compaq Fortran 90 compiler.
|
By default, the option statement displays only text from
the prompt line. However, if the user specifies the /HELP qualifier on
the PRODUCT INSTALL command, then both prompt and extended help text is
displayed (two lines in this case).
- The module statement installs the
help text module F90 from the file F90HELP.HLP in the default help
library [SYSHLP]HELPLIB.HLB. The file F90HELP.HLP is not left on the
system because a file statement is not used.
- The keyword phrase protection
private on this file statement sets the file
protection to (S:RWED, O:RWED, G, W), giving general users no access.
- The execute test statement executes
the functional test for the product (the installation verification
procedure) after the product has been installed. If the test fails, the
user is informed but the product is not removed. The user can use the
PRODUCT REMOVE command to delete the product.
Example 3-2 shows the full kit referenced by Example 3-1.
Example 3-2 PDF for a Full Kit |
product DEC AXPVMS FORRTL V7.1-427 full ;(1)
if (<software DEC AXPVMS VMS version minimum V7.0>) ;(2)
file [SYSLIB]FOR$DEC$FORRTL.EXE
source [SYSLIB]FOR$DEC$FORRTL-V70.EXE ;
file [SYSLIB]FOR$DEC$FORRTL.OBJ
source [SYSLIB]FOR$DEC$FORRTL-V70.OBJ ;
else ;
file [SYSLIB]FOR$DEC$FORRTL.EXE
source [SYSLIB]FOR$DEC$FORRTL-V61.EXE ;
file [SYSLIB]FOR$DEC$FORRTL.OBJ
source [SYSLIB]FOR$DEC$FORRTL-V61.OBJ ;
end if ;
if (<software DEC AXPVMS VMS version below V7.1>) ;
file [SYSLIB]FOR$NXTAFTR.OBJ ;
end if ;
file [SYSUPD]FOR$INSTALL_FORRTL.COM ;
file [SYSTEST]FOR$RTL_IVP.COM ;
file [SYSTEST]FOR$RTL_IVP.OBJ ;
file [SYSHLP]FORRTL.RELEASE_NOTES release notes ;
information RELEASE_NOTES phase after ;
information POST_INSTALL phase after ;
execute install "@PCSI$DESTINATION:[SYSUPD]FOR$INSTALL_FORRTL INSTALL"
remove "@PCSI$DESTINATION:[SYSUPD]FOR$INSTALL_FORRTL REMOVE";(3)
execute test "@PCSI$DESTINATION:[SYSTEST]FOR$RTL_IVP" ;
end product ;
|
- The product statement identifies
this as a complete layered product kit for installation of (or upgrade
to) FORRTL V7.1-427 on an OpenVMS Alpha system.
- The if...else...end if group
conditionally executes statements within the group based on the
evaluation of the if function. In this example, two files
named [SYSLIB]FOR$DEC$FORRTL.EXE and [SYSLIB]FOR$DEC$FORRTL.OBJ are
always provided. However, the contents of these files vary depending on
the version of the VMS product that is installed. Notice the
use of the source clause on the file statements to
select the desired file from the kit to copy to the target disk.
- The execute install...remove
statement executes the command procedure
PCSI$DESTINATION:[SYSUPD]FOR$INSTALL_FORRTL.COM during installation or
upgrade of the product, and also during removal of the product. Instead
of providing two command procedures, one is used and a parameter is
passed to it to indicate the operation.
3.5.2 The Operating System Kit Type
The operating system kit provides operating system software such as
OpenVMS. The PDF for an operating system kit must contain a
product statement with the keyword operating
system and an end product statement as shown in the
following example:
product DEC AXPVMS VMS V7.2 operating system ;
.
.
.
end product ;
|
The operating system kit has the following characteristics:
- It contains all of the material for the product. Therefore, it can
be used to install the product for the first time or it can upgrade a
previously installed version of the product.
- The product cannot be removed unless the PRODUCT REMOVE command
contains the /REMOTE qualifier to remove the operating system on a disk
that is not the running system.
- The product can be configured or reconfigured.
- Its PDF can contain option and software
statements.
- There can be only one product of type operating system installed on
a system disk.
- Except for the kit type designation, the structure of an operating
system kit is the same as a full kit; all PDL statements that are
allowed in a full kit can be used in an operating system kit.
Example 3-3 shows an operating system kit.
Example 3-3 PDF for an Operating System
Kit |
product DEC AXPVMS VMS V7.1 operating system ;(1)
upgrade version minimum V6.1 version below A7.2;(2)
.
.
.
directory [SYSEXE] ;(3)
directory [SYSFONT] ;
directory [SYSFONT.DECW] ;
directory [SYSFONT.DECW.100DPI] ;
.
.
.
file [SYSEXE]COPY.EXE generation 40069227 ; (4)
file [SYSEXE]CREATE.EXE generation 40069227 ;
file [SYSEXE]CREATEFDL.EXE generation 40069227 ;
file [SYSEXE]DCL.EXE generation 40069227 ;
.
.
.
file [SYSMGR]SYLOGIN.TEMPLATE generation 40069227 ;
file [SYSMGR]SYLOGIN.COM generation 40069227 (5)
source [SYSMGR]SYLOGIN.TEMPLATE write ;
.
.
.
option ACCOUNTING ;
file [SYSEXE]ACC.EXE generation 40069227 ;
end option ;
option UTILITIES ; (6)
option MAIL ;
file [SYSEXE]MAIL.COM generation 40069227 ;
file [SYSEXE]MAIL.EXE generation 40069227 ;
file [SYSEXE]MAIL_OLD.EXE generation 40069227 ;
file [SYSEXE]MAILEDIT.COM generation 40069227 ;
file [SYSEXE]MAIL_SERVER.EXE generation 40069227 ;
file [SYSHLP]MAILHELP.HLB generation 40069227 ;
end option ;
.
.
.
option DUMP ;
file [SYSEXE]DUMP.EXE generation 40069227 ;
end option ;
option HELP_LIBRARY ;
scope global ;
file [SYSHLP]HELPLIB.HLB generation 40069227 release merge ;(7)
end scope ;
end option ;
end option ;
.
.
.
option REMOVE_OBSOLETE ;
remove ; (8)
file [SYSLIB]LIBOTS.OLB ;
file [SYSLIB]EDTSHR_TV.EXE ;
end remove ;
end option ;
end product ;
|
|