aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2023-10-26 17:20:37 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2023-11-02 14:04:09 +0300
commita72e358d7a2df330f61ad9e73137b18225bdc5cc (patch)
tree411a1f5156bd68595abe7f16c8bcf2a665b2cc72
parent314a91a726cb5d947c5e19268a8fa557d803389c (diff)
Scratch plan on refinement caused by dependency up/down-grade/drop if any unsatisfied dependents have been ignored
-rw-r--r--bpkg/pkg-build.cxx7
1 files changed, 5 insertions, 2 deletions
diff --git a/bpkg/pkg-build.cxx b/bpkg/pkg-build.cxx
index c531480..4ff013e 100644
--- a/bpkg/pkg-build.cxx
+++ b/bpkg/pkg-build.cxx
@@ -4926,11 +4926,14 @@ namespace bpkg
// diagnostics run. Otherwise, if any dependency configuration
// negotiation has been performed during the current plan refinement
// iteration, then rebuild the plan from scratch (see above for
- // details).
+ // details). Also rebuild it from from scratch if any unsatisfied
+ // dependents have been ignored, since their unsatisfied constraints
+ // are now added to the dependencies' build_package::constraints
+ // lists.
//
if (!refine)
need_refinement (true /* diag */);
- else if (!postponed_cfgs.empty ())
+ else if (!postponed_cfgs.empty () || !unsatisfied_depts.empty ())
scratch_exe = true;
}