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
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:
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.
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
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
Management of lists of software_collections contained within
a host is
undefined within
this Software Administration specification.
See
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
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 |
Each
software_spec
refers to a bundle.
Each
software_spec
is fully qualified.
See
The value of the path attribute is an absolute path.
The default value of this attribute is
implementation defined.
See
Each
software_spec
refers to a product.
Each
software_spec
is fully qualified.
See
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.
Attribute | Length | Permitted Values | Default Value |
---|---|---|---|
uuid | 64 | Portable character string | Empty string |
media | Undefined | List of media sequence_number values | Empty list |
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.
Attribute | Length | Permitted Values | Default Value |
---|---|---|---|
sequence_number | 64 | Portable character string | 1 |
It is used for identifying the correct medium on which to find the distribution files when the distribution spans multiple media.
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.
Attribute | Length | Permitted Values | Default Value |
---|---|---|---|
catalog | Undefined | Portable character string | Undefined |
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.
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.
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 |
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.
Each product or bundle identifies a category attribute that identifies a particular object. tag.
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 |
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 |
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.
Time is represented as seconds since the Epoch, as defined in POSIX.2.
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:
Time is represented as seconds since the Epoch, as defined in POSIX.1.
For objects other than filesets,
the value is computed dynamically as required.
See
It is the one attribute that is always required to identify a
software object.
For more information on software selections, see
The product class inherits the attributes of the software common class.
See subsection
Software Compatibility within
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 |
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.
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.
See
These scripts are executed before and after software load, and before and after software removal.
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.
It is a simple form of the version distinguishing attributes, valid only within the context of an exported catalog.
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
This attribute is valid only for products in installed_software.
It is used for determining compatibility.
This attribute can be used to store such vendor-defined values as part number, order number or serial number.
It is used for determining compatibility.
It is used for determining compatibility.
It is used for determining compatibility.
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.
Applies only to products in installed_software.
It is used for presentation purposes and for resolving software
specifications.
The revision is interpreted as a . (period) separated string.
See
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.
The bundle class inherits the attributes of the software common class.
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
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.
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 |
It is used for presentation purposes and for resolving software specifications.
This is the default path prepended, when the bundle is installed, to the location of each product and bundle specification within this bundle.
It is a simple form of the version distinguishing attributes, valid only within the context of an exported catalog.
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.
It is used for determining compatibility.
This attribute can be used to store such vendor-defined values as part number, order number or serial number.
It is used for determining compatibility.
It is used for determining compatibility.
It is used for determining compatibility.
Applies only to bundles in installed_software.
It is used for presentation purposes and for resolving software specifications.
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.
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
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 |
If this attribute is an empty list, then this fileset has no patches applied to it.
Dependencies is considered when copying, installing, configuring,
verifying, and removing software.
See
The software specified by the
dependency_spec
must be complete in order for the dependency to be resolved
successfully.
See
all_filesets
in
Dependencies is considered when installing, configuring,
verifying, and removing software.
See
No part of the software specified by the dependency_spec may be installed in order for this dependency to be resolved successfully.
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.
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
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
Dependencies is considered when copying, installing, configuring,
verifying, and removing software.
See
The software specified by the
dependency_spec
must be complete in order for the dependency to be resolved
successfully.
See
all_filesets
in
Circular definitions should be avoided within package definitions. Behavior when circular definitions are encountered is implementation defined.
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.
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.
This attribute may have one of the following values: configured, installed, corrupt, removed, available, and transient.
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
If multiple filesets are superseded by the same fileset, then this behavior applies to each of those filesets.
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.
Attribute | Length | Permitted Values | Default Value |
---|---|---|---|
contents | Undefined | List of tag values | Empty list |
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 |
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.
This attribute can be used for computation of disk space analysis when the file will remain compressed after a copy.
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.
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
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.
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 |
This attribute only has meaning if the file type is a hard or symbolic link.
The value of this attribute has the same values and meaning as the
The value of this attribute has the same values and meaning as the
This attribute has no meaning if the file type is a hard or 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).
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.
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 |
Within a distribution, a value for this attribute other than
sh
implies that the distribution
is not a conformant one.
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.
This attribute is only valid for control_files in installed_software.
A complete list of legal results is contained in
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:
Contents | Next section | Index |