--- a/doc/packaging.txt Thu Mar 28 08:49:28 2013 -0700
+++ b/doc/packaging.txt Thu Mar 28 13:51:30 2013 -0700
@@ -102,13 +102,33 @@
Dependencies Resolved
The manifest with unresolved dependencies is passed through pkgdepend(1)
- again to resolve dependencies against the package repositories. The
- result is a manifest that is suitable for publication. All these
- manifests are processed together in a single step, which is more
- efficient than resolving dependencies in each manifest separately.
- While each manifest ends up with a .depend.res copy in the build
- directory, the umbrella dependency resolution target is
- {build-dir}/.resolved-$(MACH).
+ again to resolve dependencies against the package repositories. The result
+ is a manifest that is suitable for publication. All these manifests are
+ processed together in a single step, which is more efficient than resolving
+ dependencies in each manifest separately. While each manifest ends up with
+ a .depend.res copy in the build directory, the umbrella dependency
+ resolution target is {build-dir}/.resolved-$(MACH).
+
+ The resolution step is also set up to use the -e flag to pkgdepend resolve,
+ which limits the set of packages it looks at to resolve the dependencies it
+ generated in the previous step. This makes the resolution step a great deal
+ faster, but requires that you keep a static list of these packages checked
+ into the workspace, and update it when packages are added to it. Having
+ extra packages in there is safe.
+
+ In order to create this list, build and publish your component (or at least
+ through the resolution stage) without a file "resolve.deps" in the component
+ directory, and run "gmake sample-resolve.deps". If the file is empty (that
+ is, no computed dependencies were found), a warning will be emitted and the
+ file will be removed, as pkgdepend currently errors out in that case.
+
+ To test, run "gmake clean" and re-publish.
+
+ Don't forget to "hg add resolve.deps"!
+
+ Note that there is a possibility the list of dependencies will be different
+ on different architectures, so you should run this on both sparc and x86,
+ and combine the two lists. Please keep the files sorted.
Manifest Validation
The resolved manifest(s) and prototype install tree are passed through