JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Packaging and Delivering Software With the Image Packaging System in Oracle Solaris 11.1     Oracle Solaris 11.1 Information Library
search filter icon
search icon

Document Information

Preface

1.  IPS Design Goals, Concepts, and Terminology

2.  Packaging Software With IPS

3.  Installing, Removing, and Updating Software Packages

4.  Specifying Package Dependencies

5.  Allowing Variations

6.  Modifying Package Manifests Programmatically

Transform Rules

Include Rules

Transform Order

Packaged Transforms

7.  Automating System Change as Part of Package Installation

8.  Advanced Topics For Package Updating

9.  Signing IPS Packages

10.  Handling Non-Global Zones

11.  Modifying Published Packages

A.  Classifying Packages

B.  How IPS Is Used To Package the Oracle Solaris OS

Transform Order

Transforms are applied in the order in which they are encountered in a file. The ordering can be used to simplify the matching portions of transforms.

Suppose all files delivered in /foo should have a default group of sys, except those files delivered in /foo/bar, which should have a default group of bin.

You could write a complex regular expression that matches all paths that begin with /foo except for paths that begin with /foo/bar. Using the ordering of transforms makes this matching much simpler.

When ordering default transforms, always go from most specific to most general. Otherwise the latter rules will never be used.

For this example, use the following two rules:

<transform file path=foo/bar/.* -> default group bin>
<transform file path=foo/.* -> default group sys>

Using transforms to add an action using the matching described above would be difficult since you would need to find a pattern that matched each package delivered once and only once. The pkgmogrify tool creates synthetic actions to help with this issue. As pkgmogrify processes manifests, for each manifest that sets the pkg.fmri attribute, a synthetic pkg action is created by pkgmogrify. You can match against the pkg action as if it were actually in the manifest.

For example, suppose you wanted to add to every package an action containing the web site example.com, where the source code for the delivered software can be found. The following transform accomplishes that:

<transform pkg -> emit set info.source-url=http://example.com>