sd(4) — Hewlett-Packard Company
NAME
sd − SD objects, attributes, and storage formats
Remarks:
SD-UX commands are included with the HP-UX Operating System and manage software on the local host only. To install and manage software simultaneously on multiple remote hosts (including PCs) from a central controller, you must purchase the HP OpenView Software Distributor (HP Prod. No. B1996AA) which provides extended software management, multi-site software distribution capabilities and distribution to PCs. While most of the information in this manual page applies to both SD-UX commands and the OpenView product, some applies only to the OpenView product. Where this is the case, you will see:
The following xxx applies only to HP OpenView Software Distributor
DESCRIPTION
The SD commands create, install, distribute and manage software objects (bundles, products, sub-products, and filesets). In addition, they define and manage other objects in support of the software administration tasks which users perform. This manual page describes the SD software object classes, their attributes, and the file formats used to store their definitions.
The objects described here conform to the layout_version=1.0 of the POSIX 1387.2 Software Administration standard. The previous SD layout_version=0.8 is also supported. (In that version, the vendor object is handled in a slightly different manner and a small number of keywords have different names). What layout_version the SD commands write is controlled by the layout_version option for swpackage, swmodify, swcopy, and swlist.
For an overview of all Software Distributor commands, see the sd(5) manual page by typing:
man 5 sd
OBJECT CLASSES
The SD object classes are:
host A host at which software is installed, will be installed, or is being managed. A host contains one or more roots (installed filesystems) and zero or more depots.
depot A directory location which contains software products or bundles that are available for installation. It is a customizable source of software used for direct installation. It can also represent a distribution media (e.g. tape or CD-ROM) which contains products or bundles available for installation. A bundle is NOT a superset of products.
media When a depot is located on 1 or more media, a unique sequence number identifies each medium.
root A set of installed software objects, usually the operational software installed in the primary root filesystem, "/". It also represents also the set of software objects installed into an alternate root directory.
vendor The vendor who packaged and distributed a product or bundle. It is an optional component of a product or a bundle.
bundle A bundle is a way of encapsulating products, subproducts and filesets into a single software object. More than one bundle can contain the same software objects. A bundle can be thought of as a particular "configuration" of software. It is a convenient way to group software objects together for easy selection.
product A software object which vendors package and distribute, and which users purchase and install. A product contains one or more filesets and zero or more subproducts. A product can also contain zero or more control scripts.
subproduct A subset or partitioning of a software product. It is an optional component of a product. and contains one or more filesets.
fileset A grouping of one or more files contained in a product or sub-product. It groups a subset of a product’s files into a manageable unit. A fileset can also contain zero or more control scripts.
file The actual files that make up a fileset that get installed, configured, and removed.
control script
The scripts developed by vendors to perform product- or fileset-specific operations during various software management tasks.
OBJECT ATTRIBUTES
The following tables summarize the valid attributes for each software object class. A subset of these attributes can be defined for an object when creating products or bundles with swpackage. See swpackage(4) for details on this subset. (When packaging PC software with the HP OpenView Software Distributor, a reduced subset of attributes will be defined for an object, as described below.)
The value types for each attribute are defined after the attribute tables.
Host Attributes
| Attribute | Type | Size | Example |
| name | one_line_string | 64 | newdist.fc.hp.com |
| machine_type | uname_string | 32 | 9000/720 |
| os_name | uname_string | 32 | HP-UX |
| os_release | uname_string | 32 | A.09.01 |
| os_version | uname_string | 32 | C |
| contained | list of depot | ||
| depots | objects |
name The official name of the network host.
machine_type
The host’s machine and architecture designation. (uname -m field).
os_name
The host’s operating system name. (uname -s).
os_release
The host’s operating system release. (uname -r).
os_version
The host’s operating system version. (uname -v).
contained depots
The depots registered at the host.
(For HP OpenView Software Distributor PC hosts, the os_name, os_release, and os_version attributes do not apply.)
Depot Attributes
| Attribute | Type | Size | Example |
| layout_version | revision_string | 32 | 1.0 |
| data_model_revision | revision_string | 32 | 2.00 |
| tag | tag_string | 16 | APPLICATIONS_CD |
| title | one_line_string | 80 | Applications Software |
| description | multi_line_string | 8K | "This depot ..." |
| copyright | multi_line_string | 8K | "This depot ..." |
| number | tag_string | 16 | B2358-13601 |
| uuid | hex_string | 40 | 25CA7C86-6F0C-9353 |
| mod_time | unsigned_integer | 740774837 | |
| mod_date | one_line_string | 64 | Tue Jun 22 12:52:09 |
| 1993 | |||
| path_max | unsigned_integer | 1023 | |
| name_max | unsigned_integer | 255 | |
| media_sequence_ | unsigned_integer | 1 | |
| number | |||
| contained media | media object | ||
| contained vendor | vendor object | ||
| contained | list of bundle | ||
| bundles | objects | ||
| contained | list of product | ||
| products | objects |
layout_version
The version of the POSIX 1387.2 standard to which the HP specific data_model_revision conforms to.
data_model_revision
The HP specific format revision used to store the depot definition.
tag The identifier (short name) for the distribution depot/tape.
title
The full name (one-line description) of the distribution depot/tape.
description
The multi-paragraph description of the distribution depot/tape.
copyright
The copyright information for the depot/tape;
number
The part or manufacturing number of the depot/tape.
uuid The depot’s Universal Unique Identifier (UUID).
mod_time
The time of the last operation performed on the depot.
mod_date
The string format of the mod_time.
path_max
The maximum length of file pathnames in the depot.
name_max
The maximum length of file basenames in the depot.
media_sequence_number
For a multiple tape distribution, this attribute provides a way to list the sequence_number of each media.
contained media
The object defining the sequence number used to identify each medium.
contained vendor
The object defining a vendor object that is associated with subsequent bundle and product objects that define a vendor_tag attribute matching the tag of this vendor.
contained bundles
The bundles available from the depot.
contained products
The products available from the depot.
(For HP OpenView Software Distributor PC depots, the title, description, copyright, and number attributes do not apply.)
Root Attributes
| Attribute | Type | Size | Example |
| layout_version | revision_string | 32 | 1.0 |
| data_model_revision | revision_string | 32 | 2.00 |
| mod_time | unsigned_integer | 740774837 | |
| mod_date | one_line_string | 64 | Mon Jun 14 13:01:19 |
| path | one-line_string | 80 | /xx/xx/xx |
| root_type | one-line_string | 80 | shared |
| description | multi-line_string | 2048 | "This root is ..." |
| contained vendor | vendor object | ||
| contained | list of bundle | ||
| bundles | objects | ||
| contained | list of product | ||
| products | objects |
layout_version
The version of the POSIX 1387.2 standard to which the HP specific data_model_revision conforms to.
data_model_revision
The HP specific format revision used to store the root definition.
mod_time
The time of the last operation performed on the root.
mod_date
The string format of the mod_time.
path The path to the root.
root_type
The type of root - shared, private or none.
description
A multi-line description of the root.
contained vendor
The object defining a vendor object that is associated with subsequent bundle and product objects that define a vendor_tag attribute matching the tag of this vendor.
contained bundles
The bundles installed into the root.
contained products
The products installed into the root.
(For HP OpenView Software Distributor PC hosts, the root class does not apply.)
Vendor Attributes
| Attribute | Type | Size | Example |
| tag | tag_string | 16 | HP |
| uuid | hex_string | 40 | 1234567-CDEF-0123-4569 |
| title | one_line_string | 80 | Hewlett-Packard Company |
| description | multi_line_string | 8K | "This vendor ..." |
tag The identifier (short name) for the vendor. Used to associate a vendor object with subsequent product or bundle objects having a vendor_tag attribute of the same value.
uuid The vendor’s NetLS Universal Unique Identifier (UUID).
title
The full name (one-line description) for the vendor.
description
The multi-paragraph description of the vendor.
When listing the attributes of a vendor associated with the specified product or bundle using swlist, the option -a vendor lists all of the vendor attributes. The option -a vendor.attribute can be used to list specific vendor attributes (e.g. -a vendor.title).
(For PC products, the vendor class does not apply.)
Bundle and Product Attributes
Note: Attributes marked with a "+" apply only to product class and those marked with a "-" apply only to the bundle class. Attributes marked with a * determine the uniqueness of a product or bundle object. Their values may also be of type version_component when used in a version component of a software specification.
| Attribute | Type | Size | Example |
| * tag | tag_string | 16 | SD |
| * revision | revision_string | 32 | 2.0 |
| * architecture | one_line_string* | 80 | HP-UX_A.09.00_700 |
| * vendor_tag | tag_string | 16 | HP |
| data_model_revision | revision_string | 32 | 2.00 |
| title | one_line_string | 80 | Software Distributor |
| description | multi_line_string | 8K | "This product ..." |
| copyright | multi_line_string | 8K | "This product ..." |
| number | tag_string | 16 | J2326AA |
| category | tag_string | 16 | systems_management |
| category_title | one_line_string | 80 | Systems Management |
| instance_id | unsigned_integer | 1 | |
| control_directory | path_string | 255 | SD |
| size | unsigned_integer | 14638872 | |
| mod_time | unsigned_integer | 740084479 | |
| mod_date | one_line_string | 64 | Mon Jun 14 13:01:19 |
| install_date | one-line string | 16 | 199402241212.34 |
| install_source | one-line_string | 1024 | zook.com:/depot |
| install_type | one-line_string | 16 | physical |
| Attribute | Type | Size | Example |
| share_link | one-line_string | 80 | "sbin" |
| + readme | multi_line_string | 1024K | < README |
| + job_file | one-line_string | 80 | <pcjob |
| + directory | path_string | 1024 | / |
| + is_locatable | boolean | 5 | false |
| + location | path_string | 1024 | / |
| machine_type | uname_string | 64 | 9000/7*|9000/8* |
| os_name | uname_string | 32 | HP-UX |
| os_release | uname_string | 32 | ?.09.* |
| os_version | uname_string | 32 | [A-Z] |
| software_spec | software_spec | SD,r=2.0 | |
| - contents | repeatable list of | 8K | foo.bar,r=1.0,a=,v=HP |
| software_specs | x.y,r=2.0,a=,v= | ||
| + all_filesets | one-line list of | commands agent data man | |
| tag_string values | |||
| + contained | list of fileset | ||
| filesets | objects | ||
| + contained | list of subproduct | ||
| subproducts | objects | ||
| + contained | list of control | ||
| control scripts | script objects |
tag The identifier (short name) for the product.
revision
The revision (release number, version number) of the product.
architecture
The target system(s) on which the product will run.
vendor_tag
Associates this product or bundle with the last defined vendor object if that object has a matching tag attribute.
data_model_revision
The format revision used to store the product definition.
title
The full name (one-line description) of the product.
description
The multi-paragraph description of the product.
copyright
The copyright information for the product.
number
The part or order number for the product.
category
The term or phrase that categorizes the product.
category_title
The full name (one-line description) of the category.
instance_id
The secondary identifier for products which have the same tag (or truncated tag) value.
control_directory
The relative pathname to the product catalog (within the depot/root catalog).
size The size of the product in bytes.
mod_time
The time of the last operation performed on the product.
mod_date
The string format of the mod_time.
install_date
The installation date of the product or bundle.
install_source
The source from which the product was installed.
install_type
The type of installation - "physical" or "NFS_mount"
share_link
Sharing point(s) for product.
readme
The README information for the product.
job_file
For HP OpenView Software Distributor PC products, this indicates the existence of the pcjob control file.
directory
The default pathname in which the product’s files will be installed.
is_locatable
Defines whether (or not) the product can be installed into a arbitrary directory.
location
The installed pathname of the product.
machine_type
The machine(s) on which the product will run.
os_name
The operating system(s) on which the product will run.
os_release
The operating system release(s) on which the product will run.
os_version
The operating system versions(s) on which the product will run.
contents
The list of fully qualified software_specs for a bundle. (Applies to bundles only).
all_filesets
All the filesets originally packaged into the product.
software_spec
The fully qualified software specification for the bundle or product.
contained filesets
The fileset defined for the product.
contained subproducts
The subproducts defined for the product.
contained control scripts
The scripts defined for the product.
(For HP OpenView Software Distributor PC products, the copyright, readme, number, category, category_title, vendor, install_date, install_source, install_type, share_link, os_name, os_release, os_version, and contained subproducts attributes do not apply.)
(For HP OpenView Software Distributor PC depots, the bundle class does not apply.)
Subproduct Attributes
| Attribute | Type | Size | Example |
| tag | tag_string | 16 | Manager |
| title | one_line_string | 80 | Management Utilities |
| description | multi_line_string | 8K | "This subproduct ..." |
| size | unsigned_integer | 14638872 | |
| contents | repeatable list | commands data man | |
| of tag_string values | |||
| software_spec | software_specification | Networking.Run,r=1.0 |
tag The identifier (short name) for the subproduct.
title
The full name (one-line description) of the subproduct.
description
The multi-paragraph description of the subproduct.
size The size of the subproduct in bytes.
contents
A list of the filesets that make up the subproduct.
software_spec
The full software specification for the subproduct.
(For HP OpenView Software Distributor PC products, the subproduct class does not apply.)
Fileset Attributes
| Attribute | Type | Size | Example |
| tag | tag_string | 16 | commands |
| data_model_revision | revision_string | 32 | 2.00 |
| revision | revision_string | 32 | 2.15 |
| title | one_line_string | 80 | Commands |
| description | multi_line_string | 8K | "This fileset ..." |
| instance_id | unsigned_integer | 1 | |
| control_directory | path_string | 255 | SD |
| size | unsigned_integer | 14638872 | |
| state | state_enumeration | corrupt | |
| mod_time | unsigned_integer | 740084479 | |
| mod_date | one_line_string | 64 | Mon Jun 14 13:01:19 |
| 1993 | |||
| install_date | one-line string | 16 | 199402241414.34 |
| install_source | one-line_string | 1024 | zook.com:/depot |
| is_kernel | boolean | 5 | false |
| is_reboot | boolean | 5 | false |
| is_packaged_in_place | boolean | 5 | false |
| is_secure | boolean | 5 | false |
| media_sequence_ | unsigned_integer | 1 | |
| number |
| Attribute | Type | Size | Example |
| prerequisites | repeatable list of | SD.agent | |
| software_specifications | |||
| corequisites | repeatable list of | SD.man | |
| software_specifications | |||
| ancestor | repeatable list | ancestor oldprod.fs | |
| of product.fileset | ancestor prod.oldfs | ||
| software_specifications | |||
| software_spec | software_specification | Networking.Run,r=1.0 | |
| contained | list of control | ||
| control scripts | script objects | ||
| contained | list of file | ||
| files | objects |
tag The identifier (short name) for the fileset.
data_model_revision
The format revision used to store the fileset definition.
revision
The revision (release number, version number) of the fileset.
title
The full name (one-line description) of the fileset.
description
The multi-paragraph description of the fileset.
instance_id
The secondary identifier for filesets which have the same tag (or truncated tag) value.
control_directory
The relative pathname to the fileset catalog (within the product catalog).
size The size of the fileset in bytes.
state
The current state of the fileset (resulting from the most recent operation performed on it).
mod_time
The time of the last operation performed on the fileset.
mod_date
The string format of the mod_time.
install_date
The date the fileset was installed.
install_source
The source from which the product was installed.
is_kernel
Defines whether (or not) the fileset contains kernel files.
is_reboot
Defines whether (or not) the fileset requires a reboot after install.
is_packaged_in_place
For a fileset within a depot, this attribute defines whether or not the fileset is packaged in place. If true, then the fileset’s contents are actually references to the original source files used to construct the fileset.
is_secure
Defines whether (or not) the fileset is encrypted on a CD-ROM media, requiring a codeword to install.
media_sequence_number
For a multiple tape distribution, defines the tape on which the fileset is archived.
prerequisites
A list of install-time dependencies on other software.
corequisites
A list of run-time dependencies on other software.
ancestor
A list of filesets that if installed on a target system, will match the current fileset if the match_target installation option is specified.
software_spec
The full software specification for the fileset.
contained control scripts
The scripts defined for the fileset.
contained files
The files defined for the fileset.
(For HP OpenView Software Distributor PC filesets, the install_date, install_source, is_kernel, is_reboot, is_secure, prerequisites, corequisites, and ancestor attributes do not apply.)
Control Script Attributes
| Attribute | Type | Size | Example |
| tag | tag_string | 16 | checkinstall |
| path | path_string | 255 | checkinstall |
| result | result_enumeration | success |
Control scripts can be defined for filesets and/or products.
tag The identifier (short name) for the control script.
path The relative pathname to the control script (same as the tag for SD 2.0).
result
The result obtained from executing the control script.
File Attributes
| Attribute | Type | Size | Example |
| path | path_string | 255 | /usr/sbin/swpackage |
| type | file_type_enumeration | f | |
| mode | unsigned integer | 04555 | |
| owner | tag_string | 16 | root |
| group | tag_string | 16 | sys |
| uid | unsigned_integer | 0 | |
| gid | unsigned_integer | 0 | |
| mtime | unsigned_integer | 740084479 | |
| size | unsigned_integer | 2494464 | |
| cksum | hex_string | 8 | 18355158 |
| revision | revision_string | 32 | 1.3 |
| link_source | path_string | 1024 | /usr/sbin/swinstall |
| source_path | path_string | 1024 | /mfg/sbin/swinstall |
| is_volatile | boolean | 5 | false |
| compression_state | compression_enumeration | compressed | |
| compression_type | tag_string | gzip | |
| compressed_cksum | unsigned_integer | false | |
| compressed_size | unsigned_integer | false | |
| file_attrs | unsigned_integer | 32 |
path The full pathname to the file.
type The type of file.
mode The file permission mode.
owner
The name of the file’s owner.
group
The name of the file’s group.
uid The UID of the file’s owner.
gid The GID of the file’s owner.
mtime
The last modification time of the file.
size The size of the file in bytes.
cksum
The 32-bit checksum of the file.
revision
The what(1) or ident(1) revision of the file.
link_source
The path to which a hard or symbolic points.
source_path
The full path to the source file for files which have been "packaged in place"; see swpackage(1M).
is_volatile
Defines whether the file can be modified or removed.
compression_state
The compression state of a file (compressed or not).
compression_type
The type of compression used to store the file.
compressed_cksum
The checksum of the compressed file.
compressed_size
The size of the compressed file.
The following PC information applies only to HP OpenView Software Distributor
file_attrs
The DOS file attributes (of a PC file).
(For HP OpenView Software Distributor PC files, the owner, group, uid, gid, revision, and link_source attributes do not apply. For UNIX files, the file_attrs attribute does not apply.)
Value Types
The value for each attribute must be of a specific type (as noted in the table above). The types are:
tag_string
maximum length: 16 bytes
examples: HP, SD
Tag strings containing a subset of isascii(3) characters only.
Requires one or more characters from: A-Z, a-z, 0-9, including the first character.
The isspace(3) characters are not allowed.
Metacharacters not allowed: .,=#
Shell metacharacters not allowed: ;&(){}|<>
Shell quoting characters not allowed: "‘’\
Directory path character not allowed: /
hex_string
maximum length: 40 bytes
examples: 01234567-CDEF-0123-4569ABCDEF
Uuids composed of 32 hexadecimal digits separated by dashes.
Represents an unsigned integer. (Each hex digit represents 4 bits of the unsigned integer.)
Allows hexadecimal digits: 0-9, A-F
Allows separator characters: -
one_line_string
maximum length: 80 bytes
examples: Hewlett-Packard Company
One-line strings support a subset of isascii(3) characters only.
No isspace(3) characters, except for space and tab, are allowed. multi_line_string maximum length: 8K, or 1024K bytes
Multi-line strings support all isascii(3) characters. They represent one or more paragraphs of text. They are usually specified in-line, surrounded by double-quotes. (The product readme is stored in a file, and specified using the "< filename" format).
revision_string
maximum length: 32 bytes
examples: 2.0, A.09.00
Revision strings contain zero or more dot-separated one_line_strings (above).
boolean
maximum length: 5 bytes
examples: true, false
One of the values "true" or "false".
path_string
maximum length: 255 bytes for tapes, 1024 bytes for depots
examples: /usr, /mfg/sd/scripts/configure
An absolute or relative path to a file.
uname_string
maximum length: 32 or 64 bytes
examples: 9000/7*|9000/8*, HP-UX, ?.09.*, [A-Z]
Uname strings containing a subset of isascii(3) characters only.
No isspace(3) characters are allowed.
Shell pattern matching notation allowed: []*?!
Patterns can be "or’ed" together using the separator: |
software_specification
maximum length: none
examples: SD.agent or SD,r=2.0,a=HP-UX_A.09.00_700
An SD software specification is of the form:
bundle[.product[.subproduct][.fileset]][,version]
or
product[.subproduct][.fileset][,version]
For version component, see below.
Valid specifications for bundles are:
• bundle,
• bundle.product,
• bundle.product.fileset,
• bundle.product.subproduct and
• bundle.product.subproduct.fileset.
Valid forms for products are:
• product,
• product.subproduct and
• product.fileset.
Specifying bundle. (bundle dot) signifies an empty bundle (wrapper) which is processed without reference to its contents. This allows a bundle to be operated upon without affecting its contents.
Fully qualified software specs include the r=, a=, and v=, version components even if they are empty strings.
version_component
maximum length: none
The version component has the form:
[,r <op> revision][,a <op> arch][,v <op> vendor] [,c <op> category]
or
[instance_id] (numerical only)
where <op> (relational operator) can be of the form: ==, >=, <=, <, >, or != which performs individual comparisons on dot-separated fields. For example, r>=BB.10.00 means to choose all revisions that are greater than or equal to BB.10.00. The system will compare each dot-separated field to find matches. Software will only be selected when matches within each field are satisfied. Wildcards are not allowed with these operators.
The = (equals) relational operator is also allowed. It provides the shell pattern matching notations []*?! or wildcards to specify selections as opposed to comparing dot-separated fields.
All version components are repeatable within a single specification (e.g. r>=AA.12, r<AA.20). If multiple components are used, the selection must match all components.
No isspace(3) characters are allowed.
unsigned_integer
maximum length: none
An integer in the range >= 0 and <= 2^32.
state_enumeration
maximum length: none
One of the following fileset states: transient, corrupt, available, installed, or configured.
result_enumeration
maximum length: none
One of the following control script results: none, error, warning, or success.
file_type_enumeration
maximum length: none
One of the following file types: file, directory, hard link, or symbolic link.
compression_enumeration
maximum length: none
One of the following file types: compressed or undefined.
HOST OBJECT FORMAT
The file /var/adm/sw/host_object defines the software depots on the local host which have been registered with the swagentd daemon running on the host. The file has this format:
host
data_model_revision 2.00
distribution Defines a contained (registered) depot
path directory
distribution
path directory
...
DEPOT (DISTRIBUTION) FORMAT
A depot is formatted using the following directory structure:
| catalog/ | Catalog of depot’s contents |
| INDEX | Global index (table of contents) |
| swlock | Controls simultaneous modification |
| dfiles/ | Stores all depot-specific information |
| INDEX | Defines depot-specific attributes |
| INFO | Defines depot-specific files |
| _ACL | Access Control List (ACL) for the depot |
| _OWNER | Owner and group of the depot’s creator |
| _LOCK_FILE | Controls simultaneous ACL modification |
| _PROD_DFLT_ACL | Default ACL for new products |
| product_directory/ | Catalog for a product |
| pfiles/ | Stores all product-specific information |
| INDEX | Defines product attributes |
| INFO | Defines product files and scripts |
| README | The product’s README attribute |
| scripts | Zero or more product control scripts |
| pcjob | A PC product’s job file (HP OpenView Software Distributor only) |
| _ACL | ACL for the product |
| _OWNER | Owner and group of the product’s creator |
| _LOCK_FILE | Controls simultaneous ACL modification |
| fileset_directory/ | Catalog for a fileset |
| INDEX | Defines fileset attributes |
| INFO | Defines fileset files and scripts |
| scripts | Zero or more fileset control scripts |
| fileset_directory/ | Catalog for the next fileset |
| ... | |
| product_directory/ | Catalog for the next product |
| ... | |
| product_directory/ | Contents of a product |
| fileset_directory/ | Contents of a fileset |
| ... | Contents of the next fileset |
| product_directory/ | Contents of the next product |
| ... |
The format is divided into two areas:
• the catalog, which contains all the information which describes the products contained in the depot;
• the contents, which stores the actual files contained in each product (one product_directory per product.)
Product and Fileset Directory Names
The product_directory and fileset_directory values are unique storage directories for a given product and fileset. They have this syntax:
tag[.instance_id]
The tag component is the product or fileset tag attribute. If more than one product with the same tag exists in the software depot, then the instance_id component is also necessary for all additional products with the same tag. This component is the product or fileset. instance_id attribute.
On a short-filename filesystem, the tag component is truncated to the first 9 characters (if necessary). All products with the same truncated tag will also have a unique storage directory based on the instance_id component.
The following DOS information applies only to HP OpenView Software Distributor
On a DOS filesystem, the tag component is truncated to the first 4 characters (always). All products with the same truncated tag will also have a unique storage directory based on the instance_id component.
Distribution Tape Format
A distribution tape contains the depot format (above), archived to one or more tapes in tar(1) format. The entire catalog precedes the depot contents on a distribution tape.
If the distribution spans multiple tapes, then the first tape contains the entire catalog, and as many fileset contents directories as will fit on the tape. Each additional tape contains only the catalog/INDEX followed by as many fileset contents directories as will fit on the tape.
INSTALLED PRODUCTS DATABASE FORMAT
An Installed Products Database (IPD) describes the software installed in a primary or alternate root filesystem. The format of an IPD is similar to the format of a software depot. An IPD is formatted using the following directory structure:
| var/adm/sw/products/ | Catalog of root’s contents |
| INDEX | Global index (table of contents) |
| swlock | Controls simultaneous modification |
| ifiles/ | Stores all root-specific information |
| INDEX | Defines root-specific attributes |
| INFO | Defines root-specific files |
| _ACL | Access Control List (ACL) for the root |
| _OWNER | Owner and group of the root’s creator |
| _LOCK_FILE | Controls simultaneous ACL modification |
| product_directory/ | Catalog for a product |
| pfiles/ | Stores all product-specific information |
| INDEX | Defines product attributes |
| INFO | Defines product files and scripts |
| README | The product’s README attribute |
| scripts | Zero or more product control scripts |
| fileset_directory/ | Catalog for a fileset |
| INDEX | Defines fileset attributes |
| INFO | Defines fileset files and scripts |
| scripts | Zero or more fileset control scripts |
| fileset_directory/ | Catalog for the next fileset |
| ... | |
| product_directory/ | Catalog for the next product |
| ... |
Product and Fileset Directory Names
The product_directory and fileset_directory values are as described for the depot format above.
INDEX FORMAT
An INDEX file describes all of the attributes (except for contained scripts and contained files) of a fileset, product, depot, or root. In a depot, the fileset, product, and depot INDEX files are concatenated together to form the catalog/INDEX file. In a root, the fileset, product, and root INDEX files are concatenated together to form the var/adm/sw/products/INDEX file.
This section describes the keyword syntax used in an INDEX file. The value for each keyword must meet the type restrictions described in the OBJECT ATTRIBUTES section.
Fileset INDEX
fileset
| tag | tag_value |
| data_model_revision | revision_value |
| revision | revision_value |
| title | title_value |
| description | description_value |
| instance_id | id_value |
| control_directory | control_directory_value |
| size | size_value |
| state | state_value |
| mod_time | time_value |
| install_source | install_source_value |
| is_kernel | boolean_value |
| is_reboot | boolean_value |
| is_packaged_in_place | boolean_value |
| is_secure | boolean_value |
| media_sequence_number | sequence_value |
| prerequisites | prerequisite_value |
| corequisites | corequisite_value |
| ancestor | ancestor_value |
The tag attribute is always required. The media_sequence_number attribute is required for filesets within a multiple tape distribution.
Multiple prerequisites and corequisites definitions are allowed. Multiple ancestor definitions are also allowed.
Bundle or Product INDEX
Note: Keywords marked with a + apply only to product INDEX files and those marked with a "-" apply only to bundle INDEX files.
vendor
| tag | tag_value |
| uuid | uuid_value |
| title | title_value |
| description | description_value |
product or bundle
| tag | tag_value |
| data_model_revision | revision_value |
| revision | revision_value |
| title | title_value |
| description | description_value |
| copyright | copyright_value |
| number | number_value |
| category | category_value |
| category_title | category_title_value |
| instance_id | id_value |
| control_directory | control_directory_value |
| mod_time | time_value |
| install_date | install_date_value |
| install_source | install_source_value |
| install_type | install_type_value |
| share_link | share_link_value |
| + readme | readme_value |
| + job_file | job_file_value |
| + directory | directory_value |
| + is_locatable | boolean_value |
| + location | location_value |
| architecture | architecture_value |
| machine_type | machine_type_value |
| os_name | os_name_value |
| os_release | os_release_value |
| os_version | os_version_value |
| + all_filesets | all_filesets_value |
| vendor_tag | vendor_tag_value |
| - contents | contents_value |
| + subproduct | |
| + tag | tag_value |
| + uuid | uuid_value |
| + title | title_value |
| + description | description_value |
| + contents | contents_value |
The tag attribute is always required.
For subproducts, the tag and contents attributes are required. Multiple subproduct definitions are allowed.
For vendor, the tag attribute is required.
Depot INDEX
distribution
| tag | tag_value |
| data_model_revision | revision_value |
| title | title_value |
| description | description_value |
| copyright | copyright_value |
| number | number_value |
| uuid | uuid_value |
| mod_time | time_value |
| path_max | path_max_value |
| name_max | name_max_value |
| media | |
| sequence_number | sequence_number_value |
No attributes are required.
Root INDEX
root
| data_model_revision | revision_value |
| mod_time | time_value |
| description | description_value |
No attributes are required.
INFO FORMAT
An INFO file describes all of the control scripts and files contained within a fileset, product, depot, or root. This section describes the keyword syntax used in an INFO file. The value for each keyword must meet the type restrictions described in the OBJECT ATTRIBUTES section.
Control Script Format
control_file
| path | path_value |
| tag | tag_value |
| result | result_value |
The path, and tag attributes are required.
File Format
file
| path | path_value |
| type | file_type_value |
| mode | mode_value |
| owner | owner_value |
| group | group_value |
| uid | uid_value |
| gid | gid_value |
| mtime | mtime_value |
| size | size_value |
| cksum | cksum_value |
| revision | revision_value |
| link_source | source_value |
| source_path | source_value |
| is_volatile | boolean_value |
| compression_state | compression_state_value |
| compression_type | type_value |
| compressed_size | size_value |
| compressed_cksum | cksum_value |
| file_attrs | file_attrs_value |
The path, and type attributes are always required. The link_source attribute is required for hard link and symbolic link files.
ACL FORMAT
An Access Control List (ACL) has this format:
# default_realm = host_name
entry_type:[key:]permissions
entry_type:[key:]permissions
entry_type:[key:]permissions
See the swacl(1M) manual page for details on the fields in an ACL entry. Note that the permissions of a stored ACL are literal octal strings, but the permissions displayed by swacl are symbolic.
The _OWNER file uses a subset of the ACL format. It contains an entry for the user and group names of the user who created the corresponding object.
LOCKING
These commands use a common locking mechanism for reading and modifying both root directories and software depots. This mechanism allows multiple readers but only one writer on a root or depot.
The commands which modify software in an (alternate) root directory are restricted from simultaneous modification using fcntl(2) locking on the file
var/adm/sw/products/swlock
relative to the root directory (e.g. /var/adm/sw/products/swlock).
The commands which modify software in a depot are restricted from simultaneous modification using fcntl(2) locking on the file
catalog/swlock
relative to the depot directory (e.g. /var/spool/sw/catalog/swlock).
All commands set fcntl(2) read locks on roots and depots using the swlock file mentioned above. When a read lock is set, it prevents other commands from performing modifications (i.e. from setting write locks).
The swacl command is restricted from simultaneous modification of an ACL using fcntl(2) read and write locks on the
_LOCK_FILE
associated with each ACL.
AUTHOR
The Software Distributor was developed by the Hewlett-Packard Company.
SEE ALSO
swpackage(4), sd(5), swacl(1M), swagent(1M), swagentd(1M), swcluster(1M), swconfig(1M), swcopy(1M), swgettools(1M), swinstall(1M), swjob(1M), swlist(1M), swmodify(1M), swpackage(1M), swpackage(4), swreg(1M), swremove(1M), swverify(1M), update(1M), and the HP OpenView Software Distributor Administrator’s Guide or Managing HP-UX Software with SD-UX manuals.
Hewlett-Packard Company — HP-UX Release 10.20: July 1996