SMF_BOOTSTRAP(7)     Standards, Environments, and Macros    SMF_BOOTSTRAP(7)
NAME
       smf_bootstrap - service management facility boot, packaging, and
       compatibility behavior
DESCRIPTION
       The service management facility establishes conventions for
       delivering service manifests, incorporating service manifest changes,
       describing service configuration stability, using service
       configuration overrides, and the use of service profiles.
   Manifest Loading at Boot
       The 
svc:/system/manifest-import:default service uses 
svccfg(8) to
       import certain manifest files from the 
/var/svc/manifest directory
       tree into the service configuration repository. The service imports
       files that it has not imported previously and those files which have
       changed since the last time they were imported by the service. When a
       manifest is imported by the service, a hash of the file that includes
       its contents is recorded in a property group of the 
svc:/smf/manifest       service. The 
manifest-import service uses the hash to determine
       whether the file has changed. See 
svccfg(8) for information on the       
svccfg import behavior for services that already exist in the
       repository.
   Manifest Handling During Packaging Operations
       Service manifests within packages should be identified with the class       
manifest. Class action scripts that install and remove service
       manifests are included in the packaging subsystem. When 
pkgadd(8) is
       invoked, the service manifest is imported.
       When 
pkgrm(8) is invoked, instances in the manifest that are disabled
       are deleted. Instances in the manifest that are online or degraded
       are disabled first and then deleted. Any services in the manifest
       with no remaining instances are also deleted.
       If the 
-R option is supplied to 
pkgadd(8) or 
pkgrm(8), the actions
       described in this section will be done when the system is next
       rebooted with that alternate root path.
   Stability Declarations
       Each service group and each property group delivered in a manifest
       should declare a stability level based on 
attributes(7) definitions.
       With knowledge of the stability level, an application developer can
       determine the likelihood that feature development based on the
       existence or components of a service or object is likely to remain
       functional across a release boundary.
       In an 
smf(7) context, the stability value also identifies the
       expected scope of the changes to properties within the property group
       across a release boundary for the service, which can include patches
       for that service. The following two sections discuss this in more
       detail.
   Property Overrides
       The 
service_bundle(5) document type definition includes an override
       attribute that is applicable to each property in a service manifest.
       If set to 
true, the attribute instructs 
svccfg(8) and other manifest
       import tools to replace the current value of a property in the
       repository with the one from the manifest. If the override attribute
       is absent or present but set to 
false, the current value in the
       repository is preserved.
       Property groups declared as Stable do not contain override attributes
       on enclosed properties. Property groups declared as Evolving do so
       only to correct an erroneous setting. Property groups declared as
       Unstable can contain overrides on any property. The exception to this
       behavior is for the stability property itself, which can be modified
       to identify incipient change to the interface presented by the
       service.
   Property Group Deletion
       The 
service_bundle(5) document type definition includes a delete
       attribute, applicable to each property group in a service manifest.
       If set to 
true, the delete attribute instructs 
svccfg(8) and other
       manifest import tools to delete this property group from the
       repository. If the delete attribute is absent or present but set to       
false, the property group in the repository is preserved.
       Property groups declared as Stable or Evolving are not deleted.
       Property groups declared as Unstable can be deleted across any
       release boundary.
   Profile Application
       The first time the existence of each of the three service profiles
       listed below is detected, 
svc.startd(8) automatically applies the
       profile.
         /var/svc/profile/generic.xml
         /var/svc/profile/platform.xml
         /var/svc/profile/site.xml
       The 
svc:/smf/manifest service is used in a similar fashion.
       Additional service profiles that characterize the activation of
       various groups of service instances might be present in       
/var/svc/profile. None of the 
/var/svc/profile profiles are
       automatically applied to the repository. A profile can be manually
       applied or re-applied using 
svccfg(8).
SEE ALSO
       libscf(3LIB), 
service_bundle(5), 
attributes(7), 
smf(7),       
smf_security(7), 
pkgadd(8), 
pkgrm(8), 
svc.startd(8), 
svcadm(8),       
svccfg(8)NOTES
       The present version of 
smf(7) does not support multiple repositories.
                             September 25, 2008             SMF_BOOTSTRAP(7)