aboutsummaryrefslogtreecommitdiff
path: root/bpkg
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2020-09-28 21:40:59 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2020-09-29 15:46:39 +0300
commit60c5bf36100ccc15421a87f4b566849d2468d396 (patch)
tree95c0f9a8a55561c78c3f8a67b93ed7f3438b5ded /bpkg
parent6909c20e69f08d256360dd29e50eacd02f49dfb8 (diff)
Run build2 dist meta-operation in pkg-checkout with '--no-external-modules !config.dist.bootstrap=true'
Diffstat (limited to 'bpkg')
-rw-r--r--bpkg/pkg-build.cxx10
-rw-r--r--bpkg/pkg-checkout.cxx22
2 files changed, 14 insertions, 18 deletions
diff --git a/bpkg/pkg-build.cxx b/bpkg/pkg-build.cxx
index 3ef513a..111c226 100644
--- a/bpkg/pkg-build.cxx
+++ b/bpkg/pkg-build.cxx
@@ -4389,10 +4389,12 @@ namespace bpkg
//
// We are also going to combine purge and fetch/unpack|checkout into a
// single step and use the replace mode so it will become just
- // fetch/unpack|checkout. Configure will also be combined with the above
- // operations to guarantee that prerequisite packages are configured by
- // the time its dependents need to be checked out (see the pkg_checkout()
- // function implementation for details).
+ // fetch/unpack|checkout. Configure is also combined with the above
+ // operations, since previously we had to guarantee that prerequisite
+ // packages are configured by the time its dependents need to be checked
+ // out. Now, when we start using the bootstrap dist for pkg-checkout
+ // that's not a requirement anymore. We, however, still keep it this way
+ // since there is no reason why not to.
//
// We also have the dependent packages that we reconfigure because their
// prerequsites got upgraded/downgraded and that the user may want to in
diff --git a/bpkg/pkg-checkout.cxx b/bpkg/pkg-checkout.cxx
index 05875a4..9be09c8 100644
--- a/bpkg/pkg-checkout.cxx
+++ b/bpkg/pkg-checkout.cxx
@@ -219,18 +219,6 @@ namespace bpkg
//
dir_path pd (td / path_cast<dir_path> (pl->location));
- // Verify the package prerequisites are all configured since the dist
- // meta-operation generally requires all imports to be resolvable.
- //
- package_manifest m (pkg_verify (pd,
- true /* ignore_unknown */,
- [&ap] (version& v) {v = ap->version;}));
-
- pkg_configure_prerequisites (o,
- t,
- convert (move (m.dependencies)),
- m.name);
-
// Form the buildspec.
//
string bspec ("dist('");
@@ -245,7 +233,11 @@ namespace bpkg
// Distribute.
//
- // Note that on failure the package stays in the existing (working)
+ // Note that we are using the bootstrap distribution mode (and also skip
+ // bootstrapping external modules) to make sure a package can be checked
+ // out without its dependencies being present.
+ //
+ // Note also that on failure the package stays in the existing (working)
// state.
//
// At first it may seem we have a problem: an existing package with the
@@ -264,7 +256,9 @@ namespace bpkg
run_b (o,
verb_b::progress,
- strings ({"config.dist.root='" + c.representation () + "'"}),
+ "--no-external-modules",
+ "!config.dist.bootstrap=true",
+ "config.dist.root='" + c.representation () + "'",
bspec);
// Revert the fix-ups.