Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference (Volume 8 of 9): Section 4: File Formats > s

swpackage(4)

Hewlett-Packard Company
» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Index

NAME

swpackage — product specification file (PSF) format

DESCRIPTION

Introduction

The swpackage command packages software into:

  • a distribution directory (which can be accessed directly or copied onto a CD-ROM),

  • a distribution tape, such as DDS, nine-track or cartridge tapes.

Both directory and tape distributions use the same format. SD can read both tar and cpio tape depots. See sd(4) for details on tape format.

The software is organized into a four-level hierarchy of software objects: bundles, products, subproducts, and filesets. Bundles and subproducts are recursive: a bundle can contain other bundles, and a subproduct can contain other subproducts. The files that make up a software package are contained in filesets. Filesets are contained in subproducts and/or products. Currently, HP does not support customer creation of software bundles to contain the entire application. The attribute tables that follow show the attributes of each level of the software packaging hierarchy.

A Product Specification File (PSF) defines how a product is structured and the attributes that apply to it. This manual page describes the syntax and semantics of a PSF.

Layout Version

SD object and attribute syntax conforms to the layout_version 1.0 specification of the IEEE POSIX 1387.2 Software Administration standard. The previous SD layout_version 0.8 is also supported. SD for HP-UX version 10.10 and later can read or write either layout version. SD commands still accept the keyword names associated with the older layout version, but you should use layout_version 0.8 only to create distributions readable by older versions of SD.

What layout_version the SD commands write is controlled by the layout_version option for swpackage, swmodify, swcopy, and swlist.

The version used by swpackage can be also controlled by specifying the layout_version attribute in the PSF. However, if the layout_version attribute in the PSF is 1.0, the is_locatable attribute defaults to true in all cases, and must be explicitly set to false.

For a full description of the swpackage command, see the swpackage(1M) manual page.

Layout version 1.0 adds significant functionality not recognized by systems supporting only 0.8, including:

  • Category class objects (formerly the category and category_title attributes within the bundle or product class).

  • Patch-handling attributes, including applied_patches, is_patch, and patch_state.

  • The fileset architecture attribute, which permits you to specify the architecture of the target system on which the product will run.

In addition to adding new attributes and objects, layout_version 1.0 changes the following preexisting 0.8 objects and attributes as follows:

  • Replaces the depot media_sequence_number with the media object with a sequence_number attribute.

  • Replaces the vendor definition within products and bundles with a vendor_tag attribute and a corresponding vendor object defined outside the product or bundle.

  • Pluralizes the corequisite and prerequisite fileset attributes (to corequisites and prerequisites).

  • Changes the timestamp attribute to mod_time.

PRODUCT SPECIFICATION FILE SYNTAX

A PSF is structured as follows:

[<distribution specification>] [<vendor specification>] [<category specification>] [<bundle specification>] ... <product specification> [<control script specifications>] [<subproduct specifications>] <fileset specification> [<control script specifications>] <file specifications> [<fileset specification>] ... [<vendor specification>] [<product specification>] ...

In summary, the swpackage user can:

  • Specify one or more products.

  • For each product, specify one or more filesets.

  • For each fileset, specify one or more files.

  • (optional) Specify attributes for the target depot or tape.

  • (optional) Specify one or more bundles, defining the bundle contents.

  • (optional) Specify vendor information to be used with subsequent products and bundles.

  • (optional) For each product, specify one or more subproducts, defining the subproduct contents.

  • (optional) For each product or fileset, specify one or more control scripts.

Each software object has user-defined attributes. Most attributes are optional. All objects and attributes are defined using a

keyword value

syntax. The keyword is an identifier for the attribute.

Some attributes allow multiple values. You can specify values with a keyword/list syntax:

keyword value1 value2 value3 ...

You can also use a list following the keyword:

keyword value1 value2 value3 ...

Specific rules for each keyword are:

  • All keywords require one or more values, except as noted. If the value is missing an error is given.

  • Comments must be preceded by #. A comment can appear on a line by itself or following the keyword-value syntax within the PSF.

  • Use double quotes (") to define values that span multiple lines:

    "This is an example of a

    two-line value."

  • Double quotes (") are optional when defining a value that contains embedded whitespace.

Attribute Table

The following tables summarize the objects and attributes which can be defined in a PSF. These objects and attributes can appear in any order when defining a distribution, vendor, category, product, or bundle, except that the layout_version attribute must be first. Each object and attribute is identified by a keyword. Object keywords do not have associated values. Attribute keywords have one or more values.

  • Attributes marked with a * determine the uniqueness of a product, bundle, or fileset. Their values may also be of the type version_component when used in a version component of a software specification.

  • Keywords marked with a + apply to products only.

  • Keywords marked with a - apply to bundles only.

  • control_files can be defined within products or filesets or both.

  • You can define your own attributes. See the section on Vendor-Defined Attributes for more information.

KeywordTypeSizeExample
distribution   
layout_versionrevision_string641.0
tag tag_string64EXAMPLE_DEPOT
copyright multi_line_string8K< data/copyr.depot
description multi_line_string8K< data/descr.depot
number one_line_string64B2358-13601
title one_line_string256Example packages
end   
vendor   
tag tag_string64HP
description multi_line_string8K< data/descr.hp
title one_line_string256Hewlett-Packard Co.
end   
category   
tag tag_string64patch_normal
description multi_line_string8KFor normal problems
revision revision_string640.0
title one_line_string256Category of Patches
end   
product or bundle   
* tag tag_string64SD
* architecture one_line_string64HP-UX_B.11.00_32/64
category_titleone_line_string256Systems Management
- contents repeatable list8Kpr.fs,r=1.0,a=,v=
of software_specs  
copyright multi_line_string8K< data/copyr.sd
description multi_line_string8K< data/descr.sd
directory path_string1024/
is_locatable boolean9false
is_patch boolean9false
layout_version revision_string641.0
machine_type uname_string649000/[78]*:*
number one_line_string64B2001A
os_name uname_string64HP-UX
os_release uname_string64?.11.*
os_version uname_string64?
+ postkernel path_string255/usr/bin/kernel_build
+ readme multi_line_string1024K< data/README.sd
* revision revision_string64A.01.00
+ share_link one-line_string256 
title one_line_string256Software Distributor
* vendor_tag tag_string64HP
+ control_files   
end    

Attribute Table (continued)

KeywordTypeSizeExample
subproduct   
tag tag_string64Manager
contents one-line list of commands agent data
tag_string values data man
description multi_line_string8K< data/desc.mgr
title one_line_string256Management Utilities
end   
fileset   
* tag tag_string64commands
ancestor repeatable list product.oldfileset
of product.fileset oldproduct.fileset
architecture one_line_string80HP-UX_B.11.00_32/64
category_tag tag_string64patch_normal
corequisites software_spec SD.man,r>=2.0
description multi_line_string8K< data/descr.cmd
exrequisite software_spec SD.man,r>=2.0
is_kernel boolean9false
is_locatable boolean9false
is_patch boolean9false
is_reboot boolean9false
is_sparse boolean9false
machine_type uname_string649000/[78]*:*
os_name uname_string64HP-UX
os_release uname_string64?.11.*
os_version uname_string64?
prerequisitessoftware_spec SD.agent,r>=2.0
* revision revision_string642.42
supersedes software_spec8192product.fileset,
  fr=revision
title one_line_string256SD Commands
control_files   
control_files   
directory path_mapping_string ./commands = /usr/sbin
exrequisites    
file_permis_ permission_string -u 0222 -o root -g sys
sions permission_string -u 0222 -o root -g sys
file file specification -m 04555 bin/swinstall
  (or) *
end   

Control File Attributes

Control files can be defined within filesets and/or products.

KeywordTypeSizeExample
checkinstall path_string1024./scripts/checkinstall
checkremove path_string1024./scripts/checkremove
configure path_string1024./scripts/configure
control_file path_string1024./scripts/subscripts
postinstall path_string1024./scripts/postinstall
postremove path_string1024./scripts/postremove
preinstall path_string1024./scripts/preinstall
preremove path_string1024./scripts/preremove
request path_string1024./scripts/request
unconfigure path_string1024./scripts/unconfigure
unpreinstall path_string1024./scripts/unpreinstall
unpostinstall path_string1024./scripts/unpostinstall
verify path_string1024./scripts/verify

Vendor-Defined Attributes

You can create your own software attributes when packaging software. Keywords in a product specification file that are not recognized by SD are preserved, along with their associated values, by being transferred to the resulting INDEX or INFO files created by swpackageor swcopy. (Refer to swpackage(4) for more information on INDEX and INFO files.)

The keyword is a filename character string. The value associated with a keyword is processed as an attribute_value. It can be continued across multiple input lines or can reference a file containing the value for the keyword.

Vendor-defined attributes are noted during packaging or when modified with swmodify. These attributes can be listed with swlist.

As always, use caution in constructing your Product Specification File. If you misspell a standard keyword, SD may mistake the keyword for a vendor-defined attribute.

VALUE TYPES

The value for each attribute must be of a specific type. The types are:

tag_string

Maximum length: 64 bytes

Examples: HP, SD

Tag strings support a subset of isascii() characters only:

Requires one or more characters from: "A-Z", "a-z", "0-9", including the first character.

The isspace() characters are not allowed.

SDU metacharacters not allowed: . , : =

Shell metacharacters not allowed: # ; & ( ) { } | < >

Shell quoting characters not allowed: " ` '\

Directory path character not allowed: /

one_line_string

Maximum length: 256 bytes

Examples: Hewlett-Packard Company

One-line strings support a subset of isascii() characters only:

No isspace() characters, except for space and tab, are allowed.

multi_line_string

Maximum length: 8K (1Mb for readme)

Multi-line strings support all isascii() characters. They represent one or more paragraphs of text. They can be specified in-line, surrounded by double-quotes. They can also be stored in a file, and specified using the ``< filename'' format.

revision_string

Maximum length: 64 bytes

Examples: 2.0, B.11.00

Revision strings contain zero or more dot-separated one_line_strings (above).

boolean

Maximum length: 8 bytes

Examples: true, false

One of the values "true" or "false".

path_string

Maximum length: 255 bytes for tapes, 1024 bytes for depots

Examples: /usr, /mfg/sd/scripts/configure

An absolute or relative path to a file. Many attributes of this type are restricted to 255 bytes in length. This restriction is due to the tar(1) command, which requires a file's basename(1) be <= 100 bytes, and a file's dirname(1) to be <= 155 bytes. (Some implementations of tar enforce < and not <=.)

uname_string

Maximum length: 64 bytes

Examples: 9000/7*:*|9000/8*:*, HP-UX, ?.11.*

Uname strings containing a subset of isascii() characters only.

No isspace() characters are allowed.

Shell pattern matching notation allowed: [ ] * ? !

Patterns can be "ORed" together using the separator: |

path_mapping_string

Maximum length: none

Examples: /mfg/sd/files/usr = /usr

A value of the form: ``source[=destination]'' where the source defines the directory in which subsequently defined files are located. The optional destination maps the source to a destination directory in which the files will actually be installed.

file_specification

Maximum length: none

Examples: -m 04555 sbin/swinstall or * (to denote all files and directories)

Explicitly specifies a file or directory to be packaged, using the format:

[-m mode] [-o [owner[,]][uid]] [-g [group[,]][gid]] [-v] [source] [destination]

The source and destination can be paths relative to source and destination directories specified in the path_mapping_string.

You can also use * to include all files below the source directory specified by a directory keyword.

permission_string

Maximum length: none

Examples: -u 0222 -o root -g sys

A value of the form:

[-m mode|-u umask ] [-o [owner[,]][uid]] [-g [group[,]][gid]]

where each component defines a default permissions value for each file and directory defined in a fileset. The default values can be overridden in each file's specific definition. The owner and group fields are of type tag_string. The uid and gid fields are of type unsigned integer. The mode and umask are unsigned integers, but only supports the octal character set: "0"-"7".

software_specification

Maximum length: none

Examples: SD.agent or SD,r=2.0,a=HP-UX_B.11.00_32

Software specifications are used to specify software in dependencies, ancestors and other attributes, as well as command line selections. The SD commands and attributes support the following syntax for each software_specification:

bundle[.product[.subproduct][.fileset]][,version] product[.subproduct][.fileset][,version]

  • The = (equals) relational operator lets you specify selections with the following shell wildcard and pattern-matching notations:

    • [ ], *, ?

    For example, *man selects all bundles and products with tags that end with "man".

  • Bundles and subproducts are recursive. Bundles can contain other bundles and subproducts can contain other subproducts, for example:

    • bun1.bun2.prod.sub1.sub2.fset,r=1.0

    or (using expressions):

    • bun[12].bun?.prod.sub*,a=HP-UX

  • The \* software specification selects all products. Use this specification with caution.

The version component has the form:

[,r <op> revision][,a <op> arch][,v <op> vendor] [,c <op> category][,q=qualifier][,l=location] [,fr <op> revision][,fa <op> arch]

  • location applies only to installed software and refers to software installed to a location other than the default product directory.

  • fr and fa apply only to filesets.

  • The <op> (relational operator) component can be of the form:

    • ==, >=, <=, <, >, or !=

    which performs individual comparisons on dot-separated fields.

    For example, r>=B.10.00 chooses all revisions greater than or equal to B.10.00. The system compares each dot-separated field to find matches. Shell patterns are not allowed with these operators.

  • The = (equals) relational operator lets you specify selections with the shell wildcard and pattern-matching notations:

    • [ ], *, ?, !

    For example, the expression r=1[01].* returns any revision in version 10 or version 11.

  • All version components are repeatable within a single specification (e.g. r>=A.12, r<A.20). If multiple components are used, the selection must match all components.

  • Fully qualified software specs include the r=, a=, and v= version components even if they contain empty strings. For installed software, l= is also included.

  • No space or tab characters are allowed in a software selection.

  • The software instance_id can take the place of the version component. It has the form:

    • [instance_id]

    within the context of an exported catalog, where instance_id is an integer that distinguishes versions of products and bundles with the same tag.

PRODUCT SPECIFICATION FILE SEMANTICS

The following sections describe the attributes which can be defined.

Distribution (Depot) Specification

The following is an example of a distribution specification:

distribution or depot layout_version 1.0 tag APPLICATIONS_CD copyright < data/copyright.cd description < data/description.cd number B2358-13601 title HP-UX Applications Software Disc [<vendor specification>] ... [<bundle specification>] ... <product specification> [<product specification>] ... end

distribution or depot"

Keyword that begins the distribution specification. Each keyword defines an attribute of the distribution depot or tape itself. All keywords are optional, even if a distribution specification is included in a PSF.

layout_version

Defines the semantics to use when parsing the PSF. To ensure IEEE Standard 1387.2 semantics, define a layout_version of 1.0, as the first attribute.

tag

Defines the identifier (short name) for the distribution depot or tape.

copyright

Defines the copyright information for the distribution depot or tape; the value is either the text itself (within double-quotes) or a pointer to the filename containing the text.

description

Defines the multi-paragraph description of the distribution depot or tape; the value is either the text itself (within double-quotes) or a pointer to the filename containing the text.

distribution

If a distribution specification is included in the PSF, swpackage requires only the keyword plus one or more contained product definitions. The depot keyword can also be used in place of distribution.

number

Defines the part or manufacturing number of the distribution depot (e.g. CD-ROM) or tape.

title

Defines the full name (one-line description) of the distribution depot or tape.

end

Ends the distribution specification. This keyword is optional.

Vendor Specification

The layout_version defined for the PSF file determines how vendor specifications are associated with products and bundles. If a layout_version is not defined or is defined as 1.0, vendor specifications will be associated with all subsequent products and bundles that define a matching vendor_tag attribute.

If a layout_version of 0.8 is specified, all subsequent products and bundles will automatically be assigned a vendor_tag from the last vendor object defined at the distribution level, if any, or from a vendor object defined within a product or bundle, unless a vendor_tag is explicitly defined.

Note that the vendor specification is not the same as vendor-defined attributes described in the "Vendor-Defined Attributes" section.

The following is an example of a vendor specification:

vendor tag HP description < data/description.hp title Hewlett-Packard Company end

Each keyword defines an attribute of a vendor object. If a vendor specification is included in the PSF, swpackage requires the vendor and tag keywords.

vendor

Keyword that begins the vendor specification.

tag

Defines the identifier (short name) for the vendor.

title

Defines the full name (one-line description) for the vendor.

description

Defines the multi-paragraph description of the vendor; the value is either the text itself (within double-quotes) or a pointer to the filename containing the text.

end

Ends the vendor specification. This keyword is optional.

Category Specification

The following is an example of a category specification.

category tag title description revision end

category

Keyword that begins the category specification.

tag

Defines the identifier (short name) for the category.

title

Defines the full name (one line description) for the category.

description

A more detailed description of the category.

revision

Determines which category object definition to maintain in a depot when a definition being installed or copied does not match a definition already in the depot with the same category_tag.

end

Ends the category specification. This keyword is optional.

Product or Bundle Specifications

The following is an example of a product or bundle specification. Keywords marked with a + apply to products only and keywords marked with a - apply to bundles only. Products are assumed to be locatable unless they explicitly define the is_locatable attribute to false. Non-locatable products must define this attribute.

product or bundle

tag SD architecture HP-UX_B.11.00_32/64 category_tag system_mgt - contents prod.fs1,r=1.0,a=,v= copyright < data/copyright.sd description < data/description.sd directory / is_locatable false is_patch false layout_version 1.0 machine_type 9000/7*:* number J2326AA os_name HP-UX os_release ?.11.* os_version [A-Z] + postkernel /usr/lbin/kernel_build + readme < data/README.sd revision 2.0 title HP Software Distributor vendor_tag HP + [<control script specifications>] + [<subproduct specifications>] + <fileset specification> + [<fileset specification>] ... end

Each keyword defines an attribute of a product or bundle object. For each product specified, swpackage requires only the product and tag keywords, plus one or more contained fileset definitions. For each bundle specified, swpackage requires the bundle, tag, and contents keywords.

product

Required keyword that begins the product specification.

tag

Defines the identifier (short name) for the product or bundle.

architecture

Describes the target system(s) on which the product or bundle will run. Provides a human-readable summary of the four uname(1) attributes which define the exact target system(s) the product supports.

bundle

Required keyword that begins the bundle specification.

category_tag

A repeatable tag-based attribute identifying a set of categories of which the software object is a member. This is used as a selection mechanism and can be used independent of patches. The default value is an empty list or patch if the is_patch attribute is set to true.

Like vendor_tag, this attribute can be used as a pointer to a category object that contains additional information about the category (for example, a one-line title definition and a description of the category).

Note that the category tag patch is reserved. When is_patch is set to true, a built-in category_tag attribute of value patch is automatically included.

NOTE: You can only change the patch value by performing a swpackage operation or by using swmodify to change the value of the is_patch attribute.

contents

The list of fully qualified software_specs (all version-distinguishing attributes included) for the bundle contents. The contents should also be at the fileset level and include all dependencies. More general software_specs are also supported, including bundles containing other bundles, but the bundle contents might vary between invocations.

copyright

Defines the copyright information for the product or bundle; the value is either the text itself (within double-quotes) or a pointer to the filename containing the text.

description

Defines the multi-paragraph description of the product or bundle; the value is either the text itself (within double-quotes) or a pointer to the filename containing the text.

directory

Defines the default, absolute pathname to the directory in which the product's files will be installed (i.e. the root directory of the product). If this attribute is not specified, swpackage assigns a value of "/".

is_locatable

Defines whether the product or bundle can be installed into any directory, or whether it must be installed into a specific directory. If this attribute is not specified, swpackage assigns a value of "true".

is_patch

Identifies a software object as a patch. The default value is false. When set to true, a built-in category_tag attribute of value patch is automatically included.

layout_version

The version of the IEEE Standard 1387.2 to which the HP-specific data_model_revision conforms. Possible values are 1.0 (the default value) or 0.8.

machine_type

Defines the machine(s) on which the product will run. (If not specified, swpackage assigns a value of "*", meaning the product runs on all machines.) If there are multiple machine platforms, use wildcards or use the '|' character to separate them. This attribute should pattern match to the value of

  • uname -m [: getconf HW_CPU_SUPP_BITS]

on the supported target machine(s).

number

Defines the part or order number for the product.

os_name

Defines the operating system(s) on which the product will run. (If not specified, swpackage assigns a value of "*", meaning the product runs on all operating systems.) If there are multiple operating systems, use wildcards or use the '|' character to separate them. This attribute should pattern match to the value of

  • uname -s [: getconf KERNEL_BITS]

on the supported target system(s).

os_release

Defines the operating system release(s) on which the product will run. (If not specified, swpackage assigns a value of "*", meaning the product runs on all releases.) If there are multiple operating system releases, use wildcards or use the '|' character to separate them. This attribute should pattern match to the value of uname -r on the supported target system(s).

os_version

Defines the operating system version(s) on which the product will run. (If not specified, swpackage assigns a value of "*", meaning the product runs on all versions.) If there are multiple operating system versions, use wildcards or use the '|' character to separate them. This attribute should pattern match to the value of uname -v on the supported target system(s).

postkernel

Defines a kernel build script to be executed when kernel filesets are loaded. (Kernel filesets have the is_kernel attribute set to true .) The default kernel script is /usr/sbin/mk_kernel. (See mk_kernel(1M) for more information.) The default script executes when the postkernel attribute is not specified. Only one kernel build script is allowed per product, and the script executes only once, even if defined for multiple filesets.

readme

Defines the README information for the product or bundle; the value must be a pointer to the filename containing the text.

revision

Defines the revision (release number, version number) of the product or bundle.

title

Defines the full name (one-line description) of the product or bundle.

vendor_tag

Associates this product or bundle with the last defined vendor object, if that object has a matching tag attribute.

end

Ends the product or bundle specification. This keyword is optional.

Subproduct Specification

The following is an example of a subproduct specification:

subproduct tag Manager contents commands agent data man description < data/description.manager title Management Utilities end

Each keyword defines an attribute of a subproduct object. If a subproduct is specified, swpackage requires the subproduct, tag, and contents keywords.

subproduct

Keyword that begins the subproduct specification.

tag

Defines the identifier (short name) for the subproduct.

contents

Defines the filesets or subproducts that make up a subproduct. (Subproducts can contain other subproducts.) The value is a whitespace separated list of fileset or subproduct tag values. In the PSF, fileset definitions are not contained within subproduct definitions. The contents keyword is used to assign filesets to subproducts.

description

Defines the multi-paragraph description of the subproduct; the value is either the text itself (within double-quotes) or a pointer to the filename containing the text.

title

Defines the full name (one-line description) of the subproduct.

end

Ends the subproduct specification. This keyword is optional.

Fileset Specification

The following is an example of a fileset specification:

fileset

tag commands ancestor newprod.fs architecture HP-UX_B.11.00_32/64 category_tag system_mgt description < data/description.commands is_kernel false is_locatable false is_patch false is_reboot false is_sparse false machine_type 9000/[78]*:* os_name HP-UX os_release ?.11.* os_version ? revision 2.15 supersedes product.fileset,fr=revision title Commands (management utilities) [<control file specifications>] [<dependency specifications>] [<file specifications>]

end

Each keyword defines an attribute of a fileset object. For each fileset specified, swpackage requires the fileset and tag keywords, plus zero or more file specifications.

You can define additional disk space requirements for the fileset using a space control_file. (See the "Control Script Specification" section for more information.)

fileset

Keyword that begins fileset specification.

tag

Defines the identifier (short name) for the fileset.

architecture

Describes the target system(s) on which the fileset will run if filesets for multiple architecture are included in a single product. Provides a human-readable summary of the four uname(1) attributes which define the exact target system(s) the product supports. Many filesets do not include an architecture; only a product architecture need be defined.

ancestor

A list of filesets that will match the current fileset when installed on a target system, if the match_target installation option is specified. Also determines the base to which a patch is applied.

category_tag

A repeatable tag-based attribute identifying a set of categories of which the software object is a member. This is used as a selection mechanism and can be used independent of patches. The default value is an empty list or patch if the is_patch attribute is set to true.

Like vendor_tag, this attribute can be used as a pointer to a category object that contains additional information about the category (for example, a one-line title definition and a description of the category).

Note that the category tag patch is reserved. When is_patch is set to true, a built-in category_tag attribute of value patch is automatically included.

NOTE: You can only change the patch value by performing a swpackage operation or by using swmodify to change the value of the is_patch attribute.

description

Defines the multi-paragraph description of the fileset; the value is either the text itself (within double-quotes) or a pointer to the filename containing the text.

is_kernel

A value of "true" defines the fileset as being a contributor to the operating system kernel; the target system(s) kernel build process will be invoked after the fileset is installed. If this attribute is not specified, swpackage assumes a default value of "false".

is_locatable

Defines whether the fileset can be installed into any directory, or whether it must be installed into a specific directory. If this attribute is not specified, swpackage assigns a value of true.

is_patch

Identifies a software object as a patch. The default value is false. When set to true, a built-in category_tag attribute of value patch is automatically included.

is_reboot

A value of "true" declares that the fileset requires a system reboot after installation. If this attribute is not specified, swpackage assumes a default value of "false".

is_sparse

Indicates that a fileset contains only a subset of files in the base (ancestor) fileset and that the contents are to be merged with the base fileset. The default value is false. If the is_patch attribute is true, is_sparse is also set to true for the fileset, although it can be forced to false.

machine_type

Defines the machine(s) on which the files will run if a fileset architecture has been defined. (If not specified, swpackage assigns a value of "*", meaning the files run on all machines.) If there are multiple machine platforms, use wildcards or use the '|' character to separate them. This attribute should pattern match to the value of

  • uname -m [: getconf HW_CPU_SUPP_BITS]

on the supported target machine(s).

os_name

Defines the operating system(s) on which the files will run if a fileset architecture has been defined. (If not specified, swpackage assigns a value of "*", meaning the files run on all operating systems.) If there are multiple operating systems, use wildcards or use the '|' character to separate them. This attribute should pattern match to the value of

  • uname -s [: getconf KERNEL_BITS]

on the supported target system(s).

os_release

Defines the operating system release(s) on which the files will run. (If not specified, swpackage assigns a value of "*", meaning the files run on all releases.) If there are multiple operating system releases, use wildcards or use the '|' character to separate them. This attribute should pattern match to the value of uname -r on the supported target system(s).

os_version

Defines the operating system version(s) on which the files will run. (If not specified, swpackage assigns a value of "*", meaning the files runs on all versions.) If there are multiple operating system versions, use wildcards or use the '|' character to separate them. This attribute should pattern match to the value of uname -v on the supported target system(s).

revision

Defines the revision (release number, version number) of the fileset.

supersedes

Used when a patch is replaced by (or merged into) a later patch. The attribute indicates which previous patches are replaced by the patch being installed or copied. This attribute value is a list of software specifications of other patches that this patch "supersedes".

title

Defines the full name (one-line description) of the fileset.

end

Ends the fileset specification. This keyword is optional.

Dependency Specification

You can add optional dependency information to a fileset definition if installation or execution of a fileset depends on the presence or absence of another fileset:

prerequisites

A list of software that must be installed before the current fileset can be installed.

corequisites

A list of software that can be installed at the same time as the current fileset but must be present before the current fileset can be run.

exrequisites

A list of software that may not be installed before or at the same time the current fileset is installed.

If a dependency is not met, SD prevents the fileset from being installed.

The following is an example of a dependency specification:

corequisites SD.data ... prerequisites productA,r>=2.1 ... exrequisites productB,r>=2.1 ...

Each keyword/value defines a dependency relationship on another software object. The object can be within the same product as the dependent fileset, or it can be within another product.

Multiple dependency specifications are allowed. You can use them to define AND relationships between the dependencies. (The AND relationship is implied because all dependencies must be satisfied.)

You can also define OR relationships using the '|' character. White spaces are not allowed around the OR character, and OR dependencies are resolved from left to right. For example:

  • corequisite P.F

  • prerequisite ProdA | ProdB | BundleA | ProdC.FS

    corequisite ProdX | ProdY | BundleZ | ProdW.FS

Note that if you specify a dependency for a fileset and the fileset is superseded by another fileset as part of a patch, SD will still recognize the dependency.

Control Script Specification

Control scripts are often referred to as control_files, although control_files may include non-script files such as space files, INDEX files, and INFO files.

Control_file syntax is:

  • control_file source[=tag][filename]

  • Where tag is the script name.

You can also list each item on a separate line:

control_file source filename tag tag_name

The following is an example of control script specifications:

checkinstall scripts/checkinstall checkremove scripts/checkremove configure scripts/configure fix scripts/fix postinstall scripts/postinstall postremove scripts/postremove preinstall scripts/preinstall preremove scripts/preremove request scripts/request unconfigure scripts/unconfigure unpostinstall scripts/postinstall unpreinstall scripts/preinstall verify scripts/verify space space

For control scripts: