doc/packaging.txt
changeset 185 773dda89f186
parent 181 87e11e685b1f
child 255 52abf74b9323
equal deleted inserted replaced
184:037c654f48d9 185:773dda89f186
    27     dependencies generated
    27     dependencies generated
    28     (.../{component}/{build-dir}/manifest-$(MACH)-{component}.depend)
    28     (.../{component}/{build-dir}/manifest-$(MACH)-{component}.depend)
    29             |
    29             |
    30             v
    30             v
    31     dependencies resolved
    31     dependencies resolved
    32     (.../{component}/{build-dir}/manifest-$(MACH)-{component}.resolved)
    32     (.../{component}/{build-dir}/manifest-$(MACH)-{component}.depend.res)
    33             |
    33             |
    34             v
    34             v
    35     manifest validation
    35     manifest validation
    36     (.../{component}/{build-dir}/manifest-$(MACH)-{component}.linted)
    36     (.../{component}/{build-dir}/.linted-$(MACH))
    37             |
    37             |
    38             v
    38             v
    39     publication manifest
    39     publication manifest
    40     (.../{component}/{build-dir}/manifest-$(MACH)-{component}.published)
    40     (.../{component}/{build-dir}/manifest-$(MACH)-{component}.published)
    41             |
    41             |
    46 Canonical Manifest
    46 Canonical Manifest
    47     The canonical manifest contains actions that can't otherwise be generated
    47     The canonical manifest contains actions that can't otherwise be generated
    48     automatically from the data encapsulated in the component Makefile, gate
    48     automatically from the data encapsulated in the component Makefile, gate
    49     transformations, build tree, and packaging tools.  This includes actions
    49     transformations, build tree, and packaging tools.  This includes actions
    50     for license information, some path related attributes, legacy actions, 
    50     for license information, some path related attributes, legacy actions, 
    51     non-discoverable dependencies, user, group, driver, and others.
    51     non-discoverable dependencies, users, groups, drivers, and others.
    52 
    52 
    53     Actions that are associated with objects that are specific to a single
    53     Actions that are associated with objects that are specific to a single
    54     architecture should be tagged with a 'variant.arch' attribute specific to
    54     architecture should be tagged with a 'variant.arch' attribute specific to
    55     the architecture that applied to the action.  Ex:
    55     the architecture that applied to the action.  Ex:
    56         file path=/usr/lib/$(MACH64)/libx86onlybits.so variant.arch=i386
    56         file path=/usr/lib/$(MACH64)/libx86onlybits.so variant.arch=i386
    83 
    83 
    84 Dependencies Generated
    84 Dependencies Generated
    85     The mogrified manifest and the prototype install tree are passed through
    85     The mogrified manifest and the prototype install tree are passed through
    86     pkgdepend(1) to generate a set of dependencies for the package content.
    86     pkgdepend(1) to generate a set of dependencies for the package content.
    87     These dependencies are only those that "pkgdepend generate" can determine
    87     These dependencies are only those that "pkgdepend generate" can determine
    88     on it's own.  Additional dependencies that can not be automatically
    88     on its own.  Additional dependencies that cannot be automatically
    89     determined by pkgdepend(1) should be placed in the canonical manifest.
    89     determined by pkgdepend(1) should be placed in the canonical manifest.
    90     Statically defined dependencies should be described in a canonical manifest
    90     Statically defined dependencies should be described in a canonical manifest
    91     in an unresolved form (ie. the form generated by "pkgdepend generate").
    91     in an unresolved form (ie. the form generated by "pkgdepend generate").
    92     Ex:
    92     Ex:
    93 	    depend fmri=__TBD pkg.debug.depend.file=etc/passwd \
    93 	    depend fmri=__TBD pkg.debug.depend.file=etc/passwd \
   100 
   100 
   101     This will allow the next step to resolve all dependencies to their proper
   101     This will allow the next step to resolve all dependencies to their proper
   102     package(s).
   102     package(s).
   103 
   103 
   104 Dependencies Resolved
   104 Dependencies Resolved
   105     The manifest with unresovled dependencies is passed through pkgdepend(1)
   105     The manifest with unresolved dependencies is passed through pkgdepend(1)
   106     again to resolve dependencies against the package repositories.  The
   106     again to resolve dependencies against the package repositories.  The
   107     result is a manifest that is suitable for publication.
   107     result is a manifest that is suitable for publication.  All these
       
   108     manifests are processed together in a single step, which is more
       
   109     efficient than resolving dependencies in each manifest separately.
       
   110     While each manifest ends up with a .depend.res copy in the build
       
   111     directory, the umbrella dependency resolution target is
       
   112     {build-dir}/.resolved-$(MACH).
   108 
   113 
   109 Manifest Validation
   114 Manifest Validation
   110     The resolved manifest(s) and prototype install tree are passed through
   115     The resolved manifest(s) and prototype install tree are passed through
   111     a set of validations.  This includes running pkglint(1), comparing the
   116     a set of validations.  This includes running pkglint(1), comparing the
   112     manifest content to the prototype install tree, and validation of the file
   117     manifest content to the prototype install tree, and validation of the file
   113     content of the prototype install tree.  Any anomolies are reported.
   118     content of the prototype install tree.  Any anomalies are reported.
   114     Content validation is performed by extension to pkglint(1) in
   119     Content validation is performed by extension to pkglint(1) in
   115     $(WS_TOP)/tools/python/userland-lint
   120     $(WS_TOP)/tools/python/userland-lint
   116 
   121 
   117 Publication.
   122 Publication.
   118     Once manifest validation has occurred, the package(s) is/are finally
   123     Once manifest validation has occurred, the package(s) is/are finally