Build process

This section describes the following:

When to invoke the --build command

You run the ISMTool --build command after --new and before --upload. Whenever you change an ISM with an option, you must invoke --build before --upload for the change to take effect. For example, if you specify --opswpath, you must invoke
--build for the new software policy path to take effect before you upload the ISM.

Multiple command-line options

You may invoke multiple ISMTool options on the same command-line, or you may invoke the options separately. In the following Unix example, the command changes the native package engine to rpm3, the version to 2.0.47b, the default install user to root, and the default install group to root for the ISM directory named apache:

ismtool --pkgengine rpm3 --version 2.0.47b --user root --group root apache

The next sequence of commands is equivalent:

ismtool --pkgengine rpm3 apache
ismtool --version 2.0.47b apache
ismtool --user root apache
ismtool --group root apache

The ISMTool sorts command actions into the proper logical order for execution. The following command, for example, will change the version of apache to 3.0 before the build is executed.

ismtool --build --version 3.0 apache

Actions performed by the --build command

The ISMTool --build command performs the following steps.

  1. Performs a pre-build clean by removing all side-effect build products. However, this step will leave any cpio archives generated during a previous build as a form of build cache.
  2. Runs the optional script ism/build/ism_clean. The scripts in the ism/build subdirectory are hooks into the build process. To use these scripts, you must create them manually.
  3. Runs a checksum on the application sources and increment the application release number if the current checksum does not match the previous checksum.
  4. Runs a checksum on the control sources (the contents of the ism subdirectory) and increment the control release number if the current checksum does not match the previous checksum.
  5. Runs the optional script ism/build/ism_pre.
  6. For source builds, recursively searches for .spec files in the src subdirectory, compiling and executing each.
  7. Creates the shared runtime package.
  8. Creates the control package.
  9. Creates the application package.
  10. Generates the automatic HTML document doc/index/index.html.
  11. Runs the optional script ism/buid/ism-post.

Packages created by the --build command

The --build command creates the following packages in the pkg subdirectory:

  • Application package - Created from the contents of the bar (binary archive) subdirectory, this package contains the application bits. You copy the application archives to the bar subdirectory before invoking the --build command. The file name of the application package has the following syntax. The <version> is for the entire ISM, and the <release> is specific to the application package. See ISM name, version number, and release number for more information.
    <name>-<version>-<release>.<package-extension>
  • Control package - This package contains the control and installation scripts from the ism subdirectory. The control package file name has the following syntax:
    <name>-ism-<version>-<release>.<package-extension>
  • Shared runtime package - This package holds the shared runtime routines that are invoked by the Server Agent (during installation) and by any control scripts. These runtime routines are for Server Automation, not for the application itself. The file name of the shared runtime package has the following syntax. (The <ctl-prefix> is included in the file name only if you’ve specified a non-default value with the --ctlprefix option.)
    ismruntime-<ctl-prefix>-<package-type>-<idk-version>.<package-extension>
  • Passthru packages - You specify these packages with the --addPassthruPkg option, which copies them into the pkg subdirectory unchanged.