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:
-
The top group contains the
attributes that are used to identify a particular instance.
-
The middle group contains the
rest of the attributes that describe other information or behaviors for
the object.
-
The bottom group contains the attributes that describe the objects
contained within this object.
The way in which these lists are represented in software definition
files is described in
Software Definition File Format
.
The way in which these lists are represented by
swlist
is described in
swlist
.
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:
-
Patch filesets are in general similar in operation to
normal filesets except that they have an explicit or implicit
ancestor with which they merge during installation, have the ability
to be rolled back, and maintain catalog information to support
these features.
-
A patch fileset can be installed in the same session as
its base, or ancestor, fileset. Patch filesets will always be
installed after the base fileset if installed in the same
session.
-
Control scripts delivered with the patch fileset will only
run when that patch fileset is installed. They do not replace
the control scripts for the base fileset.
- 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:
-
Is chosen over the superseded fileset when selecting the
highest compatible version
of a fileset that was not fully
specified
-
Meets the dependencies of filesets depending on the
superseded fileset
-
Causes removal of the catalog information of the superseded
fileset when it is installed into the same location
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:
-
Uncompressed but permitted to be compressed in a distribution
(if this attribute has the value
uncompressed
or if no value is supplied for the attribute)
-
Already compressed (if this attribute has the value
compressed)
-
Uncompressed and not permitted to be compressed in a distribution
(if this attribute has the value
not_compressible)
- 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.