This manual provides product and kit developers with the proper method to create a product kit. The following topics are discussed in this chapter:
An overview of product kits (Section 1.1)
Defining the different product types and describing the sample product used in this guide (Section 1.2)
Describing the available formats for layered product kits (Section 1.3)
Illustrating the kit-building process (Section 1.4)
A product kit is the collection of files and directories that represent new or upgraded software to be installed onto a customer's system. The kit contains not only the actual files and directories that compose the product, but also includes the supporting files that are required to install the product on the system. The product kit is the standard mechanism by which most products are delivered and maintained on a customer's system. Kits for user and kernel products can be distributed on a CD-ROM, diskette, or tape for installation onto the customer's system.
Before building a kit, consider the kind of product for which you are building a kit:
Does it run in user space or kernel space?
Is it used during the initial installation and bootstrap of the operating system?
The answers to these questions determine the type of format you choose, the type of medium you use to distribute the kit, and the installation procedures that your users run when they install the kit on their systems.
This chapter helps you answer these questions. It describes the product types supported by the kit-building process and the options for packaging and installing the kit on the customer's system. It leads you through the steps involved in building kits for the various kinds of products, and it describes the installation options that the operating system supports.
After you determine the type of product kit that you are creating, you
can use the specific chapters in this manual as shown in
Table 1-1:
Table 1-1: Using This Manual
ALL product kits | |
1. Introducing Product Kits | |
2. Creating Kit Directories | |
3. Preparing Subsets | |
4. Creating Subset Control Programs [Footnote 1] | |
5. Producing and Testing Subsets | |
ONLY user product kits | ONLY kernel product kits |
4. Producing User Product Kits | 5. Producing Kernel Product Kits |
This
manual uses the fictitious Orpheus Document Builder (ODB) product to demonstrate
how to build kits for each product type.
OAT
is the code
assigned to
Orpheus Authoring Tools, Inc., the fictitious
company developing the ODB product, and
100
is the product
version number.
The same product is used for each type of product kit, but
Chapter 6
and
Chapter 7
describe the files
specific to user and kernel product kits.
1.2 Product Types
The process described in this book lets you deliver layered products for a customer's system. A layered product is any software product that is not part of the base operating system. There are two kinds of layered products:
User product
A user product runs in user space. Commands and utilities are in this category, as are applications such as text editors and database systems. Users interact directly with user products, for example, through commands or window interfaces.
Kernel product
A kernel product runs in kernel space. Users do not directly run kernel products, but the operating system and utilities access them to perform their work. For example, a device driver is one common type of kernel product. A user runs an application or utility, which generates system requests to perform operations such as opening a file or writing data to a disk. The system determines which device driver should service this request and then calls the required driver interface.
Before being copied onto the distribution media (diskette, CD-ROM, or tape), the product files are gathered into subsets. A subset groups together related files and specifies whether they are required or optional for the product. You can copy the product files onto the distribution media in one of the following formats:
Compressed
tar
format
In compressed
tar
format, the product files belonging to the same subset are written
to the distribution media as a single file.
Kits for user and kernel products
should be produced in compressed
tar
format.
During installation,
the
setld
utility uncompresses the files and moves them
onto the customer's system, preserving the files' original directory structure.
The
gentapes
and
gendisk
utilities can
create kits in compressed
tar
format.
Direct CD-ROM (DCD) format
In
direct CD-ROM (DCD) format,
the files are written to any disk media (CD-ROM, hard disk, or diskette)
as a UNIX file system (UFS).
Subsets distributed in DCD format cannot be compressed.
The
gendisk
utility can create kits in DCD format.
Figure 1-1
shows the process of creating and packaging
a kit.
In the figure, boxes drawn with dashed lines represent optional steps;
for example, you do not have to create
subset control programs
if your kit requires no special handling when
it is installed.
In
Figure 1-1, the commands enclosed in
ovals perform the associated steps of the kit-building process.
Figure 1-1: Steps in the Kit-Building Process
The kit-building process consists of the following steps:
Create the kit directory structure that contains the source files.
On the development system, create the following directory structure for the kit you want to build:
A source hierarchy, containing all the files that make up the product
A data hierarchy, containing files needed to build the kit
An output hierarchy, to contain the result of the kit-building process; one or more subsets that make up the product kit
Figure 1-2
shows these directory hierarchies.
Figure 1-2: Kit Directory Hierarchies
This directory structure is the same for user product kits and kernel product kits. Only the contents of these directories differ among the product types. For example, a kernel product kit needs additional files that are unique to this specific kit type. See Chapter 6 and Chapter 7 for more information about the requirements for each product kit type.
Create kit production files.
This includes a master inventory file containing information about each file in the subset, a key file to define product attributes such as the product name, product version, subset definitions, and additional files for kernel product kits.
Create subset control programs (if needed).
The
setld
utility can call a
subset control program
(SCP) to perform installation steps specific
to your kit.
You supply an SCP for your kit only if the product requires
special installation steps, such as those needed for kernel product kits.
The SCP is optional for user products.
Most layered products supply a subset
control program, though the actions the programs perform differ for each product
type.
For example, the subset control program for a kernel product may call
the
kreg
utility to maintain the system file that registers
kernel layered products, while the subset control program for a user product
would not.
Build subsets and control files.
Before transferring your kit onto distribution media, organize the product
files into subsets.
Subsets group together related files.
For example, one
subset could contain optional product files, while another subset could contain
the files required to run the product.
The
kits
utility
creates subsets according to the specifications you define in the
master inventory
and
key
files.
Invoke the
kits
utility from the same directory where
the master inventory file is located.
See
Chapter 3
for information about the master inventory and key files.
Test subsets.
You must test your subsets to ensure that they can be loaded onto a running system, that the product runs on the system, and that the subsets can be deleted. Subset testing includes loading all subsets onto a running system and deleting all subsets from a running system. If your kit includes optional subsets, you also should load the mandatory subsets onto a running system to determine if the product works as expected. If not, you may have to reclassify some optional subsets as mandatory.
Produce distribution media.
When you have created the subsets for the product, you are ready to
package the kit with either the
gendisk
or
gentapes
utility.
At this point, you must decide whether to create the kit
in DCD format or in
tar
format.
If you are creating a
kit for a kernel product, you may need to modify the kit and add files to
support your system's bootstrap link.
Test product kit media.
After you have successfully created the kit, you should test its installation from the new media. Chapter 6 and Chapter 7 tell you how to test the installation of each of the product kit types.