Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ igf(1M) — Motorola System V 88k Release 4 Version 4.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ixf(1M)

elf(3E)

cpio(1)

pkgadd(1M)

pkgtrans(1)

sh(1)

igf(1M)  —  ADMINISTRATOR COMMANDS

NAME

igf − software management package-generation facility

SYNOPSIS

igf [−vb] [−f prefix_cXdYsuffix] {table | −}

DESCRIPTION

igf is a general-purpose utility for creating software installation tapes.  It provides a flexible mechanism to combine identification information, multiple archives of software, and scripts needed to manipulate software packages (usually installation and removal scripts) on a single tape.  Optionally, the tape can be made bootable to run standalone. 

Information about what to write to the tape is read from table or standard input when the argument is a dash (−).  This information includes the package description, name, version number, and entries that describe the number and contents of the archives.  The archives are not limited to a specific format and may even be several different formats on a single tape. 

If the −b option is used to create a bootable tape, table also contains information about a bootloader and other files necessary to run in a standalone environment. 

The −f option is used to specify a tape device other than the default (/dev/rmt/ctape1n).  Since the tape is created with multiple records, prefix_cXdYsuffix must be a no-rewind tape device (see WARNINGS).  Device specific special files take the form prefix_cXdYsuffix, where prefix uniquely defines the type of device, X specifies the controller number of the stated device type, Y specifies the logical device number for the device attached to the stated controller, and suffix specifies device dependent information. 

The −v option prints messages showing the progress and contents of the tape being made. 

table is made up of a number of single- and/or multiple-line entries separated by any number of blank lines.  A line is defined as all characters leading up to a newline character; line continuation is not recognized.  Lines within a multiple line entry must not be separated by blank lines.  A pound sign (#) in the first column of a line indicates a comment line, and the line is discarded.  Each line of each entry consists of a keyword immediately followed by an equal sign (=) and the text for that line. 

table contains several types of entries.  Some of them are optional, while some are used only when creating a bootable tape.  In the following descriptions, lines are referred to by their keyword. 

DESC Optional description of the software package on the tape.  This description is limited to 88 characters. 

VER Optional package version number.  This is a string of 12 characters and need not be a number.  All printable characters, including spaces, are acceptable. 

PACK Optional package name.  The name is usually the one-word name of the package, limited to 14 characters. 

BL Pathlist to the tape bootloader.  It must be a valid ELF file that is readable by the current process (only with −b option).  Typically, this is /usr/lib/tapeboot. 

OS Pathlist to the standalone operating system or boot file.  It must be a valid ELF file and readable by the current process (only with −b option). 

RAM Ramdisk image.  This entry must be a pathlist to a valid file system image (only with −b option). 

FILES Definition of an archive’s contents.  This entry begins a multiple-line entry.  It has two arguments separated by white space: source and destination directory.  igf changes to the source directory before the archive command is executed.  This is useful for archives with relative pathnames.  The destination directory is stored on the tape and used by the tape-extraction facility, ixf(1M).  The other possible lines in this entry are A_DESC, ARC, O_ARC, O_OPT, I_ARC, and I_OPT.  The FILES line must be the first line in the entry and is the only required line. 

A_DESC
Archive description. This entry is a short description of the contents of this archive, limited to 25 characters. This line is always optional. If included, it is stored in the tape directory entry for this archive.

O_ARC
Name of the output archive utility. This is the archive utility that is used to write the archive specified by the current FILES entry.  The name is not a full pathlist.  The environment variable PATH is parsed to find the instance of the utility.  The first match is used, as it is in the shell.  The archiver name is also stored in the tape directory. 

O_OPT
Archiver output options. These options are used by the output archiver to create the archive. If the string $DEVICE is in this entry, it is substituted with the current tape device specified by the −f option or by /dev/rmt/ctape1n when −f was not specified.  This allows the use of different tape device nodes without having to change table.

I_ARC Name of the input archive utility.  This is the archive utility that is used to read the archive specified by the current FILES entry.  The name is not a full pathlist.  The environment variable PATH is parsed to find the instance of the utility.  The first match is used, as it is in the shell.  The archiver name is also stored in the tape directory for extracting of this archive. 

I_OPT Archiver input options.  These options are used by the input archiver when files are being extracted from the tape.  They are stored in the tape directory.  If the string $DEVICE is in this entry, it is replaced with the current tape device specified on the command line of ixf(1M) when the tape is being read or extracted.  This allows different device names to be used on the source and destination systems without changing the contents of the tape directory which would require remaking the tape. 

ARC Name of the input and output archive utility.  This entry can be used if the same archive utility is used for input and output.  Specifying this entry is equivalent to specifying the same archive utility in the O_ARC and I_ARC entries.  If this entry is used, O_ARC and I_ARC should not be specified. 

SCRIPTS
Scripts archive. This entry is similar to the FILES entry except it has only one argument, a source directory.  SCRIPTS is a special archive that is used to contain scripts and all files necessary to manipulate a software package (used by sysadm softwaremgmt).  A SCRIPTS entry is also a multiple line entry which can contain all the lines associated with the FILES entry (A_DESC, ARC, O_ARC, O_OPT, I_ARC, and I_OPT). 

All other lines in FILES and SCRIPTS entries are optional.  If any one of the O_ARC, O_OPT, I_ARC, or I_OPT lines is specified, all four lines are required to prevent a mismatch of archiver options and arguments with the archive utility (Note that specifying ARC is equivalent to specifying O_ARC and I_ARC).  If all four lines are not in the entry, they take on the following values:  O_ARC and I_ARC default to cpio, O_OPT defaults to −ocB > $DEVICE, and I_OPT defaults to −icBdu < $DEVICE.  Filenames in and below the source directory are supplied to cpio(1) by find(1). 

The tape generated by igf is made up of multiple records.  The number of records depends on whether or not the tape is bootable and how many archives are on it. 

The first tape record, called volume id block, is a header.  It contains information about the tape for the software package and for the tape-based bootloader.  There is no line in table that creates this record but some information from the table is stored here. 

If the tape is bootable, the next record is the bootloader.  It is stored on the tape as an image of how it is run, not as an ELF file.  The tape bootloader designed to work with igf is /usr/lib/tapeboot.  This record is created from the BL line in table.

The next record is a tape directory.  It contains the following information about all records after the tape directory (where applicable): record number starting at zero for the volume id block, archive number starting at 1 for the first archive, type of record, name of record or archive utility, description, destination directory, and input options.  There is no line in table that causes this record to be created. 

On a bootable tape, the next record is an operating system or stand-alone kernel.  There may be as many of these records on the tape as needed.  One record is created for each OS entry in table. They are stored on the tape in ELF format.  The bootloader, tapeboot, is able to select any one of these files to boot from.  Typically, only one OS entry is used in table.

After the operating system(s), there may be a ramdisk image record on a bootable tape.  This record is created from the RAM line in table. It is an image of a file system from disk.

Following this record are all of the archives.  Archive records are created from FILES and SCRIPTS entries in table, one record per entry. If there is a SCRIPTS entry, it is always the first archive; otherwise, the archives are in the order in which they appear in table. These archives have no special headers and their format is determined by the archiving utility used.

EXAMPLES

Following is an example of a table used to create a bootable installation tape for an M88000 platform. 

−− Example Table −−

 #IGF Table for creating m88k binary distribution tapes
 DESC=UNIX SYSTEM V/88 Release 4.0
 PACK=OS, Utilities
 VER=R40V3
 BL=/inst_root/usr/lib/tapeboot
 OS=/var/tmp/COREunix
 FILES=/var/tmp/stand
O_ARC=cpio
O_OPT=-ocv -C 512 >/dev/rmt/ctape1n </var/tmp/munixfilename
I_ARC=cpio
I_OPT=-iu -C 512 </dev/rmt/ctape1n
 FILES=/inst_root/usr/sadm/install/bin/usr/sadm/install/bin
ARC=cpio
O_OPT=-ocv -C 512 >/dev/rmt/ctape1n </var/tmp/pkginsfilename
I_OPT=-iu -C 512 </dev/rmt/ctape1n
 FILES=/tmp/
O_ARC=pkgtrans
O_OPT=-s /inst_pkgs /dev/rmt/ctape1n core
I_ARC=pkgadd
I_OPT=-O -d /dev/rmt/ctape1n -a none all
 FILES=/tmp/
O_ARC=pkgtrans
O_OPT=-s /inst_pkgs /dev/rmt/ctape1n ${PKGS}
I_ARC=pkgadd
I_OPT=-O -d /dev/rmt/ctape1n -a dflt.newinst
 

In this example, COREunix is the operating system kernel that is booted by the tape-based bootloader tapeboot.  The file system that is mounted as a memory-based file system by the operating system kernel is contained within COREunix. 

There are two cpio(1) archive entries and two pkgadd archive entries.  The first archive entry contains mUNIX, which is an administrative kernel that is designed to boot on all supported CPUs of the same architecture.  The second archive entry contains the pkginstall program, which is used to install the rest of the tape.  The third and fourth archives contain the core and optional packages. 

The output option string (O_OPT) redirects standard input from a file, since cpio expects to get its file list from standard input.  Notice that input and output are being redirected to and from the tape device (/dev/rmt/ctape1n). 

SEE ALSO

ixf(1M), elf(3E), cpio(1), pkgadd(1M), pkgtrans(1), sh(1)

NOTES

Although 9-track drives have the capabilities needed by igf, only streaming tape drives are supported. 

If prefix_cXdYsuffix is not a no-rewind device, the program execution proceeds normally without a single error message, but the tape contains only one record, usually the last archive. 

If the −f option is used, the prefix_cXdYsuffix name must correspond to a no-rewind device.  The name for the rewind device is derived by truncating the last character from the no-rewind device’s name (for example, /dev/rmt/ctape1n for a no-rewind device and /dev/rmt/ctape1 for the rewind device). 

The option to have the table information read from standard input does not work, although it may appear to. 
 

  —  Media Generation Utilities

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026