In some situations, you might want to relax an incorporation constraint.
Perhaps bar can function independently of foo, but you want foo to remain within the series of versions defined by the incorporate dependency in the incorporation.
You can use facets to relax incorporation constraints, allowing the administrator to effectively disable certain incorporate dependencies. Facets are discussed in more detail in Chapter 5, Allowing Variations. Briefly, facets are special attributes that can be applied to actions within a package to enable authors to mark those actions as optional.
When actions are marked with facet attributes in this manner, the actions that contain those facets can be enabled or disabled using the pkg change-facet command.
By convention, facets that optionally install incorporate dependencies are named facet.version-lock.name, where name is the name of the package that contains that depend action.
Using the example above, the myincorp package manifest could contain the following lines:
set name=pkg.fmri [email protected] depend [email protected] type=incorporate depend [email protected] type=incorporate facet.version-lock.bar=true
By default, this incorporation includes the depend action on the bar package, constraining bar to version 1.0. The following command relaxes this constraint:
$ pkg change-facet version-lock.bar=false
After successful execution of this command, the bar package is free from the incorporation constraints and can be upgraded to version 2.0 if necessary.