doc/packaging.txt
changeset 1235 413599fe2d31
parent 255 52abf74b9323
child 1393 300d3de848bb
child 3476 c35c8f1a6df1
equal deleted inserted replaced
1234:6f834970c557 1235:413599fe2d31
   100     This will allow the next step to resolve all dependencies to their proper
   100     This will allow the next step to resolve all dependencies to their proper
   101     package(s).
   101     package(s).
   102 
   102 
   103 Dependencies Resolved
   103 Dependencies Resolved
   104     The manifest with unresolved dependencies is passed through pkgdepend(1)
   104     The manifest with unresolved dependencies is passed through pkgdepend(1)
   105     again to resolve dependencies against the package repositories.  The
   105     again to resolve dependencies against the package repositories.  The result
   106     result is a manifest that is suitable for publication.  All these
   106     is a manifest that is suitable for publication.  All these manifests are
   107     manifests are processed together in a single step, which is more
   107     processed together in a single step, which is more efficient than resolving
   108     efficient than resolving dependencies in each manifest separately.
   108     dependencies in each manifest separately.  While each manifest ends up with
   109     While each manifest ends up with a .depend.res copy in the build
   109     a .depend.res copy in the build directory, the umbrella dependency
   110     directory, the umbrella dependency resolution target is
   110     resolution target is {build-dir}/.resolved-$(MACH).
   111     {build-dir}/.resolved-$(MACH).
   111 
       
   112     The resolution step is also set up to use the -e flag to pkgdepend resolve,
       
   113     which limits the set of packages it looks at to resolve the dependencies it
       
   114     generated in the previous step.  This makes the resolution step a great deal
       
   115     faster, but requires that you keep a static list of these packages checked
       
   116     into the workspace, and update it when packages are added to it.  Having
       
   117     extra packages in there is safe.
       
   118 
       
   119     In order to create this list, build and publish your component (or at least
       
   120     through the resolution stage) without a file "resolve.deps" in the component
       
   121     directory, and run "gmake sample-resolve.deps".  If the file is empty (that
       
   122     is, no computed dependencies were found), a warning will be emitted and the
       
   123     file will be removed, as pkgdepend currently errors out in that case.
       
   124 
       
   125     To test, run "gmake clean" and re-publish.
       
   126 
       
   127     Don't forget to "hg add resolve.deps"!
       
   128 
       
   129     Note that there is a possibility the list of dependencies will be different
       
   130     on different architectures, so you should run this on both sparc and x86,
       
   131     and combine the two lists.  Please keep the files sorted.
   112 
   132 
   113 Manifest Validation
   133 Manifest Validation
   114     The resolved manifest(s) and prototype install tree are passed through
   134     The resolved manifest(s) and prototype install tree are passed through
   115     a set of validations.  This includes running pkglint(1), comparing the
   135     a set of validations.  This includes running pkglint(1), comparing the
   116     manifest content to the prototype install tree, and validation of the file
   136     manifest content to the prototype install tree, and validation of the file