Previous section.

Systems Management: Distributed Software Administration
Copyright © 1997 The Open Group

Software Structures

Classes and Attributes

This section describes the software classes and attributes applicable to software administration. Each utility in section Software Administration Utilities describes the operations on the software objects including how the values of the attributes affect the behavior of the operations. Whether these operations and behaviors are implemented as procedures on software structures or by other means is undefined within this Software Administration specification.

The software administration classes form a hierarchy that consists of: distributions, media, installed_software, categories, vendors, bundles, products, subproducts, filesets, control_files, and files.

At each level, this hierarchy is defined by containment attributes which reference objects at lower levels. Operations on objects of lower levels, such as files, are actually enacted by operations on objects of higher levels. For example, files may be created in a distribution by copying a software product.

A "common class" is used to define attributes that are common between related objects. Objects inherit attribute definitions from common classes as well as their individual attributes. This provides logical relationship between the objects that share the same common class. The software administration common classes are: software_collection, software, and software_file.

Objects that share the same common class are also referred to generically as: software_collections, software objects, and software_files.

In tables in the following sections, attributes are listed with various properties. The attributes and their values manifest themselves as part of the utilities defined in section Software Administration Utilities and the software packaging layout in section Software Packaging Layout .

The names of attributes are as provided. If the underlying host allows for the distinction of case, the attribute names is sensitive to case. Where values of attributes are shown, if the underlying host allows for the distinction of case, the values of attributes is sensitive to case. If the underlying host does not allow for the distinction of case for either the name or value of an attribute, the way in which case differences are handled is implementation defined.

The attribute tables in subsequent sections list the following information:

Attribute

The name of the attribute, also used as the keyword for the attribute.

Length

The maximum permitted length of the value of the attribute.

All attribute values in this Software Administration specification are represented only as strings. The length is the maximum permitted length of the value in bytes or, for attributes whose values are lists, the maximum permitted number of items permitted in the list. Since the means of storing such data for installed software is undefined within this Software Administration specification, an implementation may store such values internally in different structures for installed software. See the descriptions for distribution catalog, exported catalog and installed_software catalog in the Glossary.

Permitted Values

The character sequences permitted as values for this attribute.

Default Value

The value of the attribute if the attribute is not specified.

A default value of None means the system will not supply a value in cases where the attribute has not been specified and the attribute is not one whose values are generated dynamically. See Exported Catalog Structure and Software Definition File Format .

The attribute tables are broken into three groups:

Beyond this convention, the order of attributes shown in this section is not significant. For any attribute ordering rules, see Software Definition File Format . Some attributes do not apply to software objects in both distributions and installed_software objects. See Software Definition File Format for details.

Management of lists of software_collections contained within a host is undefined within this Software Administration specification. See Source and Target Specification and Logic for the way in which software_collections are identified relative to a software host.

Software_Collection

A software_collection is the common class from which distribution and installed_software objects inherit.

A software_collection can contain product and bundle software objects. A Software_collection can contain multiple versions of the same product or bundle software objects, namely products or bundles that share the same value for the tag attribute.

Each software_collection has a catalog associated with it that contains the metadata describing all software objects in that collection.1

Table: Attributes of the Software_Collection Common Class

Attribute Length Permitted Values Default Value
path Undefined Pathname character string Implementation defined
dfiles 64 Filename character string dfiles
layout_version 64 1.0 1.0
pfiles 64 Filename character string pfiles
bundles Undefined List of bundle_software_specs Empty list
products Undefined List of product_software_specs Empty list

Software_Collection Attributes
The following attributes describe each instance of the software_collection class, and are inherited by each instance of the distribution and installed_software classes:

bundles

A list of bundle_software_specs.

Each software_spec refers to a bundle. Each software_spec is fully qualified. See Software Specification and Logic for the syntax of software_spec.

dfiles

The name of the directory in the exported catalog structure below which any attributes stored as files for the software_collection are stored (see Directory Structure .

layout_version

This attribute, and its value, are included for future use.

path

The identifier for a particular software collection on a host.

The value of the path attribute is an absolute path. The default value of this attribute is implementation defined. See Extended Options .

pfiles

The name of the directory in the exported catalog structure below which any control_files, and attributes stored as files, for the product are stored (see Directory Structure .

products

A list of product_software_specs.

Each software_spec refers to a product. Each software_spec is fully qualified. See Software Specification and Logic for the syntax of software_spec.

Distribution

A distribution contains product and bundle software objects. It is contained on a distribution media or may be part of the file store of a system. The distribution may contain a variety of software products and bundles, and that software may be applicable to a variety of hardware architectures or operating systems.

The distribution class inherits attributes from the software_collection common class.

A particular distribution object is identified within a host by the path attribute. For distributions, the path attribute is the pathname to the directory containing a distribution in the directory format of the software packaging layout, or a file or device file containing a distribution in a serial format of the software packaging layout.

Distributions can contain more than one version of a product or bundle. A version is uniquely identified within a distribution by the values of the revision, vendor_tag, and architecture attributes.

Table: Attributes of the Distribution Class

Attribute Length Permitted Values Default Value
       
uuid 64 Portable character string Empty string
media Undefined List of media sequence_number values Empty list

Distribution Attributes
These attributes, along with the attributes listed in Attributes of the Software_Collection Common Class , describe each instance of the distribution class:

media

A list of media.sequence_number values for the distribution if the distribution spans multiple media. Each medium in a distribution has its media.sequence_number in the INDEX file defined for that medium. See Serial Format and Multiple Media . An implementation may include definitions for all media in the global INDEX file found on the first medium in the distribution. The media.sequence_number for the first medium in the distribution is 1 and is the first item in the list.

uuid

A string that should uniquely identify a distribution.

The way in which a unique string is generated is undefined. This attribute is used for determining whether subsequent media are from the same set as the one that an install or copy started with. This attribute is defined for distributions that span multiple media.

Media

The media class is used to describe the media attributes for distributions that span multiple media.

Table: Attributes of the Media Class

Attribute Length Permitted Values Default Value
sequence_number 64 Portable character string 1
       
       

Media Attributes

sequence_number

Identifies a particular media when a distribution spans multiple media.

It is used for identifying the correct medium on which to find the distribution files when the distribution spans multiple media.

Installed_Software

The installed_software class is used to describe the bundle and product software that has been installed on a file system.

The installed_software class inherits attributes from the software_collection common class.

A particular installed_software object is identified within a host by both the path attribute (defined in the software_collection class) and the catalog attribute. For installed_software objects, the path attribute is the root directory for the installed_software object below which all the software files were installed.

An installed_software object can contain multiple versions of a product or bundle. Multiple product and bundle versions are distinguished by the same attributes as distribution products, plus the user-specifiable location and qualifier attributes. Multiple product versions may be installed at the same time in an installed_software object. Different product versions may be installed into different locations, and different filesets from different product versions may be installed in the same location.

Table: Attributes of the Installed Software Class

Attribute Length Permitted Values Default Value
catalog Undefined Portable character string Undefined
       
       

Installed_Software Attributes
This attribute, along with the attributes listed in Attributes of the Software_Collection Common Class , describe each instance of the installed_software class:

catalog

Along with the path attribute, identifies a single installed_software object.

Different installed_software objects may have the same value for the path attribute if and only if the value of their catalog attributes are different.

The catalog attribute is evaluated relative to the path attribute. It may be a POSIX.1 pathname or other identifier: together they form the key to the undefined catalog storage for this installed_software object.

Vendor

The vendor class is used to describe the attributes of the vendors associated with products and bundles.

Each product or bundle identifies a vendor with a vendor_tag that identifies a particular vendor object. The vendor_tag attribute is used to distinguish products and bundles from different vendors that share the same product or bundle tag.

Table: Attributes of the Vendor Class

Attribute Length Permitted Values Default Value
tag 64 Filename character string Empty string
title 256 Portable character string Empty string
description Undefined Portable character string Empty string
       

Vendor Attributes

description

A more detailed description of the vendor or information about the vendor.

tag

A short identifying name of the vendor that supplied the product.

This attribute is used to to distinguish products and bundles from different vendors, and for resolving software specifications. Each software vendor should attempt to have a unique value for the tag attribute.

title

A longer name of the vendor that supplied the product. It is used for presentation purposes.

Category

Category Attributes
The category attributes class is used to describe the attributes of the category attributes associated with products and bundles.

Each product or bundle identifies a category attribute that identifies a particular object. tag.

Table: Attributes of the Category Class

Attribute Length Permitted Values Default Value
tag 64 Filename character string None
title 256 Portable character string Empty string
description Undefined Portable character string Empty string
revision 64 Portable character string Empty string
       

Category Attributes

tag

A short name identifying the category. Each category must have a unique tag. This attribute is used to identify a particular category object that a software item identifies through one of its attributes. The tag patch is reserved as a built-in category for filesets with the is_patch attribute.

title

A longer name of the category used for presentation purposes.

description

A more detailed description of the category.

revision

This attribute is only used to determine which category object definition to maintain in a software collection when one being installed or copied does not match the one already in the software collection for that category.tag. The category definition with the higher revision is maintained.

Software

Software is the common class from which products, bundles, filesets and subproducts inherit.

Table: Attributes of the Software Common Class

Attribute Length Permitted Values Default Value
tag 64 Filename character string None
category_tag Undefined list of category.tag values Empty list, or patch if the object has the is_patch attribute set to true
create_time 16 Integer character string None
description Undefined Portable character string Empty string
is_patch 8 One of: true, false false
mod_time 16 Integer character string None
size 32 Integer character string None
title 256 Portable character string Empty string
       

Software Common Attributes
The following attributes describe each instance of the software common class, and are inherited by each instance of the product, bundle, fileset, and subproduct classes:

category_tag

A repeatable tag based attribute identifying a set of categories that a software object is a member of. This is used as a selection mechanism, and can be used independent of patches.

Like vendor_tag, this attribute optionally is also a pointer to a category object that contains additional information about this category (a "title" one-line definition, and a "description" of the category).

All software items with the attribute of is_patch set to true, have a built-in category of patch automatically included. A category of patch can not be specified in the PSF file.

create_time

A value which is set by the implementation to be the time that the catalog information for this object was first written.

Time is represented as seconds since the Epoch, as defined in POSIX.2.

description

A more detailed description of the software object.

is_patch

A new Boolean attribute, is_patch, will be defined to indicate that a software object is to be identified as a patch.

Only filesets with the is_patch attribute have patched files in this proposal. The other levels can be identified as patches for the listing utilities to facilitate identification of patch software at any level.

Patch filesets have particular behaviors:

mod_time

A value which is set by the implementation to be the time that the catalog information for this object was last written.

Time is represented as seconds since the Epoch, as defined in POSIX.1.

size

The sum of the sizes in bytes of all files and control_files contained within the software object.

For objects other than filesets, the value is computed dynamically as required. See Bundle Definition , Product Definition , and Subproduct Definition .

tag

A short name associated with the software object.

It is the one attribute that is always required to identify a software object. For more information on software selections, see Software Specification and Logic .

title

A longer name associated with the software object, used for display purposes.

Products

Products can contain filesets, which can be grouped into subproducts. Products are named by their tag attributes. A particular product object is uniquely identified within a software_collection by the tag attribute and by the version distinguishing attributes. The attributes that uniquely distinguish a particular product version within a software_collection are revision, architecture, vendor_tag, location, and qualifier.

The product class inherits the attributes of the software common class.

See subsection Software Compatibility within Software Specification and Logic .

Table: Attributes of the Product Class

Attribute Length Permitted Values Default Value
architecture 64 Portable character string Empty string
location Undefined Pathname character string <product.directory#
qualifier 64 Portable character string Empty string
revision 64 Portable character string Empty string
vendor_tag 64 Filename character string Empty string
all_filesets Undefined List of fileset tag values Empty list
control_directory Undefined Filename character string <product.tag#
copyright Undefined Portable character string Empty string
directory Undefined Pathname character string /
instance_id 16 Filename character string 1
is_locatable 8 One of: true, false true
postkernel Undefined Pathname character string Implementation defined
layout_version 64 1.0 1.0
machine_type 64 Software pattern matching string Empty string
number 64 Portable character string Empty string
os_name 64 Software pattern matching string Empty string
os_release 64 Software pattern matching string Empty string
os_version 64 Software pattern matching string Empty string
control_files Undefined List of control_filetag values Empty list
subproducts Undefined List of subproducttag values Empty list
filesets Undefined List of filesettag values Empty list

Product Attributes
The product attributes, along with the attributes listed in Attributes of the Software Common Class , describe each instance of the product class:

all_filesets

This is a list of all filesets defined for the product, as opposed to what is currently installed, described by the filesets attribute. The all_filesets attribute is used to determine completeness of this product when another software object has a dependency on this product. In checking a product prerequisite or corequisite, the existence of a filesettag in all_filesets that is not actually installed or available indicates that the dependency is not satisfied.

This does not affect exrequisites as they test whether any of the contents of the dependency specification are present instead of all of the contents tested for prerequisites or corequisites.

architecture

A vendor-defined string used to distinguish variations of a product.

It is used for presentation purposes and for resolving software specifications. If a product with the same value of the revision and vendor_tag attributes has different versions of software for different target architectures, or any other variation (such as supported locale), then the value of the architecture attribute is different for each version. No additional semantics is assumed for its value.

control_directory

The name of the product control directory below which the control_files for the product are stored within an exported catalog.

See Directory Structure .

control_files

A list of the values of the tag attribute for all the control_files in the product.

These scripts are executed before and after software load, and before and after software removal.

copyright

The copyright notice for the product.

directory

The vendor-defined directory commonly associated with the product.

Generally, this will be the directory in or below which all (or mostly all) files within the product are installed.

For a product which has filesets with is_locatable equals true, all files which contain this directory as the first part of their path can be relocated to the location directory during installation by replacing the productdirectory portion with the productlocation.

filesets

A list of the values of the tag attribute for all the filesets in the product which are currently installed (in an installed_software object) or available (in a distribution).

instance_id

A single attribute that distinguishes versions of products (and bundles) with the same tag.

It is a simple form of the version distinguishing attributes, valid only within the context of an exported catalog.

is_locatable

A boolean value indicating whether any of the filesets in the product have the is_locatable attribute set to true.

layout_version


This attribute, and its value, are included for future use.

location

Used for resolving software_specs for installed software.

A specific product location refers to all filesets of that product that are installed at that location. This is the path beneath which the relocatable files of that product are stored. See subsection "File Location" in swinstall .

This attribute is valid only for products in installed_software.

machine_type

A software pattern matching string describing valid machine members of the uname structure as defined by POSIX.2.

It is used for determining compatibility.

number

The semantics associated with the values of this attribute are undefined.

This attribute can be used to store such vendor-defined values as part number, order number or serial number.

os_name

A software pattern matching string describing valid sysname members of the uname structure as defined by POSIX.2.

It is used for determining compatibility.

os_release

A software pattern matching string describing valid release members of the uname structure as defined by POSIX.2.

It is used for determining compatibility.

os_version

A software pattern matching string describing valid version members of the uname structure as defined by POSIX.2.

It is used for determining compatibility.

postkernel

The path to the script that is run after the kernel filesets have been installed.

Any product containing kernel filesets should include this path. If this attribute is supplied, the corresponding script is executed used if it exists relative to the root directory of the installed_software. If this attribute is not supplied, then the implementation defined path (the default value for the attribute) is used if it exists relative to the root directory of the installed_software. Note that the use of an alternate root directory may mean that the default path does not exist relative to the root directory of the installed_software .

qualifier

Specified by a user when installing software and used for identifying a product (or set of product versions) using a logical name.

Applies only to products in installed_software.

revision

A vendor-defined string describing the revision of the product.

It is used for presentation purposes and for resolving software specifications. The revision is interpreted as a . (period) separated string. See Software Specification and Logic .

subproducts

A list of the values of the tag attribute for all the subproducts in the product.

vendor_tag

A short identifying name of the vendor that supplied the product.

This attribute may also be used to identify a vendor object containing additional attributes describing the vendor.

This attribute is used to distinguish software objects, allowing more than one vendor to produce a product with the same value of the other version distinguishing attributes. It is used for presentation purposes and for resolving software specifications.

Bundles

Bundles are groupings of software objects. Bundles contain references to products, parts of products, or other bundles. A software object can be referenced by more than one bundle.

The bundle class inherits the attributes of the software common class.

A particular bundle object is uniquely identified within a software_collection by the tag and by the version distinguishing attributes. The attributes that uniquely distinguish a particular bundle version are revision, architecture, location, vendor_tag, and qualifier.

Bundles, like products, are named by their tag attributes and share the same name space as products. Products and bundles is considered together in determining a unique value for instance_id.

Bundles and products include many of the same attributes. No bundle attributes are automatically derived from the contained product attributes. They are defined independently. See subsection "Software Compatibility" in Source and Target Specification and Logic .

Bundle definitions are copied or installed when explicitly specified in a software selection for swcopy and swinstall respectively. They remain installed until explicitly removed or until all of their contents are removed.

Table: Attributes of the Bundle Class

Attribute Length Permitted Values Default Value
architecture 64 Portable character string Empty string
location Undefined Pathname character string <<bundle.directory#
qualifier 64 Portable character string Empty String
revision 64 Portable character string Empty string
vendor_tag 64 Filename character string Empty string
contents Undefined List of software_specs Empty list
copyright Undefined Portable character string Empty string
directory Undefined Pathname character string Empty string
instance_id 16 Filename character string 1
is_locatable 8 One of: true, false true
layout_version 64 1.0 1.0
machine_type 64 Software pattern matching string Empty string
number 64 Portable character string Empty string
os_name 64 Software pattern matching string Empty string
os_release 64 Software pattern matching string Empty string
os_version 64 Software pattern matching string Empty string
       

Bundle Attributes

These attributes, along with the attributes listed in Attributes of the Software Common Class , describe each instance of the bundle class:

architecture

A vendor-defined string used to distinguish variations of a bundle.

It is used for presentation purposes and for resolving software specifications.

contents

A list of software_specs that defines the list of software grouped into this bundle, as originally defined in the PSF.

copyright

A copyright notice for the bundle.

directory

The default directory (and location) of the bundle.

This is the default path prepended, when the bundle is installed, to the location of each product and bundle specification within this bundle.

instance_id

A single attribute that distinguishes versions of bundles (and products) with the same tag.

It is a simple form of the version distinguishing attributes, valid only within the context of an exported catalog.

is_locatable

A boolean value indicating whether any of the contents in the bundle have the is_locatable attribute set to true.

layout_version

This attribute, and its value, are included for future use.

location

An attribute whose value is set when installing software and used for resolving software_specs for installed software.

When installing a bundle, the bundle location is prepended to the location specification for each software_spec in the contents of the bundle, before that software_spec is resolved.

The contents attribute of the bundle is not modified.

Applies only to bundles in installed_software.

machine_type

A software pattern matching string describing valid machine members of the uname structure as defined in POSIX.2.

It is used for determining compatibility.

number

The semantics associated with the values of this attribute are undefined.

This attribute can be used to store such vendor-defined values as part number, order number or serial number.

os_name

A software pattern matching string describing valid sysname members of the uname structure as defined in POSIX.2.

It is used for determining compatibility.

os_release

A software pattern matching string describing valid release members of the uname structure as defined in POSIX.2.

It is used for determining compatibility.

os_version

A software pattern matching string describing valid version members of the uname structure as defined in POSIX.2.

It is used for determining compatibility.

qualifier

Specified by a user when installing software, and used for identifying a bundle (or set of bundle versions) using a logical name.

Applies only to bundles in installed_software.

revision

A vendor-defined string used to distinguish different revisions of bundles from one another.

It is used for presentation purposes and for resolving software specifications.

vendor_tag

A short identifying name of the vendor that supplied the bundle.

This attribute is used to identify a vendor object containing additional attributes describing the vendor.

This attribute is used to distinguish bundles, allowing more than one vendor to produce a bundle with the same value of the tag attribute.

Filesets

The fileset class is used to define a set of software files. The fileset is the smallest level of software that can be managed by the tasks defined in this standard.

The fileset class inherits attributes from the software common class.

Filesets contain the actual files and control_files that make up the software product.

A particular fileset object is identified within a product by the tag attribute.2

Table: Attributes of the Fileset Class

Attribute Length Permitted Values Default Value
       
ancestor Undefined list of fileset software_specs of the form product.fileset,version product.tag

,r<revision
,a=architecture
,v=vendor_tag
applied_patches Undefined List of patch software_specs of the form product.fileset,version Empty list
control_directory Undefined Filename character string <fileset.tag#
corequisites Undefined List of dependency_specs Empty list
exrequisites Undefined List of dependency_specs Empty list
is_kernel 8 One of: true, false false
is_locatable 8 One of: true, false true
is_reboot 8 One of: true, false false
is_sparse 8 One of: true, false false
location Undefined Pathname character string <product.directory#
media_sequence_number Undefined List of mediasequence_number values 1
patch_state 16 One of applied, committed, superseded None
prerequisites Undefined List of dependency_specs Empty list
revision 64 Filename character string None
saved_files_directory Undefined Pathname character string Empty string
state 16 One of: configured, installed, corrupt, removed, available, transient None
supersedes (patch) Undefined list of patch software_specs Empty list
supersedes (update) Undefined list of fully qualified fileset software_specs of the form product.fileset,version Empty list
superseded_by Undefined patch software_spec of the form product.fileset,version Empty string
control_files Undefined List of control_filetag values Empty list
files Undefined List of filepath values Empty list

Fileset Attributes
These attributes, along with the attributes listed in Attributes of the Software Common Class , describe each instance of the fileset class:

ancestor

This attribute is used with a patch_match_target or update_match_target option. It designates an ancestor fileset to check for when the match_target option is set to true. The default for this option, if not defined, is any fileset with the same tags and other version distinguishing attributes, but with a lower product revision.

applied_patches

The applied_patches attribute is used to determine the list of patches that have been applied to a base fileset. It can be thought of as the inverse of the ancestor attribute.

If this attribute is an empty list, then this fileset has no patches applied to it.

control_directory

The name of the fileset control directory below which the control_files for the fileset are stored within an exported catalog. See Directory Structure .

control_files

A list of the values of the tag attribute for the control_files in the fileset

corequisites

A list of dependency_specs for software required to be installed and configured for this fileset to work.

Dependencies is considered when copying, installing, configuring, verifying, and removing software. See swconfig (swconfig analysis phase), swcopy (swcopy analysis phase), swinstall (swinstall analysis phase), swremove (swremove analysis phase), and swverify (swverify analysis phase).

The software specified by the dependency_spec must be complete in order for the dependency to be resolved successfully. See all_filesets in Limited Conformance .

exrequisites

A list of dependency_specs for software required not to be installed when this fileset is installed.

Dependencies is considered when installing, configuring, verifying, and removing software. See swconfig (swconfig analysis phase), swinstall (swinstall analysis phase), swremove (swremove analysis phase), and swverify (swverify analysis phase).

No part of the software specified by the dependency_spec may be installed in order for this dependency to be resolved successfully.

files

A list of the values of the path attribute for the files in the fileset.

is_kernel

A boolean value indicating the fileset requires a kernel rebuild.

is_locatable

A boolean value indicating if the fileset may be re-located during installation.

is_reboot

A boolean value indicating the host on which the fileset is configured should be re-booted.

is_sparse

This fileset denotes a fileset that is not complete, but one that has been qualified as an update (as opposed to a patch). One outcome of updating via a sparse fileset is that the catalog information from the old fileset is merged into the new fileset and the old fileset is then removed, leaving the system in the same state as it would be after an update of a full fileset.

This option should be used in conjunction with an ancestor attribute showing exactly which version or versions of software this sparse fileset can update. Filesets that are sparse are only useful when installed along with those versions, or when those versions are already installed.

location

Specifies the location below which relocatable files are stored.

This attribute is only valid for filesets in installed software. It differs from the productdirectory attribute only if relocation was specified during installation. See "File Location" subsection in swinstall .

media_sequence_number

Identifies the media.sequence_number for the medium on which the files for this fileset is found.

If a single fileset spans multiple media, this attribute identifies a list of media.sequence_number values, identifying all of the media on which the fileset is found. In that case, the order of the list is interpreted as the order in which to read the media. See Distribution , Media , and Serial Format and Multiple Media .

patch_state

The patch_state attribute only applies to installed patches and characterizes the current state of an installed patch.

prerequisites

A list of dependency_specs for software required to be installed prior to the installation of this fileset and configured prior to the configuration of this fileset.

Dependencies is considered when copying, installing, configuring, verifying, and removing software. See swconfig (swconfig analysis phase), swcopy (swcopy analysis phase), swinstall (swinstall analysis phase), swremove (swremove analysis phase), and swverify (swverify analysis phase).

The software specified by the dependency_spec must be complete in order for the dependency to be resolved successfully. See all_filesets in Limited Conformance

Circular definitions should be avoided within package definitions. Behavior when circular definitions are encountered is implementation defined.

revision

Defines the revision of the fileset.

It is used for presentation purposes and for resolving software specifications. A fileset revision, but with no behavioral value, must be specified if the patch has the same product version and same fileset tag as the fileset it patches. Two filesets with the same revision can now exist in the same product version - the base fileset and one or more patch filesets.

saved_files_directory

The value of the saved_files_directory that swinstall used to save the patched files if patch_save_files was set to true. When rolling back or committing this patch, this attribute is used to determine the directory to access the saved files.

The value of this option should be an absolute path. If the value is relative, the behavior is undefined. If the value is the empty string, then the behavior is undefined.

state

An indication of the current status of the fileset.

This attribute may have one of the following values: configured, installed, corrupt, removed, available, and transient.

supersedes (for patch)

The supersedes attribute is 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 is repeatable in order to facilitate merging of patches.

This attribute is a list of software specifications of other patches that this patch supersedes. When a patch supersedes another patch, the superseding patch is the one that is automatically selected by default (similar to the 1387.2 selection hueristic of "highest compatible versions"). See swinstall . A superseding patch will replace the files of the patch it supersedes when installed after that patch.

supersedes (for update)

This attributes designates that this fileset supersedes a previous fileset. The behavior associated with a fileset that supersedes another fileset is similar to the behavior of a fileset that is simply a later revision of the same fileset. In particular, the superseding fileset:

If multiple filesets are superseded by the same fileset, then this behavior applies to each of those filesets.

superseded_by

The superseded_by attribute lists what patch superseded this patch.

Subproducts

Subproducts are groupings of filesets and subproducts within a single product. Subproducts do not contain filesets or subproducts within the name space of the subproduct, but instead refer to to them. A subproduct can refer to another subproduct. A subproduct or fileset can be referenced by more than one subproduct.

The subproduct class inherits the attributes of the software common class.

A particular subproduct object is named, and identified within a product, by the tag attribute. The values of the tag attribute of all subproducts and filesets is unique within a product.

Subproduct definitions are copied or installed when any fileset specified in the contents of the subproduct is copied or installed with swcopy or swinstall respectively. They remain installed until explicitly removed or until all of their contents are removed.

Table: Attributes of the Subproduct Class

Attribute Length Permitted Values Default Value
       
contents Undefined List of tag values Empty list
       

Subproduct Attributes
These attributes, along with the attributes listed in Attributes of the Software Common Class describe each instance of the subproduct class:

contents

A list of tag values that defines the list of filesets and subproducts grouped into this subproduct.

Software_Files

Software_file is the common class that files and control_files inherit from. A software_file is a file as defined in POSIX.1.

Table: Attributes of the Software_Files Common Class

Attribute Length Permitted Values Default Value
       
cksum 16 Integer character string None
compressed_cksum 16 Integer character string None
compressed_size 16 Integer character string None
compression_state 16 One of: uncompressed, compressed, not_compressible uncompressed
compression_type 64 Filename character string Empty string
revision 64 Portable character string Empty string
size 16 Integer character string None
source Undefined Pathname character string None
       

Software_File Common Attributes
The following attributes describe each instance of the software_file class, and are inherited by each instance of the files and control_files classes:

cksum

An integer character string representing a 32-bit cyclic redundancy check (CRC) identical to that returned in the first field of the output of the cksum utility, as defined in POSIX.2.

compressed_cksum

Indicates the cksum CRC of the compressed software file in the same manner as the cksum attribute.

This attribute may be used to verify the integrity of a compressed file, and to help determine if a file to be copied is already present at the target.

compressed_size

Indicates the size of the compressed software file in the same manner as the size attribute.

This attribute can be used for computation of disk space analysis when the file will remain compressed after a copy.

compression_state

Indicates which one of the following conditions is true:

compression_type

Specifies the compression method used to compress the file if the value of the compression_state attribute is compressed.

The values supported for compression_type are implementation defined. The way in which an implementation uses this value to implement or execute the compression or uncompression of a file is undefined.

revision

This is a string indicating the revision level of the file.

size

Indicates the size of the software file in bytes as defined in POSIX.1. st_size.

source

When used in a PSF, this attribute specifies the pathname of the file or control_file to be placed in the distribution by the swpackage utility.

Files

Files are the actual files and directories that make up the fileset. Many of the file attributes (such as owner, group, and mode) are derived from, and dependent upon, a POSIX.1 file system.

The file class inherits attributes from the software_file common class.

A particular file object is identified within a fileset by the path attribute. When a file is located on a distribution, the path attribute indicates the intended installation location of the file. The value of the path attribute is also the path below the storage directory for that fileset within file storage structure of the distribution. See File Storage Structure . While a file is installed (in an installed_software object), the path attribute indicates the actual location of the file. This path is relative to the root directory for that installed_software object.

For regular files, the value of the size attribute is the actual file size in bytes. For symbolic links, this is the string length of the link_source attribute. For hard links, directories, and block and character special files, this is always zero. These types are set to zero since the actual space required by these types depends on the file system. An implementation should consider the impact of these types as part of disk space analysis.

The cksum attribute only has meaning for a file with type of regular file.

Table: Attributes of the File Class

Attribute Length Permitted Values Default Value
path Undefined Pathname character string None
archive_path Undefined Pathname character string Empty string
gid 16 Integer character string Undefined
group Undefined Filename character string Empty string
is_volatile 8 One of: true, false false
link_source Undefined Pathname character string None
major 16 Portable character string None
minor 16 Portable character string None
mode 16 Octal character string None
mtime 16 Integer character string None
owner Undefined Filename character string Empty string
type 8 One of: f, d, h, s, p, b, c, x, a, f
uid 16 Integer character string Undefined
       

File Attributes
These attributes, along with the attributes listed in Attributes of the Software Common Class , describe each instance of the file class:

archive_path

This attribute is used to designate the path to the archive that this file should be added to, instead of installing it to the "path" location. When used in conjunction with the save_files option, the .o file that previously existed in the archive is saved, and can be restored.

gid

The numeric group id of the file (POSIX.1. st_gid).

group

The group name of the file (POSIX.1. gr_name).

is_volatile

A volatile file is a file whose contents can change, or which can be removed after it has been installed.

link_source

The pathname of the target of the link.

This attribute only has meaning if the file type is a hard or symbolic link.

major

This attribute only has meaning if the file type is character or block special file.

The value of this attribute has the same values and meaning as the devmajor field in the tar archive specified in POSIX.1.

minor

This attribute only has meaning if the file type is character or block special file.

The value of this attribute has the same values and meaning as the devminor field in the tar archive specified in POSIX.1.

mode

The mode attribute is an octal representation of the permissions bits of the file (POSIX.1, st_mode).

This attribute has no meaning if the file type is a hard or symbolic link.

mtime

This is the time of the last data modification of the file (POSIX.1, st_mtime).

owner

The name of the owner of the file (POSIX.1, pw_name).

path

The pathname of the file.

type

Supported file types are those described in POSIX.1, file types, plus hard link and symbolic link.

The permitted values of this attribute are the following: f (regular file), d (directory), h (hard link), s (symbolic link), p (named pipe (FIFO)), b (block special device), c (character special device), x (delete file during an install or update), a (archive file during install or update).

uid

The numeric user id of the file (POSIX.1, st_uid).

Control_Files

Control_files can be scripts, data files, or INFO files. The product and fileset INFO files in the software packaging layout are included as control_files. Control scripts are the vendor-supplied scripts executed at various steps by the software administration utilities.

The control_file class inherits attributes from the software_file common class.

A particular control_file object is identified within a product or fileset by the tag attribute. The path attribute is the storage location of the file relative to the control directory. For distributions, the control directory is the directory in the software packaging layout where the control_files are stored. For installed_software objects, this control directory location is undefined.

Table: Attributes of the Control File Class

Attribute Length Permitted Values Default Value
tag 64 Filename character string None
interpreter Undefined Filename character string sh
path Undefined Filename character string None
result 16 One of: none, success, failure, warning none
       

Control_File Attributes
These attributes, along with the attributes listed in Attributes of the Software Common Class , describe each instance of the control_file class:

interpreter

The name of the interpreter used to execute those control_files that are executed as part of the utilities defined in this Software Administration specification.

Within a distribution, a value for this attribute other than sh implies that the distribution is not a conformant one. Such a distribution may be one which is conformant with extensions. See Conformance .

path

The filename of the control_file.

Multiple control_file entries can have the same value of the path attribute. This implies that the same script is executed in different steps within the execution of a utility.

result

Contains the result of the execution of the control script.

This attribute is only valid for control_files in installed_software. A complete list of legal results is contained in Attributes of the Control File Class .


tag

The identifier of the control_file.

All control files are loaded and maintained within the distribution and installed software catalogs by the utilities defined in this Software Administration specification. These utilities execute control scripts with particular tags at various steps in the execution of the utility. The values for the control_file tag attribute for which this Software Administration specification defines behavior are as follows:


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


Footnotes

1.
For distribution software_collections, the catalog information is stored in the software packaging layout in an exported catalog structure. For installed_software objects, how the catalog information is stored (whether in a file or database, for example) is undefined within this Software Administration specification.

2.
A fileset is strictly contained within the product. There can not be more than one fileset in the product with the same tag. A fileset can not be in more than one product. However, a product may be referenced by more than one bundle.


Why not acquire a nicely bound hard copy?
Click here to return to the publication details or order a copy of this publication.

Contents Next section Index