aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2022-05-12 18:22:33 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2022-05-12 21:08:23 +0300
commit5e2ac7f4420cf4b03118007911dd7e7d98da5580 (patch)
tree36d93a22f2a94976255b85c116a20d9efaa89861
parent49b6bc46212da7e176223d46a29b39f4c4e6a47d (diff)
Review-inspired changes
-rw-r--r--bpkg/pkg-build.cxx255
-rw-r--r--tests/pkg-build.testscript581
2 files changed, 437 insertions, 399 deletions
diff --git a/bpkg/pkg-build.cxx b/bpkg/pkg-build.cxx
index aee216a..e7a50f2 100644
--- a/bpkg/pkg-build.cxx
+++ b/bpkg/pkg-build.cxx
@@ -1459,6 +1459,36 @@ namespace bpkg
return false;
}
+ // Return true if the specified cluster is a subset of the shadow cluster,
+ // if present.
+ //
+ // Specifically, being a subset means that each dependent of the specified
+ // cluster is present in the shadow cluster and all its dependency
+ // positions are present in the respective shadow dependent's positions
+ // set.
+ //
+ bool
+ contains_in_shadow_cluster (const postponed_configuration& c) const
+ {
+ for (const auto& d: c.dependents)
+ {
+ auto i (shadow_cluster.find (d.first));
+
+ if (i == shadow_cluster.end ())
+ return false;
+
+ const positions& ps (i->second);
+
+ for (const auto& dp: d.second.dependencies)
+ {
+ if (find (ps.begin (), ps.end (), dp.position) == ps.end ())
+ return false;
+ }
+ }
+
+ return true;
+ }
+
bool
existing_dependent (const config_package& cp) const
{
@@ -1627,11 +1657,11 @@ namespace bpkg
{
postponed_configuration& c1 (*ri);
- bool r (false);
iterator j (i);
// Merge the intersecting configurations.
//
+ bool merged (false);
for (++i; i != e; ++i)
{
postponed_configuration& c2 (*i);
@@ -1652,7 +1682,7 @@ namespace bpkg
l5 ([&]{trace << "merge " << c1 << " into " << c2;});
c2.merge (move (c1));
- // Mark configuration as the one being moved from for
+ // Mark configuration as the one being merged from for
// subsequent erasing from the list.
//
c1.dependencies.clear ();
@@ -1666,10 +1696,10 @@ namespace bpkg
assert (!shadow_based || (c2.negotiated && *c2.negotiated));
c1.merge (move (c2));
- c2.dependencies.clear (); // Mark as moved from (see above).
+ c2.dependencies.clear (); // Mark as merged from (see above).
}
- r = true;
+ merged = true;
if (single)
break;
@@ -1678,11 +1708,11 @@ namespace bpkg
// Erase configurations which we have merged from.
//
- if (r)
+ if (merged)
{
i = j;
- for (++i; i != end (); )
+ for (++i; i != e; )
{
if (!i->dependencies.empty ())
{
@@ -1693,8 +1723,6 @@ namespace bpkg
i = erase_after (j);
}
}
-
- return r;
};
// Try to add based on the shadow cluster.
@@ -1705,7 +1733,7 @@ namespace bpkg
{
postponed_configuration& c (*i);
- if (c.contains_shadow_cluster (dependent, position))
+ if (c.contains_in_shadow_cluster (dependent, position))
{
postponed_configuration tc (move (dependent),
existing,
@@ -3923,6 +3951,13 @@ namespace bpkg
postponed_deps,
postponed_cfgs);
}
+ else
+ l5 ([&]{trace << "dependency "
+ << b->available_name_version_db ()
+ << " of dependent "
+ << pkg.available_name_version_db ()
+ << " is already (being) recursively "
+ << "collected, skipping";});
}
return true;
@@ -4803,22 +4838,49 @@ namespace bpkg
// Note: not recursive.
//
- collect_build (o,
- move (p),
- fdb,
- rpt_depts,
- apc,
- true /* initial_collection */,
- replaced_vers);
+ build_package* b (collect_build (o,
+ move (p),
+ fdb,
+ rpt_depts,
+ apc,
+ true /* initial_collection */,
+ replaced_vers));
+
+ assert (b != nullptr);
// @@ Re-evaluate up-to the cluster's dependencies.
// @@ TMP
//
- postponed_cfgs.add (move (cp),
- true /* existing */,
- make_pair (1, 1),
- move (ds));
+ {
+ b->dependencies = dependencies ();
+
+ optional<dir_path> src_root (b->external_dir ());
+
+ optional<dir_path> out_root (
+ src_root && !b->disfigure
+ ? dir_path (b->db.get ().config) /= b->name ().string ()
+ : optional<dir_path> ());
+
+ b->skeleton = package_skeleton (o,
+ b->db,
+ *b->available,
+ b->config_vars,
+ move (src_root),
+ move (out_root));
+
+ build_package::dependency_alternatives_refs edas;
+
+ edas.push_back (
+ make_pair (ref (b->available->dependencies[0][0]), 0));
+
+ b->postponed_dependency_alternatives = move (edas);
+
+ postponed_cfgs.add (move (cp),
+ true /* existing */,
+ make_pair (1, 1),
+ move (ds));
+ }
}
}
}
@@ -4900,19 +4962,93 @@ namespace bpkg
for (const auto& p: dependents)
{
- // @@ Can't we use the fact that we are past the last depends value
- // to skip?
-
+ // Select the dependency alternative for which configuration has
+ // been negotiated and collect this dependent starting from the next
+ // depends value.
+ //
build_package* b (entered_build (p));
- assert (b != nullptr); // @@ TMP
- //assert (b != nullptr && b->postponed_dependency_alternatives);
- build_package_refs dep_chain;
+ // We should have been started recursively collecting the dependent
+ // and it should have been postponed.
+ //
+ assert (b != nullptr &&
+ b->available != nullptr &&
+ b->dependencies &&
+ b->skeleton &&
+ b->postponed_dependency_alternatives);
+
+ // Select the dependency alternative (evaluate reflect if present,
+ // etc) and position to the next depends value (see
+ // collect_build_prerequisites() for details).
+ //
+ {
+ const bpkg::dependencies& deps (b->available->dependencies);
+ bpkg::dependencies& sdeps (*b->dependencies);
+
+ size_t di (sdeps.size ());
+
+ // Skip the dependent if it has been already collected as some
+ // package's dependency or some such.
+ //
+ if (di == deps.size ())
+ l5 ([&]{trace << "dependent " << b->available_name_version_db ()
+ << " is already recursively collected, skipping";});
+
+ l5 ([&]{trace << "select cfg-negotiated dependency alternative "
+ << "for dependent "
+ << b->available_name_version_db ();});
+
+ // Find the postponed dependency alternative.
+ //
+ auto i (pcfg->dependents.find (p));
+
+ assert (i != pcfg->dependents.end () &&
+ i->second.dependencies.size () == 1);
+
+ const pair<size_t, size_t>& dp (
+ i->second.dependencies[0].position);
+
+ assert (dp.first == sdeps.size () + 1);
+
+ build_package::dependency_alternatives_refs pdas (
+ move (*b->postponed_dependency_alternatives));
+
+ b->postponed_dependency_alternatives = nullopt;
+
+ auto j (find_if (pdas.begin (), pdas.end (),
+ [&dp] (const auto& da)
+ {
+ return da.second + 1 == dp.second;
+ }));
+
+ assert (j != pdas.end ());
+
+ const dependency_alternative& da (j->first);
+
+ // Select the dependency alternative and position to the next
+ // depends value.
+ //
+ const dependency_alternatives_ex& das (deps[di]);
+ dependency_alternatives_ex sdas (das.buildtime, das.comment);
+
+ sdas.emplace_back (nullopt /* enable */,
+ nullopt /* reflect */,
+ da.prefer,
+ da.accept,
+ da.require,
+ da /* dependencies */);
+
+ sdeps.push_back (move (sdas));
- // @@ Need to evaluate reflects for the current position.
+ // Evaluate reflect, if present.
+ //
+ if (da.reflect)
+ b->skeleton->evaluate_reflect (*da.reflect, di);
+ }
- // @@ Need to continue collecting this dependent from the next
- // depends position. Increment something in build package.
+ // Continue recursively collecting the dependent.
+ //
+ build_package_refs dep_chain;
collect_build_prerequisites (
o,
@@ -4925,8 +5061,7 @@ namespace bpkg
dep_chain,
&postponed_repo,
&postponed_alts,
- numeric_limits<size_t>::max (), // @@ TMP
- // b->postponed_dependency_alternatives->size (),
+ 0 /* max_alt_index */,
postponed_deps,
postponed_cfgs);
}
@@ -5001,9 +5136,9 @@ namespace bpkg
// list entries we cannot iterate using the iterator here. Also note
// that the list size may not change during iterating.
//
- for (size_t i (0); i != postponed_cfgs.size (); ++i)
+ for (size_t ci (0); ci != postponed_cfgs.size (); ++ci)
{
- postponed_configuration* pc (&postponed_cfgs[i]);
+ postponed_configuration* pc (&postponed_cfgs[ci]);
// Find the next configuration to try to negotiate, skipping the
// already negotiated ones.
@@ -5067,7 +5202,7 @@ namespace bpkg
postponed_deps,
postponed_cfgs);
- pc = &postponed_cfgs[i];
+ pc = &postponed_cfgs[ci];
l5 ([&]{trace << "cfg-negotiation of " << *pc << " failed due "
<< "to dependent " << e.dependent << ", adding "
@@ -5104,21 +5239,55 @@ namespace bpkg
postponed_deps,
postponed_cfgs);
- pc = &postponed_cfgs[i];
+ pc = &postponed_cfgs[ci];
+
+ assert (!pc->negotiated);
l5 ([&]{trace << "cfg-negotiation of " << *pc << " failed due "
<< "to non-negotiated clusters, force-merging "
<< "based on shadow cluster " << shadow;});
- pc->shadow (move (shadow));
+ pc->set_shadow_cluster (move (shadow));
- // @@ TODO: Here we also need to go through all the
- // non-negotiated clusters (the negotiated member is absent)
- // and force-merge into this cluster those of them, which are
- // subsets of the shadow cluster. Being a subset means that
- // each its dependent is present in the shadow cluster with
- // all its dependency positions being a subset of those for
- // the respective dependent in the shadow cluster.
+ // Force-merge into this cluster those non-negotiated clusters
+ // which are subsets of the shadow cluster.
+ //
+ for (postponed_configuration& c: postponed_cfgs)
+ {
+ if (&c != pc &&
+ !c.negotiated &&
+ pc->contains_in_shadow_cluster (c))
+ {
+ pc->merge (move (c));
+
+ // Mark configuration as the one being merged from for
+ // subsequent erasing from the list.
+ //
+ c.dependencies.clear ();
+ }
+ }
+
+ // Erase clusters which we have merged from. Also re-translate
+ // the current cluster address into index which may change as a
+ // result of the merge.
+ //
+ auto i (postponed_cfgs.begin ());
+ auto j (postponed_cfgs.before_begin ()); // Precedes iterator i.
+
+ for (size_t k (0); i != postponed_cfgs.end (); )
+ {
+ if (!i->dependencies.empty ())
+ {
+ if (&*i == pc)
+ ci = k;
+
+ ++i;
+ ++j;
+ ++k;
+ }
+ else
+ i = postponed_cfgs.erase_after (j);
+ }
}
}
}
diff --git a/tests/pkg-build.testscript b/tests/pkg-build.testscript
index 20d2271..9deb74d 100644
--- a/tests/pkg-build.testscript
+++ b/tests/pkg-build.testscript
@@ -4762,79 +4762,11 @@ test.options += --no-progress
trace: collect_build_prerequisites: begin libfoo/1.0.0
trace: collect_build_prerequisites: end libfoo/1.0.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent foo/1.0.0
trace: collect_build_prerequisites: resume foo/1.0.0
- %.*
- trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent foo/1.0.0
- trace: postponed_configurations::add: add {foo | libfoo->{foo/1,1}} to {foo fox | libfoo->{foo/1,1 fox/1,1}}?
- trace: collect_build_prerequisites: cfg-postponing dependent foo/1.0.0 involves negotiated configurations and results in {foo fox | libfoo->{foo/1,1 fox/1,1}}?, throwing retry_configuration
- trace: collect_build_postponed (0): cfg-negotiation of {foo fox | libfoo->{foo/1,1 fox/1,1}} failed due to dependent foo, adding shadow dependent and re-negotiating
- trace: collect_build_postponed (1): begin
- %.*
- trace: collect_build_postponed (1): cfg-negotiate begin {foo fox | libfoo->{foo/1,1 fox/1,1}}
- trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
- trace: collect_build_prerequisites: begin libfoo/1.0.0
- trace: collect_build_prerequisites: end libfoo/1.0.0
- trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
- trace: collect_build_prerequisites: resume foo/1.0.0
- %.*
- trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent foo/1.0.0
- trace: postponed_configurations::add: add {foo | libfoo->{foo/1,1}} to {foo fox | libfoo->{foo/1,1 fox/1,1}}?
- trace: collect_build_prerequisites: dependent foo/1.0.0 is a shadow dependent for {foo fox | libfoo->{foo/1,1 fox/1,1}}?
- trace: collect_build_prerequisites: cfg-postponing dependent foo/1.0.0 involves non-negotiated configurations and results in {foo fox | libfoo->{foo/1,1 fox/1,1}}?, throwing merge_configuration
- trace: collect_build_postponed (0): cfg-negotiation of {foo fox | libfoo->{foo/1,1 fox/1,1}} failed due to non-negotiated clusters, force-merging based on shadow cluster {foo fox | libfoo->{foo/1,1 fox/1,1}}?
- trace: collect_build_postponed (1): begin
- %.*
- trace: collect_build_postponed (1): cfg-negotiate begin {foo fox | libfoo->{foo/1,1 fox/1,1}}
- trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
- trace: collect_build_prerequisites: begin libfoo/1.0.0
- trace: collect_build_prerequisites: end libfoo/1.0.0
- trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
- trace: collect_build_prerequisites: resume foo/1.0.0
- %.*
- trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent foo/1.0.0
- trace: postponed_configurations::add: add {foo | libfoo->{foo/1,1}} to {foo fox | libfoo->{foo/1,1 fox/1,1}}? (shadow)
- trace: collect_build_prerequisites: dependent foo/1.0.0 is a shadow dependent for {foo fox | libfoo->{foo/1,1 fox/1,1}}?
- trace: collect_build_prerequisites: cfg-postponing dependent foo/1.0.0 involves non-negotiated configurations and results in {foo fox | libfoo->{foo/1,1 fox/1,1}}?, throwing merge_configuration
- ...........
- EOE
-#\
- $* foo fox fux 2>>~%EOE%;
- %.*
- trace: pkg_build: refine package collection/plan execution from scratch
- %.*
- trace: collect_build: add foo/1.0.0
- trace: collect_build: add fox/1.0.0
- trace: collect_build: add fux/1.0.0
- trace: collect_build_prerequisites: begin foo/1.0.0
- %.*
- trace: collect_build: add libfoo/1.0.0
- trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent foo/1.0.0
- trace: postponed_configurations::add: create {foo | libfoo->{foo/1,1}}
- trace: collect_build_prerequisites: postpone foo/1.0.0
- trace: collect_build_prerequisites: begin fox/1.0.0
- %.*
- trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent fox/1.0.0
- trace: postponed_configurations::add: add {fox | libfoo->{fox/1,1}} to {foo | libfoo->{foo/1,1}}
- trace: collect_build_prerequisites: postpone fox/1.0.0
- trace: collect_build_prerequisites: begin fux/1.0.0
- %.*
- trace: collect_build_prerequisites: dep-postpone dependency libfoo/1.0.0 of dependent fux/1.0.0
- trace: collect_build_prerequisites: end fux/1.0.0
- trace: collect_build_postponed (0): begin
- trace: collect_build_postponed (1): begin
- %.*
- trace: collect_build_postponed (1): cfg-negotiate begin {foo fox | libfoo->{foo/1,1 fox/1,1}}
- trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
- trace: collect_build_prerequisites: begin libfoo/1.0.0
- trace: collect_build_prerequisites: end libfoo/1.0.0
- trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
- trace: collect_build_prerequisites: resume foo/1.0.0
- %.*
- trace: collect_build_prerequisites: skip being cfg-negotiated dependency libfoo/1.0.0 of dependent foo/1.0.0
trace: collect_build_prerequisites: end foo/1.0.0
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent fox/1.0.0
trace: collect_build_prerequisites: resume fox/1.0.0
- %.*
- trace: collect_build_prerequisites: skip being cfg-negotiated dependency libfoo/1.0.0 of dependent fox/1.0.0
trace: collect_build_prerequisites: end fox/1.0.0
trace: collect_build_postponed (1): cfg-negotiate end {foo fox | libfoo->{foo/1,1 fox/1,1}}!
trace: collect_build_postponed (1): end
@@ -4842,7 +4774,7 @@ test.options += --no-progress
trace: execute_plan: simulate: yes
%.*
EOE
-#\
+
$pkg_status -r >>EOO;
!foo configured 1.0.0
libfoo configured 1.0.0
@@ -5132,8 +5064,6 @@ test.options += --no-progress
{
$clone_cfg;
- $* fux foo fix 2>!;
-#\
$* fux foo fix 2>>~%EOE%;
%.*
trace: pkg_build: refine package collection/plan execution from scratch
@@ -5191,6 +5121,7 @@ test.options += --no-progress
trace: collect_build_prerequisites: postpone fix/1.0.0
trace: pkg_build: erase bogus postponement libfoo
trace: pkg_build: bogus postponements erased, throwing
+ trace: pkg_build: collection failed due to bogus dependency collection postponement cancellation, retry from scratch
%.*
trace: pkg_build: refine package collection/plan execution from scratch
%.*
@@ -5267,9 +5198,8 @@ test.options += --no-progress
trace: postponed_configurations::add: create {foo | libfoo->{foo/1,1}}
trace: collect_build_prerequisites: postpone foo/1.0.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent fix/1.0.0
trace: collect_build_prerequisites: resume fix/1.0.0
- %.*
- trace: collect_build_prerequisites: skip being cfg-negotiated dependency foo/1.0.0 of dependent fix/1.0.0
trace: collect_build_prerequisites: end fix/1.0.0
trace: collect_build_postponed (1): cfg-negotiate end {fix | foo->{fix/1,1}}!
trace: collect_build_postponed (2): begin
@@ -5279,9 +5209,8 @@ test.options += --no-progress
trace: collect_build_prerequisites: begin libfoo/1.0.0
trace: collect_build_prerequisites: end libfoo/1.0.0
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent foo/1.0.0
trace: collect_build_prerequisites: resume foo/1.0.0
- %.*
- trace: collect_build_prerequisites: skip being cfg-negotiated dependency libfoo/1.0.0 of dependent foo/1.0.0
trace: collect_build_prerequisites: end foo/1.0.0
trace: collect_build_postponed (2): cfg-negotiate end {foo | libfoo->{foo/1,1}}!
trace: collect_build_postponed (2): end
@@ -5290,7 +5219,7 @@ test.options += --no-progress
trace: execute_plan: simulate: yes
%.*
EOE
-#\
+
$pkg_status -r >>EOO;
!fux configured 1.0.0
libfoo configured 1.0.0
@@ -5307,7 +5236,6 @@ test.options += --no-progress
: existing
:
- if false
{
+$clone_cfg
@@ -5318,36 +5246,34 @@ test.options += --no-progress
$* libfoo 2>!;
- $* foo 2>!;
-#\
$* foo 2>>~%EOE%;
%.*
- trace: pkg_build: refine execution plan from scratch
+ trace: pkg_build: refine package collection/plan execution from scratch
%.*
trace: collect_build: add foo/1.0.0
trace: collect_build_prerequisites: begin foo/1.0.0
%.*
trace: collect_build: add libfoo/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent foo/1.0.0
- trace: postponed_configurations::add: create {foo | libfoo}
+ trace: postponed_configurations::add: create {foo | libfoo->{foo/1,1}}
trace: collect_build_prerequisites: postpone foo/1.0.0
trace: collect_build_postponed (0): begin
trace: collect_build_postponed (1): begin
- trace: collect_build_postponed (1): cfg-negotiate begin {foo | libfoo}
+ %.*
+ trace: collect_build_postponed (1): cfg-negotiate begin {foo | libfoo->{foo/1,1}}
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: skip configured libfoo/1.0.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent foo/1.0.0
trace: collect_build_prerequisites: resume foo/1.0.0
- %.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libfoo/1.0.0 of dependent foo/1.0.0
trace: collect_build_prerequisites: end foo/1.0.0
- trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo}
+ trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1,1}}!
trace: collect_build_postponed (1): end
trace: collect_build_postponed (0): end
trace: execute_plan: simulate: yes
%.*
EOE
-#\
+
$pkg_status -r >>EOO;
!libfoo configured 1.0.0
!foo configured 1.0.0
@@ -5371,21 +5297,20 @@ test.options += --no-progress
%.*
trace: collect_build: add libfoo/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent foo/1.0.0
- trace: postponed_configurations::add: create {foo | libfoo->{foo/1}}
+ trace: postponed_configurations::add: create {foo | libfoo->{foo/1,1}}
trace: collect_build_prerequisites: postpone foo/1.0.0
trace: collect_build_postponed (0): begin
trace: collect_build_postponed (1): begin
%.*
- trace: collect_build_postponed (1): cfg-negotiate begin {foo | libfoo->{foo/1}}
+ trace: collect_build_postponed (1): cfg-negotiate begin {foo | libfoo->{foo/1,1}}
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libfoo/1.0.0
trace: collect_build_prerequisites: end libfoo/1.0.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent foo/1.0.0
trace: collect_build_prerequisites: resume foo/1.0.0
- %.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libfoo/1.0.0 of dependent foo/1.0.0
trace: collect_build_prerequisites: end foo/1.0.0
- trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1}}
+ trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1,1}}!
trace: collect_build_postponed (1): end
trace: collect_build_postponed (0): end
trace: execute_plan: simulate: yes
@@ -5411,19 +5336,17 @@ test.options += --no-progress
%.*
trace: collect_build_postponed (1): re-evaluate existing dependents for { | libfoo->{}}
trace: collect_build: add foo/1.0.0
- trace: postponed_configurations::add: add {foo | libfoo->{foo/1}} to { | libfoo->{}}
- trace: collect_build_postponed (1): cfg-negotiate begin {foo | libfoo->{foo/1}}
+ trace: postponed_configurations::add: add {foo^ | libfoo->{foo/1,1}} to { | libfoo->{}}
+ trace: collect_build_postponed (1): cfg-negotiate begin {foo^ | libfoo->{foo/1,1}}
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libfoo/0.1.0
trace: collect_build_prerequisites: end libfoo/0.1.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent foo/1.0.0
%.*
- trace: collect_build_prerequisites: begin foo/1.0.0
- %.*
- trace: collect_build: pick libfoo/0.1.0 over libfoo/1.0.0
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libfoo/0.1.0 of dependent foo/1.0.0
+ trace: collect_build_prerequisites: resume foo/1.0.0
trace: collect_build_prerequisites: end foo/1.0.0
- trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1}}
+ trace: collect_build_postponed (1): cfg-negotiate end {foo^ | libfoo->{foo/1,1}}!
trace: collect_build_postponed (1): end
trace: collect_build_postponed (0): end
%.*
@@ -5446,17 +5369,16 @@ test.options += --no-progress
%.*
trace: collect_build_postponed (1): re-evaluate existing dependents for { | libfoo->{}}
trace: collect_build: add foo/1.0.0
- trace: postponed_configurations::add: add {foo | libfoo->{foo/1}} to { | libfoo->{}}
- trace: collect_build_postponed (1): cfg-negotiate begin {foo | libfoo->{foo/1}}
+ trace: postponed_configurations::add: add {foo^ | libfoo->{foo/1,1}} to { | libfoo->{}}
+ trace: collect_build_postponed (1): cfg-negotiate begin {foo^ | libfoo->{foo/1,1}}
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: skip configured libfoo/0.1.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent foo/1.0.0
%.*
- trace: collect_build_prerequisites: begin foo/1.0.0
- %.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libfoo/0.1.0 of dependent foo/1.0.0
+ trace: collect_build_prerequisites: resume foo/1.0.0
trace: collect_build_prerequisites: end foo/1.0.0
- trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1}}
+ trace: collect_build_postponed (1): cfg-negotiate end {foo^ | libfoo->{foo/1,1}}!
trace: collect_build_postponed (1): end
trace: collect_build_postponed (0): end
%.*
@@ -5484,19 +5406,17 @@ test.options += --no-progress
trace: collect_build_postponed (1): begin
%.*
trace: collect_build_postponed (1): re-evaluate existing dependents for { | libfoo->{}}
- trace: postponed_configurations::add: add {foo | libfoo->{foo/1}} to { | libfoo->{}}
- trace: collect_build_postponed (1): cfg-negotiate begin {foo | libfoo->{foo/1}}
+ trace: postponed_configurations::add: add {foo^ | libfoo->{foo/1,1}} to { | libfoo->{}}
+ trace: collect_build_postponed (1): cfg-negotiate begin {foo^ | libfoo->{foo/1,1}}
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libfoo/1.0.0
trace: collect_build_prerequisites: end libfoo/1.0.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent foo/1.0.0
%.*
- trace: collect_build_prerequisites: begin foo/1.0.0
- %.*
- trace: collect_build: pick libfoo/1.0.0 over libfoo/0.1.0
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libfoo/1.0.0 of dependent foo/1.0.0
+ trace: collect_build_prerequisites: resume foo/1.0.0
trace: collect_build_prerequisites: end foo/1.0.0
- trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1}}
+ trace: collect_build_postponed (1): cfg-negotiate end {foo^ | libfoo->{foo/1,1}}!
trace: collect_build_postponed (1): end
trace: collect_build_postponed (0): end
%.*
@@ -5512,13 +5432,14 @@ test.options += --no-progress
trace: pkg_build: refine package collection/plan execution from scratch
%.*
trace: collect_build: add libfoo/1.0.0
- trace: pkg_build: dep-postpone user-specified libfoo
+ %.*
+ trace: collect_build_prerequisites: skip expected to be dropped existing dependent foo of dependency libfoo
+ trace: collect_build_prerequisites: begin libfoo/1.0.0
+ trace: collect_build_prerequisites: end libfoo/1.0.0
trace: collect_drop: overwrite foo
- trace: collect_build_postponed (0): begin
- trace: collect_build_postponed (0): erase bogus postponement libfoo
- trace: collect_build_postponed (0): bogus postponements erased, throwing
- trace: pkg_build: collection failed due to bogus dependency collection postponement cancellation, retry from scratch
trace: pkg_build: erase bogus version replacement foo
+ trace: pkg_build: bogus version replacement erased, throwing
+ trace: pkg_build: collection failed due to bogus version replacement cancellation, retry from scratch
%.*
trace: pkg_build: refine package collection/plan execution from scratch
%.*
@@ -5536,7 +5457,7 @@ test.options += --no-progress
trace: collect_build_prerequisites: begin libfoo/1.0.0
trace: collect_build_prerequisites: end libfoo/1.0.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
- trace: collect_build_postponed (1): cfg-negotiate end { | libfoo->{}}
+ trace: collect_build_postponed (1): cfg-negotiate end { | libfoo->{}}!
trace: collect_build_postponed (1): end
trace: collect_build_postponed (0): end
%.*
@@ -5554,7 +5475,6 @@ test.options += --no-progress
: postponed-collection
:
- if false
{
+$clone_cfg
@@ -5602,9 +5522,8 @@ test.options += --no-progress
trace: collect_build_prerequisites: begin libfoo/1.0.0
trace: collect_build_prerequisites: end libfoo/1.0.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent foo/1.0.0
trace: collect_build_prerequisites: resume foo/1.0.0
- %.*
- trace: collect_build_prerequisites: skip being cfg-negotiated dependency libfoo/1.0.0 of dependent foo/1.0.0
trace: collect_build_prerequisites: end foo/1.0.0
trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1,1}}!
trace: collect_build_postponed (2): begin
@@ -5614,9 +5533,8 @@ test.options += --no-progress
trace: collect_build_prerequisites: begin libbar/1.0.0
trace: collect_build_prerequisites: end libbar/1.0.0
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent bar/1.0.0
trace: collect_build_prerequisites: resume bar/1.0.0
- %.*
- trace: collect_build_prerequisites: skip being cfg-negotiated dependency libbar/1.0.0 of dependent bar/1.0.0
trace: collect_build_prerequisites: end bar/1.0.0
trace: collect_build_postponed (2): cfg-negotiate end {bar | libbar->{bar/1,1}}!
trace: collect_build_postponed (2): index 1 collect alt-postponed box/1.0.0
@@ -5635,9 +5553,8 @@ test.options += --no-progress
trace: collect_build_prerequisites: begin libfoo/1.0.0
trace: collect_build_prerequisites: end libfoo/1.0.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent foo/1.0.0
trace: collect_build_prerequisites: resume foo/1.0.0
- %.*
- trace: collect_build_prerequisites: skip being cfg-negotiated dependency libfoo/1.0.0 of dependent foo/1.0.0
trace: collect_build_prerequisites: end foo/1.0.0
trace: collect_build_postponed (1): cfg-negotiate end {foo | libfoo->{foo/1,1}}!
trace: collect_build_postponed (2): begin
@@ -5647,9 +5564,8 @@ test.options += --no-progress
trace: collect_build_prerequisites: begin libbar/1.0.0
trace: collect_build_prerequisites: end libbar/1.0.0
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent bar/1.0.0
trace: collect_build_prerequisites: resume bar/1.0.0
- %.*
- trace: collect_build_prerequisites: skip being cfg-negotiated dependency libbar/1.0.0 of dependent bar/1.0.0
trace: collect_build_prerequisites: end bar/1.0.0
trace: collect_build_postponed (2): cfg-negotiate end {bar | libbar->{bar/1,1}}!
trace: collect_build_postponed (2): index 1 collect alt-postponed box/1.0.0
@@ -5659,6 +5575,10 @@ test.options += --no-progress
trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent box/1.0.0
trace: postponed_configurations::add: add {box | libbar->{box/1,1} libfoo->{box/1,1}} to {foo | libfoo->{foo/1,1}}!
trace: postponed_configurations::add: merge {bar | libbar->{bar/1,1}}! into {box foo | libbar->{box/1,1} libfoo->{box/1,1 foo/1,1}}!
+ trace: collect_build_prerequisites: dependent box/1.0.0 is a shadow dependent for {bar box foo | libbar->{bar/1,1 box/1,1} libfoo->{box/1,1 foo/1,1}}!
+ trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent box/1.0.0 is negotiated
+ trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent box/1.0.0 is already (being) recursively collected, skipping
+ trace: collect_build_prerequisites: dependency libfoo/1.0.0 of dependent box/1.0.0 is already (being) recursively collected, skipping
trace: collect_build_prerequisites: end box/1.0.0
trace: collect_build_postponed (2): end
trace: collect_build_postponed (1): end
@@ -6032,8 +5952,24 @@ test.options += --no-progress
trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bar/1.0.0
trace: postponed_configurations::add: add {bar | libbar->{bar/1,1}} to {bix | bar->{bix/1,1} libbar->{bix/1,1}}? (shadow)
trace: collect_build_prerequisites: dependent bar/1.0.0 is a shadow dependent for {bar bix | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1}}?
- trace: collect_build_prerequisites: cfg-postponing dependent bar/1.0.0 involves non-negotiated configurations and results in {bar bix | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1}}?, throwing merge_configuration
- trace: collect_build_postponed (0): cfg-negotiation of {bix | bar->{bix/1,1} libbar->{bix/1,1}} failed due to non-negotiated clusters, force-merging based on shadow cluster {bar bix | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1}}?
+ trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bar/1.0.0 is negotiated
+ trace: collect_build_prerequisites: collecting cfg-postponed dependency libbar/1.0.0 of dependent bar/1.0.0
+ trace: collect_build_prerequisites: begin libbar/1.0.0
+ trace: collect_build_prerequisites: end libbar/1.0.0
+ trace: collect_build_prerequisites: end bar/1.0.0
+ trace: collect_build_postponed (1): dependency libbar/1.0.0 is already (being) recursively collected, skipping
+ trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bix/1.0.0
+ trace: collect_build_prerequisites: resume bix/1.0.0
+ %.*
+ trace: collect_build: add bux/1.0.0
+ trace: collect_build_prerequisites: no cfg-clause for dependency bux/1.0.0 of dependent bix/1.0.0
+ trace: collect_build_prerequisites: begin bux/1.0.0
+ %.*
+ trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bux/1.0.0
+ trace: postponed_configurations::add: add {bux | libbar->{bux/1,1}} to {bar bix | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1}}?
+ trace: collect_build_prerequisites: cfg-postponing dependent bux/1.0.0 involves negotiated configurations and results in {bar bix bux | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1 bux/1,1}}?, throwing retry_configuration
+ trace: collect_build_postponed (0): cfg-negotiation of {bix | bar->{bix/1,1} libbar->{bix/1,1}} failed due to dependent bux, adding shadow dependent and re-negotiating
trace: collect_build_postponed (1): begin
%.*
trace: collect_build_postponed (1): cfg-negotiate begin {bix | bar->{bix/1,1} libbar->{bix/1,1}}
@@ -6043,8 +5979,60 @@ test.options += --no-progress
trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bar/1.0.0
trace: postponed_configurations::add: add {bar | libbar->{bar/1,1}} to {bix | bar->{bix/1,1} libbar->{bix/1,1}}? (shadow)
trace: collect_build_prerequisites: dependent bar/1.0.0 is a shadow dependent for {bar bix | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1}}?
- trace: collect_build_prerequisites: cfg-postponing dependent bar/1.0.0 involves non-negotiated configurations and results in {bar bix | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1}}?, throwing merge_configuration
- ...
+ trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bar/1.0.0 is negotiated
+ trace: collect_build_prerequisites: collecting cfg-postponed dependency libbar/1.0.0 of dependent bar/1.0.0
+ trace: collect_build_prerequisites: begin libbar/1.0.0
+ trace: collect_build_prerequisites: end libbar/1.0.0
+ trace: collect_build_prerequisites: end bar/1.0.0
+ trace: collect_build_postponed (1): dependency libbar/1.0.0 is already (being) recursively collected, skipping
+ trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bix/1.0.0
+ trace: collect_build_prerequisites: resume bix/1.0.0
+ %.*
+ trace: collect_build: add bux/1.0.0
+ trace: collect_build_prerequisites: no cfg-clause for dependency bux/1.0.0 of dependent bix/1.0.0
+ trace: collect_build_prerequisites: begin bux/1.0.0
+ %.*
+ trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bux/1.0.0
+ trace: postponed_configurations::add: add {bux | libbar->{bux/1,1}} to {bar bix | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1}}?
+ trace: collect_build_prerequisites: dependent bux/1.0.0 is a shadow dependent for {bar bix bux | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1 bux/1,1}}?
+ trace: collect_build_prerequisites: cfg-postponing dependent bux/1.0.0 involves non-negotiated configurations and results in {bar bix bux | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1 bux/1,1}}?, throwing merge_configuration
+ trace: collect_build_postponed (0): cfg-negotiation of {bix | bar->{bix/1,1} libbar->{bix/1,1}} failed due to non-negotiated clusters, force-merging based on shadow cluster {bar bix bux | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1 bux/1,1}}?
+ trace: collect_build_postponed (1): begin
+ %.*
+ trace: collect_build_postponed (1): cfg-negotiate begin {bix | bar->{bix/1,1} libbar->{bix/1,1}}
+ trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
+ trace: collect_build_prerequisites: begin bar/1.0.0
+ %.*
+ trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bar/1.0.0
+ trace: postponed_configurations::add: add {bar | libbar->{bar/1,1}} to {bix | bar->{bix/1,1} libbar->{bix/1,1}}? (shadow)
+ trace: collect_build_prerequisites: dependent bar/1.0.0 is a shadow dependent for {bar bix | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1}}?
+ trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bar/1.0.0 is negotiated
+ trace: collect_build_prerequisites: collecting cfg-postponed dependency libbar/1.0.0 of dependent bar/1.0.0
+ trace: collect_build_prerequisites: begin libbar/1.0.0
+ trace: collect_build_prerequisites: end libbar/1.0.0
+ trace: collect_build_prerequisites: end bar/1.0.0
+ trace: collect_build_postponed (1): dependency libbar/1.0.0 is already (being) recursively collected, skipping
+ trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bix/1.0.0
+ trace: collect_build_prerequisites: resume bix/1.0.0
+ %.*
+ trace: collect_build: add bux/1.0.0
+ trace: collect_build_prerequisites: no cfg-clause for dependency bux/1.0.0 of dependent bix/1.0.0
+ trace: collect_build_prerequisites: begin bux/1.0.0
+ %.*
+ trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bux/1.0.0
+ trace: postponed_configurations::add: add {bux | libbar->{bux/1,1}} to {bar bix | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1}}? (shadow)
+ trace: collect_build_prerequisites: dependent bux/1.0.0 is a shadow dependent for {bar bix bux | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1 bux/1,1}}?
+ trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bux/1.0.0 is negotiated
+ trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent bux/1.0.0 is already (being) recursively collected, skipping
+ trace: collect_build_prerequisites: end bux/1.0.0
+ trace: collect_build_prerequisites: end bix/1.0.0
+ trace: collect_build_postponed (1): cfg-negotiate end {bar bix bux | bar->{bix/1,1} libbar->{bar/1,1 bix/1,1 bux/1,1}}!
+ trace: collect_build_postponed (1): end
+ trace: collect_build_postponed (0): end
+ trace: execute_plan: simulate: yes
+ %.*
EOE
#\
@@ -6644,56 +6632,48 @@ test.options += --no-progress
%.*
trace: collect_build: add libbar/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tax/1.0.0
- trace: postponed_configurations::add: create {tax | libbar->{tax/1}}
+ trace: postponed_configurations::add: create {tax | libbar->{tax/1,1}}
trace: collect_build_prerequisites: postpone tax/1.0.0
trace: collect_build_prerequisites: begin toz/1.0.0
%.*
trace: collect_build: add libbaz/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libbaz/1.0.0 of dependent toz/1.0.0
- trace: postponed_configurations::add: create {toz | libbaz->{toz/1}}
+ trace: postponed_configurations::add: create {toz | libbaz->{toz/1,1}}
trace: collect_build_prerequisites: postpone toz/1.0.0
trace: collect_build_prerequisites: begin tez/1.0.0
%.*
trace: collect_build: add libbox/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/1.0.0
- trace: postponed_configurations::add: create {tez | libbox->{tez/1}}
+ trace: postponed_configurations::add: create {tez | libbox->{tez/1,1}}
trace: collect_build_prerequisites: postpone tez/1.0.0
trace: collect_build_postponed (0): begin
trace: collect_build_postponed (1): begin
%.*
- trace: collect_build_postponed (1): cfg-negotiate begin {tax | libbar->{tax/1}}
+ trace: collect_build_postponed (1): cfg-negotiate begin {tax | libbar->{tax/1,1}}
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libbar/1.0.0
trace: collect_build_prerequisites: end libbar/1.0.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tax/1.0.0
trace: collect_build_prerequisites: resume tax/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbar/1.0.0 of dependent tax/1.0.0
- %.*
trace: collect_build: add libfoo/1.0.0
- trace: collect_build_prerequisites: recursively collect dependency libfoo/1.0.0 of dependent tax/1.0.0
+ trace: collect_build_prerequisites: no cfg-clause for dependency libfoo/1.0.0 of dependent tax/1.0.0
trace: collect_build_prerequisites: begin libfoo/1.0.0
trace: collect_build_prerequisites: end libfoo/1.0.0
trace: collect_build_prerequisites: end tax/1.0.0
- trace: collect_build_postponed (1): cfg-negotiate end {tax | libbar->{tax/1}}
+ trace: collect_build_postponed (1): cfg-negotiate end {tax | libbar->{tax/1,1}}!
trace: collect_build_postponed (2): begin
%.*
- trace: collect_build_postponed (2): cfg-negotiate begin {toz | libbaz->{toz/1}}
+ trace: collect_build_postponed (2): cfg-negotiate begin {toz | libbaz->{toz/1,1}}
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libbaz/1.0.0
trace: collect_build_prerequisites: end libbaz/1.0.0
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent toz/1.0.0
trace: collect_build_prerequisites: resume toz/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbaz/1.0.0 of dependent toz/1.0.0
- %.*
- trace: collect_build_prerequisites: cannot cfg-postpone dependency libfoo/1.0.0 of dependent toz/1.0.0 (collected prematurely), checking for configuration cycle
- trace: collect_build_prerequisites: negotiated: {tax | libbar->{tax/1}}
- trace: collect_build_prerequisites: being negotiated: {toz | libbaz->{toz/1}}
- trace: postponed_configurations::add: create {toz | libfoo->{toz/2}}
- trace: collect_build_prerequisites: verifying {tax | libbar->{tax/1}}
- trace: collect_build_prerequisites: verifying {toz | libbaz->{toz/1}}
- trace: collect_build_prerequisites: no configuration cycle, throwing
+ trace: collect_build_prerequisites: cannot cfg-postpone dependency libfoo/1.0.0 of dependent toz/1.0.0 (collected prematurely), throwing postpone_dependency
trace: pkg_build: collection failed due to prematurely collected dependency (libfoo), retry from scratch
%.*
trace: pkg_build: refine package collection/plan execution from scratch
@@ -6705,62 +6685,59 @@ test.options += --no-progress
%.*
trace: collect_build: add libbar/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tax/1.0.0
- trace: postponed_configurations::add: create {tax | libbar->{tax/1}}
+ trace: postponed_configurations::add: create {tax | libbar->{tax/1,1}}
trace: collect_build_prerequisites: postpone tax/1.0.0
trace: collect_build_prerequisites: begin toz/1.0.0
%.*
trace: collect_build: add libbaz/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libbaz/1.0.0 of dependent toz/1.0.0
- trace: postponed_configurations::add: create {toz | libbaz->{toz/1}}
+ trace: postponed_configurations::add: create {toz | libbaz->{toz/1,1}}
trace: collect_build_prerequisites: postpone toz/1.0.0
trace: collect_build_prerequisites: begin tez/1.0.0
%.*
trace: collect_build: add libbox/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/1.0.0
- trace: postponed_configurations::add: create {tez | libbox->{tez/1}}
+ trace: postponed_configurations::add: create {tez | libbox->{tez/1,1}}
trace: collect_build_prerequisites: postpone tez/1.0.0
trace: collect_build_postponed (0): begin
trace: collect_build_postponed (1): begin
%.*
- trace: collect_build_postponed (1): cfg-negotiate begin {tax | libbar->{tax/1}}
+ trace: collect_build_postponed (1): cfg-negotiate begin {tax | libbar->{tax/1,1}}
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libbar/1.0.0
trace: collect_build_prerequisites: end libbar/1.0.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tax/1.0.0
trace: collect_build_prerequisites: resume tax/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbar/1.0.0 of dependent tax/1.0.0
- %.*
trace: collect_build: add libfoo/1.0.0
trace: collect_build_prerequisites: dep-postpone dependency libfoo/1.0.0 of dependent tax/1.0.0
trace: collect_build_prerequisites: end tax/1.0.0
- trace: collect_build_postponed (1): cfg-negotiate end {tax | libbar->{tax/1}}
+ trace: collect_build_postponed (1): cfg-negotiate end {tax | libbar->{tax/1,1}}!
trace: collect_build_postponed (2): begin
%.*
- trace: collect_build_postponed (2): cfg-negotiate begin {toz | libbaz->{toz/1}}
+ trace: collect_build_postponed (2): cfg-negotiate begin {toz | libbaz->{toz/1,1}}
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libbaz/1.0.0
trace: collect_build_prerequisites: end libbaz/1.0.0
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent toz/1.0.0
trace: collect_build_prerequisites: resume toz/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbaz/1.0.0 of dependent toz/1.0.0
- %.*
trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent toz/1.0.0
- trace: postponed_configurations::add: create {toz | libfoo->{toz/2}}
+ trace: postponed_configurations::add: create {toz | libfoo->{toz/2,1}}
trace: collect_build_prerequisites: postpone toz/1.0.0
- trace: collect_build_postponed (2): cfg-negotiate end {toz | libbaz->{toz/1}}
+ trace: collect_build_postponed (2): cfg-negotiate end {toz | libbaz->{toz/1,1}}!
trace: collect_build_postponed (3): begin
%.*
- trace: collect_build_postponed (3): cfg-negotiate begin {tez | libbox->{tez/1}}
+ trace: collect_build_postponed (3): cfg-negotiate begin {tez | libbox->{tez/1,1}}
trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libbox/1.0.0
trace: collect_build_prerequisites: end libbox/1.0.0
trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent tez/1.0.0
trace: collect_build_prerequisites: resume tez/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbox/1.0.0 of dependent tez/1.0.0
- %.*
trace: collect_build: pick toz/0.1.0 over toz/1.0.0
trace: collect_build: toz/1.0.0 package version needs to be replaced with toz/0.1.0
trace: pkg_build: collection failed due to package version replacement, retry from scratch
@@ -6776,7 +6753,7 @@ test.options += --no-progress
%.*
trace: collect_build: add libbar/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tax/1.0.0
- trace: postponed_configurations::add: create {tax | libbar->{tax/1}}
+ trace: postponed_configurations::add: create {tax | libbar->{tax/1,1}}
trace: collect_build_prerequisites: postpone tax/1.0.0
trace: collect_build_prerequisites: begin toz/0.1.0
trace: collect_build_prerequisites: end toz/0.1.0
@@ -6784,42 +6761,34 @@ test.options += --no-progress
%.*
trace: collect_build: add libbox/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/1.0.0
- trace: postponed_configurations::add: create {tez | libbox->{tez/1}}
+ trace: postponed_configurations::add: create {tez | libbox->{tez/1,1}}
trace: collect_build_prerequisites: postpone tez/1.0.0
trace: collect_build_postponed (0): begin
trace: collect_build_postponed (1): begin
%.*
- trace: collect_build_postponed (1): cfg-negotiate begin {tax | libbar->{tax/1}}
+ trace: collect_build_postponed (1): cfg-negotiate begin {tax | libbar->{tax/1,1}}
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libbar/1.0.0
trace: collect_build_prerequisites: end libbar/1.0.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tax/1.0.0
trace: collect_build_prerequisites: resume tax/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbar/1.0.0 of dependent tax/1.0.0
- %.*
trace: collect_build: add libfoo/1.0.0
trace: collect_build_prerequisites: dep-postpone dependency libfoo/1.0.0 of dependent tax/1.0.0
trace: collect_build_prerequisites: end tax/1.0.0
- trace: collect_build_postponed (1): cfg-negotiate end {tax | libbar->{tax/1}}
+ trace: collect_build_postponed (1): cfg-negotiate end {tax | libbar->{tax/1,1}}!
trace: collect_build_postponed (2): begin
%.*
- trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1}}
+ trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}}
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libbox/1.0.0
trace: collect_build_prerequisites: end libbox/1.0.0
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/1.0.0
trace: collect_build_prerequisites: resume tez/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbox/1.0.0 of dependent tez/1.0.0
- %.*
- trace: collect_build_prerequisites: cannot cfg-postpone dependency toz/0.1.0 of dependent tez/1.0.0 (collected prematurely), checking for configuration cycle
- trace: collect_build_prerequisites: negotiated: {tax | libbar->{tax/1}}
- trace: collect_build_prerequisites: being negotiated: {tez | libbox->{tez/1}}
- trace: postponed_configurations::add: create {tez | toz->{tez/2}}
- trace: collect_build_prerequisites: verifying {tax | libbar->{tax/1}}
- trace: collect_build_prerequisites: verifying {tez | libbox->{tez/1}}
- trace: collect_build_prerequisites: no configuration cycle, throwing
+ trace: collect_build_prerequisites: cannot cfg-postpone dependency toz/0.1.0 of dependent tez/1.0.0 (collected prematurely), throwing postpone_dependency
trace: pkg_build: collection failed due to prematurely collected dependency (toz), retry from scratch
%.*
trace: pkg_build: refine package collection/plan execution from scratch
@@ -6833,152 +6802,103 @@ test.options += --no-progress
%.*
trace: collect_build: add libbar/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tax/1.0.0
- trace: postponed_configurations::add: create {tax | libbar->{tax/1}}
+ trace: postponed_configurations::add: create {tax | libbar->{tax/1,1}}
trace: collect_build_prerequisites: postpone tax/1.0.0
trace: pkg_build: dep-postpone user-specified toz
trace: collect_build_prerequisites: begin tez/1.0.0
%.*
trace: collect_build: add libbox/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/1.0.0
- trace: postponed_configurations::add: create {tez | libbox->{tez/1}}
+ trace: postponed_configurations::add: create {tez | libbox->{tez/1,1}}
trace: collect_build_prerequisites: postpone tez/1.0.0
trace: collect_build_postponed (0): begin
trace: collect_build_postponed (1): begin
%.*
- trace: collect_build_postponed (1): cfg-negotiate begin {tax | libbar->{tax/1}}
+ trace: collect_build_postponed (1): cfg-negotiate begin {tax | libbar->{tax/1,1}}
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libbar/1.0.0
trace: collect_build_prerequisites: end libbar/1.0.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tax/1.0.0
trace: collect_build_prerequisites: resume tax/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbar/1.0.0 of dependent tax/1.0.0
- %.*
trace: collect_build: add libfoo/1.0.0
trace: collect_build_prerequisites: dep-postpone dependency libfoo/1.0.0 of dependent tax/1.0.0
trace: collect_build_prerequisites: end tax/1.0.0
- trace: collect_build_postponed (1): cfg-negotiate end {tax | libbar->{tax/1}}
+ trace: collect_build_postponed (1): cfg-negotiate end {tax | libbar->{tax/1,1}}!
trace: collect_build_postponed (2): begin
%.*
- trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1}}
+ trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}}
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libbox/1.0.0
trace: collect_build_prerequisites: end libbox/1.0.0
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/1.0.0
trace: collect_build_prerequisites: resume tez/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbox/1.0.0 of dependent tez/1.0.0
- %.*
trace: collect_build_prerequisites: cfg-postpone dependency toz/0.1.0 of dependent tez/1.0.0
- trace: postponed_configurations::add: create {tez | toz->{tez/2}}
+ trace: postponed_configurations::add: create {tez | toz->{tez/2,1}}
trace: collect_build_prerequisites: postpone tez/1.0.0
- trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1}}
+ trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}!
trace: collect_build_postponed (3): begin
%.*
- trace: collect_build_postponed (3): cfg-negotiate begin {tez | toz->{tez/2}}
+ trace: collect_build_postponed (3): cfg-negotiate begin {tez | toz->{tez/2,1}}
trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin toz/0.1.0
trace: collect_build_prerequisites: end toz/0.1.0
trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent tez/1.0.0
trace: collect_build_prerequisites: resume tez/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency toz/0.1.0 of dependent tez/1.0.0
- %.*
- trace: collect_build_prerequisites: cannot cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 (collected prematurely), checking for configuration cycle
- trace: collect_build_prerequisites: negotiated: {tax | libbar->{tax/1}}
- trace: collect_build_prerequisites: negotiated: {tez | libbox->{tez/1}}
- trace: collect_build_prerequisites: being negotiated: {tez | toz->{tez/2}}
- trace: postponed_configurations::add: add {tez | libbar->{tez/3}} to {tax | libbar->{tax/1}}
- trace: collect_build_prerequisites: verifying {tax tez | libbar->{tax/1 tez/3}}
- trace: collect_build_prerequisites: verifying {tez | libbox->{tez/1}}
- trace: collect_build_prerequisites: verifying {tez | toz->{tez/2}}
- trace: collect_build_prerequisites: no configuration cycle, throwing
- trace: collect_build_postponed (0): cfg-negotiation of {tax | libbar->{tax/1}} failed due to dependency libbar, try next
+ trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0
+ trace: postponed_configurations::add: add {tez | libbar->{tez/3,1}} to {tax | libbar->{tax/1,1}}!
+ trace: collect_build_prerequisites: cfg-postponing dependent tez/1.0.0 involves negotiated configurations and results in {tax tez | libbar->{tax/1,1 tez/3,1}}!, throwing retry_configuration
+ trace: collect_build_postponed (0): cfg-negotiation of {tax | libbar->{tax/1,1}} failed due to dependent tez, adding shadow dependent and re-negotiating
trace: collect_build_postponed (1): begin
%.*
- trace: collect_build_postponed (1): cfg-negotiate begin {tez | libbox->{tez/1}}
+ trace: collect_build_postponed (1): cfg-negotiate begin {tax | libbar->{tax/1,1}}
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
- trace: collect_build_prerequisites: begin libbox/1.0.0
- trace: collect_build_prerequisites: end libbox/1.0.0
- trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
- trace: collect_build_prerequisites: resume tez/1.0.0
- %.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbox/1.0.0 of dependent tez/1.0.0
- %.*
- trace: collect_build_prerequisites: cfg-postpone dependency toz/0.1.0 of dependent tez/1.0.0
- trace: postponed_configurations::add: create {tez | toz->{tez/2}}
- trace: collect_build_prerequisites: postpone tez/1.0.0
- trace: collect_build_postponed (1): cfg-negotiate end {tez | libbox->{tez/1}}
- trace: collect_build_postponed (2): begin
- %.*
- trace: collect_build_postponed (2): cfg-negotiate begin {tax | libbar->{tax/1}}
- trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libbar/1.0.0
trace: collect_build_prerequisites: end libbar/1.0.0
- trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tax/1.0.0
trace: collect_build_prerequisites: resume tax/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbar/1.0.0 of dependent tax/1.0.0
- %.*
trace: collect_build: add libfoo/1.0.0
trace: collect_build_prerequisites: dep-postpone dependency libfoo/1.0.0 of dependent tax/1.0.0
trace: collect_build_prerequisites: end tax/1.0.0
- trace: collect_build_postponed (2): cfg-negotiate end {tax | libbar->{tax/1}}
- trace: collect_build_postponed (3): begin
- %.*
- trace: collect_build_postponed (3): cfg-negotiate begin {tez | toz->{tez/2}}
- trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies
- trace: collect_build_prerequisites: begin toz/0.1.0
- trace: collect_build_prerequisites: end toz/0.1.0
- trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents
- trace: collect_build_prerequisites: resume tez/1.0.0
- %.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency toz/0.1.0 of dependent tez/1.0.0
- %.*
- trace: collect_build_prerequisites: cannot cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 (collected prematurely), checking for configuration cycle
- trace: collect_build_prerequisites: negotiated: {tax | libbar->{tax/1}}
- trace: collect_build_prerequisites: negotiated: {tez | libbox->{tez/1}}
- trace: collect_build_prerequisites: being negotiated: {tez | toz->{tez/2}}
- trace: postponed_configurations::add: add {tez | libbar->{tez/3}} to {tax | libbar->{tax/1}}
- trace: collect_build_prerequisites: verifying {tax tez | libbar->{tax/1 tez/3}}
- trace: collect_build_prerequisites: verifying {tez | libbox->{tez/1}}
- trace: collect_build_prerequisites: verifying {tez | toz->{tez/2}}
- trace: collect_build_prerequisites: no configuration cycle, throwing
- trace: collect_build_postponed (1): cfg-negotiation of {tax | libbar->{tax/1}} failed due to dependency libbar, try next
+ trace: collect_build_postponed (1): cfg-negotiate end {tax | libbar->{tax/1,1}}!
trace: collect_build_postponed (2): begin
%.*
- trace: collect_build_postponed (2): cfg-negotiate begin {tez | toz->{tez/2}}
+ trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}}
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies
- trace: collect_build_prerequisites: begin toz/0.1.0
- trace: collect_build_prerequisites: end toz/0.1.0
+ trace: collect_build_prerequisites: begin libbox/1.0.0
+ trace: collect_build_prerequisites: end libbox/1.0.0
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/1.0.0
trace: collect_build_prerequisites: resume tez/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency toz/0.1.0 of dependent tez/1.0.0
- %.*
- trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0
- trace: postponed_configurations::add: add {tez | libbar->{tez/3}} to {tax | libbar->{tax/1}}
+ trace: collect_build_prerequisites: cfg-postpone dependency toz/0.1.0 of dependent tez/1.0.0
+ trace: postponed_configurations::add: create {tez | toz->{tez/2,1}}
trace: collect_build_prerequisites: postpone tez/1.0.0
- trace: collect_build_postponed (2): cfg-negotiate end {tez | toz->{tez/2}}
+ trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}!
trace: collect_build_postponed (3): begin
%.*
- trace: collect_build_postponed (3): cfg-negotiate begin {tax tez | libbar->{tax/1 tez/3}}
+ trace: collect_build_postponed (3): cfg-negotiate begin {tez | toz->{tez/2,1}}
trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies
- trace: collect_build_prerequisites: begin libbar/1.0.0
- trace: collect_build_prerequisites: end libbar/1.0.0
+ trace: collect_build_prerequisites: begin toz/0.1.0
+ trace: collect_build_prerequisites: end toz/0.1.0
trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents
- trace: collect_build_prerequisites: resume tax/1.0.0
- %.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbar/1.0.0 of dependent tax/1.0.0
- %.*
- trace: collect_build: add libfoo/1.0.0
- trace: collect_build_prerequisites: dep-postpone dependency libfoo/1.0.0 of dependent tax/1.0.0
- trace: collect_build_prerequisites: end tax/1.0.0
+ trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent tez/1.0.0
trace: collect_build_prerequisites: resume tez/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbar/1.0.0 of dependent tez/1.0.0
+ trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0
+ trace: postponed_configurations::add: add {tez | libbar->{tez/3,1}} to {tax | libbar->{tax/1,1}}!
+ trace: collect_build_prerequisites: dependent tez/1.0.0 is a shadow dependent for {tax tez | libbar->{tax/1,1 tez/3,1}}!
+ trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated
+ trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping
trace: collect_build_prerequisites: end tez/1.0.0
- trace: collect_build_postponed (3): cfg-negotiate end {tax tez | libbar->{tax/1 tez/3}}
+ trace: collect_build_postponed (3): cfg-negotiate end {tez | toz->{tez/2,1}}!
trace: collect_build_postponed (3): erase bogus postponement libfoo
trace: collect_build_postponed (3): bogus postponements erased, throwing
trace: pkg_build: collection failed due to bogus dependency collection postponement cancellation, retry from scratch
@@ -6994,158 +6914,107 @@ test.options += --no-progress
%.*
trace: collect_build: add libbar/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tax/1.0.0
- trace: postponed_configurations::add: create {tax | libbar->{tax/1}}
+ trace: postponed_configurations::add: create {tax | libbar->{tax/1,1}}
trace: collect_build_prerequisites: postpone tax/1.0.0
trace: pkg_build: dep-postpone user-specified toz
trace: collect_build_prerequisites: begin tez/1.0.0
%.*
trace: collect_build: add libbox/1.0.0
trace: collect_build_prerequisites: cfg-postpone dependency libbox/1.0.0 of dependent tez/1.0.0
- trace: postponed_configurations::add: create {tez | libbox->{tez/1}}
+ trace: postponed_configurations::add: create {tez | libbox->{tez/1,1}}
trace: collect_build_prerequisites: postpone tez/1.0.0
trace: collect_build_postponed (0): begin
trace: collect_build_postponed (1): begin
%.*
- trace: collect_build_postponed (1): cfg-negotiate begin {tax | libbar->{tax/1}}
+ trace: collect_build_postponed (1): cfg-negotiate begin {tax | libbar->{tax/1,1}}
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libbar/1.0.0
trace: collect_build_prerequisites: end libbar/1.0.0
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tax/1.0.0
trace: collect_build_prerequisites: resume tax/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbar/1.0.0 of dependent tax/1.0.0
- %.*
trace: collect_build: add libfoo/1.0.0
- trace: collect_build_prerequisites: recursively collect dependency libfoo/1.0.0 of dependent tax/1.0.0
+ trace: collect_build_prerequisites: no cfg-clause for dependency libfoo/1.0.0 of dependent tax/1.0.0
trace: collect_build_prerequisites: begin libfoo/1.0.0
trace: collect_build_prerequisites: end libfoo/1.0.0
trace: collect_build_prerequisites: end tax/1.0.0
- trace: collect_build_postponed (1): cfg-negotiate end {tax | libbar->{tax/1}}
+ trace: collect_build_postponed (1): cfg-negotiate end {tax | libbar->{tax/1,1}}!
trace: collect_build_postponed (2): begin
%.*
- trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1}}
+ trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}}
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libbox/1.0.0
trace: collect_build_prerequisites: end libbox/1.0.0
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/1.0.0
trace: collect_build_prerequisites: resume tez/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbox/1.0.0 of dependent tez/1.0.0
- %.*
trace: collect_build_prerequisites: cfg-postpone dependency toz/0.1.0 of dependent tez/1.0.0
- trace: postponed_configurations::add: create {tez | toz->{tez/2}}
+ trace: postponed_configurations::add: create {tez | toz->{tez/2,1}}
trace: collect_build_prerequisites: postpone tez/1.0.0
- trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1}}
+ trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}!
trace: collect_build_postponed (3): begin
%.*
- trace: collect_build_postponed (3): cfg-negotiate begin {tez | toz->{tez/2}}
+ trace: collect_build_postponed (3): cfg-negotiate begin {tez | toz->{tez/2,1}}
trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin toz/0.1.0
trace: collect_build_prerequisites: end toz/0.1.0
trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent tez/1.0.0
trace: collect_build_prerequisites: resume tez/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency toz/0.1.0 of dependent tez/1.0.0
- %.*
- trace: collect_build_prerequisites: cannot cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 (collected prematurely), checking for configuration cycle
- trace: collect_build_prerequisites: negotiated: {tax | libbar->{tax/1}}
- trace: collect_build_prerequisites: negotiated: {tez | libbox->{tez/1}}
- trace: collect_build_prerequisites: being negotiated: {tez | toz->{tez/2}}
- trace: postponed_configurations::add: add {tez | libbar->{tez/3}} to {tax | libbar->{tax/1}}
- trace: collect_build_prerequisites: verifying {tax tez | libbar->{tax/1 tez/3}}
- trace: collect_build_prerequisites: verifying {tez | libbox->{tez/1}}
- trace: collect_build_prerequisites: verifying {tez | toz->{tez/2}}
- trace: collect_build_prerequisites: no configuration cycle, throwing
- trace: collect_build_postponed (0): cfg-negotiation of {tax | libbar->{tax/1}} failed due to dependency libbar, try next
+ trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0
+ trace: postponed_configurations::add: add {tez | libbar->{tez/3,1}} to {tax | libbar->{tax/1,1}}!
+ trace: collect_build_prerequisites: cfg-postponing dependent tez/1.0.0 involves negotiated configurations and results in {tax tez | libbar->{tax/1,1 tez/3,1}}!, throwing retry_configuration
+ trace: collect_build_postponed (0): cfg-negotiation of {tax | libbar->{tax/1,1}} failed due to dependent tez, adding shadow dependent and re-negotiating
trace: collect_build_postponed (1): begin
%.*
- trace: collect_build_postponed (1): cfg-negotiate begin {tez | libbox->{tez/1}}
+ trace: collect_build_postponed (1): cfg-negotiate begin {tax | libbar->{tax/1,1}}
trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies
- trace: collect_build_prerequisites: begin libbox/1.0.0
- trace: collect_build_prerequisites: end libbox/1.0.0
- trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
- trace: collect_build_prerequisites: resume tez/1.0.0
- %.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbox/1.0.0 of dependent tez/1.0.0
- %.*
- trace: collect_build_prerequisites: cfg-postpone dependency toz/0.1.0 of dependent tez/1.0.0
- trace: postponed_configurations::add: create {tez | toz->{tez/2}}
- trace: collect_build_prerequisites: postpone tez/1.0.0
- trace: collect_build_postponed (1): cfg-negotiate end {tez | libbox->{tez/1}}
- trace: collect_build_postponed (2): begin
- %.*
- trace: collect_build_postponed (2): cfg-negotiate begin {tax | libbar->{tax/1}}
- trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies
trace: collect_build_prerequisites: begin libbar/1.0.0
trace: collect_build_prerequisites: end libbar/1.0.0
- trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tax/1.0.0
trace: collect_build_prerequisites: resume tax/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbar/1.0.0 of dependent tax/1.0.0
- %.*
trace: collect_build: add libfoo/1.0.0
- trace: collect_build_prerequisites: recursively collect dependency libfoo/1.0.0 of dependent tax/1.0.0
+ trace: collect_build_prerequisites: no cfg-clause for dependency libfoo/1.0.0 of dependent tax/1.0.0
trace: collect_build_prerequisites: begin libfoo/1.0.0
trace: collect_build_prerequisites: end libfoo/1.0.0
trace: collect_build_prerequisites: end tax/1.0.0
- trace: collect_build_postponed (2): cfg-negotiate end {tax | libbar->{tax/1}}
- trace: collect_build_postponed (3): begin
- %.*
- trace: collect_build_postponed (3): cfg-negotiate begin {tez | toz->{tez/2}}
- trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies
- trace: collect_build_prerequisites: begin toz/0.1.0
- trace: collect_build_prerequisites: end toz/0.1.0
- trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents
- trace: collect_build_prerequisites: resume tez/1.0.0
- %.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency toz/0.1.0 of dependent tez/1.0.0
- %.*
- trace: collect_build_prerequisites: cannot cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 (collected prematurely), checking for configuration cycle
- trace: collect_build_prerequisites: negotiated: {tax | libbar->{tax/1}}
- trace: collect_build_prerequisites: negotiated: {tez | libbox->{tez/1}}
- trace: collect_build_prerequisites: being negotiated: {tez | toz->{tez/2}}
- trace: postponed_configurations::add: add {tez | libbar->{tez/3}} to {tax | libbar->{tax/1}}
- trace: collect_build_prerequisites: verifying {tax tez | libbar->{tax/1 tez/3}}
- trace: collect_build_prerequisites: verifying {tez | libbox->{tez/1}}
- trace: collect_build_prerequisites: verifying {tez | toz->{tez/2}}
- trace: collect_build_prerequisites: no configuration cycle, throwing
- trace: collect_build_postponed (1): cfg-negotiation of {tax | libbar->{tax/1}} failed due to dependency libbar, try next
+ trace: collect_build_postponed (1): cfg-negotiate end {tax | libbar->{tax/1,1}}!
trace: collect_build_postponed (2): begin
- %.*
- trace: collect_build_postponed (2): cfg-negotiate begin {tez | toz->{tez/2}}
+ trace: pkg_build: SELECT "pp"."package", "pp"."min_version_epoch", "pp"."min_version_canonical_upstream", "pp"."min_version_canonical_release", "pp"."min_version_revision", "pp"."min_version_iteration", "pp"."min_version_upstream", "pp"."min_version_release", "pp"."max_version_epoch", "pp"."max_version_canonical_upstream", "pp"."max_version_canonical_release", "pp"."max_version_revision", "pp"."max_version_iteration", "pp"."max_version_upstream", "pp"."max_version_release", "pp"."min_open", "pp"."max_open" FROM "main"."selected_package_prerequisites" AS "pp" WHERE prerequisite = ? AND configuration = ?
+ trace: collect_build_postponed (2): cfg-negotiate begin {tez | libbox->{tez/1,1}}
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies
- trace: collect_build_prerequisites: begin toz/0.1.0
- trace: collect_build_prerequisites: end toz/0.1.0
+ trace: collect_build_prerequisites: begin libbox/1.0.0
+ trace: collect_build_prerequisites: end libbox/1.0.0
trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents
+ trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent tez/1.0.0
trace: collect_build_prerequisites: resume tez/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency toz/0.1.0 of dependent tez/1.0.0
- %.*
- trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0
- trace: postponed_configurations::add: add {tez | libbar->{tez/3}} to {tax | libbar->{tax/1}}
+ trace: collect_build_prerequisites: cfg-postpone dependency toz/0.1.0 of dependent tez/1.0.0
+ trace: postponed_configurations::add: create {tez | toz->{tez/2,1}}
trace: collect_build_prerequisites: postpone tez/1.0.0
- trace: collect_build_postponed (2): cfg-negotiate end {tez | toz->{tez/2}}
+ trace: collect_build_postponed (2): cfg-negotiate end {tez | libbox->{tez/1,1}}!
trace: collect_build_postponed (3): begin
%.*
- trace: collect_build_postponed (3): cfg-negotiate begin {tax tez | libbar->{tax/1 tez/3}}
+ trace: collect_build_postponed (3): cfg-negotiate begin {tez | toz->{tez/2,1}}
trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies
- trace: collect_build_prerequisites: begin libbar/1.0.0
- trace: collect_build_prerequisites: end libbar/1.0.0
+ trace: collect_build_prerequisites: begin toz/0.1.0
+ trace: collect_build_prerequisites: end toz/0.1.0
trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents
- trace: collect_build_prerequisites: resume tax/1.0.0
- %.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbar/1.0.0 of dependent tax/1.0.0
- %.*
- trace: collect_build: add libfoo/1.0.0
- trace: collect_build_prerequisites: recursively collect dependency libfoo/1.0.0 of dependent tax/1.0.0
- trace: collect_build_prerequisites: begin libfoo/1.0.0
- trace: collect_build_prerequisites: end libfoo/1.0.0
- trace: collect_build_prerequisites: end tax/1.0.0
+ trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent tez/1.0.0
trace: collect_build_prerequisites: resume tez/1.0.0
%.*
- trace: collect_build_prerequisites: skip cfg-negotiated dependency libbar/1.0.0 of dependent tez/1.0.0
+ trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0
+ trace: postponed_configurations::add: add {tez | libbar->{tez/3,1}} to {tax | libbar->{tax/1,1}}!
+ trace: collect_build_prerequisites: dependent tez/1.0.0 is a shadow dependent for {tax tez | libbar->{tax/1,1 tez/3,1}}!
+ trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated
+ trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping
trace: collect_build_prerequisites: end tez/1.0.0
- trace: collect_build_postponed (3): cfg-negotiate end {tax tez | libbar->{tax/1 tez/3}}
+ trace: collect_build_postponed (3): cfg-negotiate end {tez | toz->{tez/2,1}}!
trace: collect_build_postponed (3): end
trace: collect_build_postponed (2): end
trace: collect_build_postponed (1): end