Create the Custom Constraint Package Manifest

The following example shows a manifest named upgradectrl.p5m for a custom constraint package that controls the version of the pkg:/entire package that can be installed. Some of the settings in this manifest are described below.

set name=pkg.fmri value=upgradectrl@1.0
set name=pkg.summary value="Package to constrain the version of the OS"
set name=pkg.description value="This package controls the version of \
pkg://solaris/entire that can be installed."
set name=info.classification value="org.opensolaris.category.2008:Meta Packages/Incorporations"
set name=pkg.depend.install-hold value=core-os
set name=variant.opensolaris.zone value=global value=nonglobal
set name=variant.arch value=sparc value=i386
depend fmri=feature/package/dependency/self type=parent variant.opensolaris.zone=nonglobal
depend fmri=pkg://solaris/entire type=require
depend fmri=pkg://solaris/entire@0.5.11,5.11-0.175.1.0 type=incorporate
pkg.depend.install-hold

If a user enters the pkg update upgradectrl command, the pkg:/entire package is automatically updated as well.

variant.opensolaris.zone

This package can be installed in both global and non-global zones. See also the description of the parent dependency.

variant.arch

This package can be installed on both SPARC and x86 systems.

parent dependency

This package can be installed in a non-global zone only if it is already installed in the global zone.

require dependency

The upgradectrl package can be installed only if the pkg://solaris/entire package is already installed or can be installed in this same operation.

incorporate dependency

The pkg://solaris/entire package must be installed at the specified version. More than one version can satisfy an incorporate dependency, depending on how many places of accuracy are specified. In this example, 0.175.1.0 specifies Oracle Solaris 11.1 SRU 0. This upgrade control package will keep systems at Oracle Solaris 11.1 with no support updates. This upgrade control package will, however, allow packages that are not constrained by the pkg:/entire constraint package to be updated.