Software Distributor
- Introduction
- Data types
Introduction
Mkpkg builds SD-UX product packages, while mkbdl
builds SD-UX bundle packages.
Software Distributor (SD-UX) is a suite of programs matching the POSIX
1003.2 (?) specification for software installation. It is the
software distribution mechanism for all Hewlett-Packard software for
HP-UX, and it has versions that run on at least WindowsNT.
Software distributor has four levels of software grouping: bundle, product, subproduct, and fileset. The basic unit of software
distribution is the product. A product can contain both subproducts
and filesets. Filesets are the atomic unit of software distribution,
and they contain a set of files and control scripts. Subproducts
contain filesets and are used to conveniently manage logical subsets
of a single product.
Bundles are collections of products or filesets that may be installed
as a unit. Bundles were designed to provide customers with a single
installation unit to install when they purchased software products,
such as the ANSI/C compiler. Bundles may be used to provide logical
groupings for functionality, such as "web server".
Mkpkg creates product packages, while mkbdl creates bundles. Since
all filesets and subproducts must belong to a product, we do not
provide a separate tool for creating them
The software objects that SD-UX packages, distributes, installs and
manages are files. A "packager" uses these files after they have been
built (compiled) and installed into specific directory locations by the
software "build" process. These directory locations range from separate,
unconnected directory trees to the specific file locations that are
required to make the software run on your system. You can specify files
by a root directory (gathering all files below it) or by individual
files. The file attributes can be taken from the files themselves,
specified separately for each file or specified for a set of files.
Mkpkg always fully specifies each file individually.
The SD-UX packager provides a flexible packaging specification that fits
into many software build and manufacturing processes.
- tag_string
- A string containing a tag value, such as HP or SD
- Maximum length: 16 bytes
- A subset of ASCII characters
- Requires one or more alphanumeric characters
(A-Z, a-z, 0-9) including the first character
- White space characters are not allowed
- Directory path character (/) is not allowed
- SD meta-characters (. , : #) are not allowed
- Shell meta-characters (; & ( ) { } | < > " ' ` \
- one_line_string
- One line descriptive string, such as Hewlett-Packard Company
- Maximum length: 80 bytes
- All ASCII characters
- No white space characters, except for space and tab, are allowed
- multi_line_string
- Descriptions, Copyrights, and READMEs
- Maximum length:
- Descriptions: 2048 bytes
- Copyrights: 8192 bytes
- READMEs: 1M bytes
- All ASCII characters in one or more paragraphs of text that
can be specified in-line, surrounded by double-quotes, or
stored in a file and specified using a filename
- revision_string
- Product or fileset revisions, such as 2.0 or A.10.20
- Maximum length: 32 bytes
- Contains dot-separated one_line_strings
- boolean
- Either true or false
- path_string
- An absolute or relative path to a file, such as
/usr or ./man/man1/mkpkg.1
- Maximum length:
- tapes: 255 bytes
- depots: 1023 bytes
- source file pathnames: 1023 bytes
- uname_string
- Describes various attributes of the customer's system, such as
the architecture family (9000/7*|9000/8*), the
operating system (HP-UX), the operating system
release (?.10.*)
- Maximum length:
- machine_type: 64 bytes
- other uname attributes: 32 bytes
- path_mapping_string
- A value of the form
source[=destination]
where source is the directory where source files
are located. The optional destination maps the source
to a directory in which the files will actually be installed.
- Maximum length: Not Applicable
- This attribute is used by mkpkg and is not exposed
to users.
- file_specification
- Specifies a file to be packaged
- Maximum length: Not Applicable
- This attribute is used by mkpkg and is not exposed
to users.
- Format: [-m mode] [-o [owner[,]][uid]] [-v] [-g [group[,]][gid]] [source] [destination]
- the source and destination can be paths relative to source and
destination directories specified in the
path_mapping_string.
Example: -m 04555 sbin/swinstall
- You can use * to specify all files below the source directory
specified in the
path_mapping_string.
Example: file *
- permission_string
-
- Maximum length: Not Applicable
- This attribute is used by mkpkg and is not exposed
to users.
- Format: [-m mode] [-o [owner[,]][uid]] [-v] [-g [group[,]][gid]]
- Each component defines a default permissions value for every
file defined in a fileset. The default values can be overridden
in each file's specific definition. The owner and group are
tag_string. The
uid and gid fields are unsigned integers. The mode and umask
are unsigned integers that support only the octal character
set ("0" - "9").
- Software Specification
- Used to describe dependencies and bundle members, such as
SD.agent or SD,r=2.0,a=S700/800_HP-UX_10.0,v=HP
- Maximum length: Not Applicable
- Format: bundle[.product][.subproduct][.fileset][,version]
- Version format: [r=revision][,a=arch][,v=vendor][,c=category][,instance_id]
- version_component
-
- Maximum length: Not Applicable
- These attributes are restricted to:
- No whitespace characters are allowed
- Each version specification is repeatable within the component
- Specifications can be preceded by a logical operator
(=, ==, >=, <=, >, <, or !=) which performs
individual comparisons on dot-separated fields
- Pattern matching notations ([]*?!) are allowed only with
the = logical operator
- Attributes apply to tag, revision, architecture,
vendor tag, and category keywords.
References
[SD-UX] Managing HP-UX Software with SD-UX
(C) Copyright 1994, 1995, 1996 Hewlett-Packard Company