DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

cdmtInput(CDMT)


cdmtInput -- CDMT input files

Description

The CDMT input files describe the components, packages and files in the product. The three types of CDMT input files are:

Filename Description
extension
.prd contains records that describe a product
.cmpnt contains records that describe a component
.pkg contains records that describe packages and files

 Filename   Description
 extension
 .prd       contains records that describe a product
 .cmpnt     contains records that describe a component
 .pkg       contains records that describe packages and files
CDMT input files contain records; each record consists of a record name and attributes. The format of records is:

recordName:
 
attributeName = attributeValue
attributeName = attributeValue
attributeName = attributeValue

 recordName:
 attributeName   =   attributeValue
 attributeName   =   attributeValue
 attributeName   =   attributeValue
To specify a product, parcel, component, or package as an attribute value, use the following syntax:

package:
Package ID vendorCode:componentCode:packageCode::version
Package Name vendorCode:componentCode:packageCode
Package Code packageCode
component:
Component ID vendorCode:componentCode::version
Component Name vendorCode:componentCode
Component Code componentCode
parcel:
Parcel ID vendorCode:productCode:parcelCode::version
Parcel Name vendorCode:productCode:parcelCode
Parcel Code parcelCode
product
Product ID vendorCode:productCode::version
Product Name vendorCode:productCode
Product Code productCode

 package:
 Package ID       vendorCode:componentCode:packageCode::version
 Package Name     vendorCode:componentCode:packageCode
 Package Code     packageCode
 component:
 Component ID     vendorCode:componentCode::version
 Component Name   vendorCode:componentCode
 Component Code   componentCode
 parcel:
 Parcel ID        vendorCode:productCode:parcelCode::version
 Parcel Name      vendorCode:productCode:parcelCode
 Parcel Code      parcelCode
 product
 Product ID       vendorCode:productCode::version
 Product Name     vendorCode:productCode
 Product Code     productCode
Some attribute values require that you specify a regular expression. Because the ``\'' character is used as a special character by CDMT, when you specify a regular expression, you must precede this character with another ``\'' character. Thus, use ``\\'' for ``\'' in any regular expression. See regexp(TCL) for more information on regular expressions.

Product description (.prd) files

The *.prd files contain a single PROD and one or more PARCEL records that describe the parcels in a product. The PROD record defines the root parcel of the parcel tree; PARCEL defines a subparcel to the root parcel or a subparcel to another parcel.

The format of the *.prd file records is:

PROD:vendorCode:productCode:
description = string
version = version string
subparcels = parcelNames or parcelCodes
packages = componentIDs or componentCodes, packageIDs or packageNames
required = componentIDs or componentCodes, packageIDs or packageNames
cmpntFiles = .cmpnt pathnames
PARCEL:parcelCode:
description = string
subparcels = parcelNames or parcelCodes
packages = componentIDs or componentCodes, packageIDs or packageNames
cmpntFiles = .cmpnt pathnames
required = componentIDs or componentCodes, packageIDs or packageNames

 PROD:vendorCode:productCode:
 description   =   string
 version       =   version string
 subparcels    =   parcelNames or parcelCodes
 packages      =   componentIDs or componentCodes,
                   packageIDs or packageNames
 required      =   componentIDs or componentCodes,
                   packageIDs or packageNames
 cmpntFiles    =   .cmpnt pathnames
 PARCEL:parcelCode:
 description   =   string
 subparcels    =   parcelNames or parcelCodes
 packages      =   componentIDs or componentCodes,
                   packageIDs or packageNames
 cmpntFiles    =   .cmpnt pathnames
 required      =   componentIDs or componentCodes,
                   packageIDs or packageNames

.prd record attributes

The .prd record attributes are:

description
describes product or parcel and is visible to the user from the custom(ADM) interface.

version
version of the product (inherited by all the parcels in the product). This attribute is only valid in the PROD record.

subparcels
parcels to include as subparcels to this product or parcel.

packages
components or packages to include in this product or parcel.

required
components or packages that are installed by default when this product or parcel is installed. The components and packages specified with this attribute should be a subset of the components and packages specified in the packages attribute.

cmpntFiles
the *.cmpnt files that define the components and packages in the product; must be specified at least once in either the PROD or PARCEL records.

Component description (.cmpnt) files

The *.cmpnt files contain records that describe the component:

COMP defines the root package of the package tree
MACROS defines macros specific to the component
FILE_DEFAULT defines default values for the FILE record
  in the .pkg files of the component
DIR_DEFAULT defines default values for the DIR record
  in the .pkg files of the component
FIFO_DEFAULT defines default values for the FIFO record
  in the .pkg files of the component

 COMP           defines the root package of the package tree
 MACROS         defines macros specific to the component
 FILE_DEFAULT   defines default values for the FILE record
                in the .pkg files of the component
 DIR_DEFAULT    defines default values for the DIR record
                in the .pkg files of the component
 FIFO_DEFAULT   defines default values for the FIFO record
                in the .pkg files of the component
The format of the *.cmpnt file records is:

COMP:vendorCode:componentCode
description = string
version = version string
upgradeVersions = versionExpr (regular expression)
upgradeMappings = vendorCode:componentCode::versionExpr
subpackages = packageCodes
required = packageCodes
dependencies = componentIDs or packageIDs, version
(regular expression)
pkgFiles = *.pkg files
distTreeRoot = directory containing the SHARED and CLIENT directories
distTreeRootSHARED = directory containing the SHARED files; overrides distTreeRoot
distTreeRootCLIENT = directory containing the CLIENT files; overrides distTreeRoot
defaultExportPrefix = directory to prepend to relative export names
FILE_DEFAULT:
mode = int
owner = string
group = string
flags = empty, optional | optionalDist, compress | noCompress, ssoPatch
DIR_DEFAULT:
mode = int
owner = string
group = string
flags = optional
FIFO_DEFAULT:
mode = int
owner = string
group = string
flags = optional

 COMP:vendorCode:componentCode
 description           =   string
 version               =   version string
 upgradeVersions       =   versionExpr (regular expression)
 upgradeMappings       =   vendorCode:componentCode::versionExpr
 subpackages           =   packageCodes
 required              =   packageCodes
 dependencies          =   componentIDs or packageIDs, version
                           (regular expression)
 pkgFiles              =   *.pkg files
 distTreeRoot          =   directory containing the SHARED and
                           CLIENT directories
 distTreeRootSHARED    =   directory containing the SHARED files;
                           overrides distTreeRoot
 distTreeRootCLIENT    =   directory containing the CLIENT files;
                           overrides distTreeRoot
 defaultExportPrefix   =   directory to prepend to relative
                           export names
 FILE_DEFAULT:
 mode                  =   int
 owner                 =   string
 group                 =   string
 flags                 =   empty, optional | optionalDist,
                           compress | noCompress, ssoPatch
 DIR_DEFAULT:
 mode                  =   int
 owner                 =   string
 group                 =   string
 flags                 =   optional
 FIFO_DEFAULT:
 mode                  =   int
 owner                 =   string
 group                 =   string
 flags                 =   optional

.cmpnt COMP record attributes

The following describes the COMP record attributes; see the ``Package description (.pkg) files'' section for descriptions of the FILE_DEFAULT, DIR_DEFAULT, and FIFO_DEFAULT record attributes.

description
description of the component and is visible to the user from the custom interface.

version
version of the component (inherited by all the packages in the component). This attribute is only valid in the COMP record.

upgradeVersions
component versions which this component can upgrade; the versions are specified as regular expressions. For information on regular expressions, see regexp(TCL).

upgradeMappings
Component or Package IDs of those components or packages which this component can upgrade, where the component or package name is different than this component name; versionExpr is a regular expression.

subpackages
packages to include as subpackages to this component

required
packages that are installed by default when this component is installed. The components listed here must exist within the component, but do not have to be a subset of the packages specified in the subpackages attribute.

dependencies
components or packages external to this component which must be installed for this component to execute properly. The version portion of the Component or Package ID is a regular expression.

pkgFiles
the *.pkg files that define the packages and files in the component.

distTreeRoot
default directory in which CDMT looks for the distribution files for this component. CDMT expects that the distribution files are located in the CLIENT and SHARED subdirectories (containing the shared and non-shared files for the component) in the directory specified by distTreeRoot relative to their SSO component root directory. CDMT copies the distribution files to $CDMT_DIR/sso. You can specify the distTreeRoot attribute at the package level by setting distTreeRoot in the *.pkg file for each package.

distTreeRootSHARED
directory containing the SHARED files; overrides directory specified by distTreeRoot/SHARED.

distTreeRootCLIENT
directory containing the CLIENT files; overrides directory specified by distTreeRoot/CLIENT.

defaultExportPrefix
directory name to prepend to filenames that are exported with relative pathnames; by default, CDMT prepends /usr to exported filenames with relative pathnames.

macroName
definition of a macro that is specific to this component. CDMT replaces the value of macroName in every occurrence of $macroName or ${macroName}. Macro names consist consist of letters, digits, and underscore (_) characters. See cdmt.config(CDMT) for more information on macros.

Package description (.pkg) files

The *.pkg files contain records that describe the packages and files:

PKG defines the package
FILE defines an ordinary file
DIR defines a directory
FIFO defines a named pipe
LINK defines a link to another file in the component
SYML defines a symbolic link to another file in the component

 PKG    defines the package
 FILE   defines an ordinary file
 DIR    defines a directory
 FIFO   defines a named pipe
 LINK   defines a link to another file in the component
 SYML   defines a symbolic link to another file in the component
FILE is the only record that requires the user to provide an actual distribution file; custom creates the other files at installation time.

The format of the *.pkg file records is:

PKG:packageCode:
description = string
upgradeMappings = vendorCode:componentCode:packageCode:: versionExpr
subpackages = packageCodes
required = packageCodes
dependencies = componentIDs or packageIDs, version
(regular expression)
distTreeRoot = directory containing the SHARED and CLIENT directories
distTreeRootSHARED = directory containing the SHARED files;
overrides distTreeRoot
distTreeRootCLIENT = directory containing the CLIENT files;
overrides distTreeRoot
FILE:packageCode:accessType:pathName:
mode = int
owner = string
group = string
flags = empty, optional | optionalDist, compress | noCompress, ssoPatch
exportPath = pathName
exportPathRegPhase = pathName
includeFile = pathName
DIR:packageCode:accessType:pathName:
mode = int
owner = string
group = string
flags = optional
exportPath = pathName
exportPathRegPhase = pathName
FIFO:packageCode:accessType:pathName:
mode = int
owner = string
group = string
flags = optional
exportPath = pathName
exportPathRegPhase = pathName
LINK:packageCode:accessType:pathName:
target = pathName
exportPath = pathName
exportPathRegPhase = pathName
SYML:packageCode:accessType:pathName:
target = pathName
exportPath = pathName
exportPathRegPhase = pathName
flags = optional
targetSection = empty | SHARED

 PKG:packageCode:
 description          =   string
 upgradeMappings      =   vendorCode:componentCode:packageCode::
                          versionExpr
 subpackages          =   packageCodes
 required             =   packageCodes
 dependencies         =   componentIDs or packageIDs, version
                          (regular expression)
 distTreeRoot         =   directory containing the SHARED and
                          CLIENT directories
 distTreeRootSHARED   =   directory containing the SHARED files;
                          overrides distTreeRoot
 distTreeRootCLIENT   =   directory containing the CLIENT files;
                          overrides distTreeRoot
 FILE:packageCode:accessType:pathName:
 mode                 =   int
 owner                =   string
 group                =   string
 flags                =   empty, optional | optionalDist,
                          compress | noCompress, ssoPatch
 exportPath           =   pathName
 exportPathRegPhase   =   pathName
 includeFile          =   pathName
 DIR:packageCode:accessType:pathName:
 mode                 =   int
 owner                =   string
 group                =   string
 flags                =   optional
 exportPath           =   pathName
 exportPathRegPhase   =   pathName
 FIFO:packageCode:accessType:pathName:
 mode                 =   int
 owner                =   string
 group                =   string
 flags                =   optional
 exportPath           =   pathName
 exportPathRegPhase   =   pathName
 LINK:packageCode:accessType:pathName:
 target               =   pathName
 exportPath           =   pathName
 exportPathRegPhase   =   pathName
 SYML:packageCode:accessType:pathName:
 target               =   pathName
 exportPath           =   pathName
 exportPathRegPhase   =   pathName
 flags                =   optional
 targetSection        =   empty | SHARED

.pkg record attributes

The .pkg record attributes are:

description
package description, visible to the user from the custom interface

upgradeMappings
componentID or packageIDs of those components or packages which this package can upgrade, where the component or package name is different than this package name; versionExpr is a regular expression.

subpackages
packages to include as subpackages to this package

required
packages that are installed by default when this package is installed. The packages specified with this attribute must exist within the component, but do not have to be a subset of the packages specified in the subpackages attribute

dependencies
components or packages external to this component which must be installed for this package to execute properly. The version portion of the componentID or packageID is a regular expression.

distTreeRoot
default directory in which CDMT looks for the distribution files for this package. CDMT expects that the distribution files are located in the CLIENT and SHARED subdirectories in the directory specified by distTreeRoot relative to their SSO component root directory. CDMT copies the distribution files to $CDMT_DIR/sso.

distTreeRootSHARED
directory containing the SHARED files; overrides directory specified by distTreeRoot/SHARED.

distTreeRootCLIENT
directory containing the CLIENT files; overrides directory specified by distTreeRoot/CLIENT.

mode
the permissions of the file

owner
the owner of the file

group
the group to which the file belongs

flags
set flags to:

empty
empty file created during the installation process. This flag attribute is defined in the FILE record only.

optional
file is not part of the distribution, but might be created and deleted during the life of the package. If the file exists during package removal, it is removed.

optionalDist
identical to the optional flag, but the file is part of the distribution. This flag attribute is defined in the FILE record only.

compress
file is compressed. This flag attribute is defined in the FILE record only.

noCompress
file is not compressed. This flag attribute is defined in the FILE record only.

ssoPatch
CDMT runs ssoPatch(CDMT) on the file using the current component version and name.

exportPath
the exported public pathname (either absolute or relative) of the file. Use relative pathnames to allow for multiple versions of the same component to be installed at the same time. For multiple public pathnames, define multiple exportPath attributes.

exportPathRegPhase
identical to exportPath, except the public pathname is created during the REGISTER phase of the installation.

includeFile
absolute pathname of the distribution file to be included in the SSO. This attribute overrides any distTreeRoot, distTreeRootSHARED, or distTreeRootCLIENT attributes.

target
target pathname of the link or symbolic link, relative to the SSO root segment. CDMT assumes that the target is within the same SSO segment of the component (/opt or /var/opt).

targetSection
if the target exists in the /opt section and the symbolic link exists in /var/opt, set this attribute to SHARED.

Files

$CDMT_DIR/input/*.prd
$CDMT_DIR/input/*.cmpnt
$CDMT_DIR/input/*.pkg

See also

cdmtConvert(CDMT), cdmtParse(CDMT), regexp(TCL)

``Creating custom-installable software distributions'' and
``Component script guidelines'' in Developer's Topics

Standards conformance

cdmtInput is not part of any currently supported standard; it is an extension of AT&T System V provided by The Santa Cruz Operation, Inc.
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003